From owner-svn-src-all@freebsd.org Sun Apr 16 00:07:20 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75729D3FDAF; Sun, 16 Apr 2017 00:07:20 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-wm0-f51.google.com (mail-wm0-f51.google.com [74.125.82.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 14689A9E; Sun, 16 Apr 2017 00:07:19 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-wm0-f51.google.com with SMTP id t189so13941887wmt.1; Sat, 15 Apr 2017 17:07:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=Fg0mfZND90/+U03b8wyA+qBCIR9011iIVZMgoEhBuSo=; b=ODF+NgGJ04915RXe4+zoMNH61Zz6bpJ4LWODcd4HxmiNKFlVLSOMYrSH8HTn25/7Cr /FNHPufsNinz1vuOHfRJMj8+EAo2MJPy9HNZFVJLx39XjZHQv3m4dIOCoUjh4GawPKAE rF+b9X1ihRScAxHLayUCUsW8bVEQwtcKHT/E/rlEq7NmZmYR1e8UIQR6Pc69b3vIiwwt GRlzegMPskOGrdCKg0ceEYwmuVADfBUUL+yaIULJprzlgMl5U6/lF8LOWScETyDAEJIz xQHuk8RU+a/I1NZOsTUdegSHUghCe7EhvPC7T/wteps5swShY9RHKZC0EmUP9E24uq9M 2NIg== X-Gm-Message-State: AN3rC/6sFTdVI/ldHnSUHCPN5Onja4w7uHrEORjbw8Jd1GdOX62grdhP 59yTM6QW2gzVIg== X-Received: by 10.28.207.204 with SMTP id f195mr3705360wmg.72.1492300871704; Sat, 15 Apr 2017 17:01:11 -0700 (PDT) Received: from mail-wr0-f178.google.com (mail-wr0-f178.google.com. [209.85.128.178]) by smtp.gmail.com with ESMTPSA id b188sm4360346wmh.6.2017.04.15.17.01.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Apr 2017 17:01:11 -0700 (PDT) Received: by mail-wr0-f178.google.com with SMTP id o21so66916248wrb.2; Sat, 15 Apr 2017 17:01:11 -0700 (PDT) X-Received: by 10.223.160.214 with SMTP id n22mr13509738wrn.198.1492300871390; Sat, 15 Apr 2017 17:01:11 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.80.169.4 with HTTP; Sat, 15 Apr 2017 17:01:10 -0700 (PDT) In-Reply-To: <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> From: Conrad Meyer Date: Sat, 15 Apr 2017 17:01:10 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd To: "Rodney W. Grimes" Cc: Baptiste Daroussin , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 00:07:20 -0000 On Sat, Apr 15, 2017 at 4:37 PM, Rodney W. Grimes wrote: > And we need this in base for what great purpose??? Can you tone down the condescension, Rod? Being rude doesn't help you make your case. We already have zlib, bzip2, and xz in base. zstd is just one more that fills an important niche. If you're not familiar with it, zstd is a relatively recent new compression algorithm that provides a better compression/performance point relative to zlib at any point along the -0/-9 curve. It performs favorably to bzip2 and xz as well, although it's not dominant at all points relative to those two. See the last figure in https://clearlinux.org/blogs/linux-os-data-compression-options-comparing-behavior for a better idea of what niche it fills. Thanks, Conrad From owner-svn-src-all@freebsd.org Sun Apr 16 00:09:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B0FCD3FF09; Sun, 16 Apr 2017 00:09:47 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1C1F6C67; Sun, 16 Apr 2017 00:09:47 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [192.168.1.10] (unknown [192.168.1.10]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id BD6E4DEDD; Sun, 16 Apr 2017 00:09:44 +0000 (UTC) Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd To: rgrimes@freebsd.org, Baptiste Daroussin References: <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Allan Jude Message-ID: Date: Sat, 15 Apr 2017 20:09:31 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="MXCfp1blvxdCEt9VCiixXb6uho1PsTtuj" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 00:09:47 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --MXCfp1blvxdCEt9VCiixXb6uho1PsTtuj Content-Type: multipart/mixed; boundary="PlPD1NikJ78VxJFJvFBiP2SP6pVupxt1a"; protected-headers="v1" From: Allan Jude To: rgrimes@freebsd.org, Baptiste Daroussin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd References: <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> --PlPD1NikJ78VxJFJvFBiP2SP6pVupxt1a Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 2017-04-15 19:37, Rodney W. Grimes wrote: > And we need this in base for what great purpose??? >=20 It is a new faster compression algorithm from the creator of LZ4, Yann Collet. It offers compression ratios similar or great than gzip, but 4-6x faster compression, and 2-3x faster decompression (in excess of 1 gigabyte per second per core). It will be used in ZFS shortly, and is expected to supplant gzip/bzip2 for compressed kernel/memdisk in the loader for pxeboot / iscsi boot etc.= >=20 >> Author: bapt >> Date: Sat Apr 15 20:05:22 2017 >> New Revision: 316978 >> URL: https://svnweb.freebsd.org/changeset/base/316978 >> >> Log: >> Import zstandard 1.1.4 in base >> =20 >> zstandard is a new compression library/tool which is very fast at >> compression/decompression >> =20 >> For now import as a private library >> --=20 Allan Jude --PlPD1NikJ78VxJFJvFBiP2SP6pVupxt1a-- --MXCfp1blvxdCEt9VCiixXb6uho1PsTtuj Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (MingW32) iQIcBAEBAgAGBQJY8rY/AAoJEBmVNT4SmAt+dBwQANogMqwDoAuBTRiOoHOPns3u S46rR+hyw8+YhAvlk7PYUKnjRz+3U6GgoKI3dTA0pQssS5XWdoyDCr+U3ua6Ic0y 8UTeLwBAznNs8xCg8qVVCQT65Wb/5aRvLXAQqGwJsUNDhbv/UrxfJT0c6hwSRImv QZm7QLAP6EuoDsf4wH+zoUoCj/RcgxZdflsclHI1cx9J1H7afIP9UEwAyHhLSYj/ yfVynJVHQxWWtIImixoa32gcT+gqD1GztYCOq6MCXsbFBs02Hdn/TiX0fwhie+bs iIX03EFNlNhTlD28fWGX02MZf5C3NbBvbztfv0ccZP9FBfb0U7CvCaP3EbH/J5oZ aTn9O322pra81PlniHjDZ4pcF4SgY5V0RhKJ0Y7LYV6foVLJ7hjvoEu7GIJpWCJo U6gPa6nHMPJ5UrQQ4aNZApWoyKX4Y9UykIaHQjp/W1jgDVJxzL81lntIkQJgc2DD C+oM8f8O7dqi1nnobEzaXzt3em+1VIp7SEUUmZknMj8DbzHjSDIhDGVT93EtJu4l 25ebxduB3Gf+Ac6ys7vUTty0inhK2Z/C2Fm++mesKl0JOmdmn6V0WR9IAjZfcBAv N/i8ZS41DXo3dSbe7t4ohdp8CwfqgSFtrPJmyYMfbqSdry+BmHUBc7VmoyWtMQXb Xdps7/9NeYCIkQF8NKzE =Itcb -----END PGP SIGNATURE----- --MXCfp1blvxdCEt9VCiixXb6uho1PsTtuj-- From owner-svn-src-all@freebsd.org Sun Apr 16 01:13:48 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E85DD3587E; Sun, 16 Apr 2017 01:13:48 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 40C7A1AF2; Sun, 16 Apr 2017 01:13:48 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G1DlAT028402; Sun, 16 Apr 2017 01:13:47 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G1DlbA028401; Sun, 16 Apr 2017 01:13:47 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704160113.v3G1DlbA028401@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Sun, 16 Apr 2017 01:13:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r316993 - head/contrib/ipfilter/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 01:13:48 -0000 Author: cy Date: Sun Apr 16 01:13:47 2017 New Revision: 316993 URL: https://svnweb.freebsd.org/changeset/base/316993 Log: Fix CID 1372601, possible NULL pointer dereference should reallocarray() fail. Reported by: Coverity CID 1372601 MFC after: 1 week Modified: head/contrib/ipfilter/lib/parsefields.c Modified: head/contrib/ipfilter/lib/parsefields.c ============================================================================== --- head/contrib/ipfilter/lib/parsefields.c Sat Apr 15 23:35:57 2017 (r316992) +++ head/contrib/ipfilter/lib/parsefields.c Sun Apr 16 01:13:47 2017 (r316993) @@ -32,6 +32,10 @@ wordtab_t *parsefields(table, arg) fields = malloc(2 * sizeof(*fields)); } else { fields = reallocarray(fields, num + 1, sizeof(*fields)); + if (fields == NULL) { + perror("memory allocation error at __LINE__ in __FUNCTIOIN__ in __FILE__"); + abort(); + } } if (t == NULL) { From owner-svn-src-all@freebsd.org Sun Apr 16 01:15:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17C8ED35ABB; Sun, 16 Apr 2017 01:15:39 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DC2AA1D94; Sun, 16 Apr 2017 01:15:38 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G1FcpE028511; Sun, 16 Apr 2017 01:15:38 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G1FcL3028510; Sun, 16 Apr 2017 01:15:38 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704160115.v3G1FcL3028510@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Sun, 16 Apr 2017 01:15:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r316994 - head/contrib/ipfilter/tools X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 01:15:39 -0000 Author: cy Date: Sun Apr 16 01:15:37 2017 New Revision: 316994 URL: https://svnweb.freebsd.org/changeset/base/316994 Log: Fix CID 1372600, possible NULL pointer dereference should reallocarray() fail. Reported by: Coverity CID 1372600 MFC after: 1 week Modified: head/contrib/ipfilter/tools/ipf_y.y Modified: head/contrib/ipfilter/tools/ipf_y.y ============================================================================== --- head/contrib/ipfilter/tools/ipf_y.y Sun Apr 16 01:13:47 2017 (r316993) +++ head/contrib/ipfilter/tools/ipf_y.y Sun Apr 16 01:15:37 2017 (r316994) @@ -2195,6 +2195,10 @@ char *phrase; for (i = 0, s = strtok(phrase, " \r\n\t"); s != NULL; s = strtok(NULL, " \r\n\t"), i++) { fb = reallocarray(fb, i / 4 + 1, sizeof(*fb)); + if (fb == NULL) { + perror("memory allocation error at __LINE__ in __FUNCTION__ in __FILE"); + abort(); + } l = (u_32_t)strtol(s, NULL, 0); switch (i & 3) { From owner-svn-src-all@freebsd.org Sun Apr 16 01:40:18 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A8ADD40BBA; Sun, 16 Apr 2017 01:40:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 67A72F9F; Sun, 16 Apr 2017 01:40:18 +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 v3G1eHpA036886; Sun, 16 Apr 2017 01:40:17 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G1eHMK036884; Sun, 16 Apr 2017 01:40:17 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201704160140.v3G1eHMK036884@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 16 Apr 2017 01:40:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r316995 - head/sys/dev/mii X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 01:40:18 -0000 Author: ian Date: Sun Apr 16 01:40:17 2017 New Revision: 316995 URL: https://svnweb.freebsd.org/changeset/base/316995 Log: Add support for the Micrel KSZ8081 ethernet PHY. The only thing this phy needs that the ukphy driver doesn't provide is that the value in the proprietary Phy Control 2 Register must be saved before doing a soft reset and restored afterwards. Most modern phys have "sticky bits" for low-level config that survive a reset, but on this one the values in all registers go back to defaults, wiping out any board- specific config set up by the bootloader/bios/whatever. Modified: head/sys/dev/mii/micphy.c head/sys/dev/mii/miidevs Modified: head/sys/dev/mii/micphy.c ============================================================================== --- head/sys/dev/mii/micphy.c Sun Apr 16 01:15:37 2017 (r316994) +++ head/sys/dev/mii/micphy.c Sun Apr 16 01:40:17 2017 (r316995) @@ -76,10 +76,13 @@ __FBSDID("$FreeBSD$"); #define MII_KSZ9031_TX_DATA_PAD_SKEW 0x6 #define MII_KSZ9031_CLOCK_PAD_SKEW 0x8 +#define MII_KSZ8081_PHYCTL2 0x1f + #define PS_TO_REG(p) ((p) / 200) static int micphy_probe(device_t); static int micphy_attach(device_t); +static void micphy_reset(struct mii_softc *); static int micphy_service(struct mii_softc *, struct mii_data *, int); static device_method_t micphy_methods[] = { @@ -102,6 +105,7 @@ static driver_t micphy_driver = { DRIVER_MODULE(micphy, miibus, micphy_driver, micphy_devclass, 0, 0); static const struct mii_phydesc micphys[] = { + MII_PHY_DESC(MICREL, KSZ8081), MII_PHY_DESC(MICREL, KSZ9021), MII_PHY_DESC(MICREL, KSZ9031), MII_PHY_END @@ -110,7 +114,7 @@ static const struct mii_phydesc micphys[ static const struct mii_phy_funcs micphy_funcs = { micphy_service, ukphy_status, - mii_phy_reset + micphy_reset }; static uint32_t @@ -257,6 +261,10 @@ micphy_attach(device_t dev) mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &micphy_funcs, 1); mii_phy_setmedia(sc); + /* Nothing further to configure for 8081 model. */ + if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ8081) + return (0); + miibus = device_get_parent(dev); parent = device_get_parent(miibus); @@ -271,6 +279,24 @@ micphy_attach(device_t dev) return (0); } +static void +micphy_reset(struct mii_softc *sc) +{ + int reg; + + /* + * The 8081 has no "sticky bits" that survive a soft reset; several bits + * in the Phy Control Register 2 must be preserved across the reset. + * These bits are set up by the bootloader; they control how the phy + * interfaces to the board (such as clock frequency and LED behavior). + */ + if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ8081) + reg = PHY_READ(sc, MII_KSZ8081_PHYCTL2); + mii_phy_reset(sc); + if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ8081) + PHY_WRITE(sc, MII_KSZ8081_PHYCTL2, reg); +} + static int micphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) { Modified: head/sys/dev/mii/miidevs ============================================================================== --- head/sys/dev/mii/miidevs Sun Apr 16 01:15:37 2017 (r316994) +++ head/sys/dev/mii/miidevs Sun Apr 16 01:40:17 2017 (r316995) @@ -282,6 +282,7 @@ model MARVELL E1000_5 0x0005 Marvell 88 model MARVELL E1111 0x000c Marvell 88E1111 Gigabit PHY /* Micrel PHYs */ +model MICREL KSZ8081 0x0016 Micrel KSZ8081 10/100 PHY model MICREL KSZ9021 0x0021 Micrel KSZ9021 10/100/1000 PHY model MICREL KSZ9031 0x0022 Micrel KSZ9031 10/100/1000 PHY From owner-svn-src-all@freebsd.org Sun Apr 16 01:50:07 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 56D92D3519E; Sun, 16 Apr 2017 01:50:07 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EC01E18E6; Sun, 16 Apr 2017 01:50:06 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-wm0-f42.google.com with SMTP id o81so15115916wmb.1; Sat, 15 Apr 2017 18:50:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=02nqjgniJ9dQSXb2knYaGpPLIstMh8S8IlASkZnie3g=; b=SA6fM1PT26DtqYtCxK6hm10IqEWTfZ53Xe7YAgQBbaCb5Ey0s5IM8XmbQJCw8VXxHj I4GGaJ0SkYWFAupa1q+CDoWG3m91bA02iXtE11EohF82lDi4dWxqjJClYbpp0Z+O6KGG DSE5Ko0wIBUc1wo8dCof49Z0BzjYMljIoX1kj2PDYI1h9J4e03APGXFBCylq0DTsWDoY En3jbxVWpiTt99uuDcGGA/7LXpZnj/w+xZls9aD4B9OfBh62KElsnJLJhRkU/WDjh88s qcCWqHjX53u2UpyU0l1H/7BoUJsyhs8yhU5GhwtLjdraf6H5afKuZ8xekAInl6Idbk+P FBVQ== X-Gm-Message-State: AN3rC/4Zb/kqtrt4xov4jXGvl313vaNyjpQ89ovS98RTARG0z57KKj3G 4WyqU4+ziuvOntgJTlY= X-Received: by 10.28.86.68 with SMTP id k65mr4018304wmb.112.1492307399084; Sat, 15 Apr 2017 18:49:59 -0700 (PDT) Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com. [74.125.82.53]) by smtp.gmail.com with ESMTPSA id v8sm55641wrd.42.2017.04.15.18.49.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Apr 2017 18:49:59 -0700 (PDT) Received: by mail-wm0-f53.google.com with SMTP id o81so15115852wmb.1; Sat, 15 Apr 2017 18:49:58 -0700 (PDT) X-Received: by 10.28.16.148 with SMTP id 142mr3836682wmq.75.1492307398778; Sat, 15 Apr 2017 18:49:58 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.80.169.4 with HTTP; Sat, 15 Apr 2017 18:49:58 -0700 (PDT) In-Reply-To: <201704160113.v3G1DlbA028401@repo.freebsd.org> References: <201704160113.v3G1DlbA028401@repo.freebsd.org> From: Conrad Meyer Date: Sat, 15 Apr 2017 18:49:58 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r316993 - head/contrib/ipfilter/lib To: Cy Schubert Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 01:50:07 -0000 On Sat, Apr 15, 2017 at 6:13 PM, Cy Schubert wrote: > Author: cy > Date: Sun Apr 16 01:13:47 2017 > New Revision: 316993 > URL: https://svnweb.freebsd.org/changeset/base/316993 > > Log: > Fix CID 1372601, possible NULL pointer dereference should > reallocarray() fail. > > Reported by: Coverity CID 1372601 > MFC after: 1 week > > Modified: > head/contrib/ipfilter/lib/parsefields.c > > Modified: head/contrib/ipfilter/lib/parsefields.c > ============================================================================== > --- head/contrib/ipfilter/lib/parsefields.c Sat Apr 15 23:35:57 2017 (r316992) > +++ head/contrib/ipfilter/lib/parsefields.c Sun Apr 16 01:13:47 2017 (r316993) > @@ -32,6 +32,10 @@ wordtab_t *parsefields(table, arg) > fields = malloc(2 * sizeof(*fields)); > } else { > fields = reallocarray(fields, num + 1, sizeof(*fields)); > + if (fields == NULL) { > + perror("memory allocation error at __LINE__ in __FUNCTIOIN__ in __FILE__"); Hey Cy, Does this actually work? I was under the impression it wouldn't work. Instead, maybe warnx("... error at %d in %s in %s", __LINE__, __func__, __FILE__)? Best, Conrad From owner-svn-src-all@freebsd.org Sun Apr 16 03:34:42 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7860AD40799; Sun, 16 Apr 2017 03:34:42 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 25199309; Sun, 16 Apr 2017 03:34:41 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id zaxNcUaVIsa1kzaxOcitIA; Sat, 15 Apr 2017 21:34:35 -0600 X-Authority-Analysis: v=2.2 cv=W+NIbVek c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=kj9zAlcOel0A:10 a=AzvcPWV-tVgA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=zm8RW0_Aktz8uO5TyfIA:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id EEEB62028; Sat, 15 Apr 2017 20:34:32 -0700 (PDT) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id v3G3YWKc032550; Sat, 15 Apr 2017 20:34:32 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201704160334.v3G3YWKc032550@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: cem@freebsd.org cc: Cy Schubert , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316993 - head/contrib/ipfilter/lib In-Reply-To: Message from Conrad Meyer of "Sat, 15 Apr 2017 18:49:58 -0700." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 15 Apr 2017 20:34:32 -0700 X-CMAE-Envelope: MS4wfIEK3Bs2fGGmEUAhrkx56psDQGGFR0XxEblyMT8zu+RC/IKX//jPvHGpPahSMuDCSz4AM7VdW0LMPmV+LWnO37oqjhRr6Crpux1h631LZCx1qvqL5ztw y1OGO85KQwGWNUsigQ9c0apMC4Rw3Cl04lJpY5qb9CZdh9JWbP0NYUofDubRmxkIdb1+HVTguhqfr213DO+VX/BaA3WFoenVaEoITUB6MGuU9RVkdaNdZ8eH PNOJg/b/206Tg1kjzkNwmeSFjMk7iVDU3IMSHBXmiCOEWPtAqXrtP62U+Gedk75/PIWjCxVrm6w6abP9bgudCw== X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 03:34:42 -0000 In message , Conrad Meyer writes: > On Sat, Apr 15, 2017 at 6:13 PM, Cy Schubert wrote: > > Author: cy > > Date: Sun Apr 16 01:13:47 2017 > > New Revision: 316993 > > URL: https://svnweb.freebsd.org/changeset/base/316993 > > > > Log: > > Fix CID 1372601, possible NULL pointer dereference should > > reallocarray() fail. > > > > Reported by: Coverity CID 1372601 > > MFC after: 1 week > > > > Modified: > > head/contrib/ipfilter/lib/parsefields.c > > > > Modified: head/contrib/ipfilter/lib/parsefields.c > > =========================================================================== > === > > --- head/contrib/ipfilter/lib/parsefields.c Sat Apr 15 23:35:57 2017 > (r316992) > > +++ head/contrib/ipfilter/lib/parsefields.c Sun Apr 16 01:13:47 2017 > (r316993) > > @@ -32,6 +32,10 @@ wordtab_t *parsefields(table, arg) > > fields = malloc(2 * sizeof(*fields)); > > } else { > > fields = reallocarray(fields, num + 1, sizeof(*fiel > ds)); > > + if (fields == NULL) { > > + perror("memory allocation error at __LINE__ > in __FUNCTIOIN__ in __FILE__"); > > Hey Cy, > > Does this actually work? I was under the impression it wouldn't work. > Instead, maybe warnx("... error at %d in %s in %s", __LINE__, > __func__, __FILE__)? You are indeed correct Conrad. My mistake. I'll fix it right away. Thanks for pointing this out. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-all@freebsd.org Sun Apr 16 03:49:15 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A713CD40E39; Sun, 16 Apr 2017 03:49:15 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5F276C29; Sun, 16 Apr 2017 03:49:15 +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 v3G3nEKj091375; Sun, 16 Apr 2017 03:49:14 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G3nEgi091374; Sun, 16 Apr 2017 03:49:14 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201704160349.v3G3nEgi091374@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 16 Apr 2017 03:49:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r316996 - head/sys/dev/ffec X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 03:49:15 -0000 Author: ian Date: Sun Apr 16 03:49:14 2017 New Revision: 316996 URL: https://svnweb.freebsd.org/changeset/base/316996 Log: Add imx6ul SoC support, and get the PHY number from the FDT data. If there is no phy-handle property, fall back to using MII_PHY_ANY. This still doesn't support an mdio bus with multiple PHYs on it, or the possibility that the PHY being used by this instance of ffec is on the mdio bus of some other instance (which is now a possibility with imx6ul). Adding that support will require changes in fdt_get_phyaddr(), which is currently making some assumptions that don't work with modern fdt data. Modified: head/sys/dev/ffec/if_ffec.c Modified: head/sys/dev/ffec/if_ffec.c ============================================================================== --- head/sys/dev/ffec/if_ffec.c Sun Apr 16 01:40:17 2017 (r316995) +++ head/sys/dev/ffec/if_ffec.c Sun Apr 16 03:49:14 2017 (r316996) @@ -78,6 +78,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -113,6 +114,7 @@ static struct ofw_compat_data compat_dat {"fsl,imx51-fec", FECTYPE_GENERIC}, {"fsl,imx53-fec", FECTYPE_IMX53}, {"fsl,imx6q-fec", FECTYPE_IMX6 | FECFLAG_GBE}, + {"fsl,imx6ul-fec", FECTYPE_IMX6}, {"fsl,mvf600-fec", FECTYPE_MVF}, {"fsl,mvf-fec", FECTYPE_MVF}, {NULL, FECTYPE_NONE}, @@ -1424,8 +1426,9 @@ ffec_attach(device_t dev) struct ffec_softc *sc; struct ifnet *ifp = NULL; struct mbuf *m; + void *dummy; phandle_t ofw_node; - int error, rid; + int error, phynum, rid; uint8_t eaddr[ETHER_ADDR_LEN]; char phy_conn_name[32]; uint32_t idx, mscr; @@ -1695,8 +1698,11 @@ ffec_attach(device_t dev) ffec_miigasket_setup(sc); /* Attach the mii driver. */ + if (fdt_get_phyaddr(ofw_node, dev, &phynum, &dummy) != 0) { + phynum = MII_PHY_ANY; + } error = mii_attach(dev, &sc->miibus, ifp, ffec_media_change, - ffec_media_status, BMSR_DEFCAPMASK, MII_PHY_ANY, MII_OFFSET_ANY, + ffec_media_status, BMSR_DEFCAPMASK, phynum, MII_OFFSET_ANY, (sc->fectype & FECTYPE_MVF) ? MIIF_FORCEANEG : 0); if (error != 0) { device_printf(dev, "PHY attach failed\n"); From owner-svn-src-all@freebsd.org Sun Apr 16 04:36:23 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60E8AD40EC2; Sun, 16 Apr 2017 04:36:23 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 279D5355; Sun, 16 Apr 2017 04:36:23 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G4aM3S011471; Sun, 16 Apr 2017 04:36:22 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G4aMtX011469; Sun, 16 Apr 2017 04:36:22 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704160436.v3G4aMtX011469@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Sun, 16 Apr 2017 04:36:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r316997 - in head/contrib/ipfilter: lib tools X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 04:36:23 -0000 Author: cy Date: Sun Apr 16 04:36:22 2017 New Revision: 316997 URL: https://svnweb.freebsd.org/changeset/base/316997 Log: Use warnx() to issue error message. Reported by: cem MFC after: 1 week X-MFC with: r316993, r316994 Modified: head/contrib/ipfilter/lib/parsefields.c head/contrib/ipfilter/tools/ipf_y.y Modified: head/contrib/ipfilter/lib/parsefields.c ============================================================================== --- head/contrib/ipfilter/lib/parsefields.c Sun Apr 16 03:49:14 2017 (r316996) +++ head/contrib/ipfilter/lib/parsefields.c Sun Apr 16 04:36:22 2017 (r316997) @@ -1,4 +1,5 @@ #include "ipf.h" +#include extern int nohdrfields; @@ -33,7 +34,7 @@ wordtab_t *parsefields(table, arg) } else { fields = reallocarray(fields, num + 1, sizeof(*fields)); if (fields == NULL) { - perror("memory allocation error at __LINE__ in __FUNCTIOIN__ in __FILE__"); + warnx("memory allocation error at %d in %s in %s", __LINE__, __FUNCTION__, __FILE__); abort(); } } Modified: head/contrib/ipfilter/tools/ipf_y.y ============================================================================== --- head/contrib/ipfilter/tools/ipf_y.y Sun Apr 16 03:49:14 2017 (r316996) +++ head/contrib/ipfilter/tools/ipf_y.y Sun Apr 16 04:36:22 2017 (r316997) @@ -9,6 +9,7 @@ #include "ipf.h" #include #include +#include #ifdef IPFILTER_BPF # include #endif @@ -2196,7 +2197,7 @@ char *phrase; s = strtok(NULL, " \r\n\t"), i++) { fb = reallocarray(fb, i / 4 + 1, sizeof(*fb)); if (fb == NULL) { - perror("memory allocation error at __LINE__ in __FUNCTION__ in __FILE"); + warnx("memory allocation error at %d in %s in %s", __LINE__, __FUNCTION__, __FILE__); abort(); } l = (u_32_t)strtol(s, NULL, 0); From owner-svn-src-all@freebsd.org Sun Apr 16 05:14:44 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 72C74D40760; Sun, 16 Apr 2017 05:14:44 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 342465E2; Sun, 16 Apr 2017 05:14:44 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G5Ehsx027561; Sun, 16 Apr 2017 05:14:43 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G5EhKp027557; Sun, 16 Apr 2017 05:14:43 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160514.v3G5EhKp027557@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 05:14:42 +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: r316998 - in stable/11: contrib/compiler-rt/lib/builtins lib/libc/arm/aeabi X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 05:14:44 -0000 Author: mmel Date: Sun Apr 16 05:14:42 2017 New Revision: 316998 URL: https://svnweb.freebsd.org/changeset/base/316998 Log: MFC r313823,r313866: r313823: Pull in r285478 from upstream compiler-rt trunk (by Saleem Abdulrasool): r313866: Publish __aeabi_uidiv and __aeabi_idiv as compatible symbols from libc. Added: stable/11/lib/libc/arm/aeabi/aeabi_int_div.S - copied unchanged from r313866, head/lib/libc/arm/aeabi/aeabi_int_div.S Modified: stable/11/contrib/compiler-rt/lib/builtins/assembly.h stable/11/lib/libc/arm/aeabi/Makefile.inc stable/11/lib/libc/arm/aeabi/Symbol.map Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/compiler-rt/lib/builtins/assembly.h ============================================================================== --- stable/11/contrib/compiler-rt/lib/builtins/assembly.h Sun Apr 16 04:36:22 2017 (r316997) +++ stable/11/contrib/compiler-rt/lib/builtins/assembly.h Sun Apr 16 05:14:42 2017 (r316998) @@ -164,6 +164,7 @@ #define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target) \ .globl SYMBOL_NAME(name) SEPARATOR \ SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \ + DECLARE_SYMBOL_VISIBILITY(SYMBOL_NAME(name)) SEPARATOR \ .set SYMBOL_NAME(name), SYMBOL_NAME(target) SEPARATOR #if defined(__ARM_EABI__) Modified: stable/11/lib/libc/arm/aeabi/Makefile.inc ============================================================================== --- stable/11/lib/libc/arm/aeabi/Makefile.inc Sun Apr 16 04:36:22 2017 (r316997) +++ stable/11/lib/libc/arm/aeabi/Makefile.inc Sun Apr 16 05:14:42 2017 (r316998) @@ -28,5 +28,6 @@ SRCS+= aeabi_memcmp.S \ aeabi_memmove.S \ aeabi_memset.S -SYM_MAPS+=${LIBC_SRCTOP}/arm/aeabi/Symbol.map +SRCS+= aeabi_int_div.S +SYM_MAPS+=${LIBC_SRCTOP}/arm/aeabi/Symbol.map Modified: stable/11/lib/libc/arm/aeabi/Symbol.map ============================================================================== --- stable/11/lib/libc/arm/aeabi/Symbol.map Sun Apr 16 04:36:22 2017 (r316997) +++ stable/11/lib/libc/arm/aeabi/Symbol.map Sun Apr 16 05:14:42 2017 (r316998) @@ -69,4 +69,11 @@ FBSDprivate_1.0 { __aeabi_memset; __aeabi_memset4; __aeabi_memset8; + + /* + * A workaround for DEFINE_AEABI_FUNCTION_ALIAS() bug. + * - see aeabi_int_div.S + */ + __aeabi_idiv; + __aeabi_uidiv; }; Copied: stable/11/lib/libc/arm/aeabi/aeabi_int_div.S (from r313866, head/lib/libc/arm/aeabi/aeabi_int_div.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/arm/aeabi/aeabi_int_div.S Sun Apr 16 05:14:42 2017 (r316998, copy of r313866, head/lib/libc/arm/aeabi/aeabi_int_div.S) @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2017 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * Due to bug in libcompiler_rt, all symbols declared by + * DEFINE_AEABI_FUNCTION_ALIAS() are not hidden. All these but + * __aeabi_uidiv_compat and/or __aeabi_idiv_compat are explicitly + * exported from libc and don't causes problems. + * + * As workaround, export these from libc as compatible symbols, + * in global namespace + */ + +ENTRY(__aeabi_uidiv_compat) + .symver __aeabi_uidiv_compat, __aeabi_uidiv@ + b __udivsi3 +END(__aeabi_uidiv_compat) + +ENTRY(__aeabi_idiv_compat) + .symver __aeabi_idiv_compat, __aeabi_idiv@ + b __divsi3 +END(__aeabi_idiv_compat) + + .section .note.GNU-stack,"",%progbits From owner-svn-src-all@freebsd.org Sun Apr 16 05:17:49 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF015D40894; Sun, 16 Apr 2017 05:17:49 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7E4A3841; Sun, 16 Apr 2017 05:17:49 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G5HmVP027731; Sun, 16 Apr 2017 05:17:48 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G5HmKx027730; Sun, 16 Apr 2017 05:17:48 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160517.v3G5HmKx027730@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 05:17: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: r316999 - stable/11/lib/libc/arm X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 05:17:49 -0000 Author: mmel Date: Sun Apr 16 05:17:48 2017 New Revision: 316999 URL: https://svnweb.freebsd.org/changeset/base/316999 Log: MFC r313873: Publish fp[get][set]sticky() for ARMv6. Modified: stable/11/lib/libc/arm/Symbol_vfp.map Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/arm/Symbol_vfp.map ============================================================================== --- stable/11/lib/libc/arm/Symbol_vfp.map Sun Apr 16 05:14:42 2017 (r316998) +++ stable/11/lib/libc/arm/Symbol_vfp.map Sun Apr 16 05:17:48 2017 (r316999) @@ -8,3 +8,8 @@ FBSD_1.0 { fpsetmask; fpsetround; }; + +FBSD_1.5 { + fpgetsticky; + fpsetsticky; +}; From owner-svn-src-all@freebsd.org Sun Apr 16 05:59:30 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4E06D40304; Sun, 16 Apr 2017 05:59:30 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9A1C7AEC; Sun, 16 Apr 2017 05:59:30 +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 v3G5xTUq043945; Sun, 16 Apr 2017 05:59:29 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G5xTKV043944; Sun, 16 Apr 2017 05:59:29 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704160559.v3G5xTKV043944@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sun, 16 Apr 2017 05:59:29 +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: r317000 - stable/11/usr.sbin/bhyve X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 05:59:31 -0000 Author: mav Date: Sun Apr 16 05:59:29 2017 New Revision: 317000 URL: https://svnweb.freebsd.org/changeset/base/317000 Log: MFC r316427, r316428: Add Log directory and SATA NCQ Send and Receive Log. Those are used at least by Linux guests to detect queued TRIM support. Modified: stable/11/usr.sbin/bhyve/pci_ahci.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- stable/11/usr.sbin/bhyve/pci_ahci.c Sun Apr 16 05:17:48 2017 (r316999) +++ stable/11/usr.sbin/bhyve/pci_ahci.c Sun Apr 16 05:59:29 2017 (r317000) @@ -932,19 +932,36 @@ static void ahci_handle_read_log(struct ahci_port *p, int slot, uint8_t *cfis) { struct ahci_cmd_hdr *hdr; - uint8_t buf[512]; + uint32_t buf[128]; + uint8_t *buf8 = (uint8_t *)buf; + uint16_t *buf16 = (uint16_t *)buf; hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); - if (p->atapi || hdr->prdtl == 0 || cfis[4] != 0x10 || - cfis[5] != 0 || cfis[9] != 0 || cfis[12] != 1 || cfis[13] != 0) { + if (p->atapi || hdr->prdtl == 0 || cfis[5] != 0 || + cfis[9] != 0 || cfis[12] != 1 || cfis[13] != 0) { ahci_write_fis_d2h(p, slot, cfis, (ATA_E_ABORT << 8) | ATA_S_READY | ATA_S_ERROR); return; } memset(buf, 0, sizeof(buf)); - memcpy(buf, p->err_cfis, sizeof(p->err_cfis)); - ahci_checksum(buf, sizeof(buf)); + if (cfis[4] == 0x00) { /* Log directory */ + buf16[0x00] = 1; /* Version -- 1 */ + buf16[0x10] = 1; /* NCQ Command Error Log -- 1 page */ + buf16[0x13] = 1; /* SATA NCQ Send and Receive Log -- 1 page */ + } else if (cfis[4] == 0x10) { /* NCQ Command Error Log */ + memcpy(buf8, p->err_cfis, sizeof(p->err_cfis)); + ahci_checksum(buf8, sizeof(buf)); + } else if (cfis[4] == 0x13) { /* SATA NCQ Send and Receive Log */ + if (blockif_candelete(p->bctx) && !blockif_is_ro(p->bctx)) { + buf[0x00] = 1; /* SFQ DSM supported */ + buf[0x01] = 1; /* SFQ DSM TRIM supported */ + } + } else { + ahci_write_fis_d2h(p, slot, cfis, + (ATA_E_ABORT << 8) | ATA_S_READY | ATA_S_ERROR); + return; + } if (cfis[2] == ATA_READ_LOG_EXT) ahci_write_fis_piosetup(p); From owner-svn-src-all@freebsd.org Sun Apr 16 06:00:15 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6882BD4038E; Sun, 16 Apr 2017 06:00:15 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2050BC3D; Sun, 16 Apr 2017 06:00:15 +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 v3G60E25044077; Sun, 16 Apr 2017 06:00:14 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G60EBi044076; Sun, 16 Apr 2017 06:00:14 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704160600.v3G60EBi044076@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sun, 16 Apr 2017 06:00:14 +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: r317001 - stable/10/usr.sbin/bhyve X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 06:00:15 -0000 Author: mav Date: Sun Apr 16 06:00:14 2017 New Revision: 317001 URL: https://svnweb.freebsd.org/changeset/base/317001 Log: MFC r316427, r316428: Add Log directory and SATA NCQ Send and Receive Log. Those are used at least by Linux guests to detect queued TRIM support. Modified: stable/10/usr.sbin/bhyve/pci_ahci.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- stable/10/usr.sbin/bhyve/pci_ahci.c Sun Apr 16 05:59:29 2017 (r317000) +++ stable/10/usr.sbin/bhyve/pci_ahci.c Sun Apr 16 06:00:14 2017 (r317001) @@ -936,19 +936,36 @@ static void ahci_handle_read_log(struct ahci_port *p, int slot, uint8_t *cfis) { struct ahci_cmd_hdr *hdr; - uint8_t buf[512]; + uint32_t buf[128]; + uint8_t *buf8 = (uint8_t *)buf; + uint16_t *buf16 = (uint16_t *)buf; hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); - if (p->atapi || hdr->prdtl == 0 || cfis[4] != 0x10 || - cfis[5] != 0 || cfis[9] != 0 || cfis[12] != 1 || cfis[13] != 0) { + if (p->atapi || hdr->prdtl == 0 || cfis[5] != 0 || + cfis[9] != 0 || cfis[12] != 1 || cfis[13] != 0) { ahci_write_fis_d2h(p, slot, cfis, (ATA_E_ABORT << 8) | ATA_S_READY | ATA_S_ERROR); return; } memset(buf, 0, sizeof(buf)); - memcpy(buf, p->err_cfis, sizeof(p->err_cfis)); - ahci_checksum(buf, sizeof(buf)); + if (cfis[4] == 0x00) { /* Log directory */ + buf16[0x00] = 1; /* Version -- 1 */ + buf16[0x10] = 1; /* NCQ Command Error Log -- 1 page */ + buf16[0x13] = 1; /* SATA NCQ Send and Receive Log -- 1 page */ + } else if (cfis[4] == 0x10) { /* NCQ Command Error Log */ + memcpy(buf8, p->err_cfis, sizeof(p->err_cfis)); + ahci_checksum(buf8, sizeof(buf)); + } else if (cfis[4] == 0x13) { /* SATA NCQ Send and Receive Log */ + if (blockif_candelete(p->bctx) && !blockif_is_ro(p->bctx)) { + buf[0x00] = 1; /* SFQ DSM supported */ + buf[0x01] = 1; /* SFQ DSM TRIM supported */ + } + } else { + ahci_write_fis_d2h(p, slot, cfis, + (ATA_E_ABORT << 8) | ATA_S_READY | ATA_S_ERROR); + return; + } if (cfis[2] == ATA_READ_LOG_EXT) ahci_write_fis_piosetup(p); From owner-svn-src-all@freebsd.org Sun Apr 16 06:35:10 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F1732D40EE8; Sun, 16 Apr 2017 06:35:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B2C225DF; Sun, 16 Apr 2017 06:35:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G6Z9wB060870; Sun, 16 Apr 2017 06:35:09 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G6Z9J4060866; Sun, 16 Apr 2017 06:35:09 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160635.v3G6Z9J4060866@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 06:35:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317002 - in stable/11/sys/arm: arm include X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 06:35:11 -0000 Author: mmel Date: Sun Apr 16 06:35:09 2017 New Revision: 317002 URL: https://svnweb.freebsd.org/changeset/base/317002 Log: MFC r306631,r306640,r306641,r306650,r306656: r306631: Use C99 designated initializers to create the armv6 cpu_functions structs. This will help with a later cleanup of what functions we implement. r306640: Only define the CF_* macros on ARMv4/v5. They are unused on armv6. r306641: Remove the parts of cpu_functions from armv6 that are unused on that architecture. r306650: Add the Cortex-A{53,57,72} ID register values. These can all run 32-bit code so could run a 32-bit kernel. r306656: Use the cortex functions when booting on one of the Cortex-A ARMv8 CPUs. This list is incomplete, however we don't have the ID values for the missing Cortex-A32 or A35. Modified: stable/11/sys/arm/arm/cpufunc.c stable/11/sys/arm/arm/genassym.c stable/11/sys/arm/include/armreg.h stable/11/sys/arm/include/cpufunc.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/arm/cpufunc.c ============================================================================== --- stable/11/sys/arm/arm/cpufunc.c Sun Apr 16 06:00:14 2017 (r317001) +++ stable/11/sys/arm/arm/cpufunc.c Sun Apr 16 06:35:09 2017 (r317002) @@ -241,50 +241,23 @@ struct cpu_functions sheeva_cpufuncs = { #ifdef CPU_MV_PJ4B struct cpu_functions pj4bv7_cpufuncs = { - /* CPU functions */ - - armv7_drain_writebuf, /* cpwait */ - /* MMU functions */ - - cpufunc_control, /* control */ - armv7_setttb, /* Setttb */ - - /* TLB functions */ - - armv7_tlb_flushID, /* tlb_flushID */ - armv7_tlb_flushID_SE, /* tlb_flushID_SE */ - armv7_tlb_flushID, /* tlb_flushD */ - armv7_tlb_flushID_SE, /* tlb_flushD_SE */ + .cf_control = cpufunc_control, + .cf_setttb = armv7_setttb, /* Cache operations */ - armv7_icache_sync_range, /* icache_sync_range */ - - armv7_dcache_wbinv_all, /* dcache_wbinv_all */ - armv7_dcache_wbinv_range, /* dcache_wbinv_range */ - armv7_dcache_inv_range, /* dcache_inv_range */ - armv7_dcache_wb_range, /* dcache_wb_range */ - - armv7_idcache_inv_all, /* idcache_inv_all */ - armv7_idcache_wbinv_all, /* idcache_wbinv_all */ - armv7_idcache_wbinv_range, /* idcache_wbinv_all */ - - (void *)cpufunc_nullop, /* l2cache_wbinv_all */ - (void *)cpufunc_nullop, /* l2cache_wbinv_range */ - (void *)cpufunc_nullop, /* l2cache_inv_range */ - (void *)cpufunc_nullop, /* l2cache_wb_range */ - (void *)cpufunc_nullop, /* l2cache_drain_writebuf */ + .cf_l2cache_wbinv_all = (void *)cpufunc_nullop, + .cf_l2cache_wbinv_range = (void *)cpufunc_nullop, + .cf_l2cache_inv_range = (void *)cpufunc_nullop, + .cf_l2cache_wb_range = (void *)cpufunc_nullop, + .cf_l2cache_drain_writebuf = (void *)cpufunc_nullop, /* Other functions */ - - armv7_drain_writebuf, /* drain_writebuf */ - - (void *)cpufunc_nullop, /* sleep */ + .cf_drain_writebuf = armv7_drain_writebuf, + .cf_sleep = (void *)cpufunc_nullop, /* Soft functions */ - armv7_context_switch, /* context_switch */ - - pj4bv7_setup /* cpu setup */ + .cf_setup = pj4bv7_setup }; #endif /* CPU_MV_PJ4B */ @@ -444,111 +417,50 @@ struct cpu_functions fa526_cpufuncs = { #if defined(CPU_ARM1176) struct cpu_functions arm1176_cpufuncs = { - /* CPU functions */ - - cpufunc_nullop, /* cpwait */ - /* MMU functions */ - - cpufunc_control, /* control */ - arm11x6_setttb, /* Setttb */ - - /* TLB functions */ - - arm11_tlb_flushID, /* tlb_flushID */ - arm11_tlb_flushID_SE, /* tlb_flushID_SE */ - arm11_tlb_flushD, /* tlb_flushD */ - arm11_tlb_flushD_SE, /* tlb_flushD_SE */ + .cf_control = cpufunc_control, + .cf_setttb = arm11x6_setttb, /* Cache operations */ - - arm11x6_icache_sync_range, /* icache_sync_range */ - - arm11x6_dcache_wbinv_all, /* dcache_wbinv_all */ - armv6_dcache_wbinv_range, /* dcache_wbinv_range */ - armv6_dcache_inv_range, /* dcache_inv_range */ - armv6_dcache_wb_range, /* dcache_wb_range */ - - armv6_idcache_inv_all, /* idcache_inv_all */ - arm11x6_idcache_wbinv_all, /* idcache_wbinv_all */ - arm11x6_idcache_wbinv_range, /* idcache_wbinv_range */ - - (void *)cpufunc_nullop, /* l2cache_wbinv_all */ - (void *)cpufunc_nullop, /* l2cache_wbinv_range */ - (void *)cpufunc_nullop, /* l2cache_inv_range */ - (void *)cpufunc_nullop, /* l2cache_wb_range */ - (void *)cpufunc_nullop, /* l2cache_drain_writebuf */ + .cf_l2cache_wbinv_all = (void *)cpufunc_nullop, + .cf_l2cache_wbinv_range = (void *)cpufunc_nullop, + .cf_l2cache_inv_range = (void *)cpufunc_nullop, + .cf_l2cache_wb_range = (void *)cpufunc_nullop, + .cf_l2cache_drain_writebuf = (void *)cpufunc_nullop, /* Other functions */ - - arm11_drain_writebuf, /* drain_writebuf */ - - arm11x6_sleep, /* sleep */ + .cf_drain_writebuf = arm11_drain_writebuf, + .cf_sleep = arm11x6_sleep, /* Soft functions */ - - arm11_context_switch, /* context_switch */ - - arm11x6_setup /* cpu setup */ + .cf_setup = arm11x6_setup }; #endif /*CPU_ARM1176 */ #if defined(CPU_CORTEXA) || defined(CPU_KRAIT) struct cpu_functions cortexa_cpufuncs = { - /* CPU functions */ - - cpufunc_nullop, /* cpwait */ - /* MMU functions */ - - cpufunc_control, /* control */ - armv7_setttb, /* Setttb */ - - /* - * TLB functions. ARMv7 does all TLB ops based on a unified TLB model - * whether the hardware implements separate I+D or not, so we use the - * same 'ID' functions for all 3 variations. - */ - - armv7_tlb_flushID, /* tlb_flushID */ - armv7_tlb_flushID_SE, /* tlb_flushID_SE */ - armv7_tlb_flushID, /* tlb_flushD */ - armv7_tlb_flushID_SE, /* tlb_flushD_SE */ + .cf_control = cpufunc_control, + .cf_setttb = armv7_setttb, /* Cache operations */ - armv7_icache_sync_range, /* icache_sync_range */ - - armv7_dcache_wbinv_all, /* dcache_wbinv_all */ - armv7_dcache_wbinv_range, /* dcache_wbinv_range */ - armv7_dcache_inv_range, /* dcache_inv_range */ - armv7_dcache_wb_range, /* dcache_wb_range */ - - armv7_idcache_inv_all, /* idcache_inv_all */ - armv7_idcache_wbinv_all, /* idcache_wbinv_all */ - armv7_idcache_wbinv_range, /* idcache_wbinv_range */ - /* * Note: For CPUs using the PL310 the L2 ops are filled in when the * L2 cache controller is actually enabled. */ - cpufunc_nullop, /* l2cache_wbinv_all */ - (void *)cpufunc_nullop, /* l2cache_wbinv_range */ - (void *)cpufunc_nullop, /* l2cache_inv_range */ - (void *)cpufunc_nullop, /* l2cache_wb_range */ - (void *)cpufunc_nullop, /* l2cache_drain_writebuf */ + .cf_l2cache_wbinv_all = cpufunc_nullop, + .cf_l2cache_wbinv_range = (void *)cpufunc_nullop, + .cf_l2cache_inv_range = (void *)cpufunc_nullop, + .cf_l2cache_wb_range = (void *)cpufunc_nullop, + .cf_l2cache_drain_writebuf = (void *)cpufunc_nullop, /* Other functions */ - - armv7_drain_writebuf, /* drain_writebuf */ - - armv7_cpu_sleep, /* sleep */ + .cf_drain_writebuf = armv7_drain_writebuf, + .cf_sleep = armv7_cpu_sleep, /* Soft functions */ - - armv7_context_switch, /* context_switch */ - - cortexa_setup /* cpu setup */ + .cf_setup = cortexa_setup }; #endif /* CPU_CORTEXA */ @@ -767,6 +679,9 @@ set_cpufuncs(void) case CPU_ID_CORTEXA9: case CPU_ID_CORTEXA12: case CPU_ID_CORTEXA15: + case CPU_ID_CORTEXA53: + case CPU_ID_CORTEXA57: + case CPU_ID_CORTEXA72: case CPU_ID_KRAIT300: cpufuncs = cortexa_cpufuncs; get_cachetype_cp15(); Modified: stable/11/sys/arm/arm/genassym.c ============================================================================== --- stable/11/sys/arm/arm/genassym.c Sun Apr 16 06:00:14 2017 (r317001) +++ stable/11/sys/arm/arm/genassym.c Sun Apr 16 06:35:09 2017 (r317002) @@ -92,11 +92,13 @@ ASSYM(M_DATA, offsetof(struct mbuf, m_da ASSYM(M_NEXT, offsetof(struct mbuf, m_next)); ASSYM(IP_SRC, offsetof(struct ip, ip_src)); ASSYM(IP_DST, offsetof(struct ip, ip_dst)); +#if __ARM_ARCH < 6 ASSYM(CF_CONTEXT_SWITCH, offsetof(struct cpu_functions, cf_context_switch)); ASSYM(CF_DCACHE_WB_RANGE, offsetof(struct cpu_functions, cf_dcache_wb_range)); ASSYM(CF_IDCACHE_WBINV_ALL, offsetof(struct cpu_functions, cf_idcache_wbinv_all)); ASSYM(CF_L2CACHE_WBINV_ALL, offsetof(struct cpu_functions, cf_l2cache_wbinv_all)); ASSYM(CF_TLB_FLUSHID_SE, offsetof(struct cpu_functions, cf_tlb_flushID_SE)); +#endif ASSYM(TD_PCB, offsetof(struct thread, td_pcb)); ASSYM(TD_FLAGS, offsetof(struct thread, td_flags)); Modified: stable/11/sys/arm/include/armreg.h ============================================================================== --- stable/11/sys/arm/include/armreg.h Sun Apr 16 06:00:14 2017 (r317001) +++ stable/11/sys/arm/include/armreg.h Sun Apr 16 06:35:09 2017 (r317002) @@ -152,6 +152,9 @@ #define CPU_ID_CORTEXA15R1 (CPU_ID_CORTEXA15 | (1 << CPU_ID_VARIANT_SHIFT)) #define CPU_ID_CORTEXA15R2 (CPU_ID_CORTEXA15 | (2 << CPU_ID_VARIANT_SHIFT)) #define CPU_ID_CORTEXA15R3 (CPU_ID_CORTEXA15 | (3 << CPU_ID_VARIANT_SHIFT)) +#define CPU_ID_CORTEXA53 (CPU_ID_ARM_LTD | CPU_ID_CPUID_SCHEME | 0xd030) +#define CPU_ID_CORTEXA57 (CPU_ID_ARM_LTD | CPU_ID_CPUID_SCHEME | 0xd070) +#define CPU_ID_CORTEXA72 (CPU_ID_ARM_LTD | CPU_ID_CPUID_SCHEME | 0xd080) #define CPU_ID_KRAIT300 (CPU_ID_QUALCOM | CPU_ID_CPUID_SCHEME | 0x06f0) /* Snapdragon S4 Pro/APQ8064 */ Modified: stable/11/sys/arm/include/cpufunc.h ============================================================================== --- stable/11/sys/arm/include/cpufunc.h Sun Apr 16 06:00:14 2017 (r317001) +++ stable/11/sys/arm/include/cpufunc.h Sun Apr 16 06:35:09 2017 (r317002) @@ -58,14 +58,16 @@ breakpoint(void) struct cpu_functions { /* CPU functions */ - +#if __ARM_ARCH < 6 void (*cf_cpwait) (void); +#endif /* MMU functions */ u_int (*cf_control) (u_int bic, u_int eor); void (*cf_setttb) (u_int ttb); +#if __ARM_ARCH < 6 /* TLB functions */ void (*cf_tlb_flushID) (void); @@ -138,6 +140,7 @@ struct cpu_functions { void (*cf_idcache_inv_all) (void); void (*cf_idcache_wbinv_all) (void); void (*cf_idcache_wbinv_range) (vm_offset_t, vm_size_t); +#endif void (*cf_l2cache_wbinv_all) (void); void (*cf_l2cache_wbinv_range) (vm_offset_t, vm_size_t); void (*cf_l2cache_inv_range) (vm_offset_t, vm_size_t); @@ -150,9 +153,11 @@ struct cpu_functions { void (*cf_sleep) (int mode); +#if __ARM_ARCH < 6 /* Soft functions */ void (*cf_context_switch) (void); +#endif void (*cf_setup) (void); }; From owner-svn-src-all@freebsd.org Sun Apr 16 06:51:07 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C962DD403D2; Sun, 16 Apr 2017 06:51:07 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A4855E07; Sun, 16 Apr 2017 06:51:07 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G6p6OX065221; Sun, 16 Apr 2017 06:51:06 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G6p6NL065218; Sun, 16 Apr 2017 06:51:06 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160651.v3G6p6NL065218@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 06:51: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: r317003 - in stable/11/sys/arm: arm include X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 06:51:07 -0000 Author: mmel Date: Sun Apr 16 06:51:06 2017 New Revision: 317003 URL: https://svnweb.freebsd.org/changeset/base/317003 Log: MFC r306704,r308406: r306704: ARM: Remove next bunch of unused cpu_functions from ARMv6. r308406: Only include sys/boot.h if LINUX_BOOT_ABI is defined Modified: stable/11/sys/arm/arm/cpufunc.c stable/11/sys/arm/arm/machdep.c stable/11/sys/arm/include/cpufunc.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/arm/cpufunc.c ============================================================================== --- stable/11/sys/arm/arm/cpufunc.c Sun Apr 16 06:35:09 2017 (r317002) +++ stable/11/sys/arm/arm/cpufunc.c Sun Apr 16 06:51:06 2017 (r317003) @@ -241,9 +241,6 @@ struct cpu_functions sheeva_cpufuncs = { #ifdef CPU_MV_PJ4B struct cpu_functions pj4bv7_cpufuncs = { - /* MMU functions */ - .cf_control = cpufunc_control, - .cf_setttb = armv7_setttb, /* Cache operations */ .cf_l2cache_wbinv_all = (void *)cpufunc_nullop, @@ -253,7 +250,6 @@ struct cpu_functions pj4bv7_cpufuncs = { .cf_l2cache_drain_writebuf = (void *)cpufunc_nullop, /* Other functions */ - .cf_drain_writebuf = armv7_drain_writebuf, .cf_sleep = (void *)cpufunc_nullop, /* Soft functions */ @@ -417,9 +413,6 @@ struct cpu_functions fa526_cpufuncs = { #if defined(CPU_ARM1176) struct cpu_functions arm1176_cpufuncs = { - /* MMU functions */ - .cf_control = cpufunc_control, - .cf_setttb = arm11x6_setttb, /* Cache operations */ .cf_l2cache_wbinv_all = (void *)cpufunc_nullop, @@ -429,7 +422,6 @@ struct cpu_functions arm1176_cpufuncs = .cf_l2cache_drain_writebuf = (void *)cpufunc_nullop, /* Other functions */ - .cf_drain_writebuf = arm11_drain_writebuf, .cf_sleep = arm11x6_sleep, /* Soft functions */ @@ -439,9 +431,6 @@ struct cpu_functions arm1176_cpufuncs = #if defined(CPU_CORTEXA) || defined(CPU_KRAIT) struct cpu_functions cortexa_cpufuncs = { - /* MMU functions */ - .cf_control = cpufunc_control, - .cf_setttb = armv7_setttb, /* Cache operations */ @@ -456,7 +445,6 @@ struct cpu_functions cortexa_cpufuncs = .cf_l2cache_drain_writebuf = (void *)cpufunc_nullop, /* Other functions */ - .cf_drain_writebuf = armv7_drain_writebuf, .cf_sleep = armv7_cpu_sleep, /* Soft functions */ Modified: stable/11/sys/arm/arm/machdep.c ============================================================================== --- stable/11/sys/arm/arm/machdep.c Sun Apr 16 06:35:09 2017 (r317002) +++ stable/11/sys/arm/arm/machdep.c Sun Apr 16 06:51:06 2017 (r317003) @@ -76,7 +76,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#if defined(LINUX_BOOT_ABI) #include +#endif #include #include #include @@ -412,7 +414,7 @@ arm_vector_init(vm_offset_t va, int whic icache_sync(va, (ARM_NVEC * 2) * sizeof(u_int)); vector_page = va; - +#if __ARM_ARCH < 6 if (va == ARM_VECTORS_HIGH) { /* * Enable high vectors in the system control reg (SCTLR). @@ -427,6 +429,7 @@ arm_vector_init(vm_offset_t va, int whic */ cpu_control(CPU_CONTROL_VECRELOC, CPU_CONTROL_VECRELOC); } +#endif } static void Modified: stable/11/sys/arm/include/cpufunc.h ============================================================================== --- stable/11/sys/arm/include/cpufunc.h Sun Apr 16 06:35:09 2017 (r317002) +++ stable/11/sys/arm/include/cpufunc.h Sun Apr 16 06:51:06 2017 (r317003) @@ -60,14 +60,12 @@ struct cpu_functions { /* CPU functions */ #if __ARM_ARCH < 6 void (*cf_cpwait) (void); -#endif /* MMU functions */ u_int (*cf_control) (u_int bic, u_int eor); void (*cf_setttb) (u_int ttb); -#if __ARM_ARCH < 6 /* TLB functions */ void (*cf_tlb_flushID) (void); @@ -149,7 +147,9 @@ struct cpu_functions { /* Other functions */ +#if __ARM_ARCH < 6 void (*cf_drain_writebuf) (void); +#endif void (*cf_sleep) (int mode); From owner-svn-src-all@freebsd.org Sun Apr 16 07:21:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 577FED40A72; Sun, 16 Apr 2017 07:21:22 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25B9CCC8; Sun, 16 Apr 2017 07:21:22 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G7LL3e080339; Sun, 16 Apr 2017 07:21:21 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G7LLb6080335; Sun, 16 Apr 2017 07:21:21 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160721.v3G7LLb6080335@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 07:21:21 +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: r317004 - in stable/11/sys: amd64/amd64 amd64/include/pc arm/arm arm/at91 arm/include arm64/arm64 conf i386/include/pc sys X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 07:21:22 -0000 Author: mmel Date: Sun Apr 16 07:21:20 2017 New Revision: 317004 URL: https://svnweb.freebsd.org/changeset/base/317004 Log: MFC r303261,r315059: r303261: Add more UEFI/e820 memory types from latest specifications. r315059: Split overbloated machep.c to multiple files and do basic cleanup of these fragments. Added: stable/11/sys/arm/arm/machdep_boot.c - copied unchanged from r315059, head/sys/arm/arm/machdep_boot.c stable/11/sys/arm/arm/machdep_kdb.c - copied unchanged from r315059, head/sys/arm/arm/machdep_kdb.c stable/11/sys/arm/arm/machdep_ptrace.c - copied unchanged from r315059, head/sys/arm/arm/machdep_ptrace.c Modified: stable/11/sys/amd64/amd64/machdep.c stable/11/sys/amd64/include/pc/bios.h stable/11/sys/arm/arm/machdep.c stable/11/sys/arm/at91/at91_machdep.c stable/11/sys/arm/include/machdep.h stable/11/sys/arm64/arm64/machdep.c stable/11/sys/conf/files.arm stable/11/sys/i386/include/pc/bios.h stable/11/sys/sys/efi.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/amd64/machdep.c ============================================================================== --- stable/11/sys/amd64/amd64/machdep.c Sun Apr 16 06:51:06 2017 (r317003) +++ stable/11/sys/amd64/amd64/machdep.c Sun Apr 16 07:21:20 2017 (r317004) @@ -1086,7 +1086,8 @@ add_efi_map_entries(struct efi_map_heade "ACPIMemoryNVS", "MemoryMappedIO", "MemoryMappedIOPortSpace", - "PalCode" + "PalCode", + "PersistentMemory" }; /* @@ -1107,7 +1108,7 @@ add_efi_map_entries(struct efi_map_heade for (i = 0, p = map; i < ndesc; i++, p = efi_next_descriptor(p, efihdr->descriptor_size)) { if (boothowto & RB_VERBOSE) { - if (p->md_type <= EFI_MD_TYPE_PALCODE) + if (p->md_type < nitems(types)) type = types[p->md_type]; else type = ""; @@ -1129,6 +1130,12 @@ add_efi_map_entries(struct efi_map_heade printf("RP "); if (p->md_attr & EFI_MD_ATTR_XP) printf("XP "); + if (p->md_attr & EFI_MD_ATTR_NV) + printf("NV "); + if (p->md_attr & EFI_MD_ATTR_MORE_RELIABLE) + printf("MORE_RELIABLE "); + if (p->md_attr & EFI_MD_ATTR_RO) + printf("RO "); if (p->md_attr & EFI_MD_ATTR_RT) printf("RUNTIME"); printf("\n"); Modified: stable/11/sys/amd64/include/pc/bios.h ============================================================================== --- stable/11/sys/amd64/include/pc/bios.h Sun Apr 16 06:51:06 2017 (r317003) +++ stable/11/sys/amd64/include/pc/bios.h Sun Apr 16 07:21:20 2017 (r317004) @@ -40,6 +40,9 @@ #define SMAP_TYPE_ACPI_RECLAIM 3 #define SMAP_TYPE_ACPI_NVS 4 #define SMAP_TYPE_ACPI_ERROR 5 +#define SMAP_TYPE_DISABLED 6 +#define SMAP_TYPE_PMEM 7 +#define SMAP_TYPE_PRAM 12 #define SMAP_XATTR_ENABLED 0x00000001 #define SMAP_XATTR_NON_VOLATILE 0x00000002 Modified: stable/11/sys/arm/arm/machdep.c ============================================================================== --- stable/11/sys/arm/arm/machdep.c Sun Apr 16 06:51:06 2017 (r317003) +++ stable/11/sys/arm/arm/machdep.c Sun Apr 16 07:21:20 2017 (r317004) @@ -53,129 +53,43 @@ __FBSDID("$FreeBSD$"); #include -#include -#include -#include #include #include #include #include -#include #include #include -#include #include #include #include -#include #include -#include -#include #include -#include -#include -#include -#include -#if defined(LINUX_BOOT_ABI) -#include -#endif #include #include -#include #include -#include #include #include -#include -#include -#include -#include -#include #include #include #include -#include -#include -#include -#include #include -#include -#include -#include #include -#include #include #include #include #include -#include -#include +#include #include #include #include -#include #ifdef FDT -#include #include -#include +#include #endif -#ifdef DDB -#include - -#if __ARM_ARCH >= 6 - -DB_SHOW_COMMAND(cp15, db_show_cp15) -{ - u_int reg; - - reg = cp15_midr_get(); - db_printf("Cpu ID: 0x%08x\n", reg); - reg = cp15_ctr_get(); - db_printf("Current Cache Lvl ID: 0x%08x\n",reg); - - reg = cp15_sctlr_get(); - db_printf("Ctrl: 0x%08x\n",reg); - reg = cp15_actlr_get(); - db_printf("Aux Ctrl: 0x%08x\n",reg); - - reg = cp15_id_pfr0_get(); - db_printf("Processor Feat 0: 0x%08x\n", reg); - reg = cp15_id_pfr1_get(); - db_printf("Processor Feat 1: 0x%08x\n", reg); - reg = cp15_id_dfr0_get(); - db_printf("Debug Feat 0: 0x%08x\n", reg); - reg = cp15_id_afr0_get(); - db_printf("Auxiliary Feat 0: 0x%08x\n", reg); - reg = cp15_id_mmfr0_get(); - db_printf("Memory Model Feat 0: 0x%08x\n", reg); - reg = cp15_id_mmfr1_get(); - db_printf("Memory Model Feat 1: 0x%08x\n", reg); - reg = cp15_id_mmfr2_get(); - db_printf("Memory Model Feat 2: 0x%08x\n", reg); - reg = cp15_id_mmfr3_get(); - db_printf("Memory Model Feat 3: 0x%08x\n", reg); - reg = cp15_ttbr_get(); - db_printf("TTB0: 0x%08x\n", reg); -} - -DB_SHOW_COMMAND(vtop, db_show_vtop) -{ - u_int reg; - - if (have_addr) { - cp15_ats1cpr_set(addr); - reg = cp15_par_get(); - db_printf("Physical address reg: 0x%08x\n",reg); - } else - db_printf("show vtop \n"); -} -#endif /* __ARM_ARCH >= 6 */ -#endif /* DDB */ - #ifdef DEBUG #define debugf(fmt, args...) printf(fmt, ##args) #else @@ -204,10 +118,7 @@ int _min_bzero_size = 0; extern int *end; #ifdef FDT -static char *loader_envp; - vm_paddr_t pmap_pa; - #if __ARM_ARCH >= 6 vm_offset_t systempage; vm_offset_t irqstack; @@ -220,64 +131,21 @@ vm_offset_t abtstack; * stacks etc.), uprounded to be divisible by 4. */ #define KERNEL_PT_MAX 78 - static struct pv_addr kernel_pt_table[KERNEL_PT_MAX]; - struct pv_addr systempage; static struct pv_addr msgbufpv; struct pv_addr irqstack; struct pv_addr undstack; struct pv_addr abtstack; static struct pv_addr kernelstack; -#endif -#endif - -#if defined(LINUX_BOOT_ABI) -#define LBABI_MAX_BANKS 10 +#endif /* __ARM_ARCH >= 6 */ +#endif /* FDT */ -#define CMDLINE_GUARD "FreeBSD:" -uint32_t board_id; -struct arm_lbabi_tag *atag_list; -char linux_command_line[LBABI_MAX_COMMAND_LINE + 1]; -char atags[LBABI_MAX_COMMAND_LINE * 2]; -uint32_t memstart[LBABI_MAX_BANKS]; -uint32_t memsize[LBABI_MAX_BANKS]; -uint32_t membanks; -#endif #ifdef MULTIDELAY static delay_func *delay_impl; static void *delay_arg; #endif -static uint32_t board_revision; -/* hex representation of uint64_t */ -static char board_serial[32]; - -SYSCTL_NODE(_hw, OID_AUTO, board, CTLFLAG_RD, 0, "Board attributes"); -SYSCTL_UINT(_hw_board, OID_AUTO, revision, CTLFLAG_RD, - &board_revision, 0, "Board revision"); -SYSCTL_STRING(_hw_board, OID_AUTO, serial, CTLFLAG_RD, - board_serial, 0, "Board serial"); - -int vfp_exists; -SYSCTL_INT(_hw, HW_FLOATINGPT, floatingpoint, CTLFLAG_RD, - &vfp_exists, 0, "Floating point support enabled"); - -void -board_set_serial(uint64_t serial) -{ - - snprintf(board_serial, sizeof(board_serial)-1, - "%016jx", serial); -} - -void -board_set_revision(uint32_t revision) -{ - - board_revision = revision; -} - void sendsig(catcher, ksi, mask) sig_t catcher; @@ -569,237 +437,6 @@ DELAY(int usec) } #endif -int -fill_regs(struct thread *td, struct reg *regs) -{ - struct trapframe *tf = td->td_frame; - bcopy(&tf->tf_r0, regs->r, sizeof(regs->r)); - regs->r_sp = tf->tf_usr_sp; - regs->r_lr = tf->tf_usr_lr; - regs->r_pc = tf->tf_pc; - regs->r_cpsr = tf->tf_spsr; - return (0); -} -int -fill_fpregs(struct thread *td, struct fpreg *regs) -{ - bzero(regs, sizeof(*regs)); - return (0); -} - -int -set_regs(struct thread *td, struct reg *regs) -{ - struct trapframe *tf = td->td_frame; - - bcopy(regs->r, &tf->tf_r0, sizeof(regs->r)); - tf->tf_usr_sp = regs->r_sp; - tf->tf_usr_lr = regs->r_lr; - tf->tf_pc = regs->r_pc; - tf->tf_spsr &= ~PSR_FLAGS; - tf->tf_spsr |= regs->r_cpsr & PSR_FLAGS; - return (0); -} - -int -set_fpregs(struct thread *td, struct fpreg *regs) -{ - return (0); -} - -int -fill_dbregs(struct thread *td, struct dbreg *regs) -{ - return (0); -} -int -set_dbregs(struct thread *td, struct dbreg *regs) -{ - return (0); -} - - -static int -ptrace_read_int(struct thread *td, vm_offset_t addr, uint32_t *v) -{ - - if (proc_readmem(td, td->td_proc, addr, v, sizeof(*v)) != sizeof(*v)) - return (ENOMEM); - return (0); -} - -static int -ptrace_write_int(struct thread *td, vm_offset_t addr, uint32_t v) -{ - - if (proc_writemem(td, td->td_proc, addr, &v, sizeof(v)) != sizeof(v)) - return (ENOMEM); - return (0); -} - -static u_int -ptrace_get_usr_reg(void *cookie, int reg) -{ - int ret; - struct thread *td = cookie; - - KASSERT(((reg >= 0) && (reg <= ARM_REG_NUM_PC)), - ("reg is outside range")); - - switch(reg) { - case ARM_REG_NUM_PC: - ret = td->td_frame->tf_pc; - break; - case ARM_REG_NUM_LR: - ret = td->td_frame->tf_usr_lr; - break; - case ARM_REG_NUM_SP: - ret = td->td_frame->tf_usr_sp; - break; - default: - ret = *((register_t*)&td->td_frame->tf_r0 + reg); - break; - } - - return (ret); -} - -static u_int -ptrace_get_usr_int(void* cookie, vm_offset_t offset, u_int* val) -{ - struct thread *td = cookie; - u_int error; - - error = ptrace_read_int(td, offset, val); - - return (error); -} - -/** - * This function parses current instruction opcode and decodes - * any possible jump (change in PC) which might occur after - * the instruction is executed. - * - * @param td Thread structure of analysed task - * @param cur_instr Currently executed instruction - * @param alt_next_address Pointer to the variable where - * the destination address of the - * jump instruction shall be stored. - * - * @return <0> when jump is possible - * otherwise - */ -static int -ptrace_get_alternative_next(struct thread *td, uint32_t cur_instr, - uint32_t *alt_next_address) -{ - int error; - - if (inst_branch(cur_instr) || inst_call(cur_instr) || - inst_return(cur_instr)) { - error = arm_predict_branch(td, cur_instr, td->td_frame->tf_pc, - alt_next_address, ptrace_get_usr_reg, ptrace_get_usr_int); - - return (error); - } - - return (EINVAL); -} - -int -ptrace_single_step(struct thread *td) -{ - struct proc *p; - int error, error_alt; - uint32_t cur_instr, alt_next = 0; - - /* TODO: This needs to be updated for Thumb-2 */ - if ((td->td_frame->tf_spsr & PSR_T) != 0) - return (EINVAL); - - KASSERT(td->td_md.md_ptrace_instr == 0, - ("Didn't clear single step")); - KASSERT(td->td_md.md_ptrace_instr_alt == 0, - ("Didn't clear alternative single step")); - p = td->td_proc; - PROC_UNLOCK(p); - - error = ptrace_read_int(td, td->td_frame->tf_pc, - &cur_instr); - if (error) - goto out; - - error = ptrace_read_int(td, td->td_frame->tf_pc + INSN_SIZE, - &td->td_md.md_ptrace_instr); - if (error == 0) { - error = ptrace_write_int(td, td->td_frame->tf_pc + INSN_SIZE, - PTRACE_BREAKPOINT); - if (error) { - td->td_md.md_ptrace_instr = 0; - } else { - td->td_md.md_ptrace_addr = td->td_frame->tf_pc + - INSN_SIZE; - } - } - - error_alt = ptrace_get_alternative_next(td, cur_instr, &alt_next); - if (error_alt == 0) { - error_alt = ptrace_read_int(td, alt_next, - &td->td_md.md_ptrace_instr_alt); - if (error_alt) { - td->td_md.md_ptrace_instr_alt = 0; - } else { - error_alt = ptrace_write_int(td, alt_next, - PTRACE_BREAKPOINT); - if (error_alt) - td->td_md.md_ptrace_instr_alt = 0; - else - td->td_md.md_ptrace_addr_alt = alt_next; - } - } - -out: - PROC_LOCK(p); - return ((error != 0) && (error_alt != 0)); -} - -int -ptrace_clear_single_step(struct thread *td) -{ - struct proc *p; - - /* TODO: This needs to be updated for Thumb-2 */ - if ((td->td_frame->tf_spsr & PSR_T) != 0) - return (EINVAL); - - if (td->td_md.md_ptrace_instr != 0) { - p = td->td_proc; - PROC_UNLOCK(p); - ptrace_write_int(td, td->td_md.md_ptrace_addr, - td->td_md.md_ptrace_instr); - PROC_LOCK(p); - td->td_md.md_ptrace_instr = 0; - } - - if (td->td_md.md_ptrace_instr_alt != 0) { - p = td->td_proc; - PROC_UNLOCK(p); - ptrace_write_int(td, td->td_md.md_ptrace_addr_alt, - td->td_md.md_ptrace_instr_alt); - PROC_LOCK(p); - td->td_md.md_ptrace_instr_alt = 0; - } - - return (0); -} - -int -ptrace_set_pc(struct thread *td, unsigned long addr) -{ - td->td_frame->tf_pc = addr; - return (0); -} - void cpu_pcpu_init(struct pcpu *pcpu, int cpuid, size_t size) { @@ -919,9 +556,6 @@ set_mcontext(struct thread *td, mcontext return (0); } -/* - * MPSAFE - */ int sys_sigreturn(td, uap) struct thread *td; @@ -953,7 +587,6 @@ sys_sigreturn(td, uap) return (EJUSTRETURN); } - /* * Construct a PCB from a trapframe. This is called from kdb_trap() where * we want to start a backtrace from the function that caused us to enter @@ -978,68 +611,6 @@ makectx(struct trapframe *tf, struct pcb pcb->pcb_regs.sf_sp = tf->tf_usr_sp; } -/* - * Fake up a boot descriptor table - */ -vm_offset_t -fake_preload_metadata(struct arm_boot_params *abp __unused, void *dtb_ptr, - size_t dtb_size) -{ -#ifdef DDB - vm_offset_t zstart = 0, zend = 0; -#endif - vm_offset_t lastaddr; - int i = 0; - static uint32_t fake_preload[35]; - - fake_preload[i++] = MODINFO_NAME; - fake_preload[i++] = strlen("kernel") + 1; - strcpy((char*)&fake_preload[i++], "kernel"); - i += 1; - fake_preload[i++] = MODINFO_TYPE; - fake_preload[i++] = strlen("elf kernel") + 1; - strcpy((char*)&fake_preload[i++], "elf kernel"); - i += 2; - fake_preload[i++] = MODINFO_ADDR; - fake_preload[i++] = sizeof(vm_offset_t); - fake_preload[i++] = KERNVIRTADDR; - fake_preload[i++] = MODINFO_SIZE; - fake_preload[i++] = sizeof(uint32_t); - fake_preload[i++] = (uint32_t)&end - KERNVIRTADDR; -#ifdef DDB - if (*(uint32_t *)KERNVIRTADDR == MAGIC_TRAMP_NUMBER) { - fake_preload[i++] = MODINFO_METADATA|MODINFOMD_SSYM; - fake_preload[i++] = sizeof(vm_offset_t); - fake_preload[i++] = *(uint32_t *)(KERNVIRTADDR + 4); - fake_preload[i++] = MODINFO_METADATA|MODINFOMD_ESYM; - fake_preload[i++] = sizeof(vm_offset_t); - fake_preload[i++] = *(uint32_t *)(KERNVIRTADDR + 8); - lastaddr = *(uint32_t *)(KERNVIRTADDR + 8); - zend = lastaddr; - zstart = *(uint32_t *)(KERNVIRTADDR + 4); - db_fetch_ksymtab(zstart, zend); - } else -#endif - lastaddr = (vm_offset_t)&end; - if (dtb_ptr != NULL) { - /* Copy DTB to KVA space and insert it into module chain. */ - lastaddr = roundup(lastaddr, sizeof(int)); - fake_preload[i++] = MODINFO_METADATA | MODINFOMD_DTBP; - fake_preload[i++] = sizeof(uint32_t); - fake_preload[i++] = (uint32_t)lastaddr; - memmove((void *)lastaddr, dtb_ptr, dtb_size); - lastaddr += dtb_size; - lastaddr = roundup(lastaddr, sizeof(int)); - } - fake_preload[i++] = 0; - fake_preload[i] = 0; - preload_metadata = (void *)fake_preload; - - init_static_kenv(NULL, 0); - - return (lastaddr); -} - void pcpu0_init(void) { @@ -1050,208 +621,6 @@ pcpu0_init(void) PCPU_SET(curthread, &thread0); } -#if defined(LINUX_BOOT_ABI) - -/* Convert the U-Boot command line into FreeBSD kenv and boot options. */ -static void -cmdline_set_env(char *cmdline, const char *guard) -{ - char *cmdline_next, *env; - size_t size, guard_len; - int i; - - size = strlen(cmdline); - /* Skip leading spaces. */ - for (; isspace(*cmdline) && (size > 0); cmdline++) - size--; - - /* Test and remove guard. */ - if (guard != NULL && guard[0] != '\0') { - guard_len = strlen(guard); - if (strncasecmp(cmdline, guard, guard_len) != 0) - return; - cmdline += guard_len; - size -= guard_len; - } - - /* Skip leading spaces. */ - for (; isspace(*cmdline) && (size > 0); cmdline++) - size--; - - /* Replace ',' with '\0'. */ - /* TODO: implement escaping for ',' character. */ - cmdline_next = cmdline; - while(strsep(&cmdline_next, ",") != NULL) - ; - init_static_kenv(cmdline, 0); - /* Parse boothowto. */ - for (i = 0; howto_names[i].ev != NULL; i++) { - env = kern_getenv(howto_names[i].ev); - if (env != NULL) { - if (strtoul(env, NULL, 10) != 0) - boothowto |= howto_names[i].mask; - freeenv(env); - } - } -} - -vm_offset_t -linux_parse_boot_param(struct arm_boot_params *abp) -{ - struct arm_lbabi_tag *walker; - uint32_t revision; - uint64_t serial; - int size; - vm_offset_t lastaddr; -#ifdef FDT - struct fdt_header *dtb_ptr; - uint32_t dtb_size; -#endif - - /* - * Linux boot ABI: r0 = 0, r1 is the board type (!= 0) and r2 - * is atags or dtb pointer. If all of these aren't satisfied, - * then punt. Unfortunately, it looks like DT enabled kernels - * doesn't uses board type and U-Boot delivers 0 in r1 for them. - */ - if (abp->abp_r0 != 0 || abp->abp_r2 == 0) - return (0); -#ifdef FDT - /* Test if r2 point to valid DTB. */ - dtb_ptr = (struct fdt_header *)abp->abp_r2; - if (fdt_check_header(dtb_ptr) == 0) { - dtb_size = fdt_totalsize(dtb_ptr); - return (fake_preload_metadata(abp, dtb_ptr, dtb_size)); - } -#endif - - board_id = abp->abp_r1; - walker = (struct arm_lbabi_tag *)abp->abp_r2; - - if (ATAG_TAG(walker) != ATAG_CORE) - return 0; - - atag_list = walker; - while (ATAG_TAG(walker) != ATAG_NONE) { - switch (ATAG_TAG(walker)) { - case ATAG_CORE: - break; - case ATAG_MEM: - arm_physmem_hardware_region(walker->u.tag_mem.start, - walker->u.tag_mem.size); - break; - case ATAG_INITRD2: - break; - case ATAG_SERIAL: - serial = walker->u.tag_sn.high; - serial <<= 32; - serial |= walker->u.tag_sn.low; - board_set_serial(serial); - break; - case ATAG_REVISION: - revision = walker->u.tag_rev.rev; - board_set_revision(revision); - break; - case ATAG_CMDLINE: - size = ATAG_SIZE(walker) - - sizeof(struct arm_lbabi_header); - size = min(size, LBABI_MAX_COMMAND_LINE); - strncpy(linux_command_line, walker->u.tag_cmd.command, - size); - linux_command_line[size] = '\0'; - break; - default: - break; - } - walker = ATAG_NEXT(walker); - } - - /* Save a copy for later */ - bcopy(atag_list, atags, - (char *)walker - (char *)atag_list + ATAG_SIZE(walker)); - - lastaddr = fake_preload_metadata(abp, NULL, 0); - cmdline_set_env(linux_command_line, CMDLINE_GUARD); - return lastaddr; -} -#endif - -#if defined(FREEBSD_BOOT_LOADER) -vm_offset_t -freebsd_parse_boot_param(struct arm_boot_params *abp) -{ - vm_offset_t lastaddr = 0; - void *mdp; - void *kmdp; -#ifdef DDB - vm_offset_t ksym_start; - vm_offset_t ksym_end; -#endif - - /* - * Mask metadata pointer: it is supposed to be on page boundary. If - * the first argument (mdp) doesn't point to a valid address the - * bootloader must have passed us something else than the metadata - * ptr, so we give up. Also give up if we cannot find metadta section - * the loader creates that we get all this data out of. - */ - - if ((mdp = (void *)(abp->abp_r0 & ~PAGE_MASK)) == NULL) - return 0; - preload_metadata = mdp; - kmdp = preload_search_by_type("elf kernel"); - if (kmdp == NULL) - return 0; - - boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - loader_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); - init_static_kenv(loader_envp, 0); - lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); -#ifdef DDB - ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); - ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); - db_fetch_ksymtab(ksym_start, ksym_end); -#endif - return lastaddr; -} -#endif - -vm_offset_t -default_parse_boot_param(struct arm_boot_params *abp) -{ - vm_offset_t lastaddr; - -#if defined(LINUX_BOOT_ABI) - if ((lastaddr = linux_parse_boot_param(abp)) != 0) - return lastaddr; -#endif -#if defined(FREEBSD_BOOT_LOADER) - if ((lastaddr = freebsd_parse_boot_param(abp)) != 0) - return lastaddr; -#endif - /* Fall back to hardcoded metadata. */ - lastaddr = fake_preload_metadata(abp, NULL, 0); - - return lastaddr; -} - -/* - * Stub version of the boot parameter parsing routine. We are - * called early in initarm, before even VM has been initialized. - * This routine needs to preserve any data that the boot loader - * has passed in before the kernel starts to grow past the end - * of the BSS, traditionally the place boot-loaders put this data. - * - * Since this is called so early, things that depend on the vm system - * being setup (including access to some SoC's serial ports), about - * all that can be done in this routine is to copy the arguments. - * - * This is the default boot parameter parsing routine. Individual - * kernels/boards can override this weak function with one of their - * own. We just fake metadata... - */ -__weak_reference(default_parse_boot_param, parse_boot_param); - /* * Initialize proc0 */ @@ -1269,111 +638,6 @@ init_proc0(vm_offset_t kstack) pcpup->pc_curpcb = thread0.td_pcb; } -int -arm_predict_branch(void *cookie, u_int insn, register_t pc, register_t *new_pc, - u_int (*fetch_reg)(void*, int), u_int (*read_int)(void*, vm_offset_t, u_int*)) -{ - u_int addr, nregs, offset = 0; - int error = 0; - - switch ((insn >> 24) & 0xf) { - case 0x2: /* add pc, reg1, #value */ - case 0x0: /* add pc, reg1, reg2, lsl #offset */ - addr = fetch_reg(cookie, (insn >> 16) & 0xf); - if (((insn >> 16) & 0xf) == 15) - addr += 8; - if (insn & 0x0200000) { - offset = (insn >> 7) & 0x1e; - offset = (insn & 0xff) << (32 - offset) | - (insn & 0xff) >> offset; - } else { - - offset = fetch_reg(cookie, insn & 0x0f); - if ((insn & 0x0000ff0) != 0x00000000) { - if (insn & 0x10) - nregs = fetch_reg(cookie, - (insn >> 8) & 0xf); - else - nregs = (insn >> 7) & 0x1f; - switch ((insn >> 5) & 3) { - case 0: - /* lsl */ - offset = offset << nregs; - break; - case 1: - /* lsr */ - offset = offset >> nregs; - break; - default: - break; /* XXX */ - } - - } - *new_pc = addr + offset; - return (0); - - } - - case 0xa: /* b ... */ - case 0xb: /* bl ... */ - addr = ((insn << 2) & 0x03ffffff); - if (addr & 0x02000000) - addr |= 0xfc000000; - *new_pc = (pc + 8 + addr); - return (0); - case 0x7: /* ldr pc, [pc, reg, lsl #2] */ - addr = fetch_reg(cookie, insn & 0xf); - addr = pc + 8 + (addr << 2); - error = read_int(cookie, addr, &addr); - *new_pc = addr; - return (error); - case 0x1: /* mov pc, reg */ - *new_pc = fetch_reg(cookie, insn & 0xf); - return (0); - case 0x4: - case 0x5: /* ldr pc, [reg] */ - addr = fetch_reg(cookie, (insn >> 16) & 0xf); - /* ldr pc, [reg, #offset] */ - if (insn & (1 << 24)) - offset = insn & 0xfff; - if (insn & 0x00800000) - addr += offset; - else - addr -= offset; - error = read_int(cookie, addr, &addr); - *new_pc = addr; - - return (error); - case 0x8: /* ldmxx reg, {..., pc} */ - case 0x9: - addr = fetch_reg(cookie, (insn >> 16) & 0xf); - nregs = (insn & 0x5555) + ((insn >> 1) & 0x5555); - nregs = (nregs & 0x3333) + ((nregs >> 2) & 0x3333); - nregs = (nregs + (nregs >> 4)) & 0x0f0f; - nregs = (nregs + (nregs >> 8)) & 0x001f; - switch ((insn >> 23) & 0x3) { - case 0x0: /* ldmda */ - addr = addr - 0; - break; - case 0x1: /* ldmia */ - addr = addr + 0 + ((nregs - 1) << 2); - break; - case 0x2: /* ldmdb */ - addr = addr - 4; - break; - case 0x3: /* ldmib */ - addr = addr + 4 + ((nregs - 1) << 2); - break; - } - error = read_int(cookie, addr, &addr); - *new_pc = addr; - - return (error); - default: - return (EINVAL); - } -} - #if __ARM_ARCH >= 6 void set_stackptrs(int cpu) @@ -1400,139 +664,8 @@ set_stackptrs(int cpu) } #endif -#ifdef EFI -static void -add_efi_map_entries(struct efi_map_header *efihdr, struct mem_region *mr, - int *mrcnt) -{ - struct efi_md *map, *p; - const char *type; - size_t efisz, memory_size; - int ndesc, i, j; - - static const char *types[] = { - "Reserved", - "LoaderCode", - "LoaderData", - "BootServicesCode", - "BootServicesData", - "RuntimeServicesCode", - "RuntimeServicesData", - "ConventionalMemory", - "UnusableMemory", - "ACPIReclaimMemory", - "ACPIMemoryNVS", - "MemoryMappedIO", - "MemoryMappedIOPortSpace", - "PalCode" - }; - - *mrcnt = 0; - - /* - * Memory map data provided by UEFI via the GetMemoryMap - * Boot Services API. - */ - efisz = roundup2(sizeof(struct efi_map_header), 0x10); - map = (struct efi_md *)((uint8_t *)efihdr + efisz); - - if (efihdr->descriptor_size == 0) - return; - ndesc = efihdr->memory_size / efihdr->descriptor_size; - - if (boothowto & RB_VERBOSE) - printf("%23s %12s %12s %8s %4s\n", - "Type", "Physical", "Virtual", "#Pages", "Attr"); - - memory_size = 0; - for (i = 0, j = 0, p = map; i < ndesc; i++, - p = efi_next_descriptor(p, efihdr->descriptor_size)) { - if (boothowto & RB_VERBOSE) { - if (p->md_type <= EFI_MD_TYPE_PALCODE) - type = types[p->md_type]; - else - type = ""; - printf("%23s %012llx %12p %08llx ", type, p->md_phys, - p->md_virt, p->md_pages); - if (p->md_attr & EFI_MD_ATTR_UC) - printf("UC "); - if (p->md_attr & EFI_MD_ATTR_WC) - printf("WC "); - if (p->md_attr & EFI_MD_ATTR_WT) - printf("WT "); - if (p->md_attr & EFI_MD_ATTR_WB) - printf("WB "); - if (p->md_attr & EFI_MD_ATTR_UCE) - printf("UCE "); - if (p->md_attr & EFI_MD_ATTR_WP) - printf("WP "); - if (p->md_attr & EFI_MD_ATTR_RP) - printf("RP "); - if (p->md_attr & EFI_MD_ATTR_XP) - printf("XP "); - if (p->md_attr & EFI_MD_ATTR_RT) - printf("RUNTIME"); - printf("\n"); - } - - switch (p->md_type) { - case EFI_MD_TYPE_CODE: - case EFI_MD_TYPE_DATA: - case EFI_MD_TYPE_BS_CODE: - case EFI_MD_TYPE_BS_DATA: - case EFI_MD_TYPE_FREE: - /* - * We're allowed to use any entry with these types. - */ - break; - default: - continue; - } - - j++; - if (j >= FDT_MEM_REGIONS) - break; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 16 07:33:49 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43CCCD40EA2; Sun, 16 Apr 2017 07:33:49 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 11E601475; Sun, 16 Apr 2017 07:33:48 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G7Xm4T085455; Sun, 16 Apr 2017 07:33:48 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G7Xlja085445; Sun, 16 Apr 2017 07:33:47 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160733.v3G7Xlja085445@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 07:33:47 +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: r317005 - in stable/11: lib/libthread_db/arch/arm sys/arm/arm sys/arm/include X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 07:33:49 -0000 Author: mmel Date: Sun Apr 16 07:33:47 2017 New Revision: 317005 URL: https://svnweb.freebsd.org/changeset/base/317005 Log: MFC r315900,r315973,r315974: r315900: Cleanup structures related to VFP and/or mcontext_t. - in mcontext_t, rename newer used 'union __vfp' to equaly sized 'mc_spare'. Space allocated by 'union __vfp' is too small and cannot hold full VFP context. - move structures defined in fp.h to more appropriate headers. - remove all unused VFP structures. r315973: Save VFP state on fork(). Update the copy of VFP state in PCB before it is cloned for new process. r315974: Preserve VFP state across signal delivery. Deleted: stable/11/sys/arm/include/fp.h Modified: stable/11/lib/libthread_db/arch/arm/libpthread_md.c stable/11/sys/arm/arm/machdep.c stable/11/sys/arm/arm/vfp.c stable/11/sys/arm/arm/vm_machdep.c stable/11/sys/arm/include/frame.h stable/11/sys/arm/include/pcb.h stable/11/sys/arm/include/reg.h stable/11/sys/arm/include/ucontext.h stable/11/sys/arm/include/vfp.h Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libthread_db/arch/arm/libpthread_md.c ============================================================================== --- stable/11/lib/libthread_db/arch/arm/libpthread_md.c Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/lib/libthread_db/arch/arm/libpthread_md.c Sun Apr 16 07:33:47 2017 (r317005) @@ -90,7 +90,9 @@ pt_fpreg_to_ucontext(const struct fpreg mcontext_t *mc = &uc->uc_mcontext; /* XXX */ - memset(&mc->__fpu, 0, sizeof(mc->__fpu)); + mc->mc_vfp_size = 0; + mc->mc_vfp_ptr = NULL; + memset(mc->mc_spare, 0, sizeof(mc->mc_spare)); } void Modified: stable/11/sys/arm/arm/machdep.c ============================================================================== --- stable/11/sys/arm/arm/machdep.c Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/sys/arm/arm/machdep.c Sun Apr 16 07:33:47 2017 (r317005) @@ -146,105 +146,6 @@ static delay_func *delay_impl; static void *delay_arg; #endif -void -sendsig(catcher, ksi, mask) - sig_t catcher; - ksiginfo_t *ksi; - sigset_t *mask; -{ - struct thread *td; - struct proc *p; - struct trapframe *tf; - struct sigframe *fp, frame; - struct sigacts *psp; - struct sysentvec *sysent; - int onstack; - int sig; - int code; - - td = curthread; - p = td->td_proc; - PROC_LOCK_ASSERT(p, MA_OWNED); - sig = ksi->ksi_signo; - code = ksi->ksi_code; - psp = p->p_sigacts; - mtx_assert(&psp->ps_mtx, MA_OWNED); - tf = td->td_frame; - onstack = sigonstack(tf->tf_usr_sp); - - CTR4(KTR_SIG, "sendsig: td=%p (%s) catcher=%p sig=%d", td, p->p_comm, - catcher, sig); - - /* Allocate and validate space for the signal handler context. */ - if ((td->td_pflags & TDP_ALTSTACK) != 0 && !(onstack) && - SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct sigframe *)((uintptr_t)td->td_sigstk.ss_sp + - td->td_sigstk.ss_size); -#if defined(COMPAT_43) - td->td_sigstk.ss_flags |= SS_ONSTACK; -#endif - } else - fp = (struct sigframe *)td->td_frame->tf_usr_sp; - - /* make room on the stack */ - fp--; - - /* make the stack aligned */ - fp = (struct sigframe *)STACKALIGN(fp); - /* Populate the siginfo frame. */ - get_mcontext(td, &frame.sf_uc.uc_mcontext, 0); - frame.sf_si = ksi->ksi_info; - frame.sf_uc.uc_sigmask = *mask; - frame.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK ) - ? ((onstack) ? SS_ONSTACK : 0) : SS_DISABLE; - frame.sf_uc.uc_stack = td->td_sigstk; - mtx_unlock(&psp->ps_mtx); - PROC_UNLOCK(td->td_proc); - - /* Copy the sigframe out to the user's stack. */ - if (copyout(&frame, fp, sizeof(*fp)) != 0) { - /* Process has trashed its stack. Kill it. */ - CTR2(KTR_SIG, "sendsig: sigexit td=%p fp=%p", td, fp); - PROC_LOCK(p); - sigexit(td, SIGILL); - } - - /* - * Build context to run handler in. We invoke the handler - * directly, only returning via the trampoline. Note the - * trampoline version numbers are coordinated with machine- - * dependent code in libc. - */ - - tf->tf_r0 = sig; - tf->tf_r1 = (register_t)&fp->sf_si; - tf->tf_r2 = (register_t)&fp->sf_uc; - - /* the trampoline uses r5 as the uc address */ - tf->tf_r5 = (register_t)&fp->sf_uc; - tf->tf_pc = (register_t)catcher; - tf->tf_usr_sp = (register_t)fp; - sysent = p->p_sysent; - if (sysent->sv_sigcode_base != 0) - tf->tf_usr_lr = (register_t)sysent->sv_sigcode_base; - else - tf->tf_usr_lr = (register_t)(sysent->sv_psstrings - - *(sysent->sv_szsigcode)); - /* Set the mode to enter in the signal handler */ -#if __ARM_ARCH >= 7 - if ((register_t)catcher & 1) - tf->tf_spsr |= PSR_T; - else - tf->tf_spsr &= ~PSR_T; -#endif - - CTR3(KTR_SIG, "sendsig: return td=%p pc=%#x sp=%#x", td, tf->tf_usr_lr, - tf->tf_usr_sp); - - PROC_LOCK(p); - mtx_lock(&psp->ps_mtx); -} - struct kva_md_info kmi; /* @@ -488,6 +389,47 @@ exec_setregs(struct thread *td, struct i tf->tf_spsr = PSR_USR32_MODE; } + +#ifdef VFP +/* + * Get machine VFP context. + */ +static void +get_vfpcontext(struct thread *td, mcontext_vfp_t *vfp) +{ + struct pcb *curpcb; + + curpcb = curthread->td_pcb; + critical_enter(); + + vfp_store(&curpcb->pcb_vfpstate, false); + memcpy(vfp->mcv_reg, curpcb->pcb_vfpstate.reg, + sizeof(vfp->mcv_reg)); + vfp->mcv_fpscr = curpcb->pcb_vfpstate.fpscr; + + critical_exit(); +} + +/* + * Set machine VFP context. + */ +static void +set_vfpcontext(struct thread *td, mcontext_vfp_t *vfp) +{ + struct pcb *curpcb; + + curpcb = curthread->td_pcb; + critical_enter(); + + vfp_discard(td); + memcpy(curpcb->pcb_vfpstate.reg, vfp->mcv_reg, + sizeof(curpcb->pcb_vfpstate.reg)); + curpcb->pcb_vfpstate.fpscr = vfp->mcv_fpscr; + + critical_exit(); +} +#endif + /* * Get machine context. */ @@ -520,6 +462,10 @@ get_mcontext(struct thread *td, mcontext gr[_REG_LR] = tf->tf_usr_lr; gr[_REG_PC] = tf->tf_pc; + mcp->mc_vfp_size = 0; + mcp->mc_vfp_ptr = NULL; + memset(&mcp->mc_spare, 0, sizeof(mcp->mc_spare)); + return (0); } @@ -532,9 +478,29 @@ get_mcontext(struct thread *td, mcontext int set_mcontext(struct thread *td, mcontext_t *mcp) { + mcontext_vfp_t mc_vfp, *vfp; struct trapframe *tf = td->td_frame; const __greg_t *gr = mcp->__gregs; +#ifdef WITNESS + if (mcp->mc_vfp_size != 0 && mcp->mc_vfp_size != sizeof(mc_vfp)) { + printf("%s: %s: Malformed mc_vfp_size: %d (0x%08X)\n", + td->td_proc->p_comm, __func__, + mcp->mc_vfp_size, mcp->mc_vfp_size); + } else if (mcp->mc_vfp_size != 0 && mcp->mc_vfp_ptr == NULL) { + printf("%s: %s: c_vfp_size != 0 but mc_vfp_ptr == NULL\n", + td->td_proc->p_comm, __func__); + } +#endif + + if (mcp->mc_vfp_size == sizeof(mc_vfp) && mcp->mc_vfp_ptr != NULL) { + if (copyin(mcp->mc_vfp_ptr, &mc_vfp, sizeof(mc_vfp)) != 0) + return (EFAULT); + vfp = &mc_vfp; + } else { + vfp = NULL; + } + tf->tf_r0 = gr[_REG_R0]; tf->tf_r1 = gr[_REG_R1]; tf->tf_r2 = gr[_REG_R2]; @@ -552,10 +518,120 @@ set_mcontext(struct thread *td, mcontext tf->tf_usr_lr = gr[_REG_LR]; tf->tf_pc = gr[_REG_PC]; tf->tf_spsr = gr[_REG_CPSR]; - +#ifdef VFP + if (vfp != NULL) + set_vfpcontext(td, vfp); +#endif return (0); } +void +sendsig(catcher, ksi, mask) + sig_t catcher; + ksiginfo_t *ksi; + sigset_t *mask; +{ + struct thread *td; + struct proc *p; + struct trapframe *tf; + struct sigframe *fp, frame; + struct sigacts *psp; + struct sysentvec *sysent; + int onstack; + int sig; + int code; + + td = curthread; + p = td->td_proc; + PROC_LOCK_ASSERT(p, MA_OWNED); + sig = ksi->ksi_signo; + code = ksi->ksi_code; + psp = p->p_sigacts; + mtx_assert(&psp->ps_mtx, MA_OWNED); + tf = td->td_frame; + onstack = sigonstack(tf->tf_usr_sp); + + CTR4(KTR_SIG, "sendsig: td=%p (%s) catcher=%p sig=%d", td, p->p_comm, + catcher, sig); + + /* Allocate and validate space for the signal handler context. */ + if ((td->td_pflags & TDP_ALTSTACK) != 0 && !(onstack) && + SIGISMEMBER(psp->ps_sigonstack, sig)) { + fp = (struct sigframe *)((uintptr_t)td->td_sigstk.ss_sp + + td->td_sigstk.ss_size); +#if defined(COMPAT_43) + td->td_sigstk.ss_flags |= SS_ONSTACK; +#endif + } else + fp = (struct sigframe *)td->td_frame->tf_usr_sp; + + /* make room on the stack */ + fp--; + + /* make the stack aligned */ + fp = (struct sigframe *)STACKALIGN(fp); + /* Populate the siginfo frame. */ + get_mcontext(td, &frame.sf_uc.uc_mcontext, 0); +#ifdef VFP + get_vfpcontext(td, &frame.sf_vfp); + frame.sf_uc.uc_mcontext.mc_vfp_size = sizeof(fp->sf_vfp); + frame.sf_uc.uc_mcontext.mc_vfp_ptr = &fp->sf_vfp; +#else + frame.sf_uc.uc_mcontext.mc_vfp_size = 0; + frame.sf_uc.uc_mcontext.mc_vfp_ptr = NULL; +#endif + frame.sf_si = ksi->ksi_info; + frame.sf_uc.uc_sigmask = *mask; + frame.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK ) + ? ((onstack) ? SS_ONSTACK : 0) : SS_DISABLE; + frame.sf_uc.uc_stack = td->td_sigstk; + mtx_unlock(&psp->ps_mtx); + PROC_UNLOCK(td->td_proc); + + /* Copy the sigframe out to the user's stack. */ + if (copyout(&frame, fp, sizeof(*fp)) != 0) { + /* Process has trashed its stack. Kill it. */ + CTR2(KTR_SIG, "sendsig: sigexit td=%p fp=%p", td, fp); + PROC_LOCK(p); + sigexit(td, SIGILL); + } + + /* + * Build context to run handler in. We invoke the handler + * directly, only returning via the trampoline. Note the + * trampoline version numbers are coordinated with machine- + * dependent code in libc. + */ + + tf->tf_r0 = sig; + tf->tf_r1 = (register_t)&fp->sf_si; + tf->tf_r2 = (register_t)&fp->sf_uc; + + /* the trampoline uses r5 as the uc address */ + tf->tf_r5 = (register_t)&fp->sf_uc; + tf->tf_pc = (register_t)catcher; + tf->tf_usr_sp = (register_t)fp; + sysent = p->p_sysent; + if (sysent->sv_sigcode_base != 0) + tf->tf_usr_lr = (register_t)sysent->sv_sigcode_base; + else + tf->tf_usr_lr = (register_t)(sysent->sv_psstrings - + *(sysent->sv_szsigcode)); + /* Set the mode to enter in the signal handler */ +#if __ARM_ARCH >= 7 + if ((register_t)catcher & 1) + tf->tf_spsr |= PSR_T; + else + tf->tf_spsr &= ~PSR_T; +#endif + + CTR3(KTR_SIG, "sendsig: return td=%p pc=%#x sp=%#x", td, tf->tf_usr_lr, + tf->tf_usr_sp); + + PROC_LOCK(p); + mtx_lock(&psp->ps_mtx); +} + int sys_sigreturn(td, uap) struct thread *td; @@ -578,7 +654,7 @@ sys_sigreturn(td, uap) if ((spsr & PSR_MODE) != PSR_USR32_MODE || (spsr & (PSR_I | PSR_F)) != 0) return (EINVAL); - /* Restore register context. */ + /* Restore register context. */ set_mcontext(td, &uc.uc_mcontext); /* Restore signal mask. */ Modified: stable/11/sys/arm/arm/vfp.c ============================================================================== --- stable/11/sys/arm/arm/vfp.c Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/sys/arm/arm/vfp.c Sun Apr 16 07:33:47 2017 (r317005) @@ -37,7 +37,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include Modified: stable/11/sys/arm/arm/vm_machdep.c ============================================================================== --- stable/11/sys/arm/arm/vm_machdep.c Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/sys/arm/arm/vm_machdep.c Sun Apr 16 07:33:47 2017 (r317005) @@ -111,6 +111,14 @@ cpu_fork(register struct thread *td1, re pmap_use_minicache(td2->td_kstack, td2->td_kstack_pages * PAGE_SIZE); #endif #endif +#ifdef VFP + /* Store actual state of VFP */ + if (curthread == td1) { + critical_enter(); + vfp_store(&td1->td_pcb->pcb_vfpstate, false); + critical_exit(); + } +#endif td2->td_pcb = pcb2; /* Clone td1's pcb */ Modified: stable/11/sys/arm/include/frame.h ============================================================================== --- stable/11/sys/arm/include/frame.h Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/sys/arm/include/frame.h Sun Apr 16 07:33:47 2017 (r317005) @@ -94,6 +94,7 @@ struct trapframe { struct sigframe { siginfo_t sf_si; /* actual saved siginfo */ ucontext_t sf_uc; /* actual saved ucontext */ + mcontext_vfp_t sf_vfp; /* actual saved VFP context */ }; Modified: stable/11/sys/arm/include/pcb.h ============================================================================== --- stable/11/sys/arm/include/pcb.h Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/sys/arm/include/pcb.h Sun Apr 16 07:33:47 2017 (r317005) @@ -38,8 +38,8 @@ #ifndef _MACHINE_PCB_H_ #define _MACHINE_PCB_H_ -#include #include +#include /* Modified: stable/11/sys/arm/include/reg.h ============================================================================== --- stable/11/sys/arm/include/reg.h Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/sys/arm/include/reg.h Sun Apr 16 07:33:47 2017 (r317005) @@ -3,8 +3,6 @@ #ifndef MACHINE_REG_H #define MACHINE_REG_H -#include - struct reg { unsigned int r[13]; unsigned int r_sp; @@ -13,6 +11,14 @@ struct reg { unsigned int r_cpsr; }; +struct fp_extended_precision { + u_int32_t fp_exponent; + u_int32_t fp_mantissa_hi; + u_int32_t fp_mantissa_lo; +}; + +typedef struct fp_extended_precision fp_reg_t; + struct fpreg { unsigned int fpr_fpsr; fp_reg_t fpr[8]; Modified: stable/11/sys/arm/include/ucontext.h ============================================================================== --- stable/11/sys/arm/include/ucontext.h Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/sys/arm/include/ucontext.h Sun Apr 16 07:33:47 2017 (r317005) @@ -66,35 +66,22 @@ typedef __greg_t __gregset_t[_NGREG]; /* * Floating point register state */ -/* Note: the storage layout of this structure must be identical to ARMFPE! */ typedef struct { - unsigned int __fp_fpsr; - struct { - unsigned int __fp_exponent; - unsigned int __fp_mantissa_hi; - unsigned int __fp_mantissa_lo; - } __fp_fr[8]; -} __fpregset_t; - -typedef struct { - unsigned int __vfp_fpscr; - unsigned int __vfp_fstmx[33]; - unsigned int __vfp_fpsid; -} __vfpregset_t; + __uint64_t mcv_reg[32]; + __uint32_t mcv_fpscr; +} mcontext_vfp_t; typedef struct { __gregset_t __gregs; - union { - __fpregset_t __fpregs; - __vfpregset_t __vfpregs; - } __fpu; -} mcontext_t; -/* Machine-dependent uc_flags */ -#define _UC_ARM_VFP 0x00010000 /* FPU field is VFP */ - -/* used by signal delivery to indicate status of signal stack */ -#define _UC_SETSTACK 0x00020000 -#define _UC_CLRSTACK 0x00040000 + /* + * Originally, rest of this structure was named __fpu, 35 * 4 bytes + * long, never accessed from kernel. + */ + size_t mc_vfp_size; + void *mc_vfp_ptr; + unsigned int mc_spare[33]; +} mcontext_t; +#define UC_ #endif /* !_MACHINE_MCONTEXT_H_ */ Modified: stable/11/sys/arm/include/vfp.h ============================================================================== --- stable/11/sys/arm/include/vfp.h Sun Apr 16 07:21:20 2017 (r317004) +++ stable/11/sys/arm/include/vfp.h Sun Apr 16 07:33:47 2017 (r317005) @@ -133,9 +133,19 @@ #define COPROC11 (0x3 << 22) #ifndef LOCORE +struct vfp_state { + uint64_t reg[32]; + uint32_t fpscr; + uint32_t fpexec; + uint32_t fpinst; + uint32_t fpinst2; +}; + +#ifdef _KERNEL void vfp_init(void); void vfp_store(struct vfp_state *, boolean_t); void vfp_discard(struct thread *); -#endif +#endif /* _KERNEL */ +#endif /* LOCORE */ #endif From owner-svn-src-all@freebsd.org Sun Apr 16 07:35:52 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3B75D40F59; Sun, 16 Apr 2017 07:35:52 +0000 (UTC) (envelope-from bapt@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B344F15FA; Sun, 16 Apr 2017 07:35:52 +0000 (UTC) (envelope-from bapt@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1235) id D9638663F; Sun, 16 Apr 2017 07:35:51 +0000 (UTC) Date: Sun, 16 Apr 2017 09:35:51 +0200 From: Baptiste Daroussin To: rgrimes@freebsd.org Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd Message-ID: <20170416073551.557czdcksdmmuz24@ivaldir.net> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="z6jkgyiag243hzob" Content-Disposition: inline In-Reply-To: <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> User-Agent: NeoMutt/20170306 (1.8.0) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 07:35:52 -0000 --z6jkgyiag243hzob Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Apr 15, 2017 at 04:37:02PM -0700, Rodney W. Grimes wrote: > And we need this in base for what great purpose??? >=20 zstandard is the successor to lz4, there are attempts to integrate zstandar= d in ZFS, Allan Jude is working on that, I am working on integrating in libstand= to allow to boot a kernel compressed with zstandard or a mfsroot with zstandar= d, which would benefit lots of pxe users. I have also added it to newsyslog(8) so users can benefit zstandard compres= sion for the log files, which will consume less CPUs for greater compression that bzip2. On low ended boxes with low storage this is actually very useful as = well. I haven't checked yet the performances on my armv6 boxes, but on the low en= ded recent atom laptops I can tell this is already very useful. Bapt --z6jkgyiag243hzob Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAljzHtAACgkQY4mL3PG3 Plo1xBAAuZ6z6kVMXL1fLmonHGgEfXRmBL0yrBtdG++18BXJ1DstY7Mogijygnyr 8qiBIx/SoBFLRK5MQ43anDLZydlZ4nM+2zwLjx21SjUnGzqqvixZEaB61WRNPms3 ZIN8QMVAWirSRyjaLx1Tgf9NWeYOzkpN53qHCGI8fY8NxC7fN+3y27IFkD66EjJH rYtOlrXPqCNqUaFGD4WJkSpuLuH13mWwa72N/IQry1J64FpJQdOawSsM5MxS68HY l/+wZ/tWBsoNZBhvRi+Shi2X9xyEPMBBxuFJDC42mxw6LHtlrB2dAD+0JfSeVz2i bo5eteUJkSL7yTzjJXLHke3dC8sDbl0HkGtA/oMhVN0j7WD5BAx6s5HxUzfany+0 m+VhPLy6nICQ3FlA06Yq2QEw3i4qPgB3oRx3dVih4UowI176fnkwQgjiIF24uHW+ nZkYgvKgaersGqbHzP4BvSw8hpZDeRTe6R11TzVsY98BFo87uhmj0nQeluiGag9n l1k6VJFDU2m6AwX1+L4ilufJFReTxjHKLuz5Fj0XVaAENLmnHwCEIK9YszMmaKZH 0jc3M8MG3a7FEu40v6rt7YUJJoOX+1RajZnKxJIKAhO4w20iMkB5zZUJWV6YUMw2 Lmk+goq43WHAt05F4CG3piuwcKFK9SBHNXHObPdQxEayX1PrVkw= =WUd3 -----END PGP SIGNATURE----- --z6jkgyiag243hzob-- From owner-svn-src-all@freebsd.org Sun Apr 16 07:41:32 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16CCDD40137; Sun, 16 Apr 2017 07:41:32 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CA63219E2; Sun, 16 Apr 2017 07:41:31 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G7fUoF087329; Sun, 16 Apr 2017 07:41:30 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G7fUsc087325; Sun, 16 Apr 2017 07:41:30 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160741.v3G7fUsc087325@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 07:41:30 +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: r317006 - in stable/11/sys/arm: conf nvidia/tegra124 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 07:41:32 -0000 Author: mmel Date: Sun Apr 16 07:41:30 2017 New Revision: 317006 URL: https://svnweb.freebsd.org/changeset/base/317006 Log: MFC r306442,r306444,r306445,r306550: r306442: TEGRA: Add support for MULTIDELAY option. r306444: TEGRA: Don't include files already included by system or arch configs. r306445: TEGRA: Return back kern_clocksource.c into tegra config file. It was removed in r306444 by mistake. r306550: TEGRA: Extend timeout for PLLs lock to 5 ms. Real lock time for PLLA has been very near to old limit. Modified: stable/11/sys/arm/conf/TEGRA124 stable/11/sys/arm/nvidia/tegra124/files.tegra124 stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c stable/11/sys/arm/nvidia/tegra124/tegra124_machdep.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/conf/TEGRA124 ============================================================================== --- stable/11/sys/arm/conf/TEGRA124 Sun Apr 16 07:33:47 2017 (r317005) +++ stable/11/sys/arm/conf/TEGRA124 Sun Apr 16 07:41:30 2017 (r317006) @@ -26,6 +26,7 @@ ident TEGRA124 options SCHED_ULE # ULE scheduler options PLATFORM # Platform based SoC options PLATFORM_SMP +options MULTIDELAY options SMP # Enable multiple cores options LINUX_BOOT_ABI Modified: stable/11/sys/arm/nvidia/tegra124/files.tegra124 ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/files.tegra124 Sun Apr 16 07:33:47 2017 (r317005) +++ stable/11/sys/arm/nvidia/tegra124/files.tegra124 Sun Apr 16 07:41:30 2017 (r317006) @@ -4,7 +4,6 @@ # Standard ARM support. # kern/kern_clocksource.c standard -dev/ofw/ofw_cpu.c optional fdt # # Standard tegra124 devices and support. Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c Sun Apr 16 07:33:47 2017 (r317005) +++ stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c Sun Apr 16 07:41:30 2017 (r317006) @@ -86,7 +86,7 @@ enum pll_type { #define PLLRE_IDDQ_BIT 16 #define PLLSS_IDDQ_BIT 19 -#define PLL_LOCK_TIMEOUT 1000 +#define PLL_LOCK_TIMEOUT 5000 /* Post divider <-> register value mapping. */ struct pdiv_table { Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_machdep.c ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/tegra124_machdep.c Sun Apr 16 07:33:47 2017 (r317005) +++ stable/11/sys/arm/nvidia/tegra124/tegra124_machdep.c Sun Apr 16 07:41:30 2017 (r317006) @@ -151,4 +151,4 @@ static platform_method_t tegra124_method PLATFORMMETHOD_END, }; -FDT_PLATFORM_DEF(tegra124, "Nvidia Jetson-TK1", 0, "nvidia,jetson-tk1", 0); +FDT_PLATFORM_DEF(tegra124, "Nvidia Jetson-TK1", 0, "nvidia,jetson-tk1", 120); From owner-svn-src-all@freebsd.org Sun Apr 16 07:43:30 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A8C6D40395; Sun, 16 Apr 2017 07:43:30 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5C3701C18; Sun, 16 Apr 2017 07:43:30 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G7hTZO089564; Sun, 16 Apr 2017 07:43:29 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G7hTN2089563; Sun, 16 Apr 2017 07:43:29 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160743.v3G7hTN2089563@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 07:43:29 +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: r317007 - stable/11/sys/conf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 07:43:30 -0000 Author: mmel Date: Sun Apr 16 07:43:29 2017 New Revision: 317007 URL: https://svnweb.freebsd.org/changeset/base/317007 Log: MFC r306703: ARM: Disconnect elf_trampoline.c from ARMv6 build. The trampoline code never functioned properly for Cortex CPUs, and its functionality is already provided by ubldr. Modified: stable/11/sys/conf/Makefile.arm Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/Makefile.arm ============================================================================== --- stable/11/sys/conf/Makefile.arm Sun Apr 16 07:41:30 2017 (r317006) +++ stable/11/sys/conf/Makefile.arm Sun Apr 16 07:43:29 2017 (r317007) @@ -74,7 +74,7 @@ FILES_CPU_FUNC = \ $S/$M/$M/cpufunc_asm_pj4b.S $S/$M/$M/cpufunc_asm_armv6.S \ $S/$M/$M/cpufunc_asm_armv7.S -.if defined(KERNPHYSADDR) +.if ${TARGET_ARCH} != "armv6" && defined(KERNPHYSADDR) KERNEL_EXTRA=trampoline KERNEL_EXTRA_INSTALL=kernel.gz.tramp trampoline: ${KERNEL_KO}.tramp From owner-svn-src-all@freebsd.org Sun Apr 16 07:58:43 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6169D40692; Sun, 16 Apr 2017 07:58:43 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 853A0391; Sun, 16 Apr 2017 07:58:43 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G7wg86094286; Sun, 16 Apr 2017 07:58:42 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G7wge0094279; Sun, 16 Apr 2017 07:58:42 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160758.v3G7wge0094279@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 07:58:42 +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: r317008 - in stable/11/sys: conf dev/drm2 dev/drm2/ttm X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 07:58:43 -0000 Author: mmel Date: Sun Apr 16 07:58:41 2017 New Revision: 317008 URL: https://svnweb.freebsd.org/changeset/base/317008 Log: MFC r308612,r308614: r308612: Allow DRM2 code to be built on platforms without AGP. This patch is taken from original drm-3.8 code. r308614: Allow embeding DRM2 code into kernel. It's usefull for development (for netboot) and it also helps to boot FreeBSD on some embeded platforms (where we must boot kernel directly, without standard boot loader). Modified: stable/11/sys/conf/files stable/11/sys/dev/drm2/drmP.h stable/11/sys/dev/drm2/drm_memory.c stable/11/sys/dev/drm2/drm_os_freebsd.c stable/11/sys/dev/drm2/drm_os_freebsd.h stable/11/sys/dev/drm2/ttm/ttm_bo_util.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files ============================================================================== --- stable/11/sys/conf/files Sun Apr 16 07:43:29 2017 (r317007) +++ stable/11/sys/conf/files Sun Apr 16 07:58:41 2017 (r317008) @@ -1451,6 +1451,49 @@ dev/drm/via_map.c optional viadrm dev/drm/via_mm.c optional viadrm dev/drm/via_verifier.c optional viadrm dev/drm/via_video.c optional viadrm +dev/drm2/drm_agpsupport.c optional drm2 +dev/drm2/drm_auth.c optional drm2 +dev/drm2/drm_bufs.c optional drm2 +dev/drm2/drm_buffer.c optional drm2 +dev/drm2/drm_context.c optional drm2 +dev/drm2/drm_crtc.c optional drm2 +dev/drm2/drm_crtc_helper.c optional drm2 +dev/drm2/drm_dma.c optional drm2 +dev/drm2/drm_dp_helper.c optional drm2 +dev/drm2/drm_dp_iic_helper.c optional drm2 +dev/drm2/drm_drv.c optional drm2 +dev/drm2/drm_edid.c optional drm2 +dev/drm2/drm_fb_helper.c optional drm2 +dev/drm2/drm_fops.c optional drm2 +dev/drm2/drm_gem.c optional drm2 +dev/drm2/drm_gem_names.c optional drm2 +dev/drm2/drm_global.c optional drm2 +dev/drm2/drm_hashtab.c optional drm2 +dev/drm2/drm_ioctl.c optional drm2 +dev/drm2/drm_irq.c optional drm2 +dev/drm2/drm_linux_list_sort.c optional drm2 +dev/drm2/drm_lock.c optional drm2 +dev/drm2/drm_memory.c optional drm2 +dev/drm2/drm_mm.c optional drm2 +dev/drm2/drm_modes.c optional drm2 +dev/drm2/drm_pci.c optional drm2 +dev/drm2/drm_scatter.c optional drm2 +dev/drm2/drm_stub.c optional drm2 +dev/drm2/drm_sysctl.c optional drm2 +dev/drm2/drm_vm.c optional drm2 +dev/drm2/drm_os_freebsd.c optional drm2 +dev/drm2/ttm/ttm_agp_backend.c optional drm2 +dev/drm2/ttm/ttm_lock.c optional drm2 +dev/drm2/ttm/ttm_object.c optional drm2 +dev/drm2/ttm/ttm_tt.c optional drm2 +dev/drm2/ttm/ttm_bo_util.c optional drm2 +dev/drm2/ttm/ttm_bo.c optional drm2 +dev/drm2/ttm/ttm_bo_manager.c optional drm2 +dev/drm2/ttm/ttm_execbuf_util.c optional drm2 +dev/drm2/ttm/ttm_memory.c optional drm2 +dev/drm2/ttm/ttm_page_alloc.c optional drm2 +dev/drm2/ttm/ttm_bo_vm.c optional drm2 +dev/drm2/ati_pcigart.c optional drm2 agp pci dev/ed/if_ed.c optional ed dev/ed/if_ed_novell.c optional ed dev/ed/if_ed_rtl80x9.c optional ed Modified: stable/11/sys/dev/drm2/drmP.h ============================================================================== --- stable/11/sys/dev/drm2/drmP.h Sun Apr 16 07:43:29 2017 (r317007) +++ stable/11/sys/dev/drm2/drmP.h Sun Apr 16 07:58:41 2017 (r317008) @@ -1204,17 +1204,6 @@ int drm_mmap_single(struct cdev *kdev, v vm_size_t size, struct vm_object **obj_res, int nprot); d_poll_t drm_poll; - /* Memory management support (drm_memory.h) */ -extern void drm_free_agp(DRM_AGP_MEM * handle, int pages); -extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start); -#ifdef FREEBSD_NOTYET -extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev, - struct page **pages, - unsigned long num_pages, - uint32_t gtt_offset, - uint32_t type); -#endif /* FREEBSD_NOTYET */ -extern int drm_unbind_agp(DRM_AGP_MEM * handle); /* Misc. IOCTL support (drm_ioctl.h) */ extern int drm_irq_by_busid(struct drm_device *dev, void *data, @@ -1363,32 +1352,6 @@ extern void drm_vblank_post_modeset(stru extern int drm_modeset_ctl(struct drm_device *dev, void *data, struct drm_file *file_priv); - /* AGP/GART support (drm_agpsupport.h) */ -extern struct drm_agp_head *drm_agp_init(struct drm_device *dev); -extern int drm_agp_acquire(struct drm_device *dev); -extern int drm_agp_acquire_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int drm_agp_release(struct drm_device *dev); -extern int drm_agp_release_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode); -extern int drm_agp_enable_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info); -extern int drm_agp_info_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request); -extern int drm_agp_alloc_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request); -extern int drm_agp_free_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request); -extern int drm_agp_unbind_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request); -extern int drm_agp_bind_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); /* Stub support (drm_stub.h) */ extern int drm_setmaster_ioctl(struct drm_device *dev, void *data, @@ -1814,5 +1777,175 @@ int ttm_bo_mmap_single(struct ttm_bo_dev struct ttm_buffer_object; void ttm_bo_release_mmap(struct ttm_buffer_object *bo); +#if __OS_HAS_AGP + /* Memory management support (drm_memory.h) */ +extern void drm_free_agp(DRM_AGP_MEM * handle, int pages); +extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start); +#ifdef FREEBSD_NOTYET +extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev, + struct page **pages, + unsigned long num_pages, + uint32_t gtt_offset, + uint32_t type); +#endif /* FREEBSD_NOTYET */ +extern int drm_unbind_agp(DRM_AGP_MEM * handle); + + /* AGP/GART support (drm_agpsupport.h) */ +extern struct drm_agp_head *drm_agp_init(struct drm_device *dev); +extern int drm_agp_acquire(struct drm_device *dev); +extern int drm_agp_acquire_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int drm_agp_release(struct drm_device *dev); +extern int drm_agp_release_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode); +extern int drm_agp_enable_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info); +extern int drm_agp_info_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request); +extern int drm_agp_alloc_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request); +extern int drm_agp_free_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request); +extern int drm_agp_unbind_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request); +extern int drm_agp_bind_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); + +#else + +static inline void drm_free_agp(DRM_AGP_MEM * handle, int pages) +{ +} + +static inline int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start) +{ + return -ENODEV; +} + +static inline int drm_unbind_agp(DRM_AGP_MEM * handle) +{ + return -ENODEV; +} +#ifdef FREEBSD_NOTYET +static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev, + struct page **pages, + unsigned long num_pages, + uint32_t gtt_offset, + uint32_t type) +{ + return NULL; +} +#endif +static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev) +{ + return NULL; +} + +static inline void drm_agp_clear(struct drm_device *dev) +{ +} + +static inline int drm_agp_acquire(struct drm_device *dev) +{ + return -ENODEV; +} + +static inline int drm_agp_acquire_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + return -ENODEV; +} + +static inline int drm_agp_release(struct drm_device *dev) +{ + return -ENODEV; +} + +static inline int drm_agp_release_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + return -ENODEV; +} + +static inline int drm_agp_enable(struct drm_device *dev, + struct drm_agp_mode mode) +{ + return -ENODEV; +} + +static inline int drm_agp_enable_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + return -ENODEV; +} + +static inline int drm_agp_info(struct drm_device *dev, + struct drm_agp_info *info) +{ + return -ENODEV; +} + +static inline int drm_agp_info_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + return -ENODEV; +} + +static inline int drm_agp_alloc(struct drm_device *dev, + struct drm_agp_buffer *request) +{ + return -ENODEV; +} + +static inline int drm_agp_alloc_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + return -ENODEV; +} + +static inline int drm_agp_free(struct drm_device *dev, + struct drm_agp_buffer *request) +{ + return -ENODEV; +} + +static inline int drm_agp_free_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + return -ENODEV; +} + +static inline int drm_agp_unbind(struct drm_device *dev, + struct drm_agp_binding *request) +{ + return -ENODEV; +} + +static inline int drm_agp_unbind_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + return -ENODEV; +} + +static inline int drm_agp_bind(struct drm_device *dev, + struct drm_agp_binding *request) +{ + return -ENODEV; +} + +static inline int drm_agp_bind_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + return -ENODEV; +} + +#endif /* __OS_HAS_AGP */ + #endif /* __KERNEL__ */ #endif Modified: stable/11/sys/dev/drm2/drm_memory.c ============================================================================== --- stable/11/sys/dev/drm2/drm_memory.c Sun Apr 16 07:43:29 2017 (r317007) +++ stable/11/sys/dev/drm2/drm_memory.c Sun Apr 16 07:58:41 2017 (r317008) @@ -38,6 +38,8 @@ __FBSDID("$FreeBSD$"); #include +#define vunmap(handle) + #if __OS_HAS_AGP static void *agp_remap(unsigned long offset, unsigned long size, struct drm_device * dev) @@ -50,8 +52,6 @@ static void *agp_remap(unsigned long off return NULL; } -#define vunmap(handle) - /** Wrapper around agp_free_memory() */ void drm_free_agp(DRM_AGP_MEM * handle, int pages) { Modified: stable/11/sys/dev/drm2/drm_os_freebsd.c ============================================================================== --- stable/11/sys/dev/drm2/drm_os_freebsd.c Sun Apr 16 07:43:29 2017 (r317007) +++ stable/11/sys/dev/drm2/drm_os_freebsd.c Sun Apr 16 07:58:41 2017 (r317008) @@ -347,6 +347,7 @@ dmi_check_system(const struct dmi_system return (res); } +#if __OS_HAS_MTRR int drm_mtrr_add(unsigned long offset, unsigned long size, unsigned int flags) { @@ -375,6 +376,7 @@ drm_mtrr_del(int handle __unused, unsign strlcpy(mrdesc.mr_owner, "drm", sizeof(mrdesc.mr_owner)); return (-mem_range_attr_set(&mrdesc, &act)); } +#endif void drm_clflush_pages(vm_page_t *pages, unsigned long num_pages) Modified: stable/11/sys/dev/drm2/drm_os_freebsd.h ============================================================================== --- stable/11/sys/dev/drm2/drm_os_freebsd.h Sun Apr 16 07:43:29 2017 (r317007) +++ stable/11/sys/dev/drm2/drm_os_freebsd.h Sun Apr 16 07:58:41 2017 (r317008) @@ -591,8 +591,10 @@ typedef struct drm_pci_id_list #define CONFIG_COMPAT #endif +#ifndef __arm__ #define CONFIG_AGP 1 #define CONFIG_MTRR 1 +#endif #define CONFIG_FB 1 extern const char *fb_mode_option; Modified: stable/11/sys/dev/drm2/ttm/ttm_bo_util.c ============================================================================== --- stable/11/sys/dev/drm2/ttm/ttm_bo_util.c Sun Apr 16 07:43:29 2017 (r317007) +++ stable/11/sys/dev/drm2/ttm/ttm_bo_util.c Sun Apr 16 07:58:41 2017 (r317008) @@ -439,7 +439,8 @@ ttm_buffer_object_transfer(struct ttm_bu vm_memattr_t ttm_io_prot(uint32_t caching_flags) { -#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) +#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) || \ + defined(__arm__) if (caching_flags & TTM_PL_FLAG_WC) return (VM_MEMATTR_WRITE_COMBINING); else From owner-svn-src-all@freebsd.org Sun Apr 16 08:01:59 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 047C1D40AB0; Sun, 16 Apr 2017 08:01:59 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C46559A0; Sun, 16 Apr 2017 08:01:58 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G81v7A097498; Sun, 16 Apr 2017 08:01:57 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G81vks097497; Sun, 16 Apr 2017 08:01:57 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160801.v3G81vks097497@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 08:01: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: r317009 - stable/11/sys/dev/extres/clk X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 08:01:59 -0000 Author: mmel Date: Sun Apr 16 08:01:57 2017 New Revision: 317009 URL: https://svnweb.freebsd.org/changeset/base/317009 Log: MFC r309537: Clock framework fixes: - The clk_test_freq() (aka CLK_SET_DRYRUN) doesn't change frequency, don't cache it result. - Fix busy condition for clk_set_freq(). Modified: stable/11/sys/dev/extres/clk/clk.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/extres/clk/clk.c ============================================================================== --- stable/11/sys/dev/extres/clk/clk.c Sun Apr 16 07:58:41 2017 (r317008) +++ stable/11/sys/dev/extres/clk/clk.c Sun Apr 16 08:01:57 2017 (r317009) @@ -830,9 +830,10 @@ clknode_set_freq(struct clknode *clknode * OR * clock is glitch free and is enabled by calling consumer only */ - if ((clknode->enable_cnt > 1) && - ((clknode->enable_cnt > enablecnt) || - !(clknode->flags & CLK_NODE_GLITCH_FREE))) { + if ((flags & CLK_SET_DRYRUN) == 0 && + clknode->enable_cnt > 1 && + clknode->enable_cnt > enablecnt && + (clknode->flags & CLK_NODE_GLITCH_FREE) == 0) { return (EBUSY); } @@ -856,9 +857,10 @@ clknode_set_freq(struct clknode *clknode if (done) { /* Success - invalidate frequency cache for all children. */ - clknode->freq = freq; - if ((flags & CLK_SET_DRYRUN) == 0) + if ((flags & CLK_SET_DRYRUN) == 0) { + clknode->freq = freq; clknode_refresh_cache(clknode, parent_freq); + } } else if (clknode->parent != NULL) { /* Nothing changed, pass request to parent. */ rv = clknode_set_freq(clknode->parent, freq, flags, enablecnt); From owner-svn-src-all@freebsd.org Sun Apr 16 08:04:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2831BD40B50; Sun, 16 Apr 2017 08:04:03 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F267BB53; Sun, 16 Apr 2017 08:04:02 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G842Hs098304; Sun, 16 Apr 2017 08:04:02 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G841Zc098300; Sun, 16 Apr 2017 08:04:01 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160804.v3G841Zc098300@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 08:04: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: r317010 - stable/11/sys/dev/sound/pci/hda X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 08:04:03 -0000 Author: mmel Date: Sun Apr 16 08:04:01 2017 New Revision: 317010 URL: https://svnweb.freebsd.org/changeset/base/317010 Log: MFC r309532,r310674: r309532: Add IDs for HDA codecs found on Nvidia Tegra SoCs. r310674: Limit number of stripes supported by HDA codec to maximum number announced by HDA controller. Incorrectly implermented HDA codec may report support for more stripes that HDA controller already have. Due to this, always limit number of enabled stripes by global controller maximum. Modified: stable/11/sys/dev/sound/pci/hda/hdaa.c stable/11/sys/dev/sound/pci/hda/hdac.c stable/11/sys/dev/sound/pci/hda/hdac.h stable/11/sys/dev/sound/pci/hda/hdacc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/sound/pci/hda/hdaa.c ============================================================================== --- stable/11/sys/dev/sound/pci/hda/hdaa.c Sun Apr 16 08:01:57 2017 (r317009) +++ stable/11/sys/dev/sound/pci/hda/hdaa.c Sun Apr 16 08:04:01 2017 (r317010) @@ -2130,7 +2130,8 @@ hdaa_channel_start(struct hdaa_chan *ch) uint32_t fmt; fmt = hdaa_stream_format(ch); - ch->stripectl = fls(ch->stripecap & hdaa_allowed_stripes(fmt)) - 1; + ch->stripectl = fls(ch->stripecap & hdaa_allowed_stripes(fmt) & + hda_get_stripes_mask(devinfo->dev)) - 1; ch->sid = HDAC_STREAM_ALLOC(device_get_parent(devinfo->dev), devinfo->dev, ch->dir == PCMDIR_PLAY ? 1 : 0, fmt, ch->stripectl, &ch->dmapos); if (ch->sid <= 0) Modified: stable/11/sys/dev/sound/pci/hda/hdac.c ============================================================================== --- stable/11/sys/dev/sound/pci/hda/hdac.c Sun Apr 16 08:01:57 2017 (r317009) +++ stable/11/sys/dev/sound/pci/hda/hdac.c Sun Apr 16 08:04:01 2017 (r317010) @@ -1767,6 +1767,9 @@ hdac_read_ivar(device_t dev, device_t ch case HDA_IVAR_DMA_NOCACHE: *result = (sc->flags & HDAC_F_DMA_NOCACHE) != 0; break; + case HDA_IVAR_STRIPES_MASK: + *result = (1 << (1 << sc->num_sdo)) - 1; + break; default: return (ENOENT); } Modified: stable/11/sys/dev/sound/pci/hda/hdac.h ============================================================================== --- stable/11/sys/dev/sound/pci/hda/hdac.h Sun Apr 16 08:01:57 2017 (r317009) +++ stable/11/sys/dev/sound/pci/hda/hdac.h Sun Apr 16 08:04:01 2017 (r317010) @@ -619,6 +619,10 @@ #define HDA_CODEC_NVIDIAGT440 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0014) #define HDA_CODEC_NVIDIAGTX550 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0015) #define HDA_CODEC_NVIDIAGTX570 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0018) +#define HDA_CODEC_NVIDIATEGRA30 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0020) +#define HDA_CODEC_NVIDIATEGRA114 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0022) +#define HDA_CODEC_NVIDIATEGRA124 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0028) +#define HDA_CODEC_NVIDIATEGRA210 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0029) #define HDA_CODEC_NVIDIAMCP67 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0067) #define HDA_CODEC_NVIDIAMCP73 HDA_CODEC_CONSTRUCT(NVIDIA, 0x8001) #define HDA_CODEC_NVIDIAXXXX HDA_CODEC_CONSTRUCT(NVIDIA, 0xffff) @@ -703,6 +707,7 @@ enum hdac_device_ivars { HDA_IVAR_SUBSYSTEM_ID, HDA_IVAR_NODE_TYPE, HDA_IVAR_DMA_NOCACHE, + HDA_IVAR_STRIPES_MASK, }; #define HDA_ACCESSOR(var, ivar, type) \ @@ -719,6 +724,7 @@ HDA_ACCESSOR(subdevice_id, SUBDEVICE_ID, HDA_ACCESSOR(subsystem_id, SUBSYSTEM_ID, uint32_t); HDA_ACCESSOR(node_type, NODE_TYPE, uint8_t); HDA_ACCESSOR(dma_nocache, DMA_NOCACHE, uint8_t); +HDA_ACCESSOR(stripes_mask, STRIPES_MASK, uint8_t); #define PCIS_MULTIMEDIA_HDA 0x03 Modified: stable/11/sys/dev/sound/pci/hda/hdacc.c ============================================================================== --- stable/11/sys/dev/sound/pci/hda/hdacc.c Sun Apr 16 08:01:57 2017 (r317009) +++ stable/11/sys/dev/sound/pci/hda/hdacc.c Sun Apr 16 08:04:01 2017 (r317010) @@ -314,6 +314,10 @@ static const struct { { HDA_CODEC_NVIDIAGT440, 0, "NVIDIA GT440" }, { HDA_CODEC_NVIDIAGTX550, 0, "NVIDIA GTX550" }, { HDA_CODEC_NVIDIAGTX570, 0, "NVIDIA GTX570" }, + { HDA_CODEC_NVIDIATEGRA30, 0, "NVIDIA Tegra30" }, + { HDA_CODEC_NVIDIATEGRA114, 0, "NVIDIA Tegra114" }, + { HDA_CODEC_NVIDIATEGRA124, 0, "NVIDIA Tegra124" }, + { HDA_CODEC_NVIDIATEGRA210, 0, "NVIDIA Tegra210" }, { HDA_CODEC_INTELIP, 0, "Intel Ibex Peak" }, { HDA_CODEC_INTELBL, 0, "Intel Bearlake" }, { HDA_CODEC_INTELCA, 0, "Intel Cantiga" }, From owner-svn-src-all@freebsd.org Sun Apr 16 08:07:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E6599D40CB5; Sun, 16 Apr 2017 08:07:39 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C34ACCF9; Sun, 16 Apr 2017 08:07:39 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G87cF2098494; Sun, 16 Apr 2017 08:07:38 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G87cBL098490; Sun, 16 Apr 2017 08:07:38 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160807.v3G87cBL098490@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 08:07:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317011 - in stable/11/sys: conf dev/drm2 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 08:07:40 -0000 Author: mmel Date: Sun Apr 16 08:07:38 2017 New Revision: 317011 URL: https://svnweb.freebsd.org/changeset/base/317011 Log: MFC r310593,r310599: r310593: Fix late monitor hotplug event. If system starts without attached monitor, DRM create framebuffer for VT console. Later, when monitor is attached, the hotplug event must issue full modeset procedure to setup CRTC. In original code, this was done in drm_fb_helper_set_par(), but we don't have this function implemented yet. Use unrolled version of drm_fb_helper_set_par() to ensure same functionality. r310599: Import drm_patform.c, an implementation of non-PCI based attachment for graphics drivers. It will be used in upcoming driver for Nvidia Tegra boards. Added: stable/11/sys/dev/drm2/drm_platform.c - copied unchanged from r310599, head/sys/dev/drm2/drm_platform.c Modified: stable/11/sys/conf/files stable/11/sys/dev/drm2/drmP.h stable/11/sys/dev/drm2/drm_fb_helper.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files ============================================================================== --- stable/11/sys/conf/files Sun Apr 16 08:04:01 2017 (r317010) +++ stable/11/sys/conf/files Sun Apr 16 08:07:38 2017 (r317011) @@ -1477,6 +1477,7 @@ dev/drm2/drm_memory.c optional drm2 dev/drm2/drm_mm.c optional drm2 dev/drm2/drm_modes.c optional drm2 dev/drm2/drm_pci.c optional drm2 +dev/drm2/drm_platform.c optional drm2 dev/drm2/drm_scatter.c optional drm2 dev/drm2/drm_stub.c optional drm2 dev/drm2/drm_sysctl.c optional drm2 Modified: stable/11/sys/dev/drm2/drmP.h ============================================================================== --- stable/11/sys/dev/drm2/drmP.h Sun Apr 16 08:04:01 2017 (r317010) +++ stable/11/sys/dev/drm2/drmP.h Sun Apr 16 08:07:38 2017 (r317011) @@ -1576,6 +1576,10 @@ extern int drm_pcie_get_speed_cap_mask(s #define drm_can_sleep() (DRM_HZ & 1) +/* Platform section */ +int drm_get_platform_dev(device_t kdev, struct drm_device *dev, + struct drm_driver *driver); + /* FreeBSD specific -- should be moved to drm_os_freebsd.h */ #define DRM_GEM_MAPPING_MASK (3ULL << 62) Modified: stable/11/sys/dev/drm2/drm_fb_helper.c ============================================================================== --- stable/11/sys/dev/drm2/drm_fb_helper.c Sun Apr 16 08:04:01 2017 (r317010) +++ stable/11/sys/dev/drm2/drm_fb_helper.c Sun Apr 16 08:07:38 2017 (r317011) @@ -339,6 +339,7 @@ bool drm_fb_helper_restore_fbdev_mode(st { bool error = false; int i, ret; + for (i = 0; i < fb_helper->crtc_count; i++) { struct drm_mode_set *mode_set = &fb_helper->crtc_info[i].mode_set; ret = mode_set->crtc->funcs->set_config(mode_set); @@ -841,6 +842,9 @@ int drm_fb_helper_single_fb_probe(struct struct drm_fb_helper_surface_size sizes; int gamma_size = 0; #if defined(__FreeBSD__) + struct drm_crtc *crtc; + struct drm_device *dev; + int ret; device_t kdev; #endif @@ -942,6 +946,24 @@ int drm_fb_helper_single_fb_probe(struct if (ret != 0) DRM_ERROR("Failed to attach fbd device: %d\n", ret); #endif + } else { + /* Modified version of drm_fb_helper_set_par() */ + dev = fb_helper->dev; + sx_xlock(&dev->mode_config.mutex); + for (i = 0; i < fb_helper->crtc_count; i++) { + crtc = fb_helper->crtc_info[i].mode_set.crtc; + ret = crtc->funcs->set_config(&fb_helper->crtc_info[i].mode_set); + if (ret) { + sx_xunlock(&dev->mode_config.mutex); + return ret; + } + } + sx_xunlock(&dev->mode_config.mutex); + + if (fb_helper->delayed_hotplug) { + fb_helper->delayed_hotplug = false; + drm_fb_helper_hotplug_event(fb_helper); + } } #else if (new_fb) { Copied: stable/11/sys/dev/drm2/drm_platform.c (from r310599, head/sys/dev/drm2/drm_platform.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/drm2/drm_platform.c Sun Apr 16 08:07:38 2017 (r317011, copy of r310599, head/sys/dev/drm2/drm_platform.c) @@ -0,0 +1,183 @@ +/* + * Derived from drm_pci.c + * + * Copyright 2003 José Fonseca. + * Copyright 2003 Leif Delgass. + * Copyright (c) 2009, Code Aurora Forum. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 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. + */ +#include +__FBSDID("$FreeBSD$"); + +#include + +static void drm_platform_free_irq(struct drm_device *dev) +{ + if (dev->irqr == NULL) + return; + + bus_release_resource(dev->dev, SYS_RES_IRQ, + dev->irqrid, dev->irqr); + + dev->irqr = NULL; + dev->irq = 0; +} + +static const char *drm_platform_get_name(struct drm_device *dev) +{ + return dev->driver->name; +} + +static int drm_platform_set_busid(struct drm_device *dev, struct drm_master *master) +{ + int len, ret, id; + + master->unique_len = 13 + strlen(dev->driver->name); + master->unique_size = master->unique_len; + master->unique = malloc(master->unique_len + 1, DRM_MEM_DRIVER, M_NOWAIT); + + if (master->unique == NULL) + return -ENOMEM; + + id = 0; // XXX dev->driver->id; + + /* if only a single instance of the platform device, id will be + * set to -1.. use 0 instead to avoid a funny looking bus-id: + */ + if (id == -1) + id = 0; + + len = snprintf(master->unique, master->unique_len, + "platform:%s:%02d", dev->driver->name, id); + + if (len > master->unique_len) { + DRM_ERROR("Unique buffer overflowed\n"); + ret = -EINVAL; + goto err; + } + + return 0; +err: + return ret; +} + +static int drm_platform_get_irq(struct drm_device *dev) +{ + if (dev->irqr) + return (dev->irq); + + dev->irqr = bus_alloc_resource_any(dev->dev, SYS_RES_IRQ, + &dev->irqrid, RF_SHAREABLE); + if (!dev->irqr) { + dev_err(dev->dev, "Failed to allocate IRQ\n"); + return (0); + } + + dev->irq = (int) rman_get_start(dev->irqr); + + return (dev->irq); +} + +static struct drm_bus drm_platform_bus = { + .bus_type = DRIVER_BUS_PLATFORM, + .get_irq = drm_platform_get_irq, + .free_irq = drm_platform_free_irq, + .get_name = drm_platform_get_name, + .set_busid = drm_platform_set_busid, +}; + +/** + * Register. + * + * \param platdev - Platform device struture + * \return zero on success or a negative number on failure. + * + * Attempt to gets inter module "drm" information. If we are first + * then register the character device and inter module information. + * Try and register, if we fail to register, backout previous work. + */ + +int drm_get_platform_dev(device_t kdev, struct drm_device *dev, + struct drm_driver *driver) +{ + int ret; + + DRM_DEBUG("\n"); + + driver->bus = &drm_platform_bus; + + dev->dev = kdev; + + sx_xlock(&drm_global_mutex); + + ret = drm_fill_in_dev(dev, driver); + + if (ret) { + printf("DRM: Fill_in_dev failed.\n"); + goto err_g1; + } + + if (drm_core_check_feature(dev, DRIVER_MODESET)) { + ret = drm_get_minor(dev, &dev->control, DRM_MINOR_CONTROL); + if (ret) + goto err_g1; + } + + ret = drm_get_minor(dev, &dev->primary, DRM_MINOR_LEGACY); + if (ret) + goto err_g2; + + if (dev->driver->load) { + ret = dev->driver->load(dev, 0); + if (ret) + goto err_g3; + } + + /* setup the grouping for the legacy output */ + if (drm_core_check_feature(dev, DRIVER_MODESET)) { + ret = drm_mode_group_init_legacy_group(dev, + &dev->primary->mode_group); + if (ret) + goto err_g3; + } + +#ifdef FREEBSD_NOTYET + list_add_tail(&dev->driver_item, &driver->device_list); +#endif /* FREEBSD_NOTYET */ + + sx_xunlock(&drm_global_mutex); + + DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n", + driver->name, driver->major, driver->minor, driver->patchlevel, + driver->date, dev->primary->index); + + return 0; + +err_g3: + drm_put_minor(&dev->primary); +err_g2: + if (drm_core_check_feature(dev, DRIVER_MODESET)) + drm_put_minor(&dev->control); +err_g1: + sx_xunlock(&drm_global_mutex); + return ret; +} +EXPORT_SYMBOL(drm_get_platform_dev); From owner-svn-src-all@freebsd.org Sun Apr 16 08:18:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A0F3D3E078; Sun, 16 Apr 2017 08:18:39 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CA23413B4; Sun, 16 Apr 2017 08:18:38 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G8Icaf002686; Sun, 16 Apr 2017 08:18:38 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G8Ib5K002681; Sun, 16 Apr 2017 08:18:37 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160818.v3G8Ib5K002681@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 08:18: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: r317012 - in stable/11/sys/arm/nvidia: . tegra124 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 08:18:39 -0000 Author: mmel Date: Sun Apr 16 08:18:37 2017 New Revision: 317012 URL: https://svnweb.freebsd.org/changeset/base/317012 Log: MFC r308286,r308287: r308286: TEGRA: Add basic driver for memory controller. For now, it only reports memory and SMMU access errors. r308287: TEGRA: Fix numerous issues in clock code. Define and export clocks related to XUSB driver. Added: stable/11/sys/arm/nvidia/tegra_mc.c - copied unchanged from r308286, head/sys/arm/nvidia/tegra_mc.c Modified: stable/11/sys/arm/nvidia/tegra124/files.tegra124 stable/11/sys/arm/nvidia/tegra124/tegra124_car.c stable/11/sys/arm/nvidia/tegra124/tegra124_clk_per.c stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/nvidia/tegra124/files.tegra124 ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/files.tegra124 Sun Apr 16 08:07:38 2017 (r317011) +++ stable/11/sys/arm/nvidia/tegra124/files.tegra124 Sun Apr 16 08:18:37 2017 (r317012) @@ -33,6 +33,7 @@ arm/nvidia/tegra_efuse.c standard arm/nvidia/tegra_soctherm_if.m standard arm/nvidia/tegra_soctherm.c standard arm/nvidia/tegra_lic.c standard +arm/nvidia/tegra_mc.c standard #arm/nvidia/tegra_hda.c optional snd_hda #arm/nvidia/drm2/hdmi.c optional drm2 #arm/nvidia/drm2/tegra_drm_if.m optional drm2 Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_car.c ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/tegra124_car.c Sun Apr 16 08:07:38 2017 (r317011) +++ stable/11/sys/arm/nvidia/tegra124/tegra124_car.c Sun Apr 16 08:18:37 2017 (r317012) @@ -191,13 +191,13 @@ PLIST(mux_plle_src) = {"pllE_src1", "pll PLIST(mux_plld_out0_plld2_out0) = {"pllD_out0", "pllD2_out0"}; PLIST(mux_pllmcp_clkm) = {"pllM_out0", "pllC_out0", "pllP_out0", "clk_m", "pllM_UD", "pllC2_out0", "pllC3_out0", "pllC_UD"}; -PLIST(mux_xusb_hs) = {"pc_xusb_ss", "pllU_60"}; +PLIST(mux_xusb_hs) = {"xusb_ss_div2", "pllU_60"}; PLIST(mux_xusb_ss) = {"pc_xusb_ss", "osc_div_clk"}; /* Clocks ajusted online. */ static struct clk_fixed_def fixed_clk_m = - FRATE(0, "clk_m", 12000000); + FRATE(TEGRA124_CLK_CLK_M, "clk_m", 12000000); static struct clk_fixed_def fixed_osc_div_clk = FACT(0, "osc_div_clk", "clk_m", 1, 1); @@ -222,6 +222,10 @@ static struct clk_fixed_def tegra124_fix FRATE(0, "audio3", 10000000), FRATE(0, "audio4", 10000000), FRATE(0, "ext_vimclk", 10000000), + + /* XUSB */ + FACT(TEGRA124_CLK_XUSB_SS_DIV2, "xusb_ss_div2", "xusb_ss", 1, 2), + }; @@ -239,7 +243,7 @@ static struct clk_mux_def tegra124_mux_c MUX(0, "emc_mux", mux_pllmcp_clkm, CLK_SOURCE_EMC, 29, 3), /* USB. */ - MUX(0, "xusb_hs", mux_xusb_hs, CLK_SOURCE_XUSB_SS, 25, 1), + MUX(TEGRA124_CLK_XUSB_HS_SRC, "xusb_hs", mux_xusb_hs, CLK_SOURCE_XUSB_SS, 25, 1), MUX(0, "xusb_ss_mux", mux_xusb_ss, CLK_SOURCE_XUSB_SS, 24, 1), }; @@ -249,7 +253,7 @@ static struct clk_gate_def tegra124_gate /* Core clocks. */ GATE_PLL(0, "pllC_out1", "pllC_out1_div", PLLC_OUT, 0), GATE_PLL(0, "pllM_out1", "pllM_out1_div", PLLM_OUT, 0), - GATE_PLL(0, "pllU_480", "pllU_out", PLLU_BASE, 22), + GATE_PLL(TEGRA124_CLK_PLL_U_480M, "pllU_480", "pllU_out", PLLU_BASE, 22), GATE_PLL(0, "pllP_outX0", "pllP_outX0_div", PLLP_RESHIFT, 0), GATE_PLL(0, "pllP_out1", "pllP_out1_div", PLLP_OUTA, 0), GATE_PLL(0, "pllP_out2", "pllP_out2_div", PLLP_OUTA, 16), Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_clk_per.c ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/tegra124_clk_per.c Sun Apr 16 08:07:38 2017 (r317011) +++ stable/11/sys/arm/nvidia/tegra124/tegra124_clk_per.c Sun Apr 16 08:18:37 2017 (r317012) @@ -41,6 +41,15 @@ __FBSDID("$FreeBSD$"); #include #include "tegra124_car.h" +/* The TEGRA124_CLK_XUSB_GATE is missing in current + * DT bindings, define it localy + */ +#ifdef TEGRA124_CLK_XUSB_GATE +#error "TEGRA124_CLK_XUSB_GATE is now defined, revisit XUSB code!" +#else +#define TEGRA124_CLK_XUSB_GATE 143 +#endif + /* Bits in base register. */ #define PERLCK_AMUX_MASK 0x0F #define PERLCK_AMUX_SHIFT 16 @@ -175,7 +184,7 @@ PLIST(mux_sep_audio) = "spdif_in", "i2s0", "i2s1", "i2s2", "i2s4", "pllA_out0", "ext_vimclk"}; -static uint32_t clk_enabale_reg[] = { +static uint32_t clk_enable_reg[] = { CLK_OUT_ENB_L, CLK_OUT_ENB_H, CLK_OUT_ENB_U, @@ -285,7 +294,7 @@ static struct pgate_def pgate_def[] = { GATE(CSUS, "sus_out", "clk_m", U(28)), /* GATE(DEVD2_OUT, "devd2_out", "clk_m", U(29)), */ /* GATE(DEVD1_OUT, "devd1_out", "clk_m", U(30)), */ - GATE(XUSB_DEV_SRC, "xusb_core_dev", "pc_xusb_core_dev", U(31)), + GATE(XUSB_DEV, "xusb_core_dev", "pc_xusb_core_dev", U(31)), /* bank V -> 96-127 */ /* GATE(CPUG, "cpug", "clk_m", V(0)), */ @@ -328,7 +337,7 @@ static struct pgate_def pgate_def[] = { /* GATE(HDMI_IOBIST, "hdmi_iobist", "clk_m", W(11)), */ /* GATE(SATA_IOBIST, "sata_iobist", "clk_m", W(12)), */ /* GATE(MIPI_IOBIST, "mipi_iobist", "clk_m", W(13)), */ - /* GATE(XUSB_IOBIST, "xusb_iobist", "clk_m", W(15)), */ + GATE(XUSB_GATE, "xusb_gate", "clk_m", W(15)), GATE(CILAB, "cilab", "pc_cilab", W(16)), GATE(CILCD, "cilcd", "pc_cilcd", W(17)), GATE(CILE, "cile", "pc_cile", W(18)), @@ -337,10 +346,10 @@ static struct pgate_def pgate_def[] = { GATE(ENTROPY, "entropy", "pc_entropy", W(21)), GATE(AMX, "amx", "pc_amx", W(25)), GATE(ADX, "adx", "pc_adx", W(26)), - GATE(DFLL_REF, "dvfs_ref", "pc_dvfs_ref", X(27)), - GATE(DFLL_SOC, "dvfs_soc", "pc_dvfs_soc", X(27)), - GATE(XUSB_SS_SRC, "xusb_ss", "xusb_ss_mux", X(28)), - /* GATE(EMC_LATENCY, "emc_latency", "pc_emc_latency", X(29)), */ + GATE(DFLL_REF, "dvfs_ref", "pc_dvfs_ref", W(27)), + GATE(DFLL_SOC, "dvfs_soc", "pc_dvfs_soc", W(27)), + GATE(XUSB_SS, "xusb_ss", "xusb_ss_mux", W(28)), + /* GATE(EMC_LATENCY, "emc_latency", "pc_emc_latency", W(29)), */ /* bank X -> 160-191*/ /* GATE(SPARE, "spare", "clk_m", X(0)), */ @@ -391,111 +400,115 @@ static struct pgate_def pgate_def[] = { } /* Mux with fractional 8.1 divider. */ -#define CLK_8_1(cn, pl, r, f) \ - PER_CLK(0, cn, pl, r, 8, 1, (f) | DCF_HAVE_MUX | DCF_HAVE_DIV) +#define CLK_8_1(id, cn, pl, r, f) \ + PER_CLK(id, cn, pl, r, 8, 1, (f) | DCF_HAVE_MUX | DCF_HAVE_DIV) + /* Mux with fractional 16.1 divider. */ -#define CLK16_1(cn, pl, r, f) \ - PER_CLK(0, cn, pl, r, 16, 1, (f) | DCF_HAVE_MUX | DCF_HAVE_DIV) +#define CLK16_1(id, cn, pl, r, f) \ + PER_CLK(id, cn, pl, r, 16, 1, (f) | DCF_HAVE_MUX | DCF_HAVE_DIV) /* Mux with integer 16bits divider. */ -#define CLK16_0(cn, pl, r, f) \ - PER_CLK(0, cn, pl, r, 16, 0, (f) | DCF_HAVE_MUX | DCF_HAVE_DIV) +#define CLK16_0(id, cn, pl, r, f) \ + PER_CLK(id, cn, pl, r, 16, 0, (f) | DCF_HAVE_MUX | DCF_HAVE_DIV) /* Mux wihout divider. */ -#define CLK_0_0(cn, pl, r, f) \ - PER_CLK(0, cn, pl, r, 0, 0, (f) | DCF_HAVE_MUX) +#define CLK_0_0(id, cn, pl, r, f) \ + PER_CLK(id, cn, pl, r, 0, 0, (f) | DCF_HAVE_MUX) static struct periph_def periph_def[] = { - CLK_8_1("pc_i2s1", mux_a_N_audio1_N_p_N_clkm, CLK_SOURCE_I2S1, DCF_HAVE_ENA), - CLK_8_1("pc_i2s2", mux_a_N_audio2_N_p_N_clkm, CLK_SOURCE_I2S2, DCF_HAVE_ENA), - CLK_8_1("pc_spdif_out", mux_a_N_audio_N_p_N_clkm, CLK_SOURCE_SPDIF_OUT, 0), - CLK_8_1("pc_spdif_in", mux_p_c2_c_c3_m, CLK_SOURCE_SPDIF_IN, 0), - CLK_8_1("pc_pwm", mux_p_c2_c_c3_clks_N_clkm, CLK_SOURCE_PWM, 0), - CLK_8_1("pc_spi2", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI2, 0), - CLK_8_1("pc_spi3", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI3, 0), - CLK16_0("pc_i2c5", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C5, 0), - CLK16_0("pc_i2c1", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C1, 0), - CLK_8_1("pc_spi1", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI1, 0), - CLK_0_0("pc_disp1", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_DISP1, 0), - CLK_0_0("pc_disp2", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_DISP2, 0), - CLK_8_1("pc_isp", mux_m_c_p_a_c2_c3_clkm_c4, CLK_SOURCE_ISP, 0), - CLK_8_1("pc_vi", mux_m_c2_c_c3_p_N_a_c4, CLK_SOURCE_VI, DCF_IS_VI), - CLK_8_1("pc_sdmmc1", mux_p_c2_c_c3_m_e_clkm, CLK_SOURCE_SDMMC1, 0), - CLK_8_1("pc_sdmmc2", mux_p_c2_c_c3_m_e_clkm, CLK_SOURCE_SDMMC2, 0), - CLK_8_1("pc_sdmmc4", mux_p_c2_c_c3_m_e_clkm, CLK_SOURCE_SDMMC4, 0), - CLK_8_1("pc_vfir", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_VFIR, 0), - CLK_8_1("pc_hsi", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HSI, 0), - CLK16_1("pc_uarta", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTA, DCF_IS_UART), - CLK16_1("pc_uartb", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTB, DCF_IS_UART), - CLK_8_1("pc_host1x", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HOST1X, DCF_IS_HOST1X), - CLK_8_1("pc_hdmi", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_HDMI, 0), - CLK16_0("pc_i2c2", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C2, 0), + CLK_8_1(0, "pc_i2s1", mux_a_N_audio1_N_p_N_clkm, CLK_SOURCE_I2S1, DCF_HAVE_ENA), + CLK_8_1(0, "pc_i2s2", mux_a_N_audio2_N_p_N_clkm, CLK_SOURCE_I2S2, DCF_HAVE_ENA), + CLK_8_1(0, "pc_spdif_out", mux_a_N_audio_N_p_N_clkm, CLK_SOURCE_SPDIF_OUT, 0), + CLK_8_1(0, "pc_spdif_in", mux_p_c2_c_c3_m, CLK_SOURCE_SPDIF_IN, 0), + CLK_8_1(0, "pc_pwm", mux_p_c2_c_c3_clks_N_clkm, CLK_SOURCE_PWM, 0), + CLK_8_1(0, "pc_spi2", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI2, 0), + CLK_8_1(0, "pc_spi3", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI3, 0), + CLK16_0(0, "pc_i2c5", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C5, 0), + CLK16_0(0, "pc_i2c1", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C1, 0), + CLK_8_1(0, "pc_spi1", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI1, 0), + CLK_0_0(0, "pc_disp1", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_DISP1, 0), + CLK_0_0(0, "pc_disp2", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_DISP2, 0), + CLK_8_1(0, "pc_isp", mux_m_c_p_a_c2_c3_clkm_c4, CLK_SOURCE_ISP, 0), + CLK_8_1(0, "pc_vi", mux_m_c2_c_c3_p_N_a_c4, CLK_SOURCE_VI, DCF_IS_VI), + CLK_8_1(0, "pc_sdmmc1", mux_p_c2_c_c3_m_e_clkm, CLK_SOURCE_SDMMC1, 0), + CLK_8_1(0, "pc_sdmmc2", mux_p_c2_c_c3_m_e_clkm, CLK_SOURCE_SDMMC2, 0), + CLK_8_1(0, "pc_sdmmc4", mux_p_c2_c_c3_m_e_clkm, CLK_SOURCE_SDMMC4, 0), + CLK_8_1(0, "pc_vfir", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_VFIR, 0), + CLK_8_1(0, "pc_hsi", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HSI, 0), + CLK16_1(0, "pc_uarta", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTA, DCF_IS_UART), + CLK16_1(0, "pc_uartb", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTB, DCF_IS_UART), + CLK_8_1(0, "pc_host1x", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HOST1X, DCF_IS_HOST1X), + CLK_8_1(0, "pc_hdmi", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_HDMI, 0), + CLK16_0(0, "pc_i2c2", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C2, 0), /* EMC 8 */ - CLK16_1("pc_uartc", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTC, DCF_IS_UART), - CLK_8_1("pc_vi_sensor", mux_m_c2_c_c3_p_N_a, CLK_SOURCE_VI_SENSOR, 0), - CLK_8_1("pc_spi4", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI4, 0), - CLK16_0("pc_i2c3", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C3, 0), - CLK_8_1("pc_sdmmc3", mux_p_c2_c_c3_m_e_clkm, CLK_SOURCE_SDMMC3, 0), - CLK16_1("pc_uartd", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTD, DCF_IS_UART), - CLK_8_1("pc_vde", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_VDE, 0), - CLK_8_1("pc_owr", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_OWR, 0), - CLK_8_1("pc_snor", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_NOR, 0), - CLK_8_1("pc_csite", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_CSITE, 0), - CLK_8_1("pc_i2s0", mux_a_N_audio0_N_p_N_clkm, CLK_SOURCE_I2S0, 0), + CLK16_1(0, "pc_uartc", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTC, DCF_IS_UART), + CLK_8_1(0, "pc_vi_sensor", mux_m_c2_c_c3_p_N_a, CLK_SOURCE_VI_SENSOR, 0), + CLK_8_1(0, "pc_spi4", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI4, 0), + CLK16_0(0, "pc_i2c3", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C3, 0), + CLK_8_1(0, "pc_sdmmc3", mux_p_c2_c_c3_m_e_clkm, CLK_SOURCE_SDMMC3, 0), + CLK16_1(0, "pc_uartd", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTD, DCF_IS_UART), + CLK_8_1(0, "pc_vde", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_VDE, 0), + CLK_8_1(0, "pc_owr", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_OWR, 0), + CLK_8_1(0, "pc_snor", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_NOR, 0), + CLK_8_1(0, "pc_csite", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_CSITE, 0), + CLK_8_1(0, "pc_i2s0", mux_a_N_audio0_N_p_N_clkm, CLK_SOURCE_I2S0, 0), /* DTV xxx */ - CLK_8_1("pc_msenc", mux_m_c2_c_c3_p_N_a, CLK_SOURCE_MSENC, 0), - CLK_8_1("pc_tsec", mux_p_c2_c_c3_m_a_clkm, CLK_SOURCE_TSEC, 0), + CLK_8_1(0, "pc_msenc", mux_m_c2_c_c3_p_N_a, CLK_SOURCE_MSENC, 0), + CLK_8_1(0, "pc_tsec", mux_p_c2_c_c3_m_a_clkm, CLK_SOURCE_TSEC, 0), /* SPARE2 */ - CLK_8_1("pc_mselect", mux_p_c2_c_c3_m_clks_clkm, CLK_SOURCE_MSELECT, 0), - CLK_8_1("pc_tsensor", mux_p_c2_c_c3_clkm_N_clks, CLK_SOURCE_TSENSOR, 0), - CLK_8_1("pc_i2s3", mux_a_N_audio3_N_p_N_clkm, CLK_SOURCE_I2S3, DCF_HAVE_ENA), - CLK_8_1("pc_i2s4", mux_a_N_audio4_N_p_N_clkm, CLK_SOURCE_I2S4, DCF_HAVE_ENA), - CLK16_0("pc_i2c4", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C4, 0), - CLK_8_1("pc_spi5", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI5, 0), - CLK_8_1("pc_spi6", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI6, 0), - CLK_8_1("pc_audio", mux_sep_audio, CLK_SOURCE_AUDIO, DCF_IS_AUDIO), - CLK_8_1("pc_dam0", mux_sep_audio, CLK_SOURCE_DAM0, DCF_IS_AUDIO), - CLK_8_1("pc_dam1", mux_sep_audio, CLK_SOURCE_DAM1, DCF_IS_AUDIO), - CLK_8_1("pc_dam2", mux_sep_audio, CLK_SOURCE_DAM2, DCF_IS_AUDIO), - CLK_8_1("pc_hda2codec_2x", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HDA2CODEC_2X, 0), - CLK_8_1("pc_actmon", mux_p_c2_c_c3_clks_N_clkm, CLK_SOURCE_ACTMON, 0), - CLK_8_1("pc_extperiph1", mux_a_clks_p_clkm_e, CLK_SOURCE_EXTPERIPH1, 0), - CLK_8_1("pc_extperiph2", mux_a_clks_p_clkm_e, CLK_SOURCE_EXTPERIPH2, 0), - CLK_8_1("pc_extperiph3", mux_a_clks_p_clkm_e, CLK_SOURCE_EXTPERIPH3, 0), - CLK_8_1("pc_i2c_slow", mux_p_c2_c_c3_clks_N_clkm, CLK_SOURCE_I2C_SLOW, 0), + CLK_8_1(0, "pc_mselect", mux_p_c2_c_c3_m_clks_clkm, CLK_SOURCE_MSELECT, 0), + CLK_8_1(0, "pc_tsensor", mux_p_c2_c_c3_clkm_N_clks, CLK_SOURCE_TSENSOR, 0), + CLK_8_1(0, "pc_i2s3", mux_a_N_audio3_N_p_N_clkm, CLK_SOURCE_I2S3, DCF_HAVE_ENA), + CLK_8_1(0, "pc_i2s4", mux_a_N_audio4_N_p_N_clkm, CLK_SOURCE_I2S4, DCF_HAVE_ENA), + CLK16_0(0, "pc_i2c4", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C4, 0), + CLK_8_1(0, "pc_spi5", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI5, 0), + CLK_8_1(0, "pc_spi6", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI6, 0), + CLK_8_1(0, "pc_audio", mux_sep_audio, CLK_SOURCE_AUDIO, DCF_IS_AUDIO), + CLK_8_1(0, "pc_dam0", mux_sep_audio, CLK_SOURCE_DAM0, DCF_IS_AUDIO), + CLK_8_1(0, "pc_dam1", mux_sep_audio, CLK_SOURCE_DAM1, DCF_IS_AUDIO), + CLK_8_1(0, "pc_dam2", mux_sep_audio, CLK_SOURCE_DAM2, DCF_IS_AUDIO), + CLK_8_1(0, "pc_hda2codec_2x", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HDA2CODEC_2X, 0), + CLK_8_1(0, "pc_actmon", mux_p_c2_c_c3_clks_N_clkm, CLK_SOURCE_ACTMON, 0), + CLK_8_1(0, "pc_extperiph1", mux_a_clks_p_clkm_e, CLK_SOURCE_EXTPERIPH1, 0), + CLK_8_1(0, "pc_extperiph2", mux_a_clks_p_clkm_e, CLK_SOURCE_EXTPERIPH2, 0), + CLK_8_1(0, "pc_extperiph3", mux_a_clks_p_clkm_e, CLK_SOURCE_EXTPERIPH3, 0), + CLK_8_1(0, "pc_i2c_slow", mux_p_c2_c_c3_clks_N_clkm, CLK_SOURCE_I2C_SLOW, 0), /* SYS */ - CLK_8_1("pc_sor0", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_SOR0, DCF_IS_SOR0), - CLK_8_1("pc_sata_oob", mux_p_N_c_N_m_N_clkm, CLK_SOURCE_SATA_OOB, 0), - CLK_8_1("pc_sata", mux_p_N_c_N_m_N_clkm, CLK_SOURCE_SATA, FDS_IS_SATA), - CLK_8_1("pc_hda", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HDA, 0), - - - CLK_8_1("pc_xusb_core_host", mux_clkm_p_c2_c_c3_refre, CLK_SOURCE_XUSB_CORE_HOST, 0), - CLK_8_1("pc_xusb_falcon", mux_clkm_p_c2_c_c3_refre, CLK_SOURCE_XUSB_FALCON, 0), - CLK_8_1("pc_xusb_fs", mux_clkm_N_u48_N_p_N_u480, CLK_SOURCE_XUSB_FS, 0), - CLK_8_1("pc_xusb_core_dev", mux_clkm_p_c2_c_c3_refre, CLK_SOURCE_XUSB_CORE_DEV, 0), - CLK_8_1("pc_xusb_ss", mux_clkm_refe_clks_u480_c_c2_c3_oscdiv, CLK_SOURCE_XUSB_SS, DCF_IS_XUSB_SS), - CLK_8_1("pc_cilab", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_CILAB, 0), - CLK_8_1("pc_cilcd", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_CILCD, 0), - CLK_8_1("pc_cile", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_CILE, 0), - CLK_8_1("pc_dsia_lp", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_DSIA_LP, 0), - CLK_8_1("pc_dsib_lp", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_DSIB_LP, 0), - CLK_8_1("pc_entropy", mux_p_clkm_clks_E, CLK_SOURCE_ENTROPY, 0), - CLK_8_1("pc_dvfs_ref", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_DVFS_REF, DCF_HAVE_ENA), - CLK_8_1("pc_dvfs_soc", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_DVFS_SOC, DCF_HAVE_ENA), - CLK_8_1("pc_traceclkin", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_TRACECLKIN, 0), - CLK_8_1("pc_adx", mux_a_c2_c_c3_p_N_clkm, CLK_SOURCE_ADX, DCF_HAVE_ENA), - CLK_8_1("pc_amx", mux_a_c2_c_c3_p_N_clkm, CLK_SOURCE_AMX, DCF_HAVE_ENA), - CLK_8_1("pc_emc_latency", mux_m_c_p_clkm_mud_c2_c3, CLK_SOURCE_EMC_LATENCY, 0), - CLK_8_1("pc_soc_therm", mux_m_c_p_a_c2_c3, CLK_SOURCE_SOC_THERM, 0), - CLK_8_1("pc_vi_sensor2", mux_m_c2_c_c3_p_N_a, CLK_SOURCE_VI_SENSOR2, 0), - CLK16_0("pc_i2c6", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C6, 0), - CLK_8_1("pc_emc_dll", mux_m_c_p_clkm_mud_c2_c3, CLK_SOURCE_EMC_DLL, DCF_IS_EMC_DLL), - CLK_8_1("pc_hdmi_audio", mux_p_c_c2_clkm, CLK_SOURCE_HDMI_AUDIO, 0), - CLK_8_1("pc_clk72mhz", mux_p_c_c2_clkm, CLK_SOURCE_CLK72MHZ, 0), - CLK_8_1("pc_adx1", mux_a_c2_c_c3_p_N_clkm, CLK_SOURCE_ADX1, DCF_HAVE_ENA), - CLK_8_1("pc_amx1", mux_a_c2_c_c3_p_N_clkm, CLK_SOURCE_AMX1, DCF_HAVE_ENA), - CLK_8_1("pc_vic", mux_m_c_p_a_c2_c3_clkm, CLK_SOURCE_VIC, DCF_IS_VIC), + CLK_8_1(0, "pc_sor0", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_SOR0, DCF_IS_SOR0), + CLK_8_1(0, "pc_sata_oob", mux_p_N_c_N_m_N_clkm, CLK_SOURCE_SATA_OOB, 0), + CLK_8_1(0, "pc_sata", mux_p_N_c_N_m_N_clkm, CLK_SOURCE_SATA, FDS_IS_SATA), + CLK_8_1(0, "pc_hda", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HDA, 0), + CLK_8_1(TEGRA124_CLK_XUSB_HOST_SRC, + "pc_xusb_core_host", mux_clkm_p_c2_c_c3_refre, CLK_SOURCE_XUSB_CORE_HOST, 0), + CLK_8_1(TEGRA124_CLK_XUSB_FALCON_SRC, + "pc_xusb_falcon", mux_clkm_p_c2_c_c3_refre, CLK_SOURCE_XUSB_FALCON, 0), + CLK_8_1(TEGRA124_CLK_XUSB_FS_SRC, + "pc_xusb_fs", mux_clkm_N_u48_N_p_N_u480, CLK_SOURCE_XUSB_FS, 0), + CLK_8_1(TEGRA124_CLK_XUSB_DEV_SRC, + "pc_xusb_core_dev", mux_clkm_p_c2_c_c3_refre, CLK_SOURCE_XUSB_CORE_DEV, 0), + CLK_8_1(TEGRA124_CLK_XUSB_SS_SRC, + "pc_xusb_ss", mux_clkm_refe_clks_u480_c_c2_c3_oscdiv, CLK_SOURCE_XUSB_SS, DCF_IS_XUSB_SS), + CLK_8_1(0, "pc_cilab", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_CILAB, 0), + CLK_8_1(0, "pc_cilcd", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_CILCD, 0), + CLK_8_1(0, "pc_cile", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_CILE, 0), + CLK_8_1(0, "pc_dsia_lp", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_DSIA_LP, 0), + CLK_8_1(0, "pc_dsib_lp", mux_p_N_c_N_N_N_clkm, CLK_SOURCE_DSIB_LP, 0), + CLK_8_1(0, "pc_entropy", mux_p_clkm_clks_E, CLK_SOURCE_ENTROPY, 0), + CLK_8_1(0, "pc_dvfs_ref", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_DVFS_REF, DCF_HAVE_ENA), + CLK_8_1(0, "pc_dvfs_soc", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_DVFS_SOC, DCF_HAVE_ENA), + CLK_8_1(0, "pc_traceclkin", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_TRACECLKIN, 0), + CLK_8_1(0, "pc_adx", mux_a_c2_c_c3_p_N_clkm, CLK_SOURCE_ADX, DCF_HAVE_ENA), + CLK_8_1(0, "pc_amx", mux_a_c2_c_c3_p_N_clkm, CLK_SOURCE_AMX, DCF_HAVE_ENA), + CLK_8_1(0, "pc_emc_latency", mux_m_c_p_clkm_mud_c2_c3, CLK_SOURCE_EMC_LATENCY, 0), + CLK_8_1(0, "pc_soc_therm", mux_m_c_p_a_c2_c3, CLK_SOURCE_SOC_THERM, 0), + CLK_8_1(0, "pc_vi_sensor2", mux_m_c2_c_c3_p_N_a, CLK_SOURCE_VI_SENSOR2, 0), + CLK16_0(0, "pc_i2c6", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C6, 0), + CLK_8_1(0, "pc_emc_dll", mux_m_c_p_clkm_mud_c2_c3, CLK_SOURCE_EMC_DLL, DCF_IS_EMC_DLL), + CLK_8_1(0, "pc_hdmi_audio", mux_p_c_c2_clkm, CLK_SOURCE_HDMI_AUDIO, 0), + CLK_8_1(0, "pc_clk72mhz", mux_p_c_c2_clkm, CLK_SOURCE_CLK72MHZ, 0), + CLK_8_1(0, "pc_adx1", mux_a_c2_c_c3_p_N_clkm, CLK_SOURCE_ADX1, DCF_HAVE_ENA), + CLK_8_1(0, "pc_amx1", mux_a_c2_c_c3_p_N_clkm, CLK_SOURCE_AMX1, DCF_HAVE_ENA), + CLK_8_1(0, "pc_vic", mux_m_c_p_a_c2_c3_clkm, CLK_SOURCE_VIC, DCF_IS_VIC), }; static int periph_init(struct clknode *clk, device_t dev); @@ -528,6 +541,7 @@ static clknode_method_t periph_methods[] }; DEFINE_CLASS_1(tegra124_periph, tegra124_periph_class, periph_methods, sizeof(struct periph_sc), clknode_class); + static int periph_init(struct clknode *clk, device_t dev) { @@ -637,14 +651,13 @@ periph_set_freq(struct clknode *clk, uin divider++; if (divider < (1 << sc->div_f_width)) - divider = 1 << sc->div_f_width; + divider = 1 << (sc->div_f_width - 1); - if ((*stop != 0) && - ((flags & (CLK_SET_ROUND_UP | CLK_SET_ROUND_DOWN)) == 0) && - (*fout != (tmp / divider))) - return (ERANGE); - - if ((flags & CLK_SET_DRYRUN) == 0) { + if (flags & CLK_SET_DRYRUN) { + if (((flags & (CLK_SET_ROUND_UP | CLK_SET_ROUND_DOWN)) == 0) && + (*fout != (tmp / divider))) + return (ERANGE); + } else { DEVICE_LOCK(sc); MD4(sc, sc->base_reg, sc->div_mask, (divider - (1 << sc->div_f_width))); @@ -703,9 +716,9 @@ DEFINE_CLASS_1(tegra124_pgate, tegra124_ static uint32_t get_enable_reg(int idx) { - KASSERT(idx / 32 < nitems(clk_enabale_reg), + KASSERT(idx / 32 < nitems(clk_enable_reg), ("Invalid clock index for enable: %d", idx)); - return (clk_enabale_reg[idx / 32]); + return (clk_enable_reg[idx / 32]); } static uint32_t Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c Sun Apr 16 08:07:38 2017 (r317011) +++ stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c Sun Apr 16 08:18:37 2017 (r317012) @@ -205,6 +205,16 @@ static struct pdiv_table pllu_map[] = { {0, 0} }; +static struct pdiv_table pllrefe_map[] = { + {1, 0}, + {2, 1}, + {3, 2}, + {4, 3}, + {5, 4}, + {6, 5}, + {0, 0}, +}; + static struct clk_pll_def pll_clks[] = { /* PLLM: 880 MHz Clock source for EMC 2x clock */ { @@ -342,6 +352,7 @@ static struct clk_pll_def pll_clks[] = { .lock_enable = PLLRE_MISC_LOCK_ENABLE, .iddq_reg = PLLRE_MISC, .iddq_mask = 1 << PLLRE_IDDQ_BIT, + .pdiv_table = pllrefe_map, .mnp_bits = {8, 8, 4, 16}, }, /* PLLE: generate the 100 MHz reference clock for USB 3.0 (spread spectrum) */ @@ -433,14 +444,14 @@ pdiv_to_reg(struct pll_sc *sc, uint32_t tbl = sc->pdiv_table; if (tbl == NULL) - return (ffs(p_div)); + return (ffs(p_div) - 1); while (tbl->divider != 0) { if (p_div <= tbl->divider) return (tbl->value); tbl++; } - return ~0; + return (0xFFFFFFFF); } static uint32_t @@ -449,15 +460,15 @@ reg_to_pdiv(struct pll_sc *sc, uint32_t struct pdiv_table *tbl; tbl = sc->pdiv_table; - if (tbl != NULL) { - while (tbl->divider) { - if (reg == tbl->value) - return (tbl->divider); - tbl++; - } - return (0); + if (tbl == NULL) + return (1 << reg); + + while (tbl->divider) { + if (reg == tbl->value) + return (tbl->divider); + tbl++; } - return (1 << reg); + return (0); } static uint32_t @@ -790,6 +801,7 @@ pllrefe_set_freq(struct pll_sc *sc, uint m = 1; p = 1; n = *fout * p * m / fin; + dprintf("%s: m: %d, n: %d, p: %d\n", __func__, m, n, p); return (pll_set_std(sc, fin, fout, flags, m, n, p)); } @@ -902,6 +914,7 @@ tegra124_pll_set_freq(struct clknode *cl rv = ENXIO; break; } + return (rv); } @@ -921,6 +934,11 @@ tegra124_pll_init(struct clknode *clk, d reg |= sc->lock_enable; WR4(sc, sc->misc_reg, reg); } + if (sc->type == PLL_REFE) { + RD4(sc, sc->misc_reg, ®); + reg &= ~(1 << 29); /* Diasble lock override */ + WR4(sc, sc->misc_reg, reg); + } clknode_init_parent_idx(clk, 0); return(0); Copied: stable/11/sys/arm/nvidia/tegra_mc.c (from r308286, head/sys/arm/nvidia/tegra_mc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/arm/nvidia/tegra_mc.c Sun Apr 16 08:18:37 2017 (r317012, copy of r308286, head/sys/arm/nvidia/tegra_mc.c) @@ -0,0 +1,311 @@ +/*- + * Copyright (c) 2016 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * Memory controller driver for Tegra SoCs. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include "clock_if.h" + +#define MC_INTSTATUS 0x000 +#define MC_INTMASK 0x004 +#define MC_INT_DECERR_MTS (1 << 16) +#define MC_INT_SECERR_SEC (1 << 13) +#define MC_INT_DECERR_VPR (1 << 12) +#define MC_INT_INVALID_APB_ASID_UPDATE (1 << 11) +#define MC_INT_INVALID_SMMU_PAGE (1 << 10) +#define MC_INT_ARBITRATION_EMEM (1 << 9) +#define MC_INT_SECURITY_VIOLATION (1 << 8) +#define MC_INT_DECERR_EMEM (1 << 6) +#define MC_INT_INT_MASK (MC_INT_DECERR_MTS | \ + MC_INT_SECERR_SEC | \ + MC_INT_DECERR_VPR | \ + MC_INT_INVALID_APB_ASID_UPDATE | \ + MC_INT_INVALID_SMMU_PAGE | \ + MC_INT_ARBITRATION_EMEM | \ + MC_INT_SECURITY_VIOLATION | \ + MC_INT_DECERR_EMEM) + +#define MC_ERR_STATUS 0x008 +#define MC_ERR_TYPE(x) (((x) >> 28) & 0x7) +#define MC_ERR_TYPE_DECERR_EMEM 2 +#define MC_ERR_TYPE_SECURITY_TRUSTZONE 3 +#define MC_ERR_TYPE_SECURITY_CARVEOUT 4 +#define MC_ERR_TYPE_INVALID_SMMU_PAGE 6 +#define MC_ERR_INVALID_SMMU_PAGE_READABLE (1 << 27) +#define MC_ERR_INVALID_SMMU_PAGE_WRITABLE (1 << 26) +#define MC_ERR_INVALID_SMMU_PAGE_NONSECURE (1 << 25) +#define MC_ERR_ADR_HI(x) (((x) >> 20) & 0x3) +#define MC_ERR_SWAP (1 << 18) +#define MC_ERR_SECURITY (1 << 17) +#define MC_ERR_RW (1 << 16) +#define MC_ERR_ADR1(x) (((x) >> 12) & 0x7) +#define MC_ERR_ID(x) (((x) >> 0) & 07F) + +#define MC_ERR_ADDR 0x00C +#define MC_EMEM_CFG 0x050 +#define MC_EMEM_ADR_CFG 0x054 +#define MC_EMEM_NUMDEV(x) (((x) >> 0 ) & 0x1) + +#define MC_EMEM_ADR_CFG_DEV0 0x058 +#define MC_EMEM_ADR_CFG_DEV1 0x05C +#define EMEM_DEV_DEVSIZE(x) (((x) >> 16) & 0xF) +#define EMEM_DEV_BANKWIDTH(x) (((x) >> 8) & 0x3) +#define EMEM_DEV_COLWIDTH(x) (((x) >> 8) & 0x3) + +#define WR4(_sc, _r, _v) bus_write_4((_sc)->mem_res, (_r), (_v)) +#define RD4(_sc, _r) bus_read_4((_sc)->mem_res, (_r)) + +#define LOCK(_sc) mtx_lock(&(_sc)->mtx) +#define UNLOCK(_sc) mtx_unlock(&(_sc)->mtx) +#define SLEEP(_sc, timeout) mtx_sleep(sc, &sc->mtx, 0, "tegra_mc", timeout); +#define LOCK_INIT(_sc) \ + mtx_init(&_sc->mtx, device_get_nameunit(_sc->dev), "tegra_mc", MTX_DEF) +#define LOCK_DESTROY(_sc) mtx_destroy(&_sc->mtx) +#define ASSERT_LOCKED(_sc) mtx_assert(&_sc->mtx, MA_OWNED) +#define ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->mtx, MA_NOTOWNED) + +static struct ofw_compat_data compat_data[] = { + {"nvidia,tegra124-mc", 1}, + {NULL, 0} +}; + +struct tegra_mc_softc { + device_t dev; + struct mtx mtx; + + struct resource *mem_res; + struct resource *irq_res; + void *irq_h; + + clk_t clk; +}; + +static char *smmu_err_tbl[16] = { + "reserved", /* 0 */ + "reserved", /* 1 */ + "DRAM decode", /* 2 */ + "Trustzome Security", /* 3 */ + "Security carveout", /* 4 */ + "reserved", /* 5 */ + "Invalid SMMU page", /* 6 */ + "reserved", /* 7 */ +}; + +static void +tegra_mc_intr(void *arg) +{ + struct tegra_mc_softc *sc; + uint32_t stat, err; + uint64_t addr; + + sc = (struct tegra_mc_softc *)arg; + + stat = RD4(sc, MC_INTSTATUS); + if ((stat & MC_INT_INT_MASK) == 0) { + WR4(sc, MC_INTSTATUS, stat); + return; + } + + device_printf(sc->dev, "Memory Controller Interrupt:\n"); + if (stat & MC_INT_DECERR_MTS) + printf(" - MTS carveout violation\n"); + if (stat & MC_INT_SECERR_SEC) + printf(" - SEC carveout violation\n"); + if (stat & MC_INT_DECERR_VPR) + printf(" - VPR requirements violated\n"); + if (stat & MC_INT_INVALID_APB_ASID_UPDATE) + printf(" - ivalid APB ASID update\n"); + if (stat & MC_INT_INVALID_SMMU_PAGE) + printf(" - SMMU address translation error\n"); + if (stat & MC_INT_ARBITRATION_EMEM) + printf(" - arbitration deadlock-prevention threshold hit\n"); + if (stat & MC_INT_SECURITY_VIOLATION) + printf(" - SMMU address translation security error\n"); + if (stat & MC_INT_DECERR_EMEM) + printf(" - SMMU address decode error\n"); + + if ((stat & (MC_INT_INVALID_SMMU_PAGE | MC_INT_SECURITY_VIOLATION | + MC_INT_DECERR_EMEM)) != 0) { + err = RD4(sc, MC_ERR_STATUS); + addr = RD4(sc, MC_ERR_STATUS); + addr |= (uint64_t)(MC_ERR_ADR_HI(err)) << 32; + printf(" at 0x%012llX [%s %s %s] - %s error.\n", + addr, + stat & MC_ERR_SWAP ? "Swap, " : "", + stat & MC_ERR_SECURITY ? "Sec, " : "", + stat & MC_ERR_RW ? "Write" : "Read", + smmu_err_tbl[MC_ERR_TYPE(err)]); + } + WR4(sc, MC_INTSTATUS, stat); +} + +static void +tegra_mc_init_hw(struct tegra_mc_softc *sc) +{ + + /* Disable and acknowledge all interrupts */ + WR4(sc, MC_INTMASK, 0); + WR4(sc, MC_INTSTATUS, MC_INT_INT_MASK); +} + +static int +tegra_mc_probe(device_t dev) +{ + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) + return (ENXIO); + device_set_desc(dev, "Tegra Memory Controller"); + return (BUS_PROBE_DEFAULT); +} + +static int +tegra_mc_attach(device_t dev) +{ + int rv, rid; + struct tegra_mc_softc *sc; + + sc = device_get_softc(dev); + sc->dev = dev; + + LOCK_INIT(sc); + + /* Get the memory resource for the register mapping. */ + rid = 0; + sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (sc->mem_res == NULL) { + device_printf(dev, "Cannot map registers.\n"); + rv = ENXIO; + goto fail; + } + + /* Allocate our IRQ resource. */ + rid = 0; + sc->irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, + RF_ACTIVE); + if (sc->irq_res == NULL) { + device_printf(dev, "Cannot allocate interrupt.\n"); + rv = ENXIO; + goto fail; + } + + /* OFW resources. */ + rv = clk_get_by_ofw_name(dev, 0, "mc", &sc->clk); + if (rv != 0) { + device_printf(dev, "Cannot get mc clock: %d\n", rv); + goto fail; + } + rv = clk_enable(sc->clk); + if (rv != 0) { + device_printf(dev, "Cannot enable clock: %d\n", rv); + goto fail; + } + + /* Init hardware. */ + tegra_mc_init_hw(sc); + + /* Setup interrupt */ + rv = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE, + NULL, tegra_mc_intr, sc, &sc->irq_h); + if (rv) { + device_printf(dev, "Cannot setup interrupt.\n"); + goto fail; + } + + /* Enable Interrupts */ + WR4(sc, MC_INTMASK, MC_INT_INT_MASK); + + return (bus_generic_attach(dev)); + +fail: + if (sc->clk != NULL) + clk_release(sc->clk); + if (sc->irq_h != NULL) + bus_teardown_intr(dev, sc->irq_res, sc->irq_h); + if (sc->irq_res != NULL) + bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq_res); + if (sc->mem_res != NULL) + bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->mem_res); + LOCK_DESTROY(sc); + + return (rv); +} + +static int +tegra_mc_detach(device_t dev) +{ + struct tegra_mc_softc *sc; + + sc = device_get_softc(dev); + if (sc->irq_h != NULL) + bus_teardown_intr(dev, sc->irq_res, sc->irq_h); + if (sc->irq_res != NULL) + bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq_res); + if (sc->mem_res != NULL) + bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->mem_res); + + LOCK_DESTROY(sc); + return (bus_generic_detach(dev)); +} + +static device_method_t tegra_mc_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, tegra_mc_probe), + DEVMETHOD(device_attach, tegra_mc_attach), + DEVMETHOD(device_detach, tegra_mc_detach), + + + DEVMETHOD_END +}; + +static devclass_t tegra_mc_devclass; +static DEFINE_CLASS_0(mc, tegra_mc_driver, tegra_mc_methods, + sizeof(struct tegra_mc_softc)); +DRIVER_MODULE(tegra_mc, simplebus, tegra_mc_driver, tegra_mc_devclass, + NULL, NULL); From owner-svn-src-all@freebsd.org Sun Apr 16 08:21:16 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0C331D3E19E; Sun, 16 Apr 2017 08:21:16 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DAE7B1670; Sun, 16 Apr 2017 08:21:15 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G8LF8e003578; Sun, 16 Apr 2017 08:21:15 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G8LEHM003575; Sun, 16 Apr 2017 08:21:14 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160821.v3G8LEHM003575@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 08:21: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: r317013 - stable/11/sys/arm/nvidia/tegra124 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 08:21:16 -0000 Author: mmel Date: Sun Apr 16 08:21:14 2017 New Revision: 317013 URL: https://svnweb.freebsd.org/changeset/base/317013 Log: MFC r309538: Fixes for NVIDIA Tegra124 clocks: - EMC clock have standard peripheral clock block. Use it. - Implement full frequency set method for PLLD2. This PLL is used as HDMI pixel clock so we must be able to set it to wide range of frequencies, within 5% tolerance allowed by HDMI specification. Due to this, full state space search (over m, n, p fields) is necessary. Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_car.c stable/11/sys/arm/nvidia/tegra124/tegra124_clk_per.c stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_car.c ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/tegra124_car.c Sun Apr 16 08:18:37 2017 (r317012) +++ stable/11/sys/arm/nvidia/tegra124/tegra124_car.c Sun Apr 16 08:21:14 2017 (r317013) @@ -189,8 +189,6 @@ PLIST(mux_pll_srcs) = {"osc_div_clk", NU PLIST(mux_plle_src1) = {"osc_div_clk", "pllP_out0"}; PLIST(mux_plle_src) = {"pllE_src1", "pllREFE_out"}; PLIST(mux_plld_out0_plld2_out0) = {"pllD_out0", "pllD2_out0"}; -PLIST(mux_pllmcp_clkm) = {"pllM_out0", "pllC_out0", "pllP_out0", "clk_m", - "pllM_UD", "pllC2_out0", "pllC3_out0", "pllC_UD"}; PLIST(mux_xusb_hs) = {"xusb_ss_div2", "pllU_60"}; PLIST(mux_xusb_ss) = {"pc_xusb_ss", "osc_div_clk"}; @@ -240,7 +238,6 @@ static struct clk_mux_def tegra124_mux_c /* Base peripheral clocks. */ MUX(0, "dsia_mux", mux_plld_out0_plld2_out0, PLLD_BASE, 25, 1), MUX(0, "dsib_mux", mux_plld_out0_plld2_out0, PLLD2_BASE, 25, 1), - MUX(0, "emc_mux", mux_pllmcp_clkm, CLK_SOURCE_EMC, 29, 3), /* USB. */ MUX(TEGRA124_CLK_XUSB_HS_SRC, "xusb_hs", mux_xusb_hs, CLK_SOURCE_XUSB_SS, 25, 1), Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_clk_per.c ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/tegra124_clk_per.c Sun Apr 16 08:18:37 2017 (r317012) +++ stable/11/sys/arm/nvidia/tegra124/tegra124_clk_per.c Sun Apr 16 08:21:14 2017 (r317013) @@ -126,6 +126,10 @@ PLIST(mux_m_c_p_a_c2_c3_clkm_c4) = PLIST(mux_m_c_p_clkm_mud_c2_c3) = {"pllM_out0", "pllC_out0", "pllP_out0", "clk_m", "pllM_UD", "pllC2_out0", "pllC3_out0"}; +PLIST(mux_m_c_p_clkm_mud_c2_c3_cud) = + {"pllM_out0", "pllC_out0", "pllP_out0", "clk_m", + "pllM_UD", "pllC2_out0", "pllC3_out0", "pllC_UD"}; + PLIST(mux_m_c2_c_c3_p_N_a) = {"pllM_out0", "pllC2_out0", "pllC_out0", "pllC3_out0", "pllP_out0", NULL, "pllA_out0"}; @@ -260,7 +264,7 @@ static struct pgate_def pgate_def[] = { GATE(I2C2, "i2c2", "pc_i2c2", H(22)), GATE(UARTC, "uartc", "pc_uartc", H(23)), GATE(MIPI_CAL, "mipi_cal", "clk_m", H(24)), - GATE(EMC, "emc", "emc_mux", H(25)), + GATE(EMC, "emc", "pc_emc_2x", H(25)), GATE(USB2, "usb2", "clk_m", H(26)), GATE(USB3, "usb3", "clk_m", H(27)), GATE(VDE, "vde", "pc_vde", H(29)), @@ -356,7 +360,7 @@ static struct pgate_def pgate_def[] = { /* GATE(CAM_MCLK, "CAM_MCLK", "clk_m", X(4)), */ /* GATE(CAM_MCLK2, "CAM_MCLK2", "clk_m", X(5)), */ GATE(I2C6, "i2c6", "pc_i2c6", X(6)), - /* GATE(VIM2_CLK, "vim2_clk", clk_m, X(11)), */ + GATE(VIM2_CLK, "vim2_clk", "clk_m", X(11)), /* GATE(EMC_DLL, "emc_dll", "pc_emc_dll", X(14)), */ GATE(HDMI_AUDIO, "hdmi_audio", "pc_hdmi_audio", X(16)), GATE(CLK72MHZ, "clk72mhz", "pc_clk72mhz", X(17)), @@ -373,17 +377,18 @@ static struct pgate_def pgate_def[] = { #define DCF_HAVE_ENA 0x0200 /* Block with enable bit */ #define DCF_HAVE_DIV 0x0400 /* Block with divider */ -/* Mark block with additional bis / functionality. */ +/* Mark block with additional bits / functionality. */ #define DCF_IS_MASK 0x00FF #define DCF_IS_UART 0x0001 #define DCF_IS_VI 0x0002 #define DCF_IS_HOST1X 0x0003 #define DCF_IS_XUSB_SS 0x0004 #define DCF_IS_EMC_DLL 0x0005 -#define FDS_IS_SATA 0x0006 +#define DCF_IS_SATA 0x0006 #define DCF_IS_VIC 0x0007 #define DCF_IS_AUDIO 0x0008 #define DCF_IS_SOR0 0x0009 +#define DCF_IS_EMC 0x000A /* Basic pheripheral clock */ #define PER_CLK(_id, cn, pl, r, diw, fiw, f) \ @@ -438,7 +443,7 @@ static struct periph_def periph_def[] = CLK_8_1(0, "pc_host1x", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HOST1X, DCF_IS_HOST1X), CLK_8_1(0, "pc_hdmi", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_HDMI, 0), CLK16_0(0, "pc_i2c2", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_I2C2, 0), -/* EMC 8 */ + CLK_8_1(0, "pc_emc_2x", mux_m_c_p_clkm_mud_c2_c3_cud, CLK_SOURCE_EMC, DCF_IS_EMC), CLK16_1(0, "pc_uartc", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_UARTC, DCF_IS_UART), CLK_8_1(0, "pc_vi_sensor", mux_m_c2_c_c3_p_N_a, CLK_SOURCE_VI_SENSOR, 0), CLK_8_1(0, "pc_spi4", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_SPI4, 0), @@ -476,7 +481,7 @@ static struct periph_def periph_def[] = /* SYS */ CLK_8_1(0, "pc_sor0", mux_p_m_d_a_c_d2_clkm, CLK_SOURCE_SOR0, DCF_IS_SOR0), CLK_8_1(0, "pc_sata_oob", mux_p_N_c_N_m_N_clkm, CLK_SOURCE_SATA_OOB, 0), - CLK_8_1(0, "pc_sata", mux_p_N_c_N_m_N_clkm, CLK_SOURCE_SATA, FDS_IS_SATA), + CLK_8_1(0, "pc_sata", mux_p_N_c_N_m_N_clkm, CLK_SOURCE_SATA, DCF_IS_SATA), CLK_8_1(0, "pc_hda", mux_p_c2_c_c3_m_N_clkm, CLK_SOURCE_HDA, 0), CLK_8_1(TEGRA124_CLK_XUSB_HOST_SRC, "pc_xusb_core_host", mux_clkm_p_c2_c_c3_refre, CLK_SOURCE_XUSB_CORE_HOST, 0), Modified: stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c ============================================================================== --- stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c Sun Apr 16 08:18:37 2017 (r317012) +++ stable/11/sys/arm/nvidia/tegra124/tegra124_clk_pll.c Sun Apr 16 08:21:14 2017 (r317013) @@ -713,6 +713,7 @@ pll_set_std(struct pll_sc *sc, uint64_t return (ERANGE); *fout = ((fin / m) * n) /p; + return (0); } @@ -771,7 +772,6 @@ pllc_set_freq(struct pll_sc *sc, uint64_ { uint32_t m, n, p; - p = 2; m = 1; n = (*fout * p * m + fin / 2)/ fin; @@ -779,19 +779,88 @@ pllc_set_freq(struct pll_sc *sc, uint64_ return (pll_set_std( sc, fin, fout, flags, m, n, p)); } +/* + * PLLD2 is used as source for pixel clock for HDMI. + * We must be able to set it frequency very flexibly and + * precisely (within 5% tolerance limit allowed by HDMI specs). + * + * For this reason, it is necessary to search the full state space. + * Fortunately, thanks to early cycle terminations, performance + * is within acceptable limits. + */ +#define PLLD2_PFD_MIN 12000000 /* 12 MHz */ +#define PLLD2_PFD_MAX 38000000 /* 38 MHz */ +#define PLLD2_VCO_MIN 600000000 /* 600 MHz */ +#define PLLD2_VCO_MAX 1200000000 /* 1.2 GHz */ + static int plld2_set_freq(struct pll_sc *sc, uint64_t fin, uint64_t *fout, int flags) { uint32_t m, n, p; + uint32_t best_m, best_n, best_p; + uint64_t vco, pfd; + int64_t err, best_err; + struct mnp_bits *mnp_bits; + struct pdiv_table *tbl; + int p_idx, rv; - p = 2; - m = 1; - n = (*fout * p * m + fin / 2)/ fin; - dprintf("%s: m: %d, n: %d, p: %d\n", __func__, m, n, p); - return (pll_set_std(sc, fin, fout, flags, m, n, p)); -} + mnp_bits = &sc->mnp_bits; + tbl = sc->pdiv_table; + best_err = INT64_MAX; + for (p_idx = 0; tbl[p_idx].divider != 0; p_idx++) { + p = tbl[p_idx].divider; + /* Check constraints */ + vco = *fout * p; + if (vco < PLLD2_VCO_MIN) + continue; + if (vco > PLLD2_VCO_MAX) + break; + + for (m = 1; m < (1 << mnp_bits->m_width); m++) { + n = (*fout * p * m + fin / 2) / fin; + + /* Check constraints */ + if (n == 0) + continue; + if (n >= (1 << mnp_bits->n_width)) + break; + vco = (fin * n) / m; + if (vco > PLLD2_VCO_MAX || vco < PLLD2_VCO_MIN) + continue; + pfd = fin / m; + if (pfd > PLLD2_PFD_MAX || vco < PLLD2_PFD_MIN) + continue; + + /* Constraints passed, save best result */ + err = *fout - vco / p; + if (err < 0) + err = -err; + if (err < best_err) { + best_err = err; + best_p = p; + best_m = m; + best_n = n; + } + if (err == 0) + goto done; + } + } +done: + /* + * HDMI specification allows 5% pixel clock tolerance, + * we will by a slightly stricter + */ + if (best_err > ((*fout * 100) / 4)) + return (ERANGE); + + if (flags & CLK_SET_DRYRUN) + return (0); + rv = pll_set_std(sc, fin, fout, flags, best_m, best_n, best_p); + /* XXXX Panic for rv == ERANGE ? */ + return (rv); +} static int pllrefe_set_freq(struct pll_sc *sc, uint64_t fin, uint64_t *fout, int flags) @@ -883,8 +952,8 @@ tegra124_pll_set_freq(struct clknode *cl struct pll_sc *sc; sc = clknode_get_softc(clknode); - dprintf("%s: Requested freq: %llu, input freq: %llu\n", __func__, - *fout, fin); + dprintf("%s: %s requested freq: %llu, input freq: %llu\n", __func__, + clknode_get_name(clknode), *fout, fin); switch (sc->type) { case PLL_A: rv = plla_set_freq(sc, fin, fout, flags); From owner-svn-src-all@freebsd.org Sun Apr 16 08:43:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06467D3EB5B; Sun, 16 Apr 2017 08:43:03 +0000 (UTC) (envelope-from mark@grondar.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C981D6C2; Sun, 16 Apr 2017 08:43:02 +0000 (UTC) (envelope-from mark@grondar.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czflr-000PqI-HA; Sun, 16 Apr 2017 09:42:59 +0100 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r316982 - in head/sys: conf crypto/chacha20 modules modules/chacha20 From: Mark R V Murray In-Reply-To: <201704152051.v3FKpr38020502@repo.freebsd.org> Date: Sun, 16 Apr 2017 09:42:57 +0100 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <144B63D2-039E-46A2-B2A1-EFB7BD9589A4@grondar.org> References: <201704152051.v3FKpr38020502@repo.freebsd.org> To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 08:43:03 -0000 > On 15 Apr 2017, at 21:51, Dag-Erling Sm=C3=B8rgrav = wrote: >=20 > Author: des > Date: Sat Apr 15 20:51:53 2017 > New Revision: 316982 > URL: https://svnweb.freebsd.org/changeset/base/316982 >=20 > Log: > 3BSD-licensed implementation of the chacha20 stream cipher, intended = for > use by the upcoming arc4random replacement. >=20 > Added: > head/sys/crypto/chacha20/ > head/sys/crypto/chacha20/chacha20.c (contents, props changed) > head/sys/crypto/chacha20/chacha20.h (contents, props changed) > head/sys/modules/chacha20/ > head/sys/modules/chacha20/Makefile (contents, props changed) > Modified: > head/sys/conf/files > head/sys/modules/Makefile This is a loadable module, unlike the RC4 code which it needs to = replace, and which is standard. Making it loadable makes no sense in the context of arc4random(9). Do you mind if I strip out the module bits in order to get my = arc4random(9) commit completed? M --=20 Mark R V Murray From owner-svn-src-all@freebsd.org Sun Apr 16 09:00:12 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2409DD4025B; Sun, 16 Apr 2017 09:00:12 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E9B4ACDF; Sun, 16 Apr 2017 09:00:11 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G90BQQ018750; Sun, 16 Apr 2017 09:00:11 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G90B2H018749; Sun, 16 Apr 2017 09:00:11 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201704160900.v3G90B2H018749@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 16 Apr 2017 09:00:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317014 - stable/11/sys/conf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 09:00:12 -0000 Author: mmel Date: Sun Apr 16 09:00:10 2017 New Revision: 317014 URL: https://svnweb.freebsd.org/changeset/base/317014 Log: MFC r307686: Use MACHINE_ARCH rather than TARGET_ARCH which has no meaning outside of Makefile.inc1 Modified: stable/11/sys/conf/Makefile.arm Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/Makefile.arm ============================================================================== --- stable/11/sys/conf/Makefile.arm Sun Apr 16 08:21:14 2017 (r317013) +++ stable/11/sys/conf/Makefile.arm Sun Apr 16 09:00:10 2017 (r317014) @@ -74,7 +74,7 @@ FILES_CPU_FUNC = \ $S/$M/$M/cpufunc_asm_pj4b.S $S/$M/$M/cpufunc_asm_armv6.S \ $S/$M/$M/cpufunc_asm_armv7.S -.if ${TARGET_ARCH} != "armv6" && defined(KERNPHYSADDR) +.if ${MACHINE_ARCH} != "armv6" && defined(KERNPHYSADDR) KERNEL_EXTRA=trampoline KERNEL_EXTRA_INSTALL=kernel.gz.tramp trampoline: ${KERNEL_KO}.tramp From owner-svn-src-all@freebsd.org Sun Apr 16 09:11:04 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9FA7D40794; Sun, 16 Apr 2017 09:11:04 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AAD4A1596; Sun, 16 Apr 2017 09:11:04 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3G9B38L023105; Sun, 16 Apr 2017 09:11:03 GMT (envelope-from markm@FreeBSD.org) Received: (from markm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3G9B3df023095; Sun, 16 Apr 2017 09:11:03 GMT (envelope-from markm@FreeBSD.org) Message-Id: <201704160911.v3G9B3df023095@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markm set sender to markm@FreeBSD.org using -f From: Mark Murray Date: Sun, 16 Apr 2017 09:11:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 09:11:05 -0000 Author: markm Date: Sun Apr 16 09:11:02 2017 New Revision: 317015 URL: https://svnweb.freebsd.org/changeset/base/317015 Log: Replace the RC4 algorithm for generating in-kernel secure random numbers with Chacha20. Keep the API, though, as that is what the other *BSD's have done. Use the boot-time entropy stash (if present) to bootstrap the in-kernel entropy source. Reviewed by: delphij,rwatson Approved by: so(delphij) MFC after: 2 months Relnotes: yes Differential Revision: https://reviews.freebsd.org/D10048 --This line, and those below, will be ignored-- > Description of fields to fill in above: 76 columns --| > PR: If and which Problem Report is related. > Submitted by: If someone else sent in the change. > Reported by: If someone else reported the issue. > Reviewed by: If someone else reviewed your modification. > Approved by: If you needed approval for this commit. > Obtained from: If the change is from a third party. > MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email. > MFH: Ports tree branch name. Request approval for merge. > Relnotes: Set to 'yes' for mention in release notes. > Security: Vulnerability reference (one per line) or description. > Sponsored by: If the change was sponsored by an organization. > Differential Revision: https://reviews.freebsd.org/D### (*full* phabric URL needed). > Empty fields above will be automatically removed. Added: head/sys/crypto/chacha20/chacha.c (contents, props changed) head/sys/crypto/chacha20/chacha.h (contents, props changed) Modified: head/sys/boot/forth/loader.conf head/sys/conf/files head/sys/dev/random/random_harvestq.c head/sys/dev/random/random_harvestq.h head/sys/libkern/arc4random.c head/sys/sys/libkern.h head/sys/sys/random.h Modified: head/sys/boot/forth/loader.conf ============================================================================== --- head/sys/boot/forth/loader.conf Sun Apr 16 09:00:10 2017 (r317014) +++ head/sys/boot/forth/loader.conf Sun Apr 16 09:11:02 2017 (r317015) @@ -48,7 +48,7 @@ bitmap_type="splash_image_data" # and pl entropy_cache_load="YES" # Set this to NO to disable loading # entropy at boot time entropy_cache_name="/boot/entropy" # Set this to the name of the file -entropy_cache_type="/boot/entropy" # Required for the kernel to find +entropy_cache_type="boot_entropy_cache" # Required for the kernel to find # the boot-time entropy cache. This # must not change value even if the # _name above does change! Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun Apr 16 09:00:10 2017 (r317014) +++ head/sys/conf/files Sun Apr 16 09:11:02 2017 (r317015) @@ -3810,6 +3810,7 @@ kgssapi/gsstest.c optional kgssapi_debu # the file should be moved to conf/files. from here. # libkern/arc4random.c standard +crypto/chacha20/chacha.c standard libkern/asprintf.c standard libkern/bcd.c standard libkern/bsearch.c standard Added: head/sys/crypto/chacha20/chacha.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/crypto/chacha20/chacha.c Sun Apr 16 09:11:02 2017 (r317015) @@ -0,0 +1,224 @@ +/* +chacha-merged.c version 20080118 +D. J. Bernstein +Public domain. +*/ + +/* $OpenBSD: chacha.c,v 1.1 2013/11/21 00:45:44 djm Exp $ */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include + + +typedef uint8_t u8; +typedef uint32_t u32; + +typedef struct chacha_ctx chacha_ctx; + +#define U8C(v) (v##U) +#define U32C(v) (v##U) + +#define U8V(v) ((u8)(v) & U8C(0xFF)) +#define U32V(v) ((u32)(v) & U32C(0xFFFFFFFF)) + +#define ROTL32(v, n) \ + (U32V((v) << (n)) | ((v) >> (32 - (n)))) + +#define U8TO32_LITTLE(p) \ + (((u32)((p)[0]) ) | \ + ((u32)((p)[1]) << 8) | \ + ((u32)((p)[2]) << 16) | \ + ((u32)((p)[3]) << 24)) + +#define U32TO8_LITTLE(p, v) \ + do { \ + (p)[0] = U8V((v) ); \ + (p)[1] = U8V((v) >> 8); \ + (p)[2] = U8V((v) >> 16); \ + (p)[3] = U8V((v) >> 24); \ + } while (0) + +#define ROTATE(v,c) (ROTL32(v,c)) +#define XOR(v,w) ((v) ^ (w)) +#define PLUS(v,w) (U32V((v) + (w))) +#define PLUSONE(v) (PLUS((v),1)) + +#define QUARTERROUND(a,b,c,d) \ + a = PLUS(a,b); d = ROTATE(XOR(d,a),16); \ + c = PLUS(c,d); b = ROTATE(XOR(b,c),12); \ + a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \ + c = PLUS(c,d); b = ROTATE(XOR(b,c), 7); + +static const char sigma[16] = "expand 32-byte k"; +static const char tau[16] = "expand 16-byte k"; + +void +chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits) +{ + const char *constants; + + x->input[4] = U8TO32_LITTLE(k + 0); + x->input[5] = U8TO32_LITTLE(k + 4); + x->input[6] = U8TO32_LITTLE(k + 8); + x->input[7] = U8TO32_LITTLE(k + 12); + if (kbits == 256) { /* recommended */ + k += 16; + constants = sigma; + } else { /* kbits == 128 */ + constants = tau; + } + x->input[8] = U8TO32_LITTLE(k + 0); + x->input[9] = U8TO32_LITTLE(k + 4); + x->input[10] = U8TO32_LITTLE(k + 8); + x->input[11] = U8TO32_LITTLE(k + 12); + x->input[0] = U8TO32_LITTLE(constants + 0); + x->input[1] = U8TO32_LITTLE(constants + 4); + x->input[2] = U8TO32_LITTLE(constants + 8); + x->input[3] = U8TO32_LITTLE(constants + 12); +} + +void +chacha_ivsetup(chacha_ctx *x, const u8 *iv, const u8 *counter) +{ + x->input[12] = counter == NULL ? 0 : U8TO32_LITTLE(counter + 0); + x->input[13] = counter == NULL ? 0 : U8TO32_LITTLE(counter + 4); + x->input[14] = U8TO32_LITTLE(iv + 0); + x->input[15] = U8TO32_LITTLE(iv + 4); +} + +void +chacha_encrypt_bytes(chacha_ctx *x,const u8 *m,u8 *c,u32 bytes) +{ + u32 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; + u32 j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15; + u8 *ctarget = NULL; + u8 tmp[64]; + u_int i; + + if (!bytes) return; + + j0 = x->input[0]; + j1 = x->input[1]; + j2 = x->input[2]; + j3 = x->input[3]; + j4 = x->input[4]; + j5 = x->input[5]; + j6 = x->input[6]; + j7 = x->input[7]; + j8 = x->input[8]; + j9 = x->input[9]; + j10 = x->input[10]; + j11 = x->input[11]; + j12 = x->input[12]; + j13 = x->input[13]; + j14 = x->input[14]; + j15 = x->input[15]; + + for (;;) { + if (bytes < 64) { + for (i = 0;i < bytes;++i) tmp[i] = m[i]; + m = tmp; + ctarget = c; + c = tmp; + } + x0 = j0; + x1 = j1; + x2 = j2; + x3 = j3; + x4 = j4; + x5 = j5; + x6 = j6; + x7 = j7; + x8 = j8; + x9 = j9; + x10 = j10; + x11 = j11; + x12 = j12; + x13 = j13; + x14 = j14; + x15 = j15; + for (i = 20;i > 0;i -= 2) { + QUARTERROUND( x0, x4, x8,x12) + QUARTERROUND( x1, x5, x9,x13) + QUARTERROUND( x2, x6,x10,x14) + QUARTERROUND( x3, x7,x11,x15) + QUARTERROUND( x0, x5,x10,x15) + QUARTERROUND( x1, x6,x11,x12) + QUARTERROUND( x2, x7, x8,x13) + QUARTERROUND( x3, x4, x9,x14) + } + x0 = PLUS(x0,j0); + x1 = PLUS(x1,j1); + x2 = PLUS(x2,j2); + x3 = PLUS(x3,j3); + x4 = PLUS(x4,j4); + x5 = PLUS(x5,j5); + x6 = PLUS(x6,j6); + x7 = PLUS(x7,j7); + x8 = PLUS(x8,j8); + x9 = PLUS(x9,j9); + x10 = PLUS(x10,j10); + x11 = PLUS(x11,j11); + x12 = PLUS(x12,j12); + x13 = PLUS(x13,j13); + x14 = PLUS(x14,j14); + x15 = PLUS(x15,j15); + + x0 = XOR(x0,U8TO32_LITTLE(m + 0)); + x1 = XOR(x1,U8TO32_LITTLE(m + 4)); + x2 = XOR(x2,U8TO32_LITTLE(m + 8)); + x3 = XOR(x3,U8TO32_LITTLE(m + 12)); + x4 = XOR(x4,U8TO32_LITTLE(m + 16)); + x5 = XOR(x5,U8TO32_LITTLE(m + 20)); + x6 = XOR(x6,U8TO32_LITTLE(m + 24)); + x7 = XOR(x7,U8TO32_LITTLE(m + 28)); + x8 = XOR(x8,U8TO32_LITTLE(m + 32)); + x9 = XOR(x9,U8TO32_LITTLE(m + 36)); + x10 = XOR(x10,U8TO32_LITTLE(m + 40)); + x11 = XOR(x11,U8TO32_LITTLE(m + 44)); + x12 = XOR(x12,U8TO32_LITTLE(m + 48)); + x13 = XOR(x13,U8TO32_LITTLE(m + 52)); + x14 = XOR(x14,U8TO32_LITTLE(m + 56)); + x15 = XOR(x15,U8TO32_LITTLE(m + 60)); + + j12 = PLUSONE(j12); + if (!j12) { + j13 = PLUSONE(j13); + /* stopping at 2^70 bytes per nonce is user's responsibility */ + } + + U32TO8_LITTLE(c + 0,x0); + U32TO8_LITTLE(c + 4,x1); + U32TO8_LITTLE(c + 8,x2); + U32TO8_LITTLE(c + 12,x3); + U32TO8_LITTLE(c + 16,x4); + U32TO8_LITTLE(c + 20,x5); + U32TO8_LITTLE(c + 24,x6); + U32TO8_LITTLE(c + 28,x7); + U32TO8_LITTLE(c + 32,x8); + U32TO8_LITTLE(c + 36,x9); + U32TO8_LITTLE(c + 40,x10); + U32TO8_LITTLE(c + 44,x11); + U32TO8_LITTLE(c + 48,x12); + U32TO8_LITTLE(c + 52,x13); + U32TO8_LITTLE(c + 56,x14); + U32TO8_LITTLE(c + 60,x15); + + if (bytes <= 64) { + if (bytes < 64) { + for (i = 0;i < bytes;++i) ctarget[i] = c[i]; + } + x->input[12] = j12; + x->input[13] = j13; + return; + } + bytes -= 64; + c += 64; + m += 64; + } +} Added: head/sys/crypto/chacha20/chacha.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/crypto/chacha20/chacha.h Sun Apr 16 09:11:02 2017 (r317015) @@ -0,0 +1,32 @@ +/* $OpenBSD: chacha.h,v 1.4 2016/08/27 04:04:56 guenther Exp $ */ + +/* +chacha-merged.c version 20080118 +D. J. Bernstein +Public domain. + + $FreeBSD$ +*/ + +#ifndef CHACHA_H +#define CHACHA_H + +#include + +struct chacha_ctx { + u_int input[16]; +}; + +#define CHACHA_MINKEYLEN 16 +#define CHACHA_NONCELEN 8 +#define CHACHA_CTRLEN 8 +#define CHACHA_STATELEN (CHACHA_NONCELEN+CHACHA_CTRLEN) +#define CHACHA_BLOCKLEN 64 + +void chacha_keysetup(struct chacha_ctx *x, const u_char *k, u_int kbits); +void chacha_ivsetup(struct chacha_ctx *x, const u_char *iv, const u_char *ctr); +void chacha_encrypt_bytes(struct chacha_ctx *x, const u_char *m, + u_char *c, u_int bytes); + +#endif /* CHACHA_H */ + Modified: head/sys/dev/random/random_harvestq.c ============================================================================== --- head/sys/dev/random/random_harvestq.c Sun Apr 16 09:00:10 2017 (r317014) +++ head/sys/dev/random/random_harvestq.c Sun Apr 16 09:11:02 2017 (r317015) @@ -352,10 +352,19 @@ random_harvestq_prime(void *unused __unu * Get entropy that may have been preloaded by loader(8) * and use it to pre-charge the entropy harvest queue. */ - keyfile = preload_search_by_type(RANDOM_HARVESTQ_BOOT_ENTROPY_FILE); + keyfile = preload_search_by_type(RANDOM_CACHED_BOOT_ENTROPY_MODULE); +#ifndef NO_BACKWARD_COMPATIBILITY + if (keyfile == NULL) + keyfile = preload_search_by_type(RANDOM_LEGACY_BOOT_ENTROPY_MODULE); +#endif if (keyfile != NULL) { data = preload_fetch_addr(keyfile); size = preload_fetch_size(keyfile); + /* skip the first bit of the stash so others like arc4 can also have some. */ + if (size > RANDOM_CACHED_SKIP_START) { + data += RANDOM_CACHED_SKIP_START; + size -= RANDOM_CACHED_SKIP_START; + } /* Trim the size. If the admin has a file with a funny size, we lose some. Tough. */ size -= (size % sizeof(event.he_entropy)); if (data != NULL && size != 0) { Modified: head/sys/dev/random/random_harvestq.h ============================================================================== --- head/sys/dev/random/random_harvestq.h Sun Apr 16 09:00:10 2017 (r317014) +++ head/sys/dev/random/random_harvestq.h Sun Apr 16 09:11:02 2017 (r317015) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2013-2015 Mark R V Murray + * Copyright (c) 2013-2015, 2017 Mark R V Murray * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -45,8 +45,6 @@ struct harvest_event { void read_rate_increment(u_int); -#define RANDOM_HARVESTQ_BOOT_ENTROPY_FILE "/boot/entropy" - #define RANDOM_HARVEST_INIT_LOCK(x) mtx_init(&harvest_context.hc_mtx, "entropy harvest mutex", NULL, MTX_SPIN) #define RANDOM_HARVEST_LOCK(x) mtx_lock_spin(&harvest_context.hc_mtx) #define RANDOM_HARVEST_UNLOCK(x) mtx_unlock_spin(&harvest_context.hc_mtx) Modified: head/sys/libkern/arc4random.c ============================================================================== --- head/sys/libkern/arc4random.c Sun Apr 16 09:00:10 2017 (r317014) +++ head/sys/libkern/arc4random.c Sun Apr 16 09:11:02 2017 (r317015) @@ -1,11 +1,28 @@ /*- - * THE BEER-WARE LICENSE + * Copyright (c) 2017 The FreeBSD Foundation + * All rights reserved. * - * wrote this file. As long as you retain this notice you - * can do whatever you want with this stuff. If we meet some day, and you - * think this stuff is worth it, you can buy me a beer in return. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * Dan Moschuk */ #include @@ -14,144 +31,122 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include +#include #include +#include #include -#include +#include #include -#include +#include + +#include -#define ARC4_RESEED_BYTES 65536 -#define ARC4_RESEED_SECONDS 300 -#define ARC4_KEYBYTES 256 +#define CHACHA20_RESEED_BYTES 65536 +#define CHACHA20_RESEED_SECONDS 300 +#define CHACHA20_KEYBYTES 32 +#define CHACHA20_BUFFER_SIZE 64 + +CTASSERT(CHACHA20_KEYBYTES*8 >= CHACHA_MINKEYLEN); int arc4rand_iniseed_state = ARC4_ENTR_NONE; -MALLOC_DEFINE(M_ARC4RANDOM, "arc4random", "arc4random structures"); +MALLOC_DEFINE(M_CHACHA20RANDOM, "chacha20random", "chacha20random structures"); -struct arc4_s { +struct chacha20_s { struct mtx mtx; - u_int8_t i, j; - int numruns; - u_int8_t sbox[256]; + int numbytes; + int first_time_done; time_t t_reseed; - + u_int8_t m_buffer[CHACHA20_BUFFER_SIZE]; + struct chacha_ctx ctx; } __aligned(CACHE_LINE_SIZE); -static struct arc4_s *arc4inst = NULL; +static struct chacha20_s *chacha20inst = NULL; -#define ARC4_FOREACH(_arc4) \ - for (_arc4 = &arc4inst[0]; _arc4 <= &arc4inst[mp_maxid]; _arc4++) - -static u_int8_t arc4_randbyte(struct arc4_s *arc4); - -static __inline void -arc4_swap(u_int8_t *a, u_int8_t *b) -{ - u_int8_t c; - - c = *a; - *a = *b; - *b = c; -} +#define CHACHA20_FOREACH(_chacha20) \ + for (_chacha20 = &chacha20inst[0]; \ + _chacha20 <= &chacha20inst[mp_maxid]; \ + _chacha20++) /* - * Stir our S-box. + * Mix up the current context. */ static void -arc4_randomstir(struct arc4_s* arc4) +chacha20_randomstir(struct chacha20_s* chacha20) { - u_int8_t key[ARC4_KEYBYTES]; - int n; struct timeval tv_now; + size_t n, size; + u_int8_t key[CHACHA20_KEYBYTES], *data; + caddr_t keyfile; /* - * XXX: FIX!! This isn't brilliant. Need more confidence. - * This returns zero entropy before random(4) is seeded. + * This is making the best of what may be an insecure + * Situation. If the loader(8) did not have an entropy + * stash from the previous shutdown to load, then we will + * be improperly seeded. The answer is to make sure there + * is an entropy stash at shutdown time. */ - (void)read_random(key, ARC4_KEYBYTES); - getmicrouptime(&tv_now); - mtx_lock(&arc4->mtx); - for (n = 0; n < 256; n++) { - arc4->j = (arc4->j + arc4->sbox[n] + key[n]) % 256; - arc4_swap(&arc4->sbox[n], &arc4->sbox[arc4->j]); + (void)read_random(key, CHACHA20_KEYBYTES); + if (!chacha20->first_time_done) { + keyfile = preload_search_by_type(RANDOM_CACHED_BOOT_ENTROPY_MODULE); + if (keyfile != NULL) { + data = preload_fetch_addr(keyfile); + size = MIN(preload_fetch_size(keyfile), CHACHA20_KEYBYTES); + for (n = 0; n < size; n++) + key[n] ^= data[n]; + explicit_bzero(data, size); + if (bootverbose) + printf("arc4random: read %zu bytes from preloaded cache\n", size); + } else + printf("arc4random: no preloaded entropy cache\n"); + chacha20->first_time_done = 1; } - arc4->i = arc4->j = 0; + getmicrouptime(&tv_now); + mtx_lock(&chacha20->mtx); + chacha_keysetup(&chacha20->ctx, key, CHACHA20_KEYBYTES*8); + chacha_ivsetup(&chacha20->ctx, (u_char *)&tv_now.tv_sec, (u_char *)&tv_now.tv_usec); /* Reset for next reseed cycle. */ - arc4->t_reseed = tv_now.tv_sec + ARC4_RESEED_SECONDS; - arc4->numruns = 0; - /* - * Throw away the first N words of output, as suggested in the - * paper "Weaknesses in the Key Scheduling Algorithm of RC4" - * by Fluher, Mantin, and Shamir. (N = 768 in our case.) - * - * http://dl.acm.org/citation.cfm?id=646557.694759 - */ - for (n = 0; n < 768*4; n++) - arc4_randbyte(arc4); - - mtx_unlock(&arc4->mtx); + chacha20->t_reseed = tv_now.tv_sec + CHACHA20_RESEED_SECONDS; + chacha20->numbytes = 0; + mtx_unlock(&chacha20->mtx); } /* - * Initialize our S-box to its beginning defaults. + * Initialize the contexts. */ static void -arc4_init(void) +chacha20_init(void) { - struct arc4_s *arc4; - int n; - - arc4inst = malloc((mp_maxid + 1) * sizeof(struct arc4_s), - M_ARC4RANDOM, M_NOWAIT | M_ZERO); - KASSERT(arc4inst != NULL, ("arc4_init: memory allocation error")); + struct chacha20_s *chacha20; - ARC4_FOREACH(arc4) { - mtx_init(&arc4->mtx, "arc4_mtx", NULL, MTX_DEF); - - arc4->i = arc4->j = 0; - for (n = 0; n < 256; n++) - arc4->sbox[n] = (u_int8_t) n; - - arc4->t_reseed = -1; - arc4->numruns = 0; + chacha20inst = malloc((mp_maxid + 1) * sizeof(struct chacha20_s), + M_CHACHA20RANDOM, M_NOWAIT | M_ZERO); + KASSERT(chacha20inst != NULL, ("chacha20_init: memory allocation error")); + + CHACHA20_FOREACH(chacha20) { + mtx_init(&chacha20->mtx, "chacha20_mtx", NULL, MTX_DEF); + chacha20->t_reseed = -1; + chacha20->numbytes = 0; + chacha20->first_time_done = 0; + explicit_bzero(chacha20->m_buffer, CHACHA20_BUFFER_SIZE); + explicit_bzero(&chacha20->ctx, sizeof(chacha20->ctx)); } } -SYSINIT(arc4, SI_SUB_LOCK, SI_ORDER_ANY, arc4_init, NULL); +SYSINIT(chacha20, SI_SUB_LOCK, SI_ORDER_ANY, chacha20_init, NULL); static void -arc4_uninit(void) +chacha20_uninit(void) { - struct arc4_s *arc4; + struct chacha20_s *chacha20; - ARC4_FOREACH(arc4) { - mtx_destroy(&arc4->mtx); - } - - free(arc4inst, M_ARC4RANDOM); + CHACHA20_FOREACH(chacha20) + mtx_destroy(&chacha20->mtx); + free(chacha20inst, M_CHACHA20RANDOM); } +SYSUNINIT(chacha20, SI_SUB_LOCK, SI_ORDER_ANY, chacha20_uninit, NULL); -SYSUNINIT(arc4, SI_SUB_LOCK, SI_ORDER_ANY, arc4_uninit, NULL); - - -/* - * Generate a random byte. - */ -static u_int8_t -arc4_randbyte(struct arc4_s *arc4) -{ - u_int8_t arc4_t; - - arc4->i = (arc4->i + 1) % 256; - arc4->j = (arc4->j + arc4->sbox[arc4->i]) % 256; - - arc4_swap(&arc4->sbox[arc4->i], &arc4->sbox[arc4->j]); - - arc4_t = (arc4->sbox[arc4->i] + arc4->sbox[arc4->j]) % 256; - return arc4->sbox[arc4_t]; -} /* * MPSAFE @@ -159,28 +154,36 @@ arc4_randbyte(struct arc4_s *arc4) void arc4rand(void *ptr, u_int len, int reseed) { - u_char *p; + struct chacha20_s *chacha20; struct timeval tv; - struct arc4_s *arc4; + u_int length; + u_int8_t *p; - if (reseed || atomic_cmpset_int(&arc4rand_iniseed_state, - ARC4_ENTR_HAVE, ARC4_ENTR_SEED)) { - ARC4_FOREACH(arc4) - arc4_randomstir(arc4); - } + if (reseed || atomic_cmpset_int(&arc4rand_iniseed_state, ARC4_ENTR_HAVE, ARC4_ENTR_SEED)) + CHACHA20_FOREACH(chacha20) + chacha20_randomstir(chacha20); - arc4 = &arc4inst[curcpu]; + chacha20 = &chacha20inst[curcpu]; getmicrouptime(&tv); - if ((arc4->numruns > ARC4_RESEED_BYTES) || - (tv.tv_sec > arc4->t_reseed)) - arc4_randomstir(arc4); + /* We may get unlucky and be migrated off this CPU, but that is expected to be infrequent */ + if ((chacha20->numbytes > CHACHA20_RESEED_BYTES) || (tv.tv_sec > chacha20->t_reseed)) + chacha20_randomstir(chacha20); - mtx_lock(&arc4->mtx); - arc4->numruns += len; + mtx_lock(&chacha20->mtx); p = ptr; - while (len--) - *p++ = arc4_randbyte(arc4); - mtx_unlock(&arc4->mtx); + while (len) { + length = MIN(CHACHA20_BUFFER_SIZE, len); + chacha_encrypt_bytes(&chacha20->ctx, chacha20->m_buffer, p, length); + p += length; + len -= length; + chacha20->numbytes += length; + if (chacha20->numbytes > CHACHA20_RESEED_BYTES) { + mtx_unlock(&chacha20->mtx); + chacha20_randomstir(chacha20); + mtx_lock(&chacha20->mtx); + } + } + mtx_unlock(&chacha20->mtx); } uint32_t @@ -188,6 +191,13 @@ arc4random(void) { uint32_t ret; - arc4rand(&ret, sizeof ret, 0); + arc4rand(&ret, sizeof(ret), 0); return ret; } + +void +arc4random_buf(void *ptr, size_t len) +{ + + arc4rand(ptr, len, 0); +} Modified: head/sys/sys/libkern.h ============================================================================== --- head/sys/sys/libkern.h Sun Apr 16 09:00:10 2017 (r317014) +++ head/sys/sys/libkern.h Sun Apr 16 09:11:02 2017 (r317015) @@ -117,7 +117,8 @@ extern int arc4rand_iniseed_state; /* Prototypes for non-quad routines. */ struct malloc_type; uint32_t arc4random(void); -void arc4rand(void *ptr, u_int len, int reseed); +void arc4random_buf(void *, size_t); +void arc4rand(void *, u_int, int); int bcmp(const void *, const void *, size_t); int timingsafe_bcmp(const void *, const void *, size_t); void *bsearch(const void *, const void *, size_t, Modified: head/sys/sys/random.h ============================================================================== --- head/sys/sys/random.h Sun Apr 16 09:00:10 2017 (r317014) +++ head/sys/sys/random.h Sun Apr 16 09:11:02 2017 (r317015) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2000-2015 Mark R. V. Murray + * Copyright (c) 2000-2015, 2017 Mark R. V. Murray * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -96,6 +96,10 @@ enum random_entropy_source { #define RANDOM_HARVEST_EVERYTHING_MASK ((1 << (RANDOM_ENVIRONMENTAL_END + 1)) - 1) +#define RANDOM_LEGACY_BOOT_ENTROPY_MODULE "/boot/entropy" +#define RANDOM_CACHED_BOOT_ENTROPY_MODULE "boot_entropy_cache" +#define RANDOM_CACHED_SKIP_START 256 + #if defined(DEV_RANDOM) void random_harvest_queue(const void *, u_int, u_int, enum random_entropy_source); void random_harvest_fast(const void *, u_int, u_int, enum random_entropy_source); From owner-svn-src-all@freebsd.org Sun Apr 16 09:19:45 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 22FF9D40AC4; Sun, 16 Apr 2017 09:19:45 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D0A2A19F3; Sun, 16 Apr 2017 09:19:44 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czgLM-000Pss-5E; Sun, 16 Apr 2017 10:19:43 +0100 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Mark R V Murray In-Reply-To: <201704160911.v3G9B3df023095@repo.freebsd.org> Date: Sun, 16 Apr 2017 10:19:39 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201704160911.v3G9B3df023095@repo.freebsd.org> To: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 09:19:45 -0000 This does not use DES' Chacha20 commit, as I had already completed the testing for it, and received SO@ approval. DES's commit made Chaha20 a module. This is of no use to arc4random(9), which needs the code to be standard. Also his API is different. I have no objection to reworking the arc4random/Chacha below to use DES' version of Chacha, but his code needs to be standard library code, not an optional module. Any objections to me doing this? M > On 16 Apr 2017, at 10:11, Mark Murray wrote: >=20 > Author: markm > Date: Sun Apr 16 09:11:02 2017 > New Revision: 317015 > URL: https://svnweb.freebsd.org/changeset/base/317015 >=20 > Log: > Replace the RC4 algorithm for generating in-kernel secure random > numbers with Chacha20. Keep the API, though, as that is what the > other *BSD's have done. >=20 > Use the boot-time entropy stash (if present) to bootstrap the > in-kernel entropy source. >=20 > Reviewed by: delphij,rwatson > Approved by: so(delphij) > MFC after: 2 months > Relnotes: yes > Differential Revision: https://reviews.freebsd.org/D10048 > --This line, and those below, will be ignored-- >> Description of fields to fill in above: 76 = columns --| >> PR: If and which Problem Report is related. >> Submitted by: If someone else sent in the change. >> Reported by: If someone else reported the issue. >> Reviewed by: If someone else reviewed your modification. >> Approved by: If you needed approval for this commit. >> Obtained from: If the change is from a third party. >> MFC after: N [day[s]|week[s]|month[s]]. Request a = reminder email. >> MFH: Ports tree branch name. Request approval = for merge. >> Relnotes: Set to 'yes' for mention in release notes. >> Security: Vulnerability reference (one per line) or = description. >> Sponsored by: If the change was sponsored by an = organization. >> Differential Revision: https://reviews.freebsd.org/D### (*full* = phabric URL needed). >> Empty fields above will be automatically removed. >=20 > Added: > head/sys/crypto/chacha20/chacha.c (contents, props changed) > head/sys/crypto/chacha20/chacha.h (contents, props changed) > Modified: > head/sys/boot/forth/loader.conf > head/sys/conf/files > head/sys/dev/random/random_harvestq.c > head/sys/dev/random/random_harvestq.h > head/sys/libkern/arc4random.c > head/sys/sys/libkern.h > head/sys/sys/random.h >=20 > Modified: head/sys/boot/forth/loader.conf > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/boot/forth/loader.conf Sun Apr 16 09:00:10 2017 = (r317014) > +++ head/sys/boot/forth/loader.conf Sun Apr 16 09:11:02 2017 = (r317015) > @@ -48,7 +48,7 @@ bitmap_type=3D"splash_image_data" # and pl > entropy_cache_load=3D"YES" # Set this to NO to disable = loading > # entropy at boot time > entropy_cache_name=3D"/boot/entropy" # Set this to the name of the = file > -entropy_cache_type=3D"/boot/entropy" # Required for the kernel to = find > +entropy_cache_type=3D"boot_entropy_cache" # Required for the = kernel to find > # the boot-time entropy cache. = This > # must not change value even if = the > # _name above does change! >=20 > Modified: head/sys/conf/files > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/conf/files Sun Apr 16 09:00:10 2017 = (r317014) > +++ head/sys/conf/files Sun Apr 16 09:11:02 2017 = (r317015) > @@ -3810,6 +3810,7 @@ kgssapi/gsstest.c optional = kgssapi_debu > # the file should be moved to conf/files. from here. > # > libkern/arc4random.c standard > +crypto/chacha20/chacha.c standard > libkern/asprintf.c standard > libkern/bcd.c standard > libkern/bsearch.c standard >=20 > Added: head/sys/crypto/chacha20/chacha.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/sys/crypto/chacha20/chacha.c Sun Apr 16 09:11:02 2017 = (r317015) > @@ -0,0 +1,224 @@ > +/* > +chacha-merged.c version 20080118 > +D. J. Bernstein > +Public domain. > +*/ > + > +/* $OpenBSD: chacha.c,v 1.1 2013/11/21 00:45:44 djm Exp $ */ > + > +#include > +__FBSDID("$FreeBSD$"); > + > +#include > +#include > + > +#include > + > + > +typedef uint8_t u8; > +typedef uint32_t u32; > + > +typedef struct chacha_ctx chacha_ctx; > + > +#define U8C(v) (v##U) > +#define U32C(v) (v##U) > + > +#define U8V(v) ((u8)(v) & U8C(0xFF)) > +#define U32V(v) ((u32)(v) & U32C(0xFFFFFFFF)) > + > +#define ROTL32(v, n) \ > + (U32V((v) << (n)) | ((v) >> (32 - (n)))) > + > +#define U8TO32_LITTLE(p) \ > + (((u32)((p)[0]) ) | \ > + ((u32)((p)[1]) << 8) | \ > + ((u32)((p)[2]) << 16) | \ > + ((u32)((p)[3]) << 24)) > + > +#define U32TO8_LITTLE(p, v) \ > + do { \ > + (p)[0] =3D U8V((v) ); \ > + (p)[1] =3D U8V((v) >> 8); \ > + (p)[2] =3D U8V((v) >> 16); \ > + (p)[3] =3D U8V((v) >> 24); \ > + } while (0) > + > +#define ROTATE(v,c) (ROTL32(v,c)) > +#define XOR(v,w) ((v) ^ (w)) > +#define PLUS(v,w) (U32V((v) + (w))) > +#define PLUSONE(v) (PLUS((v),1)) > + > +#define QUARTERROUND(a,b,c,d) \ > + a =3D PLUS(a,b); d =3D ROTATE(XOR(d,a),16); \ > + c =3D PLUS(c,d); b =3D ROTATE(XOR(b,c),12); \ > + a =3D PLUS(a,b); d =3D ROTATE(XOR(d,a), 8); \ > + c =3D PLUS(c,d); b =3D ROTATE(XOR(b,c), 7); > + > +static const char sigma[16] =3D "expand 32-byte k"; > +static const char tau[16] =3D "expand 16-byte k"; > + > +void > +chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits) > +{ > + const char *constants; > + > + x->input[4] =3D U8TO32_LITTLE(k + 0); > + x->input[5] =3D U8TO32_LITTLE(k + 4); > + x->input[6] =3D U8TO32_LITTLE(k + 8); > + x->input[7] =3D U8TO32_LITTLE(k + 12); > + if (kbits =3D=3D 256) { /* recommended */ > + k +=3D 16; > + constants =3D sigma; > + } else { /* kbits =3D=3D 128 */ > + constants =3D tau; > + } > + x->input[8] =3D U8TO32_LITTLE(k + 0); > + x->input[9] =3D U8TO32_LITTLE(k + 4); > + x->input[10] =3D U8TO32_LITTLE(k + 8); > + x->input[11] =3D U8TO32_LITTLE(k + 12); > + x->input[0] =3D U8TO32_LITTLE(constants + 0); > + x->input[1] =3D U8TO32_LITTLE(constants + 4); > + x->input[2] =3D U8TO32_LITTLE(constants + 8); > + x->input[3] =3D U8TO32_LITTLE(constants + 12); > +} > + > +void > +chacha_ivsetup(chacha_ctx *x, const u8 *iv, const u8 *counter) > +{ > + x->input[12] =3D counter =3D=3D NULL ? 0 : U8TO32_LITTLE(counter + = 0); > + x->input[13] =3D counter =3D=3D NULL ? 0 : U8TO32_LITTLE(counter + = 4); > + x->input[14] =3D U8TO32_LITTLE(iv + 0); > + x->input[15] =3D U8TO32_LITTLE(iv + 4); > +} > + > +void > +chacha_encrypt_bytes(chacha_ctx *x,const u8 *m,u8 *c,u32 bytes) > +{ > + u32 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, = x14, x15; > + u32 j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, = j14, j15; > + u8 *ctarget =3D NULL; > + u8 tmp[64]; > + u_int i; > + > + if (!bytes) return; > + > + j0 =3D x->input[0]; > + j1 =3D x->input[1]; > + j2 =3D x->input[2]; > + j3 =3D x->input[3]; > + j4 =3D x->input[4]; > + j5 =3D x->input[5]; > + j6 =3D x->input[6]; > + j7 =3D x->input[7]; > + j8 =3D x->input[8]; > + j9 =3D x->input[9]; > + j10 =3D x->input[10]; > + j11 =3D x->input[11]; > + j12 =3D x->input[12]; > + j13 =3D x->input[13]; > + j14 =3D x->input[14]; > + j15 =3D x->input[15]; > + > + for (;;) { > + if (bytes < 64) { > + for (i =3D 0;i < bytes;++i) tmp[i] =3D m[i]; > + m =3D tmp; > + ctarget =3D c; > + c =3D tmp; > + } > + x0 =3D j0; > + x1 =3D j1; > + x2 =3D j2; > + x3 =3D j3; > + x4 =3D j4; > + x5 =3D j5; > + x6 =3D j6; > + x7 =3D j7; > + x8 =3D j8; > + x9 =3D j9; > + x10 =3D j10; > + x11 =3D j11; > + x12 =3D j12; > + x13 =3D j13; > + x14 =3D j14; > + x15 =3D j15; > + for (i =3D 20;i > 0;i -=3D 2) { > + QUARTERROUND( x0, x4, x8,x12) > + QUARTERROUND( x1, x5, x9,x13) > + QUARTERROUND( x2, x6,x10,x14) > + QUARTERROUND( x3, x7,x11,x15) > + QUARTERROUND( x0, x5,x10,x15) > + QUARTERROUND( x1, x6,x11,x12) > + QUARTERROUND( x2, x7, x8,x13) > + QUARTERROUND( x3, x4, x9,x14) > + } > + x0 =3D PLUS(x0,j0); > + x1 =3D PLUS(x1,j1); > + x2 =3D PLUS(x2,j2); > + x3 =3D PLUS(x3,j3); > + x4 =3D PLUS(x4,j4); > + x5 =3D PLUS(x5,j5); > + x6 =3D PLUS(x6,j6); > + x7 =3D PLUS(x7,j7); > + x8 =3D PLUS(x8,j8); > + x9 =3D PLUS(x9,j9); > + x10 =3D PLUS(x10,j10); > + x11 =3D PLUS(x11,j11); > + x12 =3D PLUS(x12,j12); > + x13 =3D PLUS(x13,j13); > + x14 =3D PLUS(x14,j14); > + x15 =3D PLUS(x15,j15); > + > + x0 =3D XOR(x0,U8TO32_LITTLE(m + 0)); > + x1 =3D XOR(x1,U8TO32_LITTLE(m + 4)); > + x2 =3D XOR(x2,U8TO32_LITTLE(m + 8)); > + x3 =3D XOR(x3,U8TO32_LITTLE(m + 12)); > + x4 =3D XOR(x4,U8TO32_LITTLE(m + 16)); > + x5 =3D XOR(x5,U8TO32_LITTLE(m + 20)); > + x6 =3D XOR(x6,U8TO32_LITTLE(m + 24)); > + x7 =3D XOR(x7,U8TO32_LITTLE(m + 28)); > + x8 =3D XOR(x8,U8TO32_LITTLE(m + 32)); > + x9 =3D XOR(x9,U8TO32_LITTLE(m + 36)); > + x10 =3D XOR(x10,U8TO32_LITTLE(m + 40)); > + x11 =3D XOR(x11,U8TO32_LITTLE(m + 44)); > + x12 =3D XOR(x12,U8TO32_LITTLE(m + 48)); > + x13 =3D XOR(x13,U8TO32_LITTLE(m + 52)); > + x14 =3D XOR(x14,U8TO32_LITTLE(m + 56)); > + x15 =3D XOR(x15,U8TO32_LITTLE(m + 60)); > + > + j12 =3D PLUSONE(j12); > + if (!j12) { > + j13 =3D PLUSONE(j13); > + /* stopping at 2^70 bytes per nonce is user's responsibility */ > + } > + > + U32TO8_LITTLE(c + 0,x0); > + U32TO8_LITTLE(c + 4,x1); > + U32TO8_LITTLE(c + 8,x2); > + U32TO8_LITTLE(c + 12,x3); > + U32TO8_LITTLE(c + 16,x4); > + U32TO8_LITTLE(c + 20,x5); > + U32TO8_LITTLE(c + 24,x6); > + U32TO8_LITTLE(c + 28,x7); > + U32TO8_LITTLE(c + 32,x8); > + U32TO8_LITTLE(c + 36,x9); > + U32TO8_LITTLE(c + 40,x10); > + U32TO8_LITTLE(c + 44,x11); > + U32TO8_LITTLE(c + 48,x12); > + U32TO8_LITTLE(c + 52,x13); > + U32TO8_LITTLE(c + 56,x14); > + U32TO8_LITTLE(c + 60,x15); > + > + if (bytes <=3D 64) { > + if (bytes < 64) { > + for (i =3D 0;i < bytes;++i) ctarget[i] =3D c[i]; > + } > + x->input[12] =3D j12; > + x->input[13] =3D j13; > + return; > + } > + bytes -=3D 64; > + c +=3D 64; > + m +=3D 64; > + } > +} >=20 > Added: head/sys/crypto/chacha20/chacha.h > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/sys/crypto/chacha20/chacha.h Sun Apr 16 09:11:02 2017 = (r317015) > @@ -0,0 +1,32 @@ > +/* $OpenBSD: chacha.h,v 1.4 2016/08/27 04:04:56 guenther Exp $ */ > + > +/* > +chacha-merged.c version 20080118 > +D. J. Bernstein > +Public domain. > + > + $FreeBSD$ > +*/ > + > +#ifndef CHACHA_H > +#define CHACHA_H > + > +#include > + > +struct chacha_ctx { > + u_int input[16]; > +}; > + > +#define CHACHA_MINKEYLEN 16 > +#define CHACHA_NONCELEN 8 > +#define CHACHA_CTRLEN 8 > +#define CHACHA_STATELEN (CHACHA_NONCELEN+CHACHA_CTRLEN) > +#define CHACHA_BLOCKLEN 64 > + > +void chacha_keysetup(struct chacha_ctx *x, const u_char *k, u_int = kbits); > +void chacha_ivsetup(struct chacha_ctx *x, const u_char *iv, const = u_char *ctr); > +void chacha_encrypt_bytes(struct chacha_ctx *x, const u_char *m, > + u_char *c, u_int bytes); > + > +#endif /* CHACHA_H */ > + >=20 > Modified: head/sys/dev/random/random_harvestq.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/dev/random/random_harvestq.c Sun Apr 16 09:00:10 2017 = (r317014) > +++ head/sys/dev/random/random_harvestq.c Sun Apr 16 09:11:02 2017 = (r317015) > @@ -352,10 +352,19 @@ random_harvestq_prime(void *unused __unu > * Get entropy that may have been preloaded by loader(8) > * and use it to pre-charge the entropy harvest queue. > */ > - keyfile =3D = preload_search_by_type(RANDOM_HARVESTQ_BOOT_ENTROPY_FILE); > + keyfile =3D = preload_search_by_type(RANDOM_CACHED_BOOT_ENTROPY_MODULE); > +#ifndef NO_BACKWARD_COMPATIBILITY > + if (keyfile =3D=3D NULL) > + keyfile =3D = preload_search_by_type(RANDOM_LEGACY_BOOT_ENTROPY_MODULE); > +#endif > if (keyfile !=3D NULL) { > data =3D preload_fetch_addr(keyfile); > size =3D preload_fetch_size(keyfile); > + /* skip the first bit of the stash so others like arc4 = can also have some. */ > + if (size > RANDOM_CACHED_SKIP_START) { > + data +=3D RANDOM_CACHED_SKIP_START; > + size -=3D RANDOM_CACHED_SKIP_START; > + } > /* Trim the size. If the admin has a file with a funny = size, we lose some. Tough. */ > size -=3D (size % sizeof(event.he_entropy)); > if (data !=3D NULL && size !=3D 0) { >=20 > Modified: head/sys/dev/random/random_harvestq.h > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/dev/random/random_harvestq.h Sun Apr 16 09:00:10 2017 = (r317014) > +++ head/sys/dev/random/random_harvestq.h Sun Apr 16 09:11:02 2017 = (r317015) > @@ -1,5 +1,5 @@ > /*- > - * Copyright (c) 2013-2015 Mark R V Murray > + * Copyright (c) 2013-2015, 2017 Mark R V Murray > * All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > @@ -45,8 +45,6 @@ struct harvest_event { >=20 > void read_rate_increment(u_int); >=20 > -#define RANDOM_HARVESTQ_BOOT_ENTROPY_FILE "/boot/entropy" > - > #define RANDOM_HARVEST_INIT_LOCK(x) = mtx_init(&harvest_context.hc_mtx, "entropy harvest mutex", NULL, = MTX_SPIN) > #define RANDOM_HARVEST_LOCK(x) = mtx_lock_spin(&harvest_context.hc_mtx) > #define RANDOM_HARVEST_UNLOCK(x) = mtx_unlock_spin(&harvest_context.hc_mtx) >=20 > Modified: head/sys/libkern/arc4random.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/libkern/arc4random.c Sun Apr 16 09:00:10 2017 = (r317014) > +++ head/sys/libkern/arc4random.c Sun Apr 16 09:11:02 2017 = (r317015) > @@ -1,11 +1,28 @@ > /*- > - * THE BEER-WARE LICENSE > + * Copyright (c) 2017 The FreeBSD Foundation > + * All rights reserved. > * > - * wrote this file. As long as you retain this = notice you > - * can do whatever you want with this stuff. If we meet some day, = and you > - * think this stuff is worth it, you can buy me a beer in return. > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer > + * in this position and unchanged. > + * 2. Redistributions in binary form must reproduce the above = copyright > + * notice, this list of conditions and the following disclaimer in = the > + * documentation and/or other materials provided with the = distribution. > + * > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS = OR > + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED = WARRANTIES > + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE = DISCLAIMED. > + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES = (INCLUDING, BUT > + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS = OF USE, > + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON = ANY > + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR = TORT > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE = USE OF > + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > * > - * Dan Moschuk > */ >=20 > #include > @@ -14,144 +31,122 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > -#include > #include > +#include > #include > +#include > #include > -#include > +#include > #include > -#include > +#include > + > +#include >=20 > -#define ARC4_RESEED_BYTES 65536 > -#define ARC4_RESEED_SECONDS 300 > -#define ARC4_KEYBYTES 256 > +#define CHACHA20_RESEED_BYTES 65536 > +#define CHACHA20_RESEED_SECONDS 300 > +#define CHACHA20_KEYBYTES 32 > +#define CHACHA20_BUFFER_SIZE 64 > + > +CTASSERT(CHACHA20_KEYBYTES*8 >=3D CHACHA_MINKEYLEN); >=20 > int arc4rand_iniseed_state =3D ARC4_ENTR_NONE; >=20 > -MALLOC_DEFINE(M_ARC4RANDOM, "arc4random", "arc4random structures"); > +MALLOC_DEFINE(M_CHACHA20RANDOM, "chacha20random", "chacha20random = structures"); >=20 > -struct arc4_s { > +struct chacha20_s { > struct mtx mtx; > - u_int8_t i, j; > - int numruns; > - u_int8_t sbox[256]; > + int numbytes; > + int first_time_done; > time_t t_reseed; > - > + u_int8_t m_buffer[CHACHA20_BUFFER_SIZE]; > + struct chacha_ctx ctx; > } __aligned(CACHE_LINE_SIZE); >=20 > -static struct arc4_s *arc4inst =3D NULL; > +static struct chacha20_s *chacha20inst =3D NULL; >=20 > -#define ARC4_FOREACH(_arc4) \ > - for (_arc4 =3D &arc4inst[0]; _arc4 <=3D &arc4inst[mp_maxid]; = _arc4++) > - > -static u_int8_t arc4_randbyte(struct arc4_s *arc4); > - > -static __inline void > -arc4_swap(u_int8_t *a, u_int8_t *b) > -{ > - u_int8_t c; > - > - c =3D *a; > - *a =3D *b; > - *b =3D c; > -}=09 > +#define CHACHA20_FOREACH(_chacha20) \ > + for (_chacha20 =3D &chacha20inst[0]; \ > + _chacha20 <=3D &chacha20inst[mp_maxid]; \ > + _chacha20++) >=20 > /* > - * Stir our S-box. > + * Mix up the current context. > */ > static void > -arc4_randomstir(struct arc4_s* arc4) > +chacha20_randomstir(struct chacha20_s* chacha20) > { > - u_int8_t key[ARC4_KEYBYTES]; > - int n; > struct timeval tv_now; > + size_t n, size; > + u_int8_t key[CHACHA20_KEYBYTES], *data; > + caddr_t keyfile; >=20 > /* > - * XXX: FIX!! This isn't brilliant. Need more confidence. > - * This returns zero entropy before random(4) is seeded. > + * This is making the best of what may be an insecure > + * Situation. If the loader(8) did not have an entropy > + * stash from the previous shutdown to load, then we will > + * be improperly seeded. The answer is to make sure there > + * is an entropy stash at shutdown time. > */ > - (void)read_random(key, ARC4_KEYBYTES); > - getmicrouptime(&tv_now); > - mtx_lock(&arc4->mtx); > - for (n =3D 0; n < 256; n++) { > - arc4->j =3D (arc4->j + arc4->sbox[n] + key[n]) % 256; > - arc4_swap(&arc4->sbox[n], &arc4->sbox[arc4->j]); > + (void)read_random(key, CHACHA20_KEYBYTES); > + if (!chacha20->first_time_done) { > + keyfile =3D = preload_search_by_type(RANDOM_CACHED_BOOT_ENTROPY_MODULE); > + if (keyfile !=3D NULL) { > + data =3D preload_fetch_addr(keyfile); > + size =3D MIN(preload_fetch_size(keyfile), = CHACHA20_KEYBYTES); > + for (n =3D 0; n < size; n++) > + key[n] ^=3D data[n]; > + explicit_bzero(data, size); > + if (bootverbose) > + printf("arc4random: read %zu bytes from = preloaded cache\n", size); > + } else > + printf("arc4random: no preloaded entropy = cache\n"); > + chacha20->first_time_done =3D 1; > } > - arc4->i =3D arc4->j =3D 0; > + getmicrouptime(&tv_now); > + mtx_lock(&chacha20->mtx); > + chacha_keysetup(&chacha20->ctx, key, CHACHA20_KEYBYTES*8); > + chacha_ivsetup(&chacha20->ctx, (u_char *)&tv_now.tv_sec, (u_char = *)&tv_now.tv_usec); > /* Reset for next reseed cycle. */ > - arc4->t_reseed =3D tv_now.tv_sec + ARC4_RESEED_SECONDS; > - arc4->numruns =3D 0; > - /* > - * Throw away the first N words of output, as suggested in the > - * paper "Weaknesses in the Key Scheduling Algorithm of RC4" > - * by Fluher, Mantin, and Shamir. (N =3D 768 in our case.) > - * > - * http://dl.acm.org/citation.cfm?id=3D646557.694759 > - */ > - for (n =3D 0; n < 768*4; n++) > - arc4_randbyte(arc4); > - > - mtx_unlock(&arc4->mtx); > + chacha20->t_reseed =3D tv_now.tv_sec + CHACHA20_RESEED_SECONDS; > + chacha20->numbytes =3D 0; > + mtx_unlock(&chacha20->mtx); > } >=20 > /* > - * Initialize our S-box to its beginning defaults. > + * Initialize the contexts. > */ > static void > -arc4_init(void) > +chacha20_init(void) > { > - struct arc4_s *arc4; > - int n; > - > - arc4inst =3D malloc((mp_maxid + 1) * sizeof(struct arc4_s), > - M_ARC4RANDOM, M_NOWAIT | M_ZERO); > - KASSERT(arc4inst !=3D NULL, ("arc4_init: memory allocation = error")); > + struct chacha20_s *chacha20; >=20 > - ARC4_FOREACH(arc4) { > - mtx_init(&arc4->mtx, "arc4_mtx", NULL, MTX_DEF); > - > - arc4->i =3D arc4->j =3D 0; > - for (n =3D 0; n < 256; n++) > - arc4->sbox[n] =3D (u_int8_t) n; > - > - arc4->t_reseed =3D -1; > - arc4->numruns =3D 0; > + chacha20inst =3D malloc((mp_maxid + 1) * sizeof(struct = chacha20_s), > + M_CHACHA20RANDOM, M_NOWAIT | M_ZERO); > + KASSERT(chacha20inst !=3D NULL, ("chacha20_init: memory = allocation error")); > + > + CHACHA20_FOREACH(chacha20) { > + mtx_init(&chacha20->mtx, "chacha20_mtx", NULL, MTX_DEF); > + chacha20->t_reseed =3D -1; > + chacha20->numbytes =3D 0; > + chacha20->first_time_done =3D 0; > + explicit_bzero(chacha20->m_buffer, = CHACHA20_BUFFER_SIZE); > + explicit_bzero(&chacha20->ctx, sizeof(chacha20->ctx)); > } > } > -SYSINIT(arc4, SI_SUB_LOCK, SI_ORDER_ANY, arc4_init, NULL); > +SYSINIT(chacha20, SI_SUB_LOCK, SI_ORDER_ANY, chacha20_init, NULL); >=20 >=20 > static void > -arc4_uninit(void) > +chacha20_uninit(void) > { > - struct arc4_s *arc4; > + struct chacha20_s *chacha20; >=20 > - ARC4_FOREACH(arc4) { > - mtx_destroy(&arc4->mtx); > - } > - > - free(arc4inst, M_ARC4RANDOM); > + CHACHA20_FOREACH(chacha20) > + mtx_destroy(&chacha20->mtx); > + free(chacha20inst, M_CHACHA20RANDOM); > } > +SYSUNINIT(chacha20, SI_SUB_LOCK, SI_ORDER_ANY, chacha20_uninit, = NULL); >=20 > -SYSUNINIT(arc4, SI_SUB_LOCK, SI_ORDER_ANY, arc4_uninit, NULL); > - > - > -/* > - * Generate a random byte. > - */ > -static u_int8_t > -arc4_randbyte(struct arc4_s *arc4) > -{ > - u_int8_t arc4_t; > - > - arc4->i =3D (arc4->i + 1) % 256; > - arc4->j =3D (arc4->j + arc4->sbox[arc4->i]) % 256; > - > - arc4_swap(&arc4->sbox[arc4->i], &arc4->sbox[arc4->j]); > - > - arc4_t =3D (arc4->sbox[arc4->i] + arc4->sbox[arc4->j]) % 256; > - return arc4->sbox[arc4_t]; > -} >=20 > /* > * MPSAFE > @@ -159,28 +154,36 @@ arc4_randbyte(struct arc4_s *arc4) > void > arc4rand(void *ptr, u_int len, int reseed) > { > - u_char *p; > + struct chacha20_s *chacha20; > struct timeval tv; > - struct arc4_s *arc4; > + u_int length; > + u_int8_t *p; >=20 > - if (reseed || atomic_cmpset_int(&arc4rand_iniseed_state, > - ARC4_ENTR_HAVE, ARC4_ENTR_SEED)) { > - ARC4_FOREACH(arc4) > - arc4_randomstir(arc4); > - } > + if (reseed || atomic_cmpset_int(&arc4rand_iniseed_state, = ARC4_ENTR_HAVE, ARC4_ENTR_SEED)) > + CHACHA20_FOREACH(chacha20) > + chacha20_randomstir(chacha20); >=20 > - arc4 =3D &arc4inst[curcpu]; > + chacha20 =3D &chacha20inst[curcpu]; > getmicrouptime(&tv); > - if ((arc4->numruns > ARC4_RESEED_BYTES) || > - (tv.tv_sec > arc4->t_reseed)) > - arc4_randomstir(arc4); > + /* We may get unlucky and be migrated off this CPU, but that is = expected to be infrequent */ > + if ((chacha20->numbytes > CHACHA20_RESEED_BYTES) || (tv.tv_sec > = chacha20->t_reseed)) > + chacha20_randomstir(chacha20); >=20 > - mtx_lock(&arc4->mtx); > - arc4->numruns +=3D len; > + mtx_lock(&chacha20->mtx); > p =3D ptr; > - while (len--) > - *p++ =3D arc4_randbyte(arc4); > - mtx_unlock(&arc4->mtx); > + while (len) { > + length =3D MIN(CHACHA20_BUFFER_SIZE, len); > + chacha_encrypt_bytes(&chacha20->ctx, chacha20->m_buffer, = p, length); > + p +=3D length; > + len -=3D length; > + chacha20->numbytes +=3D length; > + if (chacha20->numbytes > CHACHA20_RESEED_BYTES) { > + mtx_unlock(&chacha20->mtx); > + chacha20_randomstir(chacha20); > + mtx_lock(&chacha20->mtx); > + } > + } > + mtx_unlock(&chacha20->mtx); > } >=20 > uint32_t > @@ -188,6 +191,13 @@ arc4random(void) > { > uint32_t ret; >=20 > - arc4rand(&ret, sizeof ret, 0); > + arc4rand(&ret, sizeof(ret), 0); > return ret; > } > + > +void > +arc4random_buf(void *ptr, size_t len) > +{ > + > + arc4rand(ptr, len, 0); > +} >=20 > Modified: head/sys/sys/libkern.h > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/sys/libkern.h Sun Apr 16 09:00:10 2017 = (r317014) > +++ head/sys/sys/libkern.h Sun Apr 16 09:11:02 2017 = (r317015) > @@ -117,7 +117,8 @@ extern int arc4rand_iniseed_state; > /* Prototypes for non-quad routines. */ > struct malloc_type; > uint32_t arc4random(void); > -void arc4rand(void *ptr, u_int len, int reseed); > +void arc4random_buf(void *, size_t); > +void arc4rand(void *, u_int, int); > int bcmp(const void *, const void *, size_t); > int timingsafe_bcmp(const void *, const void *, size_t); > void *bsearch(const void *, const void *, size_t, >=20 > Modified: head/sys/sys/random.h > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/sys/random.h Sun Apr 16 09:00:10 2017 = (r317014) > +++ head/sys/sys/random.h Sun Apr 16 09:11:02 2017 = (r317015) > @@ -1,5 +1,5 @@ > /*- > - * Copyright (c) 2000-2015 Mark R. V. Murray > + * Copyright (c) 2000-2015, 2017 Mark R. V. Murray > * All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > @@ -96,6 +96,10 @@ enum random_entropy_source { >=20 > #define RANDOM_HARVEST_EVERYTHING_MASK ((1 << = (RANDOM_ENVIRONMENTAL_END + 1)) - 1) >=20 > +#define RANDOM_LEGACY_BOOT_ENTROPY_MODULE "/boot/entropy" > +#define RANDOM_CACHED_BOOT_ENTROPY_MODULE "boot_entropy_cache" > +#define RANDOM_CACHED_SKIP_START 256 > + > #if defined(DEV_RANDOM) > void random_harvest_queue(const void *, u_int, u_int, enum = random_entropy_source); > void random_harvest_fast(const void *, u_int, u_int, enum = random_entropy_source); >=20 --=20 Mark R V Murray From owner-svn-src-all@freebsd.org Sun Apr 16 11:50:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 760BED41077; Sun, 16 Apr 2017 11:50:54 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 540651606; Sun, 16 Apr 2017 11:50:53 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3GBojYq016404; Sun, 16 Apr 2017 04:50:45 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3GBohYF016403; Sun, 16 Apr 2017 04:50:43 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704161150.v3GBohYF016403@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys In-Reply-To: To: Mark R V Murray Date: Sun, 16 Apr 2017 04:50:43 -0700 (PDT) CC: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 11:50:54 -0000 > This does not use DES' Chacha20 commit, as I had already completed the > testing for it, and received SO@ approval. > > DES's commit made Chaha20 a module. This is of no use to arc4random(9), > which needs the code to be standard. Also his API is different. > > I have no objection to reworking the arc4random/Chacha below to use DES' > version of Chacha, but his code needs to be standard library code, > not an optional module. > > Any objections to me doing this? Yes We need to move towards more modules, not less. Having this standard does not even allow one to compile a kernel without it. I should be able to compile a kernel without arc4random(9) and without chacha if I so desire. And I should be able to load and unload these if I so desire. This later feature is VERY usefull for developement and debug cycles. I am sure with careful though we can find a way to allow arc4random to use a pointer that knows if the chacha code is avaliable, and use it if so, and if not fall back to something else, or punt with an error return. I have done this with minidumps, if my module is not loaded and the kernel panics, and is set to attempt a minidump it just logs another error when it finds the NULL pointer and continues on its way to panic. > M > > > On 16 Apr 2017, at 10:11, Mark Murray wrote: > > > > Author: markm > > Date: Sun Apr 16 09:11:02 2017 > > New Revision: 317015 > > URL: https://svnweb.freebsd.org/changeset/base/317015 > > > > Log: > > Replace the RC4 algorithm for generating in-kernel secure random > > numbers with Chacha20. Keep the API, though, as that is what the > > other *BSD's have done. > > > > Use the boot-time entropy stash (if present) to bootstrap the > > in-kernel entropy source. > > > > Reviewed by: delphij,rwatson > > Approved by: so(delphij) > > MFC after: 2 months > > Relnotes: yes > > Differential Revision: https://reviews.freebsd.org/D10048 > > --This line, and those below, will be ignored-- > >> Description of fields to fill in above: 76 columns --| > >> PR: If and which Problem Report is related. > >> Submitted by: If someone else sent in the change. > >> Reported by: If someone else reported the issue. > >> Reviewed by: If someone else reviewed your modification. > >> Approved by: If you needed approval for this commit. > >> Obtained from: If the change is from a third party. > >> MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email. > >> MFH: Ports tree branch name. Request approval for merge. > >> Relnotes: Set to 'yes' for mention in release notes. > >> Security: Vulnerability reference (one per line) or description. > >> Sponsored by: If the change was sponsored by an organization. > >> Differential Revision: https://reviews.freebsd.org/D### (*full* phabric URL needed). > >> Empty fields above will be automatically removed. > > > > Added: > > head/sys/crypto/chacha20/chacha.c (contents, props changed) > > head/sys/crypto/chacha20/chacha.h (contents, props changed) > > Modified: > > head/sys/boot/forth/loader.conf > > head/sys/conf/files > > head/sys/dev/random/random_harvestq.c > > head/sys/dev/random/random_harvestq.h > > head/sys/libkern/arc4random.c > > head/sys/sys/libkern.h > > head/sys/sys/random.h > > > > Modified: head/sys/boot/forth/loader.conf > > ============================================================================== > > --- head/sys/boot/forth/loader.conf Sun Apr 16 09:00:10 2017 (r317014) > > +++ head/sys/boot/forth/loader.conf Sun Apr 16 09:11:02 2017 (r317015) > > @@ -48,7 +48,7 @@ bitmap_type="splash_image_data" # and pl > > entropy_cache_load="YES" # Set this to NO to disable loading > > # entropy at boot time > > entropy_cache_name="/boot/entropy" # Set this to the name of the file > > -entropy_cache_type="/boot/entropy" # Required for the kernel to find > > +entropy_cache_type="boot_entropy_cache" # Required for the kernel to find > > # the boot-time entropy cache. This > > # must not change value even if the > > # _name above does change! > > > > Modified: head/sys/conf/files > > ============================================================================== > > --- head/sys/conf/files Sun Apr 16 09:00:10 2017 (r317014) > > +++ head/sys/conf/files Sun Apr 16 09:11:02 2017 (r317015) > > @@ -3810,6 +3810,7 @@ kgssapi/gsstest.c optional kgssapi_debu > > # the file should be moved to conf/files. from here. > > # > > libkern/arc4random.c standard > > +crypto/chacha20/chacha.c standard > > libkern/asprintf.c standard > > libkern/bcd.c standard > > libkern/bsearch.c standard > > > > Added: head/sys/crypto/chacha20/chacha.c > > ============================================================================== > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > +++ head/sys/crypto/chacha20/chacha.c Sun Apr 16 09:11:02 2017 (r317015) > > @@ -0,0 +1,224 @@ > > +/* > > +chacha-merged.c version 20080118 > > +D. J. Bernstein > > +Public domain. > > +*/ > > + > > +/* $OpenBSD: chacha.c,v 1.1 2013/11/21 00:45:44 djm Exp $ */ > > + > > +#include > > +__FBSDID("$FreeBSD$"); > > + > > +#include > > +#include > > + > > +#include > > + > > + > > +typedef uint8_t u8; > > +typedef uint32_t u32; > > + > > +typedef struct chacha_ctx chacha_ctx; > > + > > +#define U8C(v) (v##U) > > +#define U32C(v) (v##U) > > + > > +#define U8V(v) ((u8)(v) & U8C(0xFF)) > > +#define U32V(v) ((u32)(v) & U32C(0xFFFFFFFF)) > > + > > +#define ROTL32(v, n) \ > > + (U32V((v) << (n)) | ((v) >> (32 - (n)))) > > + > > +#define U8TO32_LITTLE(p) \ > > + (((u32)((p)[0]) ) | \ > > + ((u32)((p)[1]) << 8) | \ > > + ((u32)((p)[2]) << 16) | \ > > + ((u32)((p)[3]) << 24)) > > + > > +#define U32TO8_LITTLE(p, v) \ > > + do { \ > > + (p)[0] = U8V((v) ); \ > > + (p)[1] = U8V((v) >> 8); \ > > + (p)[2] = U8V((v) >> 16); \ > > + (p)[3] = U8V((v) >> 24); \ > > + } while (0) > > + > > +#define ROTATE(v,c) (ROTL32(v,c)) > > +#define XOR(v,w) ((v) ^ (w)) > > +#define PLUS(v,w) (U32V((v) + (w))) > > +#define PLUSONE(v) (PLUS((v),1)) > > + > > +#define QUARTERROUND(a,b,c,d) \ > > + a = PLUS(a,b); d = ROTATE(XOR(d,a),16); \ > > + c = PLUS(c,d); b = ROTATE(XOR(b,c),12); \ > > + a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \ > > + c = PLUS(c,d); b = ROTATE(XOR(b,c), 7); > > + > > +static const char sigma[16] = "expand 32-byte k"; > > +static const char tau[16] = "expand 16-byte k"; > > + > > +void > > +chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits) > > +{ > > + const char *constants; > > + > > + x->input[4] = U8TO32_LITTLE(k + 0); > > + x->input[5] = U8TO32_LITTLE(k + 4); > > + x->input[6] = U8TO32_LITTLE(k + 8); > > + x->input[7] = U8TO32_LITTLE(k + 12); > > + if (kbits == 256) { /* recommended */ > > + k += 16; > > + constants = sigma; > > + } else { /* kbits == 128 */ > > + constants = tau; > > + } > > + x->input[8] = U8TO32_LITTLE(k + 0); > > + x->input[9] = U8TO32_LITTLE(k + 4); > > + x->input[10] = U8TO32_LITTLE(k + 8); > > + x->input[11] = U8TO32_LITTLE(k + 12); > > + x->input[0] = U8TO32_LITTLE(constants + 0); > > + x->input[1] = U8TO32_LITTLE(constants + 4); > > + x->input[2] = U8TO32_LITTLE(constants + 8); > > + x->input[3] = U8TO32_LITTLE(constants + 12); > > +} > > + > > +void > > +chacha_ivsetup(chacha_ctx *x, const u8 *iv, const u8 *counter) > > +{ > > + x->input[12] = counter == NULL ? 0 : U8TO32_LITTLE(counter + 0); > > + x->input[13] = counter == NULL ? 0 : U8TO32_LITTLE(counter + 4); > > + x->input[14] = U8TO32_LITTLE(iv + 0); > > + x->input[15] = U8TO32_LITTLE(iv + 4); > > +} > > + > > +void > > +chacha_encrypt_bytes(chacha_ctx *x,const u8 *m,u8 *c,u32 bytes) > > +{ > > + u32 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; > > + u32 j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15; > > + u8 *ctarget = NULL; > > + u8 tmp[64]; > > + u_int i; > > + > > + if (!bytes) return; > > + > > + j0 = x->input[0]; > > + j1 = x->input[1]; > > + j2 = x->input[2]; > > + j3 = x->input[3]; > > + j4 = x->input[4]; > > + j5 = x->input[5]; > > + j6 = x->input[6]; > > + j7 = x->input[7]; > > + j8 = x->input[8]; > > + j9 = x->input[9]; > > + j10 = x->input[10]; > > + j11 = x->input[11]; > > + j12 = x->input[12]; > > + j13 = x->input[13]; > > + j14 = x->input[14]; > > + j15 = x->input[15]; > > + > > + for (;;) { > > + if (bytes < 64) { > > + for (i = 0;i < bytes;++i) tmp[i] = m[i]; > > + m = tmp; > > + ctarget = c; > > + c = tmp; > > + } > > + x0 = j0; > > + x1 = j1; > > + x2 = j2; > > + x3 = j3; > > + x4 = j4; > > + x5 = j5; > > + x6 = j6; > > + x7 = j7; > > + x8 = j8; > > + x9 = j9; > > + x10 = j10; > > + x11 = j11; > > + x12 = j12; > > + x13 = j13; > > + x14 = j14; > > + x15 = j15; > > + for (i = 20;i > 0;i -= 2) { > > + QUARTERROUND( x0, x4, x8,x12) > > + QUARTERROUND( x1, x5, x9,x13) > > + QUARTERROUND( x2, x6,x10,x14) > > + QUARTERROUND( x3, x7,x11,x15) > > + QUARTERROUND( x0, x5,x10,x15) > > + QUARTERROUND( x1, x6,x11,x12) > > + QUARTERROUND( x2, x7, x8,x13) > > + QUARTERROUND( x3, x4, x9,x14) > > + } > > + x0 = PLUS(x0,j0); > > + x1 = PLUS(x1,j1); > > + x2 = PLUS(x2,j2); > > + x3 = PLUS(x3,j3); > > + x4 = PLUS(x4,j4); > > + x5 = PLUS(x5,j5); > > + x6 = PLUS(x6,j6); > > + x7 = PLUS(x7,j7); > > + x8 = PLUS(x8,j8); > > + x9 = PLUS(x9,j9); > > + x10 = PLUS(x10,j10); > > + x11 = PLUS(x11,j11); > > + x12 = PLUS(x12,j12); > > + x13 = PLUS(x13,j13); > > + x14 = PLUS(x14,j14); > > + x15 = PLUS(x15,j15); > > + > > + x0 = XOR(x0,U8TO32_LITTLE(m + 0)); > > + x1 = XOR(x1,U8TO32_LITTLE(m + 4)); > > + x2 = XOR(x2,U8TO32_LITTLE(m + 8)); > > + x3 = XOR(x3,U8TO32_LITTLE(m + 12)); > > + x4 = XOR(x4,U8TO32_LITTLE(m + 16)); > > + x5 = XOR(x5,U8TO32_LITTLE(m + 20)); > > + x6 = XOR(x6,U8TO32_LITTLE(m + 24)); > > + x7 = XOR(x7,U8TO32_LITTLE(m + 28)); > > + x8 = XOR(x8,U8TO32_LITTLE(m + 32)); > > + x9 = XOR(x9,U8TO32_LITTLE(m + 36)); > > + x10 = XOR(x10,U8TO32_LITTLE(m + 40)); > > + x11 = XOR(x11,U8TO32_LITTLE(m + 44)); > > + x12 = XOR(x12,U8TO32_LITTLE(m + 48)); > > + x13 = XOR(x13,U8TO32_LITTLE(m + 52)); > > + x14 = XOR(x14,U8TO32_LITTLE(m + 56)); > > + x15 = XOR(x15,U8TO32_LITTLE(m + 60)); > > + > > + j12 = PLUSONE(j12); > > + if (!j12) { > > + j13 = PLUSONE(j13); > > + /* stopping at 2^70 bytes per nonce is user's responsibility */ > > + } > > + > > + U32TO8_LITTLE(c + 0,x0); > > + U32TO8_LITTLE(c + 4,x1); > > + U32TO8_LITTLE(c + 8,x2); > > + U32TO8_LITTLE(c + 12,x3); > > + U32TO8_LITTLE(c + 16,x4); > > + U32TO8_LITTLE(c + 20,x5); > > + U32TO8_LITTLE(c + 24,x6); > > + U32TO8_LITTLE(c + 28,x7); > > + U32TO8_LITTLE(c + 32,x8); > > + U32TO8_LITTLE(c + 36,x9); > > + U32TO8_LITTLE(c + 40,x10); > > + U32TO8_LITTLE(c + 44,x11); > > + U32TO8_LITTLE(c + 48,x12); > > + U32TO8_LITTLE(c + 52,x13); > > + U32TO8_LITTLE(c + 56,x14); > > + U32TO8_LITTLE(c + 60,x15); > > + > > + if (bytes <= 64) { > > + if (bytes < 64) { > > + for (i = 0;i < bytes;++i) ctarget[i] = c[i]; > > + } > > + x->input[12] = j12; > > + x->input[13] = j13; > > + return; > > + } > > + bytes -= 64; > > + c += 64; > > + m += 64; > > + } > > +} > > > > Added: head/sys/crypto/chacha20/chacha.h > > ============================================================================== > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > +++ head/sys/crypto/chacha20/chacha.h Sun Apr 16 09:11:02 2017 (r317015) > > @@ -0,0 +1,32 @@ > > +/* $OpenBSD: chacha.h,v 1.4 2016/08/27 04:04:56 guenther Exp $ */ > > + > > +/* > > +chacha-merged.c version 20080118 > > +D. J. Bernstein > > +Public domain. > > + > > + $FreeBSD$ > > +*/ > > + > > +#ifndef CHACHA_H > > +#define CHACHA_H > > + > > +#include > > + > > +struct chacha_ctx { > > + u_int input[16]; > > +}; > > + > > +#define CHACHA_MINKEYLEN 16 > > +#define CHACHA_NONCELEN 8 > > +#define CHACHA_CTRLEN 8 > > +#define CHACHA_STATELEN (CHACHA_NONCELEN+CHACHA_CTRLEN) > > +#define CHACHA_BLOCKLEN 64 > > + > > +void chacha_keysetup(struct chacha_ctx *x, const u_char *k, u_int kbits); > > +void chacha_ivsetup(struct chacha_ctx *x, const u_char *iv, const u_char *ctr); > > +void chacha_encrypt_bytes(struct chacha_ctx *x, const u_char *m, > > + u_char *c, u_int bytes); > > + > > +#endif /* CHACHA_H */ > > + > > > > Modified: head/sys/dev/random/random_harvestq.c > > ============================================================================== > > --- head/sys/dev/random/random_harvestq.c Sun Apr 16 09:00:10 2017 (r317014) > > +++ head/sys/dev/random/random_harvestq.c Sun Apr 16 09:11:02 2017 (r317015) > > @@ -352,10 +352,19 @@ random_harvestq_prime(void *unused __unu > > * Get entropy that may have been preloaded by loader(8) > > * and use it to pre-charge the entropy harvest queue. > > */ > > - keyfile = preload_search_by_type(RANDOM_HARVESTQ_BOOT_ENTROPY_FILE); > > + keyfile = preload_search_by_type(RANDOM_CACHED_BOOT_ENTROPY_MODULE); > > +#ifndef NO_BACKWARD_COMPATIBILITY > > + if (keyfile == NULL) > > + keyfile = preload_search_by_type(RANDOM_LEGACY_BOOT_ENTROPY_MODULE); > > +#endif > > if (keyfile != NULL) { > > data = preload_fetch_addr(keyfile); > > size = preload_fetch_size(keyfile); > > + /* skip the first bit of the stash so others like arc4 can also have some. */ > > + if (size > RANDOM_CACHED_SKIP_START) { > > + data += RANDOM_CACHED_SKIP_START; > > + size -= RANDOM_CACHED_SKIP_START; > > + } > > /* Trim the size. If the admin has a file with a funny size, we lose some. Tough. */ > > size -= (size % sizeof(event.he_entropy)); > > if (data != NULL && size != 0) { > > > > Modified: head/sys/dev/random/random_harvestq.h > > ============================================================================== > > --- head/sys/dev/random/random_harvestq.h Sun Apr 16 09:00:10 2017 (r317014) > > +++ head/sys/dev/random/random_harvestq.h Sun Apr 16 09:11:02 2017 (r317015) > > @@ -1,5 +1,5 @@ > > /*- > > - * Copyright (c) 2013-2015 Mark R V Murray > > + * Copyright (c) 2013-2015, 2017 Mark R V Murray > > * All rights reserved. > > * > > * Redistribution and use in source and binary forms, with or without > > @@ -45,8 +45,6 @@ struct harvest_event { > > > > void read_rate_increment(u_int); > > > > -#define RANDOM_HARVESTQ_BOOT_ENTROPY_FILE "/boot/entropy" > > - > > #define RANDOM_HARVEST_INIT_LOCK(x) mtx_init(&harvest_context.hc_mtx, "entropy harvest mutex", NULL, MTX_SPIN) > > #define RANDOM_HARVEST_LOCK(x) mtx_lock_spin(&harvest_context.hc_mtx) > > #define RANDOM_HARVEST_UNLOCK(x) mtx_unlock_spin(&harvest_context.hc_mtx) > > > > Modified: head/sys/libkern/arc4random.c > > ============================================================================== > > --- head/sys/libkern/arc4random.c Sun Apr 16 09:00:10 2017 (r317014) > > +++ head/sys/libkern/arc4random.c Sun Apr 16 09:11:02 2017 (r317015) > > @@ -1,11 +1,28 @@ > > /*- > > - * THE BEER-WARE LICENSE > > + * Copyright (c) 2017 The FreeBSD Foundation > > + * All rights reserved. > > * > > - * wrote this file. As long as you retain this notice you > > - * can do whatever you want with this stuff. If we meet some day, and you > > - * think this stuff is worth it, you can buy me a beer in return. > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer > > + * in this position and unchanged. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * > > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR > > + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES > > + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. > > + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, > > + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY > > + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > * > > - * Dan Moschuk > > */ > > > > #include > > @@ -14,144 +31,122 @@ __FBSDID("$FreeBSD$"); > > #include > > #include > > #include > > -#include > > #include > > +#include > > #include > > +#include > > #include > > -#include > > +#include > > #include > > -#include > > +#include > > + > > +#include > > > > -#define ARC4_RESEED_BYTES 65536 > > -#define ARC4_RESEED_SECONDS 300 > > -#define ARC4_KEYBYTES 256 > > +#define CHACHA20_RESEED_BYTES 65536 > > +#define CHACHA20_RESEED_SECONDS 300 > > +#define CHACHA20_KEYBYTES 32 > > +#define CHACHA20_BUFFER_SIZE 64 > > + > > +CTASSERT(CHACHA20_KEYBYTES*8 >= CHACHA_MINKEYLEN); > > > > int arc4rand_iniseed_state = ARC4_ENTR_NONE; > > > > -MALLOC_DEFINE(M_ARC4RANDOM, "arc4random", "arc4random structures"); > > +MALLOC_DEFINE(M_CHACHA20RANDOM, "chacha20random", "chacha20random structures"); > > > > -struct arc4_s { > > +struct chacha20_s { > > struct mtx mtx; > > - u_int8_t i, j; > > - int numruns; > > - u_int8_t sbox[256]; > > + int numbytes; > > + int first_time_done; > > time_t t_reseed; > > - > > + u_int8_t m_buffer[CHACHA20_BUFFER_SIZE]; > > + struct chacha_ctx ctx; > > } __aligned(CACHE_LINE_SIZE); > > > > -static struct arc4_s *arc4inst = NULL; > > +static struct chacha20_s *chacha20inst = NULL; > > > > -#define ARC4_FOREACH(_arc4) \ > > - for (_arc4 = &arc4inst[0]; _arc4 <= &arc4inst[mp_maxid]; _arc4++) > > - > > -static u_int8_t arc4_randbyte(struct arc4_s *arc4); > > - > > -static __inline void > > -arc4_swap(u_int8_t *a, u_int8_t *b) > > -{ > > - u_int8_t c; > > - > > - c = *a; > > - *a = *b; > > - *b = c; > > -} > > +#define CHACHA20_FOREACH(_chacha20) \ > > + for (_chacha20 = &chacha20inst[0]; \ > > + _chacha20 <= &chacha20inst[mp_maxid]; \ > > + _chacha20++) > > > > /* > > - * Stir our S-box. > > + * Mix up the current context. > > */ > > static void > > -arc4_randomstir(struct arc4_s* arc4) > > +chacha20_randomstir(struct chacha20_s* chacha20) > > { > > - u_int8_t key[ARC4_KEYBYTES]; > > - int n; > > struct timeval tv_now; > > + size_t n, size; > > + u_int8_t key[CHACHA20_KEYBYTES], *data; > > + caddr_t keyfile; > > > > /* > > - * XXX: FIX!! This isn't brilliant. Need more confidence. > > - * This returns zero entropy before random(4) is seeded. > > + * This is making the best of what may be an insecure > > + * Situation. If the loader(8) did not have an entropy > > + * stash from the previous shutdown to load, then we will > > + * be improperly seeded. The answer is to make sure there > > + * is an entropy stash at shutdown time. > > */ > > - (void)read_random(key, ARC4_KEYBYTES); > > - getmicrouptime(&tv_now); > > - mtx_lock(&arc4->mtx); > > - for (n = 0; n < 256; n++) { > > - arc4->j = (arc4->j + arc4->sbox[n] + key[n]) % 256; > > - arc4_swap(&arc4->sbox[n], &arc4->sbox[arc4->j]); > > + (void)read_random(key, CHACHA20_KEYBYTES); > > + if (!chacha20->first_time_done) { > > + keyfile = preload_search_by_type(RANDOM_CACHED_BOOT_ENTROPY_MODULE); > > + if (keyfile != NULL) { > > + data = preload_fetch_addr(keyfile); > > + size = MIN(preload_fetch_size(keyfile), CHACHA20_KEYBYTES); > > + for (n = 0; n < size; n++) > > + key[n] ^= data[n]; > > + explicit_bzero(data, size); > > + if (bootverbose) > > + printf("arc4random: read %zu bytes from preloaded cache\n", size); > > + } else > > + printf("arc4random: no preloaded entropy cache\n"); > > + chacha20->first_time_done = 1; > > } > > - arc4->i = arc4->j = 0; > > + getmicrouptime(&tv_now); > > + mtx_lock(&chacha20->mtx); > > + chacha_keysetup(&chacha20->ctx, key, CHACHA20_KEYBYTES*8); > > + chacha_ivsetup(&chacha20->ctx, (u_char *)&tv_now.tv_sec, (u_char *)&tv_now.tv_usec); > > /* Reset for next reseed cycle. */ > > - arc4->t_reseed = tv_now.tv_sec + ARC4_RESEED_SECONDS; > > - arc4->numruns = 0; > > - /* > > - * Throw away the first N words of output, as suggested in the > > - * paper "Weaknesses in the Key Scheduling Algorithm of RC4" > > - * by Fluher, Mantin, and Shamir. (N = 768 in our case.) > > - * > > - * http://dl.acm.org/citation.cfm?id=646557.694759 > > - */ > > - for (n = 0; n < 768*4; n++) > > - arc4_randbyte(arc4); > > - > > - mtx_unlock(&arc4->mtx); > > + chacha20->t_reseed = tv_now.tv_sec + CHACHA20_RESEED_SECONDS; > > + chacha20->numbytes = 0; > > + mtx_unlock(&chacha20->mtx); > > } > > > > /* > > - * Initialize our S-box to its beginning defaults. > > + * Initialize the contexts. > > */ > > static void > > -arc4_init(void) > > +chacha20_init(void) > > { > > - struct arc4_s *arc4; > > - int n; > > - > > - arc4inst = malloc((mp_maxid + 1) * sizeof(struct arc4_s), > > - M_ARC4RANDOM, M_NOWAIT | M_ZERO); > > - KASSERT(arc4inst != NULL, ("arc4_init: memory allocation error")); > > + struct chacha20_s *chacha20; > > > > - ARC4_FOREACH(arc4) { > > - mtx_init(&arc4->mtx, "arc4_mtx", NULL, MTX_DEF); > > - > > - arc4->i = arc4->j = 0; > > - for (n = 0; n < 256; n++) > > - arc4->sbox[n] = (u_int8_t) n; > > - > > - arc4->t_reseed = -1; > > - arc4->numruns = 0; > > + chacha20inst = malloc((mp_maxid + 1) * sizeof(struct chacha20_s), > > + M_CHACHA20RANDOM, M_NOWAIT | M_ZERO); > > + KASSERT(chacha20inst != NULL, ("chacha20_init: memory allocation error")); > > + > > + CHACHA20_FOREACH(chacha20) { > > + mtx_init(&chacha20->mtx, "chacha20_mtx", NULL, MTX_DEF); > > + chacha20->t_reseed = -1; > > + chacha20->numbytes = 0; > > + chacha20->first_time_done = 0; > > + explicit_bzero(chacha20->m_buffer, CHACHA20_BUFFER_SIZE); > > + explicit_bzero(&chacha20->ctx, sizeof(chacha20->ctx)); > > } > > } > > -SYSINIT(arc4, SI_SUB_LOCK, SI_ORDER_ANY, arc4_init, NULL); > > +SYSINIT(chacha20, SI_SUB_LOCK, SI_ORDER_ANY, chacha20_init, NULL); > > > > > > static void > > -arc4_uninit(void) > > +chacha20_uninit(void) > > { > > - struct arc4_s *arc4; > > + struct chacha20_s *chacha20; > > > > - ARC4_FOREACH(arc4) { > > - mtx_destroy(&arc4->mtx); > > - } > > - > > - free(arc4inst, M_ARC4RANDOM); > > + CHACHA20_FOREACH(chacha20) > > + mtx_destroy(&chacha20->mtx); > > + free(chacha20inst, M_CHACHA20RANDOM); > > } > > +SYSUNINIT(chacha20, SI_SUB_LOCK, SI_ORDER_ANY, chacha20_uninit, NULL); > > > > -SYSUNINIT(arc4, SI_SUB_LOCK, SI_ORDER_ANY, arc4_uninit, NULL); > > - > > - > > -/* > > - * Generate a random byte. > > - */ > > -static u_int8_t > > -arc4_randbyte(struct arc4_s *arc4) > > -{ > > - u_int8_t arc4_t; > > - > > - arc4->i = (arc4->i + 1) % 256; > > - arc4->j = (arc4->j + arc4->sbox[arc4->i]) % 256; > > - > > - arc4_swap(&arc4->sbox[arc4->i], &arc4->sbox[arc4->j]); > > - > > - arc4_t = (arc4->sbox[arc4->i] + arc4->sbox[arc4->j]) % 256; > > - return arc4->sbox[arc4_t]; > > -} > > > > /* > > * MPSAFE > > @@ -159,28 +154,36 @@ arc4_randbyte(struct arc4_s *arc4) > > void > > arc4rand(void *ptr, u_int len, int reseed) > > { > > - u_char *p; > > + struct chacha20_s *chacha20; > > struct timeval tv; > > - struct arc4_s *arc4; > > + u_int length; > > + u_int8_t *p; > > > > - if (reseed || atomic_cmpset_int(&arc4rand_iniseed_state, > > - ARC4_ENTR_HAVE, ARC4_ENTR_SEED)) { > > - ARC4_FOREACH(arc4) > > - arc4_randomstir(arc4); > > - } > > + if (reseed || atomic_cmpset_int(&arc4rand_iniseed_state, ARC4_ENTR_HAVE, ARC4_ENTR_SEED)) > > + CHACHA20_FOREACH(chacha20) > > + chacha20_randomstir(chacha20); > > > > - arc4 = &arc4inst[curcpu]; > > + chacha20 = &chacha20inst[curcpu]; > > getmicrouptime(&tv); > > - if ((arc4->numruns > ARC4_RESEED_BYTES) || > > - (tv.tv_sec > arc4->t_reseed)) > > - arc4_randomstir(arc4); > > + /* We may get unlucky and be migrated off this CPU, but that is expected to be infrequent */ > > + if ((chacha20->numbytes > CHACHA20_RESEED_BYTES) || (tv.tv_sec > chacha20->t_reseed)) > > + chacha20_randomstir(chacha20); > > > > - mtx_lock(&arc4->mtx); > > - arc4->numruns += len; > > + mtx_lock(&chacha20->mtx); > > p = ptr; > > - while (len--) > > - *p++ = arc4_randbyte(arc4); > > - mtx_unlock(&arc4->mtx); > > + while (len) { > > + length = MIN(CHACHA20_BUFFER_SIZE, len); > > + chacha_encrypt_bytes(&chacha20->ctx, chacha20->m_buffer, p, length); > > + p += length; > > + len -= length; > > + chacha20->numbytes += length; > > + if (chacha20->numbytes > CHACHA20_RESEED_BYTES) { > > + mtx_unlock(&chacha20->mtx); > > + chacha20_randomstir(chacha20); > > + mtx_lock(&chacha20->mtx); > > + } > > + } > > + mtx_unlock(&chacha20->mtx); > > } > > > > uint32_t > > @@ -188,6 +191,13 @@ arc4random(void) > > { > > uint32_t ret; > > > > - arc4rand(&ret, sizeof ret, 0); > > + arc4rand(&ret, sizeof(ret), 0); > > return ret; > > } > > + > > +void > > +arc4random_buf(void *ptr, size_t len) > > +{ > > + > > + arc4rand(ptr, len, 0); > > +} > > > > Modified: head/sys/sys/libkern.h > > ============================================================================== > > --- head/sys/sys/libkern.h Sun Apr 16 09:00:10 2017 (r317014) > > +++ head/sys/sys/libkern.h Sun Apr 16 09:11:02 2017 (r317015) > > @@ -117,7 +117,8 @@ extern int arc4rand_iniseed_state; > > /* Prototypes for non-quad routines. */ > > struct malloc_type; > > uint32_t arc4random(void); > > -void arc4rand(void *ptr, u_int len, int reseed); > > +void arc4random_buf(void *, size_t); > > +void arc4rand(void *, u_int, int); > > int bcmp(const void *, const void *, size_t); > > int timingsafe_bcmp(const void *, const void *, size_t); > > void *bsearch(const void *, const void *, size_t, > > > > Modified: head/sys/sys/random.h > > ============================================================================== > > --- head/sys/sys/random.h Sun Apr 16 09:00:10 2017 (r317014) > > +++ head/sys/sys/random.h Sun Apr 16 09:11:02 2017 (r317015) > > @@ -1,5 +1,5 @@ > > /*- > > - * Copyright (c) 2000-2015 Mark R. V. Murray > > + * Copyright (c) 2000-2015, 2017 Mark R. V. Murray > > * All rights reserved. > > * > > * Redistribution and use in source and binary forms, with or without > > @@ -96,6 +96,10 @@ enum random_entropy_source { > > > > #define RANDOM_HARVEST_EVERYTHING_MASK ((1 << (RANDOM_ENVIRONMENTAL_END + 1)) - 1) > > > > +#define RANDOM_LEGACY_BOOT_ENTROPY_MODULE "/boot/entropy" > > +#define RANDOM_CACHED_BOOT_ENTROPY_MODULE "boot_entropy_cache" > > +#define RANDOM_CACHED_SKIP_START 256 > > + > > #if defined(DEV_RANDOM) > > void random_harvest_queue(const void *, u_int, u_int, enum random_entropy_source); > > void random_harvest_fast(const void *, u_int, u_int, enum random_entropy_source); > > > > -- > Mark R V Murray > > > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Apr 16 11:58:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 741EDD411EE; Sun, 16 Apr 2017 11:58:54 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 441F71A4C; Sun, 16 Apr 2017 11:58:54 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czipN-000Pzb-RD; Sun, 16 Apr 2017 12:58:51 +0100 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Mark R V Murray In-Reply-To: <201704161150.v3GBohYF016403@pdx.rh.CN85.dnsmgr.net> Date: Sun, 16 Apr 2017 12:58:49 +0100 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <8814F883-F255-45E4-8FFE-254359B51B38@FreeBSD.org> References: <201704161150.v3GBohYF016403@pdx.rh.CN85.dnsmgr.net> To: rgrimes@freebsd.org X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 11:58:54 -0000 > On 16 Apr 2017, at 12:50, Rodney W. Grimes = wrote: >=20 >> This does not use DES' Chacha20 commit, as I had already completed = the >> testing for it, and received SO@ approval. >>=20 >> DES's commit made Chaha20 a module. This is of no use to = arc4random(9), >> which needs the code to be standard. Also his API is different. >>=20 >> I have no objection to reworking the arc4random/Chacha below to use = DES' >> version of Chacha, but his code needs to be standard library code, >> not an optional module. >>=20 >> Any objections to me doing this? >=20 > Yes >=20 > We need to move towards more modules, not less. Having this standard > does not even allow one to compile a kernel without it. I should be > able to compile a kernel without arc4random(9) and without chacha if > I so desire. And I should be able to load and unload these if I so > desire. This later feature is VERY usefull for developement and > debug cycles. =46rom replacing the rc4 algorithm with chacha20, this chalice has now become poisoned with the job of redesigning the entire structure of kernel random-number generation. This may take a while, and I'm already behind on RNG jobs. > I am sure with careful though we can find a way to allow arc4random > to use a pointer that knows if the chacha code is avaliable, and use > it if so, and if not fall back to something else, or punt with an > error return. Error return is out of the question; arc4random() is pretty fundamental. The alternative is to return no or fake random numbers, which rather misses the point of what this is for. But it can be done. M --=20 Mark R V Murray From owner-svn-src-all@freebsd.org Sun Apr 16 12:07:37 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D692BD41A6E; Sun, 16 Apr 2017 12:07:37 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A1E80329; Sun, 16 Apr 2017 12:07:37 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3GC7aqW016486; Sun, 16 Apr 2017 05:07:36 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3GC7adp016485; Sun, 16 Apr 2017 05:07:36 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704161207.v3GC7adp016485@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys In-Reply-To: <8814F883-F255-45E4-8FFE-254359B51B38@FreeBSD.org> To: Mark R V Murray Date: Sun, 16 Apr 2017 05:07:36 -0700 (PDT) CC: rgrimes@FreeBSD.org, src-committers , svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Reply-To: rgrimes@FreeBSD.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 12:07:37 -0000 > > > On 16 Apr 2017, at 12:50, Rodney W. Grimes wrote: > > > >> This does not use DES' Chacha20 commit, as I had already completed the > >> testing for it, and received SO@ approval. > >> > >> DES's commit made Chaha20 a module. This is of no use to arc4random(9), > >> which needs the code to be standard. Also his API is different. > >> > >> I have no objection to reworking the arc4random/Chacha below to use DES' > >> version of Chacha, but his code needs to be standard library code, > >> not an optional module. > >> > >> Any objections to me doing this? > > > > Yes > > > > We need to move towards more modules, not less. Having this standard > > does not even allow one to compile a kernel without it. I should be > > able to compile a kernel without arc4random(9) and without chacha if > > I so desire. And I should be able to load and unload these if I so > > desire. This later feature is VERY usefull for developement and > > debug cycles. > > >From replacing the rc4 algorithm with chacha20, this chalice has now > become poisoned with the job of redesigning the entire structure of > kernel random-number generation. > > This may take a while, and I'm already behind on RNG jobs. I do not see how this is a complete redesign of RNG, and if it is such a heart ache to change algorithms in this code then it probably should be redesigned? Also you can always compile in a module, you can not compile out a 'standard' file. For now could you just add options chacha #Required by arc4random, do not remove to your kernel and move on? For me this would be an acceptable developement, even releasable, way to proceed while the more complex issue of how to make the kernel RNG use plagable lkm lower layers. > > I am sure with careful though we can find a way to allow arc4random > > to use a pointer that knows if the chacha code is avaliable, and use > > it if so, and if not fall back to something else, or punt with an > > error return. > > Error return is out of the question; arc4random() is pretty fundamental. > The alternative is to return no or fake random numbers, which rather > misses the point of what this is for. But it can be done. Arc4random works today without chacha, why would adding support for chache as an optional loadable function break that? *truely confused* -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Apr 16 12:13:25 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A52ACD41C7D; Sun, 16 Apr 2017 12:13:25 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 753FA9F3; Sun, 16 Apr 2017 12:13:25 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czj3S-000Q0o-Nf; Sun, 16 Apr 2017 13:13:24 +0100 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Mark R V Murray In-Reply-To: <201704161207.v3GC7adp016485@pdx.rh.CN85.dnsmgr.net> Date: Sun, 16 Apr 2017 13:13:22 +0100 Cc: src-committers , svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Content-Transfer-Encoding: quoted-printable Message-Id: <60A59E27-47CD-4552-8265-0E60C09E1966@FreeBSD.org> References: <201704161207.v3GC7adp016485@pdx.rh.CN85.dnsmgr.net> To: rgrimes@FreeBSD.org X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 12:13:25 -0000 > On 16 Apr 2017, at 13:07, Rodney W. Grimes = wrote: >=20 >>> =46rom replacing the rc4 algorithm with chacha20, this chalice has = now >> become poisoned with the job of redesigning the entire structure of >> kernel random-number generation. >>=20 >> This may take a while, and I'm already behind on RNG jobs. >=20 > I do not see how this is a complete redesign of RNG, and if it is > such a heart ache to change algorithms in this code then it probably > should be redesigned? The RC4 algorithm is standard. Making the alogorithm pluggable means = more code, more testing and more time (time which I am rather short of). > Also you can always compile in a module, you can not compile out > a 'standard' file. >=20 > For now could you just add > options chacha #Required by arc4random, do not remove > to your kernel and move on? For me this would be an acceptable > developement, even releasable, way to proceed while the more > complex issue of how to make the kernel RNG use plagable lkm > lower layers. It would have to be unconditionally added to *all* kernels. Could be done, I guess. RC4 has been standard for many years. >>> I am sure with careful though we can find a way to allow arc4random >>> to use a pointer that knows if the chacha code is avaliable, and use >>> it if so, and if not fall back to something else, or punt with an >>> error return. >>=20 >> Error return is out of the question; arc4random() is pretty = fundamental. >> The alternative is to return no or fake random numbers, which rather >> misses the point of what this is for. But it can be done. >=20 > Arc4random works today without chacha, why would adding support for = chache > as an optional loadable function break that? *truely confused* Up until now, arc4random worked with unconditional RC4. M --=20 Mark R V Murray From owner-svn-src-all@freebsd.org Sun Apr 16 06:04:36 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E0EF3D40566; Sun, 16 Apr 2017 06:04:36 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 30A5179; Sun, 16 Apr 2017 06:04:35 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from thor.intern.walstatt.dynvpn.de ([85.179.171.81]) by mail.gmx.com (mrgmx103 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MgKoE-1ceH8O3FPa-00NjfY; Sun, 16 Apr 2017 07:58:50 +0200 Date: Sun, 16 Apr 2017 07:58:48 +0200 From: "O. Hartmann" To: Larry Rosenman Cc: Maxim Sobolev , "O. Hartmann" , Peter Wemm , src-committers , , Hiroki Sato , Hiren Panchasara , , "Ngie Cooper (yaneurabeya)" Subject: Re: svn commit: r316874 - head/sys/kern Message-ID: <20170416075848.1e8276d9@thor.intern.walstatt.dynvpn.de> In-Reply-To: <04DD11C2-A001-49C8-A91F-7B4119CAD16A@lerctr.org> References: <201704141723.v3EHNS3B043902@repo.freebsd.org> <2109294.KVn8xeR1jZ@overcee.wemm.org> <11221477.gRA6BXfcIE@overcee.wemm.org> <5B7F917E-EA2A-4DB4-B032-48BBBEDD7556@lerctr.org> <20170415174533.3dd6349a@thor.intern.walstatt.dynvpn.de> <04DD11C2-A001-49C8-A91F-7B4119CAD16A@lerctr.org> Organization: WALSTATT User-Agent: OutScare 3.1415926 X-Operating-System: ImNotAnOperatingSystem 3.141592527 MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/hifUn5PV7VuBmUo6+jSG6a3"; protocol="application/pgp-signature" X-Provags-ID: V03:K0:tpQar7Wja/ZLNCFF154DenzT9fVitMlp5SkVsV2PDe9iE9YvrnB H74yAdfUZChALClHQwn24XzIy2WyicfYFwKz2h/RFmhXc2XMXOdCKQFrmAq4GFHwYfw7BQu dBPK67y+SViukVIZNkotcJVvkdIAo+23OQgBQKg9WpQeKWeCiuJGn6LE2cKa7uDxTC3PkMU lPoOnefCWp2JO1dnOuciQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:Pk5dAYR+OnI=:tG3EgutISmyfo7ZLxCEiK8 wpjWovvhMs4KYz9sYrPinlcJ5gfbFjAvrPiX02vUFiaC+PScMRNCEBxxUIkbtyjGnA9LGv57r fS0V8lgrF3pCmu3nmiH9Fo+D3ULc5avKDDer04obP8m1oSD4XPg6PQr0EasXXZfF0QsO489V5 XuyRrDu74IXYbBpk3l+GOyf4mFeyQn5WXyRxw4jdMezkNAP9JvWuM5d+pAsnt969raBnU/nZY caI+nprjH0NCtxZj67fzirt2olGom52slu6lvsLkxQx0e2HnYLjdvWOawwAkIdH2UZLkzEgfj d+ucoDwWAmOUbv/KBp+A+nglemiQ+FOnZjUBQiJ0ZprMVFRAFlDWuU1gsY7qUh0Eb2Gos7+9Z f1YIEcp104Vdcu2NMf1qukw9Wm8Zq+SbbFOHCDlI7+YDsSCBeTlmDHIVVvbsRAvNn7xDNUbfr H/ThXWeiggf6Acq4qWleIWBrLC3MQmYAtTf2CTQPHYl9zEe6nf+8SkItX4rRF6lypWbK3qAwR Qe3fTXX8JnmiYjoFHjVAvjPOJpLoHekXRKG4TvlUEQfnlOuUyV2wJLju0lYBBz10TcVdYwWKZ /fSJ/8WJkM9tiOgQO1YPl+CyeIUKvL6mYUlQ/nGCryAu7/XFKg+XarUICEpxQ0WgzlZZN3ju1 ZzYQWct6ujfyo9mXX2MiA7JhF3PVWTs7RKCCfpW9XT1i8zvQI8mfdZa3PmZ+NDw9pAt0qzSUY KAtSyQjEKXvD2zy1p9EwVERkMPv9Q06qldSq+vM4bU8aWiON8EsHhX0FJoc= X-Mailman-Approved-At: Sun, 16 Apr 2017 12:16:10 +0000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 06:04:37 -0000 --Sig_/hifUn5PV7VuBmUo6+jSG6a3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Am Sat, 15 Apr 2017 14:22:57 -0500 Larry Rosenman schrieb: > This looks MUCH better, startup was it=E2=80=99s usual speedy self. >=20 > =20 >=20 > =20 >=20 ... same here with FreeBSD 12.0-CURRENT #23 r316999: Sun Apr 16 07:28:14 CE= ST 2017 amd64. Systems boot as usual again - speedy and reliable. Regards, Oliver --=20 O. Hartmann Ich widerspreche der Nutzung oder =C3=9Cbermittlung meiner Daten f=C3=BCr Werbezwecke oder f=C3=BCr die Markt- oder Meinungsforschung (=C2=A7 28 Abs.= 4 BDSG). --Sig_/hifUn5PV7VuBmUo6+jSG6a3 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iLUEARMKAB0WIQQZVZMzAtwC2T/86TrS528fyFhYlAUCWPMIGAAKCRDS528fyFhY lBW1AgCJ3Zdzu4EV2U96VC9AjEjQLSQhSmh0BW7yhasPMxs0xrx3VndBQeNeGljO TXZzge8Tz7Je25br9NhcrZBBbdNsAf0T+iU5M6WlP177yiN7eelHS/phLKghdi0J F6+QW9V9D5b1tOezJOFFx8p6LqRd9TftEdDmD/vwZDHe98kKjugO =49hn -----END PGP SIGNATURE----- --Sig_/hifUn5PV7VuBmUo6+jSG6a3-- From owner-svn-src-all@freebsd.org Sun Apr 16 12:30:58 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39FEAD3F148; Sun, 16 Apr 2017 12:30:58 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E176F10A7; Sun, 16 Apr 2017 12:30:57 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3GCUulQ016579; Sun, 16 Apr 2017 05:30:56 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3GCUujl016578; Sun, 16 Apr 2017 05:30:56 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704161230.v3GCUujl016578@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys In-Reply-To: <60A59E27-47CD-4552-8265-0E60C09E1966@FreeBSD.org> To: Mark R V Murray Date: Sun, 16 Apr 2017 05:30:56 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 12:30:58 -0000 > > > On 16 Apr 2017, at 13:07, Rodney W. Grimes wrote: > > > >>> From replacing the rc4 algorithm with chacha20, this chalice has now > >> become poisoned with the job of redesigning the entire structure of > >> kernel random-number generation. > >> > >> This may take a while, and I'm already behind on RNG jobs. > > > > I do not see how this is a complete redesign of RNG, and if it is > > such a heart ache to change algorithms in this code then it probably > > should be redesigned? > > The RC4 algorithm is standard. Making the alogorithm pluggable means more > code, more testing and more time (time which I am rather short of). I would rather see a proper implementation later, than a poor design decision today. > > Also you can always compile in a module, you can not compile out > > a 'standard' file. > > > > For now could you just add > > options chacha #Required by arc4random, do not remove > > to your kernel and move on? For me this would be an acceptable > > developement, even releasable, way to proceed while the more > > complex issue of how to make the kernel RNG use plagable lkm > > lower layers. > > It would have to be unconditionally added to *all* kernels. Could be > done, I guess. We dont have that many in base kernel configs do we? > RC4 has been standard for many years. Probably another rapid mode of design rather than a thoughful mode, we have a chance to correct this here, and imho, should. > >>> I am sure with careful though we can find a way to allow arc4random > >>> to use a pointer that knows if the chacha code is avaliable, and use > >>> it if so, and if not fall back to something else, or punt with an > >>> error return. > >> > >> Error return is out of the question; arc4random() is pretty fundamental. > >> The alternative is to return no or fake random numbers, which rather > >> misses the point of what this is for. But it can be done. > > > > Arc4random works today without chacha, why would adding support for chache > > as an optional loadable function break that? *truely confused* > > Up until now, arc4random worked with unconditional RC4. And your wanting to just replace unconditional RC4 for unconditional chacha? Or actuall, aleady did? -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Apr 16 12:45:56 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AE1BD3F5A3; Sun, 16 Apr 2017 12:45:56 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A61E1994; Sun, 16 Apr 2017 12:45:56 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czjYv-00003H-98; Sun, 16 Apr 2017 13:45:54 +0100 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Mark R V Murray In-Reply-To: <201704161230.v3GCUujl016578@pdx.rh.CN85.dnsmgr.net> Date: Sun, 16 Apr 2017 13:45:52 +0100 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201704161230.v3GCUujl016578@pdx.rh.CN85.dnsmgr.net> To: rgrimes@freebsd.org X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 12:45:56 -0000 > On 16 Apr 2017, at 13:30, Rodney W. Grimes = wrote: >=20 >> The RC4 algorithm is standard. Making the alogorithm pluggable means = more >> code, more testing and more time (time which I am rather short of). >=20 > I would rather see a proper implementation later, than a poor design > decision today. I would love to see a perfect solution too. As I don't have the time for = it, I took the time to get a working solution reviewed and pretty heavily = tested. Reviewed by SO@, that is. >>> Also you can always compile in a module, you can not compile out >>> a 'standard' file. >>>=20 >>> For now could you just add >>> options chacha #Required by arc4random, do not remove >>> to your kernel and move on? For me this would be an acceptable >>> developement, even releasable, way to proceed while the more >>> complex issue of how to make the kernel RNG use plagable lkm >>> lower layers. >>=20 >> It would have to be unconditionally added to *all* kernels. Could be >> done, I guess. >=20 > We dont have that many in base kernel configs do we? No. But what about folks' own configs that break all-of-a-sudden? I've been pretty angry n a few occasions when I'm trying to fix my own = problems and I had to waste time sorting out tangential, avoidable problems. What's the difference between making this 'standard' in sys/files/conf and adding a compulsory change to ALL kernel files (apart from the fact that we miss the users' kernel configs)? We can even keep the module stubs in the code. Later, when/if arc4random(9) becomes a = loadable module (I'd *LOVE* to see how we get that right without compromising the RNG early start), we can make it optional. That is a one line change to sys/conf/files. >> RC4 has been standard for many years. > Probably another rapid mode of design rather than a thoughful mode, we > have a chance to correct this here, and imho, should. Fix it, sure. What's wrong with doing that as a next step? Why does this change need to be held to ransom? >> Up until now, arc4random worked with unconditional RC4. >=20 > And your wanting to just replace unconditional RC4 for unconditional = chacha? > Or actuall, aleady did? Correct. Both counts. It was up on Phabricator for weeks, BTW. M --=20 Mark R V Murray From owner-svn-src-all@freebsd.org Sun Apr 16 14:21:48 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9C0AD40471; Sun, 16 Apr 2017 14:21:48 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9D8C2BC6; Sun, 16 Apr 2017 14:21:48 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3GELkpj017001; Sun, 16 Apr 2017 07:21:46 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3GELk3U017000; Sun, 16 Apr 2017 07:21:46 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704161421.v3GELk3U017000@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys In-Reply-To: To: Mark R V Murray Date: Sun, 16 Apr 2017 07:21:46 -0700 (PDT) CC: rgrimes@FreeBSD.org, src-committers , svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Reply-To: rgrimes@FreeBSD.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 14:21:48 -0000 > > On 16 Apr 2017, at 13:30, Rodney W. Grimes wrote: > > > >> The RC4 algorithm is standard. Making the alogorithm pluggable means more > >> code, more testing and more time (time which I am rather short of). > > > > I would rather see a proper implementation later, than a poor design > > decision today. > > I would love to see a perfect solution too. As I don't have the time for it, > I took the time to get a working solution reviewed and pretty heavily tested. > Reviewed by SO@, that is. > > >>> Also you can always compile in a module, you can not compile out > >>> a 'standard' file. > >>> > >>> For now could you just add > >>> options chacha #Required by arc4random, do not remove > >>> to your kernel and move on? For me this would be an acceptable > >>> developement, even releasable, way to proceed while the more > >>> complex issue of how to make the kernel RNG use plagable lkm > >>> lower layers. > >> > >> It would have to be unconditionally added to *all* kernels. Could be > >> done, I guess. > > > > We dont have that many in base kernel configs do we? > > No. But what about folks' own configs that break all-of-a-sudden? I've > been pretty angry n a few occasions when I'm trying to fix my own problems > and I had to waste time sorting out tangential, avoidable problems. Fair point. I have spent the last 4 months dealing with what are the un portability of the human to a new version of FreeBSD due to breakage and changes in the new version, not to mention all the new features that broke old behavior in sometimes very subtle ways. > > What's the difference between making this 'standard' in sys/files/conf > and adding a compulsory change to ALL kernel files (apart from the fact > that we miss the users' kernel configs)? We can even keep the > module stubs in the code. Later, when/if arc4random(9) becomes a loadable > module (I'd *LOVE* to see how we get that right without compromising > the RNG early start), we can make it optional. That is a one line change > to sys/conf/files. Later never seems to happen.... thats why I am trying to push for stopping the later mode of operation and pushing the if we are going to change things we should be changing them in the right and for the better and stop rushing so we can only do it over again later. As far as getting things right at boot time, thats trivial, the module *can* be loaded by the loader afterall, this is not new science. We have similiar with ZFS, you have to load that with your kernel if you are booting with zfs root, correct? > >> RC4 has been standard for many years. > > Probably another rapid mode of design rather than a thoughful mode, we > > have a chance to correct this here, and imho, should. > > Fix it, sure. What's wrong with doing that as a next step? Why does this > change need to be held to ransom? Thats a fair point, let me counter, why do I want this change at all? Is it just the new kid on the block and everyone wants to play with the new toy, or does it bring the users some wonderful star bright feature that they just can not live without? Is arc4random(9) some how fundementaly broken without chacha? Your code in and working now? We just have 2 implementations of chacha, correct? One in your static compiled in kernel section, and one as an LKM? > >> Up until now, arc4random worked with unconditional RC4. > > > > And your wanting to just replace unconditional RC4 for unconditional chacha? > > Or actuall, aleady did? > > Correct. Both counts. It was up on Phabricator for weeks, BTW. We are having what I believe is a very serious disjoint in project communications caused by phabricator. How are the developers notified of new things going up in phabricator? I get bugzilla reports, but I get zip from phabriactor unless I go ask it for stuff. I get #network stuff cause I saw that in a commit that I would of liked to been aware of early and added into that project, but overall I think we need to work on this communcations too. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Apr 16 14:26:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23263D4057B; Sun, 16 Apr 2017 14:26:50 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-wr0-f173.google.com (mail-wr0-f173.google.com [209.85.128.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B594FF0D; Sun, 16 Apr 2017 14:26:49 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-wr0-f173.google.com with SMTP id l28so71895257wre.0; Sun, 16 Apr 2017 07:26:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=9Ksgs0OygMb9MAZWTbagFj2BzrQnVpA+xvHyOyzBviM=; b=NhYrMFc2+6XwwsXbpVzmcYL1mGKBlUfgIAS5qOQh9LRq7E7W6k1yZd2V96Nt6Rqc/N kNwEDYa6+vryIyS1cAZlGpHwuYy7U76Jb/4U8uDx17wKhEu/Z65+MQ7+yuhyNThge0ez /ytVFY1S/gTjxCb6ih02KnkaNC0Rn3CdyMSkpBdFUpLFXJI0w3xBZ3H6JW6YEb7G4xej Q0GSyE/iZZGNdbU1YzuGy88h7a6DkV/PiYO+v1FtdAL9UgbGSXogsf9+XIuNIZvipnWK 1/6dr9wUwIw+yoDbjwV3rjk9M8D4qIQKIAHuQcbqSoUfxQxKNPSkHfxyml09xqSbmh1d rxCA== X-Gm-Message-State: AN3rC/7fDa17tmSE4HJxwBkfttydgZXXtF+5zwTRqmByPe8fpOTwYyyA kb7K+f2lZu1zmPC3RsM= X-Received: by 10.223.153.18 with SMTP id x18mr14748368wrb.55.1492352802123; Sun, 16 Apr 2017 07:26:42 -0700 (PDT) Received: from mail-wm0-f52.google.com (mail-wm0-f52.google.com. [74.125.82.52]) by smtp.gmail.com with ESMTPSA id a10sm10480363wra.17.2017.04.16.07.26.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 16 Apr 2017 07:26:42 -0700 (PDT) Received: by mail-wm0-f52.google.com with SMTP id t189so19729795wmt.1; Sun, 16 Apr 2017 07:26:42 -0700 (PDT) X-Received: by 10.28.130.210 with SMTP id e201mr5558461wmd.128.1492352801866; Sun, 16 Apr 2017 07:26:41 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.80.169.4 with HTTP; Sun, 16 Apr 2017 07:26:41 -0700 (PDT) In-Reply-To: References: <201704160911.v3G9B3df023095@repo.freebsd.org> From: Conrad Meyer Date: Sun, 16 Apr 2017 07:26:41 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys To: Mark R V Murray Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 14:26:50 -0000 On Sun, Apr 16, 2017 at 2:19 AM, Mark R V Murray wrote: > This does not use DES' Chacha20 commit, as I had already completed the > testing for it, and received SO@ approval. > > DES's commit made Chaha20 a module. This is of no use to arc4random(9), > which needs the code to be standard. Also his API is different. > > I have no objection to reworking the arc4random/Chacha below to use DES' > version of Chacha, but his code needs to be standard library code, > not an optional module. > > Any objections to me doing this? Hi Mark, I think you've taken the only sane approach possible here. arc4random cannot be loadable, and it needs a standard cipher. RC4 is undesirable because large parts of its early keystream are predictable and it is anticipated to have other weaknesses. I doubt Chacha comes out to much in the way of object code, and removing RC4 should subsidize even that number. From AMD64: chacha20.ko is 7 kB. Furthermore, I do not believe you should be harangued into rewriting how RNG use works in the kernel just to allow Chacha to be loadable. And if it is "loadable," so what? You can't boot without it; what good does a mandatory loadable module do? So: * I believe you've taken the right approach. But somehow your import of chacha should be reconciled with DES' import (i.e., keep only one copy in the tree). * I don't believe the chacha code being standard is an undue burden. Especially balanced by kicking out RC4. Thanks for doing this work. Best, Conrad From owner-svn-src-all@freebsd.org Sun Apr 16 14:35:07 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D49ED4087F; Sun, 16 Apr 2017 14:35:07 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-wm0-f52.google.com (mail-wm0-f52.google.com [74.125.82.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C007613E1; Sun, 16 Apr 2017 14:35:06 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-wm0-f52.google.com with SMTP id t189so19795290wmt.1; Sun, 16 Apr 2017 07:35:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=B2TE4rt6LN4dYoBSUl675EsqCxU7JuDknvJagLNSqHg=; b=S5HJA1LrVEpQdubACbm4jT04F2X+/frCTSj6SHU288G3J63AYWaPwM5r0vKvzQoo81 QRhmYhBdFTPaUBYe02Xre8Kh1y/C4G0Q3kYDlE0K9kVptaYk7BWAvZ1x8aHMt5mv8NJu 7ZQVzKbSZhrf1V9g9k2b23KRRjVYvL7m50jDbX4nOcAjE0nLlSikjXzaUo4hYrHCp78T k8WunItSdmurzlzAEVHp9XmKYktNsuDlju3N6mt5jiGZEugzR+Gc2mDfFp2ilRmRVOHw Ra3P54/sXKRBLb++ileqQnhobo3O98jQ5e42B0ihxL5gYa0qCVukUmWyO7l0bE6NKpuF F6yw== X-Gm-Message-State: AN3rC/7COCLs9KwP6iQ3/DuMJDgsCJriFKtJsSKAdCXNqnGm3ffcjbWK m4WWaIEdnBbp18TSQqM= X-Received: by 10.28.181.69 with SMTP id e66mr5585659wmf.33.1492353298911; Sun, 16 Apr 2017 07:34:58 -0700 (PDT) Received: from mail-wr0-f171.google.com (mail-wr0-f171.google.com. [209.85.128.171]) by smtp.gmail.com with ESMTPSA id u206sm6644995wmg.20.2017.04.16.07.34.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 16 Apr 2017 07:34:58 -0700 (PDT) Received: by mail-wr0-f171.google.com with SMTP id z109so72052405wrb.1; Sun, 16 Apr 2017 07:34:58 -0700 (PDT) X-Received: by 10.223.181.132 with SMTP id c4mr7223758wre.178.1492353298651; Sun, 16 Apr 2017 07:34:58 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.80.169.4 with HTTP; Sun, 16 Apr 2017 07:34:58 -0700 (PDT) In-Reply-To: References: <201704160911.v3G9B3df023095@repo.freebsd.org> From: Conrad Meyer Date: Sun, 16 Apr 2017 07:34:58 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys To: Mark R V Murray Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 14:35:07 -0000 Furthmore: chacha20.ko: 7 kB GENERIC w/out chacha20: 27095416 GENERIC w/ chacha20: 27097976 device chacha20 adds 2560 *bytes* to the kernel. That's +0.009%. Not worth bikeshedding about. Best, Conrad On Sun, Apr 16, 2017 at 7:26 AM, Conrad Meyer wrote: > On Sun, Apr 16, 2017 at 2:19 AM, Mark R V Murray wrote: >> This does not use DES' Chacha20 commit, as I had already completed the >> testing for it, and received SO@ approval. >> >> DES's commit made Chaha20 a module. This is of no use to arc4random(9), >> which needs the code to be standard. Also his API is different. >> >> I have no objection to reworking the arc4random/Chacha below to use DES' >> version of Chacha, but his code needs to be standard library code, >> not an optional module. >> >> Any objections to me doing this? > > Hi Mark, > > I think you've taken the only sane approach possible here. arc4random > cannot be loadable, and it needs a standard cipher. RC4 is > undesirable because large parts of its early keystream are predictable > and it is anticipated to have other weaknesses. > > I doubt Chacha comes out to much in the way of object code, and > removing RC4 should subsidize even that number. From AMD64: > chacha20.ko is 7 kB. > > Furthermore, I do not believe you should be harangued into rewriting > how RNG use works in the kernel just to allow Chacha to be loadable. > And if it is "loadable," so what? You can't boot without it; what > good does a mandatory loadable module do? > > So: > > * I believe you've taken the right approach. But somehow your import > of chacha should be reconciled with DES' import (i.e., keep only one > copy in the tree). > * I don't believe the chacha code being standard is an undue burden. > Especially balanced by kicking out RC4. > > Thanks for doing this work. > > Best, > Conrad From owner-svn-src-all@freebsd.org Sun Apr 16 14:36:37 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 31634D40945; Sun, 16 Apr 2017 14:36:37 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0065F15B5; Sun, 16 Apr 2017 14:36:36 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czlHx-00008M-Br; Sun, 16 Apr 2017 15:36:34 +0100 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Mark R V Murray In-Reply-To: <201704161421.v3GELk3U017000@pdx.rh.CN85.dnsmgr.net> Date: Sun, 16 Apr 2017 15:36:28 +0100 Cc: src-committers , svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201704161421.v3GELk3U017000@pdx.rh.CN85.dnsmgr.net> To: rgrimes@FreeBSD.org X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 14:36:37 -0000 > On 16 Apr 2017, at 15:21, Rodney W. Grimes = wrote: >>>> RC4 has been standard for many years. >>> Probably another rapid mode of design rather than a thoughful mode, = we >>> have a chance to correct this here, and imho, should. >>=20 >> Fix it, sure. What's wrong with doing that as a next step? Why does = this >> change need to be held to ransom? >=20 > Thats a fair point, let me counter, why do I want this change at all? RC4 is broken cryptographically. FreeBSD was lagging behind in still = using it. > Is it just the new kid on the block and everyone wants to play with = the > new toy, or does it bring the users some wonderful star bright feature > that they just can not live without? Is arc4random(9) some how = fundementaly > broken without chacha? Most folks won't notice a darn thing. Crap random numbers are very often hard to tell apart from good ones, and if you are not depending on them = in a relevant way you won't notice anything. The big deal is that the attack vector for folks counting on (broken) RC4 is now gone. For most FreeBSD users this is theoretical interest = only. > Your code in and working now?=20 Yes. > We just have 2 implementations of chacha, correct? Correct. > One in your static compiled in kernel section, and one as an LKM? Correct. The latter startled me when it arrived. >>>> Up until now, arc4random worked with unconditional RC4. >>>=20 >>> And your wanting to just replace unconditional RC4 for unconditional = chacha? >>> Or actuall, aleady did? >>=20 >> Correct. Both counts. It was up on Phabricator for weeks, BTW. >=20 > We are having what I believe is a very serious disjoint in project = communications > caused by phabricator. How are the developers notified of new things = going > up in phabricator? I get bugzilla reports, but I get zip from = phabriactor unless > I go ask it for stuff. I get #network stuff cause I saw that in a = commit that > I would of liked to been aware of early and added into that project, = but overall > I think we need to work on this communcations too. True. I promised SO@ that I would get all my CSPRNG stuff reviewed in = Phabricator before committing it. All the folks who in the past have cared about my = work now are on the relevant watch-list. Apart from spamming everyone, what do = you suggest? M --=20 Mark R V Murray= From owner-svn-src-all@freebsd.org Sun Apr 16 15:45:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ACD80D4195E for ; Sun, 16 Apr 2017 15:45:13 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm3-vm2.bullet.mail.ne1.yahoo.com (nm3-vm2.bullet.mail.ne1.yahoo.com [98.138.91.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 69B311717 for ; Sun, 16 Apr 2017 15:45:13 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1492357145; bh=X008d3r9vM8Ij5Jg8yGVpEnCd9r10cdj3yCVi0hOMl8=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From:Subject; b=O5sSkBeZcZ6Joa6RRTfiP0U8RqWGT/BSd8bKVr5qOSmksQA+CAMLVJXVc12C3xRLmlRWXOc2Jr6CiZEuYewij6jNN+ChE+Bz9FDmPsq7ealnowR9pSxc5YXMrGUzUggBFfmYH7+y2Qcm8MrYKGF5WTmprfs1zjC4K9G21QtzXJXfQoFBqm3gvsdWDVbOtgv3Azn/LIY6Xs2ocjwxDmmg/j63EO8chQqLHRBZXNk0O0zeCcTFTg9MxkDqKWk+1rxx68GF8xWwQgyJwC4T66deVQrNkH/BZgOkLWthgU23YqE2RawqLSMQmXAbie9+GO7e9ESig6lgV8gSt/ma+gC+gA== Received: from [98.138.100.118] by nm3.bullet.mail.ne1.yahoo.com with NNFMP; 16 Apr 2017 15:39:05 -0000 Received: from [98.138.226.58] by tm109.bullet.mail.ne1.yahoo.com with NNFMP; 16 Apr 2017 15:39:05 -0000 Received: from [127.0.0.1] by smtp209.mail.ne1.yahoo.com with NNFMP; 16 Apr 2017 15:39:05 -0000 X-Yahoo-Newman-Id: 509997.86581.bm@smtp209.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: 4o47AJwVM1kfsZUloGBLKQ92J2HC8OCyYsSQY8CE_nyQeoJ _erDlPWQtH_VLBe46CYilj25juTIe49_0bXIInAM.MZyQW20UAlzSx0LfoWz lvWwHGJex9C.mr7fnxVlKNzlyBzexymCt7cDFo7zpSYDKzEP1uRAjHQr2VDO qjhmkVf0gb7.aLiZNavYvnQzN5Wn.aJqAAa98ANp8wI1PeeAdayDSEQSSyMt dKqJ_Yp6m5tWq879ZU5d2_4K9q8yhCzEJ9QpE3zD6._itBr0Xccvfod1brFv TWN4p.4T.fyxLxvMO2bllWMU3tXIUaiUqdyOfkbI7ApKDh68e4YCeGEFglBb tiLktWcaiL82wZAAC4kFg8uOweFeCZA48UZYVAaZOYI5AHBF7PM4f1GitN4a HwK4fCZApIx8BXhtcELgDZv9exWKur7Vyx4fJHtPfMeeiHaCFvU5C1ViIcdY UNOPuOUjz68eLVI7eR45VDAQTxV9OsnbEyJcdPAyrlMeGpAEY6jX9BPYpMuu aMss9YfgIcjRqyQ3S6ONpvNhcDdCXh2i1RnAE2NtKF_yH X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys To: cem@freebsd.org, Mark R V Murray Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201704160911.v3G9B3df023095@repo.freebsd.org> From: Pedro Giffuni Organization: FreeBSD Message-ID: Date: Sun, 16 Apr 2017 10:36:51 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 15:45:13 -0000 On 04/16/17 09:26, Conrad Meyer wrote: > On Sun, Apr 16, 2017 at 2:19 AM, Mark R V Murray wrote: >> This does not use DES' Chacha20 commit, as I had already completed the >> testing for it, and received SO@ approval. >> >> DES's commit made Chaha20 a module. This is of no use to arc4random(9), >> which needs the code to be standard. Also his API is different. >> >> I have no objection to reworking the arc4random/Chacha below to use DES' >> version of Chacha, but his code needs to be standard library code, >> not an optional module. >> >> Any objections to me doing this? > Hi Mark, > > I think you've taken the only sane approach possible here. arc4random > cannot be loadable, and it needs a standard cipher. RC4 is > undesirable because large parts of its early keystream are predictable > and it is anticipated to have other weaknesses. > > I doubt Chacha comes out to much in the way of object code, and > removing RC4 should subsidize even that number. From AMD64: > chacha20.ko is 7 kB. > > Furthermore, I do not believe you should be harangued into rewriting > how RNG use works in the kernel just to allow Chacha to be loadable. > And if it is "loadable," so what? You can't boot without it; what > good does a mandatory loadable module do? FWIW, I would think the major advantage of making Chacha a module would be making us cipher-agnostic. The end user doesn't need to know what cypher is being used. It would still be mandatory to use *a* cypher and chacha20 would be the default. This said, I am fine with markm's approach and, not that it matters, in most "sane" jurisdictions Public Domain is less restricted than 3-Clause BSD. Pedro. From owner-svn-src-all@freebsd.org Sun Apr 16 16:01:30 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 144CCD41EA1; Sun, 16 Apr 2017 16:01:30 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CA55F1E00; Sun, 16 Apr 2017 16:01: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 v3GG1Scn096020; Sun, 16 Apr 2017 16:01:28 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG1QIx096002; Sun, 16 Apr 2017 16:01:26 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161601.v3GG1QIx096002@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:01:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317017 - in vendor/llvm/dist: . bindings/go/llvm cmake cmake/modules cmake/platforms docs docs/CommandGuide docs/Proposals docs/TableGen docs/tutorial examples/BrainF examples/Fibonacc... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:01:30 -0000 Author: dim Date: Sun Apr 16 16:01:22 2017 New Revision: 317017 URL: https://svnweb.freebsd.org/changeset/base/317017 Log: Vendor import of llvm trunk r300422: https://llvm.org/svn/llvm-project/llvm/trunk@300422 Added: vendor/llvm/dist/docs/XRayExample.rst vendor/llvm/dist/include/llvm/ADT/BreadthFirstIterator.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/MemorySSA.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/MemorySSAUpdater.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/ObjectUtils.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/ExecutionDepsFix.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/LiveRegUnits.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Formatters.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeServerHandler.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFAttribute.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/EnumTables.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/Formatters.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/Hash.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/HashTable.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/InfoStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModInfoBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeSession.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBFile.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PublicsStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/RawConstants.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/RawError.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/RawTypes.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/StringTable.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/StringTableBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/SymbolStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/TpiHashing.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/TpiStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/UDTLayout.h (contents, props changed) vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCAsmInfoWasm.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCSectionWasm.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCSymbolWasm.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCWasmObjectWriter.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCWasmStreamer.h (contents, props changed) vendor/llvm/dist/include/llvm/Object/IRSymtab.h (contents, props changed) vendor/llvm/dist/include/llvm/ObjectYAML/DWARFEmitter.h (contents, props changed) vendor/llvm/dist/include/llvm/ObjectYAML/WasmYAML.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/ARMAttributeParser.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/BinaryByteStream.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/BinaryItemStream.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/BinaryStream.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/BinaryStreamArray.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/BinaryStreamError.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/BinaryStreamReader.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/BinaryStreamRef.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/BinaryStreamWriter.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/CMakeLists.txt (contents, props changed) vendor/llvm/dist/include/llvm/Support/DebugCounter.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/LowLevelTypeImpl.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/WasmRelocs/ vendor/llvm/dist/include/llvm/Support/WasmRelocs/WebAssembly.def vendor/llvm/dist/include/llvm/Target/GlobalISel/ vendor/llvm/dist/include/llvm/Target/GlobalISel/RegisterBank.td vendor/llvm/dist/include/llvm/Target/GlobalISel/SelectionDAGCompat.td vendor/llvm/dist/include/llvm/Target/GlobalISel/Target.td vendor/llvm/dist/include/llvm/Transforms/IPO/ArgumentPromotion.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopLoadElimination.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopPredication.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopSink.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/LowerMemIntrinsics.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/PredicateInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/VNCoercion.h (contents, props changed) vendor/llvm/dist/include/llvm/XRay/Graph.h (contents, props changed) vendor/llvm/dist/include/llvm/XRay/InstrumentationMap.h (contents, props changed) vendor/llvm/dist/lib/Analysis/MemorySSA.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/MemorySSAUpdater.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/BranchCoalescing.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/FEntryInserter.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/LiveRegUnits.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/MachineOutliner.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/Formatters.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolSerializer.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/ vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/EnumTables.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/GSI.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/GSI.h (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/GlobalsStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/Hash.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/HashTable.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/InfoStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModInfo.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModInfoBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeSession.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBFile.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBTypeServerHandler.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/PublicsStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/RawError.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/StringTable.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/StringTableBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/SymbolStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiHashing.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/UDTLayout.cpp (contents, props changed) vendor/llvm/dist/lib/ExecutionEngine/Orc/RPCUtils.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerExtFunctionsDlsymWin.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerExtraCounters.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerShmem.h (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerShmemPosix.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerShmemWindows.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/BadStrcmpTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/BogusInitializeTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/CustomCrossOverAndMutateTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/CxxStringEqTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/EquivalenceATest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/EquivalenceBTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/LargeTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/Memcmp64BytesTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/NotinstrumentedTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SingleByteInputTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/TableLookupTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/TwoDifferentBugsTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/bad-strcmp.test vendor/llvm/dist/lib/Fuzzer/test/cxxstring.test vendor/llvm/dist/lib/Fuzzer/test/disable-leaks.test vendor/llvm/dist/lib/Fuzzer/test/equivalence-signals.test vendor/llvm/dist/lib/Fuzzer/test/equivalence.test vendor/llvm/dist/lib/Fuzzer/test/extra-counters.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-customcrossoverandmutate.test vendor/llvm/dist/lib/Fuzzer/test/merge-posix.test vendor/llvm/dist/lib/Fuzzer/test/merge-summary.test vendor/llvm/dist/lib/Fuzzer/test/minimize_two_crashes.test vendor/llvm/dist/lib/Fuzzer/test/trace-malloc-2.test vendor/llvm/dist/lib/Fuzzer/test/trace-pc.test vendor/llvm/dist/lib/Fuzzer/test/trace-pc/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/MC/MCAsmInfoWasm.cpp (contents, props changed) vendor/llvm/dist/lib/MC/MCSectionWasm.cpp (contents, props changed) vendor/llvm/dist/lib/MC/MCWasmObjectTargetWriter.cpp (contents, props changed) vendor/llvm/dist/lib/MC/MCWasmStreamer.cpp (contents, props changed) vendor/llvm/dist/lib/MC/WasmObjectWriter.cpp (contents, props changed) vendor/llvm/dist/lib/Object/IRSymtab.cpp (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/DWARFEmitter.cpp (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/DWARFVisitor.cpp (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/DWARFVisitor.h (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/WasmYAML.cpp (contents, props changed) vendor/llvm/dist/lib/Support/ARMAttributeParser.cpp (contents, props changed) vendor/llvm/dist/lib/Support/BinaryStreamError.cpp (contents, props changed) vendor/llvm/dist/lib/Support/BinaryStreamReader.cpp (contents, props changed) vendor/llvm/dist/lib/Support/BinaryStreamWriter.cpp (contents, props changed) vendor/llvm/dist/lib/Support/DebugCounter.cpp (contents, props changed) vendor/llvm/dist/lib/Support/LowLevelType.cpp (contents, props changed) vendor/llvm/dist/lib/Support/Unix/Threading.inc (contents, props changed) vendor/llvm/dist/lib/Support/Windows/Threading.inc (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64MacroFusion.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64MacroFusion.h (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBanks.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedFalkorDetails.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedFalkorWriteRes.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedThunderX.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedThunderX2T99.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstructionSelector.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULegalizerInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterBanks.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/GCNIterativeScheduler.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/GCNIterativeScheduler.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/GCNMinRegStrategy.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/GCNRegPressure.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/GCNRegPressure.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadata.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/SIFixVGPRCopies.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/SIInsertWaitcnts.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/SIPeepholeSDWA.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/VOP3PInstructions.td vendor/llvm/dist/lib/Target/ARM/ARMRegisterBanks.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepArch.h (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonDepArch.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepDecoders.h (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonDepITypes.h (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonDepITypes.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepInstrFormats.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepInstrInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepMappings.td vendor/llvm/dist/lib/Target/Hexagon/HexagonDepOperands.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIICHVX.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIICScalar.td vendor/llvm/dist/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonMapAsm2IntrinV62.gen.td vendor/llvm/dist/lib/Target/Hexagon/HexagonPseudo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV62.td vendor/llvm/dist/lib/Target/Hexagon/RDFRegisters.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/RDFRegisters.h (contents, props changed) vendor/llvm/dist/lib/Target/PowerPC/PPCExpandISEL.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyFixupKinds.h (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86GenRegisterBankInfo.def vendor/llvm/dist/lib/Target/X86/X86InstructionSelector.cpp (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86LegalizerInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86LegalizerInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86MacroFusion.cpp (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86MacroFusion.h (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86RegisterBankInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86RegisterBankInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86RegisterBanks.td vendor/llvm/dist/lib/Transforms/Scalar/InferAddressSpaces.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Scalar/LoopPredication.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/LowerMemIntrinsics.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/PredicateInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/VNCoercion.cpp (contents, props changed) vendor/llvm/dist/lib/XRay/InstrumentationMap.cpp (contents, props changed) vendor/llvm/dist/test/Analysis/BasicAA/call-attrs.ll vendor/llvm/dist/test/Analysis/ConstantFolding/gep-constanfolding-error.ll vendor/llvm/dist/test/Analysis/ConstantFolding/timeout.ll vendor/llvm/dist/test/Analysis/CostModel/PowerPC/unaligned_ld_st.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/ vendor/llvm/dist/test/Analysis/CostModel/SystemZ/cmp-ext.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/cmpsel.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/ext-load.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/fp-arith.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/fp-cast.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/int-arith.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/int-cast.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/intrinsic-cost-crash.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/lit.local.cfg vendor/llvm/dist/test/Analysis/CostModel/SystemZ/load_store.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/logical.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/memop-folding-int-arith.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/scalar-cmp-cmp-log-sel.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/shuffle.ll vendor/llvm/dist/test/Analysis/CostModel/SystemZ/vectorinstrs.ll vendor/llvm/dist/test/Analysis/DemandedBits/intrinsics.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/intrinsics.ll vendor/llvm/dist/test/Analysis/IVUsers/ vendor/llvm/dist/test/Analysis/IVUsers/quadradic-exit-value.ll vendor/llvm/dist/test/Analysis/LazyValueAnalysis/ vendor/llvm/dist/test/Analysis/LazyValueAnalysis/invalidation.ll vendor/llvm/dist/test/Analysis/LazyValueAnalysis/lvi-after-jumpthreading.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/pr31098.ll vendor/llvm/dist/test/Analysis/MemorySSA/ vendor/llvm/dist/test/Analysis/MemorySSA/assume.ll vendor/llvm/dist/test/Analysis/MemorySSA/atomic-clobber.ll vendor/llvm/dist/test/Analysis/MemorySSA/basicaa-memcpy.ll vendor/llvm/dist/test/Analysis/MemorySSA/constant-memory.ll vendor/llvm/dist/test/Analysis/MemorySSA/cyclicphi.ll vendor/llvm/dist/test/Analysis/MemorySSA/forward-unreachable.ll vendor/llvm/dist/test/Analysis/MemorySSA/function-clobber.ll vendor/llvm/dist/test/Analysis/MemorySSA/function-mem-attrs.ll vendor/llvm/dist/test/Analysis/MemorySSA/invariant-groups.ll vendor/llvm/dist/test/Analysis/MemorySSA/lifetime-simple.ll vendor/llvm/dist/test/Analysis/MemorySSA/load-invariant.ll vendor/llvm/dist/test/Analysis/MemorySSA/many-dom-backedge.ll vendor/llvm/dist/test/Analysis/MemorySSA/many-doms.ll vendor/llvm/dist/test/Analysis/MemorySSA/multi-edges.ll vendor/llvm/dist/test/Analysis/MemorySSA/multiple-backedges-hal.ll vendor/llvm/dist/test/Analysis/MemorySSA/multiple-locations.ll vendor/llvm/dist/test/Analysis/MemorySSA/no-disconnected.ll vendor/llvm/dist/test/Analysis/MemorySSA/optimize-use.ll vendor/llvm/dist/test/Analysis/MemorySSA/phi-translation.ll vendor/llvm/dist/test/Analysis/MemorySSA/pr28880.ll vendor/llvm/dist/test/Analysis/MemorySSA/ptr-const-mem.ll vendor/llvm/dist/test/Analysis/MemorySSA/volatile-clobber.ll vendor/llvm/dist/test/Analysis/RegionInfo/outgoing_edge.ll vendor/llvm/dist/test/Analysis/RegionInfo/outgoing_edge_1.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/implied-via-addition.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/implied-via-division.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/max-addops-inline.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/pr18606-min-zeros.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/sext-mul.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/sext-zero.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/tripmultiple_calculation.ll vendor/llvm/dist/test/Assembler/alloca-addrspace-parse-error-0.ll vendor/llvm/dist/test/Assembler/alloca-addrspace-parse-error-1.ll vendor/llvm/dist/test/Assembler/alloca-addrspace0.ll vendor/llvm/dist/test/Assembler/auto_upgrade_nvvm_intrinsics.ll vendor/llvm/dist/test/Assembler/datalayout-alloca-addrspace-mismatch-0.ll vendor/llvm/dist/test/Assembler/datalayout-alloca-addrspace-mismatch-1.ll vendor/llvm/dist/test/Assembler/datalayout-alloca-addrspace-mismatch-2.ll vendor/llvm/dist/test/Assembler/datalayout-alloca-addrspace.ll vendor/llvm/dist/test/Assembler/invalid-datalayout-alloca-addrspace.ll vendor/llvm/dist/test/Bitcode/DIGlobalVariableExpression2.ll vendor/llvm/dist/test/Bitcode/DIGlobalVariableExpression2.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/compatibility-4.0.ll vendor/llvm/dist/test/Bitcode/compatibility-4.0.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/thinlto-type-vcalls.ll vendor/llvm/dist/test/Bitcode/upgrade-debug-info-for-profiling.ll vendor/llvm/dist/test/Bitcode/upgrade-debug-info-for-profiling.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/upgrade-pointer-address-space.ll vendor/llvm/dist/test/Bitcode/upgrade-pointer-address-space.ll.bc (contents, props changed) vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-callingconv-ios.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/debug-insts.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/dynamic-alloca.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/gisel-fail-intermediate-legalizer.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/inline-asm.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/irtranslator-bitcast.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-exceptions.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-fneg.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-fptoi.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-inserts.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-nonpowerof2eltsvec.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-vaarg.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/no-regclass.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/regbankselect-dbg-value.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/regbankselect-reg_sequence.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-binop.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-bitcast.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-br.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-cbz.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-constant.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-dbg-value.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-fp-casts.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-int-ext.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-int-ptr-casts.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-load.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-muladd.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-property.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-store.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-trunc.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-xor.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/varargs-ios-translator.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/vastart.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-codegen-prepare-atp.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-fold-lslfast.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-named-reg-w18.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-named-reg-x18.ll vendor/llvm/dist/test/CodeGen/AArch64/and-sink.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-opt-remarks-lazy-bfi.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-spill-remarks.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-summary-remarks.ll vendor/llvm/dist/test/CodeGen/AArch64/br-cond-not-merge.ll vendor/llvm/dist/test/CodeGen/AArch64/dag-numsignbits.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-tail-call.ll vendor/llvm/dist/test/CodeGen/AArch64/ldst-opt-aa.mir vendor/llvm/dist/test/CodeGen/AArch64/live-interval-analysis.mir vendor/llvm/dist/test/CodeGen/AArch64/load-combine-big-endian.ll vendor/llvm/dist/test/CodeGen/AArch64/load-combine.ll vendor/llvm/dist/test/CodeGen/AArch64/machine-copy-remove.mir vendor/llvm/dist/test/CodeGen/AArch64/machine-outliner.ll vendor/llvm/dist/test/CodeGen/AArch64/misched-fusion-aes.ll vendor/llvm/dist/test/CodeGen/AArch64/misched-fusion-lit.ll vendor/llvm/dist/test/CodeGen/AArch64/neon-fma-FMF.ll vendor/llvm/dist/test/CodeGen/AArch64/pr27816.ll vendor/llvm/dist/test/CodeGen/AArch64/prefixdata.ll vendor/llvm/dist/test/CodeGen/AArch64/selectiondag-order.ll vendor/llvm/dist/test/CodeGen/AArch64/tailcall-string-rvo.ll vendor/llvm/dist/test/CodeGen/AArch64/thread-pointer.ll vendor/llvm/dist/test/CodeGen/AArch64/xray-tail-call-sled.ll vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-flat.mir vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-smrd.mir vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/inst-select-store-flat.mir vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/regbankselect.mir vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/shader-epilogs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add.v2i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/addrspacecast-captured.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll vendor/llvm/dist/test/CodeGen/AMDGPU/any_extend_vector_inreg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ashr.v2i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/barrier-elimination.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bfe-patterns.ll vendor/llvm/dist/test/CodeGen/AMDGPU/clamp-modifier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/clamp-omod-special-case.mir vendor/llvm/dist/test/CodeGen/AMDGPU/clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/code-object-metadata-deduce-ro-arg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/code-object-metadata-from-llvm-ir-full.ll vendor/llvm/dist/test/CodeGen/AMDGPU/code-object-metadata-invalid-ocl-version-1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/code-object-metadata-invalid-ocl-version-2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/code-object-metadata-invalid-ocl-version-3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/code-object-metadata-kernel-code-props.ll vendor/llvm/dist/test/CodeGen/AMDGPU/code-object-metadata-kernel-debug-props.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds-combine-large-stride.ll vendor/llvm/dist/test/CodeGen/AMDGPU/early-if-convert-cost.ll vendor/llvm/dist/test/CodeGen/AMDGPU/early-if-convert.ll vendor/llvm/dist/test/CodeGen/AMDGPU/early-inline-alias.ll vendor/llvm/dist/test/CodeGen/AMDGPU/early-inline.ll vendor/llvm/dist/test/CodeGen/AMDGPU/enable-no-signed-zeros-fp-math.ll vendor/llvm/dist/test/CodeGen/AMDGPU/env-amdgiz.ll vendor/llvm/dist/test/CodeGen/AMDGPU/env-amdgizcl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcopysign.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fix-vgpr-copies.mir vendor/llvm/dist/test/CodeGen/AMDGPU/fmin_fmax_legacy.amdgcn.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmuladd.v2f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fold-cndmask.mir vendor/llvm/dist/test/CodeGen/AMDGPU/fold-immediate-output-mods.mir vendor/llvm/dist/test/CodeGen/AMDGPU/illegal-sgpr-to-vgpr-copy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/immv216.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inlineasm-packed.ll vendor/llvm/dist/test/CodeGen/AMDGPU/insert-skips-kill-uncond.mir vendor/llvm/dist/test/CodeGen/AMDGPU/insert-waits-callee.mir vendor/llvm/dist/test/CodeGen/AMDGPU/insert_vector_elt.v2i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/internalize.ll vendor/llvm/dist/test/CodeGen/AMDGPU/limit-coalesce.mir vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pkrtz.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.exp.compr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.exp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fmed3.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fmed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sbfe.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sendmsg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ubfe.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.cube.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lower-mem-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lshr.v2i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/multi-divergent-exit-region.ll vendor/llvm/dist/test/CodeGen/AMDGPU/nested-loop-conditions.ll vendor/llvm/dist/test/CodeGen/AMDGPU/nop-data.ll vendor/llvm/dist/test/CodeGen/AMDGPU/nullptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/omod.ll vendor/llvm/dist/test/CodeGen/AMDGPU/pack.v2f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/pack.v2i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/partial-sgpr-to-vgpr-spills.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600.alu-limits.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600.amdgpu-alias-analysis.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600.global_atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/regcoalesce-dbg.mir vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-regpressure-limit.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-regpressure-limit2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-regpressure.mir vendor/llvm/dist/test/CodeGen/AMDGPU/sdwa-peephole.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc-fneg-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sgprcopies.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl.v2i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-annotate-cf-unreachable.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sminmax.v2i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/spill-cfg-position.ll vendor/llvm/dist/test/CodeGen/AMDGPU/splitkit.mir vendor/llvm/dist/test/CodeGen/AMDGPU/sub.v2i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/subreg_interference.mir vendor/llvm/dist/test/CodeGen/AMDGPU/vectorize-global-local.ll vendor/llvm/dist/test/CodeGen/AMDGPU/zext-lid.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-isel-fp.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-legalize-fp.mir vendor/llvm/dist/test/CodeGen/ARM/arg-copy-elide.ll vendor/llvm/dist/test/CodeGen/ARM/bool-ext-inc.ll vendor/llvm/dist/test/CodeGen/ARM/cmp1-peephole-thumb.mir vendor/llvm/dist/test/CodeGen/ARM/cmp2-peephole-thumb.mir vendor/llvm/dist/test/CodeGen/ARM/fp-only-sp.ll vendor/llvm/dist/test/CodeGen/ARM/fpscr-intrinsics.ll vendor/llvm/dist/test/CodeGen/ARM/illegal-bitfield-loadstore.ll vendor/llvm/dist/test/CodeGen/ARM/ldm-stm-i256.ll vendor/llvm/dist/test/CodeGen/ARM/load-combine-big-endian.ll vendor/llvm/dist/test/CodeGen/ARM/load-combine.ll vendor/llvm/dist/test/CodeGen/ARM/lowerMUL-newload.ll vendor/llvm/dist/test/CodeGen/ARM/misched-fp-basic.ll vendor/llvm/dist/test/CodeGen/ARM/misched-int-basic-thumb2.mir vendor/llvm/dist/test/CodeGen/ARM/misched-int-basic.mir vendor/llvm/dist/test/CodeGen/ARM/no-cmov2bfi.ll vendor/llvm/dist/test/CodeGen/ARM/pr32545.ll vendor/llvm/dist/test/CodeGen/ARM/prera-ldst-aliasing.mir vendor/llvm/dist/test/CodeGen/ARM/prera-ldst-insertpt.mir vendor/llvm/dist/test/CodeGen/ARM/select_const.ll vendor/llvm/dist/test/CodeGen/ARM/setcc-logic.ll vendor/llvm/dist/test/CodeGen/ARM/single-issue-r52.mir vendor/llvm/dist/test/CodeGen/ARM/sjljeh-swifterror.ll vendor/llvm/dist/test/CodeGen/ARM/thumb1-div.ll vendor/llvm/dist/test/CodeGen/ARM/unschedule-first-call.ll vendor/llvm/dist/test/CodeGen/ARM/v6-jumptable-clobber.mir vendor/llvm/dist/test/CodeGen/ARM/v8m-tail-call.ll vendor/llvm/dist/test/CodeGen/ARM/v8m.base-jumptable_alignment.ll vendor/llvm/dist/test/CodeGen/ARM/vcmp-crash.ll vendor/llvm/dist/test/CodeGen/ARM/vldm-liveness.mir vendor/llvm/dist/test/CodeGen/AVR/intrinsics/stacksave-restore.ll vendor/llvm/dist/test/CodeGen/AVR/no-print-operand-twice.ll vendor/llvm/dist/test/CodeGen/BPF/mem_offset.ll vendor/llvm/dist/test/CodeGen/BPF/warn-call.ll vendor/llvm/dist/test/CodeGen/BPF/warn-stack.ll vendor/llvm/dist/test/CodeGen/Generic/pr24662.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-bitsplit-at.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-bitsplit-src.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-bitsplit.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-ext-sat.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-extract-off.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-extract.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-has.ll vendor/llvm/dist/test/CodeGen/Hexagon/bitmanip.ll vendor/llvm/dist/test/CodeGen/Hexagon/builtin-expect.ll vendor/llvm/dist/test/CodeGen/Hexagon/convert-to-dot-old.ll vendor/llvm/dist/test/CodeGen/Hexagon/early-if-merge-loop.ll vendor/llvm/dist/test/CodeGen/Hexagon/early-if-vecpred.ll vendor/llvm/dist/test/CodeGen/Hexagon/expand-condsets-dead-bad.ll vendor/llvm/dist/test/CodeGen/Hexagon/expand-condsets-dead-pred.ll vendor/llvm/dist/test/CodeGen/Hexagon/expand-vstorerw-undef2.ll vendor/llvm/dist/test/CodeGen/Hexagon/find-loop-instr.ll vendor/llvm/dist/test/CodeGen/Hexagon/ifcvt-simple-bprob.ll vendor/llvm/dist/test/CodeGen/Hexagon/inline-asm-vecpred128.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/byte-store-double.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/byte-store.ll vendor/llvm/dist/test/CodeGen/Hexagon/isel-exti1.ll vendor/llvm/dist/test/CodeGen/Hexagon/isel-i1arg-crash.ll vendor/llvm/dist/test/CodeGen/Hexagon/isel-op-zext-i1.ll vendor/llvm/dist/test/CodeGen/Hexagon/loop-idiom/ vendor/llvm/dist/test/CodeGen/Hexagon/loop-idiom/hexagon-memmove1.ll vendor/llvm/dist/test/CodeGen/Hexagon/loop-idiom/hexagon-memmove2.ll vendor/llvm/dist/test/CodeGen/Hexagon/loop-idiom/lcssa.ll vendor/llvm/dist/test/CodeGen/Hexagon/loop-idiom/nullptr-crash.ll vendor/llvm/dist/test/CodeGen/Hexagon/loop-idiom/pmpy-infinite-loop.ll vendor/llvm/dist/test/CodeGen/Hexagon/loop-idiom/pmpy-mod.ll vendor/llvm/dist/test/CodeGen/Hexagon/loop-idiom/pmpy.ll vendor/llvm/dist/test/CodeGen/Hexagon/newvaluejump3.ll vendor/llvm/dist/test/CodeGen/Hexagon/readcyclecounter.ll vendor/llvm/dist/test/CodeGen/Hexagon/regalloc-block-overlap.ll vendor/llvm/dist/test/CodeGen/Hexagon/swp-stages4.ll vendor/llvm/dist/test/CodeGen/Hexagon/swp-stages5.ll vendor/llvm/dist/test/CodeGen/Hexagon/undo-dag-shift.ll vendor/llvm/dist/test/CodeGen/MIR/AArch64/atomic-memoperands.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/register-operand-bank.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-body.mir vendor/llvm/dist/test/CodeGen/MIR/X86/dynamic-regmask.ll vendor/llvm/dist/test/CodeGen/MIR/X86/register-operand-class-invalid0.mir vendor/llvm/dist/test/CodeGen/MIR/X86/register-operand-class-invalid1.mir vendor/llvm/dist/test/CodeGen/MIR/X86/register-operand-class.mir vendor/llvm/dist/test/CodeGen/MSP430/struct-return.ll vendor/llvm/dist/test/CodeGen/Mips/cins.ll vendor/llvm/dist/test/CodeGen/Mips/compactbranches/empty-block.mir vendor/llvm/dist/test/CodeGen/Mips/dext.ll vendor/llvm/dist/test/CodeGen/Mips/msa/bmzi_bmnzi.ll vendor/llvm/dist/test/CodeGen/Mips/xray-mips-attribute-instrumentation.ll vendor/llvm/dist/test/CodeGen/Mips/xray-section-group.ll vendor/llvm/dist/test/CodeGen/NVPTX/f16-instructions.ll vendor/llvm/dist/test/CodeGen/NVPTX/f16x2-instructions.ll vendor/llvm/dist/test/CodeGen/NVPTX/fcos-no-fast-math.ll vendor/llvm/dist/test/CodeGen/NVPTX/fsin-no-fast-math.ll vendor/llvm/dist/test/CodeGen/NVPTX/global-variable-big.ll vendor/llvm/dist/test/CodeGen/NVPTX/idioms.ll vendor/llvm/dist/test/CodeGen/NVPTX/named-barriers.ll vendor/llvm/dist/test/CodeGen/NVPTX/param-load-store.ll vendor/llvm/dist/test/CodeGen/NVPTX/sqrt-approx.ll vendor/llvm/dist/test/CodeGen/PowerPC/addegluecrash.ll vendor/llvm/dist/test/CodeGen/PowerPC/atomics-regression.ll vendor/llvm/dist/test/CodeGen/PowerPC/branch_coalesce.ll vendor/llvm/dist/test/CodeGen/PowerPC/ctrloop-i128.ll vendor/llvm/dist/test/CodeGen/PowerPC/expand-contiguous-isel.ll vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel-1.mir vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel-2.mir vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel-3.mir vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel-4.mir vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel-5.mir vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel-6.mir vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel-7.mir vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel-8.mir vendor/llvm/dist/test/CodeGen/PowerPC/expand-isel.ll vendor/llvm/dist/test/CodeGen/PowerPC/fma-aggr-FMF.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr32063.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr32140.ll vendor/llvm/dist/test/CodeGen/PowerPC/pristine-and-livein.mir vendor/llvm/dist/test/CodeGen/PowerPC/select_const.ll vendor/llvm/dist/test/CodeGen/PowerPC/setcc-logic.ll vendor/llvm/dist/test/CodeGen/PowerPC/sjlj_no0x.ll vendor/llvm/dist/test/CodeGen/PowerPC/stacksize.ll vendor/llvm/dist/test/CodeGen/PowerPC/subtract_from_imm.ll vendor/llvm/dist/test/CodeGen/PowerPC/tail-dup-break-cfg.ll vendor/llvm/dist/test/CodeGen/SPARC/register-clobber.ll vendor/llvm/dist/test/CodeGen/SystemZ/DAGCombine_trunc_extract.ll vendor/llvm/dist/test/CodeGen/SystemZ/DAGCombiner_illegal_BUILD_VECTOR.ll vendor/llvm/dist/test/CodeGen/SystemZ/expand-zext-pseudo.ll vendor/llvm/dist/test/CodeGen/SystemZ/extract-vector-elt-zEC12.ll vendor/llvm/dist/test/CodeGen/SystemZ/fold-memory-op-impl.ll vendor/llvm/dist/test/CodeGen/SystemZ/locr-legal-regclass.ll vendor/llvm/dist/test/CodeGen/SystemZ/pr32372.ll vendor/llvm/dist/test/CodeGen/SystemZ/pr32505.ll vendor/llvm/dist/test/CodeGen/SystemZ/splitMove_undefReg_mverifier.ll vendor/llvm/dist/test/CodeGen/SystemZ/undef-flag.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-cmp-cmp-logic-select.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-cmpsel.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-sext.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-trunc-to-i1.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-zext.ll vendor/llvm/dist/test/CodeGen/SystemZ/vectorizer-output-3xi32.ll vendor/llvm/dist/test/CodeGen/Thumb/remove-unneeded-push-pop.ll vendor/llvm/dist/test/CodeGen/Thumb/stm-deprecated.ll vendor/llvm/dist/test/CodeGen/Thumb/tbb-reuse.mir vendor/llvm/dist/test/CodeGen/Thumb2/intrinsics-coprocessor.ll vendor/llvm/dist/test/CodeGen/Thumb2/tbb-removeadd.mir vendor/llvm/dist/test/CodeGen/WebAssembly/f16.ll vendor/llvm/dist/test/CodeGen/X86/DynamicCalleeSavedRegisters.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/X86-regbankselect.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/binop-isel.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/constant.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/frameIndex-instructionselect.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/frameIndex.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/irtranslator-callingconv_64bit.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/legalize-add.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/legalize-const.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/legalize-sub.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/memop-isel.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-constant.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/x86_64-instructionselect.mir vendor/llvm/dist/test/CodeGen/X86/absolute-cmp.ll vendor/llvm/dist/test/CodeGen/X86/and-sink.ll vendor/llvm/dist/test/CodeGen/X86/arg-copy-elide.ll vendor/llvm/dist/test/CodeGen/X86/avx-cvt-3.ll vendor/llvm/dist/test/CodeGen/X86/avx512-adc-sbb.ll vendor/llvm/dist/test/CodeGen/X86/avx512-insert-extract_i1.ll vendor/llvm/dist/test/CodeGen/X86/avx512-memfold.ll vendor/llvm/dist/test/CodeGen/X86/avx512cd-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512cdvl-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/bool-ext-inc.ll vendor/llvm/dist/test/CodeGen/X86/branchfolding-debugloc.ll vendor/llvm/dist/test/CodeGen/X86/clflushopt.ll vendor/llvm/dist/test/CodeGen/X86/clzero.ll vendor/llvm/dist/test/CodeGen/X86/combine-abs.ll vendor/llvm/dist/test/CodeGen/X86/commute-3dnow.ll vendor/llvm/dist/test/CodeGen/X86/complex-fastmath.ll vendor/llvm/dist/test/CodeGen/X86/conditional-tailcall.ll vendor/llvm/dist/test/CodeGen/X86/div-rem-simplify.ll vendor/llvm/dist/test/CodeGen/X86/dropped_constructor.ll vendor/llvm/dist/test/CodeGen/X86/dwarf-headers.ll vendor/llvm/dist/test/CodeGen/X86/elf-associated.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-abort-warm.ll vendor/llvm/dist/test/CodeGen/X86/fentry-insertion.ll vendor/llvm/dist/test/CodeGen/X86/file-source-filename.ll vendor/llvm/dist/test/CodeGen/X86/fp-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/huge-stack-offset2.ll vendor/llvm/dist/test/CodeGen/X86/illegal-bitfield-loadstore.ll vendor/llvm/dist/test/CodeGen/X86/inline-asm-A-constraint.ll vendor/llvm/dist/test/CodeGen/X86/known-signbits-vector.ll vendor/llvm/dist/test/CodeGen/X86/lea-opt-with-debug.mir vendor/llvm/dist/test/CodeGen/X86/load-combine.ll vendor/llvm/dist/test/CodeGen/X86/machine-outliner-debuginfo.ll vendor/llvm/dist/test/CodeGen/X86/machine-outliner-tailcalls.ll vendor/llvm/dist/test/CodeGen/X86/machine-outliner.ll vendor/llvm/dist/test/CodeGen/X86/machine-region-info.mir vendor/llvm/dist/test/CodeGen/X86/madd.ll vendor/llvm/dist/test/CodeGen/X86/mempcpy-32.ll vendor/llvm/dist/test/CodeGen/X86/merge_store_duplicated_loads.ll vendor/llvm/dist/test/CodeGen/X86/mmx-cvt.ll vendor/llvm/dist/test/CodeGen/X86/mul-constant-i16.ll vendor/llvm/dist/test/CodeGen/X86/mul-constant-i32.ll vendor/llvm/dist/test/CodeGen/X86/mul-constant-i64.ll vendor/llvm/dist/test/CodeGen/X86/overflow.ll vendor/llvm/dist/test/CodeGen/X86/pr18344.ll vendor/llvm/dist/test/CodeGen/X86/pr22338.ll vendor/llvm/dist/test/CodeGen/X86/pr30562.ll vendor/llvm/dist/test/CodeGen/X86/pr31773.ll vendor/llvm/dist/test/CodeGen/X86/pr32108.ll vendor/llvm/dist/test/CodeGen/X86/pr32241.ll vendor/llvm/dist/test/CodeGen/X86/pr32256.ll vendor/llvm/dist/test/CodeGen/X86/pr32278.ll vendor/llvm/dist/test/CodeGen/X86/pr32284.ll vendor/llvm/dist/test/CodeGen/X86/pr32329.ll vendor/llvm/dist/test/CodeGen/X86/pr32340.ll vendor/llvm/dist/test/CodeGen/X86/pr32345.ll vendor/llvm/dist/test/CodeGen/X86/pr32420.ll vendor/llvm/dist/test/CodeGen/X86/pr32451.ll vendor/llvm/dist/test/CodeGen/X86/pr32484.ll vendor/llvm/dist/test/CodeGen/X86/pr32588.ll vendor/llvm/dist/test/CodeGen/X86/pre-coalesce-2.ll vendor/llvm/dist/test/CodeGen/X86/pre-coalesce.ll vendor/llvm/dist/test/CodeGen/X86/pre-coalesce.mir vendor/llvm/dist/test/CodeGen/X86/recip-pic.ll vendor/llvm/dist/test/CodeGen/X86/regparm.ll vendor/llvm/dist/test/CodeGen/X86/sad_variations.ll vendor/llvm/dist/test/CodeGen/X86/selectiondag-order.ll vendor/llvm/dist/test/CodeGen/X86/setcc-logic.ll vendor/llvm/dist/test/CodeGen/X86/setcc-wide-types.ll vendor/llvm/dist/test/CodeGen/X86/shuffle-combine-crash-2.ll vendor/llvm/dist/test/CodeGen/X86/shuffle-of-splat-multiuses.ll vendor/llvm/dist/test/CodeGen/X86/split-extend-vector-inreg.ll vendor/llvm/dist/test/CodeGen/X86/sse-intrinsics-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/sse42-intrinsics-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-bmi.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-bmi2.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-sha.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-tbm.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-remarks.ll vendor/llvm/dist/test/CodeGen/X86/tail-call-conditional.mir vendor/llvm/dist/test/CodeGen/X86/tail-dup-debugloc.ll vendor/llvm/dist/test/CodeGen/X86/tail-dup-no-other-successor.ll vendor/llvm/dist/test/CodeGen/X86/tail-merge-debugloc.ll vendor/llvm/dist/test/CodeGen/X86/tail-merge-identical.ll vendor/llvm/dist/test/CodeGen/X86/update-terminator-debugloc.ll vendor/llvm/dist/test/CodeGen/X86/vector-compare-all_of.ll vendor/llvm/dist/test/CodeGen/X86/vector-compare-any_of.ll vendor/llvm/dist/test/CodeGen/X86/vector-extend-inreg.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-sse41.ll vendor/llvm/dist/test/CodeGen/X86/vselect-pcmp.ll vendor/llvm/dist/test/CodeGen/X86/win64_eh_leaf2.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-intrcc-nosse.ll vendor/llvm/dist/test/CodeGen/X86/xop-ifma.ll vendor/llvm/dist/test/CodeGen/X86/xor-combine-debugloc.ll vendor/llvm/dist/test/CodeGen/X86/xray-log-args.ll vendor/llvm/dist/test/CodeGen/XCore/section-name.ll vendor/llvm/dist/test/DebugInfo/AArch64/asan-stack-vars.ll vendor/llvm/dist/test/DebugInfo/AMDGPU/ vendor/llvm/dist/test/DebugInfo/AMDGPU/lit.local.cfg vendor/llvm/dist/test/DebugInfo/AMDGPU/pointer-address-space-dwarf-v1.ll vendor/llvm/dist/test/DebugInfo/AMDGPU/pointer-address-space.ll vendor/llvm/dist/test/DebugInfo/AMDGPU/variable-locations-dwarf-v1.ll vendor/llvm/dist/test/DebugInfo/AMDGPU/variable-locations.ll vendor/llvm/dist/test/DebugInfo/COFF/array-odr-violation.ll vendor/llvm/dist/test/DebugInfo/Generic/debuginfofinder-inlined-cu.ll vendor/llvm/dist/test/DebugInfo/Generic/gmlt_profiling.ll vendor/llvm/dist/test/DebugInfo/Generic/invalid.ll vendor/llvm/dist/test/DebugInfo/Generic/store-tail-merge.ll vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-header.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-header.s (contents, props changed) vendor/llvm/dist/test/DebugInfo/MIR/ARM/split-superreg-complex.mir vendor/llvm/dist/test/DebugInfo/MIR/X86/live-debug-values-spill.mir vendor/llvm/dist/test/DebugInfo/PDB/Inputs/longname-truncation.yaml vendor/llvm/dist/test/DebugInfo/PDB/Inputs/one-symbol.yaml vendor/llvm/dist/test/DebugInfo/PDB/Native/ vendor/llvm/dist/test/DebugInfo/PDB/Native/pdb-native-compilands.test vendor/llvm/dist/test/DebugInfo/PDB/Native/pdb-native-summary.test vendor/llvm/dist/test/DebugInfo/PDB/pdb-longname-truncation.test vendor/llvm/dist/test/DebugInfo/PDB/pdb-minimal-construct.test vendor/llvm/dist/test/DebugInfo/PDB/pdb-yaml-types.test vendor/llvm/dist/test/DebugInfo/X86/dbg-abstract-vars-g-gmlt.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-g-gmlt.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-producer-with-flags.ll vendor/llvm/dist/test/DebugInfo/X86/debug_and_nodebug_CUs.ll vendor/llvm/dist/test/DebugInfo/X86/default-subrange-array.ll vendor/llvm/dist/test/DebugInfo/X86/gnu-public-names-tu.ll vendor/llvm/dist/test/DebugInfo/X86/single-fi.ll vendor/llvm/dist/test/DebugInfo/dwarfdump-header.test vendor/llvm/dist/test/DebugInfo/strip-loop-metadata.ll vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_PIC_relocations.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF_x86-64_none.yaml vendor/llvm/dist/test/Feature/fp-intrinsics.ll vendor/llvm/dist/test/FileCheck/regex-scope.txt (contents, props changed) vendor/llvm/dist/test/Instrumentation/AddressSanitizer/ps4.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/alloca.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/csr.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/trace-pc-guard-comdat.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/trace-pc-guard-nocomdat.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/wineh.ll vendor/llvm/dist/test/LTO/Resolution/X86/Inputs/link-odr-availextern-ae.ll vendor/llvm/dist/test/LTO/Resolution/X86/Inputs/link-odr-availextern-odr.ll vendor/llvm/dist/test/LTO/Resolution/X86/asm-output.ll vendor/llvm/dist/test/LTO/Resolution/X86/diagnostic-handler-remarks-with-hotness.ll vendor/llvm/dist/test/LTO/Resolution/X86/diagnostic-handler-remarks.ll vendor/llvm/dist/test/LTO/Resolution/X86/link-odr-availextern.ll vendor/llvm/dist/test/LTO/Resolution/X86/lowertypetests.ll vendor/llvm/dist/test/LTO/Resolution/X86/symtab-elf.ll vendor/llvm/dist/test/LTO/Resolution/X86/symtab.ll vendor/llvm/dist/test/LTO/X86/strip-debug-info-no-call-loc.ll vendor/llvm/dist/test/LTO/X86/symver-asm2.ll vendor/llvm/dist/test/Linker/Inputs/linkage.d.ll vendor/llvm/dist/test/MC/AArch64/armv8.1a-lse.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/nofp-crypto-diagnostic.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/code-object-metadata-kernel-args.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/code-object-metadata-kernel-attrs.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/code-object-metadata-kernel-code-props.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/code-object-metadata-kernel-debug-props.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/code-object-metadata-unknown-key.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/gfx7_asm_all.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/gfx8_asm_all.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/literalv216-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/literalv216.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/sop2-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/sopp-gfx9.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop1-gfx9-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop1-gfx9.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop3-gfx9.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop3-modifiers-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop3-modifiers.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop3p-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop3p.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/ vendor/llvm/dist/test/MC/ARM/Inputs/1.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/2.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/3.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/4.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/5.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/6.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/7.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/attr.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/Inputs/ident.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/branch-disassemble.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/inline-asm-diags.ll vendor/llvm/dist/test/MC/ARM/inline-asm-srcloc.ll vendor/llvm/dist/test/MC/ARM/invalid-special-reg.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/lsl-zero-errors.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/lsl-zero.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/mappingsymbols.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/negative-immediates-fail.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/negative-immediates-thumb1-fail.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/negative-immediates-thumb1.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/negative-immediates.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/quad-relocation.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/thumb-mov.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/unpred-control-flow-in-it-block.s (contents, props changed) vendor/llvm/dist/test/MC/AsmParser/macro-duplicate-params-names-err.s (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/aperture-regs.ll vendor/llvm/dist/test/MC/Disassembler/AMDGPU/gfx8_dasm_all.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/mac.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/si-support.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/vop1_gfx9.txt (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-metadata-err1.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-metadata-err2.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-metadata-err3.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-metadata-err4.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-numeric-invalid-type.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-numeric-type.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-sym-err.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-sym-err2.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/bug20416.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/common-redeclare.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/dcfetch-symbol.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/decode_acc_type.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/equ.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/ext-callt-rel.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/extended_relocations.ll vendor/llvm/dist/test/MC/Hexagon/extender.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/load-GPRel.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/missing_label.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/non-relocatable.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/not-over.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/not_found.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/offset.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/operand-range.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/parse-pound-hi.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/reg_altnames.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/store-GPRel.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/two-extenders.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v62_all.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v62_jumps.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v62a.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v62a_regs.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/bopt-directive.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/elf-debug-section.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/end-directive.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips64-instalias-imm-expanding.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mul-macro-variants.s (contents, props changed) vendor/llvm/dist/test/MC/WebAssembly/ vendor/llvm/dist/test/MC/WebAssembly/file-headers.ll vendor/llvm/dist/test/MC/WebAssembly/lit.local.cfg vendor/llvm/dist/test/MC/X86/abs8.s (contents, props changed) vendor/llvm/dist/test/MC/X86/data-prefix-fail.s (contents, props changed) vendor/llvm/dist/test/MC/X86/data-prefix16.s (contents, props changed) vendor/llvm/dist/test/MC/X86/data-prefix32.s (contents, props changed) vendor/llvm/dist/test/MC/X86/data-prefix64.s (contents, props changed) vendor/llvm/dist/test/MC/X86/line-table-sections.s (contents, props changed) vendor/llvm/dist/test/Object/AMDGPU/elf-definitions.yaml vendor/llvm/dist/test/Object/Inputs/invalid-reloc.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-invalid-note (contents, props changed) vendor/llvm/dist/test/Object/Inputs/solaris-nosymbols.yaml vendor/llvm/dist/test/Object/archive-pad.test vendor/llvm/dist/test/Object/obj2yaml-invalid-reloc.test vendor/llvm/dist/test/ObjectYAML/MachO/DWARF2-AddrSize8-FormValues.yaml vendor/llvm/dist/test/ObjectYAML/MachO/DWARF5-abbrevValues.yaml vendor/llvm/dist/test/ObjectYAML/MachO/DWARF5-debug_info.yaml vendor/llvm/dist/test/ObjectYAML/MachO/build_version_command.yaml vendor/llvm/dist/test/ObjectYAML/wasm/ vendor/llvm/dist/test/ObjectYAML/wasm/code_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/custom_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/data_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/elem_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/export_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/function_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/global_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/header.yaml vendor/llvm/dist/test/ObjectYAML/wasm/header_invalid_version.yaml vendor/llvm/dist/test/ObjectYAML/wasm/import_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/memory_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/start_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/table_section.yaml vendor/llvm/dist/test/ObjectYAML/wasm/type_section.yaml vendor/llvm/dist/test/Other/Inputs/glob-input vendor/llvm/dist/test/Other/debugcounter-newgvn.ll vendor/llvm/dist/test/Other/debugcounter-predicateinfo.ll vendor/llvm/dist/test/Other/invariant.group.barrier.ll vendor/llvm/dist/test/Other/lit-globbing.ll vendor/llvm/dist/test/Other/loop-pm-invalidation.ll vendor/llvm/dist/test/Other/new-pm-defaults.ll vendor/llvm/dist/test/Other/new-pm-lto-defaults.ll vendor/llvm/dist/test/Other/optimization-remarks-invalidation.ll vendor/llvm/dist/test/Other/optimization-remarks-lazy-bfi.ll vendor/llvm/dist/test/Other/writing-to-stdout.ll vendor/llvm/dist/test/TableGen/GlobalISelEmitter.td vendor/llvm/dist/test/TableGen/RegisterBankEmitter.td vendor/llvm/dist/test/ThinLTO/X86/Inputs/cache-import-lists1.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/cache-import-lists2.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/cache-typeid-resolutions-import.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/cache-typeid-resolutions1.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/cache-typeid-resolutions2.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/cache-typeid-resolutions3.ll vendor/llvm/dist/test/ThinLTO/X86/cache-import-lists.ll vendor/llvm/dist/test/ThinLTO/X86/cache-typeid-resolutions.ll vendor/llvm/dist/test/ThinLTO/X86/error-newpm.ll vendor/llvm/dist/test/ThinLTO/X86/tli-nobuiltin.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/memcpy-discriminator.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/profile.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/NVPTX/bypass-slow-div-special-cases.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/computedgoto.ll vendor/llvm/dist/test/Transforms/ConstantHoisting/X86/ehpad.ll vendor/llvm/dist/test/Transforms/ConstantMerge/merge-dbg.ll vendor/llvm/dist/test/Transforms/Coroutines/coro-frame.ll vendor/llvm/dist/test/Transforms/Coroutines/coro-spill-after-phi.ll vendor/llvm/dist/test/Transforms/Coroutines/coro-split-eh.ll vendor/llvm/dist/test/Transforms/DeadArgElim/call_profile.ll vendor/llvm/dist/test/Transforms/EarlyCSE/readnone-mayunwind.ll vendor/llvm/dist/test/Transforms/FunctionImport/unnamed-globals.ll vendor/llvm/dist/test/Transforms/GVN/debugloc.ll vendor/llvm/dist/test/Transforms/GVNHoist/hoist-inline.ll vendor/llvm/dist/test/Transforms/GVNHoist/hoist-pr31891.ll vendor/llvm/dist/test/Transforms/GVNHoist/hoist-very-busy.ll vendor/llvm/dist/test/Transforms/GVNHoist/ld_hoist1.ll vendor/llvm/dist/test/Transforms/GVNHoist/ld_hoist_st_sink.ll vendor/llvm/dist/test/Transforms/GlobalDCE/crash-assertingvh.ll vendor/llvm/dist/test/Transforms/IRCE/bad-loop-structure.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr32045.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/replace-sdiv-by-udiv.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/ vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/ vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/basic.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/icmp.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/infer-address-space.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/intrinsics.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/mem-intrinsics.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/old-pass-regressions.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/select.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/volatile.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/NVPTX/ vendor/llvm/dist/test/Transforms/InferAddressSpaces/NVPTX/bug31948.ll vendor/llvm/dist/test/Transforms/InferAddressSpaces/NVPTX/lit.local.cfg vendor/llvm/dist/test/Transforms/Inline/AArch64/ vendor/llvm/dist/test/Transforms/Inline/AArch64/gep-cost.ll vendor/llvm/dist/test/Transforms/Inline/AArch64/lit.local.cfg vendor/llvm/dist/test/Transforms/Inline/arg-attr-propagation.ll vendor/llvm/dist/test/Transforms/Inline/bfi-update.ll vendor/llvm/dist/test/Transforms/Inline/cgscc-incremental-invalidate.ll vendor/llvm/dist/test/Transforms/Inline/clear-analyses.ll vendor/llvm/dist/test/Transforms/Inline/function-count-update-2.ll vendor/llvm/dist/test/Transforms/Inline/function-count-update-3.ll vendor/llvm/dist/test/Transforms/Inline/function-count-update.ll vendor/llvm/dist/test/Transforms/Inline/inline-cold-callsite.ll vendor/llvm/dist/test/Transforms/Inline/inline-hot-callsite-2.ll vendor/llvm/dist/test/Transforms/Inline/internal-scc-members.ll vendor/llvm/dist/test/Transforms/Inline/last-call-bonus.ll vendor/llvm/dist/test/Transforms/Inline/monster_scc.ll vendor/llvm/dist/test/Transforms/Inline/prof-update.ll vendor/llvm/dist/test/Transforms/InstCombine/X86FsubCmpCombine.ll vendor/llvm/dist/test/Transforms/InstCombine/amdgcn-demanded-vector-elts.ll vendor/llvm/dist/test/Transforms/InstCombine/bitreverse-known-bits.ll vendor/llvm/dist/test/Transforms/InstCombine/call-guard.ll vendor/llvm/dist/test/Transforms/InstCombine/cast-call-combine-prof.ll vendor/llvm/dist/test/Transforms/InstCombine/consecutive-fences.ll vendor/llvm/dist/test/Transforms/InstCombine/debuginfo-dce.ll vendor/llvm/dist/test/Transforms/InstCombine/element-atomic-memcpy-to-loads.ll vendor/llvm/dist/test/Transforms/InstCombine/fabs-libcall.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp-add.ll vendor/llvm/dist/test/Transforms/InstCombine/lshr.ll vendor/llvm/dist/test/Transforms/InstCombine/memcpy-addrspace.ll vendor/llvm/dist/test/Transforms/InstCombine/nvvm-intrins.ll vendor/llvm/dist/test/Transforms/InstCombine/phi-select-constant.ll vendor/llvm/dist/test/Transforms/InstCombine/pr31990_wrong_memcpy.ll vendor/llvm/dist/test/Transforms/InstCombine/prefetch-load.ll vendor/llvm/dist/test/Transforms/InstCombine/preserved-analyses.ll vendor/llvm/dist/test/Transforms/InstCombine/readnone-maythrow.ll vendor/llvm/dist/test/Transforms/InstCombine/shufflevec-bitcast.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-pack.ll vendor/llvm/dist/test/Transforms/InstCombine/zext-phi.ll vendor/llvm/dist/test/Transforms/InstSimplify/addsub.ll vendor/llvm/dist/test/Transforms/InstSimplify/bitreverse.ll vendor/llvm/dist/test/Transforms/InstSimplify/mul.ll vendor/llvm/dist/test/Transforms/InstSimplify/shufflevector.ll vendor/llvm/dist/test/Transforms/JumpThreading/guards.ll vendor/llvm/dist/test/Transforms/LICM/hoist-fast-fdiv.ll vendor/llvm/dist/test/Transforms/LICM/pr32129.ll vendor/llvm/dist/test/Transforms/LICM/scalar-promote-unwind.ll vendor/llvm/dist/test/Transforms/LICM/scalar-promote.ll vendor/llvm/dist/test/Transforms/LICM/unrolled-deeply-nested.ll vendor/llvm/dist/test/Transforms/LoadCombine/deadcode.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/X86/load-width.ll vendor/llvm/dist/test/Transforms/LoopDeletion/invalidation.ll vendor/llvm/dist/test/Transforms/LoopPredication/ vendor/llvm/dist/test/Transforms/LoopPredication/basic.ll vendor/llvm/dist/test/Transforms/LoopPredication/nested.ll vendor/llvm/dist/test/Transforms/LoopPredication/visited.ll vendor/llvm/dist/test/Transforms/LoopRotate/phi-dbgvalue.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/atomics.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/different-addrspace-crash.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/canonical.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/incorrect-offset-scaling.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/lsr-insns-1.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/lsr-insns-2.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/nested-loop.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/sibling-loops.ll vendor/llvm/dist/test/Transforms/LoopUnroll/AMDGPU/unroll-for-private.ll vendor/llvm/dist/test/Transforms/LoopUnroll/epilog_const_phi.ll vendor/llvm/dist/test/Transforms/LoopUnroll/peel-loop-irreducible.ll vendor/llvm/dist/test/Transforms/LoopUnroll/peel-loop-not-forced.ll vendor/llvm/dist/test/Transforms/LoopUnroll/peel-loop2.ll vendor/llvm/dist/test/Transforms/LoopUnroll/pr31718.ll vendor/llvm/dist/test/Transforms/LoopUnroll/revisit.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/AMDGPU/ vendor/llvm/dist/test/Transforms/LoopUnswitch/AMDGPU/divergent-unswitch.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Transforms/LoopUnswitch/simplify-with-nonvalness.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/induction-trunc.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/interleaved-vs-scalar.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/pr31900.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/smallest-and-widest-types.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AMDGPU/ vendor/llvm/dist/test/Transforms/LoopVectorize/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Transforms/LoopVectorize/AMDGPU/unroll-in-loop-vectorizer.ll vendor/llvm/dist/test/Transforms/LoopVectorize/SystemZ/ vendor/llvm/dist/test/Transforms/LoopVectorize/SystemZ/branch-for-predicated-block.ll vendor/llvm/dist/test/Transforms/LoopVectorize/SystemZ/lit.local.cfg vendor/llvm/dist/test/Transforms/LoopVectorize/SystemZ/load-store-scalarization-cost.ll vendor/llvm/dist/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/gather-vs-interleave.ll vendor/llvm/dist/test/Transforms/LoopVectorize/discriminator.ll vendor/llvm/dist/test/Transforms/LoopVectorize/first-order-recurrence.ll vendor/llvm/dist/test/Transforms/LoopVectorize/loop-scalars.ll vendor/llvm/dist/test/Transforms/LoopVectorize/partial-lcssa.ll vendor/llvm/dist/test/Transforms/LoopVectorize/pr31098.ll vendor/llvm/dist/test/Transforms/LoopVectorize/unroll-novec-memcheck-metadata.ll vendor/llvm/dist/test/Transforms/LoopVectorize/vector-geps.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/Inputs/import.yaml vendor/llvm/dist/test/Transforms/LowerTypeTests/Inputs/use-typeid1-typeid2.yaml vendor/llvm/dist/test/Transforms/LowerTypeTests/export-allones.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/export-bytearray.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/export-inline.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/export-single.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/external-global.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/import.ll vendor/llvm/dist/test/Transforms/Mem2Reg/preserve-nonnull-load-metadata.ll vendor/llvm/dist/test/Transforms/MergeFunc/mergefunc-preserve-debug-info.ll vendor/llvm/dist/test/Transforms/NewGVN/condprop-xfail.ll vendor/llvm/dist/test/Transforms/NewGVN/deadstore.ll vendor/llvm/dist/test/Transforms/NewGVN/debugloc.ll vendor/llvm/dist/test/Transforms/NewGVN/loadforward.ll vendor/llvm/dist/test/Transforms/NewGVN/phi-edge-handling.ll vendor/llvm/dist/test/Transforms/NewGVN/pr31758.ll vendor/llvm/dist/test/Transforms/NewGVN/pr32403.ll vendor/llvm/dist/test/Transforms/NewGVN/pr32607.ll vendor/llvm/dist/test/Transforms/NewGVN/predicates.ll vendor/llvm/dist/test/Transforms/NewGVN/refine-stores.ll vendor/llvm/dist/test/Transforms/NewGVN/rle.ll vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/memop_size_annotation.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/thinlto_samplepgo_icp.ll vendor/llvm/dist/test/Transforms/PGOProfile/memcpy.ll vendor/llvm/dist/test/Transforms/PGOProfile/memop_size_annotation.ll vendor/llvm/dist/test/Transforms/PGOProfile/memop_size_opt.ll vendor/llvm/dist/test/Transforms/PGOProfile/thinlto_samplepgo_icp.ll vendor/llvm/dist/test/Transforms/SCCP/indirectbr.ll vendor/llvm/dist/test/Transforms/SCCP/overdefined-div.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/SystemZ/ vendor/llvm/dist/test/Transforms/SLPVectorizer/SystemZ/SLP-cmp-cost-query.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/blending-shuffle.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/extractelement.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/store-jumbled.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll vendor/llvm/dist/test/Transforms/SROA/alloca-address-space.ll vendor/llvm/dist/test/Transforms/SROA/preserve-nonnull.ll vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/import.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/indirect-call.afdo (contents, props changed) vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/indirect-call.prof vendor/llvm/dist/test/Transforms/SampleProfile/import.ll vendor/llvm/dist/test/Transforms/SampleProfile/indirect-call-gcc.ll vendor/llvm/dist/test/Transforms/SampleProfile/indirect-call.ll vendor/llvm/dist/test/Transforms/Scalarizer/vector-gep.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/critedge-assume.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/div-rem-pairs.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/remove-debug-2.ll vendor/llvm/dist/test/Transforms/ThinLTOBitcodeWriter/circular-reference.ll vendor/llvm/dist/test/Transforms/ThinLTOBitcodeWriter/comdat.ll vendor/llvm/dist/test/Transforms/ThinLTOBitcodeWriter/filter-alias.ll vendor/llvm/dist/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll vendor/llvm/dist/test/Transforms/ThinLTOBitcodeWriter/split-vfunc.ll vendor/llvm/dist/test/Transforms/Util/PredicateInfo/ vendor/llvm/dist/test/Transforms/Util/PredicateInfo/condprop.ll vendor/llvm/dist/test/Transforms/Util/PredicateInfo/diamond.ll vendor/llvm/dist/test/Transforms/Util/PredicateInfo/edge.ll vendor/llvm/dist/test/Transforms/Util/PredicateInfo/testandor.ll vendor/llvm/dist/test/Transforms/Util/clone-dicompileunit.ll vendor/llvm/dist/test/Transforms/Util/strip-nonlinetable-debuginfo-loops.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/ vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/export.yaml vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/import-indir.yaml vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/import-single-impl.yaml vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/import-uniform-ret-val.yaml vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/import-unique-ret-val0.yaml vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/import-unique-ret-val1.yaml vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/import-vcp.yaml vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-nothing.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-single-impl.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-uniform-ret-val.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-unique-ret-val.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-unsuccessful-checked.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-vcp.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/import-indir.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/import.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-decl.ll vendor/llvm/dist/test/Verifier/amdgpu-cc.ll vendor/llvm/dist/test/Verifier/dbg-line-without-file.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-atomic-type.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-const-type.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-friend.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-inheritance.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-member.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-ptr-to-member-type.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-restrict-type.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-rvalue-reference-type.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-typedef.ll vendor/llvm/dist/test/Verifier/diderivedtype-address-space-volatile-type.ll vendor/llvm/dist/test/Verifier/diexpression-swap.ll vendor/llvm/dist/test/Verifier/fnarg-debuginfo.ll vendor/llvm/dist/test/Verifier/fnarg-nodebug.ll vendor/llvm/dist/test/Verifier/fp-intrinsics.ll vendor/llvm/dist/test/tools/dsymutil/X86/generate-empty-CU.test vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto_weak_library1.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto_weak_library2.ll vendor/llvm/dist/test/tools/gold/X86/error-unopenable.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_object_suffix_replace.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_weak_library.ll vendor/llvm/dist/test/tools/llvm-ar/Inputs/absolute-paths.lib (contents, props changed) vendor/llvm/dist/test/tools/llvm-ar/absolute-paths.test vendor/llvm/dist/test/tools/llvm-config/paths.test vendor/llvm/dist/test/tools/llvm-cov/Inputs/multiple-files2.covmapping (contents, props changed) vendor/llvm/dist/test/tools/llvm-cxxfilt/coff-import.test vendor/llvm/dist/test/tools/llvm-cxxfilt/types.test vendor/llvm/dist/test/tools/llvm-cxxfilt/underscore.test vendor/llvm/dist/test/tools/llvm-extract/ vendor/llvm/dist/test/tools/llvm-extract/recursive.ll vendor/llvm/dist/test/tools/llvm-nm/ARM/ vendor/llvm/dist/test/tools/llvm-nm/ARM/Inputs/ vendor/llvm/dist/test/tools/llvm-nm/ARM/Inputs/print-size.macho-armv7m (contents, props changed) vendor/llvm/dist/test/tools/llvm-nm/ARM/lit.local.cfg vendor/llvm/dist/test/tools/llvm-nm/ARM/macho-print-size.test vendor/llvm/dist/test/tools/llvm-nm/wasm/ vendor/llvm/dist/test/tools/llvm-nm/wasm/exports.yaml vendor/llvm/dist/test/tools/llvm-nm/wasm/imports.yaml vendor/llvm/dist/test/tools/llvm-objdump/AArch64/Inputs/print-armv8crypto.obj.macho-aarch64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/AArch64/mach-print-armv8crypto.test vendor/llvm/dist/test/tools/llvm-objdump/AMDGPU/ vendor/llvm/dist/test/tools/llvm-objdump/AMDGPU/Inputs/ vendor/llvm/dist/test/tools/llvm-objdump/AMDGPU/Inputs/source-lines.cl vendor/llvm/dist/test/tools/llvm-objdump/AMDGPU/lit.local.cfg vendor/llvm/dist/test/tools/llvm-objdump/AMDGPU/source-lines.ll vendor/llvm/dist/test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test vendor/llvm/dist/test/tools/llvm-objdump/ARM/v5t-subarch.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v5te-subarch.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v5tej-subarch.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v6-neg-subfeatures.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v6-subarch.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v6-subfeatures.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v6k-subarch.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v6m-subarch.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v6t2-subarch.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v7a-neg-subfeature.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v7a-subfeature.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v7m-neg-subfeatures.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v7m-subarch.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v7m-subfeatures.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/v7r-subfeatures.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-add-addr-imm-scaled (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-add_addr_uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-bad-opcode-value (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-bind-add-addr-uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-do-bind-no-segIndex (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-dylib-ordinal-uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-dylib-ordinal-uleb-malformed-uleb128 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-dylib-ordinal-uleb-too-big (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-dylib-special-imm (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-seg-too-big (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-segoff-too-big (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-set-addend-sleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-set-symbol (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-set-type-imm (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-bind-uleb-times-skipping-uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-do-bind-no-dylib-ordinal (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-do-bind-no-symbol (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-lazy-do-bind-add-addr-imm-scaled (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-lazy-do-bind-uleb-times-skipping-uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-lazy-do_bind_add_addr_uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-add-addr-imm-scaled (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-add-addr-uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-add-addr-uleb-too-big (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-bad-opcode-value (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-imm-times (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-seg-too-big (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-segoff-too-big (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-set-type-imm (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-uleb-malformed-uleb128 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-uleb-times (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-rebase-uleb-times-skipping-uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-weak-bind-set-dylib-ordinal-imm (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-weak-bind-set-dylib-ordinal-uleb (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/macho-weak-bind-set-dylib-special-imm (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Mips/ vendor/llvm/dist/test/tools/llvm-objdump/Mips/disassemble-all.test vendor/llvm/dist/test/tools/llvm-objdump/Mips/lit.local.cfg vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.dylib-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/macho-invalid-bind-entry (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/nofirst-symbol.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/note.macho-x86 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/openbsd-phdrs.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/phdr-note.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/phdrs.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/stripped-elf.so (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/stub-nosyms.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/thread.macho-i386 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-build-version.yaml vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-info-plist-nofollow.test vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-nofirst-symbol-disassembly.test vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-print-thread.test vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-stub-nosyms-disassembly.test vendor/llvm/dist/test/tools/llvm-objdump/X86/stripped-shared.test vendor/llvm/dist/test/tools/llvm-objdump/macho-bad-bind.test vendor/llvm/dist/test/tools/llvm-pdbdump/Inputs/SimplePaddingTest.cpp (contents, props changed) vendor/llvm/dist/test/tools/llvm-pdbdump/Inputs/SimplePaddingTest.pdb (contents, props changed) vendor/llvm/dist/test/tools/llvm-pdbdump/simple-padding-graphical.test vendor/llvm/dist/test/tools/llvm-pdbdump/simple-padding-text.test vendor/llvm/dist/test/tools/llvm-profdata/memop-size-prof.proftext vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-cycle.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-label.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-merging-anon.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-unsorted.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/trivial.obj.wasm (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/codeview-label.test vendor/llvm/dist/test/tools/llvm-readobj/codeview-merging-anon.test vendor/llvm/dist/test/tools/llvm-readobj/codeview-merging-cycle.test vendor/llvm/dist/test/tools/llvm-readobj/codeview-merging-unsorted.test vendor/llvm/dist/test/tools/llvm-strings/Inputs/numbers vendor/llvm/dist/test/tools/llvm-strings/radix.test vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/discrim (contents, props changed) vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/discrim.c (contents, props changed) vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/discrim.inp vendor/llvm/dist/test/tools/llvm-symbolizer/sym-verbose.test vendor/llvm/dist/test/tools/llvm-xray/X86/Inputs/fdr-log-version-1.xray (contents, props changed) vendor/llvm/dist/test/tools/llvm-xray/X86/convert-fdr-to-yaml.txt (contents, props changed) vendor/llvm/dist/test/tools/llvm-xray/X86/graph-color-simple-case.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/graph-deduce-tail-call.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/graph-simple-case.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/graph-zero-latency-calls.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/no-subcommand-noassert.txt (contents, props changed) vendor/llvm/dist/test/tools/sancov/validation.test vendor/llvm/dist/test/tools/yaml2obj/invalid_output_file.test vendor/llvm/dist/test/tools/yaml2obj/lit.local.cfg vendor/llvm/dist/tools/llvm-mc-assemble-fuzzer/ vendor/llvm/dist/tools/llvm-mc-assemble-fuzzer/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-mc-disassemble-fuzzer/ vendor/llvm/dist/tools/llvm-mc-disassemble-fuzzer/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/llvm-mc-disassemble-fuzzer/llvm-mc-disassemble-fuzzer.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/Analyze.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/Analyze.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/CompactTypeDumpVisitor.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/CompactTypeDumpVisitor.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/Diff.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/Diff.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassLayoutGraphicalDumper.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassLayoutGraphicalDumper.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/StreamUtil.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/StreamUtil.h (contents, props changed) vendor/llvm/dist/tools/llvm-readobj/WasmDumper.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-xray/xray-color-helper.cc (contents, props changed) vendor/llvm/dist/tools/llvm-xray/xray-color-helper.h (contents, props changed) vendor/llvm/dist/tools/llvm-xray/xray-graph.cc (contents, props changed) vendor/llvm/dist/tools/llvm-xray/xray-graph.h (contents, props changed) vendor/llvm/dist/tools/obj2yaml/wasm2yaml.cpp (contents, props changed) vendor/llvm/dist/tools/yaml2obj/yaml2wasm.cpp (contents, props changed) vendor/llvm/dist/unittests/ADT/BreadthFirstIteratorTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/LoopInfoTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/MemorySSA.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/ProfileSummaryInfoTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/TargetLibraryInfoTest.cpp (contents, props changed) vendor/llvm/dist/unittests/DebugInfo/PDB/HashTableTest.cpp (contents, props changed) vendor/llvm/dist/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp (contents, props changed) vendor/llvm/dist/unittests/DebugInfo/PDB/TypeServerHandlerTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ExecutionEngine/Orc/QueueChannel.cpp (contents, props changed) vendor/llvm/dist/unittests/ExecutionEngine/Orc/QueueChannel.h (contents, props changed) vendor/llvm/dist/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Object/SymbolicFileTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/ARMAttributeParser.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/BinaryStreamTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/CachePruningTest.cpp (contents, props changed) vendor/llvm/dist/unittests/XRay/ vendor/llvm/dist/unittests/XRay/CMakeLists.txt (contents, props changed) vendor/llvm/dist/unittests/XRay/GraphTest.cpp (contents, props changed) vendor/llvm/dist/utils/TableGen/RegisterBankEmitter.cpp (contents, props changed) vendor/llvm/dist/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp (contents, props changed) vendor/llvm/dist/utils/bisect-skip-count (contents, props changed) vendor/llvm/dist/utils/lit/lit/BooleanExpression.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/requires-star.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/requires-triple.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/unsupported-expr-false.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/unsupported-expr-true.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/unsupported-star.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/xfail-expr-false.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/xfail-expr-true.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/test-data/dummy_format.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/boolean-parsing.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/selecting.py (contents, props changed) vendor/llvm/dist/utils/opt-viewer/opt-diff.py (contents, props changed) vendor/llvm/dist/utils/opt-viewer/opt-stats.py (contents, props changed) vendor/llvm/dist/utils/opt-viewer/optrecord.py (contents, props changed) vendor/llvm/dist/utils/release/merge-request.sh (contents, props changed) Deleted: vendor/llvm/dist/include/llvm/DebugInfo/MSF/ByteStream.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/SequencedItemStream.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/StreamArray.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/StreamInterface.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/StreamReader.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/StreamRef.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/StreamWriter.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/ vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h vendor/llvm/dist/include/llvm/Target/TargetGlobalISel.td vendor/llvm/dist/include/llvm/Transforms/Utils/MemorySSA.h vendor/llvm/dist/lib/DebugInfo/CodeView/TypeRecord.cpp vendor/llvm/dist/lib/DebugInfo/MSF/StreamReader.cpp vendor/llvm/dist/lib/DebugInfo/MSF/StreamWriter.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Raw/ vendor/llvm/dist/lib/Fuzzer/test/UninstrumentedTest.cpp vendor/llvm/dist/lib/Fuzzer/test/fuzzer-jobs.test vendor/llvm/dist/lib/IR/AttributeSetNode.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstructionSelector.h vendor/llvm/dist/lib/Target/AArch64/AArch64SchedVulcan.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURuntimeMetadata.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPURuntimeMD.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPURuntimeMD.h vendor/llvm/dist/lib/Target/Hexagon/HexagonCallingConv.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrAlias.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrEnc.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV3.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV5.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoVector.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIsetDx.td vendor/llvm/dist/lib/Target/Hexagon/HexagonSystemInst.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXInferAddressSpaces.cpp vendor/llvm/dist/lib/Target/X86/X86InstrTablesInfo.h vendor/llvm/dist/lib/Transforms/Utils/MemorySSA.cpp vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/interp-intrinsics.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/incorrect-offset-scaling.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-instructionselect.mir vendor/llvm/dist/test/CodeGen/AArch64/tail-dup-repeat-worklist.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgcn.sendmsg-m0.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgcn.sendmsg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/invalid-opencl-version-metadata1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/invalid-opencl-version-metadata2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/invalid-opencl-version-metadata3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.bfe.i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.bfe.u32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.cube.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.export.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.fs.interp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.gather4.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.getlod.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.image.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.image.sample-masked.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.image.sample.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.image.sample.o.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.packf16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lshl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lshr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mulhu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/runtime-metadata.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-literal-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/urecip.ll vendor/llvm/dist/test/CodeGen/ARM/setcc-sentinals.ll vendor/llvm/dist/test/CodeGen/Hexagon/ctlz-cttz-ctpop.ll vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-body-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/used-physical-register-info.mir vendor/llvm/dist/test/CodeGen/NVPTX/rsqrt.ll vendor/llvm/dist/test/CodeGen/SystemZ/memchr-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/memcmp-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/strcmp-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/strlen-02.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_outline_optional_branches.ll vendor/llvm/dist/test/CodeGen/X86/combiner-aa-0.ll vendor/llvm/dist/test/CodeGen/X86/combiner-aa-1.ll vendor/llvm/dist/test/CodeGen/X86/lfence.ll vendor/llvm/dist/test/CodeGen/X86/pr18023.ll vendor/llvm/dist/test/CodeGen/X86/pr30693.ll vendor/llvm/dist/test/CodeGen/X86/setcc-sentinals.ll vendor/llvm/dist/test/CodeGen/X86/sfence.ll vendor/llvm/dist/test/CodeGen/X86/sse42.ll vendor/llvm/dist/test/CodeGen/X86/sse42_64.ll vendor/llvm/dist/test/DebugInfo/X86/externaltyperef.ll vendor/llvm/dist/test/MC/AMDGPU/metadata.s vendor/llvm/dist/test/MC/ELF/section-sym-redefine.s vendor/llvm/dist/test/Object/AMDGPU/elf-definitios.yaml vendor/llvm/dist/test/Transforms/ArgumentPromotion/callgraph-update.ll vendor/llvm/dist/test/Transforms/InstCombine/2008-01-29-AddICmp.ll vendor/llvm/dist/test/Transforms/InstCombine/2008-11-20-DivMulRem.ll vendor/llvm/dist/test/Transforms/InstCombine/2009-03-20-AShrOverShift.ll vendor/llvm/dist/test/Transforms/InstCombine/not-fcmp.ll vendor/llvm/dist/test/Transforms/InstCombine/phi-select-constexpr.ll vendor/llvm/dist/test/Transforms/InstCombine/srem.ll vendor/llvm/dist/test/Transforms/InstCombine/urem.ll vendor/llvm/dist/test/Transforms/InstCombine/vector-srem.ll vendor/llvm/dist/test/Transforms/InstMerge/ld_hoist1.ll vendor/llvm/dist/test/Transforms/InstMerge/ld_hoist_st_sink.ll vendor/llvm/dist/test/Transforms/JumpThreading/crash-assertingvh.ll vendor/llvm/dist/test/Transforms/LICM/scalar_promote-unwind.ll vendor/llvm/dist/test/Transforms/LICM/scalar_promote.ll vendor/llvm/dist/test/Transforms/LoopDistribute/diagnostics-with-hotness-lazy-BFI.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/cold-loop.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/first-order-recurrence.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/assume.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/atomic-clobber.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/basicaa-memcpy.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/constant-memory.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/cyclicphi.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/forward-unreachable.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/function-clobber.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/function-mem-attrs.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/invariant-groups.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/lifetime-simple.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/load-invariant.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/many-dom-backedge.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/many-doms.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/multi-edges.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/multiple-backedges-hal.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/multiple-locations.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/no-disconnected.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/optimize-use.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/phi-translation.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/pr28880.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/volatile-clobber.ll vendor/llvm/dist/tools/llvm-mc-fuzzer/ vendor/llvm/dist/tools/llvm-readobj/ARMAttributeParser.cpp vendor/llvm/dist/tools/llvm-readobj/ARMAttributeParser.h vendor/llvm/dist/tools/llvm-xray/xray-extract.h vendor/llvm/dist/tools/llvm-xray/xray-sleds.h vendor/llvm/dist/tools/yaml2obj/yaml2dwarf.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/ObjectLinkingLayerTest.cpp vendor/llvm/dist/unittests/Transforms/Utils/MemorySSA.cpp Modified: vendor/llvm/dist/.gitignore vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/CODE_OWNERS.TXT vendor/llvm/dist/CREDITS.TXT vendor/llvm/dist/README.txt vendor/llvm/dist/RELEASE_TESTERS.TXT vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp vendor/llvm/dist/bindings/go/llvm/IRBindings.cpp vendor/llvm/dist/bindings/go/llvm/IRBindings.h vendor/llvm/dist/bindings/go/llvm/ir.go vendor/llvm/dist/bindings/go/llvm/ir_test.go vendor/llvm/dist/bindings/go/llvm/transforms_pmbuilder.go vendor/llvm/dist/cmake/config-ix.cmake vendor/llvm/dist/cmake/modules/AddLLVM.cmake vendor/llvm/dist/cmake/modules/AddSphinxTarget.cmake vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake vendor/llvm/dist/cmake/modules/LLVM-Config.cmake vendor/llvm/dist/cmake/modules/LLVMConfig.cmake.in vendor/llvm/dist/cmake/modules/TableGen.cmake vendor/llvm/dist/cmake/modules/VersionFromVCS.cmake vendor/llvm/dist/cmake/platforms/iOS.cmake vendor/llvm/dist/docs/AMDGPUUsage.rst vendor/llvm/dist/docs/AliasAnalysis.rst vendor/llvm/dist/docs/BitCodeFormat.rst vendor/llvm/dist/docs/BranchWeightMetadata.rst vendor/llvm/dist/docs/CMake.rst vendor/llvm/dist/docs/CodeGenerator.rst vendor/llvm/dist/docs/CommandGuide/FileCheck.rst vendor/llvm/dist/docs/CommandGuide/lit.rst vendor/llvm/dist/docs/CommandGuide/llvm-cov.rst vendor/llvm/dist/docs/CommandGuide/llvm-profdata.rst vendor/llvm/dist/docs/Coroutines.rst vendor/llvm/dist/docs/CoverageMappingFormat.rst vendor/llvm/dist/docs/DeveloperPolicy.rst vendor/llvm/dist/docs/Extensions.rst vendor/llvm/dist/docs/FaultMaps.rst vendor/llvm/dist/docs/GettingStarted.rst vendor/llvm/dist/docs/GlobalISel.rst vendor/llvm/dist/docs/HowToAddABuilder.rst vendor/llvm/dist/docs/HowToSubmitABug.rst vendor/llvm/dist/docs/HowToUseAttributes.rst vendor/llvm/dist/docs/LLVMBuild.rst vendor/llvm/dist/docs/LangRef.rst vendor/llvm/dist/docs/Lexicon.rst vendor/llvm/dist/docs/LibFuzzer.rst vendor/llvm/dist/docs/MIRLangRef.rst vendor/llvm/dist/docs/NVPTXUsage.rst vendor/llvm/dist/docs/OptBisect.rst vendor/llvm/dist/docs/ProgrammersManual.rst vendor/llvm/dist/docs/Proposals/GitHubMove.rst vendor/llvm/dist/docs/ReleaseNotes.rst vendor/llvm/dist/docs/ScudoHardenedAllocator.rst vendor/llvm/dist/docs/Statepoints.rst vendor/llvm/dist/docs/TableGen/BackEnds.rst vendor/llvm/dist/docs/TestingGuide.rst vendor/llvm/dist/docs/WritingAnLLVMBackend.rst vendor/llvm/dist/docs/XRay.rst vendor/llvm/dist/docs/YamlIO.rst vendor/llvm/dist/docs/conf.py vendor/llvm/dist/docs/doxygen.cfg.in vendor/llvm/dist/docs/index.rst vendor/llvm/dist/docs/tutorial/BuildingAJIT1.rst vendor/llvm/dist/docs/tutorial/LangImpl02.rst vendor/llvm/dist/docs/tutorial/LangImpl03.rst vendor/llvm/dist/docs/tutorial/LangImpl04.rst vendor/llvm/dist/docs/tutorial/LangImpl05.rst vendor/llvm/dist/docs/tutorial/LangImpl06.rst vendor/llvm/dist/docs/tutorial/LangImpl07.rst vendor/llvm/dist/docs/tutorial/LangImpl09.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl5.rst vendor/llvm/dist/examples/BrainF/BrainF.cpp vendor/llvm/dist/examples/BrainF/BrainFDriver.cpp vendor/llvm/dist/examples/Fibonacci/fibonacci.cpp vendor/llvm/dist/examples/HowToUseJIT/HowToUseJIT.cpp vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter1/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter2/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.h vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter3/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.h vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/KaleidoscopeJIT.h vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter2/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter3/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter4/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter5/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter6/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter7/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter7/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter8/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter9/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/cached/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/complete/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/initial/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/lazy/toy-jit.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/lazy/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/include/KaleidoscopeJIT.h vendor/llvm/dist/examples/ParallelJIT/CMakeLists.txt vendor/llvm/dist/examples/ParallelJIT/ParallelJIT.cpp vendor/llvm/dist/include/llvm-c/Transforms/Scalar.h vendor/llvm/dist/include/llvm-c/lto.h vendor/llvm/dist/include/llvm/ADT/APFloat.h vendor/llvm/dist/include/llvm/ADT/APInt.h vendor/llvm/dist/include/llvm/ADT/APSInt.h vendor/llvm/dist/include/llvm/ADT/ArrayRef.h vendor/llvm/dist/include/llvm/ADT/BitVector.h vendor/llvm/dist/include/llvm/ADT/DenseMap.h vendor/llvm/dist/include/llvm/ADT/DenseMapInfo.h vendor/llvm/dist/include/llvm/ADT/DenseSet.h vendor/llvm/dist/include/llvm/ADT/DepthFirstIterator.h vendor/llvm/dist/include/llvm/ADT/GraphTraits.h vendor/llvm/dist/include/llvm/ADT/None.h vendor/llvm/dist/include/llvm/ADT/PointerUnion.h vendor/llvm/dist/include/llvm/ADT/PostOrderIterator.h vendor/llvm/dist/include/llvm/ADT/STLExtras.h vendor/llvm/dist/include/llvm/ADT/ScopedHashTable.h vendor/llvm/dist/include/llvm/ADT/SetVector.h vendor/llvm/dist/include/llvm/ADT/SmallBitVector.h vendor/llvm/dist/include/llvm/ADT/SmallPtrSet.h vendor/llvm/dist/include/llvm/ADT/SparseBitVector.h vendor/llvm/dist/include/llvm/ADT/StringExtras.h vendor/llvm/dist/include/llvm/ADT/StringMap.h vendor/llvm/dist/include/llvm/ADT/StringRef.h vendor/llvm/dist/include/llvm/ADT/Triple.h vendor/llvm/dist/include/llvm/ADT/iterator.h vendor/llvm/dist/include/llvm/Analysis/AliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/AliasSetTracker.h vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h vendor/llvm/dist/include/llvm/Analysis/BasicAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/BlockFrequencyInfo.h vendor/llvm/dist/include/llvm/Analysis/BlockFrequencyInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/BranchProbabilityInfo.h vendor/llvm/dist/include/llvm/Analysis/CFGPrinter.h vendor/llvm/dist/include/llvm/Analysis/CGSCCPassManager.h vendor/llvm/dist/include/llvm/Analysis/CallGraph.h vendor/llvm/dist/include/llvm/Analysis/ConstantFolding.h vendor/llvm/dist/include/llvm/Analysis/DominanceFrontier.h vendor/llvm/dist/include/llvm/Analysis/IndirectCallSiteVisitor.h vendor/llvm/dist/include/llvm/Analysis/InlineCost.h vendor/llvm/dist/include/llvm/Analysis/InstructionSimplify.h vendor/llvm/dist/include/llvm/Analysis/LazyBlockFrequencyInfo.h vendor/llvm/dist/include/llvm/Analysis/LazyBranchProbabilityInfo.h vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h vendor/llvm/dist/include/llvm/Analysis/LazyValueInfo.h vendor/llvm/dist/include/llvm/Analysis/Loads.h vendor/llvm/dist/include/llvm/Analysis/LoopAccessAnalysis.h vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h vendor/llvm/dist/include/llvm/Analysis/OptimizationDiagnosticInfo.h vendor/llvm/dist/include/llvm/Analysis/PostDominators.h vendor/llvm/dist/include/llvm/Analysis/ProfileSummaryInfo.h vendor/llvm/dist/include/llvm/Analysis/PtrUseVisitor.h vendor/llvm/dist/include/llvm/Analysis/RegionInfo.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionNormalization.h vendor/llvm/dist/include/llvm/Analysis/TargetLibraryInfo.def vendor/llvm/dist/include/llvm/Analysis/TargetLibraryInfo.h vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/TypeMetadataUtils.h vendor/llvm/dist/include/llvm/Analysis/ValueTracking.h vendor/llvm/dist/include/llvm/Analysis/VectorUtils.h vendor/llvm/dist/include/llvm/Bitcode/BitcodeWriter.h vendor/llvm/dist/include/llvm/Bitcode/LLVMBitCodes.h vendor/llvm/dist/include/llvm/CMakeLists.txt vendor/llvm/dist/include/llvm/CodeGen/Analysis.h vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h vendor/llvm/dist/include/llvm/CodeGen/CallingConvLower.h vendor/llvm/dist/include/llvm/CodeGen/CommandFlags.h vendor/llvm/dist/include/llvm/CodeGen/FastISel.h vendor/llvm/dist/include/llvm/CodeGen/FaultMaps.h vendor/llvm/dist/include/llvm/CodeGen/GCStrategy.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/CallLowering.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/IRTranslator.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/InstructionSelector.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Legalizer.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegBankSelect.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBank.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Utils.h vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h vendor/llvm/dist/include/llvm/CodeGen/LexicalScopes.h vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalUnion.h vendor/llvm/dist/include/llvm/CodeGen/LiveRegMatrix.h vendor/llvm/dist/include/llvm/CodeGen/LowLevelType.h vendor/llvm/dist/include/llvm/CodeGen/MIRYamlMapping.h vendor/llvm/dist/include/llvm/CodeGen/MachineBasicBlock.h vendor/llvm/dist/include/llvm/CodeGen/MachineBlockFrequencyInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineDominators.h vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineFunction.h vendor/llvm/dist/include/llvm/CodeGen/MachineFunctionInitializer.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstr.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstrBuilder.h vendor/llvm/dist/include/llvm/CodeGen/MachineLoopInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineModuleInfoImpls.h vendor/llvm/dist/include/llvm/CodeGen/MachineOperand.h vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineScheduler.h vendor/llvm/dist/include/llvm/CodeGen/MachineTraceMetrics.h vendor/llvm/dist/include/llvm/CodeGen/MachineValueType.h vendor/llvm/dist/include/llvm/CodeGen/PBQP/Solution.h vendor/llvm/dist/include/llvm/CodeGen/Passes.h vendor/llvm/dist/include/llvm/CodeGen/RegAllocPBQP.h vendor/llvm/dist/include/llvm/CodeGen/RegisterClassInfo.h vendor/llvm/dist/include/llvm/CodeGen/RegisterPressure.h vendor/llvm/dist/include/llvm/CodeGen/RegisterScavenging.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAG.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGInstrs.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGMutation.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDFS.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleHazardRecognizer.h vendor/llvm/dist/include/llvm/CodeGen/ScoreboardHazardRecognizer.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h vendor/llvm/dist/include/llvm/CodeGen/SlotIndexes.h vendor/llvm/dist/include/llvm/CodeGen/StackMaps.h vendor/llvm/dist/include/llvm/CodeGen/StackProtector.h vendor/llvm/dist/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h vendor/llvm/dist/include/llvm/CodeGen/TargetPassConfig.h vendor/llvm/dist/include/llvm/CodeGen/TargetSchedule.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.h vendor/llvm/dist/include/llvm/Config/abi-breaking.h.cmake vendor/llvm/dist/include/llvm/Config/config.h.cmake vendor/llvm/dist/include/llvm/Config/llvm-config.h.cmake vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeDumper.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeView.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewError.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleSubstream.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleSubstreamVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/RecordSerialization.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolSerializer.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabase.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDeserializer.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecords.def vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeSerializer.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/DIContext.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFContext.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDie.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFFormValue.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFSection.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h vendor/llvm/dist/include/llvm/DebugInfo/MSF/MappedBlockStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBSession.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBExtras.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymDumper.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolData.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolExe.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBTypes.h vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/DIPrinter.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcError.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RPCSerialization.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RPCUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RawByteChannel.h vendor/llvm/dist/include/llvm/IR/Argument.h vendor/llvm/dist/include/llvm/IR/Attributes.h vendor/llvm/dist/include/llvm/IR/BasicBlock.h vendor/llvm/dist/include/llvm/IR/CallSite.h vendor/llvm/dist/include/llvm/IR/Comdat.h vendor/llvm/dist/include/llvm/IR/Constant.h vendor/llvm/dist/include/llvm/IR/ConstantRange.h vendor/llvm/dist/include/llvm/IR/Constants.h vendor/llvm/dist/include/llvm/IR/DIBuilder.h vendor/llvm/dist/include/llvm/IR/DataLayout.h vendor/llvm/dist/include/llvm/IR/DebugInfoFlags.def vendor/llvm/dist/include/llvm/IR/DebugInfoMetadata.h vendor/llvm/dist/include/llvm/IR/DiagnosticInfo.h vendor/llvm/dist/include/llvm/IR/Dominators.h vendor/llvm/dist/include/llvm/IR/Function.h vendor/llvm/dist/include/llvm/IR/GlobalIndirectSymbol.h vendor/llvm/dist/include/llvm/IR/GlobalObject.h vendor/llvm/dist/include/llvm/IR/GlobalValue.h vendor/llvm/dist/include/llvm/IR/IRBuilder.h vendor/llvm/dist/include/llvm/IR/InlineAsm.h vendor/llvm/dist/include/llvm/IR/InstVisitor.h vendor/llvm/dist/include/llvm/IR/InstrTypes.h vendor/llvm/dist/include/llvm/IR/Instruction.h vendor/llvm/dist/include/llvm/IR/Instructions.h vendor/llvm/dist/include/llvm/IR/IntrinsicInst.h vendor/llvm/dist/include/llvm/IR/Intrinsics.h vendor/llvm/dist/include/llvm/IR/Intrinsics.td vendor/llvm/dist/include/llvm/IR/IntrinsicsAMDGPU.td vendor/llvm/dist/include/llvm/IR/IntrinsicsARM.td vendor/llvm/dist/include/llvm/IR/IntrinsicsHexagon.td vendor/llvm/dist/include/llvm/IR/IntrinsicsNVVM.td vendor/llvm/dist/include/llvm/IR/IntrinsicsPowerPC.td vendor/llvm/dist/include/llvm/IR/IntrinsicsWebAssembly.td vendor/llvm/dist/include/llvm/IR/IntrinsicsX86.td vendor/llvm/dist/include/llvm/IR/LLVMContext.h vendor/llvm/dist/include/llvm/IR/MDBuilder.h vendor/llvm/dist/include/llvm/IR/Mangler.h vendor/llvm/dist/include/llvm/IR/Metadata.h vendor/llvm/dist/include/llvm/IR/Module.h vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndex.h vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndexYAML.h vendor/llvm/dist/include/llvm/IR/Operator.h vendor/llvm/dist/include/llvm/IR/OptBisect.h vendor/llvm/dist/include/llvm/IR/PassManager.h vendor/llvm/dist/include/llvm/IR/PassManagerInternal.h vendor/llvm/dist/include/llvm/IR/PatternMatch.h vendor/llvm/dist/include/llvm/IR/PredIteratorCache.h vendor/llvm/dist/include/llvm/IR/Statepoint.h vendor/llvm/dist/include/llvm/IR/SymbolTableListTraits.h vendor/llvm/dist/include/llvm/IR/TrackingMDRef.h vendor/llvm/dist/include/llvm/IR/Type.h vendor/llvm/dist/include/llvm/IR/TypeFinder.h vendor/llvm/dist/include/llvm/IR/Use.h vendor/llvm/dist/include/llvm/IR/UseListOrder.h vendor/llvm/dist/include/llvm/IR/User.h vendor/llvm/dist/include/llvm/IR/Value.h vendor/llvm/dist/include/llvm/IR/ValueHandle.h vendor/llvm/dist/include/llvm/IR/ValueSymbolTable.h vendor/llvm/dist/include/llvm/InitializePasses.h vendor/llvm/dist/include/llvm/LTO/Caching.h vendor/llvm/dist/include/llvm/LTO/Config.h vendor/llvm/dist/include/llvm/LTO/LTO.h vendor/llvm/dist/include/llvm/LTO/LTOBackend.h vendor/llvm/dist/include/llvm/LTO/legacy/LTOCodeGenerator.h vendor/llvm/dist/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h vendor/llvm/dist/include/llvm/LinkAllPasses.h vendor/llvm/dist/include/llvm/Linker/IRMover.h vendor/llvm/dist/include/llvm/Linker/Linker.h vendor/llvm/dist/include/llvm/MC/ConstantPools.h vendor/llvm/dist/include/llvm/MC/MCAsmBackend.h vendor/llvm/dist/include/llvm/MC/MCAsmInfo.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoCOFF.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoDarwin.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoELF.h vendor/llvm/dist/include/llvm/MC/MCAssembler.h vendor/llvm/dist/include/llvm/MC/MCCodeEmitter.h vendor/llvm/dist/include/llvm/MC/MCContext.h vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCDisassembler.h vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCRelocationInfo.h vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCSymbolizer.h vendor/llvm/dist/include/llvm/MC/MCDwarf.h vendor/llvm/dist/include/llvm/MC/MCELFObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCELFStreamer.h vendor/llvm/dist/include/llvm/MC/MCExpr.h vendor/llvm/dist/include/llvm/MC/MCFragment.h vendor/llvm/dist/include/llvm/MC/MCInst.h vendor/llvm/dist/include/llvm/MC/MCInstPrinter.h vendor/llvm/dist/include/llvm/MC/MCInstrAnalysis.h vendor/llvm/dist/include/llvm/MC/MCInstrItineraries.h vendor/llvm/dist/include/llvm/MC/MCLabel.h vendor/llvm/dist/include/llvm/MC/MCLinkerOptimizationHint.h vendor/llvm/dist/include/llvm/MC/MCMachObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCObjectFileInfo.h vendor/llvm/dist/include/llvm/MC/MCObjectStreamer.h vendor/llvm/dist/include/llvm/MC/MCObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCParser/AsmCond.h vendor/llvm/dist/include/llvm/MC/MCParser/AsmLexer.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmLexer.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmParser.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmParserExtension.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmParserUtils.h vendor/llvm/dist/include/llvm/MC/MCParser/MCParsedAsmOperand.h vendor/llvm/dist/include/llvm/MC/MCParser/MCTargetAsmParser.h vendor/llvm/dist/include/llvm/MC/MCRegisterInfo.h vendor/llvm/dist/include/llvm/MC/MCSection.h vendor/llvm/dist/include/llvm/MC/MCSectionCOFF.h vendor/llvm/dist/include/llvm/MC/MCSectionELF.h vendor/llvm/dist/include/llvm/MC/MCSectionMachO.h vendor/llvm/dist/include/llvm/MC/MCStreamer.h vendor/llvm/dist/include/llvm/MC/MCSubtargetInfo.h vendor/llvm/dist/include/llvm/MC/MCSymbol.h vendor/llvm/dist/include/llvm/MC/MCSymbolCOFF.h vendor/llvm/dist/include/llvm/MC/MCTargetOptions.h vendor/llvm/dist/include/llvm/MC/MCWinCOFFObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCWinCOFFStreamer.h vendor/llvm/dist/include/llvm/MC/MachineLocation.h vendor/llvm/dist/include/llvm/MC/StringTableBuilder.h vendor/llvm/dist/include/llvm/MC/SubtargetFeature.h vendor/llvm/dist/include/llvm/Object/Archive.h vendor/llvm/dist/include/llvm/Object/Binary.h vendor/llvm/dist/include/llvm/Object/ELF.h vendor/llvm/dist/include/llvm/Object/ELFObjectFile.h vendor/llvm/dist/include/llvm/Object/MachO.h vendor/llvm/dist/include/llvm/Object/ModuleSummaryIndexObjectFile.h vendor/llvm/dist/include/llvm/Object/ModuleSymbolTable.h vendor/llvm/dist/include/llvm/Object/ObjectFile.h vendor/llvm/dist/include/llvm/Object/RelocVisitor.h vendor/llvm/dist/include/llvm/Object/SymbolicFile.h vendor/llvm/dist/include/llvm/Object/Wasm.h vendor/llvm/dist/include/llvm/ObjectYAML/DWARFYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/MachOYAML.h vendor/llvm/dist/include/llvm/ObjectYAML/ObjectYAML.h vendor/llvm/dist/include/llvm/Option/ArgList.h vendor/llvm/dist/include/llvm/PassSupport.h vendor/llvm/dist/include/llvm/Passes/PassBuilder.h vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMapping.h vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMappingReader.h vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h vendor/llvm/dist/include/llvm/ProfileData/InstrProf.h vendor/llvm/dist/include/llvm/ProfileData/InstrProfData.inc vendor/llvm/dist/include/llvm/ProfileData/InstrProfReader.h vendor/llvm/dist/include/llvm/ProfileData/InstrProfWriter.h vendor/llvm/dist/include/llvm/ProfileData/ProfileCommon.h vendor/llvm/dist/include/llvm/ProfileData/SampleProf.h vendor/llvm/dist/include/llvm/ProfileData/SampleProfReader.h vendor/llvm/dist/include/llvm/ProfileData/SampleProfWriter.h vendor/llvm/dist/include/llvm/Support/AArch64TargetParser.def vendor/llvm/dist/include/llvm/Support/ARMBuildAttributes.h vendor/llvm/dist/include/llvm/Support/ARMTargetParser.def vendor/llvm/dist/include/llvm/Support/Allocator.h vendor/llvm/dist/include/llvm/Support/Atomic.h vendor/llvm/dist/include/llvm/Support/CachePruning.h vendor/llvm/dist/include/llvm/Support/Casting.h vendor/llvm/dist/include/llvm/Support/Chrono.h vendor/llvm/dist/include/llvm/Support/CommandLine.h vendor/llvm/dist/include/llvm/Support/Compiler.h vendor/llvm/dist/include/llvm/Support/Compression.h vendor/llvm/dist/include/llvm/Support/Debug.h vendor/llvm/dist/include/llvm/Support/Dwarf.def vendor/llvm/dist/include/llvm/Support/Dwarf.h vendor/llvm/dist/include/llvm/Support/DynamicLibrary.h vendor/llvm/dist/include/llvm/Support/ELF.h vendor/llvm/dist/include/llvm/Support/Endian.h vendor/llvm/dist/include/llvm/Support/Error.h vendor/llvm/dist/include/llvm/Support/FileSystem.h vendor/llvm/dist/include/llvm/Support/FormatAdapters.h vendor/llvm/dist/include/llvm/Support/FormatProviders.h vendor/llvm/dist/include/llvm/Support/FormatVariadic.h vendor/llvm/dist/include/llvm/Support/GCOV.h vendor/llvm/dist/include/llvm/Support/GenericDomTree.h vendor/llvm/dist/include/llvm/Support/GenericDomTreeConstruction.h vendor/llvm/dist/include/llvm/Support/Host.h vendor/llvm/dist/include/llvm/Support/LEB128.h vendor/llvm/dist/include/llvm/Support/MD5.h vendor/llvm/dist/include/llvm/Support/MachO.def vendor/llvm/dist/include/llvm/Support/MachO.h vendor/llvm/dist/include/llvm/Support/MathExtras.h vendor/llvm/dist/include/llvm/Support/MemoryBuffer.h vendor/llvm/dist/include/llvm/Support/Path.h vendor/llvm/dist/include/llvm/Support/PointerLikeTypeTraits.h vendor/llvm/dist/include/llvm/Support/RWMutex.h vendor/llvm/dist/include/llvm/Support/SMLoc.h vendor/llvm/dist/include/llvm/Support/SourceMgr.h vendor/llvm/dist/include/llvm/Support/TargetParser.h vendor/llvm/dist/include/llvm/Support/TargetRegistry.h vendor/llvm/dist/include/llvm/Support/ThreadPool.h vendor/llvm/dist/include/llvm/Support/Threading.h vendor/llvm/dist/include/llvm/Support/Timer.h vendor/llvm/dist/include/llvm/Support/TrailingObjects.h vendor/llvm/dist/include/llvm/Support/UniqueLock.h vendor/llvm/dist/include/llvm/Support/Wasm.h vendor/llvm/dist/include/llvm/Support/YAMLTraits.h vendor/llvm/dist/include/llvm/Support/thread.h vendor/llvm/dist/include/llvm/Support/type_traits.h vendor/llvm/dist/include/llvm/TableGen/Record.h vendor/llvm/dist/include/llvm/TableGen/StringMatcher.h vendor/llvm/dist/include/llvm/TableGen/StringToOffsetTable.h vendor/llvm/dist/include/llvm/Target/GenericOpcodes.td vendor/llvm/dist/include/llvm/Target/Target.td vendor/llvm/dist/include/llvm/Target/TargetCallingConv.h vendor/llvm/dist/include/llvm/Target/TargetInstrInfo.h vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/include/llvm/Target/TargetLoweringObjectFile.h vendor/llvm/dist/include/llvm/Target/TargetMachine.h vendor/llvm/dist/include/llvm/Target/TargetOpcodes.def vendor/llvm/dist/include/llvm/Target/TargetOptions.h vendor/llvm/dist/include/llvm/Target/TargetRegisterInfo.h vendor/llvm/dist/include/llvm/Target/TargetSchedule.td vendor/llvm/dist/include/llvm/Target/TargetSelectionDAG.td vendor/llvm/dist/include/llvm/Target/TargetSubtargetInfo.h vendor/llvm/dist/include/llvm/Transforms/IPO.h vendor/llvm/dist/include/llvm/Transforms/IPO/FunctionAttrs.h vendor/llvm/dist/include/llvm/Transforms/IPO/FunctionImport.h vendor/llvm/dist/include/llvm/Transforms/IPO/GlobalDCE.h vendor/llvm/dist/include/llvm/Transforms/IPO/LowerTypeTests.h vendor/llvm/dist/include/llvm/Transforms/IPO/PassManagerBuilder.h vendor/llvm/dist/include/llvm/Transforms/InstrProfiling.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation.h vendor/llvm/dist/include/llvm/Transforms/PGOInstrumentation.h vendor/llvm/dist/include/llvm/Transforms/Scalar.h vendor/llvm/dist/include/llvm/Transforms/Scalar/GVNExpression.h vendor/llvm/dist/include/llvm/Transforms/Scalar/JumpThreading.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopDataPrefetch.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopDeletion.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopPassManager.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopUnrollPass.h vendor/llvm/dist/include/llvm/Transforms/Scalar/MemCpyOptimizer.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SROA.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SimplifyCFG.h vendor/llvm/dist/include/llvm/Transforms/Utils/BasicBlockUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/BuildLibCalls.h vendor/llvm/dist/include/llvm/Transforms/Utils/Cloning.h vendor/llvm/dist/include/llvm/Transforms/Utils/FunctionComparator.h vendor/llvm/dist/include/llvm/Transforms/Utils/FunctionImportUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/GlobalStatus.h vendor/llvm/dist/include/llvm/Transforms/Utils/Local.h vendor/llvm/dist/include/llvm/Transforms/Utils/LoopUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/ModuleUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/NameAnonGlobals.h vendor/llvm/dist/include/llvm/Transforms/Utils/PromoteMemToReg.h vendor/llvm/dist/include/llvm/Transforms/Utils/SSAUpdater.h vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyIndVar.h vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyLibCalls.h vendor/llvm/dist/include/llvm/Transforms/Utils/SymbolRewriter.h vendor/llvm/dist/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h vendor/llvm/dist/include/llvm/Transforms/Utils/UnrollLoop.h vendor/llvm/dist/include/llvm/Transforms/Utils/ValueMapper.h vendor/llvm/dist/include/llvm/Transforms/Vectorize/SLPVectorizer.h vendor/llvm/dist/include/llvm/XRay/XRayRecord.h vendor/llvm/dist/include/llvm/XRay/YAMLXRayRecord.h vendor/llvm/dist/include/llvm/module.modulemap vendor/llvm/dist/lib/Analysis/AliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/AliasSetTracker.cpp vendor/llvm/dist/lib/Analysis/Analysis.cpp vendor/llvm/dist/lib/Analysis/AssumptionCache.cpp vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/BlockFrequencyInfo.cpp vendor/llvm/dist/lib/Analysis/BlockFrequencyInfoImpl.cpp vendor/llvm/dist/lib/Analysis/BranchProbabilityInfo.cpp vendor/llvm/dist/lib/Analysis/CFLAndersAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/CGSCCPassManager.cpp vendor/llvm/dist/lib/Analysis/CMakeLists.txt vendor/llvm/dist/lib/Analysis/CallGraph.cpp vendor/llvm/dist/lib/Analysis/CallGraphSCCPass.cpp vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp vendor/llvm/dist/lib/Analysis/CostModel.cpp vendor/llvm/dist/lib/Analysis/DemandedBits.cpp vendor/llvm/dist/lib/Analysis/DependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/DominanceFrontier.cpp vendor/llvm/dist/lib/Analysis/IVUsers.cpp vendor/llvm/dist/lib/Analysis/InlineCost.cpp vendor/llvm/dist/lib/Analysis/InstructionSimplify.cpp vendor/llvm/dist/lib/Analysis/IteratedDominanceFrontier.cpp vendor/llvm/dist/lib/Analysis/LazyBlockFrequencyInfo.cpp vendor/llvm/dist/lib/Analysis/LazyCallGraph.cpp vendor/llvm/dist/lib/Analysis/LazyValueInfo.cpp vendor/llvm/dist/lib/Analysis/Loads.cpp vendor/llvm/dist/lib/Analysis/LoopAccessAnalysis.cpp vendor/llvm/dist/lib/Analysis/LoopAnalysisManager.cpp vendor/llvm/dist/lib/Analysis/LoopInfo.cpp vendor/llvm/dist/lib/Analysis/LoopPass.cpp vendor/llvm/dist/lib/Analysis/MemoryBuiltins.cpp vendor/llvm/dist/lib/Analysis/MemoryLocation.cpp vendor/llvm/dist/lib/Analysis/ModuleSummaryAnalysis.cpp vendor/llvm/dist/lib/Analysis/OptimizationDiagnosticInfo.cpp vendor/llvm/dist/lib/Analysis/PostDominators.cpp vendor/llvm/dist/lib/Analysis/ProfileSummaryInfo.cpp vendor/llvm/dist/lib/Analysis/RegionInfo.cpp vendor/llvm/dist/lib/Analysis/RegionPass.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionNormalization.cpp vendor/llvm/dist/lib/Analysis/SparsePropagation.cpp vendor/llvm/dist/lib/Analysis/TargetLibraryInfo.cpp vendor/llvm/dist/lib/Analysis/TargetTransformInfo.cpp vendor/llvm/dist/lib/Analysis/TypeMetadataUtils.cpp vendor/llvm/dist/lib/Analysis/ValueTracking.cpp vendor/llvm/dist/lib/Analysis/VectorUtils.cpp vendor/llvm/dist/lib/AsmParser/LLLexer.cpp vendor/llvm/dist/lib/AsmParser/LLParser.cpp vendor/llvm/dist/lib/AsmParser/LLParser.h vendor/llvm/dist/lib/AsmParser/LLToken.h vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp vendor/llvm/dist/lib/Bitcode/Writer/ValueEnumerator.cpp vendor/llvm/dist/lib/Bitcode/Writer/ValueEnumerator.h vendor/llvm/dist/lib/CodeGen/AggressiveAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/Analysis.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIEHash.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugHandlerBase.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugLocEntry.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinException.cpp vendor/llvm/dist/lib/CodeGen/AtomicExpandPass.cpp vendor/llvm/dist/lib/CodeGen/BranchFolding.cpp vendor/llvm/dist/lib/CodeGen/BranchFolding.h vendor/llvm/dist/lib/CodeGen/BranchRelaxation.cpp vendor/llvm/dist/lib/CodeGen/BuiltinGCs.cpp vendor/llvm/dist/lib/CodeGen/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/CallingConvLower.cpp vendor/llvm/dist/lib/CodeGen/CodeGen.cpp vendor/llvm/dist/lib/CodeGen/CodeGenPrepare.cpp vendor/llvm/dist/lib/CodeGen/CountingFunctionInserter.cpp vendor/llvm/dist/lib/CodeGen/CriticalAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/DeadMachineInstructionElim.cpp vendor/llvm/dist/lib/CodeGen/DetectDeadLanes.cpp vendor/llvm/dist/lib/CodeGen/ExecutionDepsFix.cpp vendor/llvm/dist/lib/CodeGen/FaultMaps.cpp vendor/llvm/dist/lib/CodeGen/GCStrategy.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/GlobalISel/CallLowering.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/IRTranslator.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/InstructionSelect.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/InstructionSelector.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/Legalizer.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/LegalizerHelper.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/LegalizerInfo.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/RegBankSelect.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/RegisterBank.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/Utils.cpp vendor/llvm/dist/lib/CodeGen/IfConversion.cpp vendor/llvm/dist/lib/CodeGen/ImplicitNullChecks.cpp vendor/llvm/dist/lib/CodeGen/InlineSpiller.cpp vendor/llvm/dist/lib/CodeGen/IntrinsicLowering.cpp vendor/llvm/dist/lib/CodeGen/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/LLVMTargetMachine.cpp vendor/llvm/dist/lib/CodeGen/LexicalScopes.cpp vendor/llvm/dist/lib/CodeGen/LiveDebugValues.cpp vendor/llvm/dist/lib/CodeGen/LiveDebugVariables.cpp vendor/llvm/dist/lib/CodeGen/LiveInterval.cpp vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp vendor/llvm/dist/lib/CodeGen/LiveIntervalUnion.cpp vendor/llvm/dist/lib/CodeGen/LivePhysRegs.cpp vendor/llvm/dist/lib/CodeGen/LiveRangeCalc.cpp vendor/llvm/dist/lib/CodeGen/LiveRangeEdit.cpp vendor/llvm/dist/lib/CodeGen/LiveRegMatrix.cpp vendor/llvm/dist/lib/CodeGen/LiveVariables.cpp vendor/llvm/dist/lib/CodeGen/LowLevelType.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/MIParser.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/MIParser.h vendor/llvm/dist/lib/CodeGen/MIRParser/MIRParser.cpp vendor/llvm/dist/lib/CodeGen/MIRPrinter.cpp vendor/llvm/dist/lib/CodeGen/MachineBasicBlock.cpp vendor/llvm/dist/lib/CodeGen/MachineBlockFrequencyInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineBlockPlacement.cpp vendor/llvm/dist/lib/CodeGen/MachineCombiner.cpp vendor/llvm/dist/lib/CodeGen/MachineCopyPropagation.cpp vendor/llvm/dist/lib/CodeGen/MachineDominators.cpp vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp vendor/llvm/dist/lib/CodeGen/MachineLoopInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineModuleInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineModuleInfoImpls.cpp vendor/llvm/dist/lib/CodeGen/MachinePipeliner.cpp vendor/llvm/dist/lib/CodeGen/MachineRegionInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineRegisterInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineScheduler.cpp vendor/llvm/dist/lib/CodeGen/MachineTraceMetrics.cpp vendor/llvm/dist/lib/CodeGen/MachineVerifier.cpp vendor/llvm/dist/lib/CodeGen/PatchableFunction.cpp vendor/llvm/dist/lib/CodeGen/PostRASchedulerList.cpp vendor/llvm/dist/lib/CodeGen/PrologEpilogInserter.cpp vendor/llvm/dist/lib/CodeGen/PseudoSourceValue.cpp vendor/llvm/dist/lib/CodeGen/RegAllocBasic.cpp vendor/llvm/dist/lib/CodeGen/RegAllocGreedy.cpp vendor/llvm/dist/lib/CodeGen/RegAllocPBQP.cpp vendor/llvm/dist/lib/CodeGen/RegUsageInfoCollector.cpp vendor/llvm/dist/lib/CodeGen/RegisterClassInfo.cpp vendor/llvm/dist/lib/CodeGen/RegisterCoalescer.cpp vendor/llvm/dist/lib/CodeGen/RegisterPressure.cpp vendor/llvm/dist/lib/CodeGen/RegisterScavenging.cpp vendor/llvm/dist/lib/CodeGen/ResetMachineFunctionPass.cpp vendor/llvm/dist/lib/CodeGen/SafeStack.cpp vendor/llvm/dist/lib/CodeGen/SafeStackColoring.cpp vendor/llvm/dist/lib/CodeGen/ScheduleDAG.cpp vendor/llvm/dist/lib/CodeGen/ScheduleDAGInstrs.cpp vendor/llvm/dist/lib/CodeGen/ScoreboardHazardRecognizer.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/InstrEmitter.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp vendor/llvm/dist/lib/CodeGen/SjLjEHPrepare.cpp vendor/llvm/dist/lib/CodeGen/SlotIndexes.cpp vendor/llvm/dist/lib/CodeGen/SplitKit.cpp vendor/llvm/dist/lib/CodeGen/SplitKit.h vendor/llvm/dist/lib/CodeGen/StackColoring.cpp vendor/llvm/dist/lib/CodeGen/StackMaps.cpp vendor/llvm/dist/lib/CodeGen/StackProtector.cpp vendor/llvm/dist/lib/CodeGen/TailDuplicator.cpp vendor/llvm/dist/lib/CodeGen/TargetFrameLoweringImpl.cpp vendor/llvm/dist/lib/CodeGen/TargetInstrInfo.cpp vendor/llvm/dist/lib/CodeGen/TargetLoweringBase.cpp vendor/llvm/dist/lib/CodeGen/TargetLoweringObjectFileImpl.cpp vendor/llvm/dist/lib/CodeGen/TargetOptionsImpl.cpp vendor/llvm/dist/lib/CodeGen/TargetPassConfig.cpp vendor/llvm/dist/lib/CodeGen/TargetRegisterInfo.cpp vendor/llvm/dist/lib/CodeGen/TargetSchedule.cpp vendor/llvm/dist/lib/CodeGen/TargetSubtargetInfo.cpp vendor/llvm/dist/lib/CodeGen/TwoAddressInstructionPass.cpp vendor/llvm/dist/lib/CodeGen/VirtRegMap.cpp vendor/llvm/dist/lib/CodeGen/WinEHPrepare.cpp vendor/llvm/dist/lib/CodeGen/XRayInstrumentation.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CVTypeDumper.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CVTypeVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CodeViewError.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleSubstream.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleSubstreamVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/RecordSerialization.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolDumper.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDatabase.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDatabaseVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeRecordMapping.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeSerializer.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeStreamMerger.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFContext.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugLine.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDie.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFFormValue.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnit.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/SyntaxHighlighting.h vendor/llvm/dist/lib/DebugInfo/MSF/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/MSF/MappedBlockStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDB.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBExtras.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolBlock.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCustom.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolData.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolExe.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFunc.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolLabel.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolThunk.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/DIPrinter.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h vendor/llvm/dist/lib/Demangle/ItaniumDemangle.cpp vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngine.cpp vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngineBindings.cpp vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/Interpreter/Execution.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindingsStack.h vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcError.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h vendor/llvm/dist/lib/Fuzzer/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/FuzzerCorpus.h vendor/llvm/dist/lib/Fuzzer/FuzzerDefs.h vendor/llvm/dist/lib/Fuzzer/FuzzerDictionary.h vendor/llvm/dist/lib/Fuzzer/FuzzerDriver.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerExtFunctions.def vendor/llvm/dist/lib/Fuzzer/FuzzerFlags.def vendor/llvm/dist/lib/Fuzzer/FuzzerIO.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerIO.h vendor/llvm/dist/lib/Fuzzer/FuzzerIOPosix.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerIOWindows.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerInterface.h vendor/llvm/dist/lib/Fuzzer/FuzzerInternal.h vendor/llvm/dist/lib/Fuzzer/FuzzerLoop.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMerge.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMerge.h vendor/llvm/dist/lib/Fuzzer/FuzzerMutate.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMutate.h vendor/llvm/dist/lib/Fuzzer/FuzzerOptions.h vendor/llvm/dist/lib/Fuzzer/FuzzerRandom.h vendor/llvm/dist/lib/Fuzzer/FuzzerTracePC.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerTracePC.h vendor/llvm/dist/lib/Fuzzer/FuzzerTraceState.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerUtil.h vendor/llvm/dist/lib/Fuzzer/FuzzerUtilPosix.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerUtilWindows.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerValueBitMap.h vendor/llvm/dist/lib/Fuzzer/afl/afl_driver.cpp vendor/llvm/dist/lib/Fuzzer/build.sh vendor/llvm/dist/lib/Fuzzer/test/AbsNegAndConstant64Test.cpp vendor/llvm/dist/lib/Fuzzer/test/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/DSO1.cpp vendor/llvm/dist/lib/Fuzzer/test/DSO2.cpp vendor/llvm/dist/lib/Fuzzer/test/FuzzerUnittest.cpp vendor/llvm/dist/lib/Fuzzer/test/LoadTest.cpp vendor/llvm/dist/lib/Fuzzer/test/OutOfMemorySingleLargeMallocTest.cpp vendor/llvm/dist/lib/Fuzzer/test/RepeatedMemcmp.cpp vendor/llvm/dist/lib/Fuzzer/test/SimpleCmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SingleStrcmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SingleStrncmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SwapCmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/afl-driver-extra-stats.test vendor/llvm/dist/lib/Fuzzer/test/afl-driver-stderr.test vendor/llvm/dist/lib/Fuzzer/test/coverage.test vendor/llvm/dist/lib/Fuzzer/test/dump_coverage.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-customcrossover.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-dirs.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-leak.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-oom.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-segv.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-singleinputs.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-traces-hooks.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer.test vendor/llvm/dist/lib/Fuzzer/test/lit.cfg vendor/llvm/dist/lib/Fuzzer/test/lit.site.cfg.in vendor/llvm/dist/lib/Fuzzer/test/merge.test vendor/llvm/dist/lib/Fuzzer/test/minimize_crash.test vendor/llvm/dist/lib/Fuzzer/test/no-coverage/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/trace-malloc.test vendor/llvm/dist/lib/Fuzzer/test/ubsan/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/ulimit.test vendor/llvm/dist/lib/Fuzzer/test/uninstrumented/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/value-profile-div.test vendor/llvm/dist/lib/Fuzzer/test/value-profile-mem.test vendor/llvm/dist/lib/Fuzzer/test/value-profile-strcmp.test vendor/llvm/dist/lib/Fuzzer/test/value-profile-strncmp.test vendor/llvm/dist/lib/IR/AsmWriter.cpp vendor/llvm/dist/lib/IR/AttributeImpl.h vendor/llvm/dist/lib/IR/Attributes.cpp vendor/llvm/dist/lib/IR/AutoUpgrade.cpp vendor/llvm/dist/lib/IR/BasicBlock.cpp vendor/llvm/dist/lib/IR/Comdat.cpp vendor/llvm/dist/lib/IR/ConstantFold.cpp vendor/llvm/dist/lib/IR/ConstantRange.cpp vendor/llvm/dist/lib/IR/Constants.cpp vendor/llvm/dist/lib/IR/Core.cpp vendor/llvm/dist/lib/IR/DIBuilder.cpp vendor/llvm/dist/lib/IR/DataLayout.cpp vendor/llvm/dist/lib/IR/DebugInfo.cpp vendor/llvm/dist/lib/IR/DebugInfoMetadata.cpp vendor/llvm/dist/lib/IR/DebugLoc.cpp vendor/llvm/dist/lib/IR/DiagnosticInfo.cpp vendor/llvm/dist/lib/IR/Dominators.cpp vendor/llvm/dist/lib/IR/Function.cpp vendor/llvm/dist/lib/IR/GCOV.cpp vendor/llvm/dist/lib/IR/Globals.cpp vendor/llvm/dist/lib/IR/IRBuilder.cpp vendor/llvm/dist/lib/IR/IRPrintingPasses.cpp vendor/llvm/dist/lib/IR/InlineAsm.cpp vendor/llvm/dist/lib/IR/Instruction.cpp vendor/llvm/dist/lib/IR/Instructions.cpp vendor/llvm/dist/lib/IR/IntrinsicInst.cpp vendor/llvm/dist/lib/IR/LLVMContext.cpp vendor/llvm/dist/lib/IR/LLVMContextImpl.cpp vendor/llvm/dist/lib/IR/LLVMContextImpl.h vendor/llvm/dist/lib/IR/MDBuilder.cpp vendor/llvm/dist/lib/IR/Mangler.cpp vendor/llvm/dist/lib/IR/Metadata.cpp vendor/llvm/dist/lib/IR/Module.cpp vendor/llvm/dist/lib/IR/Operator.cpp vendor/llvm/dist/lib/IR/OptBisect.cpp vendor/llvm/dist/lib/IR/Pass.cpp vendor/llvm/dist/lib/IR/PassManager.cpp vendor/llvm/dist/lib/IR/Statepoint.cpp vendor/llvm/dist/lib/IR/Type.cpp vendor/llvm/dist/lib/IR/TypeFinder.cpp vendor/llvm/dist/lib/IR/Value.cpp vendor/llvm/dist/lib/IR/ValueSymbolTable.cpp vendor/llvm/dist/lib/IR/Verifier.cpp vendor/llvm/dist/lib/LTO/CMakeLists.txt vendor/llvm/dist/lib/LTO/Caching.cpp vendor/llvm/dist/lib/LTO/LTO.cpp vendor/llvm/dist/lib/LTO/LTOBackend.cpp vendor/llvm/dist/lib/LTO/LTOCodeGenerator.cpp vendor/llvm/dist/lib/LTO/LTOModule.cpp vendor/llvm/dist/lib/LTO/ThinLTOCodeGenerator.cpp vendor/llvm/dist/lib/LTO/UpdateCompilerUsed.cpp vendor/llvm/dist/lib/LibDriver/LibDriver.cpp vendor/llvm/dist/lib/Linker/IRMover.cpp vendor/llvm/dist/lib/Linker/LinkModules.cpp vendor/llvm/dist/lib/MC/CMakeLists.txt vendor/llvm/dist/lib/MC/ConstantPools.cpp vendor/llvm/dist/lib/MC/ELFObjectWriter.cpp vendor/llvm/dist/lib/MC/MCAsmBackend.cpp vendor/llvm/dist/lib/MC/MCAsmInfo.cpp vendor/llvm/dist/lib/MC/MCAsmInfoCOFF.cpp vendor/llvm/dist/lib/MC/MCAsmInfoDarwin.cpp vendor/llvm/dist/lib/MC/MCAsmInfoELF.cpp vendor/llvm/dist/lib/MC/MCAsmStreamer.cpp vendor/llvm/dist/lib/MC/MCAssembler.cpp vendor/llvm/dist/lib/MC/MCCodeEmitter.cpp vendor/llvm/dist/lib/MC/MCContext.cpp vendor/llvm/dist/lib/MC/MCDisassembler/MCDisassembler.cpp vendor/llvm/dist/lib/MC/MCDisassembler/MCRelocationInfo.cpp vendor/llvm/dist/lib/MC/MCDisassembler/MCSymbolizer.cpp vendor/llvm/dist/lib/MC/MCDwarf.cpp vendor/llvm/dist/lib/MC/MCELFObjectTargetWriter.cpp vendor/llvm/dist/lib/MC/MCELFStreamer.cpp vendor/llvm/dist/lib/MC/MCExpr.cpp vendor/llvm/dist/lib/MC/MCFragment.cpp vendor/llvm/dist/lib/MC/MCInst.cpp vendor/llvm/dist/lib/MC/MCInstPrinter.cpp vendor/llvm/dist/lib/MC/MCInstrAnalysis.cpp vendor/llvm/dist/lib/MC/MCLabel.cpp vendor/llvm/dist/lib/MC/MCLinkerOptimizationHint.cpp vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp vendor/llvm/dist/lib/MC/MCMachObjectTargetWriter.cpp vendor/llvm/dist/lib/MC/MCNullStreamer.cpp vendor/llvm/dist/lib/MC/MCObjectFileInfo.cpp vendor/llvm/dist/lib/MC/MCObjectStreamer.cpp vendor/llvm/dist/lib/MC/MCObjectWriter.cpp vendor/llvm/dist/lib/MC/MCParser/AsmLexer.cpp vendor/llvm/dist/lib/MC/MCParser/AsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/COFFAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/DarwinAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/ELFAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/MCAsmLexer.cpp vendor/llvm/dist/lib/MC/MCParser/MCAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/MCAsmParserExtension.cpp vendor/llvm/dist/lib/MC/MCParser/MCTargetAsmParser.cpp vendor/llvm/dist/lib/MC/MCRegisterInfo.cpp vendor/llvm/dist/lib/MC/MCSection.cpp vendor/llvm/dist/lib/MC/MCSectionCOFF.cpp vendor/llvm/dist/lib/MC/MCSectionELF.cpp vendor/llvm/dist/lib/MC/MCSectionMachO.cpp vendor/llvm/dist/lib/MC/MCStreamer.cpp vendor/llvm/dist/lib/MC/MCSubtargetInfo.cpp vendor/llvm/dist/lib/MC/MCSymbol.cpp vendor/llvm/dist/lib/MC/MCSymbolELF.cpp vendor/llvm/dist/lib/MC/MCTargetOptions.cpp vendor/llvm/dist/lib/MC/MCValue.cpp vendor/llvm/dist/lib/MC/MachObjectWriter.cpp vendor/llvm/dist/lib/MC/StringTableBuilder.cpp vendor/llvm/dist/lib/MC/SubtargetFeature.cpp vendor/llvm/dist/lib/MC/WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/MC/WinCOFFStreamer.cpp vendor/llvm/dist/lib/Object/ArchiveWriter.cpp vendor/llvm/dist/lib/Object/CMakeLists.txt vendor/llvm/dist/lib/Object/Decompressor.cpp vendor/llvm/dist/lib/Object/ELFObjectFile.cpp vendor/llvm/dist/lib/Object/MachOObjectFile.cpp vendor/llvm/dist/lib/Object/ModuleSummaryIndexObjectFile.cpp vendor/llvm/dist/lib/Object/ModuleSymbolTable.cpp vendor/llvm/dist/lib/Object/RecordStreamer.cpp vendor/llvm/dist/lib/Object/RecordStreamer.h vendor/llvm/dist/lib/Object/WasmObjectFile.cpp vendor/llvm/dist/lib/ObjectYAML/CMakeLists.txt vendor/llvm/dist/lib/ObjectYAML/DWARFYAML.cpp vendor/llvm/dist/lib/ObjectYAML/ELFYAML.cpp vendor/llvm/dist/lib/ObjectYAML/MachOYAML.cpp vendor/llvm/dist/lib/ObjectYAML/ObjectYAML.cpp vendor/llvm/dist/lib/Option/Arg.cpp vendor/llvm/dist/lib/Option/ArgList.cpp vendor/llvm/dist/lib/Option/Option.cpp vendor/llvm/dist/lib/Passes/PassBuilder.cpp vendor/llvm/dist/lib/Passes/PassRegistry.def vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMapping.cpp vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMappingReader.cpp vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMappingWriter.cpp vendor/llvm/dist/lib/ProfileData/InstrProf.cpp vendor/llvm/dist/lib/ProfileData/InstrProfReader.cpp vendor/llvm/dist/lib/ProfileData/InstrProfWriter.cpp vendor/llvm/dist/lib/ProfileData/SampleProf.cpp vendor/llvm/dist/lib/ProfileData/SampleProfReader.cpp vendor/llvm/dist/lib/ProfileData/SampleProfWriter.cpp vendor/llvm/dist/lib/Support/APFloat.cpp vendor/llvm/dist/lib/Support/APInt.cpp vendor/llvm/dist/lib/Support/BranchProbability.cpp vendor/llvm/dist/lib/Support/CMakeLists.txt vendor/llvm/dist/lib/Support/CachePruning.cpp vendor/llvm/dist/lib/Support/Chrono.cpp vendor/llvm/dist/lib/Support/CommandLine.cpp vendor/llvm/dist/lib/Support/Compression.cpp vendor/llvm/dist/lib/Support/Dwarf.cpp vendor/llvm/dist/lib/Support/DynamicLibrary.cpp vendor/llvm/dist/lib/Support/FileOutputBuffer.cpp vendor/llvm/dist/lib/Support/Host.cpp vendor/llvm/dist/lib/Support/LockFileManager.cpp vendor/llvm/dist/lib/Support/MD5.cpp vendor/llvm/dist/lib/Support/ManagedStatic.cpp vendor/llvm/dist/lib/Support/MemoryBuffer.cpp vendor/llvm/dist/lib/Support/Path.cpp vendor/llvm/dist/lib/Support/RWMutex.cpp vendor/llvm/dist/lib/Support/Signals.cpp vendor/llvm/dist/lib/Support/SourceMgr.cpp vendor/llvm/dist/lib/Support/StringRef.cpp vendor/llvm/dist/lib/Support/TargetParser.cpp vendor/llvm/dist/lib/Support/Threading.cpp vendor/llvm/dist/lib/Support/Timer.cpp vendor/llvm/dist/lib/Support/Triple.cpp vendor/llvm/dist/lib/Support/Twine.cpp vendor/llvm/dist/lib/Support/Unix/Path.inc vendor/llvm/dist/lib/Support/Unix/Signals.inc vendor/llvm/dist/lib/Support/Windows/DynamicLibrary.inc vendor/llvm/dist/lib/Support/Windows/Mutex.inc vendor/llvm/dist/lib/Support/Windows/Path.inc vendor/llvm/dist/lib/Support/Windows/Process.inc vendor/llvm/dist/lib/Support/Windows/Program.inc vendor/llvm/dist/lib/Support/Windows/RWMutex.inc vendor/llvm/dist/lib/Support/Windows/Signals.inc vendor/llvm/dist/lib/Support/Windows/ThreadLocal.inc vendor/llvm/dist/lib/Support/YAMLTraits.cpp vendor/llvm/dist/lib/Support/raw_ostream.cpp vendor/llvm/dist/lib/TableGen/Record.cpp vendor/llvm/dist/lib/TableGen/TGParser.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64.h vendor/llvm/dist/lib/Target/AArch64/AArch64.td vendor/llvm/dist/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64AddressTypePromotion.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CallLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CallLowering.h vendor/llvm/dist/lib/Target/AArch64/AArch64ConditionOptimizer.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ConditionalCompares.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FastISel.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FrameLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64GenRegisterBankInfo.def vendor/llvm/dist/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrFormats.td vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.td vendor/llvm/dist/lib/Target/AArch64/AArch64InstructionSelector.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64LegalizerInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64LegalizerInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBankInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBankInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64SchedA53.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedA57.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedFalkor.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedKryoDetails.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedM1.td vendor/llvm/dist/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h vendor/llvm/dist/lib/Target/AArch64/AArch64SystemOperands.td vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.h vendor/llvm/dist/lib/Target/AArch64/AArch64TargetTransformInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetTransformInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64VectorByElementOpt.cpp vendor/llvm/dist/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp vendor/llvm/dist/lib/Target/AArch64/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp vendor/llvm/dist/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp vendor/llvm/dist/lib/Target/AArch64/Utils/AArch64BaseInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallingConv.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUIntrinsics.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineFunction.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPTNote.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp vendor/llvm/dist/lib/Target/AMDGPU/BUFInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/DSInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h vendor/llvm/dist/lib/Target/AMDGPU/EvergreenInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/FLATInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/GCNHazardRecognizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNHazardRecognizer.h vendor/llvm/dist/lib/Target/AMDGPU/GCNSchedStrategy.cpp vendor/llvm/dist/lib/Target/AMDGPU/GCNSchedStrategy.h vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MIMGInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/Processors.td vendor/llvm/dist/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600FrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600FrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600InstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600InstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/R600Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIDefines.h vendor/llvm/dist/lib/Target/AMDGPU/SIFixSGPRCopies.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFoldOperands.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/SIInsertSkips.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInsertWaits.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInstrFormats.td vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.td vendor/llvm/dist/lib/Target/AMDGPU/SIInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/SIIntrinsics.td vendor/llvm/dist/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/SILowerControlFlow.cpp vendor/llvm/dist/lib/Target/AMDGPU/SILowerI1Copies.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIMachineScheduler.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineScheduler.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.td vendor/llvm/dist/lib/Target/AMDGPU/SISchedule.td vendor/llvm/dist/lib/Target/AMDGPU/SIShrinkInstructions.cpp vendor/llvm/dist/lib/Target/AMDGPU/SMInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/SOPInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h vendor/llvm/dist/lib/Target/AMDGPU/VOP1Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOP2Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOP3Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOPCInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOPInstructions.td vendor/llvm/dist/lib/Target/ARM/A15SDOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARM.h vendor/llvm/dist/lib/Target/ARM/ARM.td vendor/llvm/dist/lib/Target/ARM/ARMAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.h vendor/llvm/dist/lib/Target/ARM/ARMBasicBlockInfo.h vendor/llvm/dist/lib/Target/ARM/ARMCallLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMCallLowering.h vendor/llvm/dist/lib/Target/ARM/ARMComputeBlockSize.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantIslandPass.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantPoolValue.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantPoolValue.h vendor/llvm/dist/lib/Target/ARM/ARMExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/ARM/ARMFastISel.cpp vendor/llvm/dist/lib/Target/ARM/ARMFeatures.h vendor/llvm/dist/lib/Target/ARM/ARMFrameLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h vendor/llvm/dist/lib/Target/ARM/ARMInstrFormats.td vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td vendor/llvm/dist/lib/Target/ARM/ARMInstrVFP.td vendor/llvm/dist/lib/Target/ARM/ARMInstructionSelector.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstructionSelector.h vendor/llvm/dist/lib/Target/ARM/ARMLegalizerInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMLegalizerInfo.h vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMMCInstLower.cpp vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.h vendor/llvm/dist/lib/Target/ARM/ARMRegisterBankInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMRegisterBankInfo.h vendor/llvm/dist/lib/Target/ARM/ARMSchedule.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleA9.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleR52.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleSwift.td vendor/llvm/dist/lib/Target/ARM/ARMSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.cpp vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.h vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.h vendor/llvm/dist/lib/Target/ARM/ARMTargetObjectFile.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetObjectFile.h vendor/llvm/dist/lib/Target/ARM/ARMTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetTransformInfo.h vendor/llvm/dist/lib/Target/ARM/AsmParser/ARMAsmParser.cpp vendor/llvm/dist/lib/Target/ARM/CMakeLists.txt vendor/llvm/dist/lib/Target/ARM/Disassembler/ARMDisassembler.cpp vendor/llvm/dist/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp vendor/llvm/dist/lib/Target/ARM/InstPrinter/ARMInstPrinter.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1FrameLowering.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2ITBlockPass.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2SizeReduction.cpp vendor/llvm/dist/lib/Target/ARM/ThumbRegisterInfo.cpp vendor/llvm/dist/lib/Target/AVR/AVRAsmPrinter.cpp vendor/llvm/dist/lib/Target/AVR/AVRExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/AVR/AVRISelLowering.cpp vendor/llvm/dist/lib/Target/AVR/AVRInstrInfo.td vendor/llvm/dist/lib/Target/AVR/AVRInstrumentFunctions.cpp vendor/llvm/dist/lib/Target/AVR/AVRMCInstLower.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.h vendor/llvm/dist/lib/Target/BPF/BPFISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/BPF/BPFISelLowering.cpp vendor/llvm/dist/lib/Target/BPF/BPFInstrInfo.td vendor/llvm/dist/lib/Target/BPF/BPFMCInstLower.cpp vendor/llvm/dist/lib/Target/BPF/BPFMCInstLower.h vendor/llvm/dist/lib/Target/BPF/BPFRegisterInfo.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp vendor/llvm/dist/lib/Target/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.h vendor/llvm/dist/lib/Target/Hexagon/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp vendor/llvm/dist/lib/Target/Hexagon/Hexagon.td vendor/llvm/dist/lib/Target/Hexagon/HexagonAsmPrinter.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBitSimplify.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBlockRanges.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCommonGEP.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCopyToCombine.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonEarlyIfConv.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonExpandCondsets.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFixupHwLoops.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFrameLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenExtract.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenInsert.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenMux.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonHardwareLoops.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.h vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormats.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsics.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsicsV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonMCInstLower.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonNewValueJump.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonOperands.td vendor/llvm/dist/lib/Target/Hexagon/HexagonOptAddrMode.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonPatterns.td vendor/llvm/dist/lib/Target/Hexagon/HexagonRDFOpt.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonSchedule.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV55.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSplitDouble.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSubtarget.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSubtarget.h vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.h vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.h vendor/llvm/dist/lib/Target/Hexagon/LLVMBuild.txt vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h vendor/llvm/dist/lib/Target/Hexagon/RDFCopy.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFCopy.h vendor/llvm/dist/lib/Target/Hexagon/RDFDeadCode.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.h vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.h vendor/llvm/dist/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp vendor/llvm/dist/lib/Target/Lanai/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/Lanai/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/LanaiInstrInfo.cpp vendor/llvm/dist/lib/Target/Lanai/LanaiMCInstLower.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LLVMBuild.txt vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430BranchSelector.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430CallingConv.td vendor/llvm/dist/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.h vendor/llvm/dist/lib/Target/MSP430/MSP430MCInstLower.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430MachineFunctionInfo.h vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm/dist/lib/Target/Mips/Disassembler/MipsDisassembler.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp vendor/llvm/dist/lib/Target/Mips/MicroMips64r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips.td vendor/llvm/dist/lib/Target/Mips/Mips16HardFloat.cpp vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips32r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips64InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.cpp vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.h vendor/llvm/dist/lib/Target/Mips/MipsConstantIslandPass.cpp vendor/llvm/dist/lib/Target/Mips/MipsDelaySlotFiller.cpp vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp vendor/llvm/dist/lib/Target/Mips/MipsHazardSchedule.cpp vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.h vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.h vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsLongBranch.cpp vendor/llvm/dist/lib/Target/Mips/MipsMachineFunction.cpp vendor/llvm/dist/lib/Target/Mips/MipsMachineFunction.h vendor/llvm/dist/lib/Target/Mips/MipsOptionRecord.h vendor/llvm/dist/lib/Target/Mips/MipsOs16.cpp vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.td vendor/llvm/dist/lib/Target/Mips/MipsSEFrameLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEFrameLowering.h vendor/llvm/dist/lib/Target/Mips/MipsSEISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEInstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsSubtarget.cpp vendor/llvm/dist/lib/Target/Mips/MipsSubtarget.h vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.cpp vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.h vendor/llvm/dist/lib/Target/NVPTX/CMakeLists.txt vendor/llvm/dist/lib/Target/NVPTX/InstPrinter/NVPTXInstPrinter.cpp vendor/llvm/dist/lib/Target/NVPTX/LLVMBuild.txt vendor/llvm/dist/lib/Target/NVPTX/NVPTX.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelDAGToDAG.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXImageOptimizer.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXIntrinsics.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerArgs.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXMCExpr.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXMCExpr.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXPeephole.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXRegisterInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXRegisterInfo.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXSection.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXSubtarget.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXSubtarget.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetMachine.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetMachine.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetTransformInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVVMReflect.cpp vendor/llvm/dist/lib/Target/PowerPC/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h vendor/llvm/dist/lib/Target/PowerPC/PPC.h vendor/llvm/dist/lib/Target/PowerPC/PPCAsmPrinter.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCBranchSelector.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCCTRLoops.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCFrameLowering.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstr64Bit.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrAltivec.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrVSX.td vendor/llvm/dist/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMCInstLower.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMIPeephole.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleP8.td vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.h vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.h vendor/llvm/dist/lib/Target/PowerPC/PPCTargetStreamer.h vendor/llvm/dist/lib/Target/PowerPC/PPCTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetTransformInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCVSXCopy.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp vendor/llvm/dist/lib/Target/RISCV/RISCVInstrFormats.td vendor/llvm/dist/lib/Target/RISCV/RISCVTargetMachine.cpp vendor/llvm/dist/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Sparc/SparcFrameLowering.cpp vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.cpp vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.h vendor/llvm/dist/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp vendor/llvm/dist/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp vendor/llvm/dist/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.cpp vendor/llvm/dist/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.h vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZElimCompare.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrVector.td vendor/llvm/dist/lib/Target/SystemZ/SystemZLongBranch.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZMachineScheduler.h vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ13.td vendor/llvm/dist/lib/Target/SystemZ/SystemZShortenInst.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetMachine.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetMachine.h vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetTransformInfo.h vendor/llvm/dist/lib/Target/TargetLoweringObjectFile.cpp vendor/llvm/dist/lib/Target/TargetMachine.cpp vendor/llvm/dist/lib/Target/WebAssembly/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h vendor/llvm/dist/lib/Target/WebAssembly/README.txt vendor/llvm/dist/lib/Target/WebAssembly/WebAssembly.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFastISel.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelLowering.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrCall.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrControl.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrFloat.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrMemory.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMCInstLower.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyPeephole.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyUtilities.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyUtilities.h vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmInstrumentation.h vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParser.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86Operand.h vendor/llvm/dist/lib/Target/X86/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/Disassembler/X86Disassembler.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h vendor/llvm/dist/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp vendor/llvm/dist/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h vendor/llvm/dist/lib/Target/X86/InstPrinter/X86InstComments.cpp vendor/llvm/dist/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp vendor/llvm/dist/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86BaseInfo.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/Target/X86/X86.h vendor/llvm/dist/lib/Target/X86/X86.td vendor/llvm/dist/lib/Target/X86/X86AsmPrinter.h vendor/llvm/dist/lib/Target/X86/X86CallFrameOptimization.cpp vendor/llvm/dist/lib/Target/X86/X86CallLowering.cpp vendor/llvm/dist/lib/Target/X86/X86CallLowering.h vendor/llvm/dist/lib/Target/X86/X86CallingConv.td vendor/llvm/dist/lib/Target/X86/X86EvexToVex.cpp vendor/llvm/dist/lib/Target/X86/X86ExpandPseudo.cpp vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp vendor/llvm/dist/lib/Target/X86/X86FixupBWInsts.cpp vendor/llvm/dist/lib/Target/X86/X86FixupLEAs.cpp vendor/llvm/dist/lib/Target/X86/X86FrameLowering.cpp vendor/llvm/dist/lib/Target/X86/X86FrameLowering.h vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h vendor/llvm/dist/lib/Target/X86/X86Instr3DNow.td vendor/llvm/dist/lib/Target/X86/X86InstrAVX512.td vendor/llvm/dist/lib/Target/X86/X86InstrBuilder.h vendor/llvm/dist/lib/Target/X86/X86InstrCMovSetCC.td vendor/llvm/dist/lib/Target/X86/X86InstrCompiler.td vendor/llvm/dist/lib/Target/X86/X86InstrControl.td vendor/llvm/dist/lib/Target/X86/X86InstrFMA.td vendor/llvm/dist/lib/Target/X86/X86InstrFMA3Info.cpp vendor/llvm/dist/lib/Target/X86/X86InstrFMA3Info.h vendor/llvm/dist/lib/Target/X86/X86InstrFPStack.td vendor/llvm/dist/lib/Target/X86/X86InstrFormats.td vendor/llvm/dist/lib/Target/X86/X86InstrFragmentsSIMD.td vendor/llvm/dist/lib/Target/X86/X86InstrInfo.cpp vendor/llvm/dist/lib/Target/X86/X86InstrInfo.h vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td vendor/llvm/dist/lib/Target/X86/X86InstrMMX.td vendor/llvm/dist/lib/Target/X86/X86InstrMPX.td vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td vendor/llvm/dist/lib/Target/X86/X86InstrShiftRotate.td vendor/llvm/dist/lib/Target/X86/X86InstrSystem.td vendor/llvm/dist/lib/Target/X86/X86InstrTSX.td vendor/llvm/dist/lib/Target/X86/X86InstrVMX.td vendor/llvm/dist/lib/Target/X86/X86InstrXOP.td vendor/llvm/dist/lib/Target/X86/X86InterleavedAccess.cpp vendor/llvm/dist/lib/Target/X86/X86IntrinsicsInfo.h vendor/llvm/dist/lib/Target/X86/X86MCInstLower.cpp vendor/llvm/dist/lib/Target/X86/X86MachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/X86/X86OptimizeLEAs.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.td vendor/llvm/dist/lib/Target/X86/X86Schedule.td vendor/llvm/dist/lib/Target/X86/X86SelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.h vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp vendor/llvm/dist/lib/Target/X86/X86TargetMachine.h vendor/llvm/dist/lib/Target/X86/X86TargetTransformInfo.cpp vendor/llvm/dist/lib/Target/X86/X86TargetTransformInfo.h vendor/llvm/dist/lib/Target/X86/X86VZeroUpper.cpp vendor/llvm/dist/lib/Target/XCore/InstPrinter/XCoreInstPrinter.cpp vendor/llvm/dist/lib/Target/XCore/InstPrinter/XCoreInstPrinter.h vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.h vendor/llvm/dist/lib/Target/XCore/XCoreFrameLowering.cpp vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.cpp vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.h vendor/llvm/dist/lib/Target/XCore/XCoreMachineFunctionInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.h vendor/llvm/dist/lib/Transforms/Coroutines/CoroElide.cpp vendor/llvm/dist/lib/Transforms/Coroutines/CoroFrame.cpp vendor/llvm/dist/lib/Transforms/Coroutines/CoroInstr.h vendor/llvm/dist/lib/Transforms/Coroutines/CoroSplit.cpp vendor/llvm/dist/lib/Transforms/Coroutines/Coroutines.cpp vendor/llvm/dist/lib/Transforms/IPO/ArgumentPromotion.cpp vendor/llvm/dist/lib/Transforms/IPO/ConstantMerge.cpp vendor/llvm/dist/lib/Transforms/IPO/CrossDSOCFI.cpp vendor/llvm/dist/lib/Transforms/IPO/DeadArgumentElimination.cpp vendor/llvm/dist/lib/Transforms/IPO/FunctionAttrs.cpp vendor/llvm/dist/lib/Transforms/IPO/FunctionImport.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalDCE.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalSplit.cpp vendor/llvm/dist/lib/Transforms/IPO/IPConstantPropagation.cpp vendor/llvm/dist/lib/Transforms/IPO/InlineSimple.cpp vendor/llvm/dist/lib/Transforms/IPO/Inliner.cpp vendor/llvm/dist/lib/Transforms/IPO/LowerTypeTests.cpp vendor/llvm/dist/lib/Transforms/IPO/MergeFunctions.cpp vendor/llvm/dist/lib/Transforms/IPO/PartialInlining.cpp vendor/llvm/dist/lib/Transforms/IPO/PassManagerBuilder.cpp vendor/llvm/dist/lib/Transforms/IPO/SampleProfile.cpp vendor/llvm/dist/lib/Transforms/IPO/StripSymbols.cpp vendor/llvm/dist/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp vendor/llvm/dist/lib/Transforms/IPO/WholeProgramDevirt.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAddSub.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCalls.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCasts.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineInternal.h vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombinePHI.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSelect.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineShifts.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineVectorOps.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstructionCombining.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/AddressSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/InstrProfiling.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/Instrumentation.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/MemorySanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/PGOInstrumentation.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/SanitizerCoverage.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/ThreadSanitizer.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCContract.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCOpts.cpp vendor/llvm/dist/lib/Transforms/Scalar/ADCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp vendor/llvm/dist/lib/Transforms/Scalar/BDCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Scalar/ConstantHoisting.cpp vendor/llvm/dist/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp vendor/llvm/dist/lib/Transforms/Scalar/DCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/DeadStoreElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/EarlyCSE.cpp vendor/llvm/dist/lib/Transforms/Scalar/Float2Int.cpp vendor/llvm/dist/lib/Transforms/Scalar/GVN.cpp vendor/llvm/dist/lib/Transforms/Scalar/GVNHoist.cpp vendor/llvm/dist/lib/Transforms/Scalar/GuardWidening.cpp vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp vendor/llvm/dist/lib/Transforms/Scalar/LICM.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoadCombine.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopDeletion.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopDistribute.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopIdiomRecognize.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopInstSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopInterchange.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopLoadElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopPassManager.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopRotation.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopSimplifyCFG.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopSink.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnrollPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnswitch.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp vendor/llvm/dist/lib/Transforms/Scalar/MemCpyOptimizer.cpp vendor/llvm/dist/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp vendor/llvm/dist/lib/Transforms/Scalar/NaryReassociate.cpp vendor/llvm/dist/lib/Transforms/Scalar/NewGVN.cpp vendor/llvm/dist/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp vendor/llvm/dist/lib/Transforms/Scalar/Reassociate.cpp vendor/llvm/dist/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp vendor/llvm/dist/lib/Transforms/Scalar/SROA.cpp vendor/llvm/dist/lib/Transforms/Scalar/Scalar.cpp vendor/llvm/dist/lib/Transforms/Scalar/Scalarizer.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimplifyCFGPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/Sink.cpp vendor/llvm/dist/lib/Transforms/Utils/AddDiscriminators.cpp vendor/llvm/dist/lib/Transforms/Utils/BasicBlockUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/BuildLibCalls.cpp vendor/llvm/dist/lib/Transforms/Utils/BypassSlowDivision.cpp vendor/llvm/dist/lib/Transforms/Utils/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Utils/CloneFunction.cpp vendor/llvm/dist/lib/Transforms/Utils/CloneModule.cpp vendor/llvm/dist/lib/Transforms/Utils/CodeExtractor.cpp vendor/llvm/dist/lib/Transforms/Utils/DemoteRegToStack.cpp vendor/llvm/dist/lib/Transforms/Utils/Evaluator.cpp vendor/llvm/dist/lib/Transforms/Utils/FunctionComparator.cpp vendor/llvm/dist/lib/Transforms/Utils/FunctionImportUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/GlobalStatus.cpp vendor/llvm/dist/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp vendor/llvm/dist/lib/Transforms/Utils/InlineFunction.cpp vendor/llvm/dist/lib/Transforms/Utils/LCSSA.cpp vendor/llvm/dist/lib/Transforms/Utils/LibCallsShrinkWrap.cpp vendor/llvm/dist/lib/Transforms/Utils/Local.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopSimplify.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnroll.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollPeel.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollRuntime.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/LowerSwitch.cpp vendor/llvm/dist/lib/Transforms/Utils/Mem2Reg.cpp vendor/llvm/dist/lib/Transforms/Utils/MetaRenamer.cpp vendor/llvm/dist/lib/Transforms/Utils/ModuleUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/PromoteMemoryToRegister.cpp vendor/llvm/dist/lib/Transforms/Utils/SSAUpdater.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyIndVar.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyInstructions.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyLibCalls.cpp vendor/llvm/dist/lib/Transforms/Utils/Utils.cpp vendor/llvm/dist/lib/Transforms/Utils/ValueMapper.cpp vendor/llvm/dist/lib/Transforms/Vectorize/BBVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp vendor/llvm/dist/lib/XRay/CMakeLists.txt vendor/llvm/dist/lib/XRay/Trace.cpp vendor/llvm/dist/projects/CMakeLists.txt vendor/llvm/dist/runtimes/CMakeLists.txt vendor/llvm/dist/test/Analysis/BasicAA/modref.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/basic.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/add-sub.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/bit-ops.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/br.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/extractelement.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fabs.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fadd.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fdiv.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fmul.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fsub.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/insertelement.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/mul.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/shifts.ll vendor/llvm/dist/test/Analysis/CostModel/PowerPC/load_store.ll vendor/llvm/dist/test/Analysis/CostModel/X86/arith-fp.ll vendor/llvm/dist/test/Analysis/CostModel/X86/bitreverse.ll vendor/llvm/dist/test/Analysis/CostModel/X86/shuffle-single-src.ll vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-ashr-cost.ll vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-lshr-cost.ll vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-shl-cost.ll vendor/llvm/dist/test/Analysis/Delinearization/a.ll vendor/llvm/dist/test/Analysis/Delinearization/iv_times_constant_in_subscript.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/atomics.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/kernel-args.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/no-return-blocks.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/workitem-intrinsics.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/multiple-strides-rt-memory-checks.ll vendor/llvm/dist/test/Analysis/MemoryDependenceAnalysis/invalidation.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/2012-05-18-LoopPredRecurse.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/flags-from-poison.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/invalidation.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/pr24757.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/sext-inreg.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count-pow2.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/zext-wrap.ll vendor/llvm/dist/test/Analysis/ValueTracking/known-nonnull-at.ll vendor/llvm/dist/test/Assembler/auto_upgrade_intrinsics.ll vendor/llvm/dist/test/Assembler/debug-info.ll vendor/llvm/dist/test/Assembler/diexpression.ll vendor/llvm/dist/test/Assembler/fast-math-flags.ll vendor/llvm/dist/test/Bitcode/compatibility-3.6.ll vendor/llvm/dist/test/Bitcode/compatibility-3.7.ll vendor/llvm/dist/test/Bitcode/compatibility-3.8.ll vendor/llvm/dist/test/Bitcode/compatibility-3.9.ll vendor/llvm/dist/test/Bitcode/compatibility.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary.ll vendor/llvm/dist/test/BugPoint/compile-custom.ll vendor/llvm/dist/test/BugPoint/invalid-debuginfo.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-callingconv.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-stackprotect.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-regbankselect.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/call-translator.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/gisel-abort.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/irtranslator-exceptions.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-add.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-and.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-combines.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-div.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-ext.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-fcmp.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-gep.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-or.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-rem.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-simple.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/regbankselect-default.mir vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/translate-gep.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-gep-opt.ll vendor/llvm/dist/test/CodeGen/AArch64/argument-blocks.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi-varargs.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-addr-type-promotion.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-addrmode.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-atomic.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-bitfield-extract.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-blockaddress.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-builtins-linux.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-code-model-large-abs.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-codegen-prepare-extload.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-const-addr.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-crc32.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-elf-globals.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-extern-weak.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fast-isel-addr-offset.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-indexed-vector-ldst.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-inline-asm.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-memset-inline.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-movi.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-neon-copy.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-neon-v8.1a.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-regress-opt-cmp.mir vendor/llvm/dist/test/CodeGen/AArch64/arm64-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-variadic-aapcs.ll vendor/llvm/dist/test/CodeGen/AArch64/bitfield-insert.ll vendor/llvm/dist/test/CodeGen/AArch64/blockaddress.ll vendor/llvm/dist/test/CodeGen/AArch64/branch-relax-cbz.ll vendor/llvm/dist/test/CodeGen/AArch64/code-model-large-abs.ll vendor/llvm/dist/test/CodeGen/AArch64/concat_vector-scalar-combine.ll vendor/llvm/dist/test/CodeGen/AArch64/cpus.ll vendor/llvm/dist/test/CodeGen/AArch64/eliminate-trunc.ll vendor/llvm/dist/test/CodeGen/AArch64/extern-weak.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-tbz.ll vendor/llvm/dist/test/CodeGen/AArch64/fpimm.ll vendor/llvm/dist/test/CodeGen/AArch64/jump-table.ll vendor/llvm/dist/test/CodeGen/AArch64/large-consts.ll vendor/llvm/dist/test/CodeGen/AArch64/ldst-opt.mir vendor/llvm/dist/test/CodeGen/AArch64/literal_pools_float.ll vendor/llvm/dist/test/CodeGen/AArch64/machine-combiner-madd.ll vendor/llvm/dist/test/CodeGen/AArch64/mature-mc-support.ll vendor/llvm/dist/test/CodeGen/AArch64/merge-store.ll vendor/llvm/dist/test/CodeGen/AArch64/misched-fusion.ll vendor/llvm/dist/test/CodeGen/AArch64/movimm-wzr.mir vendor/llvm/dist/test/CodeGen/AArch64/movw-shift-encoding.ll vendor/llvm/dist/test/CodeGen/AArch64/optimize-cond-branch.ll vendor/llvm/dist/test/CodeGen/AArch64/regcoal-physreg.mir vendor/llvm/dist/test/CodeGen/AArch64/regress-tblgen-chains.ll vendor/llvm/dist/test/CodeGen/AArch64/remat.ll vendor/llvm/dist/test/CodeGen/AArch64/stack-protector-target.ll vendor/llvm/dist/test/CodeGen/AArch64/stack_guard_remat.ll vendor/llvm/dist/test/CodeGen/AArch64/tbz-tbnz.ll vendor/llvm/dist/test/CodeGen/AArch64/vector_merge_dep_check.ll vendor/llvm/dist/test/CodeGen/AMDGPU/32-bit-local-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add-debug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add.i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add_i128.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add_i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/addrspacecast-constantexpr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/addrspacecast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgcn.bitcast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgcn.private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu-codegenprepare-i16-to-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu-shader-calling-convention.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu.private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu.work-item-intrinsics.deprecated.ll vendor/llvm/dist/test/CodeGen/AMDGPU/and-gcn.ll vendor/llvm/dist/test/CodeGen/AMDGPU/and.ll vendor/llvm/dist/test/CodeGen/AMDGPU/annotate-kernel-features-hsa.ll vendor/llvm/dist/test/CodeGen/AMDGPU/annotate-kernel-features.ll vendor/llvm/dist/test/CodeGen/AMDGPU/anonymous-gv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/anyext.ll vendor/llvm/dist/test/CodeGen/AMDGPU/array-ptr-calc-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/array-ptr-calc-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/atomic_cmp_swap_local.ll vendor/llvm/dist/test/CodeGen/AMDGPU/atomic_load_add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/atomic_load_sub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/attr-amdgpu-num-sgpr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/attr-amdgpu-num-vgpr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/attr-amdgpu-waves-per-eu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/attr-unparseable.ll vendor/llvm/dist/test/CodeGen/AMDGPU/basic-branch.ll vendor/llvm/dist/test/CodeGen/AMDGPU/basic-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bfe_uint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bfi_int.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bfm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/big_alu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitcast-vector-extract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitreverse-inline-immediates.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitreverse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/br_cc.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/branch-condition-and.ll vendor/llvm/dist/test/CodeGen/AMDGPU/branch-relax-spill.ll vendor/llvm/dist/test/CodeGen/AMDGPU/branch-relaxation.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bswap.ll vendor/llvm/dist/test/CodeGen/AMDGPU/build_vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/call.ll vendor/llvm/dist/test/CodeGen/AMDGPU/calling-conventions.ll vendor/llvm/dist/test/CodeGen/AMDGPU/captured-frame-index.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cf-loop-on-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cf-stack-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cf_end.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-addressing-modes-flat.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-addressing-modes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-bitfield-extract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cndmask-no-def-vcc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/coalescer-subrange-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/coalescer_remat.ll vendor/llvm/dist/test/CodeGen/AMDGPU/codegen-prepare-addrmode-sext.ll vendor/llvm/dist/test/CodeGen/AMDGPU/combine_vloads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/commute-compares.ll vendor/llvm/dist/test/CodeGen/AMDGPU/commute-shifts.ll vendor/llvm/dist/test/CodeGen/AMDGPU/commute_modifiers.ll vendor/llvm/dist/test/CodeGen/AMDGPU/concat_vectors.ll vendor/llvm/dist/test/CodeGen/AMDGPU/constant-fold-imm-immreg.mir vendor/llvm/dist/test/CodeGen/AMDGPU/constant-fold-mi-operands.ll vendor/llvm/dist/test/CodeGen/AMDGPU/control-flow-fastregalloc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/convergent-inlineasm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/copy-illegal-type.ll vendor/llvm/dist/test/CodeGen/AMDGPU/copy-to-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctlz.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctlz_zero_undef.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctpop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctpop64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cttz_zero_undef.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cube.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cvt_flr_i32_f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cvt_rpi_i32_f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/dagcombine-reassociate-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/dagcombiner-bug-illegal-vec4-int-to-fp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/debug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/debugger-emit-prologue.ll vendor/llvm/dist/test/CodeGen/AMDGPU/debugger-insert-nops.ll vendor/llvm/dist/test/CodeGen/AMDGPU/debugger-reserve-regs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/default-fp-mode.ll vendor/llvm/dist/test/CodeGen/AMDGPU/detect-dead-lanes.mir vendor/llvm/dist/test/CodeGen/AMDGPU/disconnected-predset-break-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/drop-mem-operand-move-smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds-negative-offset-addressing-mode-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds-sub-offset.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2_offset_order.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2_superreg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2st64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_write2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_write2st64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/dynamic_stackalloc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/elf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/elf.r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/else.ll vendor/llvm/dist/test/CodeGen/AMDGPU/empty-function.ll vendor/llvm/dist/test/CodeGen/AMDGPU/endcf-loop-header.ll vendor/llvm/dist/test/CodeGen/AMDGPU/exceed-max-sgprs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extend-bit-ops-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extload-align.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extload-private.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extload.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract-vector-elt-build-vector-combine.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extractelt-to-trunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fabs.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fabs.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fabs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd-fma-fmul-combine.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcanonicalize.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcanonicalize.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fceil.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fceil64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcmp-cnd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcmp-cnde-int-args.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcmp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcmp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcmp64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fconst64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcopysign.f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcopysign.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fdiv.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fdiv.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fdiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ffloor.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ffloor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-for-global-subtarget-feature.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-scratch-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat_atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat_atomics_i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fma-combine.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fma.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fma.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax3.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax_legacy.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax_legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmaxnum.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmaxnum.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin_legacy.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin_legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fminnum.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fminnum.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul-2-combine-multi-use.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmuladd.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmuladd.f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmuladd.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fnearbyint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-combines.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-fabs.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-fabs.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-fabs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp-classify.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp16_to_fp32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp16_to_fp64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp32_to_fp16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_sint.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_sint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_uint.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_uint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fpext.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fpext.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fptosi.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fptoui.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fptrunc.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fptrunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fract.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/frem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsqrt.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsqrt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsub.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsub64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ftrunc.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ftrunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gep-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-directive.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-extload-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-variable-relocs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global_atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global_atomics_i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gv-const-addrspace.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gv-offset-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/half.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-default-device.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-fp-mode.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-func.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-globals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-group-segment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-note-no-func.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa.ll vendor/llvm/dist/test/CodeGen/AMDGPU/i1-copy-implicit-def.ll vendor/llvm/dist/test/CodeGen/AMDGPU/i1-copy-phi.ll vendor/llvm/dist/test/CodeGen/AMDGPU/i8-to-double-to-float.ll vendor/llvm/dist/test/CodeGen/AMDGPU/icmp-select-sete-reverse-args.ll vendor/llvm/dist/test/CodeGen/AMDGPU/icmp.i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/icmp64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/image-attributes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/image-resource-id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/imm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/imm16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-addressing-si-noopt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-addressing-si.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-private-64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/infinite-loop-evergreen.ll vendor/llvm/dist/test/CodeGen/AMDGPU/infinite-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inline-asm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inline-calls.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inline-constraints.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inlineasm-16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inlineasm-illegal-type.ll vendor/llvm/dist/test/CodeGen/AMDGPU/insert-waits-exp.mir vendor/llvm/dist/test/CodeGen/AMDGPU/insert_subreg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/insert_vector_elt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inserted-wait-states.mir vendor/llvm/dist/test/CodeGen/AMDGPU/invalid-addrspacecast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/invariant-load-no-alias-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/invert-br-undef-vcc.mir vendor/llvm/dist/test/CodeGen/AMDGPU/kcache-fold.ll vendor/llvm/dist/test/CodeGen/AMDGPU/kernarg-stack-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/kernel-args.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-alloca-compute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-alloca-graphics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-constant-initializer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-work-group-promote-alloca.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-initializer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-m0-init-in-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-oqap-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-output-queue.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-zero-initializer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/legalizedag-bug-expand-setcc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/literals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/liveness.mir vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.kill.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.load.dword.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.dec.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.inc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.sc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.vol.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.class.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.class.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cos.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cos.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cubeid.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cubema.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cubesc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cubetc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.fmas.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.scale.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bpermute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ds.permute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ds.swizzle.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fdiv.fast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fmul.legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fract.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.exp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.exp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.mant.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.mant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.groupstaticsize.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.image.getlod.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.image.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.o.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.interp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.kernarg.segment.ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ldexp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ldexp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.lerp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.log.clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mbcnt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mov.dpp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mqsad.pk.u16.u8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mqsad.u32.u8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.msad.u8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.qsad.pk.u16.u8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.queue.ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.readlane.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.vol.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.vol.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.decperflevel.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.getreg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.incperflevel.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.memrealtime.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.memtime.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.sleep.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sad.hi.u8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sad.u16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sad.u8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sffbh.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sin.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sin.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.trig.preop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.wave.barrier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.workgroup.id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.workitem.id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.ceil.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.cos.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.cos.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.dbg.value.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.exp2.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.exp2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.floor.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.fma.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.fmuladd.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.log2.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.log2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.maxnum.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.memcpy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.minnum.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.dot4.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.group.barrier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.read.local.size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.recipsqrt.clamped.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.recipsqrt.ieee.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.tex.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.rint.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.rint.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.rint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.round.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.round.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.sin.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.sin.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.sqrt.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.trunc.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-input-fold.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-weird-sizes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-atomics64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory.amdgcn.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory.r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-stack-slot-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/loop-address.ll vendor/llvm/dist/test/CodeGen/AMDGPU/loop-idiom.ll vendor/llvm/dist/test/CodeGen/AMDGPU/loop_break.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lower-range-metadata-intrinsic-call.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad-combine.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad24-get-global-id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad_int24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad_uint24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/madak.ll vendor/llvm/dist/test/CodeGen/AMDGPU/madmk.ll vendor/llvm/dist/test/CodeGen/AMDGPU/max.i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/max.ll vendor/llvm/dist/test/CodeGen/AMDGPU/max3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mem-builtins.ll vendor/llvm/dist/test/CodeGen/AMDGPU/merge-stores.ll vendor/llvm/dist/test/CodeGen/AMDGPU/min.ll vendor/llvm/dist/test/CodeGen/AMDGPU/min3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/missing-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/move-addr64-rsrc-dead-subreg-writes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/move-to-valu-atomicrmw.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mubuf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul_int24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul_uint24-amdgcn.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul_uint24-r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/multilevel-break.ll vendor/llvm/dist/test/CodeGen/AMDGPU/no-initializer-constant-addrspace.ll vendor/llvm/dist/test/CodeGen/AMDGPU/no-shrink-extloads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/opencl-image-metadata.ll vendor/llvm/dist/test/CodeGen/AMDGPU/operand-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/operand-spacing.ll vendor/llvm/dist/test/CodeGen/AMDGPU/optimize-if-exec-masking.mir vendor/llvm/dist/test/CodeGen/AMDGPU/or.ll vendor/llvm/dist/test/CodeGen/AMDGPU/over-max-lds-size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/packetizer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/parallelandifcollapse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/parallelorifcollapse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/partially-dead-super-register-immediate.ll vendor/llvm/dist/test/CodeGen/AMDGPU/predicates.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-access-no-objects.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-element-size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-memory-atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-memory-broken.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-memory-r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-array-allocation.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-globals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-invariant-markers.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-lifetime.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-mem-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-no-opts.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-padding-size-estimate.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-stored-pointer-value.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-to-lds-icmp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-to-lds-phi.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-to-lds-select.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-unhandled-intrinsic.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-volatile.ll vendor/llvm/dist/test/CodeGen/AMDGPU/pv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600-infinite-loop-bug-while-reorganizing-vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600-legalize-umax-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600.bitcast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600.private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600.work-item-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rcp-pattern.ll vendor/llvm/dist/test/CodeGen/AMDGPU/read-register-invalid-subtarget.ll vendor/llvm/dist/test/CodeGen/AMDGPU/read-register-invalid-type-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/read-register-invalid-type-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/read_register.ll vendor/llvm/dist/test/CodeGen/AMDGPU/readcyclecounter.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reduce-load-width-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reduce-store-width-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reg-coalescer-sched-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/register-count-comments.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rename-disconnected-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rename-independent-subregs.mir vendor/llvm/dist/test/CodeGen/AMDGPU/reorder-stores.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ret.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ret_jump.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rotl.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rotl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rotr.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rotr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rsq.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_addk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_movk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_mulk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sad.ll vendor/llvm/dist/test/CodeGen/AMDGPU/saddo.ll vendor/llvm/dist/test/CodeGen/AMDGPU/salu-to-valu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sampler-resource-id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/scalar-store-cache-flush.mir vendor/llvm/dist/test/CodeGen/AMDGPU/scalar_to_vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-fs-loop-nested-if.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-fs-loop-nested.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-fs-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-global-loads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-if-2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-if.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-kernel-arg-loads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/scratch-buffer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdivrem24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdivrem64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-fabs-fneg-extract-legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-fabs-fneg-extract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-opt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-vectors.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/selectcc-cnd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/selectcc-cnde-int.ll vendor/llvm/dist/test/CodeGen/AMDGPU/selectcc-icmp-select-float.ll vendor/llvm/dist/test/CodeGen/AMDGPU/selectcc-opt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/selectcc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/selected-stack-object.ll vendor/llvm/dist/test/CodeGen/AMDGPU/set-dx10.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc-equivalent.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc-opt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/seto.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setuo.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sext-eliminate.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sext-in-reg-failure-r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sext-in-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sgpr-control-flow.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sgpr-copy-duplicate-operand.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sgpr-copy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shift-and-i128-ubfe.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shift-and-i64-ubfe.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shift-i64-opts.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl_add_constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl_add_ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shrink-vop3-carry-out.mir vendor/llvm/dist/test/CodeGen/AMDGPU/si-annotate-cf-noloop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-annotate-cf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-annotate-cfg-loop-assert.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-fix-sgpr-copies.mir vendor/llvm/dist/test/CodeGen/AMDGPU/si-instr-info-correct-implicit-operands.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-lod-bias.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-lower-control-flow-unreachable-block.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-scheduler.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-sgpr-spill.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-spill-cf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-spill-sgpr-stack.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-triv-disjoint-mem-access.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-vector-hang.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sign_extend.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sitofp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/skip-if-dead.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sminmax.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smrd-vccz-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sopk-compares.ll vendor/llvm/dist/test/CodeGen/AMDGPU/spill-alloc-sgpr-init-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/spill-m0.ll vendor/llvm/dist/test/CodeGen/AMDGPU/spill-scavenge-offset.ll vendor/llvm/dist/test/CodeGen/AMDGPU/spill-wide-sgpr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/split-scalar-i64-add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/split-smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/split-vector-memoperand-offsets.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sra.ll vendor/llvm/dist/test/CodeGen/AMDGPU/srem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/srl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ssubo.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-barrier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-global.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-local.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-private.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-v3i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-vector-ptrs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store_typed.ll vendor/llvm/dist/test/CodeGen/AMDGPU/structurize.ll vendor/llvm/dist/test/CodeGen/AMDGPU/structurize1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sub.i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/subreg-coalescer-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/subreg-coalescer-undef-use.ll vendor/llvm/dist/test/CodeGen/AMDGPU/subreg-eliminate-dead.ll vendor/llvm/dist/test/CodeGen/AMDGPU/subreg-intervals.mir vendor/llvm/dist/test/CodeGen/AMDGPU/target-cpu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trap.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-bitcast-vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-cmp-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-store-f64-to-f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-store-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-vector-store-assertion-failure.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/tti-unroll-prefs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uaddo.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uitofp.f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/umed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unaligned-load-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/undefined-subreg-liverange.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unhandled-loop-condition-assertion.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-branch-intrinsic-cond.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-cfg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-loop-inside-nonuniform.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unify-metadata.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unigine-liveness-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unknown-processor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unroll.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unsupported-cc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/urem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/use-sgpr-multiple-times.ll vendor/llvm/dist/test/CodeGen/AMDGPU/usubo.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v1i64-kernel-arg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_cndmask.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_cvt_pk_u8_f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_mac.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_mac_f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_madak_f16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/valu-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vccz-corrupt-bug-workaround.mir vendor/llvm/dist/test/CodeGen/AMDGPU/vector-alloca.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vector-extract-insert.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vertex-fetch-encoding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot-compute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vi-removed-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vop-shrink.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vselect.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vselect64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vtx-fetch-branch.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vtx-schedule.ll vendor/llvm/dist/test/CodeGen/AMDGPU/wait.ll vendor/llvm/dist/test/CodeGen/AMDGPU/waitcnt-flat.ll vendor/llvm/dist/test/CodeGen/AMDGPU/waitcnt.mir vendor/llvm/dist/test/CodeGen/AMDGPU/wqm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/write-register-vgpr-into-sgpr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/write_register.ll vendor/llvm/dist/test/CodeGen/AMDGPU/wrong-transalu-pos-fix.ll vendor/llvm/dist/test/CodeGen/AMDGPU/xfail.r600.bitcast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/xor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/zero_extend.ll vendor/llvm/dist/test/CodeGen/AMDGPU/zext-i64-bit-operand.ll vendor/llvm/dist/test/CodeGen/ARM/2007-05-22-tailmerge-3.ll vendor/llvm/dist/test/CodeGen/ARM/2009-05-18-InlineAsmMem.ll vendor/llvm/dist/test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-instruction-select.mir vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-isel.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir vendor/llvm/dist/test/CodeGen/ARM/alloc-no-stack-realign.ll vendor/llvm/dist/test/CodeGen/ARM/arm-and-tst-peephole.ll vendor/llvm/dist/test/CodeGen/ARM/arm-position-independence.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-cmpxchg.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-op.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-ops-v8.ll vendor/llvm/dist/test/CodeGen/ARM/bfi.ll vendor/llvm/dist/test/CodeGen/ARM/bic.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes.ll vendor/llvm/dist/test/CodeGen/ARM/cmpxchg-weak.ll vendor/llvm/dist/test/CodeGen/ARM/constantpool-promote.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-s16-reg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-sreg2.ll vendor/llvm/dist/test/CodeGen/ARM/div.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-align.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-cmp-imm.ll vendor/llvm/dist/test/CodeGen/ARM/fold-stack-adjust.ll vendor/llvm/dist/test/CodeGen/ARM/fp16-promote.ll vendor/llvm/dist/test/CodeGen/ARM/fp16-v3.ll vendor/llvm/dist/test/CodeGen/ARM/fpcmp-opt.ll vendor/llvm/dist/test/CodeGen/ARM/fpcmp.ll vendor/llvm/dist/test/CodeGen/ARM/fpcmp_ueq.ll vendor/llvm/dist/test/CodeGen/ARM/gpr-paired-spill.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt10.ll vendor/llvm/dist/test/CodeGen/ARM/indirectbr.ll vendor/llvm/dist/test/CodeGen/ARM/interval-update-remat.ll vendor/llvm/dist/test/CodeGen/ARM/intrinsics-coprocessor.ll vendor/llvm/dist/test/CodeGen/ARM/ldrd.ll vendor/llvm/dist/test/CodeGen/ARM/longMAC.ll vendor/llvm/dist/test/CodeGen/ARM/mature-mc-support.ll vendor/llvm/dist/test/CodeGen/ARM/movt.ll vendor/llvm/dist/test/CodeGen/ARM/msr-it-block.ll vendor/llvm/dist/test/CodeGen/ARM/neon_vabs.ll vendor/llvm/dist/test/CodeGen/ARM/phi.ll vendor/llvm/dist/test/CodeGen/ARM/rbit.ll vendor/llvm/dist/test/CodeGen/ARM/rev.ll vendor/llvm/dist/test/CodeGen/ARM/select_xform.ll vendor/llvm/dist/test/CodeGen/ARM/smml.ll vendor/llvm/dist/test/CodeGen/ARM/smul.ll vendor/llvm/dist/test/CodeGen/ARM/softfp-fabs-fneg.ll vendor/llvm/dist/test/CodeGen/ARM/special-reg-mcore.ll vendor/llvm/dist/test/CodeGen/ARM/special-reg-v8m-main.ll vendor/llvm/dist/test/CodeGen/ARM/stack_guard_remat.ll vendor/llvm/dist/test/CodeGen/ARM/static-addr-hoisting.ll vendor/llvm/dist/test/CodeGen/ARM/tail-opts.ll vendor/llvm/dist/test/CodeGen/ARM/va_arg.ll vendor/llvm/dist/test/CodeGen/ARM/vldm-liveness.ll vendor/llvm/dist/test/CodeGen/ARM/vsel.ll vendor/llvm/dist/test/CodeGen/ARM/vuzp.ll vendor/llvm/dist/test/CodeGen/AVR/inline-asm/inline-asm.ll vendor/llvm/dist/test/CodeGen/AVR/inline-asm/inline-asm2.ll vendor/llvm/dist/test/CodeGen/AVR/inline-asm/multibyte.ll vendor/llvm/dist/test/CodeGen/AVR/pseudo/ADCWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/ADDWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/ANDIWRdK.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/ANDWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/ASRWRd.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/COMWRd.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/CPCWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/CPWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/EORWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/FRMIDX.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/INWRdA.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LDDWRdPtrQ.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LDDWRdYQ.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LDIWRdK.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LDSWRdK.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LDWRdPtr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LDWRdPtrPd.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LDWRdPtrPi.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LSLWRd.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/LSRWRd.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/ORIWRdK.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/ORWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/OUTWARr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/POPWRd.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/PUSHWRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/SBCIWRdK.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/SBCWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/SEXT.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/STDWPtrQRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/STSWKRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/STWPtrPdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/STWPtrPiRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/STWPtrRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/SUBIWRdK.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/SUBWRdRr.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/ZEXT.mir vendor/llvm/dist/test/CodeGen/AVR/pseudo/expand-lddw-dst-src-same.mir vendor/llvm/dist/test/CodeGen/AVR/relax-mem/STDWPtrQRr.mir vendor/llvm/dist/test/CodeGen/BPF/cc_args.ll vendor/llvm/dist/test/CodeGen/BPF/cc_args_be.ll vendor/llvm/dist/test/CodeGen/BPF/cc_ret.ll vendor/llvm/dist/test/CodeGen/BPF/fi_ri.ll vendor/llvm/dist/test/CodeGen/BPF/intrinsics.ll vendor/llvm/dist/test/CodeGen/BPF/objdump_intrinsics.ll vendor/llvm/dist/test/CodeGen/BPF/objdump_trivial.ll vendor/llvm/dist/test/CodeGen/BPF/sanity.ll vendor/llvm/dist/test/CodeGen/BPF/undef.ll vendor/llvm/dist/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll vendor/llvm/dist/test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll vendor/llvm/dist/test/CodeGen/Generic/2007-12-17-InvokeAsm.ll vendor/llvm/dist/test/CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll vendor/llvm/dist/test/CodeGen/Generic/MachineBranchProb.ll vendor/llvm/dist/test/CodeGen/Generic/externally_available.ll vendor/llvm/dist/test/CodeGen/Generic/icmp-illegal.ll vendor/llvm/dist/test/CodeGen/Generic/inline-asm-mem-clobber.ll vendor/llvm/dist/test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll vendor/llvm/dist/test/CodeGen/Generic/overloaded-intrinsic-name.ll vendor/llvm/dist/test/CodeGen/Generic/select-cc.ll vendor/llvm/dist/test/CodeGen/Generic/v-split.ll vendor/llvm/dist/test/CodeGen/Generic/vector-redux.ll vendor/llvm/dist/test/CodeGen/Generic/vector.ll vendor/llvm/dist/test/CodeGen/Hexagon/BranchPredict.ll vendor/llvm/dist/test/CodeGen/Hexagon/adde.ll vendor/llvm/dist/test/CodeGen/Hexagon/addh-sext-trunc.ll vendor/llvm/dist/test/CodeGen/Hexagon/addh-shifted.ll vendor/llvm/dist/test/CodeGen/Hexagon/addh.ll vendor/llvm/dist/test/CodeGen/Hexagon/alu64.ll vendor/llvm/dist/test/CodeGen/Hexagon/args.ll vendor/llvm/dist/test/CodeGen/Hexagon/avoid-predspill-calleesaved.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-eval.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-phi.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-rie.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-skip-byval.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-validate-reg.ll vendor/llvm/dist/test/CodeGen/Hexagon/block-addr.ll vendor/llvm/dist/test/CodeGen/Hexagon/branchfolder-keep-impdef.ll vendor/llvm/dist/test/CodeGen/Hexagon/brev_ld.ll vendor/llvm/dist/test/CodeGen/Hexagon/brev_st.ll vendor/llvm/dist/test/CodeGen/Hexagon/cext-valid-packet1.ll vendor/llvm/dist/test/CodeGen/Hexagon/circ_ld.ll vendor/llvm/dist/test/CodeGen/Hexagon/circ_ldw.ll vendor/llvm/dist/test/CodeGen/Hexagon/circ_st.ll vendor/llvm/dist/test/CodeGen/Hexagon/clr_set_toggle.ll vendor/llvm/dist/test/CodeGen/Hexagon/cmp.ll vendor/llvm/dist/test/CodeGen/Hexagon/combine.ll vendor/llvm/dist/test/CodeGen/Hexagon/compound.ll vendor/llvm/dist/test/CodeGen/Hexagon/constp-combine-neg.ll vendor/llvm/dist/test/CodeGen/Hexagon/dead-store-stack.ll vendor/llvm/dist/test/CodeGen/Hexagon/early-if-phi-i1.ll vendor/llvm/dist/test/CodeGen/Hexagon/eh_return.ll vendor/llvm/dist/test/CodeGen/Hexagon/eliminate-pred-spill.ll vendor/llvm/dist/test/CodeGen/Hexagon/expand-condsets-rm-reg.mir vendor/llvm/dist/test/CodeGen/Hexagon/extload-combine.ll vendor/llvm/dist/test/CodeGen/Hexagon/extract-basic.ll vendor/llvm/dist/test/CodeGen/Hexagon/fadd.ll vendor/llvm/dist/test/CodeGen/Hexagon/float-amode.ll vendor/llvm/dist/test/CodeGen/Hexagon/fmul.ll vendor/llvm/dist/test/CodeGen/Hexagon/fsel.ll vendor/llvm/dist/test/CodeGen/Hexagon/fsub.ll vendor/llvm/dist/test/CodeGen/Hexagon/fusedandshift.ll vendor/llvm/dist/test/CodeGen/Hexagon/gp-rel.ll vendor/llvm/dist/test/CodeGen/Hexagon/hwloop-cleanup.ll vendor/llvm/dist/test/CodeGen/Hexagon/hwloop-loop1.ll vendor/llvm/dist/test/CodeGen/Hexagon/hwloop1.ll vendor/llvm/dist/test/CodeGen/Hexagon/hwloop2.ll vendor/llvm/dist/test/CodeGen/Hexagon/hwloop4.ll vendor/llvm/dist/test/CodeGen/Hexagon/hwloop5.ll vendor/llvm/dist/test/CodeGen/Hexagon/ifcvt-diamond-bug-2016-08-26.ll vendor/llvm/dist/test/CodeGen/Hexagon/insert-basic.ll vendor/llvm/dist/test/CodeGen/Hexagon/insert4.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/alu32_alu.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/alu32_perm.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/cr.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/system_user.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/xtype_alu.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/xtype_bit.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/xtype_complex.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/xtype_fp.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/xtype_mpy.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/xtype_perm.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/xtype_pred.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/xtype_shift.ll vendor/llvm/dist/test/CodeGen/Hexagon/memops-stack.ll vendor/llvm/dist/test/CodeGen/Hexagon/newvalueSameReg.ll vendor/llvm/dist/test/CodeGen/Hexagon/newvaluejump.ll vendor/llvm/dist/test/CodeGen/Hexagon/newvaluejump2.ll vendor/llvm/dist/test/CodeGen/Hexagon/opt-addr-mode.ll vendor/llvm/dist/test/CodeGen/Hexagon/opt-fabs.ll vendor/llvm/dist/test/CodeGen/Hexagon/opt-fneg.ll vendor/llvm/dist/test/CodeGen/Hexagon/opt-spill-volatile.ll vendor/llvm/dist/test/CodeGen/Hexagon/pic-local.ll vendor/llvm/dist/test/CodeGen/Hexagon/pic-simple.ll vendor/llvm/dist/test/CodeGen/Hexagon/pic-static.ll vendor/llvm/dist/test/CodeGen/Hexagon/pred-absolute-store.ll vendor/llvm/dist/test/CodeGen/Hexagon/predicate-logical.ll vendor/llvm/dist/test/CodeGen/Hexagon/predicate-rcmp.ll vendor/llvm/dist/test/CodeGen/Hexagon/rdf-copy-undef2.ll vendor/llvm/dist/test/CodeGen/Hexagon/rdf-inline-asm-fixed.ll vendor/llvm/dist/test/CodeGen/Hexagon/rdf-phi-up.ll vendor/llvm/dist/test/CodeGen/Hexagon/ret-struct-by-val.ll vendor/llvm/dist/test/CodeGen/Hexagon/runtime-stkchk.ll vendor/llvm/dist/test/CodeGen/Hexagon/section_7275.ll vendor/llvm/dist/test/CodeGen/Hexagon/signed_immediates.ll vendor/llvm/dist/test/CodeGen/Hexagon/stack-align1.ll vendor/llvm/dist/test/CodeGen/Hexagon/stack-align2.ll vendor/llvm/dist/test/CodeGen/Hexagon/stack-alloca1.ll vendor/llvm/dist/test/CodeGen/Hexagon/stack-alloca2.ll vendor/llvm/dist/test/CodeGen/Hexagon/static.ll vendor/llvm/dist/test/CodeGen/Hexagon/store-shift.ll vendor/llvm/dist/test/CodeGen/Hexagon/sube.ll vendor/llvm/dist/test/CodeGen/Hexagon/subi-asl.ll vendor/llvm/dist/test/CodeGen/Hexagon/swp-const-tc.ll vendor/llvm/dist/test/CodeGen/Hexagon/swp-matmul-bitext.ll vendor/llvm/dist/test/CodeGen/Hexagon/swp-max.ll vendor/llvm/dist/test/CodeGen/Hexagon/swp-multi-loops.ll vendor/llvm/dist/test/CodeGen/Hexagon/swp-vmult.ll vendor/llvm/dist/test/CodeGen/Hexagon/swp-vsum.ll vendor/llvm/dist/test/CodeGen/Hexagon/tail-dup-subreg-map.ll vendor/llvm/dist/test/CodeGen/Hexagon/tfr-to-combine.ll vendor/llvm/dist/test/CodeGen/Hexagon/tls_pic.ll vendor/llvm/dist/test/CodeGen/Hexagon/two-crash.ll vendor/llvm/dist/test/CodeGen/Hexagon/vaddh.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-cst-v4i32.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-loadv4i16.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-shift-imm.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-shuffle.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-vshifts.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-xor.ll vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/expected-target-index-name.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/fold-imm-f16-f32.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/intrinsics.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/invalid-target-index-operand.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/target-index-operands.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/llvmIR.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/llvmIRMissing.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-ir-block-reference.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-function.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-name.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/register-info.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/runPass.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-in-allocation-hint.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation.mir vendor/llvm/dist/test/CodeGen/MSP430/AddrMode-bis-rx.ll vendor/llvm/dist/test/CodeGen/MSP430/AddrMode-bis-xr.ll vendor/llvm/dist/test/CodeGen/MSP430/AddrMode-mov-rx.ll vendor/llvm/dist/test/CodeGen/MSP430/AddrMode-mov-xr.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst16mm.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst16mr.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst16ri.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst16rm.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst16rr.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst8mr.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst8ri.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst8rm.ll vendor/llvm/dist/test/CodeGen/MSP430/Inst8rr.ll vendor/llvm/dist/test/CodeGen/MSP430/bit.ll vendor/llvm/dist/test/CodeGen/MSP430/byval.ll vendor/llvm/dist/test/CodeGen/MSP430/cc_args.ll vendor/llvm/dist/test/CodeGen/MSP430/cc_ret.ll vendor/llvm/dist/test/CodeGen/MSP430/jumptable.ll vendor/llvm/dist/test/CodeGen/MSP430/memset.ll vendor/llvm/dist/test/CodeGen/MSP430/setcc.ll vendor/llvm/dist/test/CodeGen/MSP430/vararg.ll vendor/llvm/dist/test/CodeGen/Mips/2009-11-16-CstPoolLoad.ll vendor/llvm/dist/test/CodeGen/Mips/2010-07-20-Switch.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/check-disabled-mcpus.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/fastcc-miss.ll vendor/llvm/dist/test/CodeGen/Mips/abicalls.ll vendor/llvm/dist/test/CodeGen/Mips/blockaddr.ll vendor/llvm/dist/test/CodeGen/Mips/brconnez.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-fp128.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-hard-float-varargs.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-hard-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-hard-fp128.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-struct.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-byte.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-combinations.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-varargs.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-hard-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-hard-fp128.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-hard-struct-f128.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-struct.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/roundl-call.ll vendor/llvm/dist/test/CodeGen/Mips/compactbranches/compact-branches-64.ll vendor/llvm/dist/test/CodeGen/Mips/compactbranches/compact-branches.ll vendor/llvm/dist/test/CodeGen/Mips/cstmaterialization/stack.ll vendor/llvm/dist/test/CodeGen/Mips/elf_eflags.ll vendor/llvm/dist/test/CodeGen/Mips/fastcc.ll vendor/llvm/dist/test/CodeGen/Mips/fcmp.ll vendor/llvm/dist/test/CodeGen/Mips/fcopysign-f32-f64.ll vendor/llvm/dist/test/CodeGen/Mips/global-address.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm-constraint_ZC_2.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/ashr.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/call.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/lshr.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/shl.ll vendor/llvm/dist/test/CodeGen/Mips/load-store-left-right.ll vendor/llvm/dist/test/CodeGen/Mips/mature-mc-support.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-compact-branches.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-li.ll vendor/llvm/dist/test/CodeGen/Mips/mips64-f128-call.ll vendor/llvm/dist/test/CodeGen/Mips/mips64-f128.ll vendor/llvm/dist/test/CodeGen/Mips/mips64-libcall.ll vendor/llvm/dist/test/CodeGen/Mips/mips64instrs.ll vendor/llvm/dist/test/CodeGen/Mips/mno-ldc1-sdc1.ll vendor/llvm/dist/test/CodeGen/Mips/msa/3r_4r_widen.ll vendor/llvm/dist/test/CodeGen/Mips/msa/basic_operations.ll vendor/llvm/dist/test/CodeGen/Mips/msa/bitwise.ll vendor/llvm/dist/test/CodeGen/Mips/msa/f16-llvm-ir.ll vendor/llvm/dist/test/CodeGen/Mips/msa/i5-b.ll vendor/llvm/dist/test/CodeGen/Mips/msa/i5_ld_st.ll vendor/llvm/dist/test/CodeGen/Mips/msa/immediates.ll vendor/llvm/dist/test/CodeGen/Mips/o32_cc_byval.ll vendor/llvm/dist/test/CodeGen/Mips/o32_cc_vararg.ll vendor/llvm/dist/test/CodeGen/Mips/return_address.ll vendor/llvm/dist/test/CodeGen/Mips/stackcoloring.ll vendor/llvm/dist/test/CodeGen/Mips/start-asm-file.ll vendor/llvm/dist/test/CodeGen/Mips/stchar.ll vendor/llvm/dist/test/CodeGen/Mips/tailcall/tailcall-wrong-isa.ll vendor/llvm/dist/test/CodeGen/Mips/tailcall/tailcall.ll vendor/llvm/dist/test/CodeGen/Mips/tnaked.ll vendor/llvm/dist/test/CodeGen/NVPTX/LoadStoreVectorizer.ll vendor/llvm/dist/test/CodeGen/NVPTX/access-non-generic.ll vendor/llvm/dist/test/CodeGen/NVPTX/add-128bit.ll vendor/llvm/dist/test/CodeGen/NVPTX/aggregate-return.ll vendor/llvm/dist/test/CodeGen/NVPTX/bug22322.ll vendor/llvm/dist/test/CodeGen/NVPTX/combine-min-max.ll vendor/llvm/dist/test/CodeGen/NVPTX/convert-fp.ll vendor/llvm/dist/test/CodeGen/NVPTX/ctlz.ll vendor/llvm/dist/test/CodeGen/NVPTX/fast-math.ll vendor/llvm/dist/test/CodeGen/NVPTX/half.ll vendor/llvm/dist/test/CodeGen/NVPTX/intrinsics.ll vendor/llvm/dist/test/CodeGen/NVPTX/ldg-invariant.ll vendor/llvm/dist/test/CodeGen/NVPTX/ldparam-v4.ll vendor/llvm/dist/test/CodeGen/NVPTX/lower-aggr-copies.ll vendor/llvm/dist/test/CodeGen/NVPTX/lower-alloca.ll vendor/llvm/dist/test/CodeGen/NVPTX/math-intrins.ll vendor/llvm/dist/test/CodeGen/NVPTX/misaligned-vector-ldst.ll vendor/llvm/dist/test/CodeGen/NVPTX/nvvm-reflect.ll vendor/llvm/dist/test/CodeGen/NVPTX/vec-param-load.ll vendor/llvm/dist/test/CodeGen/NVPTX/vec8.ll vendor/llvm/dist/test/CodeGen/NVPTX/vector-call.ll vendor/llvm/dist/test/CodeGen/PowerPC/2006-07-07-ComputeMaskedBits.ll vendor/llvm/dist/test/CodeGen/PowerPC/2007-11-16-landingpad-split.ll vendor/llvm/dist/test/CodeGen/PowerPC/BreakableToken-reduced.ll vendor/llvm/dist/test/CodeGen/PowerPC/aantidep-def-ec.mir vendor/llvm/dist/test/CodeGen/PowerPC/addi-licm.ll vendor/llvm/dist/test/CodeGen/PowerPC/anon_aggr.ll vendor/llvm/dist/test/CodeGen/PowerPC/bitcasts-direct-move.ll vendor/llvm/dist/test/CodeGen/PowerPC/complex-return.ll vendor/llvm/dist/test/CodeGen/PowerPC/crbit-asm.ll vendor/llvm/dist/test/CodeGen/PowerPC/crbits.ll vendor/llvm/dist/test/CodeGen/PowerPC/ctrloop-intrin.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-load-store.ll vendor/llvm/dist/test/CodeGen/PowerPC/fold-zero.ll vendor/llvm/dist/test/CodeGen/PowerPC/fp-int-conversions-direct-moves.ll vendor/llvm/dist/test/CodeGen/PowerPC/fp128-bitcast-after-operation.ll vendor/llvm/dist/test/CodeGen/PowerPC/i1-ext-fold.ll vendor/llvm/dist/test/CodeGen/PowerPC/i1-to-double.ll vendor/llvm/dist/test/CodeGen/PowerPC/i64_fp_round.ll vendor/llvm/dist/test/CodeGen/PowerPC/ifcvt.ll vendor/llvm/dist/test/CodeGen/PowerPC/indirectbr.ll vendor/llvm/dist/test/CodeGen/PowerPC/isel.ll vendor/llvm/dist/test/CodeGen/PowerPC/jaggedstructs.ll vendor/llvm/dist/test/CodeGen/PowerPC/lsa.ll vendor/llvm/dist/test/CodeGen/PowerPC/mature-mc-support.ll vendor/llvm/dist/test/CodeGen/PowerPC/mcm-obj.ll vendor/llvm/dist/test/CodeGen/PowerPC/misched-inorder-latency.ll vendor/llvm/dist/test/CodeGen/PowerPC/optcmp.ll vendor/llvm/dist/test/CodeGen/PowerPC/p8-isel-sched.ll vendor/llvm/dist/test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc-crbits-onoff.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-align-long-double.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-gep-opt.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64le-aggregates.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr30451.ll vendor/llvm/dist/test/CodeGen/PowerPC/select-i1-vs-i1.ll vendor/llvm/dist/test/CodeGen/PowerPC/setcc-to-sub.ll vendor/llvm/dist/test/CodeGen/PowerPC/srl-mask.ll vendor/llvm/dist/test/CodeGen/PowerPC/structsinmem.ll vendor/llvm/dist/test/CodeGen/PowerPC/structsinregs.ll vendor/llvm/dist/test/CodeGen/PowerPC/subreg-postra-2.ll vendor/llvm/dist/test/CodeGen/PowerPC/subreg-postra.ll vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-4.ll vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-7.ll vendor/llvm/dist/test/CodeGen/PowerPC/tail-dup-branch-to-fallthrough.ll vendor/llvm/dist/test/CodeGen/PowerPC/tail-dup-layout.ll vendor/llvm/dist/test/CodeGen/PowerPC/toc-load-sched-bug.ll vendor/llvm/dist/test/CodeGen/PowerPC/vec_absd.ll vendor/llvm/dist/test/CodeGen/PowerPC/vec_cmp.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-args.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-infl-copy1.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-p9.ll vendor/llvm/dist/test/CodeGen/SPARC/mature-mc-support.ll vendor/llvm/dist/test/CodeGen/SPARC/reserved-regs.ll vendor/llvm/dist/test/CodeGen/SPARC/sjlj.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-44.ll vendor/llvm/dist/test/CodeGen/SystemZ/mature-mc-support.ll vendor/llvm/dist/test/CodeGen/SystemZ/memchr-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/stack-guard.ll vendor/llvm/dist/test/CodeGen/SystemZ/unaligned-01.ll vendor/llvm/dist/test/CodeGen/Thumb/2010-07-15-debugOrdering.ll vendor/llvm/dist/test/CodeGen/Thumb/PR17309.ll vendor/llvm/dist/test/CodeGen/Thumb/cmp-add-fold.ll vendor/llvm/dist/test/CodeGen/Thumb/copy_thumb.ll vendor/llvm/dist/test/CodeGen/Thumb/ispositive.ll vendor/llvm/dist/test/CodeGen/Thumb/long.ll vendor/llvm/dist/test/CodeGen/Thumb/mature-mc-support.ll vendor/llvm/dist/test/CodeGen/Thumb/stack-access.ll vendor/llvm/dist/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll vendor/llvm/dist/test/CodeGen/Thumb/stack_guard_remat.ll vendor/llvm/dist/test/CodeGen/Thumb/thumb-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/Thumb2/cbnz.ll vendor/llvm/dist/test/CodeGen/Thumb2/float-cmp.ll vendor/llvm/dist/test/CodeGen/Thumb2/ifcvt-compare.ll vendor/llvm/dist/test/CodeGen/Thumb2/ifcvt-rescan-bug-2016-08-22.ll vendor/llvm/dist/test/CodeGen/Thumb2/stack_guard_remat.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-pack.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-rev.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-smla.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-smul.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-sxt-uxt.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-sxt_rot.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-uxt_rot.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-uxtb.ll vendor/llvm/dist/test/CodeGen/Thumb2/v8_IT_4.ll vendor/llvm/dist/test/CodeGen/WebAssembly/address-offsets.ll vendor/llvm/dist/test/CodeGen/WebAssembly/byval.ll vendor/llvm/dist/test/CodeGen/WebAssembly/call.ll vendor/llvm/dist/test/CodeGen/WebAssembly/cfg-stackify.ll vendor/llvm/dist/test/CodeGen/WebAssembly/cfi.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_f32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_f64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_i32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_i64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/conv.ll vendor/llvm/dist/test/CodeGen/WebAssembly/copysign-casts.ll vendor/llvm/dist/test/CodeGen/WebAssembly/cpus.ll vendor/llvm/dist/test/CodeGen/WebAssembly/dbgvalue.ll vendor/llvm/dist/test/CodeGen/WebAssembly/dead-vreg.ll vendor/llvm/dist/test/CodeGen/WebAssembly/divrem-constant.ll vendor/llvm/dist/test/CodeGen/WebAssembly/f32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/f64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/fast-isel-noreg.ll vendor/llvm/dist/test/CodeGen/WebAssembly/fast-isel.ll vendor/llvm/dist/test/CodeGen/WebAssembly/frem.ll vendor/llvm/dist/test/CodeGen/WebAssembly/func.ll vendor/llvm/dist/test/CodeGen/WebAssembly/function-bitcasts.ll vendor/llvm/dist/test/CodeGen/WebAssembly/global.ll vendor/llvm/dist/test/CodeGen/WebAssembly/globl.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i128.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i32-load-store-alignment.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i64-load-store-alignment.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/ident.ll vendor/llvm/dist/test/CodeGen/WebAssembly/immediates.ll vendor/llvm/dist/test/CodeGen/WebAssembly/implicit-def.ll vendor/llvm/dist/test/CodeGen/WebAssembly/inline-asm.ll vendor/llvm/dist/test/CodeGen/WebAssembly/irreducible-cfg.ll vendor/llvm/dist/test/CodeGen/WebAssembly/legalize.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load-ext.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load-store-i1.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load.ll vendor/llvm/dist/test/CodeGen/WebAssembly/lower-em-ehsjlj-options.ll vendor/llvm/dist/test/CodeGen/WebAssembly/lower-em-exceptions-whitelist.ll vendor/llvm/dist/test/CodeGen/WebAssembly/lower-em-exceptions.ll vendor/llvm/dist/test/CodeGen/WebAssembly/lower-em-sjlj.ll vendor/llvm/dist/test/CodeGen/WebAssembly/mem-intrinsics.ll vendor/llvm/dist/test/CodeGen/WebAssembly/memory-addr32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/non-executable-stack.ll vendor/llvm/dist/test/CodeGen/WebAssembly/offset-folding.ll vendor/llvm/dist/test/CodeGen/WebAssembly/offset.ll vendor/llvm/dist/test/CodeGen/WebAssembly/phi.ll vendor/llvm/dist/test/CodeGen/WebAssembly/reg-stackify.ll vendor/llvm/dist/test/CodeGen/WebAssembly/return-int32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/return-void.ll vendor/llvm/dist/test/CodeGen/WebAssembly/returned.ll vendor/llvm/dist/test/CodeGen/WebAssembly/select.ll vendor/llvm/dist/test/CodeGen/WebAssembly/signext-zeroext.ll vendor/llvm/dist/test/CodeGen/WebAssembly/simd-arith.ll vendor/llvm/dist/test/CodeGen/WebAssembly/stack-alignment.ll vendor/llvm/dist/test/CodeGen/WebAssembly/store-trunc.ll vendor/llvm/dist/test/CodeGen/WebAssembly/store.ll vendor/llvm/dist/test/CodeGen/WebAssembly/switch.ll vendor/llvm/dist/test/CodeGen/WebAssembly/unreachable.ll vendor/llvm/dist/test/CodeGen/WebAssembly/unsupported-function-bitcasts.ll vendor/llvm/dist/test/CodeGen/WebAssembly/unused-argument.ll vendor/llvm/dist/test/CodeGen/WebAssembly/userstack.ll vendor/llvm/dist/test/CodeGen/WebAssembly/varargs.ll vendor/llvm/dist/test/CodeGen/WebAssembly/vtable.ll vendor/llvm/dist/test/CodeGen/X86/2003-11-03-GlobalBool.ll vendor/llvm/dist/test/CodeGen/X86/2004-02-13-FrameReturnAddress.ll vendor/llvm/dist/test/CodeGen/X86/2004-02-14-InefficientStackPointer.ll vendor/llvm/dist/test/CodeGen/X86/2005-01-17-CycleInDAG.ll vendor/llvm/dist/test/CodeGen/X86/2005-02-14-IllegalAssembler.ll vendor/llvm/dist/test/CodeGen/X86/2006-01-19-ISelFoldingBug.ll vendor/llvm/dist/test/CodeGen/X86/2006-03-01-InstrSchedBug.ll vendor/llvm/dist/test/CodeGen/X86/2006-03-02-InstrSchedBug.ll vendor/llvm/dist/test/CodeGen/X86/2007-03-15-GEP-Idx-Sink.ll vendor/llvm/dist/test/CodeGen/X86/2008-02-14-BitMiscompile.ll vendor/llvm/dist/test/CodeGen/X86/2010-04-30-LocalAlloc-LandingPad.ll vendor/llvm/dist/test/CodeGen/X86/2010-08-04-MaskedSignedCompare.ll vendor/llvm/dist/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll vendor/llvm/dist/test/CodeGen/X86/2011-10-19-widen_vselect.ll vendor/llvm/dist/test/CodeGen/X86/2011-10-21-widen-cmp.ll vendor/llvm/dist/test/CodeGen/X86/2011-11-30-or.ll vendor/llvm/dist/test/CodeGen/X86/2011-12-15-vec_shift.ll vendor/llvm/dist/test/CodeGen/X86/2011-12-8-bitcastintprom.ll vendor/llvm/dist/test/CodeGen/X86/2012-07-10-extload64.ll vendor/llvm/dist/test/CodeGen/X86/2012-11-28-merge-store-alias.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/irtranslator-call.ll vendor/llvm/dist/test/CodeGen/X86/MergeConsecutiveStores.ll vendor/llvm/dist/test/CodeGen/X86/StackColoring-dbg.ll vendor/llvm/dist/test/CodeGen/X86/StackColoring.ll vendor/llvm/dist/test/CodeGen/X86/absolute-rotate.ll vendor/llvm/dist/test/CodeGen/X86/add-of-carry.ll vendor/llvm/dist/test/CodeGen/X86/adde-carry.ll vendor/llvm/dist/test/CodeGen/X86/aes_intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/atomic128.ll vendor/llvm/dist/test/CodeGen/X86/avg.ll vendor/llvm/dist/test/CodeGen/X86/avx-cvt.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/avx-shuffle-x86_32.ll vendor/llvm/dist/test/CodeGen/X86/avx-trunc.ll vendor/llvm/dist/test/CodeGen/X86/avx-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx-vperm2x128.ll vendor/llvm/dist/test/CodeGen/X86/avx-vzeroupper.ll vendor/llvm/dist/test/CodeGen/X86/avx2-conversions.ll vendor/llvm/dist/test/CodeGen/X86/avx2-gather.ll vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/avx2-shift.ll vendor/llvm/dist/test/CodeGen/X86/avx2-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx2-vector-shifts.ll vendor/llvm/dist/test/CodeGen/X86/avx512-any_extend_load.ll vendor/llvm/dist/test/CodeGen/X86/avx512-arith.ll vendor/llvm/dist/test/CodeGen/X86/avx512-bugfix-26264.ll vendor/llvm/dist/test/CodeGen/X86/avx512-calling-conv.ll vendor/llvm/dist/test/CodeGen/X86/avx512-cmp-kor-sequence.ll vendor/llvm/dist/test/CodeGen/X86/avx512-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512-cvt.ll vendor/llvm/dist/test/CodeGen/X86/avx512-ext.ll vendor/llvm/dist/test/CodeGen/X86/avx512-extract-subvector.ll vendor/llvm/dist/test/CodeGen/X86/avx512-fsel.ll vendor/llvm/dist/test/CodeGen/X86/avx512-gather-scatter-intrin.ll vendor/llvm/dist/test/CodeGen/X86/avx512-insert-extract.ll vendor/llvm/dist/test/CodeGen/X86/avx512-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512-load-store.ll vendor/llvm/dist/test/CodeGen/X86/avx512-logic.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mask-spills.ll vendor/llvm/dist/test/CodeGen/X86/avx512-masked-memop-64-32.ll vendor/llvm/dist/test/CodeGen/X86/avx512-masked_memop-16-8.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mov.ll vendor/llvm/dist/test/CodeGen/X86/avx512-pmovxrm.ll vendor/llvm/dist/test/CodeGen/X86/avx512-regcall-Mask.ll vendor/llvm/dist/test/CodeGen/X86/avx512-regcall-NoMask.ll vendor/llvm/dist/test/CodeGen/X86/avx512-select.ll vendor/llvm/dist/test/CodeGen/X86/avx512-skx-insert-subvec.ll vendor/llvm/dist/test/CodeGen/X86/avx512-trunc.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vbroadcasti128.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vpermv3-commute.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vpternlog-commute.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512cd-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512cdvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512dq-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512dq-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512dq-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/avx512dqvl-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512dqvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512er-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512ifma-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512ifmavl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vbmivl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-logic.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/bc-extract.ll vendor/llvm/dist/test/CodeGen/X86/bitcast-mmx.ll vendor/llvm/dist/test/CodeGen/X86/bitreverse.ll vendor/llvm/dist/test/CodeGen/X86/block-placement.ll vendor/llvm/dist/test/CodeGen/X86/block-placement.mir vendor/llvm/dist/test/CodeGen/X86/brcond.ll vendor/llvm/dist/test/CodeGen/X86/break-false-dep.ll vendor/llvm/dist/test/CodeGen/X86/bt.ll vendor/llvm/dist/test/CodeGen/X86/buildvec-insertvec.ll vendor/llvm/dist/test/CodeGen/X86/bypass-slow-division-32.ll vendor/llvm/dist/test/CodeGen/X86/catchpad-lifetime.ll vendor/llvm/dist/test/CodeGen/X86/catchpad-weight.ll vendor/llvm/dist/test/CodeGen/X86/chain_order.ll vendor/llvm/dist/test/CodeGen/X86/clear_upper_vector_element_bits.ll vendor/llvm/dist/test/CodeGen/X86/cmov.ll vendor/llvm/dist/test/CodeGen/X86/cmovcmov.ll vendor/llvm/dist/test/CodeGen/X86/codegen-prepare-addrmode-sext.ll vendor/llvm/dist/test/CodeGen/X86/codegen-prepare-extload.ll vendor/llvm/dist/test/CodeGen/X86/codegen-prepare.ll vendor/llvm/dist/test/CodeGen/X86/combine-and.ll vendor/llvm/dist/test/CodeGen/X86/combine-fcopysign.ll vendor/llvm/dist/test/CodeGen/X86/combine-shl.ll vendor/llvm/dist/test/CodeGen/X86/combine-testm-and.ll vendor/llvm/dist/test/CodeGen/X86/commute-clmul.ll vendor/llvm/dist/test/CodeGen/X86/commute-fcmp.ll vendor/llvm/dist/test/CodeGen/X86/commute-xop.ll vendor/llvm/dist/test/CodeGen/X86/compare-global.ll vendor/llvm/dist/test/CodeGen/X86/compress_expand.ll vendor/llvm/dist/test/CodeGen/X86/conditional-indecrement.ll vendor/llvm/dist/test/CodeGen/X86/copy-eflags.ll vendor/llvm/dist/test/CodeGen/X86/copy-propagation.ll vendor/llvm/dist/test/CodeGen/X86/crash.ll vendor/llvm/dist/test/CodeGen/X86/ctpop-combine.ll vendor/llvm/dist/test/CodeGen/X86/dag-fmf-cse.ll vendor/llvm/dist/test/CodeGen/X86/dag-merge-fast-accesses.ll vendor/llvm/dist/test/CodeGen/X86/dagcombine-and-setcc.ll vendor/llvm/dist/test/CodeGen/X86/dagcombine-cse.ll vendor/llvm/dist/test/CodeGen/X86/dbg-changes-codegen-branch-folding.ll vendor/llvm/dist/test/CodeGen/X86/divrem8_ext.ll vendor/llvm/dist/test/CodeGen/X86/dont-trunc-store-double-to-float.ll vendor/llvm/dist/test/CodeGen/X86/dynamic-alloca-lifetime.ll vendor/llvm/dist/test/CodeGen/X86/evex-to-vex-compress.mir vendor/llvm/dist/test/CodeGen/X86/extract-store.ll vendor/llvm/dist/test/CodeGen/X86/extractelement-index.ll vendor/llvm/dist/test/CodeGen/X86/extractelement-legalization-store-ordering.ll vendor/llvm/dist/test/CodeGen/X86/fadd-combines.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-cmp.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-deadcode.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-load-i1.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-nontemporal.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-select-cmov.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-select-sse.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-x86-64.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-x86.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/fma-fneg-combine.ll vendor/llvm/dist/test/CodeGen/X86/fma.ll vendor/llvm/dist/test/CodeGen/X86/fma_patterns.ll vendor/llvm/dist/test/CodeGen/X86/fold-vector-sext-zext.ll vendor/llvm/dist/test/CodeGen/X86/fp-select-cmp-and.ll vendor/llvm/dist/test/CodeGen/X86/fp-une-cmp.ll vendor/llvm/dist/test/CodeGen/X86/fp128-cast.ll vendor/llvm/dist/test/CodeGen/X86/fp128-compare.ll vendor/llvm/dist/test/CodeGen/X86/fp128-g.ll vendor/llvm/dist/test/CodeGen/X86/fp128-i128.ll vendor/llvm/dist/test/CodeGen/X86/fp128-libcalls.ll vendor/llvm/dist/test/CodeGen/X86/fp128-load.ll vendor/llvm/dist/test/CodeGen/X86/fp128-select.ll vendor/llvm/dist/test/CodeGen/X86/i256-add.ll vendor/llvm/dist/test/CodeGen/X86/i386-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/implicit-null-check.ll vendor/llvm/dist/test/CodeGen/X86/implicit-null-checks.mir vendor/llvm/dist/test/CodeGen/X86/implicit-use-spill.mir vendor/llvm/dist/test/CodeGen/X86/imul.ll vendor/llvm/dist/test/CodeGen/X86/inline-asm-tied.ll vendor/llvm/dist/test/CodeGen/X86/insertelement-zero.ll vendor/llvm/dist/test/CodeGen/X86/isel-sink.ll vendor/llvm/dist/test/CodeGen/X86/jump_sign.ll vendor/llvm/dist/test/CodeGen/X86/known-bits-vector.ll vendor/llvm/dist/test/CodeGen/X86/known-bits.ll vendor/llvm/dist/test/CodeGen/X86/licm-nested.ll vendor/llvm/dist/test/CodeGen/X86/live-range-nosubreg.ll vendor/llvm/dist/test/CodeGen/X86/load-slice.ll vendor/llvm/dist/test/CodeGen/X86/local_stack_symbol_ordering.ll vendor/llvm/dist/test/CodeGen/X86/logical-load-fold.ll vendor/llvm/dist/test/CodeGen/X86/longlong-deadload.ll vendor/llvm/dist/test/CodeGen/X86/lzcnt-zext-cmp.ll vendor/llvm/dist/test/CodeGen/X86/machine-trace-metrics-crash.ll vendor/llvm/dist/test/CodeGen/X86/masked_gather_scatter.ll vendor/llvm/dist/test/CodeGen/X86/masked_memop.ll vendor/llvm/dist/test/CodeGen/X86/mature-mc-support.ll vendor/llvm/dist/test/CodeGen/X86/memcmp.ll vendor/llvm/dist/test/CodeGen/X86/mempcpy.ll vendor/llvm/dist/test/CodeGen/X86/merge-consecutive-loads-128.ll vendor/llvm/dist/test/CodeGen/X86/merge-consecutive-loads-256.ll vendor/llvm/dist/test/CodeGen/X86/merge-consecutive-loads-512.ll vendor/llvm/dist/test/CodeGen/X86/merge-store-partially-alias-loads.ll vendor/llvm/dist/test/CodeGen/X86/merge_store.ll vendor/llvm/dist/test/CodeGen/X86/misched-aa-colored.ll vendor/llvm/dist/test/CodeGen/X86/mmx-fold-load.ll vendor/llvm/dist/test/CodeGen/X86/mul-i256.ll vendor/llvm/dist/test/CodeGen/X86/mulx32.ll vendor/llvm/dist/test/CodeGen/X86/mulx64.ll vendor/llvm/dist/test/CodeGen/X86/neg_cmp.ll vendor/llvm/dist/test/CodeGen/X86/negative-sin.ll vendor/llvm/dist/test/CodeGen/X86/nontemporal-2.ll vendor/llvm/dist/test/CodeGen/X86/nontemporal-loads.ll vendor/llvm/dist/test/CodeGen/X86/oddshuffles.ll vendor/llvm/dist/test/CodeGen/X86/peep-setb.ll vendor/llvm/dist/test/CodeGen/X86/peep-test-4.ll vendor/llvm/dist/test/CodeGen/X86/pmul.ll vendor/llvm/dist/test/CodeGen/X86/pointer-vector.ll vendor/llvm/dist/test/CodeGen/X86/pr11334.ll vendor/llvm/dist/test/CodeGen/X86/pr12312.ll vendor/llvm/dist/test/CodeGen/X86/pr14204.ll vendor/llvm/dist/test/CodeGen/X86/pr14314.ll vendor/llvm/dist/test/CodeGen/X86/pr16031.ll vendor/llvm/dist/test/CodeGen/X86/pr17764.ll vendor/llvm/dist/test/CodeGen/X86/pr18014.ll vendor/llvm/dist/test/CodeGen/X86/pr26350.ll vendor/llvm/dist/test/CodeGen/X86/pr2656.ll vendor/llvm/dist/test/CodeGen/X86/pr27591.ll vendor/llvm/dist/test/CodeGen/X86/pr28173.ll vendor/llvm/dist/test/CodeGen/X86/pr29112.ll vendor/llvm/dist/test/CodeGen/X86/pr29170.ll vendor/llvm/dist/test/CodeGen/X86/pr30284.ll vendor/llvm/dist/test/CodeGen/X86/pr30430.ll vendor/llvm/dist/test/CodeGen/X86/prefixdata.ll vendor/llvm/dist/test/CodeGen/X86/promote-vec3.ll vendor/llvm/dist/test/CodeGen/X86/psubus.ll vendor/llvm/dist/test/CodeGen/X86/recip-fastmath.ll vendor/llvm/dist/test/CodeGen/X86/recip-fastmath2.ll vendor/llvm/dist/test/CodeGen/X86/reduce-trunc-shl.ll vendor/llvm/dist/test/CodeGen/X86/rot32.ll vendor/llvm/dist/test/CodeGen/X86/rot64.ll vendor/llvm/dist/test/CodeGen/X86/rotate.ll vendor/llvm/dist/test/CodeGen/X86/rtm.ll vendor/llvm/dist/test/CodeGen/X86/sad.ll vendor/llvm/dist/test/CodeGen/X86/safestack.ll vendor/llvm/dist/test/CodeGen/X86/safestack_ssp.ll vendor/llvm/dist/test/CodeGen/X86/scalar-int-to-fp.ll vendor/llvm/dist/test/CodeGen/X86/select.ll vendor/llvm/dist/test/CodeGen/X86/select_const.ll vendor/llvm/dist/test/CodeGen/X86/select_meta.ll vendor/llvm/dist/test/CodeGen/X86/setcc-lowering.ll vendor/llvm/dist/test/CodeGen/X86/setcc.ll vendor/llvm/dist/test/CodeGen/X86/sext-i1.ll vendor/llvm/dist/test/CodeGen/X86/sha.ll vendor/llvm/dist/test/CodeGen/X86/shrink-compare.ll vendor/llvm/dist/test/CodeGen/X86/shrink_vmul.ll vendor/llvm/dist/test/CodeGen/X86/shuffle-vs-trunc-256.ll vendor/llvm/dist/test/CodeGen/X86/shuffle-vs-trunc-512.ll vendor/llvm/dist/test/CodeGen/X86/split-store.ll vendor/llvm/dist/test/CodeGen/X86/sse-align-10.ll vendor/llvm/dist/test/CodeGen/X86/sse-fsignum.ll vendor/llvm/dist/test/CodeGen/X86/sse-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse-minmax.ll vendor/llvm/dist/test/CodeGen/X86/sse-regcall.ll vendor/llvm/dist/test/CodeGen/X86/sse1.ll vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse3-avx-addsub.ll vendor/llvm/dist/test/CodeGen/X86/sse3-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse41-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse41-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/sse41-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse41.ll vendor/llvm/dist/test/CodeGen/X86/sse42-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse42-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/ssse3-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/stack-align.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-adx-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-avx1.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-avx512vl.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-sse42.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-int-avx512.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-int-avx512vl.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-int-sse42.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-target.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-weight.ll vendor/llvm/dist/test/CodeGen/X86/stack_guard_remat.ll vendor/llvm/dist/test/CodeGen/X86/stores-merging.ll vendor/llvm/dist/test/CodeGen/X86/subvector-broadcast.ll vendor/llvm/dist/test/CodeGen/X86/swifterror.ll vendor/llvm/dist/test/CodeGen/X86/tail-dup-repeat.ll vendor/llvm/dist/test/CodeGen/X86/tail-merge-unreachable.ll vendor/llvm/dist/test/CodeGen/X86/tail-opts.ll vendor/llvm/dist/test/CodeGen/X86/twoaddr-coalesce-3.ll vendor/llvm/dist/test/CodeGen/X86/unaligned-32-byte-memops.ll vendor/llvm/dist/test/CodeGen/X86/unreachableblockelim.ll vendor/llvm/dist/test/CodeGen/X86/unused_stackslots.ll vendor/llvm/dist/test/CodeGen/X86/unwindraise.ll vendor/llvm/dist/test/CodeGen/X86/vec_cast2.ll vendor/llvm/dist/test/CodeGen/X86/vec_extract-mmx.ll vendor/llvm/dist/test/CodeGen/X86/vec_fp_to_int.ll vendor/llvm/dist/test/CodeGen/X86/vec_fpext.ll vendor/llvm/dist/test/CodeGen/X86/vec_fptrunc.ll vendor/llvm/dist/test/CodeGen/X86/vec_int_to_fp.ll vendor/llvm/dist/test/CodeGen/X86/vec_logical.ll vendor/llvm/dist/test/CodeGen/X86/vec_minmax_match.ll vendor/llvm/dist/test/CodeGen/X86/vec_minmax_sint.ll vendor/llvm/dist/test/CodeGen/X86/vec_minmax_uint.ll vendor/llvm/dist/test/CodeGen/X86/vec_sdiv_to_shift.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift4.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift5.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift7.ll vendor/llvm/dist/test/CodeGen/X86/vec_uint_to_fp-fastmath.ll vendor/llvm/dist/test/CodeGen/X86/vec_unsafe-fp-math.ll vendor/llvm/dist/test/CodeGen/X86/vec_zero_cse.ll vendor/llvm/dist/test/CodeGen/X86/vector-bitreverse.ll vendor/llvm/dist/test/CodeGen/X86/vector-blend.ll vendor/llvm/dist/test/CodeGen/X86/vector-compare-results.ll vendor/llvm/dist/test/CodeGen/X86/vector-half-conversions.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-sdiv-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-sdiv-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-udiv-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-udiv-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-interleave.ll vendor/llvm/dist/test/CodeGen/X86/vector-lzcnt-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-lzcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-popcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-sext.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v2.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v32.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v4.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v8.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v32.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v8.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-avx512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-avx2.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-ssse3.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-xop.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-masked.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-v1.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-variable-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-variable-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-sqrt.ll vendor/llvm/dist/test/CodeGen/X86/vector-trunc-math.ll vendor/llvm/dist/test/CodeGen/X86/vector-trunc.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-zext.ll vendor/llvm/dist/test/CodeGen/X86/vectorcall.ll vendor/llvm/dist/test/CodeGen/X86/viabs.ll vendor/llvm/dist/test/CodeGen/X86/vselect-minmax.ll vendor/llvm/dist/test/CodeGen/X86/vsplit-and.ll vendor/llvm/dist/test/CodeGen/X86/wide-integer-cmp.ll vendor/llvm/dist/test/CodeGen/X86/widen_bitops-0.ll vendor/llvm/dist/test/CodeGen/X86/widen_conv-1.ll vendor/llvm/dist/test/CodeGen/X86/widen_conv-3.ll vendor/llvm/dist/test/CodeGen/X86/widen_conv-4.ll vendor/llvm/dist/test/CodeGen/X86/widen_load-2.ll vendor/llvm/dist/test/CodeGen/X86/widened-broadcast.ll vendor/llvm/dist/test/CodeGen/X86/win-alloca-expander.ll vendor/llvm/dist/test/CodeGen/X86/win32-eh.ll vendor/llvm/dist/test/CodeGen/X86/x32-va_start.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-intrcc.ll vendor/llvm/dist/test/CodeGen/X86/x86-interleaved-access.ll vendor/llvm/dist/test/CodeGen/X86/x86-sanitizer-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/xaluo.ll vendor/llvm/dist/test/CodeGen/X86/xmulo.ll vendor/llvm/dist/test/CodeGen/X86/xop-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/xop-intrinsics-x86_64-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/xop-intrinsics-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/xop-mask-comments.ll vendor/llvm/dist/test/CodeGen/XCore/fneg.ll vendor/llvm/dist/test/CodeGen/XCore/varargs.ll vendor/llvm/dist/test/DebugInfo/ARM/s-super-register.ll vendor/llvm/dist/test/DebugInfo/COFF/globals.ll vendor/llvm/dist/test/DebugInfo/COFF/typedef.ll vendor/llvm/dist/test/DebugInfo/COFF/types-data-members.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-01-05-DbgScope.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/Generic/array.ll vendor/llvm/dist/test/DebugInfo/Inputs/gmlt.ll vendor/llvm/dist/test/DebugInfo/Mips/InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/PDB/DIA/pdbdump-linenumbers.test vendor/llvm/dist/test/DebugInfo/PDB/DIA/pdbdump-symbol-format.test vendor/llvm/dist/test/DebugInfo/PDB/Inputs/symbolformat.cpp vendor/llvm/dist/test/DebugInfo/PDB/Inputs/symbolformat.pdb vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-headers.test vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-readwrite.test vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-write.test vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-yaml-types.test vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-yaml.test vendor/llvm/dist/test/DebugInfo/PowerPC/tls-fission.ll vendor/llvm/dist/test/DebugInfo/WebAssembly/dbg-declare.ll vendor/llvm/dist/test/DebugInfo/X86/PR26148.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-const-byref.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-regmask-clobber.ll vendor/llvm/dist/test/DebugInfo/X86/discriminator.ll vendor/llvm/dist/test/DebugInfo/X86/dw_op_minus_direct.ll vendor/llvm/dist/test/DebugInfo/X86/fission-ranges.ll vendor/llvm/dist/test/DebugInfo/X86/ref_addr_relocation.ll vendor/llvm/dist/test/DebugInfo/X86/single-dbg_value.ll vendor/llvm/dist/test/DebugInfo/X86/split-global.ll vendor/llvm/dist/test/DebugInfo/X86/stack-value-dwarf4.ll vendor/llvm/dist/test/DebugInfo/X86/subreg.ll vendor/llvm/dist/test/DebugInfo/X86/subregisters.ll vendor/llvm/dist/test/DebugInfo/X86/tls.ll vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_relocations.s vendor/llvm/dist/test/Feature/OperandBundles/dse.ll vendor/llvm/dist/test/Feature/optnone-opt.ll vendor/llvm/dist/test/FileCheck/line-count.txt vendor/llvm/dist/test/Instrumentation/AddressSanitizer/freebsd.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/global_metadata_windows.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/instrument_load_then_store.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/lifetime-throw.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/lifetime-uar-uas.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/lifetime.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime-be.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/stack_layout.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/PR23499.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/icall.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/platform.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/profiling.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/AArch64/vararg.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64el.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64le.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/tracing.ll vendor/llvm/dist/test/LTO/Resolution/X86/alias.ll vendor/llvm/dist/test/LTO/Resolution/X86/comdat.ll vendor/llvm/dist/test/LTO/Resolution/X86/common2.ll vendor/llvm/dist/test/LTO/Resolution/X86/commons.ll vendor/llvm/dist/test/LTO/Resolution/X86/empty-bitcode.test vendor/llvm/dist/test/LTO/Resolution/X86/intrinsic.ll vendor/llvm/dist/test/LTO/Resolution/X86/mixed_lto.ll vendor/llvm/dist/test/LTO/Resolution/X86/multi-thinlto.ll vendor/llvm/dist/test/LTO/X86/diagnostic-handler-remarks-with-hotness.ll vendor/llvm/dist/test/LTO/X86/diagnostic-handler-remarks.ll vendor/llvm/dist/test/LTO/X86/remangle_intrinsics_tbaa.ll vendor/llvm/dist/test/LTO/X86/symver-asm.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-class-type2.ll vendor/llvm/dist/test/Linker/available_externally_a.ll vendor/llvm/dist/test/Linker/link-flags.ll vendor/llvm/dist/test/MC/AArch64/alias-addsubimm.s vendor/llvm/dist/test/MC/AArch64/alias-logicalimm.s vendor/llvm/dist/test/MC/AArch64/error-location-post-layout.s vendor/llvm/dist/test/MC/AArch64/label-arithmetic-diags-elf.s vendor/llvm/dist/test/MC/AArch64/neon-add-sub-instructions.s vendor/llvm/dist/test/MC/AArch64/neon-diagnostics.s vendor/llvm/dist/test/MC/AMDGPU/ds.s vendor/llvm/dist/test/MC/AMDGPU/exp.s vendor/llvm/dist/test/MC/AMDGPU/expressions.s vendor/llvm/dist/test/MC/AMDGPU/hsa-exp.s vendor/llvm/dist/test/MC/AMDGPU/hsa.s vendor/llvm/dist/test/MC/AMDGPU/literals.s vendor/llvm/dist/test/MC/AMDGPU/regression/bug28168.s vendor/llvm/dist/test/MC/AMDGPU/sop1.s vendor/llvm/dist/test/MC/AMDGPU/sop2.s vendor/llvm/dist/test/MC/AMDGPU/sopp.s vendor/llvm/dist/test/MC/AMDGPU/vop1.s vendor/llvm/dist/test/MC/AMDGPU/vop2.s vendor/llvm/dist/test/MC/AMDGPU/vop3.s vendor/llvm/dist/test/MC/ARM/arm-thumb-trustzone.s vendor/llvm/dist/test/MC/ARM/basic-arm-instructions-v8.1a.s vendor/llvm/dist/test/MC/ARM/basic-thumb2-instructions.s vendor/llvm/dist/test/MC/ARM/coff-relocations.s vendor/llvm/dist/test/MC/ARM/data-in-code.ll vendor/llvm/dist/test/MC/ARM/diagnostics.s vendor/llvm/dist/test/MC/ARM/dwarf-asm-multiple-sections.s vendor/llvm/dist/test/MC/ARM/elf-thumbfunc.s vendor/llvm/dist/test/MC/ARM/error-location-post-layout.s vendor/llvm/dist/test/MC/ARM/ldr-pseudo-cond-darwin.s vendor/llvm/dist/test/MC/ARM/ldr-pseudo-cond.s vendor/llvm/dist/test/MC/ARM/multi-section-mapping.s vendor/llvm/dist/test/MC/ARM/simple-fp-encoding.s vendor/llvm/dist/test/MC/ARM/thumb-diagnostics.s vendor/llvm/dist/test/MC/ARM/thumb-not-mclass.s vendor/llvm/dist/test/MC/ARM/thumb2-diagnostics.s vendor/llvm/dist/test/MC/ARM/thumbv8m.s vendor/llvm/dist/test/MC/ARM/udf-arm-diagnostics.s vendor/llvm/dist/test/MC/ARM/udf-thumb-2-diagnostics.s vendor/llvm/dist/test/MC/AsmParser/section_names.s vendor/llvm/dist/test/MC/COFF/section-comdat.s vendor/llvm/dist/test/MC/Disassembler/AMDGPU/ds_vi.txt vendor/llvm/dist/test/MC/Disassembler/AMDGPU/sop1_vi.txt vendor/llvm/dist/test/MC/Disassembler/AMDGPU/vop3_vi.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/alu32_alu.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/alu32_perm.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/alu32_pred.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/cr.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/j.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/ld.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/nv_j.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/nv_st.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/st.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/system_user.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/xtype_alu.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/xtype_bit.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/xtype_complex.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/xtype_fp.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/xtype_mpy.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/xtype_perm.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/xtype_pred.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/xtype_shift.txt vendor/llvm/dist/test/MC/Disassembler/PowerPC/vsx.txt vendor/llvm/dist/test/MC/Disassembler/X86/avx-512.txt vendor/llvm/dist/test/MC/Disassembler/X86/fp-stack.txt vendor/llvm/dist/test/MC/Disassembler/X86/x86-16.txt vendor/llvm/dist/test/MC/Disassembler/X86/x86-32.txt vendor/llvm/dist/test/MC/Disassembler/X86/x86-64.txt vendor/llvm/dist/test/MC/ELF/ARM/gnu-type-hash-diagnostics.s vendor/llvm/dist/test/MC/ELF/gen-dwarf.s vendor/llvm/dist/test/MC/ELF/section.s vendor/llvm/dist/test/MC/Hexagon/align.s vendor/llvm/dist/test/MC/Hexagon/asmMap.s vendor/llvm/dist/test/MC/Hexagon/capitalizedEndloop.s vendor/llvm/dist/test/MC/Hexagon/dis-duplex-p0.s vendor/llvm/dist/test/MC/Hexagon/duplex-registers.s vendor/llvm/dist/test/MC/Hexagon/elf-flags.s vendor/llvm/dist/test/MC/Hexagon/fixups.s vendor/llvm/dist/test/MC/Hexagon/iconst.s vendor/llvm/dist/test/MC/Hexagon/inst_cmp_eq.ll vendor/llvm/dist/test/MC/Hexagon/inst_cmp_eqi.ll vendor/llvm/dist/test/MC/Hexagon/inst_cmp_gt.ll vendor/llvm/dist/test/MC/Hexagon/inst_cmp_gti.ll vendor/llvm/dist/test/MC/Hexagon/inst_cmp_lt.ll vendor/llvm/dist/test/MC/Hexagon/inst_cmp_ugt.ll vendor/llvm/dist/test/MC/Hexagon/inst_cmp_ugti.ll vendor/llvm/dist/test/MC/Hexagon/inst_cmp_ult.ll vendor/llvm/dist/test/MC/Hexagon/inst_select.ll vendor/llvm/dist/test/MC/Hexagon/instructions/ld.s vendor/llvm/dist/test/MC/Hexagon/instructions/nv_st.s vendor/llvm/dist/test/MC/Hexagon/instructions/st.s vendor/llvm/dist/test/MC/Hexagon/instructions/system_user.s vendor/llvm/dist/test/MC/Hexagon/jumpdoublepound.s vendor/llvm/dist/test/MC/Hexagon/labels.s vendor/llvm/dist/test/MC/Hexagon/register-alt-names.s vendor/llvm/dist/test/MC/Hexagon/relaxed_newvalue.s vendor/llvm/dist/test/MC/Hexagon/relocations.s vendor/llvm/dist/test/MC/Hexagon/v60-misc.s vendor/llvm/dist/test/MC/Hexagon/v60-vmem.s vendor/llvm/dist/test/MC/MachO/darwin-version-min-load-command.s vendor/llvm/dist/test/MC/Mips/branch-pseudos-bad.s vendor/llvm/dist/test/MC/Mips/elf_eflags.s vendor/llvm/dist/test/MC/Mips/expansion-j-sym-pic.s vendor/llvm/dist/test/MC/Mips/expansion-jal-sym-pic.s vendor/llvm/dist/test/MC/Mips/instalias-imm-expanding.s vendor/llvm/dist/test/MC/Mips/macro-bcc-imm.s vendor/llvm/dist/test/MC/Mips/macro-ddiv.s vendor/llvm/dist/test/MC/Mips/macro-ddivu.s vendor/llvm/dist/test/MC/Mips/macro-div-bad.s vendor/llvm/dist/test/MC/Mips/macro-div.s vendor/llvm/dist/test/MC/Mips/macro-divu-bad.s vendor/llvm/dist/test/MC/Mips/macro-divu.s vendor/llvm/dist/test/MC/Mips/macro-dla.s vendor/llvm/dist/test/MC/Mips/macro-li.s vendor/llvm/dist/test/MC/Mips/micromips32r6/valid.s vendor/llvm/dist/test/MC/Mips/micromips64r6/valid.s vendor/llvm/dist/test/MC/Mips/mips64extins.s vendor/llvm/dist/test/MC/Mips/set-nomacro.s vendor/llvm/dist/test/MC/Mips/sext_64_32.ll vendor/llvm/dist/test/MC/PowerPC/ppc64-encoding-vmx.s vendor/llvm/dist/test/MC/PowerPC/vsx.s vendor/llvm/dist/test/MC/X86/avx512-encodings.s vendor/llvm/dist/test/MC/X86/avx512vl-encoding.s vendor/llvm/dist/test/MC/X86/intel-syntax-avx512.s vendor/llvm/dist/test/MC/X86/intel-syntax-bitwise-ops.s vendor/llvm/dist/test/MC/X86/intel-syntax.s vendor/llvm/dist/test/MC/X86/x86-16.s vendor/llvm/dist/test/MC/X86/x86-32-coverage.s vendor/llvm/dist/test/MC/X86/x86-32.s vendor/llvm/dist/test/MC/X86/x86-64.s vendor/llvm/dist/test/MC/X86/x86_64-encoding.s vendor/llvm/dist/test/Object/ARM/nm-mapping-symbol.s vendor/llvm/dist/test/Object/X86/nm-ir.ll vendor/llvm/dist/test/Object/archive-extract.test vendor/llvm/dist/test/Object/archive-format.test vendor/llvm/dist/test/Object/macho-invalid.test vendor/llvm/dist/test/Object/nm-shared-object.test vendor/llvm/dist/test/ObjectYAML/MachO/DWARF-debug_aranges.yaml vendor/llvm/dist/test/ObjectYAML/MachO/DWARF-debug_info.yaml vendor/llvm/dist/test/ObjectYAML/MachO/DWARF-debug_line.yaml vendor/llvm/dist/test/ObjectYAML/MachO/DWARF-pubsections.yaml vendor/llvm/dist/test/Other/cgscc-devirt-iteration.ll vendor/llvm/dist/test/Other/constant-fold-gep.ll vendor/llvm/dist/test/Other/new-pass-manager.ll vendor/llvm/dist/test/ThinLTO/X86/cache-config.ll vendor/llvm/dist/test/ThinLTO/X86/cache.ll vendor/llvm/dist/test/ThinLTO/X86/crash_debuginfo.ll vendor/llvm/dist/test/ThinLTO/X86/deadstrip.ll vendor/llvm/dist/test/ThinLTO/X86/debuginfo-compositetype-import.ll vendor/llvm/dist/test/ThinLTO/X86/diagnostic-handler-remarks.ll vendor/llvm/dist/test/ThinLTO/X86/dicompositetype-unique.ll vendor/llvm/dist/test/ThinLTO/X86/distributed_import.ll vendor/llvm/dist/test/ThinLTO/X86/emit_imports.ll vendor/llvm/dist/test/ThinLTO/X86/empty_module_with_cache.ll vendor/llvm/dist/test/ThinLTO/X86/funcimport2.ll vendor/llvm/dist/test/ThinLTO/X86/internalize.ll vendor/llvm/dist/test/ThinLTO/X86/lazyload_metadata.ll vendor/llvm/dist/test/ThinLTO/X86/linkonce_aliasee_ref_import.ll vendor/llvm/dist/test/ThinLTO/X86/local_name_conflict.ll vendor/llvm/dist/test/ThinLTO/X86/module_asm2.ll vendor/llvm/dist/test/ThinLTO/X86/module_asm_glob.ll vendor/llvm/dist/test/ThinLTO/X86/reference_non_importable.ll vendor/llvm/dist/test/ThinLTO/X86/weak_resolution.ll vendor/llvm/dist/test/Transforms/ADCE/delete-profiling-calls-to-constant.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/basic.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/call-nested.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/call.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/diamond.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/first-only.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/inlined.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/multiple.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/oneline.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/aggregate-promote.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/attrs.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/byval-2.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/byval.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/chained.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/control-flow.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/control-flow2.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/crash.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/dbg.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/fp80.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/inalloca.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/pr27568.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/reserve-tbaa.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/sret.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/tail.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/variadic.ll vendor/llvm/dist/test/Transforms/AtomicExpand/SPARC/libcalls.ll vendor/llvm/dist/test/Transforms/BBVectorize/X86/loop1.ll vendor/llvm/dist/test/Transforms/BBVectorize/X86/wr-aliases.ll vendor/llvm/dist/test/Transforms/BBVectorize/loop1.ll vendor/llvm/dist/test/Transforms/BDCE/basic.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/AMDGPU/no-sink-addrspacecast.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/sink-addrmode.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/basic.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/builtin-condition.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/section.ll vendor/llvm/dist/test/Transforms/ConstProp/loads.ll vendor/llvm/dist/test/Transforms/ConstantMerge/dont-merge.ll vendor/llvm/dist/test/Transforms/Coroutines/ArgAddr.ll vendor/llvm/dist/test/Transforms/Coroutines/coro-split-00.ll vendor/llvm/dist/test/Transforms/Coroutines/coro-split-01.ll vendor/llvm/dist/test/Transforms/Coroutines/coro-split-02.ll vendor/llvm/dist/test/Transforms/Coroutines/coro-split-dbg.ll vendor/llvm/dist/test/Transforms/Coroutines/ex0.ll vendor/llvm/dist/test/Transforms/Coroutines/ex1.ll vendor/llvm/dist/test/Transforms/Coroutines/ex2.ll vendor/llvm/dist/test/Transforms/Coroutines/ex3.ll vendor/llvm/dist/test/Transforms/Coroutines/ex4.ll vendor/llvm/dist/test/Transforms/Coroutines/ex5.ll vendor/llvm/dist/test/Transforms/Coroutines/no-suspend.ll vendor/llvm/dist/test/Transforms/Coroutines/phi-coro-end.ll vendor/llvm/dist/test/Transforms/Coroutines/restart-trigger.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/alloca.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/basic.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/dominate.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/lifetime.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/operand-bundles.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/nonnull.ll vendor/llvm/dist/test/Transforms/FunctionImport/funcimport.ll vendor/llvm/dist/test/Transforms/GVN/PRE/rle-addrspace-cast.ll vendor/llvm/dist/test/Transforms/GVN/PRE/rle.ll vendor/llvm/dist/test/Transforms/GVN/cond_br2.ll vendor/llvm/dist/test/Transforms/GVN/fence.ll vendor/llvm/dist/test/Transforms/GVN/invariant.group.ll vendor/llvm/dist/test/Transforms/GVN/lifetime-simple.ll vendor/llvm/dist/test/Transforms/GVNHoist/pr29034.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-03-05-dbg.ll vendor/llvm/dist/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll vendor/llvm/dist/test/Transforms/GlobalSplit/basic.ll vendor/llvm/dist/test/Transforms/IPConstantProp/naked-return.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/2011-11-01-lftrptr.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/AMDGPU/no-widen-to-i64.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/exit_value_test2.ll vendor/llvm/dist/test/Transforms/Inline/alloca-bonus.ll vendor/llvm/dist/test/Transforms/Inline/cgscc-invalidate.ll vendor/llvm/dist/test/Transforms/Inline/crash-lifetime-marker.ll vendor/llvm/dist/test/Transforms/Inline/inline-cold-callee.ll vendor/llvm/dist/test/Transforms/Inline/inline-hot-callsite.ll vendor/llvm/dist/test/Transforms/Inline/inline_stats.ll vendor/llvm/dist/test/Transforms/Inline/lifetime-no-datalayout.ll vendor/llvm/dist/test/Transforms/Inline/lifetime.ll vendor/llvm/dist/test/Transforms/Inline/optimization-remarks-with-hotness.ll vendor/llvm/dist/test/Transforms/Inline/optimization-remarks.ll vendor/llvm/dist/test/Transforms/InstCombine/2008-05-22-NegValVector.ll vendor/llvm/dist/test/Transforms/InstCombine/2012-07-25-LoadPart.ll vendor/llvm/dist/test/Transforms/InstCombine/add-sitofp.ll vendor/llvm/dist/test/Transforms/InstCombine/add.ll vendor/llvm/dist/test/Transforms/InstCombine/alloca.ll vendor/llvm/dist/test/Transforms/InstCombine/amdgcn-intrinsics.ll vendor/llvm/dist/test/Transforms/InstCombine/and-or-icmps.ll vendor/llvm/dist/test/Transforms/InstCombine/and.ll vendor/llvm/dist/test/Transforms/InstCombine/and2.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-shift.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-sub.ll vendor/llvm/dist/test/Transforms/InstCombine/assume.ll vendor/llvm/dist/test/Transforms/InstCombine/bitcast-bigendian.ll vendor/llvm/dist/test/Transforms/InstCombine/bitcast.ll vendor/llvm/dist/test/Transforms/InstCombine/bitreverse-fold.ll vendor/llvm/dist/test/Transforms/InstCombine/bswap-fold.ll vendor/llvm/dist/test/Transforms/InstCombine/builtin-object-size-offset.ll vendor/llvm/dist/test/Transforms/InstCombine/builtin-object-size-ptr.ll vendor/llvm/dist/test/Transforms/InstCombine/call_nonnull_arg.ll vendor/llvm/dist/test/Transforms/InstCombine/compare-alloca.ll vendor/llvm/dist/test/Transforms/InstCombine/compare-unescaped.ll vendor/llvm/dist/test/Transforms/InstCombine/constant-fold-math.ll vendor/llvm/dist/test/Transforms/InstCombine/convergent.ll vendor/llvm/dist/test/Transforms/InstCombine/deadcode.ll vendor/llvm/dist/test/Transforms/InstCombine/double-float-shrink-2.ll vendor/llvm/dist/test/Transforms/InstCombine/exact.ll vendor/llvm/dist/test/Transforms/InstCombine/fabs.ll vendor/llvm/dist/test/Transforms/InstCombine/fast-math.ll vendor/llvm/dist/test/Transforms/InstCombine/fcmp.ll vendor/llvm/dist/test/Transforms/InstCombine/float-shrink-compare.ll vendor/llvm/dist/test/Transforms/InstCombine/fma.ll vendor/llvm/dist/test/Transforms/InstCombine/getelementptr.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp-shl-nsw.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp.ll vendor/llvm/dist/test/Transforms/InstCombine/insert-extract-shuffle.ll vendor/llvm/dist/test/Transforms/InstCombine/intrinsics.ll vendor/llvm/dist/test/Transforms/InstCombine/lifetime-asan.ll vendor/llvm/dist/test/Transforms/InstCombine/lifetime.ll vendor/llvm/dist/test/Transforms/InstCombine/load-cmp.ll vendor/llvm/dist/test/Transforms/InstCombine/malloc-free-delete.ll vendor/llvm/dist/test/Transforms/InstCombine/max-of-nots.ll vendor/llvm/dist/test/Transforms/InstCombine/memcmp-1.ll vendor/llvm/dist/test/Transforms/InstCombine/memcpy-from-global.ll vendor/llvm/dist/test/Transforms/InstCombine/memcpy-to-load.ll vendor/llvm/dist/test/Transforms/InstCombine/memset_chk-1.ll vendor/llvm/dist/test/Transforms/InstCombine/minmax-fold.ll vendor/llvm/dist/test/Transforms/InstCombine/narrow-switch.ll vendor/llvm/dist/test/Transforms/InstCombine/narrow.ll vendor/llvm/dist/test/Transforms/InstCombine/not.ll vendor/llvm/dist/test/Transforms/InstCombine/objsize.ll vendor/llvm/dist/test/Transforms/InstCombine/or.ll vendor/llvm/dist/test/Transforms/InstCombine/pow-1.ll vendor/llvm/dist/test/Transforms/InstCombine/pr17827.ll vendor/llvm/dist/test/Transforms/InstCombine/pr19420.ll vendor/llvm/dist/test/Transforms/InstCombine/rem.ll vendor/llvm/dist/test/Transforms/InstCombine/select-bitext.ll vendor/llvm/dist/test/Transforms/InstCombine/select-cmp-br.ll vendor/llvm/dist/test/Transforms/InstCombine/select.ll vendor/llvm/dist/test/Transforms/InstCombine/select_meta.ll vendor/llvm/dist/test/Transforms/InstCombine/shift-sra.ll vendor/llvm/dist/test/Transforms/InstCombine/shift.ll vendor/llvm/dist/test/Transforms/InstCombine/signext.ll vendor/llvm/dist/test/Transforms/InstCombine/sitofp.ll vendor/llvm/dist/test/Transforms/InstCombine/stpcpy_chk-1.ll vendor/llvm/dist/test/Transforms/InstCombine/strcpy_chk-1.ll vendor/llvm/dist/test/Transforms/InstCombine/sub-xor.ll vendor/llvm/dist/test/Transforms/InstCombine/sub.ll vendor/llvm/dist/test/Transforms/InstCombine/trunc.ll vendor/llvm/dist/test/Transforms/InstCombine/type_pun.ll vendor/llvm/dist/test/Transforms/InstCombine/vararg.ll vendor/llvm/dist/test/Transforms/InstCombine/vec_demanded_elts.ll vendor/llvm/dist/test/Transforms/InstCombine/vec_sext.ll vendor/llvm/dist/test/Transforms/InstCombine/vector-casts.ll vendor/llvm/dist/test/Transforms/InstCombine/vector-urem.ll vendor/llvm/dist/test/Transforms/InstCombine/vector_insertelt_shuffle.ll vendor/llvm/dist/test/Transforms/InstCombine/win-math.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-avx2.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-avx512.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-muldq.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-pshufb.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-vpermil.ll vendor/llvm/dist/test/Transforms/InstCombine/xor.ll vendor/llvm/dist/test/Transforms/InstCombine/xor2.ll vendor/llvm/dist/test/Transforms/InstCombine/zero-point-zero-add.ll vendor/llvm/dist/test/Transforms/InstCombine/zext-or-icmp.ll vendor/llvm/dist/test/Transforms/InstCombine/zext.ll vendor/llvm/dist/test/Transforms/InstSimplify/AndOrXor.ll vendor/llvm/dist/test/Transforms/InstSimplify/assume.ll vendor/llvm/dist/test/Transforms/InstSimplify/div.ll vendor/llvm/dist/test/Transforms/InstSimplify/fdiv.ll vendor/llvm/dist/test/Transforms/InstSimplify/floating-point-arithmetic.ll vendor/llvm/dist/test/Transforms/InstSimplify/icmp-constant.ll vendor/llvm/dist/test/Transforms/InstSimplify/rem.ll vendor/llvm/dist/test/Transforms/InstSimplify/select.ll vendor/llvm/dist/test/Transforms/InstSimplify/shift-knownbits.ll vendor/llvm/dist/test/Transforms/InterleavedAccess/AArch64/interleaved-accesses.ll vendor/llvm/dist/test/Transforms/InterleavedAccess/ARM/interleaved-accesses.ll vendor/llvm/dist/test/Transforms/JumpThreading/thread-loads.ll vendor/llvm/dist/test/Transforms/LICM/atomics.ll vendor/llvm/dist/test/Transforms/LICM/constexpr.ll vendor/llvm/dist/test/Transforms/LICM/hoist-bitcast-load.ll vendor/llvm/dist/test/Transforms/LICM/hoist-deref-load.ll vendor/llvm/dist/test/Transforms/LICM/hoist-nounwind.ll vendor/llvm/dist/test/Transforms/LICM/hoist-round.ll vendor/llvm/dist/test/Transforms/LICM/hoisting.ll vendor/llvm/dist/test/Transforms/LICM/loopsink.ll vendor/llvm/dist/test/Transforms/LICM/opt-remarks.ll vendor/llvm/dist/test/Transforms/LICM/sink.ll vendor/llvm/dist/test/Transforms/LoadCombine/load-combine-aa.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/aa-metadata.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/adjust-alloca-alignment.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/extended-index.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/insertion-point.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/interleaved-mayalias-store.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-stores-private.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-stores.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-vectors.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/missing-alignment.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/multiple_tails.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/no-implicit-float.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/optnone.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/pointer-elements.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/store_with_aliasing_load.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/weird-type-accesses.ll vendor/llvm/dist/test/Transforms/LoopDeletion/multiple-exit-conditions.ll vendor/llvm/dist/test/Transforms/LoopDeletion/multiple-exits.ll vendor/llvm/dist/test/Transforms/LoopIdiom/unroll.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/backward.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/forward.ll vendor/llvm/dist/test/Transforms/LoopSimplify/dbg-loc.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/different-addrspace-addressing-mode-loops.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-postinc-pos-addrspace.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/preserve-addrspace-assert.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/ivchain-X86.ll vendor/llvm/dist/test/Transforms/LoopUnroll/AMDGPU/unroll-barrier.ll vendor/llvm/dist/test/Transforms/LoopUnroll/basic.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-bad-cost.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-crashers.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-2.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-cmp.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-dce.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-geps.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-phi-prop.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-keep-first-exit.ll vendor/llvm/dist/test/Transforms/LoopUnroll/partial-unroll-const-bounds.ll vendor/llvm/dist/test/Transforms/LoopUnroll/peel-loop-pgo.ll vendor/llvm/dist/test/Transforms/LoopUnroll/peel-loop.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop1.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop2.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop3.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop5.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unloop.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unroll-heuristics-pgo.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unroll-pragmas.ll vendor/llvm/dist/test/Transforms/LoopUnroll/update-loop-info-in-subloops.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/basictest.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/copy-metadata.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/crash.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/trivial-unswitch.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/aarch64-predication.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/loop-vectorization-factors.ll vendor/llvm/dist/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/avx512.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/int128_no_gather.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/interleaving.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/metadata-enable.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/scatter_crash.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks-profitable.ll vendor/llvm/dist/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll vendor/llvm/dist/test/Transforms/LoopVectorize/float-induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/if-conversion.ll vendor/llvm/dist/test/Transforms/LoopVectorize/if-pred-stores.ll vendor/llvm/dist/test/Transforms/LoopVectorize/induction-step.ll vendor/llvm/dist/test/Transforms/LoopVectorize/induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/lcssa-crash.ll vendor/llvm/dist/test/Transforms/LoopVectorize/lifetime.ll vendor/llvm/dist/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll vendor/llvm/dist/test/Transforms/LoopVectorize/pr31190.ll vendor/llvm/dist/test/Transforms/LoopVectorize/reduction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/reverse_iter.ll vendor/llvm/dist/test/Transforms/LoopVersioning/loop-invariant-bound.ll vendor/llvm/dist/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll vendor/llvm/dist/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/import-unsat.ll vendor/llvm/dist/test/Transforms/Mem2Reg/ignore-lifetime.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/lifetime.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/memcpy-to-memset-with-lifetimes.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/memcpy-undef.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/memcpy.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/pr29105.ll vendor/llvm/dist/test/Transforms/MetaRenamer/metarenamer.ll vendor/llvm/dist/test/Transforms/NewGVN/2007-07-26-PhiErasure.ll vendor/llvm/dist/test/Transforms/NewGVN/2011-07-07-MatchIntrinsicExtract.ll vendor/llvm/dist/test/Transforms/NewGVN/basic-cyclic-opt.ll vendor/llvm/dist/test/Transforms/NewGVN/bitcast-of-call.ll vendor/llvm/dist/test/Transforms/NewGVN/calloc-load-removal.ll vendor/llvm/dist/test/Transforms/NewGVN/calls-nonlocal.ll vendor/llvm/dist/test/Transforms/NewGVN/cond_br2.ll vendor/llvm/dist/test/Transforms/NewGVN/condprop.ll vendor/llvm/dist/test/Transforms/NewGVN/edge.ll vendor/llvm/dist/test/Transforms/NewGVN/fence.ll vendor/llvm/dist/test/Transforms/NewGVN/flags.ll vendor/llvm/dist/test/Transforms/NewGVN/fold-const-expr.ll vendor/llvm/dist/test/Transforms/NewGVN/lifetime-simple.ll vendor/llvm/dist/test/Transforms/NewGVN/load-constant-mem.ll vendor/llvm/dist/test/Transforms/NewGVN/malloc-load-removal.ll vendor/llvm/dist/test/Transforms/NewGVN/pr10820.ll vendor/llvm/dist/test/Transforms/NewGVN/pr14166.ll vendor/llvm/dist/test/Transforms/NewGVN/pr17732.ll vendor/llvm/dist/test/Transforms/NewGVN/pr31594.ll vendor/llvm/dist/test/Transforms/NewGVN/pr31613.ll vendor/llvm/dist/test/Transforms/NewGVN/pr31682.ll vendor/llvm/dist/test/Transforms/NewGVN/propagate-ir-flags.ll vendor/llvm/dist/test/Transforms/NewGVN/readattrs.ll vendor/llvm/dist/test/Transforms/NewGVN/rle-nonlocal.ll vendor/llvm/dist/test/Transforms/NewGVN/storeoverstore.ll vendor/llvm/dist/test/Transforms/NewGVN/tbaa.ll vendor/llvm/dist/test/Transforms/NewGVN/volatile-nonvolatile.ll vendor/llvm/dist/test/Transforms/ObjCARC/contract-storestrong.ll vendor/llvm/dist/test/Transforms/PGOProfile/comdat_internal.ll vendor/llvm/dist/test/Transforms/PGOProfile/indirect_call_promotion.ll vendor/llvm/dist/test/Transforms/PGOProfile/multiple_hash_profile.ll vendor/llvm/dist/test/Transforms/PGOProfile/statics_counter_naming.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-vector.ll vendor/llvm/dist/test/Transforms/SCCP/loadtest.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/AArch64/gather-root.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/AMDGPU/simplebb.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/bitreverse.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/horizontal-list.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/horizontal.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/reduction_loads.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/scheduling.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/vector.ll vendor/llvm/dist/test/Transforms/SROA/basictest.ll vendor/llvm/dist/test/Transforms/SROA/pr26972.ll vendor/llvm/dist/test/Transforms/SROA/vector-lifetime-intrinsic.ll vendor/llvm/dist/test/Transforms/SafeStack/AArch64/abi_ssp.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/abi_ssp.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/call.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/coloring-ssp.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/coloring.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/coloring2.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/debug-loc2.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/layout-frag.ll vendor/llvm/dist/test/Transforms/SampleProfile/branch.ll vendor/llvm/dist/test/Transforms/SampleProfile/calls.ll vendor/llvm/dist/test/Transforms/SampleProfile/cov-zero-samples.ll vendor/llvm/dist/test/Transforms/SampleProfile/discriminator.ll vendor/llvm/dist/test/Transforms/SampleProfile/early-inline.ll vendor/llvm/dist/test/Transforms/SampleProfile/fnptr.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline-coverage.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline.ll vendor/llvm/dist/test/Transforms/SampleProfile/propagate.ll vendor/llvm/dist/test/Transforms/SampleProfile/remarks.ll vendor/llvm/dist/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/split-gep-and-gvn-addrspace-addressing-modes.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/CoveredLookupTable.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/empty-cleanuppad.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/lifetime.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/merge-cond-stores.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/rangereduce.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/switch_create.ll vendor/llvm/dist/test/Transforms/StraightLineStrengthReduce/AMDGPU/reassociate-geps-and-slsr-addrspace.ll vendor/llvm/dist/test/Transforms/StripSymbols/strip-dead-debug-info.ll vendor/llvm/dist/test/Transforms/StructurizeCFG/rebuild-ssa-infinite-loop.ll vendor/llvm/dist/test/Transforms/ThinLTOBitcodeWriter/no-type-md.ll vendor/llvm/dist/test/Transforms/ThinLTOBitcodeWriter/split.ll vendor/llvm/dist/test/Transforms/ThinLTOBitcodeWriter/unsplittable.ll vendor/llvm/dist/test/Transforms/Util/simplify-dbg-declare-load.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/bad-read-from-vtable.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/unique-retval.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-accesses-memory.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-no-this.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-non-constant-arg.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-too-wide-ints.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-type-mismatch.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-uses-this.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/virtual-const-prop-begin.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/virtual-const-prop-check.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/virtual-const-prop-end.ll vendor/llvm/dist/test/Verifier/dbg-orphaned-compileunit.ll vendor/llvm/dist/test/Verifier/function-metadata-bad.ll vendor/llvm/dist/test/Verifier/metadata-function-prof.ll vendor/llvm/dist/test/tools/gold/X86/cache.ll vendor/llvm/dist/test/tools/gold/X86/parallel.ll vendor/llvm/dist/test/tools/gold/X86/stats.ll vendor/llvm/dist/test/tools/gold/X86/thinlto.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_weak_resolution.ll vendor/llvm/dist/test/tools/llvm-cov/demangle.test vendor/llvm/dist/test/tools/llvm-cov/multiple-files.test vendor/llvm/dist/test/tools/llvm-cov/report.cpp vendor/llvm/dist/test/tools/llvm-cov/warnings.h vendor/llvm/dist/test/tools/llvm-dwp/X86/compressfail.test vendor/llvm/dist/test/tools/llvm-dwp/X86/nocompress.test vendor/llvm/dist/test/tools/llvm-lto2/X86/nodatalayout.ll vendor/llvm/dist/test/tools/llvm-lto2/X86/pipeline.ll vendor/llvm/dist/test/tools/llvm-lto2/errors.ll vendor/llvm/dist/test/tools/llvm-nm/lit.local.cfg vendor/llvm/dist/test/tools/llvm-objdump/AArch64/macho-print-mrs.test vendor/llvm/dist/test/tools/llvm-objdump/Inputs/test.wasm vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-objc-meta-data.test vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-private-headers.test vendor/llvm/dist/test/tools/llvm-objdump/X86/malformed-machos.test vendor/llvm/dist/test/tools/llvm-objdump/X86/openbsd-headers.test vendor/llvm/dist/test/tools/llvm-objdump/X86/phdrs.test vendor/llvm/dist/test/tools/llvm-objdump/macho-bad-ordinal.test vendor/llvm/dist/test/tools/llvm-objdump/malformed-macho.test vendor/llvm/dist/test/tools/llvm-objdump/wasm.txt vendor/llvm/dist/test/tools/llvm-pdbdump/class-layout.test vendor/llvm/dist/test/tools/llvm-pdbdump/enum-layout.test vendor/llvm/dist/test/tools/llvm-pdbdump/regex-filter.test vendor/llvm/dist/test/tools/llvm-profdata/value-prof.proftext vendor/llvm/dist/test/tools/llvm-readobj/codeview-merging.test vendor/llvm/dist/test/tools/llvm-readobj/file-headers.test vendor/llvm/dist/test/tools/llvm-readobj/relocations.test vendor/llvm/dist/test/tools/llvm-readobj/sections.test vendor/llvm/dist/test/tools/llvm-readobj/symbols.test vendor/llvm/dist/test/tools/llvm-xray/X86/Inputs/simple-instrmap.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/account-deduce-tail-call.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/account-keep-going.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/account-simple-case.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/account-simple-sorting.yaml vendor/llvm/dist/test/tools/llvm-xray/X86/convert-with-yaml-instrmap.txt vendor/llvm/dist/test/tools/sancov/AArch64/print_coverage_pcs.test vendor/llvm/dist/test/tools/sancov/Inputs/src_blacklist.txt vendor/llvm/dist/test/tools/sancov/blacklist.test vendor/llvm/dist/test/tools/yaml2obj/missing_document_tag.yaml vendor/llvm/dist/test/tools/yaml2obj/unsupported_document_tag.yaml vendor/llvm/dist/tools/bugpoint/CrashDebugger.cpp vendor/llvm/dist/tools/bugpoint/ExtractFunction.cpp vendor/llvm/dist/tools/bugpoint/FindBugs.cpp vendor/llvm/dist/tools/bugpoint/ListReducer.h vendor/llvm/dist/tools/bugpoint/Miscompilation.cpp vendor/llvm/dist/tools/bugpoint/ToolRunner.cpp vendor/llvm/dist/tools/bugpoint/bugpoint.cpp vendor/llvm/dist/tools/dsymutil/DwarfLinker.cpp vendor/llvm/dist/tools/dsymutil/MachOUtils.cpp vendor/llvm/dist/tools/gold/gold-plugin.cpp vendor/llvm/dist/tools/llc/CMakeLists.txt vendor/llvm/dist/tools/llc/LLVMBuild.txt vendor/llvm/dist/tools/llc/llc.cpp vendor/llvm/dist/tools/lli/OrcLazyJIT.h vendor/llvm/dist/tools/lli/lli.cpp vendor/llvm/dist/tools/llvm-ar/llvm-ar.cpp vendor/llvm/dist/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp vendor/llvm/dist/tools/llvm-c-test/echo.cpp vendor/llvm/dist/tools/llvm-cat/llvm-cat.cpp vendor/llvm/dist/tools/llvm-cov/CodeCoverage.cpp vendor/llvm/dist/tools/llvm-cov/CoverageReport.cpp vendor/llvm/dist/tools/llvm-cov/CoverageReport.h vendor/llvm/dist/tools/llvm-cov/CoverageSummaryInfo.h vendor/llvm/dist/tools/llvm-cov/TestingSupport.cpp vendor/llvm/dist/tools/llvm-cov/gcov.cpp vendor/llvm/dist/tools/llvm-cxxfilt/llvm-cxxfilt.cpp vendor/llvm/dist/tools/llvm-diff/DiffConsumer.cpp vendor/llvm/dist/tools/llvm-diff/DifferenceEngine.cpp vendor/llvm/dist/tools/llvm-dwp/llvm-dwp.cpp vendor/llvm/dist/tools/llvm-extract/llvm-extract.cpp vendor/llvm/dist/tools/llvm-link/llvm-link.cpp vendor/llvm/dist/tools/llvm-lto/llvm-lto.cpp vendor/llvm/dist/tools/llvm-lto2/llvm-lto2.cpp vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp vendor/llvm/dist/tools/llvm-nm/llvm-nm.cpp vendor/llvm/dist/tools/llvm-objdump/MachODump.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.h vendor/llvm/dist/tools/llvm-pdbdump/CMakeLists.txt vendor/llvm/dist/tools/llvm-pdbdump/LLVMOutputStyle.cpp vendor/llvm/dist/tools/llvm-pdbdump/LLVMOutputStyle.h vendor/llvm/dist/tools/llvm-pdbdump/LinePrinter.cpp vendor/llvm/dist/tools/llvm-pdbdump/LinePrinter.h vendor/llvm/dist/tools/llvm-pdbdump/PdbYaml.cpp vendor/llvm/dist/tools/llvm-pdbdump/PdbYaml.h vendor/llvm/dist/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassDefinitionDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassDefinitionDumper.h vendor/llvm/dist/tools/llvm-pdbdump/PrettyFunctionDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypeDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypeDumper.h vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypedefDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/PrettyVariableDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/PrettyVariableDumper.h vendor/llvm/dist/tools/llvm-pdbdump/YAMLOutputStyle.cpp vendor/llvm/dist/tools/llvm-pdbdump/YAMLOutputStyle.h vendor/llvm/dist/tools/llvm-pdbdump/YamlSymbolDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/YamlTypeDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/fuzzer/llvm-pdbdump-fuzzer.cpp vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.cpp vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.h vendor/llvm/dist/tools/llvm-profdata/llvm-profdata.cpp vendor/llvm/dist/tools/llvm-readobj/CMakeLists.txt vendor/llvm/dist/tools/llvm-readobj/COFFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/ELFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/LLVMBuild.txt vendor/llvm/dist/tools/llvm-readobj/MachODumper.cpp vendor/llvm/dist/tools/llvm-readobj/ObjDumper.h vendor/llvm/dist/tools/llvm-readobj/llvm-readobj.cpp vendor/llvm/dist/tools/llvm-shlib/CMakeLists.txt vendor/llvm/dist/tools/llvm-stress/llvm-stress.cpp vendor/llvm/dist/tools/llvm-strings/llvm-strings.cpp vendor/llvm/dist/tools/llvm-symbolizer/llvm-symbolizer.cpp vendor/llvm/dist/tools/llvm-xray/CMakeLists.txt vendor/llvm/dist/tools/llvm-xray/llvm-xray.cc vendor/llvm/dist/tools/llvm-xray/xray-account.cc vendor/llvm/dist/tools/llvm-xray/xray-converter.cc vendor/llvm/dist/tools/llvm-xray/xray-extract.cc vendor/llvm/dist/tools/lto/lto.cpp vendor/llvm/dist/tools/msbuild/CMakeLists.txt vendor/llvm/dist/tools/obj2yaml/CMakeLists.txt vendor/llvm/dist/tools/obj2yaml/dwarf2yaml.cpp vendor/llvm/dist/tools/obj2yaml/elf2yaml.cpp vendor/llvm/dist/tools/obj2yaml/macho2yaml.cpp vendor/llvm/dist/tools/obj2yaml/obj2yaml.cpp vendor/llvm/dist/tools/obj2yaml/obj2yaml.h vendor/llvm/dist/tools/opt/GraphPrinters.cpp vendor/llvm/dist/tools/opt/opt.cpp vendor/llvm/dist/tools/sancov/coverage-report-server.py vendor/llvm/dist/tools/sancov/sancov.cc vendor/llvm/dist/tools/yaml2obj/CMakeLists.txt vendor/llvm/dist/tools/yaml2obj/yaml2macho.cpp vendor/llvm/dist/tools/yaml2obj/yaml2obj.cpp vendor/llvm/dist/tools/yaml2obj/yaml2obj.h vendor/llvm/dist/unittests/ADT/APFloatTest.cpp vendor/llvm/dist/unittests/ADT/APIntTest.cpp vendor/llvm/dist/unittests/ADT/BitVectorTest.cpp vendor/llvm/dist/unittests/ADT/CMakeLists.txt vendor/llvm/dist/unittests/ADT/DenseMapTest.cpp vendor/llvm/dist/unittests/ADT/DenseSetTest.cpp vendor/llvm/dist/unittests/ADT/IteratorTest.cpp vendor/llvm/dist/unittests/ADT/STLExtrasTest.cpp vendor/llvm/dist/unittests/ADT/SmallPtrSetTest.cpp vendor/llvm/dist/unittests/ADT/SparseBitVectorTest.cpp vendor/llvm/dist/unittests/ADT/StringMapTest.cpp vendor/llvm/dist/unittests/ADT/StringRefTest.cpp vendor/llvm/dist/unittests/ADT/TinyPtrVectorTest.cpp vendor/llvm/dist/unittests/ADT/TripleTest.cpp vendor/llvm/dist/unittests/Analysis/BlockFrequencyInfoTest.cpp vendor/llvm/dist/unittests/Analysis/CMakeLists.txt vendor/llvm/dist/unittests/Analysis/LazyCallGraphTest.cpp vendor/llvm/dist/unittests/Analysis/ScalarEvolutionTest.cpp vendor/llvm/dist/unittests/Analysis/UnrollAnalyzer.cpp vendor/llvm/dist/unittests/Analysis/ValueTrackingTest.cpp vendor/llvm/dist/unittests/CMakeLists.txt vendor/llvm/dist/unittests/CodeGen/LowLevelTypeTest.cpp vendor/llvm/dist/unittests/DebugInfo/DWARF/CMakeLists.txt vendor/llvm/dist/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp vendor/llvm/dist/unittests/DebugInfo/DWARF/DwarfGenerator.cpp vendor/llvm/dist/unittests/DebugInfo/DWARF/DwarfGenerator.h vendor/llvm/dist/unittests/DebugInfo/PDB/CMakeLists.txt vendor/llvm/dist/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp vendor/llvm/dist/unittests/DebugInfo/PDB/PDBApiTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/CMakeLists.txt vendor/llvm/dist/unittests/ExecutionEngine/Orc/IndirectionUtilsTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcTestCommon.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcTestCommon.h vendor/llvm/dist/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp vendor/llvm/dist/unittests/IR/AttributesTest.cpp vendor/llvm/dist/unittests/IR/FunctionTest.cpp vendor/llvm/dist/unittests/IR/IRBuilderTest.cpp vendor/llvm/dist/unittests/IR/InstructionsTest.cpp vendor/llvm/dist/unittests/IR/LegacyPassManagerTest.cpp vendor/llvm/dist/unittests/IR/MetadataTest.cpp vendor/llvm/dist/unittests/IR/ValueHandleTest.cpp vendor/llvm/dist/unittests/IR/ValueTest.cpp vendor/llvm/dist/unittests/IR/VerifierTest.cpp vendor/llvm/dist/unittests/Linker/LinkModulesTest.cpp vendor/llvm/dist/unittests/MI/LiveIntervalTest.cpp vendor/llvm/dist/unittests/Object/CMakeLists.txt vendor/llvm/dist/unittests/Option/OptionParsingTest.cpp vendor/llvm/dist/unittests/ProfileData/CoverageMappingTest.cpp vendor/llvm/dist/unittests/Support/AllocatorTest.cpp vendor/llvm/dist/unittests/Support/CMakeLists.txt vendor/llvm/dist/unittests/Support/Casting.cpp vendor/llvm/dist/unittests/Support/Chrono.cpp vendor/llvm/dist/unittests/Support/CommandLineTest.cpp vendor/llvm/dist/unittests/Support/CompressionTest.cpp vendor/llvm/dist/unittests/Support/ErrorTest.cpp vendor/llvm/dist/unittests/Support/FormatVariadicTest.cpp vendor/llvm/dist/unittests/Support/Host.cpp vendor/llvm/dist/unittests/Support/LEB128Test.cpp vendor/llvm/dist/unittests/Support/MD5Test.cpp vendor/llvm/dist/unittests/Support/Path.cpp vendor/llvm/dist/unittests/Support/ProgramTest.cpp vendor/llvm/dist/unittests/Support/TargetParserTest.cpp vendor/llvm/dist/unittests/Support/ThreadPool.cpp vendor/llvm/dist/unittests/Support/TrailingObjectsTest.cpp vendor/llvm/dist/unittests/Support/YAMLIOTest.cpp vendor/llvm/dist/unittests/Support/raw_ostream_test.cpp vendor/llvm/dist/unittests/Transforms/Scalar/LoopPassManagerTest.cpp vendor/llvm/dist/unittests/Transforms/Utils/CMakeLists.txt vendor/llvm/dist/unittests/Transforms/Utils/Cloning.cpp vendor/llvm/dist/unittests/Transforms/Utils/IntegerDivision.cpp vendor/llvm/dist/utils/FileCheck/FileCheck.cpp vendor/llvm/dist/utils/TableGen/AsmMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp vendor/llvm/dist/utils/TableGen/CMakeLists.txt vendor/llvm/dist/utils/TableGen/CallingConvEmitter.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h vendor/llvm/dist/utils/TableGen/CodeGenMapTable.cpp vendor/llvm/dist/utils/TableGen/CodeGenRegisters.cpp vendor/llvm/dist/utils/TableGen/CodeGenRegisters.h vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcherOpt.cpp vendor/llvm/dist/utils/TableGen/FastISelEmitter.cpp vendor/llvm/dist/utils/TableGen/GlobalISelEmitter.cpp vendor/llvm/dist/utils/TableGen/IntrinsicEmitter.cpp vendor/llvm/dist/utils/TableGen/RegisterInfoEmitter.cpp vendor/llvm/dist/utils/TableGen/SubtargetEmitter.cpp vendor/llvm/dist/utils/TableGen/SubtargetFeatureInfo.cpp vendor/llvm/dist/utils/TableGen/TableGen.cpp vendor/llvm/dist/utils/TableGen/TableGenBackends.h vendor/llvm/dist/utils/TableGen/X86DisassemblerTables.cpp vendor/llvm/dist/utils/TableGen/X86RecognizableInstr.cpp vendor/llvm/dist/utils/TableGen/X86RecognizableInstr.h vendor/llvm/dist/utils/gdb-scripts/prettyprinters.py vendor/llvm/dist/utils/lit/lit/LitConfig.py vendor/llvm/dist/utils/lit/lit/ShCommands.py vendor/llvm/dist/utils/lit/lit/ShUtil.py vendor/llvm/dist/utils/lit/lit/Test.py vendor/llvm/dist/utils/lit/lit/TestRunner.py vendor/llvm/dist/utils/lit/lit/TestingConfig.py vendor/llvm/dist/utils/lit/lit/main.py vendor/llvm/dist/utils/lit/lit/run.py vendor/llvm/dist/utils/lit/lit/util.py vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/requires-missing.txt vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/requires-present.txt vendor/llvm/dist/utils/lit/tests/Inputs/test-data/lit.cfg vendor/llvm/dist/utils/lit/tests/shtest-format.py vendor/llvm/dist/utils/lit/tests/unit/TestRunner.py vendor/llvm/dist/utils/llvm-lit/llvm-lit.in vendor/llvm/dist/utils/opt-viewer/opt-viewer.py vendor/llvm/dist/utils/opt-viewer/style.css vendor/llvm/dist/utils/prepare-code-coverage-artifact.py vendor/llvm/dist/utils/release/build_llvm_package.bat vendor/llvm/dist/utils/unittest/CMakeLists.txt vendor/llvm/dist/utils/update_llc_test_checks.py vendor/llvm/dist/utils/update_test_checks.py vendor/llvm/dist/utils/vim/syntax/llvm.vim vendor/llvm/dist/utils/vim/vimrc Modified: vendor/llvm/dist/.gitignore ============================================================================== --- vendor/llvm/dist/.gitignore Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/.gitignore Sun Apr 16 16:01:22 2017 (r317017) @@ -21,6 +21,9 @@ #OS X specific files. .DS_store +# Nested build directory +/build + #==============================================================================# # Explicit files to ignore (only matches one). #==============================================================================# @@ -62,8 +65,9 @@ tools/polly tools/avrlit # Sphinx build tree, if building in-source dir. docs/_build -# VSCode config files. +# VS2017 and VSCode config files. .vscode +.vs #==============================================================================# # Files created in tree by the Go bindings. Modified: vendor/llvm/dist/CMakeLists.txt ============================================================================== --- vendor/llvm/dist/CMakeLists.txt Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/CMakeLists.txt Sun Apr 16 16:01:22 2017 (r317017) @@ -20,7 +20,7 @@ if(POLICY CMP0057) endif() if(NOT DEFINED LLVM_VERSION_MAJOR) - set(LLVM_VERSION_MAJOR 4) + set(LLVM_VERSION_MAJOR 5) endif() if(NOT DEFINED LLVM_VERSION_MINOR) set(LLVM_VERSION_MINOR 0) @@ -29,7 +29,7 @@ if(NOT DEFINED LLVM_VERSION_PATCH) set(LLVM_VERSION_PATCH 0) endif() if(NOT DEFINED LLVM_VERSION_SUFFIX) - set(LLVM_VERSION_SUFFIX "") + set(LLVM_VERSION_SUFFIX svn) endif() if (POLICY CMP0048) @@ -56,17 +56,20 @@ endif() # This should only apply if you are both on an Apple host, and targeting Apple. if(CMAKE_HOST_APPLE AND APPLE) - if(NOT CMAKE_XCRUN) - find_program(CMAKE_XCRUN NAMES xcrun) - endif() - if(CMAKE_XCRUN) - execute_process(COMMAND ${CMAKE_XCRUN} -find libtool - OUTPUT_VARIABLE CMAKE_LIBTOOL - OUTPUT_STRIP_TRAILING_WHITESPACE) - endif() + # if CMAKE_LIBTOOL is not set, try and find it with xcrun or find_program + if(NOT CMAKE_LIBTOOL) + if(NOT CMAKE_XCRUN) + find_program(CMAKE_XCRUN NAMES xcrun) + endif() + if(CMAKE_XCRUN) + execute_process(COMMAND ${CMAKE_XCRUN} -find libtool + OUTPUT_VARIABLE CMAKE_LIBTOOL + OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() - if(NOT CMAKE_LIBTOOL OR NOT EXISTS CMAKE_LIBTOOL) - find_program(CMAKE_LIBTOOL NAMES libtool) + if(NOT CMAKE_LIBTOOL OR NOT EXISTS CMAKE_LIBTOOL) + find_program(CMAKE_LIBTOOL NAMES libtool) + endif() endif() get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) @@ -132,18 +135,6 @@ foreach(proj ${LLVM_ENABLE_PROJECTS}) endif() endforeach() -# The following only works with the Ninja generator in CMake >= 3.0. -set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING - "Define the maximum number of concurrent compilation jobs.") -if(LLVM_PARALLEL_COMPILE_JOBS) - if(NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") - message(WARNING "Job pooling is only available with Ninja generators.") - else() - set_property(GLOBAL APPEND PROPERTY JOB_POOLS compile_job_pool=${LLVM_PARALLEL_COMPILE_JOBS}) - set(CMAKE_JOB_POOL_COMPILE compile_job_pool) - endif() -endif() - # Build llvm with ccache if the package is present set(LLVM_CCACHE_BUILD OFF CACHE BOOL "Set to ON for a ccache enabled build") if(LLVM_CCACHE_BUILD) @@ -178,21 +169,12 @@ if(LLVM_DEPENDENCY_DEBUGGING) endif() endif() -option(LLVM_BUILD_GLOBAL_ISEL "Experimental: Build GlobalISel" OFF) +option(LLVM_BUILD_GLOBAL_ISEL "Experimental: Build GlobalISel" ON) if(LLVM_BUILD_GLOBAL_ISEL) add_definitions(-DLLVM_BUILD_GLOBAL_ISEL) endif() -set(LLVM_PARALLEL_LINK_JOBS "" CACHE STRING - "Define the maximum number of concurrent link jobs.") -if(LLVM_PARALLEL_LINK_JOBS) - if(NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") - message(WARNING "Job pooling is only available with Ninja generators.") - else() - set_property(GLOBAL APPEND PROPERTY JOB_POOLS link_job_pool=${LLVM_PARALLEL_LINK_JOBS}) - set(CMAKE_JOB_POOL_LINK link_job_pool) - endif() -endif() +option(LLVM_ENABLE_DAGISEL_COV "Debug: Prints tablegen patterns that were used for selecting" OFF) # Add path for custom modules set(CMAKE_MODULE_PATH @@ -385,8 +367,6 @@ set(LLVM_TARGETS_TO_BUILD ${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}) list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD) -include(AddLLVMDefinitions) - option(LLVM_ENABLE_PIC "Build Position-Independent Code" ON) option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON) option(LLVM_ENABLE_MODULES "Compile with C++ modules enabled." OFF) @@ -414,9 +394,6 @@ option(LLVM_ENABLE_EXPENSIVE_CHECKS "Ena set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING "Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.") -option(LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING - "Disable abi-breaking checks mismatch detection at link-tim." OFF) - option(LLVM_FORCE_USE_OLD_HOST_TOOLCHAIN "Set to ON to force using an old, unsupported host toolchain." OFF) @@ -506,6 +483,10 @@ option(LLVM_INCLUDE_UTILS "Generate buil option(LLVM_BUILD_UTILS "Build LLVM utility binaries. If OFF, just generate build targets." ON) +option(LLVM_INCLUDE_RUNTIMES "Generate build targets for the LLVM runtimes." ON) +option(LLVM_BUILD_RUNTIMES + "Build the LLVM runtimes. If OFF, just generate build targets." ON) + option(LLVM_BUILD_RUNTIME "Build the LLVM runtime libraries." ON) option(LLVM_BUILD_EXAMPLES @@ -641,7 +622,7 @@ endif (LLVM_USE_OPROFILE) message(STATUS "Constructing LLVMBuild project information") execute_process( - COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL} + COMMAND ${PYTHON_EXECUTABLE} -B ${LLVMBUILDTOOL} --native-target "${LLVM_NATIVE_ARCH}" --enable-targets "${LLVM_TARGETS_TO_BUILD}" --enable-optional-components "${LLVMOPTIONALCOMPONENTS}" @@ -737,6 +718,30 @@ configure_file( ${LLVM_MAIN_INCLUDE_DIR}/llvm/Support/DataTypes.h.cmake ${LLVM_INCLUDE_DIR}/llvm/Support/DataTypes.h) +# Add target for generating source rpm package. +set(LLVM_SRPM_USER_BINARY_SPECFILE ${CMAKE_CURRENT_SOURCE_DIR}/llvm.spec.in + CACHE FILEPATH ".spec file to use for srpm generation") +set(LLVM_SRPM_BINARY_SPECFILE ${CMAKE_CURRENT_BINARY_DIR}/llvm.spec) +set(LLVM_SRPM_DIR "${CMAKE_CURRENT_BINARY_DIR}/srpm") + +# SVN_REVISION and GIT_COMMIT get set by the call to add_version_info_from_vcs. +# DUMMY_VAR contains a version string which we don't care about. +add_version_info_from_vcs(DUMMY_VAR) +if ( SVN_REVISION ) + set(LLVM_RPM_SPEC_REVISION "r${SVN_REVISION}") +elseif ( GIT_COMMIT ) + set (LLVM_RPM_SPEC_REVISION "g${GIT_COMMIT}") +endif() + +configure_file( + ${LLVM_SRPM_USER_BINARY_SPECFILE} + ${LLVM_SRPM_BINARY_SPECFILE} @ONLY) + +add_custom_target(srpm + COMMAND cpack -G TGZ --config CPackSourceConfig.cmake -B ${LLVM_SRPM_DIR}/SOURCES + COMMAND rpmbuild -bs --define '_topdir ${LLVM_SRPM_DIR}' ${LLVM_SRPM_BINARY_SPECFILE}) + + # They are not referenced. See set_output_directory(). set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin ) set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) @@ -861,7 +866,9 @@ if( LLVM_INCLUDE_TOOLS ) add_subdirectory(tools) endif() -add_subdirectory(runtimes) +if( LLVM_INCLUDE_RUNTIMES ) + add_subdirectory(runtimes) +endif() if( LLVM_INCLUDE_EXAMPLES ) add_subdirectory(examples) @@ -978,3 +985,8 @@ if(LLVM_DISTRIBUTION_COMPONENTS) endif() endforeach() endif() + +# This allows us to deploy the Universal CRT DLLs by passing -DCMAKE_INSTALL_UCRT_LIBRARIES=ON to CMake +if (MSVC) + include(InstallRequiredSystemLibraries) +endif() Modified: vendor/llvm/dist/CODE_OWNERS.TXT ============================================================================== --- vendor/llvm/dist/CODE_OWNERS.TXT Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/CODE_OWNERS.TXT Sun Apr 16 16:01:22 2017 (r317017) @@ -5,12 +5,9 @@ what goes in or not. The list is sorted by surname and formatted to allow easy grepping and beautification by scripts. The fields are: name (N), email (E), web-address -(W), PGP key ID and fingerprint (P), description (D), and snail-mail address -(S). Each entry should contain at least the (N), (E) and (D) fields. - -N: Joe Abbey -E: jabbey@arxan.com -D: LLVM Bitcode (lib/Bitcode/* include/llvm/Bitcode/*) +(W), PGP key ID and fingerprint (P), description (D), snail-mail address +(S) and (I) IRC handle. Each entry should contain at least the (N), (E) and +(D) fields. N: Justin Bogner E: mail@justinbogner.com @@ -21,6 +18,11 @@ N: Alex Bradbury E: asb@lowrisc.org D: RISC-V backend (lib/Target/RISCV/*) +N: Matthias Braun +E: matze@braunis.de +I: MatzeB +D: Instruction Scheduling + N: Chandler Carruth E: chandlerc@gmail.com E: chandlerc@google.com @@ -34,6 +36,10 @@ N: Eric Christopher E: echristo@gmail.com D: Debug Information, inline assembly +N: Andrey Churbanov +E: andrey.churbanov@intel.com +D: OpenMP runtime library + N: Greg Clayton E: gclayton@apple.com D: LLDB @@ -48,7 +54,7 @@ D: libc++ N: Peter Collingbourne E: peter@pcc.me.uk -D: llgo, libLTO (lib/LTO/* tools/lto/*) +D: llgo, libLTO (lib/LTO/* tools/lto/*), LLVM Bitcode (lib/Bitcode/* include/llvm/Bitcode/*) N: Quentin Colombet E: qcolombet@apple.com @@ -96,7 +102,7 @@ D: MCJIT, RuntimeDyld and JIT event list N: Teresa Johnson E: tejohnson@google.com -D: Gold plugin (tools/gold/*) +D: Gold plugin (tools/gold/*) and IR Linker N: Galina Kistanova E: gkistanova@gmail.com @@ -132,7 +138,7 @@ E: david.majnemer@gmail.com D: IR Constant Folder, InstCombine N: Dylan McKay -E: dylanmckay34@gmail.com +E: me@dylanmckay.io D: AVR Backend N: Tim Northover @@ -180,9 +186,8 @@ E: alexei.starovoitov@gmail.com D: BPF backend N: Tom Stellard -E: thomas.stellard@amd.com -E: mesa-dev@lists.freedesktop.org -D: Release manager for the 3.5 and 3.6 branches, R600 Backend, libclc +E: tstellar@redhat.com +D: Stable release management (x.y.[1-9] releases), AMDGPU Backend, libclc N: Evgeniy Stepanov E: eugenis@google.com @@ -192,18 +197,10 @@ N: Craig Topper E: craig.topper@gmail.com D: X86 Backend -N: Andrew Trick -E: atrick@apple.com -D: Instruction Scheduling - N: Ulrich Weigand E: uweigand@de.ibm.com D: SystemZ Backend -N: Teresa Johnson -E: tejohnson@google.com -D: IR Linker - N: Hans Wennborg E: hans@chromium.org D: Release management (x.y.0 releases) @@ -211,7 +208,3 @@ D: Release management (x.y.0 releases) N: whitequark E: whitequark@whitequark.org D: OCaml bindings - -N: Andrey Churbanov -E: andrey.churbanov@intel.com -D: OpenMP runtime library Modified: vendor/llvm/dist/CREDITS.TXT ============================================================================== --- vendor/llvm/dist/CREDITS.TXT Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/CREDITS.TXT Sun Apr 16 16:01:22 2017 (r317017) @@ -457,6 +457,10 @@ N: Adam Treat E: manyoso@yahoo.com D: C++ bugs filed, and C++ front-end bug fixes. +N: Andrew Trick +E: atrick@apple.com +D: Instruction Scheduling, ... + N: Lauro Ramos Venancio E: lauro.venancio@indt.org.br D: ARM backend improvements Modified: vendor/llvm/dist/README.txt ============================================================================== --- vendor/llvm/dist/README.txt Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/README.txt Sun Apr 16 16:01:22 2017 (r317017) @@ -15,3 +15,4 @@ documentation setup. If you are writing a package for LLVM, see docs/Packaging.rst for our suggestions. + Modified: vendor/llvm/dist/RELEASE_TESTERS.TXT ============================================================================== --- vendor/llvm/dist/RELEASE_TESTERS.TXT Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/RELEASE_TESTERS.TXT Sun Apr 16 16:01:22 2017 (r317017) @@ -51,7 +51,7 @@ E: diana.picus@linaro.org T: AArch64 O: Linux -N: Vasileios Kalintiris -E: Vasileios.Kalintiris@imgtec.com +N: Simon Dardis +E: simon.dardis@imgtec.com T: MIPS O: Linux Modified: vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp Sun Apr 16 16:01:22 2017 (r317017) @@ -119,7 +119,8 @@ LLVMMetadataRef LLVMDIBuilderCreatePoint const char *Name) { DIBuilder *D = unwrap(Dref); return wrap(D->createPointerType(unwrap(PointeeType), SizeInBits, - AlignInBits, Name)); + AlignInBits, /* DWARFAddressSpace */ None, + Name)); } LLVMMetadataRef Modified: vendor/llvm/dist/bindings/go/llvm/IRBindings.cpp ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/IRBindings.cpp Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/bindings/go/llvm/IRBindings.cpp Sun Apr 16 16:01:22 2017 (r317017) @@ -14,6 +14,7 @@ #include "IRBindings.h" #include "llvm/IR/Attributes.h" #include "llvm/IR/DebugLoc.h" +#include "llvm/IR/DebugInfoMetadata.h" #include "llvm/IR/Function.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/LLVMContext.h" @@ -71,6 +72,18 @@ void LLVMSetCurrentDebugLocation2(LLVMBu InlinedAt ? unwrap(InlinedAt) : nullptr)); } +LLVMDebugLocMetadata LLVMGetCurrentDebugLocation2(LLVMBuilderRef Bref) { + const auto& Loc = unwrap(Bref)->getCurrentDebugLocation(); + const auto* InlinedAt = Loc.getInlinedAt(); + const LLVMDebugLocMetadata md{ + Loc.getLine(), + Loc.getCol(), + wrap(Loc.getScope()), + InlinedAt == nullptr ? nullptr : wrap(InlinedAt->getRawInlinedAt()), + }; + return md; +} + void LLVMSetSubprogram(LLVMValueRef Func, LLVMMetadataRef SP) { unwrap(Func)->setSubprogram(unwrap(SP)); } Modified: vendor/llvm/dist/bindings/go/llvm/IRBindings.h ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/IRBindings.h Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/bindings/go/llvm/IRBindings.h Sun Apr 16 16:01:22 2017 (r317017) @@ -27,6 +27,12 @@ extern "C" { #endif typedef struct LLVMOpaqueMetadata *LLVMMetadataRef; +struct LLVMDebugLocMetadata{ + unsigned Line; + unsigned Col; + LLVMMetadataRef Scope; + LLVMMetadataRef InlinedAt; +}; LLVMMetadataRef LLVMConstantAsMetadata(LLVMValueRef Val); @@ -46,6 +52,8 @@ void LLVMSetCurrentDebugLocation2(LLVMBu unsigned Col, LLVMMetadataRef Scope, LLVMMetadataRef InlinedAt); +struct LLVMDebugLocMetadata LLVMGetCurrentDebugLocation2(LLVMBuilderRef Bref); + void LLVMSetSubprogram(LLVMValueRef Fn, LLVMMetadataRef SP); #ifdef __cplusplus Modified: vendor/llvm/dist/bindings/go/llvm/ir.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/ir.go Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/bindings/go/llvm/ir.go Sun Apr 16 16:01:22 2017 (r317017) @@ -1226,9 +1226,23 @@ func (b Builder) InsertWithName(instr Va func (b Builder) Dispose() { C.LLVMDisposeBuilder(b.C) } // Metadata +type DebugLoc struct { + Line, Col uint + Scope Metadata + InlinedAt Metadata +} func (b Builder) SetCurrentDebugLocation(line, col uint, scope, inlinedAt Metadata) { C.LLVMSetCurrentDebugLocation2(b.C, C.unsigned(line), C.unsigned(col), scope.C, inlinedAt.C) } +// Get current debug location. Please do not call this function until setting debug location with SetCurrentDebugLocation() +func (b Builder) GetCurrentDebugLocation() (loc DebugLoc) { + md := C.LLVMGetCurrentDebugLocation2(b.C) + loc.Line = uint(md.Line) + loc.Col = uint(md.Col) + loc.Scope = Metadata{C: md.Scope} + loc.InlinedAt = Metadata{C: md.InlinedAt} + return +} func (b Builder) SetInstDebugLocation(v Value) { C.LLVMSetInstDebugLocation(b.C, v.C) } func (b Builder) InsertDeclare(module Module, storage Value, md Value) Value { f := module.NamedFunction("llvm.dbg.declare") Modified: vendor/llvm/dist/bindings/go/llvm/ir_test.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/ir_test.go Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/bindings/go/llvm/ir_test.go Sun Apr 16 16:01:22 2017 (r317017) @@ -95,3 +95,42 @@ func TestAttributes(t *testing.T) { testAttribute(t, name) } } + +func TestDebugLoc(t *testing.T) { + mod := NewModule("") + defer mod.Dispose() + + ctx := mod.Context() + + b := ctx.NewBuilder() + defer b.Dispose() + + d := NewDIBuilder(mod) + defer func() { + d.Destroy() + }() + file := d.CreateFile("dummy_file", "dummy_dir") + voidInfo := d.CreateBasicType(DIBasicType{Name: "void"}) + typeInfo := d.CreateSubroutineType(DISubroutineType{file, []Metadata{voidInfo}}) + scope := d.CreateFunction(file, DIFunction{ + Name: "foo", + LinkageName: "foo", + Line: 10, + ScopeLine: 10, + Type: typeInfo, + File: file, + IsDefinition: true, + }) + + b.SetCurrentDebugLocation(10, 20, scope, Metadata{}) + loc := b.GetCurrentDebugLocation() + if loc.Line != 10 { + t.Errorf("Got line %d, though wanted 10", loc.Line) + } + if loc.Col != 20 { + t.Errorf("Got column %d, though wanted 20", loc.Col) + } + if loc.Scope.C != scope.C { + t.Errorf("Got metadata %v as scope, though wanted %v", loc.Scope.C, scope.C) + } +} Modified: vendor/llvm/dist/bindings/go/llvm/transforms_pmbuilder.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/transforms_pmbuilder.go Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/bindings/go/llvm/transforms_pmbuilder.go Sun Apr 16 16:01:22 2017 (r317017) @@ -43,6 +43,26 @@ func (pmb PassManagerBuilder) PopulateFu C.LLVMPassManagerBuilderPopulateFunctionPassManager(pmb.C, pm.C) } +func (pmb PassManagerBuilder) PopulateLTOPassManager(pm PassManager, internalize bool, runInliner bool) { + C.LLVMPassManagerBuilderPopulateLTOPassManager(pmb.C, pm.C, boolToLLVMBool(internalize), boolToLLVMBool(runInliner)) +} + func (pmb PassManagerBuilder) Dispose() { C.LLVMPassManagerBuilderDispose(pmb.C) } + +func (pmb PassManagerBuilder) SetDisableUnitAtATime(val bool) { + C.LLVMPassManagerBuilderSetDisableUnitAtATime(pmb.C, boolToLLVMBool(val)) +} + +func (pmb PassManagerBuilder) SetDisableUnrollLoops(val bool) { + C.LLVMPassManagerBuilderSetDisableUnrollLoops(pmb.C, boolToLLVMBool(val)) +} + +func (pmb PassManagerBuilder) SetDisableSimplifyLibCalls(val bool) { + C.LLVMPassManagerBuilderSetDisableSimplifyLibCalls(pmb.C, boolToLLVMBool(val)) +} + +func (pmb PassManagerBuilder) UseInlinerWithThreshold(threshold uint) { + C.LLVMPassManagerBuilderUseInlinerWithThreshold(pmb.C, C.uint(threshold)) +} Modified: vendor/llvm/dist/cmake/config-ix.cmake ============================================================================== --- vendor/llvm/dist/cmake/config-ix.cmake Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/cmake/config-ix.cmake Sun Apr 16 16:01:22 2017 (r317017) @@ -46,7 +46,6 @@ endfunction() check_include_file(dirent.h HAVE_DIRENT_H) check_include_file(dlfcn.h HAVE_DLFCN_H) check_include_file(errno.h HAVE_ERRNO_H) -check_include_file(execinfo.h HAVE_EXECINFO_H) check_include_file(fcntl.h HAVE_FCNTL_H) check_include_file(inttypes.h HAVE_INTTYPES_H) check_include_file(link.h HAVE_LINK_H) @@ -88,6 +87,15 @@ if(APPLE) HAVE_CRASHREPORTER_INFO) endif() +if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + check_include_file(linux/magic.h HAVE_LINUX_MAGIC_H) + if(NOT HAVE_LINUX_MAGIC_H) + # older kernels use split files + check_include_file(linux/nfs_fs.h HAVE_LINUX_NFS_FS_H) + check_include_file(linux/smb.h HAVE_LINUX_SMB_H) + endif() +endif() + # library checks if( NOT PURE_WINDOWS ) check_library_exists(pthread pthread_create "" HAVE_LIBPTHREAD) @@ -115,7 +123,7 @@ if(HAVE_LIBPTHREAD) set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_HAVE_PTHREAD_ARG Off) find_package(Threads REQUIRED) - set(PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT}) + set(LLVM_PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT}) endif() # Don't look for these libraries on Windows. Also don't look for them if we're @@ -156,7 +164,9 @@ endif() # function checks check_symbol_exists(arc4random "stdlib.h" HAVE_DECL_ARC4RANDOM) -check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE) +find_package(Backtrace) +set(HAVE_BACKTRACE ${Backtrace_FOUND}) +set(BACKTRACE_HEADER ${Backtrace_HEADER}) check_symbol_exists(_Unwind_Backtrace "unwind.h" HAVE__UNWIND_BACKTRACE) check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE) check_symbol_exists(sysconf unistd.h HAVE_SYSCONF) @@ -227,6 +237,7 @@ if( HAVE_DLFCN_H ) list(APPEND CMAKE_REQUIRED_LIBRARIES dl) endif() check_symbol_exists(dlopen dlfcn.h HAVE_DLOPEN) + check_symbol_exists(dladdr dlfcn.h HAVE_DLADDR) if( HAVE_LIBDL ) list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES dl) endif() @@ -234,7 +245,15 @@ endif() check_symbol_exists(__GLIBC__ stdio.h LLVM_USING_GLIBC) if( LLVM_USING_GLIBC ) - add_llvm_definitions( -D_GNU_SOURCE ) + add_definitions( -D_GNU_SOURCE ) +endif() +# This check requires _GNU_SOURCE +if(HAVE_LIBPTHREAD) + check_library_exists(pthread pthread_getname_np "" HAVE_PTHREAD_GETNAME_NP) + check_library_exists(pthread pthread_setname_np "" HAVE_PTHREAD_SETNAME_NP) +elseif(PTHREAD_IN_LIBC) + check_library_exists(c pthread_getname_np "" HAVE_PTHREAD_GETNAME_NP) + check_library_exists(c pthread_setname_np "" HAVE_PTHREAD_SETNAME_NP) endif() set(headers "sys/types.h") @@ -489,8 +508,6 @@ if (LLVM_ENABLE_ZLIB ) endif() endif() -set(LLVM_PREFIX ${CMAKE_INSTALL_PREFIX}) - if (LLVM_ENABLE_DOXYGEN) message(STATUS "Doxygen enabled.") find_package(Doxygen REQUIRED) @@ -547,6 +564,9 @@ set(LLVM_BINUTILS_INCDIR "" CACHE PATH "PATH to binutils/include containing plugin-api.h for gold plugin.") if(CMAKE_HOST_APPLE AND APPLE) + if(NOT CMAKE_XCRUN) + find_program(CMAKE_XCRUN NAMES xcrun) + endif() if(CMAKE_XCRUN) execute_process(COMMAND ${CMAKE_XCRUN} -find ld OUTPUT_VARIABLE LD64_EXECUTABLE Modified: vendor/llvm/dist/cmake/modules/AddLLVM.cmake ============================================================================== --- vendor/llvm/dist/cmake/modules/AddLLVM.cmake Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/cmake/modules/AddLLVM.cmake Sun Apr 16 16:01:22 2017 (r317017) @@ -718,11 +718,11 @@ macro(add_llvm_executable name) if(NOT ARG_IGNORE_EXTERNALIZE_DEBUGINFO) llvm_externalize_debuginfo(${name}) endif() - if (PTHREAD_LIB) + if (LLVM_PTHREAD_LIB) # libpthreads overrides some standard library symbols, so main # executable must be linked with it in order to provide consistent # API for all shared libaries loaded by this executable. - target_link_libraries(${name} ${PTHREAD_LIB}) + target_link_libraries(${name} ${LLVM_PTHREAD_LIB}) endif() endmacro(add_llvm_executable name) @@ -1027,7 +1027,7 @@ function(add_unittest test_suite test_na # libpthreads overrides some standard library symbols, so main # executable must be linked with it in order to provide consistent # API for all shared libaries loaded by this executable. - target_link_libraries(${test_name} gtest_main gtest ${PTHREAD_LIB}) + target_link_libraries(${test_name} gtest_main gtest ${LLVM_PTHREAD_LIB}) add_dependencies(${test_suite} ${test_name}) get_target_property(test_suite_folder ${test_suite} FOLDER) @@ -1387,7 +1387,11 @@ function(llvm_externalize_debuginfo name endif() if(NOT LLVM_EXTERNALIZE_DEBUGINFO_SKIP_STRIP) - set(strip_command COMMAND xcrun strip -Sxl $) + if(APPLE) + set(strip_command COMMAND xcrun strip -Sxl $) + else() + set(strip_command COMMAND strip -gx $) + endif() endif() if(APPLE) @@ -1403,7 +1407,11 @@ function(llvm_externalize_debuginfo name ${strip_command} ) else() - message(FATAL_ERROR "LLVM_EXTERNALIZE_DEBUGINFO isn't implemented for non-darwin platforms!") + add_custom_command(TARGET ${name} POST_BUILD + COMMAND objcopy --only-keep-debug $ $.debug + ${strip_command} -R .gnu_debuglink + COMMAND objcopy --add-gnu-debuglink=$.debug $ + ) endif() endfunction() Modified: vendor/llvm/dist/cmake/modules/AddSphinxTarget.cmake ============================================================================== --- vendor/llvm/dist/cmake/modules/AddSphinxTarget.cmake Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/cmake/modules/AddSphinxTarget.cmake Sun Apr 16 16:01:22 2017 (r317017) @@ -48,10 +48,15 @@ function (add_sphinx_target builder proj # Handle installation if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) if (builder STREQUAL man) + if (CMAKE_INSTALL_MANDIR) + set(INSTALL_MANDIR ${CMAKE_INSTALL_MANDIR}/) + else() + set(INSTALL_MANDIR share/man/) + endif() # FIXME: We might not ship all the tools that these man pages describe install(DIRECTORY "${SPHINX_BUILD_DIR}/" # Slash indicates contents of COMPONENT "${project}-sphinx-man" - DESTINATION share/man/man1) + DESTINATION ${INSTALL_MANDIR}man1) elseif (builder STREQUAL html) string(TOUPPER "${project}" project_upper) Modified: vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake ============================================================================== --- vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake Sun Apr 16 09:41:05 2017 (r317016) +++ vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake Sun Apr 16 16:01:22 2017 (r317017) @@ -8,12 +8,41 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" upp include(CheckCompilerVersion) include(HandleLLVMStdlib) -include(AddLLVMDefinitions) include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) +if(CMAKE_LINKER MATCHES "lld-link.exe" OR (WIN32 AND LLVM_USE_LINKER STREQUAL "lld")) + set(LINKER_IS_LLD_LINK TRUE) +else() + set(LINKER_IS_LLD_LINK FALSE) +endif() -if (CMAKE_LINKER MATCHES "lld-link.exe") +# Ninja Job Pool support +# The following only works with the Ninja generator in CMake >= 3.0. +set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING + "Define the maximum number of concurrent compilation jobs.") +if(LLVM_PARALLEL_COMPILE_JOBS) + if(NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") + message(WARNING "Job pooling is only available with Ninja generators.") + else() + set_property(GLOBAL APPEND PROPERTY JOB_POOLS compile_job_pool=${LLVM_PARALLEL_COMPILE_JOBS}) + set(CMAKE_JOB_POOL_COMPILE compile_job_pool) + endif() +endif() + +set(LLVM_PARALLEL_LINK_JOBS "" CACHE STRING + "Define the maximum number of concurrent link jobs.") +if(LLVM_PARALLEL_LINK_JOBS) + if(NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") + message(WARNING "Job pooling is only available with Ninja generators.") + else() + set_property(GLOBAL APPEND PROPERTY JOB_POOLS link_job_pool=${LLVM_PARALLEL_LINK_JOBS}) + set(CMAKE_JOB_POOL_LINK link_job_pool) + endif() +endif() + + +if (LINKER_IS_LLD_LINK) # Pass /MANIFEST:NO so that CMake doesn't run mt.exe on our binaries. Adding # manifests with mt.exe breaks LLD's symbol tables and takes as much time as # the link. See PR24476. @@ -147,9 +176,19 @@ function(add_flag_or_print_warning flag endif() endfunction() -if(LLVM_ENABLE_LLD) - check_cxx_compiler_flag("-fuse-ld=lld" CXX_SUPPORTS_LLD) - append_if(CXX_SUPPORTS_LLD "-fuse-ld=lld" +if( LLVM_ENABLE_LLD ) + if ( LLVM_USE_LINKER ) + message(FATAL_ERROR "LLVM_ENABLE_LLD and LLVM_USE_LINKER can't be set at the same time") + endif() + set(LLVM_USE_LINKER "lld") +endif() + +if( LLVM_USE_LINKER ) + check_cxx_compiler_flag("-fuse-ld=${LLVM_USE_LINKER}" CXX_SUPPORTS_CUSTOM_LINKER) + if ( NOT CXX_SUPPORTS_CUSTOM_LINKER ) + message(FATAL_ERROR "Host compiler does not support '-fuse-ld=${LLVM_USE_LINKER}'") + endif() + append("-fuse-ld=${LLVM_USE_LINKER}" CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) endif() @@ -213,10 +252,10 @@ if( MSVC_IDE ) "Number of parallel compiler jobs. 0 means use all processors. Default is 0.") if( NOT LLVM_COMPILER_JOBS STREQUAL "1" ) if( LLVM_COMPILER_JOBS STREQUAL "0" ) - add_llvm_definitions( /MP ) + add_definitions( /MP ) else() message(STATUS "Number of parallel compiler jobs set to " ${LLVM_COMPILER_JOBS}) - add_llvm_definitions( /MP${LLVM_COMPILER_JOBS} ) + add_definitions( /MP${LLVM_COMPILER_JOBS} ) endif() else() message(STATUS "Parallel compilation disabled") @@ -245,17 +284,17 @@ if( MSVC ) if( CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0 ) # For MSVC 2013, disable iterator null pointer checking in debug mode, # especially so std::equal(nullptr, nullptr, nullptr) will not assert. - add_llvm_definitions("-D_DEBUG_POINTER_IMPL=") + add_definitions("-D_DEBUG_POINTER_IMPL=") endif() include(ChooseMSVCCRT) if( MSVC11 ) - add_llvm_definitions(-D_VARIADIC_MAX=10) + add_definitions(-D_VARIADIC_MAX=10) endif() # Add definitions that make MSVC much less annoying. - add_llvm_definitions( + add_definitions( # For some reason MS wants to deprecate a bunch of standard functions... -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS @@ -266,94 +305,15 @@ if( MSVC ) ) # Tell MSVC to use the Unicode version of the Win32 APIs instead of ANSI. - add_llvm_definitions( + add_definitions( -DUNICODE -D_UNICODE ) - set(msvc_warning_flags - # Disabled warnings. - -wd4141 # Suppress ''modifier' : used more than once' (because of __forceinline combined with inline) - -wd4146 # Suppress 'unary minus operator applied to unsigned type, result still unsigned' - -wd4180 # Suppress 'qualifier applied to function type has no meaning; ignored' - -wd4244 # Suppress ''argument' : conversion from 'type1' to 'type2', possible loss of data' - -wd4258 # Suppress ''var' : definition from the for loop is ignored; the definition from the enclosing scope is used' - -wd4267 # Suppress ''var' : conversion from 'size_t' to 'type', possible loss of data' - -wd4291 # Suppress ''declaration' : no matching operator delete found; memory will not be freed if initialization throws an exception' - -wd4345 # Suppress 'behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized' - -wd4351 # Suppress 'new behavior: elements of array 'array' will be default initialized' - -wd4355 # Suppress ''this' : used in base member initializer list' - -wd4456 # Suppress 'declaration of 'var' hides local variable' - -wd4457 # Suppress 'declaration of 'var' hides function parameter' - -wd4458 # Suppress 'declaration of 'var' hides class member' - -wd4459 # Suppress 'declaration of 'var' hides global declaration' - -wd4503 # Suppress ''identifier' : decorated name length exceeded, name was truncated' - -wd4624 # Suppress ''derived class' : destructor could not be generated because a base class destructor is inaccessible' - -wd4722 # Suppress 'function' : destructor never returns, potential memory leak - -wd4800 # Suppress ''type' : forcing value to bool 'true' or 'false' (performance warning)' - -wd4100 # Suppress 'unreferenced formal parameter' - -wd4127 # Suppress 'conditional expression is constant' - -wd4512 # Suppress 'assignment operator could not be generated' - -wd4505 # Suppress 'unreferenced local function has been removed' - -wd4610 # Suppress ' can never be instantiated' - -wd4510 # Suppress 'default constructor could not be generated' - -wd4702 # Suppress 'unreachable code' - -wd4245 # Suppress 'signed/unsigned mismatch' - -wd4706 # Suppress 'assignment within conditional expression' - -wd4310 # Suppress 'cast truncates constant value' - -wd4701 # Suppress 'potentially uninitialized local variable' - -wd4703 # Suppress 'potentially uninitialized local pointer variable' - -wd4389 # Suppress 'signed/unsigned mismatch' - -wd4611 # Suppress 'interaction between '_setjmp' and C++ object destruction is non-portable' - -wd4805 # Suppress 'unsafe mix of type and type in operation' - -wd4204 # Suppress 'nonstandard extension used : non-constant aggregate initializer' - -wd4577 # Suppress 'noexcept used with no exception handling mode specified; termination on exception is not guaranteed' - -wd4091 # Suppress 'typedef: ignored on left of '' when no variable is declared' - # C4592 is disabled because of false positives in Visual Studio 2015 - # Update 1. Re-evaluate the usefulness of this diagnostic with Update 2. - -wd4592 # Suppress ''var': symbol will be dynamically initialized (implementation limitation) - -wd4319 # Suppress ''operator' : zero extending 'type' to 'type' of greater size' - - # Ideally, we'd like this warning to be enabled, but MSVC 2013 doesn't - # support the 'aligned' attribute in the way that clang sources requires (for - # any code that uses the LLVM_ALIGNAS macro), so this is must be disabled to - # avoid unwanted alignment warnings. - # When we switch to requiring a version of MSVC that supports the 'alignas' - # specifier (MSVC 2015?) this warning can be re-enabled. - -wd4324 # Suppress 'structure was padded due to __declspec(align())' - - # Promoted warnings. - -w14062 # Promote 'enumerator in switch of enum is not handled' to level 1 warning. - - # Promoted warnings to errors. - -we4238 # Promote 'nonstandard extension used : class rvalue used as lvalue' to error. - ) - - # Enable warnings - if (LLVM_ENABLE_WARNINGS) - # Put /W4 in front of all the -we flags. cl.exe doesn't care, but for - # clang-cl having /W4 after the -we flags will re-enable the warnings - # disabled by -we. - set(msvc_warning_flags "/W4 ${msvc_warning_flags}") - # CMake appends /W3 by default, and having /W3 followed by /W4 will result in - # cl : Command line warning D9025 : overriding '/W3' with '/W4'. Since this is - # a command line warning and not a compiler warning, it cannot be suppressed except - # by fixing the command line. - string(REGEX REPLACE " /W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - string(REGEX REPLACE " /W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - - if (LLVM_ENABLE_PEDANTIC) - # No MSVC equivalent available - endif (LLVM_ENABLE_PEDANTIC) - endif (LLVM_ENABLE_WARNINGS) if (LLVM_ENABLE_WERROR) - append("/WX" msvc_warning_flags) + append("/WX" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) endif (LLVM_ENABLE_WERROR) - foreach(flag ${msvc_warning_flags}) - append("${flag}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - endforeach(flag) - append("/Zc:inline" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) # /Zc:strictStrings is incompatible with VS12's (Visual Studio 2013's) @@ -373,11 +333,13 @@ if( MSVC ) # "Enforce type conversion rules". append("/Zc:rvalueCast" CMAKE_CXX_FLAGS) - if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT LLVM_ENABLE_LTO) # clang-cl and cl by default produce non-deterministic binaries because # link.exe /incremental requires a timestamp in the .obj file. clang-cl # has the flag /Brepro to force deterministic binaries. We want to pass that - # whenever you're building with clang unless you're passing /incremental. + # whenever you're building with clang unless you're passing /incremental + # or using LTO (/Brepro with LTO would result in a warning about the flag + # being unused, because we're not generating object files). # This checks CMAKE_CXX_COMPILER_ID in addition to check_cxx_compiler_flag() # because cl.exe does not emit an error on flags it doesn't understand, # letting check_cxx_compiler_flag() claim it understands all flags. @@ -401,63 +363,6 @@ if( MSVC ) endif() elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE ) - if (LLVM_ENABLE_WARNINGS) - append("-Wall -W -Wno-unused-parameter -Wwrite-strings" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - append("-Wcast-qual" CMAKE_CXX_FLAGS) - - # Turn off missing field initializer warnings for gcc to avoid noise from - # false positives with empty {}. Turn them on otherwise (they're off by - # default for clang). - check_cxx_compiler_flag("-Wmissing-field-initializers" CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG) - if (CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG) - if (CMAKE_COMPILER_IS_GNUCXX) - append("-Wno-missing-field-initializers" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - else() - append("-Wmissing-field-initializers" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - endif() - endif() - - append_if(LLVM_ENABLE_PEDANTIC "-pedantic" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - append_if(LLVM_ENABLE_PEDANTIC "-Wno-long-long" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - add_flag_if_supported("-Wcovered-switch-default" COVERED_SWITCH_DEFAULT_FLAG) - append_if(USE_NO_UNINITIALIZED "-Wno-uninitialized" CMAKE_CXX_FLAGS) - append_if(USE_NO_MAYBE_UNINITIALIZED "-Wno-maybe-uninitialized" CMAKE_CXX_FLAGS) - - # Check if -Wnon-virtual-dtor warns even though the class is marked final. - # If it does, don't add it. So it won't be added on clang 3.4 and older. - # This also catches cases when -Wnon-virtual-dtor isn't supported by - # the compiler at all. This flag is not activated for gcc since it will - # incorrectly identify a protected non-virtual base when there is a friend - # declaration. - if (NOT CMAKE_COMPILER_IS_GNUCXX) - set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11 -Werror=non-virtual-dtor") - CHECK_CXX_SOURCE_COMPILES("class base {public: virtual void anchor();protected: ~base();}; - class derived final : public base { public: ~derived();}; - int main() { return 0; }" - CXX_WONT_WARN_ON_FINAL_NONVIRTUALDTOR) - set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) - append_if(CXX_WONT_WARN_ON_FINAL_NONVIRTUALDTOR - "-Wnon-virtual-dtor" CMAKE_CXX_FLAGS) - endif() - - # Enable -Wdelete-non-virtual-dtor if available. - add_flag_if_supported("-Wdelete-non-virtual-dtor" DELETE_NON_VIRTUAL_DTOR_FLAG) - - # Check if -Wcomment is OK with an // comment ending with '\' if the next - # line is also a // comment. - set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror -Wcomment") - CHECK_C_SOURCE_COMPILES("// \\\\\\n//\\nint main() {return 0;}" - C_WCOMMENT_ALLOWS_LINE_WRAP) - set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) - if (NOT C_WCOMMENT_ALLOWS_LINE_WRAP) - append("-Wno-comment" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) - endif() - - # Enable -Wstring-conversion to catch misuse of string literals. - add_flag_if_supported("-Wstring-conversion" STRING_CONVERSION_FLAG) - endif (LLVM_ENABLE_WARNINGS) append_if(LLVM_ENABLE_WERROR "-Werror" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) add_flag_if_supported("-Werror=date-time" WERROR_DATE_TIME) if (LLVM_ENABLE_CXX1Y) @@ -511,6 +416,155 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE endif(LLVM_ENABLE_MODULES) endif( MSVC ) +if (MSVC AND NOT CLANG_CL) + set(msvc_warning_flags + # Disabled warnings. + -wd4141 # Suppress ''modifier' : used more than once' (because of __forceinline combined with inline) + -wd4146 # Suppress 'unary minus operator applied to unsigned type, result still unsigned' + -wd4180 # Suppress 'qualifier applied to function type has no meaning; ignored' + -wd4244 # Suppress ''argument' : conversion from 'type1' to 'type2', possible loss of data' + -wd4258 # Suppress ''var' : definition from the for loop is ignored; the definition from the enclosing scope is used' + -wd4267 # Suppress ''var' : conversion from 'size_t' to 'type', possible loss of data' + -wd4291 # Suppress ''declaration' : no matching operator delete found; memory will not be freed if initialization throws an exception' + -wd4345 # Suppress 'behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized' + -wd4351 # Suppress 'new behavior: elements of array 'array' will be default initialized' + -wd4355 # Suppress ''this' : used in base member initializer list' + -wd4456 # Suppress 'declaration of 'var' hides local variable' + -wd4457 # Suppress 'declaration of 'var' hides function parameter' + -wd4458 # Suppress 'declaration of 'var' hides class member' + -wd4459 # Suppress 'declaration of 'var' hides global declaration' + -wd4503 # Suppress ''identifier' : decorated name length exceeded, name was truncated' + -wd4624 # Suppress ''derived class' : destructor could not be generated because a base class destructor is inaccessible' + -wd4722 # Suppress 'function' : destructor never returns, potential memory leak + -wd4800 # Suppress ''type' : forcing value to bool 'true' or 'false' (performance warning)' + -wd4100 # Suppress 'unreferenced formal parameter' + -wd4127 # Suppress 'conditional expression is constant' + -wd4512 # Suppress 'assignment operator could not be generated' + -wd4505 # Suppress 'unreferenced local function has been removed' + -wd4610 # Suppress ' can never be instantiated' + -wd4510 # Suppress 'default constructor could not be generated' + -wd4702 # Suppress 'unreachable code' + -wd4245 # Suppress 'signed/unsigned mismatch' + -wd4706 # Suppress 'assignment within conditional expression' + -wd4310 # Suppress 'cast truncates constant value' + -wd4701 # Suppress 'potentially uninitialized local variable' + -wd4703 # Suppress 'potentially uninitialized local pointer variable' + -wd4389 # Suppress 'signed/unsigned mismatch' + -wd4611 # Suppress 'interaction between '_setjmp' and C++ object destruction is non-portable' + -wd4805 # Suppress 'unsafe mix of type and type in operation' + -wd4204 # Suppress 'nonstandard extension used : non-constant aggregate initializer' + -wd4577 # Suppress 'noexcept used with no exception handling mode specified; termination on exception is not guaranteed' + -wd4091 # Suppress 'typedef: ignored on left of '' when no variable is declared' + # C4592 is disabled because of false positives in Visual Studio 2015 + # Update 1. Re-evaluate the usefulness of this diagnostic with Update 2. + -wd4592 # Suppress ''var': symbol will be dynamically initialized (implementation limitation) + -wd4319 # Suppress ''operator' : zero extending 'type' to 'type' of greater size' + + # Ideally, we'd like this warning to be enabled, but MSVC 2013 doesn't *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 16 16:01:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5581FD41EA6; Sun, 16 Apr 2017 16:01:39 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0B6EF1E34; Sun, 16 Apr 2017 16:01:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GG1cZN096067; Sun, 16 Apr 2017 16:01:38 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG1cM7096066; Sun, 16 Apr 2017 16:01:38 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161601.v3GG1cM7096066@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:01:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317018 - vendor/llvm/llvm-trunk-r300422 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:01:39 -0000 Author: dim Date: Sun Apr 16 16:01:37 2017 New Revision: 317018 URL: https://svnweb.freebsd.org/changeset/base/317018 Log: Tag llvm trunk r300422. Added: vendor/llvm/llvm-trunk-r300422/ - copied from r317017, vendor/llvm/dist/ From owner-svn-src-all@freebsd.org Sun Apr 16 16:02:33 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2606BD41F4D; Sun, 16 Apr 2017 16:02:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4DDB11FC; Sun, 16 Apr 2017 16:02: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 v3GG2VtN096975; Sun, 16 Apr 2017 16:02:31 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG2ULA096964; Sun, 16 Apr 2017 16:02:30 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161602.v3GG2ULA096964@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:02:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317019 - in vendor/clang/dist: . bindings/python/clang cmake/caches cmake/modules docs docs/analyzer docs/tools examples/clang-interpreter include/clang-c include/clang/AST include/cla... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:02:33 -0000 Author: dim Date: Sun Apr 16 16:02:28 2017 New Revision: 317019 URL: https://svnweb.freebsd.org/changeset/base/317019 Log: Vendor import of clang trunk r300422: https://llvm.org/svn/llvm-project/cfe/trunk@300422 Added: vendor/clang/dist/cmake/caches/Apple-stage2-ThinLTO.cmake vendor/clang/dist/cmake/caches/Fuchsia-stage2.cmake vendor/clang/dist/cmake/caches/Fuchsia.cmake vendor/clang/dist/cmake/modules/FindZ3.cmake vendor/clang/dist/docs/ClangCommandLineReference.rst vendor/clang/dist/include/clang/AST/ExternalASTMerger.h (contents, props changed) vendor/clang/dist/include/clang/AST/ODRHash.h (contents, props changed) vendor/clang/dist/include/clang/Basic/MemoryBufferCache.h (contents, props changed) vendor/clang/dist/include/clang/Basic/XRayLists.h (contents, props changed) vendor/clang/dist/include/clang/CodeGen/ConstantInitBuilder.h (contents, props changed) vendor/clang/dist/include/clang/CodeGen/ConstantInitFuture.h (contents, props changed) vendor/clang/dist/include/clang/Driver/ClangOptionDocs.td vendor/clang/dist/include/clang/Driver/XRayArgs.h (contents, props changed) vendor/clang/dist/include/clang/Parse/RAIIObjectsForParser.h (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h (contents, props changed) vendor/clang/dist/include/clang/Tooling/Refactoring/ vendor/clang/dist/include/clang/Tooling/Refactoring/AtomicChange.h (contents, props changed) vendor/clang/dist/lib/AST/ExternalASTMerger.cpp (contents, props changed) vendor/clang/dist/lib/AST/ODRHash.cpp (contents, props changed) vendor/clang/dist/lib/Basic/MemoryBufferCache.cpp (contents, props changed) vendor/clang/dist/lib/Basic/XRayLists.cpp (contents, props changed) vendor/clang/dist/lib/CodeGen/CGGPUBuiltin.cpp (contents, props changed) vendor/clang/dist/lib/CodeGen/ConstantInitBuilder.cpp (contents, props changed) vendor/clang/dist/lib/CodeGen/MacroPPCallbacks.cpp (contents, props changed) vendor/clang/dist/lib/CodeGen/MacroPPCallbacks.h (contents, props changed) vendor/clang/dist/lib/Driver/Arch/ vendor/clang/dist/lib/Driver/ToolChains/ vendor/clang/dist/lib/Driver/ToolChains/AMDGPU.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/AMDGPU.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/AVR.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/AVR.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/ vendor/clang/dist/lib/Driver/ToolChains/Arch/AArch64.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/AArch64.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/ARM.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/ARM.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/Mips.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/Mips.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/PPC.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/PPC.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/Sparc.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/Sparc.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/SystemZ.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/SystemZ.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/X86.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Arch/X86.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Bitrig.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Bitrig.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Clang.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Clang.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/CloudABI.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/CloudABI.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/CommonArgs.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/CommonArgs.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Contiki.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Contiki.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/CrossWindows.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/CrossWindows.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Cuda.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Cuda.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Darwin.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Darwin.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/DragonFly.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/DragonFly.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/FreeBSD.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/FreeBSD.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Fuchsia.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Fuchsia.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Gnu.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Gnu.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Haiku.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Haiku.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Hexagon.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Hexagon.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Lanai.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Linux.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Linux.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/MSVC.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/MSVC.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/MSVCSetupApi.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/MinGW.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/MinGW.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Minix.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Minix.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/MipsLinux.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/MipsLinux.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Myriad.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Myriad.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/NaCl.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/NaCl.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/NetBSD.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/NetBSD.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/OpenBSD.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/OpenBSD.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/PS4CPU.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/PS4CPU.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Solaris.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/Solaris.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/TCE.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/TCE.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/WebAssembly.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/WebAssembly.h (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/XCore.cpp (contents, props changed) vendor/clang/dist/lib/Driver/ToolChains/XCore.h (contents, props changed) vendor/clang/dist/lib/Driver/XRayArgs.cpp (contents, props changed) vendor/clang/dist/lib/Format/NamespaceEndCommentsFixer.cpp (contents, props changed) vendor/clang/dist/lib/Format/NamespaceEndCommentsFixer.h (contents, props changed) vendor/clang/dist/lib/Headers/clzerointrin.h (contents, props changed) vendor/clang/dist/lib/Sema/CoroutineStmtBuilder.h (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Core/RangedConstraintManager.h (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp (contents, props changed) vendor/clang/dist/lib/Tooling/Refactoring/ vendor/clang/dist/lib/Tooling/Refactoring/AtomicChange.cpp (contents, props changed) vendor/clang/dist/lib/Tooling/Refactoring/CMakeLists.txt (contents, props changed) vendor/clang/dist/test/ASTMerge/class-template-partial-spec/ vendor/clang/dist/test/ASTMerge/class-template-partial-spec/Inputs/ vendor/clang/dist/test/ASTMerge/class-template-partial-spec/Inputs/class-template-partial-spec1.cpp (contents, props changed) vendor/clang/dist/test/ASTMerge/class-template-partial-spec/Inputs/class-template-partial-spec2.cpp (contents, props changed) vendor/clang/dist/test/ASTMerge/class-template-partial-spec/test.cpp (contents, props changed) vendor/clang/dist/test/Analysis/MisusedMovedObject.cpp (contents, props changed) vendor/clang/dist/test/Analysis/analyzer_test.py (contents, props changed) vendor/clang/dist/test/Analysis/explain-svals.c (contents, props changed) vendor/clang/dist/test/Analysis/gmalloc.c (contents, props changed) vendor/clang/dist/test/Analysis/openmp-unsupported.c (contents, props changed) vendor/clang/dist/test/Analysis/taint-diagnostic-visitor.c (contents, props changed) vendor/clang/dist/test/Analysis/temporaries-callback-order.cpp (contents, props changed) vendor/clang/dist/test/Analysis/unsupported-types.c (contents, props changed) vendor/clang/dist/test/Analysis/valist-as-lazycompound.c (contents, props changed) vendor/clang/dist/test/Analysis/valist-uninitialized-no-undef.c (contents, props changed) vendor/clang/dist/test/CXX/class.derived/class.member.lookup/p10.cpp (contents, props changed) vendor/clang/dist/test/CXX/concepts-ts/temp/ vendor/clang/dist/test/CXX/concepts-ts/temp/temp.constr/ vendor/clang/dist/test/CXX/concepts-ts/temp/temp.constr/temp.constr.decl/ vendor/clang/dist/test/CXX/concepts-ts/temp/temp.constr/temp.constr.decl/class-template-decl.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-1z.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.class.deduct/ vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.class.deduct/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/drs/dr21xx.cpp (contents, props changed) vendor/clang/dist/test/CXX/expr/expr.post/expr.type.conv/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.class.deduct/ vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.class.deduct/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/over/over.match/over.match.funcs/over.match.class.deduct/p3.cpp (contents, props changed) vendor/clang/dist/test/CXX/temp/temp.deduct.guide/ vendor/clang/dist/test/CXX/temp/temp.deduct.guide/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/temp/temp.deduct.guide/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/temp/temp.deduct.guide/p3.cpp (contents, props changed) vendor/clang/dist/test/CXX/temp/temp.res/p3.cpp (contents, props changed) vendor/clang/dist/test/CodeCompletion/auto_type.c (contents, props changed) vendor/clang/dist/test/CodeCompletion/keywords.cpp (contents, props changed) vendor/clang/dist/test/CodeCompletion/pragma-macro-token-caching.c (contents, props changed) vendor/clang/dist/test/CodeGen/Inputs/debug-info-macro.h (contents, props changed) vendor/clang/dist/test/CodeGen/Inputs/pgo-sample-thinlto-summary.prof vendor/clang/dist/test/CodeGen/alloc-align-attr.c (contents, props changed) vendor/clang/dist/test/CodeGen/avr/ vendor/clang/dist/test/CodeGen/avr-inline-asm-constraints.c (contents, props changed) vendor/clang/dist/test/CodeGen/avr-unsupported-inline-asm-constraints.c (contents, props changed) vendor/clang/dist/test/CodeGen/avr/attributes/ vendor/clang/dist/test/CodeGen/avr/attributes/interrupt.c (contents, props changed) vendor/clang/dist/test/CodeGen/avr/attributes/signal.c (contents, props changed) vendor/clang/dist/test/CodeGen/avr/target-cpu-defines/ vendor/clang/dist/test/CodeGen/avr/target-cpu-defines/atmega328p.c (contents, props changed) vendor/clang/dist/test/CodeGen/avr/target-cpu-defines/attiny104.c (contents, props changed) vendor/clang/dist/test/CodeGen/avr/target-cpu-defines/common.c (contents, props changed) vendor/clang/dist/test/CodeGen/builtin-clzero.c (contents, props changed) vendor/clang/dist/test/CodeGen/debug-info-macro.c (contents, props changed) vendor/clang/dist/test/CodeGen/default-address-space.c (contents, props changed) vendor/clang/dist/test/CodeGen/fentry.c (contents, props changed) vendor/clang/dist/test/CodeGen/ffp-contract-fast-option.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/fp-contract-fast-pragma.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/fp-contract-on-pragma.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/ms-inline-asm-EVEN.c (contents, props changed) vendor/clang/dist/test/CodeGen/opt-record-MIR.c (contents, props changed) vendor/clang/dist/test/CodeGen/pgo-sample-thinlto-summary.c (contents, props changed) vendor/clang/dist/test/CodeGen/pr3997.c (contents, props changed) vendor/clang/dist/test/CodeGen/thin_link_bitcode.c (contents, props changed) vendor/clang/dist/test/CodeGen/thinlto-emit-llvm.c (contents, props changed) vendor/clang/dist/test/CodeGen/thinlto-multi-module.ll vendor/clang/dist/test/CodeGen/ubsan-promoted-arith.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/ubsan-shift.c (contents, props changed) vendor/clang/dist/test/CodeGen/unaligned-decl.c (contents, props changed) vendor/clang/dist/test/CodeGen/unaligned-expr.c (contents, props changed) vendor/clang/dist/test/CodeGen/unaligned-field.c (contents, props changed) vendor/clang/dist/test/CodeGen/xop-builtins-cmp.c (contents, props changed) vendor/clang/dist/test/CodeGen/xray-always-instrument.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/xray-instruction-threshold.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/xray-log-args.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCUDA/propagate-metadata.cu vendor/clang/dist/test/CodeGenCXX/atomic-dllexport.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-class-optzns.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-inheriting-constructor.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-ms-dtor-thunks.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-template-deduction-guide.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/implicit-exception-spec.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/initializer-list-ctor-order.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/no-lto-unit.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/type-metadata-thinlto.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/ubsan-bitfields.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/ubsan-global-alignment.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/ubsan-suppress-checks.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/ubsan-type-checks.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/unaligned.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCoroutines/coro-await.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCoroutines/coro-cleanup.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCoroutines/coro-eh-cleanup.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCoroutines/coro-return.cpp (contents, props changed) vendor/clang/dist/test/CodeGenObjC/availability-cf-link-guard.m vendor/clang/dist/test/CodeGenObjC/availability-check.m vendor/clang/dist/test/CodeGenObjC/empty-collection-literals.m vendor/clang/dist/test/CodeGenObjC/ivar-type-encoding.m vendor/clang/dist/test/CodeGenObjC/ubsan-nonnull-and-nullability.m vendor/clang/dist/test/CodeGenObjC/ubsan-nonnull.m vendor/clang/dist/test/CodeGenObjC/ubsan-nullability.m vendor/clang/dist/test/CodeGenObjCXX/arc-attrs-abi.mm vendor/clang/dist/test/CodeGenObjCXX/lambda-to-block.mm vendor/clang/dist/test/CodeGenObjCXX/objc-weak.mm vendor/clang/dist/test/CodeGenObjCXX/objfw-exceptions.mm vendor/clang/dist/test/CodeGenOpenCL/amdgcn-large-globals.cl vendor/clang/dist/test/CodeGenOpenCL/amdgpu-alignment.cl vendor/clang/dist/test/CodeGenOpenCL/amdgpu-debug-info-pointer-address-space.cl vendor/clang/dist/test/CodeGenOpenCL/amdgpu-debug-info-variable-expression.cl vendor/clang/dist/test/CodeGenOpenCL/amdgpu-env-amdgiz.cl vendor/clang/dist/test/CodeGenOpenCL/blocks.cl vendor/clang/dist/test/CodeGenOpenCL/builtins-amdgcn-gfx9.cl vendor/clang/dist/test/CodeGenOpenCL/gfx9-fp32-denorms.cl vendor/clang/dist/test/CodeGenOpenCL/overload.cl vendor/clang/dist/test/CodeGenOpenCL/preserve_vec3.cl vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/ vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/ vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/ vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/aarch64/ vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/aarch64/.keep vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/arm/ vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/arm/.keep vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/i386/ vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/i386/.keep vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/x86_64/ vendor/clang/dist/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/x86_64/.keep vendor/clang/dist/test/Driver/arch-specific-libdir-rpath.c (contents, props changed) vendor/clang/dist/test/Driver/arch-specific-libdir.c (contents, props changed) vendor/clang/dist/test/Driver/arm-no-neg-immediates.c (contents, props changed) vendor/clang/dist/test/Driver/cuda-no-stack-protector.cu vendor/clang/dist/test/Driver/darwin-ld-pthread.c (contents, props changed) vendor/clang/dist/test/Driver/darwin-simulator-macro.c (contents, props changed) vendor/clang/dist/test/Driver/include-default-header.cl vendor/clang/dist/test/Driver/lto-unit.c (contents, props changed) vendor/clang/dist/test/Driver/no-arc-exception-silence.m vendor/clang/dist/test/Driver/reloc-model.c (contents, props changed) vendor/clang/dist/test/Driver/unknown-std.S (contents, props changed) vendor/clang/dist/test/Driver/unknown-std.c (contents, props changed) vendor/clang/dist/test/Driver/unknown-std.cl vendor/clang/dist/test/Driver/unknown-std.cpp (contents, props changed) vendor/clang/dist/test/Driver/unsupported-faltivec.c (contents, props changed) vendor/clang/dist/test/Format/inplace.cpp (contents, props changed) vendor/clang/dist/test/Frontend/preprocessed-input.i vendor/clang/dist/test/Headers/Inputs/usr/include/math.h (contents, props changed) vendor/clang/dist/test/Headers/Inputs/usr/include/tgmath.h (contents, props changed) vendor/clang/dist/test/Headers/htm-header.c (contents, props changed) vendor/clang/dist/test/Headers/stdarg-gnuc_va_list.c (contents, props changed) vendor/clang/dist/test/Headers/tgmath-darwin.c (contents, props changed) vendor/clang/dist/test/Import/forward-declared-struct/ vendor/clang/dist/test/Import/forward-declared-struct/Inputs/ vendor/clang/dist/test/Import/forward-declared-struct/Inputs/S1.c (contents, props changed) vendor/clang/dist/test/Import/forward-declared-struct/Inputs/S2.c (contents, props changed) vendor/clang/dist/test/Import/forward-declared-struct/test.c (contents, props changed) vendor/clang/dist/test/Import/member-in-struct/ vendor/clang/dist/test/Import/member-in-struct/Inputs/ vendor/clang/dist/test/Import/member-in-struct/Inputs/S.c (contents, props changed) vendor/clang/dist/test/Import/member-in-struct/test.c (contents, props changed) vendor/clang/dist/test/Import/multiple-forward-declarations/ vendor/clang/dist/test/Import/multiple-forward-declarations/Inputs/ vendor/clang/dist/test/Import/multiple-forward-declarations/Inputs/S1.c (contents, props changed) vendor/clang/dist/test/Import/multiple-forward-declarations/Inputs/S2.c (contents, props changed) vendor/clang/dist/test/Import/multiple-forward-declarations/test.c (contents, props changed) vendor/clang/dist/test/Import/overloaded-function/ vendor/clang/dist/test/Import/overloaded-function/Inputs/ vendor/clang/dist/test/Import/overloaded-function/Inputs/F1.c (contents, props changed) vendor/clang/dist/test/Import/overloaded-function/Inputs/F2.c (contents, props changed) vendor/clang/dist/test/Import/overloaded-function/test.c (contents, props changed) vendor/clang/dist/test/Import/struct-in-namespace/ vendor/clang/dist/test/Import/struct-in-namespace/Inputs/ vendor/clang/dist/test/Import/struct-in-namespace/Inputs/N1.cpp (contents, props changed) vendor/clang/dist/test/Import/struct-in-namespace/Inputs/N2.cpp (contents, props changed) vendor/clang/dist/test/Import/struct-in-namespace/Inputs/N3.cpp (contents, props changed) vendor/clang/dist/test/Import/struct-in-namespace/test.cpp (contents, props changed) vendor/clang/dist/test/Import/template-specialization/ vendor/clang/dist/test/Import/template-specialization/Inputs/ vendor/clang/dist/test/Import/template-specialization/Inputs/T.cpp (contents, props changed) vendor/clang/dist/test/Import/template-specialization/test.cpp (contents, props changed) vendor/clang/dist/test/Index/Core/Inputs/sys/ vendor/clang/dist/test/Index/Core/Inputs/sys/system-head.h (contents, props changed) vendor/clang/dist/test/Index/Core/index-pch.c (contents, props changed) vendor/clang/dist/test/Index/Core/index-system.mm vendor/clang/dist/test/Index/complete-cached-globals.cpp (contents, props changed) vendor/clang/dist/test/Index/opencl-types.cl vendor/clang/dist/test/Index/pch-from-libclang.c (contents, props changed) vendor/clang/dist/test/Lexer/asm-preproc-no-unicode.s (contents, props changed) vendor/clang/dist/test/Lexer/case-insensitive-include-pr31836.sh (contents, props changed) vendor/clang/dist/test/Misc/ast-print-out-of-line-func.cpp (contents, props changed) vendor/clang/dist/test/Modules/Inputs/Main.framework/ vendor/clang/dist/test/Modules/Inputs/Main.framework/Frameworks/ vendor/clang/dist/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/ vendor/clang/dist/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/ vendor/clang/dist/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/B.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/Sub.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/ vendor/clang/dist/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/BPriv.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/SubPriv.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/Main.framework/Headers/ vendor/clang/dist/test/Modules/Inputs/Main.framework/Headers/A.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/Main.framework/Headers/Main.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/Main.framework/Modules/ vendor/clang/dist/test/Modules/Inputs/Main.framework/Modules/module.modulemap vendor/clang/dist/test/Modules/Inputs/Main.framework/Modules/module.private.modulemap vendor/clang/dist/test/Modules/Inputs/Main.framework/PrivateHeaders/ vendor/clang/dist/test/Modules/Inputs/Main.framework/PrivateHeaders/APriv.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/Main.framework/PrivateHeaders/MainPriv.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/anon-redecl/ vendor/clang/dist/test/Modules/Inputs/anon-redecl/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/anon-redecl/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/anon-redecl/c1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/anon-redecl/c2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/anon-redecl/module.modulemap vendor/clang/dist/test/Modules/Inputs/codegen/ vendor/clang/dist/test/Modules/Inputs/codegen-flags/ vendor/clang/dist/test/Modules/Inputs/codegen-flags/foo.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/codegen-flags/foo.modulemap vendor/clang/dist/test/Modules/Inputs/codegen-flags/use.cpp (contents, props changed) vendor/clang/dist/test/Modules/Inputs/codegen-nodep/ vendor/clang/dist/test/Modules/Inputs/codegen-nodep/foo.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/codegen-nodep/foo.modulemap vendor/clang/dist/test/Modules/Inputs/codegen-opt/ vendor/clang/dist/test/Modules/Inputs/codegen-opt/bar.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/codegen-opt/bar.modulemap vendor/clang/dist/test/Modules/Inputs/codegen-opt/foo.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/codegen-opt/foo.modulemap vendor/clang/dist/test/Modules/Inputs/codegen-opt/use.cpp (contents, props changed) vendor/clang/dist/test/Modules/Inputs/codegen/foo.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/codegen/foo.modulemap vendor/clang/dist/test/Modules/Inputs/codegen/use.cpp (contents, props changed) vendor/clang/dist/test/Modules/Inputs/cxx17/ vendor/clang/dist/test/Modules/Inputs/cxx17/decls.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/cxx17/module.modulemap vendor/clang/dist/test/Modules/Inputs/gnumode-non-benign/ vendor/clang/dist/test/Modules/Inputs/gnumode-non-benign/module.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/gnumode-non-benign/module.modulemap vendor/clang/dist/test/Modules/Inputs/hidden-names/ vendor/clang/dist/test/Modules/Inputs/hidden-names/hidden.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/hidden-names/module.modulemap vendor/clang/dist/test/Modules/Inputs/hidden-names/visible.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/implicit-built-Werror-using-W/ vendor/clang/dist/test/Modules/Inputs/implicit-built-Werror-using-W/convert.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/implicit-built-Werror-using-W/module.modulemap vendor/clang/dist/test/Modules/Inputs/invalid-module-id/ vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/ vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/ vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/ vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.modulemap vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.private.modulemap vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/ vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/merge-function-defs/ vendor/clang/dist/test/Modules/Inputs/merge-function-defs/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/merge-function-defs/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/merge-function-defs/map vendor/clang/dist/test/Modules/Inputs/merge-name-for-linkage/c1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/merge-name-for-linkage/c2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/outofdate-rebuild/ vendor/clang/dist/test/Modules/Inputs/outofdate-rebuild/AppKit.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/outofdate-rebuild/Cocoa.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/outofdate-rebuild/CoreText.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/outofdate-rebuild/CoreVideo.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/outofdate-rebuild/Foundation.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/outofdate-rebuild/module.modulemap vendor/clang/dist/test/Modules/Inputs/overloadable-attrs/ vendor/clang/dist/test/Modules/Inputs/overloadable-attrs/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/overloadable-attrs/module.modulemap vendor/clang/dist/test/Modules/Inputs/pragma_pack_set.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/system-out-of-date/ vendor/clang/dist/test/Modules/Inputs/system-out-of-date/X.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/system-out-of-date/Y.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/system-out-of-date/Z.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/system-out-of-date/module.map vendor/clang/dist/test/Modules/Inputs/warning-mismatch/ vendor/clang/dist/test/Modules/Inputs/warning-mismatch/Mismatch.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/warning-mismatch/System.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/warning-mismatch/module.modulemap vendor/clang/dist/test/Modules/anon-redecl.cpp (contents, props changed) vendor/clang/dist/test/Modules/codegen-flags.test vendor/clang/dist/test/Modules/codegen-nodep.test vendor/clang/dist/test/Modules/codegen-opt.test vendor/clang/dist/test/Modules/codegen.test vendor/clang/dist/test/Modules/cxx17.cpp (contents, props changed) vendor/clang/dist/test/Modules/diag-pragma.cpp (contents, props changed) vendor/clang/dist/test/Modules/find-privateheaders.m vendor/clang/dist/test/Modules/gnumode-non-benign.cpp (contents, props changed) vendor/clang/dist/test/Modules/hidden-names.cpp (contents, props changed) vendor/clang/dist/test/Modules/implicit-built-Werror-using-W.cpp (contents, props changed) vendor/clang/dist/test/Modules/invalid-pch-module-id.m vendor/clang/dist/test/Modules/localsubmodulevis.m vendor/clang/dist/test/Modules/merge-function-defs.cpp (contents, props changed) vendor/clang/dist/test/Modules/module_map_cwd.c (contents, props changed) vendor/clang/dist/test/Modules/modules-cache-path-canonicalization.m vendor/clang/dist/test/Modules/odr_hash.cpp (contents, props changed) vendor/clang/dist/test/Modules/outofdate-rebuild.m vendor/clang/dist/test/Modules/overloadable-attrs.cpp (contents, props changed) vendor/clang/dist/test/Modules/pragma-pack.cpp (contents, props changed) vendor/clang/dist/test/Modules/system-out-of-date-test.m vendor/clang/dist/test/Modules/warning-mismatch.m vendor/clang/dist/test/OpenMP/distribute_firstprivate_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_target_parallel_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_target_parallel_num_threads_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_target_parallel_proc_bind_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_target_parallel_reduction_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_target_printf_codegen.c (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_target_teams_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_teams_reduction_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_codegen_registration.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_codegen_registration_naming.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_if_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_num_threads_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_teams_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_teams_codegen_registration.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_teams_codegen_registration_naming.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_teams_num_teams_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_teams_thread_limit_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/vla_crash.c (contents, props changed) vendor/clang/dist/test/PCH/cxx-dependent-sized-ext-vector.cpp (contents, props changed) vendor/clang/dist/test/PCH/emit-dependencies.c (contents, props changed) vendor/clang/dist/test/PCH/pragma-pack.c (contents, props changed) vendor/clang/dist/test/Parser/attr-external-source-symbol-cxx11.cpp (contents, props changed) vendor/clang/dist/test/Parser/attr-external-source-symbol.m vendor/clang/dist/test/Parser/cxx1z-class-template-argument-deduction.cpp (contents, props changed) vendor/clang/dist/test/Parser/declspec-recovery.c (contents, props changed) vendor/clang/dist/test/Parser/declspec-supported.c (contents, props changed) vendor/clang/dist/test/Parser/objc-cxx-keyword-identifiers.mm vendor/clang/dist/test/Parser/pragma-fp.cpp (contents, props changed) vendor/clang/dist/test/Parser/vector-cast-define.cl vendor/clang/dist/test/Profile/c-ternary.c (contents, props changed) vendor/clang/dist/test/Sema/address-unaligned.c (contents, props changed) vendor/clang/dist/test/Sema/alloc-align-attr.c (contents, props changed) vendor/clang/dist/test/Sema/attr-external-source-symbol.c (contents, props changed) vendor/clang/dist/test/Sema/avr-interrupt-attr.c (contents, props changed) vendor/clang/dist/test/Sema/avr-signal-attr.c (contents, props changed) vendor/clang/dist/test/Sema/declspec-naked.c (contents, props changed) vendor/clang/dist/test/Sema/enum-attr.c (contents, props changed) vendor/clang/dist/test/Sema/pr30306.cpp (contents, props changed) vendor/clang/dist/test/Sema/unaligned-qualifier.c (contents, props changed) vendor/clang/dist/test/Sema/xray-log-args-oob.c (contents, props changed) vendor/clang/dist/test/Sema/xray-log-args-oob.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/Inputs/std-coroutine.h (contents, props changed) vendor/clang/dist/test/SemaCXX/P30636.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/alloc-align-attr.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/coroutine-unhandled_exception-warning.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/designated-initializers-base-class.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/enum-attr.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/friend3.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/suppress.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/template-multiple-attr-propagation.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/template-specialization.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/warn-bitfield-enum-conversion.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/warn-inconsistent-missing-destructor-override vendor/clang/dist/test/SemaCXX/warn-unused-lambda-capture.cpp (contents, props changed) vendor/clang/dist/test/SemaObjC/category-attribute.m vendor/clang/dist/test/SemaObjC/unsafe-perform-selector.m vendor/clang/dist/test/SemaObjCXX/arc-ptr-comparison.mm vendor/clang/dist/test/SemaObjCXX/objc-weak-type-traits.mm vendor/clang/dist/test/SemaObjCXX/objc-weak.mm vendor/clang/dist/test/SemaOpenCL/atomic-init.cl vendor/clang/dist/test/SemaOpenCL/builtins-amdgcn-error-gfx9.cl vendor/clang/dist/test/SemaOpenCL/invalid-assignment-constant-address-space.cl vendor/clang/dist/test/SemaOpenCL/logical-ops.cl vendor/clang/dist/test/SemaOpenCL/types.cl vendor/clang/dist/test/SemaOpenCL/vector_swizzle_length.cl vendor/clang/dist/tools/clang-format-vs/ClangFormat/RunningDocTableEventsDispatcher.cs vendor/clang/dist/tools/clang-format-vs/ClangFormat/Vsix.cs vendor/clang/dist/tools/clang-format-vs/ClangFormat/license.txt (contents, props changed) vendor/clang/dist/tools/clang-format/clang-format-test.el vendor/clang/dist/tools/scan-build-py/libscanbuild/arguments.py (contents, props changed) vendor/clang/dist/unittests/Analysis/CloneDetectionTest.cpp (contents, props changed) vendor/clang/dist/unittests/Basic/MemoryBufferCacheTest.cpp (contents, props changed) vendor/clang/dist/unittests/Format/FormatTestComments.cpp (contents, props changed) vendor/clang/dist/unittests/Format/NamespaceEndCommentsFixerTest.cpp (contents, props changed) vendor/clang/dist/utils/TableGen/ClangOptionDocEmitter.cpp (contents, props changed) Deleted: vendor/clang/dist/lib/CodeGen/CGCUDABuiltin.cpp vendor/clang/dist/lib/CodeGen/ConstantBuilder.h vendor/clang/dist/lib/Driver/CrossWindowsToolChain.cpp vendor/clang/dist/lib/Driver/MSVCToolChain.cpp vendor/clang/dist/lib/Driver/MinGWToolChain.cpp vendor/clang/dist/lib/Driver/ToolChains.cpp vendor/clang/dist/lib/Driver/ToolChains.h vendor/clang/dist/lib/Driver/Tools.cpp vendor/clang/dist/lib/Driver/Tools.h vendor/clang/dist/lib/Format/Comments.cpp vendor/clang/dist/lib/Format/Comments.h vendor/clang/dist/lib/Parse/RAIIObjectsForParser.h vendor/clang/dist/lib/StaticAnalyzer/Core/SimpleConstraintManager.h vendor/clang/dist/test/CXX/garbage.collection/ vendor/clang/dist/test/CodeGen/xray-attributes-supported-arm.cpp vendor/clang/dist/test/Modules/system_version.m vendor/clang/dist/test/Sema/invalid-assignment-constant-address-space.c vendor/clang/dist/test/Sema/template-specialization.cpp vendor/clang/dist/test/SemaCXX/attr-flag-enum-reject.cpp vendor/clang/dist/test/SemaOpenCL/invalid-logical-ops-1.1.cl vendor/clang/dist/test/SemaOpenCL/invalid-logical-ops-1.2.cl vendor/clang/dist/tools/scan-build-py/bin/analyze-build.bat vendor/clang/dist/tools/scan-build-py/bin/analyze-c++.bat vendor/clang/dist/tools/scan-build-py/bin/analyze-cc.bat vendor/clang/dist/tools/scan-build-py/bin/intercept-build.bat vendor/clang/dist/tools/scan-build-py/bin/intercept-c++.bat vendor/clang/dist/tools/scan-build-py/bin/intercept-cc.bat vendor/clang/dist/tools/scan-build-py/bin/scan-build.bat vendor/clang/dist/tools/scan-build-py/libscanbuild/runner.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_runner.py Modified: vendor/clang/dist/CMakeLists.txt vendor/clang/dist/bindings/python/clang/cindex.py vendor/clang/dist/cmake/modules/CMakeLists.txt vendor/clang/dist/cmake/modules/ClangConfig.cmake.in vendor/clang/dist/docs/AttributeReference.rst vendor/clang/dist/docs/ClangFormatStyleOptions.rst vendor/clang/dist/docs/ControlFlowIntegrityDesign.rst vendor/clang/dist/docs/DiagnosticsReference.rst vendor/clang/dist/docs/ExternalClangExamples.rst vendor/clang/dist/docs/LTOVisibility.rst vendor/clang/dist/docs/LanguageExtensions.rst vendor/clang/dist/docs/LibASTMatchersReference.html vendor/clang/dist/docs/Modules.rst vendor/clang/dist/docs/ReleaseNotes.rst vendor/clang/dist/docs/SanitizerCoverage.rst vendor/clang/dist/docs/SourceBasedCodeCoverage.rst vendor/clang/dist/docs/UndefinedBehaviorSanitizer.rst vendor/clang/dist/docs/UsersManual.rst vendor/clang/dist/docs/analyzer/DebugChecks.rst vendor/clang/dist/docs/analyzer/conf.py vendor/clang/dist/docs/conf.py vendor/clang/dist/docs/doxygen.cfg.in vendor/clang/dist/docs/index.rst vendor/clang/dist/docs/tools/dump_format_style.py vendor/clang/dist/examples/clang-interpreter/CMakeLists.txt vendor/clang/dist/include/clang-c/Index.h vendor/clang/dist/include/clang/AST/ASTContext.h vendor/clang/dist/include/clang/AST/ASTVector.h vendor/clang/dist/include/clang/AST/BuiltinTypes.def vendor/clang/dist/include/clang/AST/Decl.h vendor/clang/dist/include/clang/AST/DeclBase.h vendor/clang/dist/include/clang/AST/DeclCXX.h vendor/clang/dist/include/clang/AST/DeclContextInternals.h vendor/clang/dist/include/clang/AST/DeclObjC.h vendor/clang/dist/include/clang/AST/DeclTemplate.h vendor/clang/dist/include/clang/AST/DeclarationName.h vendor/clang/dist/include/clang/AST/Expr.h vendor/clang/dist/include/clang/AST/ExprCXX.h vendor/clang/dist/include/clang/AST/ExternalASTSource.h vendor/clang/dist/include/clang/AST/OpenMPClause.h vendor/clang/dist/include/clang/AST/RecursiveASTVisitor.h vendor/clang/dist/include/clang/AST/Stmt.h vendor/clang/dist/include/clang/AST/StmtCXX.h vendor/clang/dist/include/clang/AST/StmtIterator.h vendor/clang/dist/include/clang/AST/StmtOpenMP.h vendor/clang/dist/include/clang/AST/TemplateBase.h vendor/clang/dist/include/clang/AST/Type.h vendor/clang/dist/include/clang/AST/TypeLoc.h vendor/clang/dist/include/clang/AST/TypeNodes.def vendor/clang/dist/include/clang/AST/TypeOrdering.h vendor/clang/dist/include/clang/ASTMatchers/ASTMatchers.h vendor/clang/dist/include/clang/ASTMatchers/Dynamic/VariantValue.h vendor/clang/dist/include/clang/Analysis/CallGraph.h vendor/clang/dist/include/clang/Analysis/CloneDetection.h vendor/clang/dist/include/clang/Basic/AddressSpaces.h vendor/clang/dist/include/clang/Basic/Attr.td vendor/clang/dist/include/clang/Basic/AttrDocs.td vendor/clang/dist/include/clang/Basic/Builtins.def vendor/clang/dist/include/clang/Basic/BuiltinsAMDGPU.def vendor/clang/dist/include/clang/Basic/BuiltinsNVPTX.def vendor/clang/dist/include/clang/Basic/BuiltinsWebAssembly.def vendor/clang/dist/include/clang/Basic/BuiltinsX86.def vendor/clang/dist/include/clang/Basic/DeclNodes.td vendor/clang/dist/include/clang/Basic/Diagnostic.h vendor/clang/dist/include/clang/Basic/DiagnosticASTKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticGroups.td vendor/clang/dist/include/clang/Basic/DiagnosticIDs.h vendor/clang/dist/include/clang/Basic/DiagnosticParseKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSerializationKinds.td vendor/clang/dist/include/clang/Basic/IdentifierTable.h vendor/clang/dist/include/clang/Basic/LangOptions.def vendor/clang/dist/include/clang/Basic/LangOptions.h vendor/clang/dist/include/clang/Basic/Module.h vendor/clang/dist/include/clang/Basic/ObjCRuntime.h vendor/clang/dist/include/clang/Basic/OpenCLImageTypes.def vendor/clang/dist/include/clang/Basic/OpenMPKinds.h vendor/clang/dist/include/clang/Basic/Sanitizers.def vendor/clang/dist/include/clang/Basic/SourceLocation.h vendor/clang/dist/include/clang/Basic/Specifiers.h vendor/clang/dist/include/clang/Basic/StmtNodes.td vendor/clang/dist/include/clang/Basic/TargetInfo.h vendor/clang/dist/include/clang/Basic/TokenKinds.def vendor/clang/dist/include/clang/Basic/TypeTraits.h vendor/clang/dist/include/clang/Basic/VirtualFileSystem.h vendor/clang/dist/include/clang/Basic/arm_neon.td vendor/clang/dist/include/clang/CodeGen/BackendUtil.h vendor/clang/dist/include/clang/CodeGen/CodeGenABITypes.h vendor/clang/dist/include/clang/CodeGen/CodeGenAction.h vendor/clang/dist/include/clang/CodeGen/ModuleBuilder.h vendor/clang/dist/include/clang/Config/config.h.cmake vendor/clang/dist/include/clang/Driver/CC1Options.td vendor/clang/dist/include/clang/Driver/CLCompatOptions.td vendor/clang/dist/include/clang/Driver/Driver.h vendor/clang/dist/include/clang/Driver/Job.h vendor/clang/dist/include/clang/Driver/Options.h vendor/clang/dist/include/clang/Driver/Options.td vendor/clang/dist/include/clang/Driver/SanitizerArgs.h vendor/clang/dist/include/clang/Driver/Tool.h vendor/clang/dist/include/clang/Driver/ToolChain.h vendor/clang/dist/include/clang/Format/Format.h vendor/clang/dist/include/clang/Frontend/ASTConsumers.h vendor/clang/dist/include/clang/Frontend/ASTUnit.h vendor/clang/dist/include/clang/Frontend/CodeGenOptions.def vendor/clang/dist/include/clang/Frontend/CodeGenOptions.h vendor/clang/dist/include/clang/Frontend/CompilerInstance.h vendor/clang/dist/include/clang/Frontend/FrontendActions.h vendor/clang/dist/include/clang/Frontend/FrontendOptions.h vendor/clang/dist/include/clang/Frontend/LangStandard.h vendor/clang/dist/include/clang/Frontend/LangStandards.def vendor/clang/dist/include/clang/Frontend/PCHContainerOperations.h vendor/clang/dist/include/clang/Index/IndexSymbol.h vendor/clang/dist/include/clang/Index/IndexingAction.h vendor/clang/dist/include/clang/Index/USRGeneration.h vendor/clang/dist/include/clang/Lex/HeaderSearchOptions.h vendor/clang/dist/include/clang/Lex/Preprocessor.h vendor/clang/dist/include/clang/Parse/Parser.h vendor/clang/dist/include/clang/Sema/AttributeList.h vendor/clang/dist/include/clang/Sema/DeclSpec.h vendor/clang/dist/include/clang/Sema/IdentifierResolver.h vendor/clang/dist/include/clang/Sema/Initialization.h vendor/clang/dist/include/clang/Sema/Lookup.h vendor/clang/dist/include/clang/Sema/MultiplexExternalSemaSource.h vendor/clang/dist/include/clang/Sema/Overload.h vendor/clang/dist/include/clang/Sema/Ownership.h vendor/clang/dist/include/clang/Sema/ScopeInfo.h vendor/clang/dist/include/clang/Sema/Sema.h vendor/clang/dist/include/clang/Sema/Template.h vendor/clang/dist/include/clang/Serialization/ASTBitCodes.h vendor/clang/dist/include/clang/Serialization/ASTDeserializationListener.h vendor/clang/dist/include/clang/Serialization/ASTReader.h vendor/clang/dist/include/clang/Serialization/ASTWriter.h vendor/clang/dist/include/clang/Serialization/Module.h vendor/clang/dist/include/clang/Serialization/ModuleManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/Checkers.td vendor/clang/dist/include/clang/StaticAnalyzer/Core/Analyses.def vendor/clang/dist/include/clang/StaticAnalyzer/Core/Checker.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/CheckerManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/ASTDumper.cpp vendor/clang/dist/lib/AST/ASTImporter.cpp vendor/clang/dist/lib/AST/CMakeLists.txt vendor/clang/dist/lib/AST/CXXInheritance.cpp vendor/clang/dist/lib/AST/Decl.cpp vendor/clang/dist/lib/AST/DeclBase.cpp vendor/clang/dist/lib/AST/DeclCXX.cpp vendor/clang/dist/lib/AST/DeclObjC.cpp vendor/clang/dist/lib/AST/DeclPrinter.cpp vendor/clang/dist/lib/AST/DeclTemplate.cpp vendor/clang/dist/lib/AST/DeclarationName.cpp vendor/clang/dist/lib/AST/Expr.cpp vendor/clang/dist/lib/AST/ExprCXX.cpp vendor/clang/dist/lib/AST/ExprClassification.cpp vendor/clang/dist/lib/AST/ExprConstant.cpp vendor/clang/dist/lib/AST/ExternalASTSource.cpp vendor/clang/dist/lib/AST/ItaniumMangle.cpp vendor/clang/dist/lib/AST/Mangle.cpp vendor/clang/dist/lib/AST/MicrosoftMangle.cpp vendor/clang/dist/lib/AST/NSAPI.cpp vendor/clang/dist/lib/AST/OpenMPClause.cpp vendor/clang/dist/lib/AST/Stmt.cpp vendor/clang/dist/lib/AST/StmtCXX.cpp vendor/clang/dist/lib/AST/StmtOpenMP.cpp vendor/clang/dist/lib/AST/StmtPrinter.cpp vendor/clang/dist/lib/AST/StmtProfile.cpp vendor/clang/dist/lib/AST/TemplateBase.cpp vendor/clang/dist/lib/AST/Type.cpp vendor/clang/dist/lib/AST/TypeLoc.cpp vendor/clang/dist/lib/AST/TypePrinter.cpp vendor/clang/dist/lib/ASTMatchers/Dynamic/Registry.cpp vendor/clang/dist/lib/Analysis/BodyFarm.cpp vendor/clang/dist/lib/Analysis/CFG.cpp vendor/clang/dist/lib/Analysis/CallGraph.cpp vendor/clang/dist/lib/Analysis/CloneDetection.cpp vendor/clang/dist/lib/Analysis/OSLog.cpp vendor/clang/dist/lib/Analysis/ReachableCode.cpp vendor/clang/dist/lib/Analysis/ThreadSafetyTIL.cpp vendor/clang/dist/lib/Basic/CMakeLists.txt vendor/clang/dist/lib/Basic/Diagnostic.cpp vendor/clang/dist/lib/Basic/DiagnosticIDs.cpp vendor/clang/dist/lib/Basic/FileManager.cpp vendor/clang/dist/lib/Basic/IdentifierTable.cpp vendor/clang/dist/lib/Basic/LangOptions.cpp vendor/clang/dist/lib/Basic/Module.cpp vendor/clang/dist/lib/Basic/OpenMPKinds.cpp vendor/clang/dist/lib/Basic/SourceManager.cpp vendor/clang/dist/lib/Basic/TargetInfo.cpp vendor/clang/dist/lib/Basic/Targets.cpp vendor/clang/dist/lib/Basic/Version.cpp vendor/clang/dist/lib/Basic/VirtualFileSystem.cpp vendor/clang/dist/lib/CodeGen/ABIInfo.h vendor/clang/dist/lib/CodeGen/BackendUtil.cpp vendor/clang/dist/lib/CodeGen/CGAtomic.cpp vendor/clang/dist/lib/CodeGen/CGBlocks.cpp vendor/clang/dist/lib/CodeGen/CGBuiltin.cpp vendor/clang/dist/lib/CodeGen/CGCUDANV.cpp vendor/clang/dist/lib/CodeGen/CGCXX.cpp vendor/clang/dist/lib/CodeGen/CGCXXABI.h vendor/clang/dist/lib/CodeGen/CGCall.cpp vendor/clang/dist/lib/CodeGen/CGCall.h vendor/clang/dist/lib/CodeGen/CGClass.cpp vendor/clang/dist/lib/CodeGen/CGCleanup.cpp vendor/clang/dist/lib/CodeGen/CGCoroutine.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.h vendor/clang/dist/lib/CodeGen/CGDecl.cpp vendor/clang/dist/lib/CodeGen/CGDeclCXX.cpp vendor/clang/dist/lib/CodeGen/CGException.cpp vendor/clang/dist/lib/CodeGen/CGExpr.cpp vendor/clang/dist/lib/CodeGen/CGExprAgg.cpp vendor/clang/dist/lib/CodeGen/CGExprCXX.cpp vendor/clang/dist/lib/CodeGen/CGExprComplex.cpp vendor/clang/dist/lib/CodeGen/CGExprScalar.cpp vendor/clang/dist/lib/CodeGen/CGObjC.cpp vendor/clang/dist/lib/CodeGen/CGObjCGNU.cpp vendor/clang/dist/lib/CodeGen/CGObjCMac.cpp vendor/clang/dist/lib/CodeGen/CGOpenCLRuntime.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntime.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntime.h vendor/clang/dist/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntimeNVPTX.h vendor/clang/dist/lib/CodeGen/CGStmt.cpp vendor/clang/dist/lib/CodeGen/CGStmtOpenMP.cpp vendor/clang/dist/lib/CodeGen/CGVTables.cpp vendor/clang/dist/lib/CodeGen/CMakeLists.txt vendor/clang/dist/lib/CodeGen/CodeGenAction.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.h vendor/clang/dist/lib/CodeGen/CodeGenModule.cpp vendor/clang/dist/lib/CodeGen/CodeGenModule.h vendor/clang/dist/lib/CodeGen/CodeGenPGO.cpp vendor/clang/dist/lib/CodeGen/CodeGenPGO.h vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp vendor/clang/dist/lib/CodeGen/CodeGenTypes.h vendor/clang/dist/lib/CodeGen/CoverageMappingGen.cpp vendor/clang/dist/lib/CodeGen/EHScopeStack.h vendor/clang/dist/lib/CodeGen/ItaniumCXXABI.cpp vendor/clang/dist/lib/CodeGen/MicrosoftCXXABI.cpp vendor/clang/dist/lib/CodeGen/ModuleBuilder.cpp vendor/clang/dist/lib/CodeGen/ObjectFilePCHContainerOperations.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.cpp vendor/clang/dist/lib/Driver/CMakeLists.txt vendor/clang/dist/lib/Driver/Driver.cpp vendor/clang/dist/lib/Driver/DriverOptions.cpp vendor/clang/dist/lib/Driver/Job.cpp vendor/clang/dist/lib/Driver/Multilib.cpp vendor/clang/dist/lib/Driver/SanitizerArgs.cpp vendor/clang/dist/lib/Driver/ToolChain.cpp vendor/clang/dist/lib/Format/BreakableToken.cpp vendor/clang/dist/lib/Format/BreakableToken.h vendor/clang/dist/lib/Format/CMakeLists.txt vendor/clang/dist/lib/Format/ContinuationIndenter.cpp vendor/clang/dist/lib/Format/ContinuationIndenter.h vendor/clang/dist/lib/Format/Format.cpp vendor/clang/dist/lib/Format/FormatToken.h vendor/clang/dist/lib/Format/FormatTokenLexer.cpp vendor/clang/dist/lib/Format/FormatTokenLexer.h vendor/clang/dist/lib/Format/TokenAnnotator.cpp vendor/clang/dist/lib/Format/TokenAnnotator.h vendor/clang/dist/lib/Format/UnwrappedLineFormatter.cpp vendor/clang/dist/lib/Format/UnwrappedLineFormatter.h vendor/clang/dist/lib/Format/UnwrappedLineParser.cpp vendor/clang/dist/lib/Format/UnwrappedLineParser.h vendor/clang/dist/lib/Format/WhitespaceManager.cpp vendor/clang/dist/lib/Format/WhitespaceManager.h vendor/clang/dist/lib/Frontend/ASTConsumers.cpp vendor/clang/dist/lib/Frontend/ASTUnit.cpp vendor/clang/dist/lib/Frontend/CompilerInstance.cpp vendor/clang/dist/lib/Frontend/CompilerInvocation.cpp vendor/clang/dist/lib/Frontend/FrontendAction.cpp vendor/clang/dist/lib/Frontend/FrontendActions.cpp vendor/clang/dist/lib/Frontend/InitPreprocessor.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteMacros.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteModernObjC.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteObjC.cpp vendor/clang/dist/lib/FrontendTool/ExecuteCompilerInvocation.cpp vendor/clang/dist/lib/Headers/CMakeLists.txt vendor/clang/dist/lib/Headers/altivec.h vendor/clang/dist/lib/Headers/avx2intrin.h vendor/clang/dist/lib/Headers/avx512bwintrin.h vendor/clang/dist/lib/Headers/avx512dqintrin.h vendor/clang/dist/lib/Headers/avx512fintrin.h vendor/clang/dist/lib/Headers/avx512vldqintrin.h vendor/clang/dist/lib/Headers/avx512vlintrin.h vendor/clang/dist/lib/Headers/avxintrin.h vendor/clang/dist/lib/Headers/emmintrin.h vendor/clang/dist/lib/Headers/f16cintrin.h vendor/clang/dist/lib/Headers/htmxlintrin.h vendor/clang/dist/lib/Headers/intrin.h vendor/clang/dist/lib/Headers/mmintrin.h vendor/clang/dist/lib/Headers/module.modulemap vendor/clang/dist/lib/Headers/opencl-c.h vendor/clang/dist/lib/Headers/pmmintrin.h vendor/clang/dist/lib/Headers/prfchwintrin.h vendor/clang/dist/lib/Headers/smmintrin.h vendor/clang/dist/lib/Headers/stdarg.h vendor/clang/dist/lib/Headers/tgmath.h vendor/clang/dist/lib/Headers/x86intrin.h vendor/clang/dist/lib/Headers/xmmintrin.h vendor/clang/dist/lib/Headers/xopintrin.h vendor/clang/dist/lib/Index/CMakeLists.txt vendor/clang/dist/lib/Index/CommentToXML.cpp vendor/clang/dist/lib/Index/IndexBody.cpp vendor/clang/dist/lib/Index/IndexDecl.cpp vendor/clang/dist/lib/Index/IndexSymbol.cpp vendor/clang/dist/lib/Index/IndexTypeSourceInfo.cpp vendor/clang/dist/lib/Index/IndexingAction.cpp vendor/clang/dist/lib/Index/IndexingContext.cpp vendor/clang/dist/lib/Index/IndexingContext.h vendor/clang/dist/lib/Index/USRGeneration.cpp vendor/clang/dist/lib/Lex/HeaderSearch.cpp vendor/clang/dist/lib/Lex/Lexer.cpp vendor/clang/dist/lib/Lex/ModuleMap.cpp vendor/clang/dist/lib/Lex/PPCaching.cpp vendor/clang/dist/lib/Lex/PPDirectives.cpp vendor/clang/dist/lib/Lex/PPMacroExpansion.cpp vendor/clang/dist/lib/Lex/Pragma.cpp vendor/clang/dist/lib/Lex/Preprocessor.cpp vendor/clang/dist/lib/Parse/ParseCXXInlineMethods.cpp vendor/clang/dist/lib/Parse/ParseDecl.cpp vendor/clang/dist/lib/Parse/ParseDeclCXX.cpp vendor/clang/dist/lib/Parse/ParseExpr.cpp vendor/clang/dist/lib/Parse/ParseExprCXX.cpp vendor/clang/dist/lib/Parse/ParseInit.cpp vendor/clang/dist/lib/Parse/ParseObjc.cpp vendor/clang/dist/lib/Parse/ParseOpenMP.cpp vendor/clang/dist/lib/Parse/ParsePragma.cpp vendor/clang/dist/lib/Parse/ParseStmt.cpp vendor/clang/dist/lib/Parse/ParseStmtAsm.cpp vendor/clang/dist/lib/Parse/ParseTemplate.cpp vendor/clang/dist/lib/Parse/Parser.cpp vendor/clang/dist/lib/Sema/AnalysisBasedWarnings.cpp vendor/clang/dist/lib/Sema/MultiplexExternalSemaSource.cpp vendor/clang/dist/lib/Sema/ScopeInfo.cpp vendor/clang/dist/lib/Sema/Sema.cpp vendor/clang/dist/lib/Sema/SemaAttr.cpp vendor/clang/dist/lib/Sema/SemaCUDA.cpp vendor/clang/dist/lib/Sema/SemaCXXScopeSpec.cpp vendor/clang/dist/lib/Sema/SemaCast.cpp vendor/clang/dist/lib/Sema/SemaChecking.cpp vendor/clang/dist/lib/Sema/SemaCodeComplete.cpp vendor/clang/dist/lib/Sema/SemaCoroutine.cpp vendor/clang/dist/lib/Sema/SemaDecl.cpp vendor/clang/dist/lib/Sema/SemaDeclAttr.cpp vendor/clang/dist/lib/Sema/SemaDeclCXX.cpp vendor/clang/dist/lib/Sema/SemaDeclObjC.cpp vendor/clang/dist/lib/Sema/SemaExceptionSpec.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaExprCXX.cpp vendor/clang/dist/lib/Sema/SemaExprMember.cpp vendor/clang/dist/lib/Sema/SemaExprObjC.cpp vendor/clang/dist/lib/Sema/SemaInit.cpp vendor/clang/dist/lib/Sema/SemaLambda.cpp vendor/clang/dist/lib/Sema/SemaLookup.cpp vendor/clang/dist/lib/Sema/SemaObjCProperty.cpp vendor/clang/dist/lib/Sema/SemaOpenMP.cpp vendor/clang/dist/lib/Sema/SemaOverload.cpp vendor/clang/dist/lib/Sema/SemaPseudoObject.cpp vendor/clang/dist/lib/Sema/SemaStmt.cpp vendor/clang/dist/lib/Sema/SemaStmtAsm.cpp vendor/clang/dist/lib/Sema/SemaStmtAttr.cpp vendor/clang/dist/lib/Sema/SemaTemplate.cpp vendor/clang/dist/lib/Sema/SemaTemplateDeduction.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiate.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiateDecl.cpp vendor/clang/dist/lib/Sema/SemaTemplateVariadic.cpp vendor/clang/dist/lib/Sema/SemaType.cpp vendor/clang/dist/lib/Sema/TreeTransform.h vendor/clang/dist/lib/Serialization/ASTCommon.cpp vendor/clang/dist/lib/Serialization/ASTReader.cpp vendor/clang/dist/lib/Serialization/ASTReaderDecl.cpp vendor/clang/dist/lib/Serialization/ASTReaderStmt.cpp vendor/clang/dist/lib/Serialization/ASTWriter.cpp vendor/clang/dist/lib/Serialization/ASTWriterDecl.cpp vendor/clang/dist/lib/Serialization/ASTWriterStmt.cpp vendor/clang/dist/lib/Serialization/GeneratePCH.cpp vendor/clang/dist/lib/Serialization/GlobalModuleIndex.cpp vendor/clang/dist/lib/Serialization/Module.cpp vendor/clang/dist/lib/Serialization/ModuleManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/Checkers/CStringChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CloneChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/IteratorPastEndChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MallocChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCPropertyChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ValistChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/Core/CallEvent.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngine.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngineC.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/MemRegion.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ProgramState.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RegionStore.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/Store.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp vendor/clang/dist/lib/Tooling/CMakeLists.txt vendor/clang/dist/lib/Tooling/Refactoring.cpp vendor/clang/dist/lib/Tooling/Tooling.cpp vendor/clang/dist/test/ARCMT/lit.local.cfg vendor/clang/dist/test/ASTMerge/asm/Inputs/asm-function.cpp vendor/clang/dist/test/ASTMerge/asm/test.cpp vendor/clang/dist/test/ASTMerge/exprs-cpp/Inputs/exprs3.cpp vendor/clang/dist/test/ASTMerge/exprs-cpp/test.cpp vendor/clang/dist/test/ASTMerge/struct/Inputs/struct1.c vendor/clang/dist/test/ASTMerge/struct/Inputs/struct2.c vendor/clang/dist/test/ASTMerge/struct/test.c vendor/clang/dist/test/Analysis/CFContainers-invalid.c vendor/clang/dist/test/Analysis/CFContainers.mm vendor/clang/dist/test/Analysis/CFDateGC.m vendor/clang/dist/test/Analysis/CFNumber.c vendor/clang/dist/test/Analysis/CFRetainRelease_NSAssertionHandler.m vendor/clang/dist/test/Analysis/CGColorSpace.c vendor/clang/dist/test/Analysis/CheckNSError.m vendor/clang/dist/test/Analysis/DeallocMissingRelease.m vendor/clang/dist/test/Analysis/DeallocUseAfterFreeErrors.m vendor/clang/dist/test/Analysis/DynamicTypePropagation.m vendor/clang/dist/test/Analysis/Malloc+MismatchedDeallocator+NewDelete.cpp vendor/clang/dist/test/Analysis/Malloc+MismatchedDeallocator_intersections.cpp vendor/clang/dist/test/Analysis/Malloc+NewDelete_intersections.cpp vendor/clang/dist/test/Analysis/MemRegion.cpp vendor/clang/dist/test/Analysis/MismatchedDeallocator-checker-test.mm vendor/clang/dist/test/Analysis/MismatchedDeallocator-path-notes.cpp vendor/clang/dist/test/Analysis/MissingDealloc.m vendor/clang/dist/test/Analysis/NSContainers.m vendor/clang/dist/test/Analysis/NSPanel.m vendor/clang/dist/test/Analysis/NSString.m vendor/clang/dist/test/Analysis/NSWindow.m vendor/clang/dist/test/Analysis/NewDelete+MismatchedDeallocator_intersections.cpp vendor/clang/dist/test/Analysis/NewDelete-checker-test.cpp vendor/clang/dist/test/Analysis/NewDelete-custom.cpp vendor/clang/dist/test/Analysis/NewDelete-intersections.mm vendor/clang/dist/test/Analysis/NewDelete-path-notes.cpp vendor/clang/dist/test/Analysis/NewDelete-variadic.cpp vendor/clang/dist/test/Analysis/NewDeleteLeaks-PR18394.cpp vendor/clang/dist/test/Analysis/NewDeleteLeaks-PR19102.cpp vendor/clang/dist/test/Analysis/NoReturn.m vendor/clang/dist/test/Analysis/OSAtomic_mac.cpp vendor/clang/dist/test/Analysis/ObjCProperties.m vendor/clang/dist/test/Analysis/ObjCPropertiesSyntaxChecks.m vendor/clang/dist/test/Analysis/ObjCRetSigs.m vendor/clang/dist/test/Analysis/PR12905.c vendor/clang/dist/test/Analysis/PR24184.cpp vendor/clang/dist/test/Analysis/PR2599.m vendor/clang/dist/test/Analysis/PR2978.m vendor/clang/dist/test/Analysis/PR3991.m vendor/clang/dist/test/Analysis/PR7218.c vendor/clang/dist/test/Analysis/additive-folding-range-constraints.c vendor/clang/dist/test/Analysis/additive-folding.cpp vendor/clang/dist/test/Analysis/analyzeOneFunction.m vendor/clang/dist/test/Analysis/analyzer-checker-config.c vendor/clang/dist/test/Analysis/analyzer-config.c vendor/clang/dist/test/Analysis/analyzer-config.cpp vendor/clang/dist/test/Analysis/analyzer-display-progress.cpp vendor/clang/dist/test/Analysis/analyzer-display-progress.m vendor/clang/dist/test/Analysis/analyzer-enabled-checkers.c vendor/clang/dist/test/Analysis/analyzer-stats.c vendor/clang/dist/test/Analysis/array-struct-region.c vendor/clang/dist/test/Analysis/array-struct-region.cpp vendor/clang/dist/test/Analysis/array-struct.c vendor/clang/dist/test/Analysis/atomics.c vendor/clang/dist/test/Analysis/auto-obj-dtors-cfg-output.cpp vendor/clang/dist/test/Analysis/base-init.cpp vendor/clang/dist/test/Analysis/bitwise-ops.c vendor/clang/dist/test/Analysis/block-in-critical-section.cpp vendor/clang/dist/test/Analysis/blocks-no-inline.c vendor/clang/dist/test/Analysis/blocks.m vendor/clang/dist/test/Analysis/blocks.mm vendor/clang/dist/test/Analysis/bool-assignment.c vendor/clang/dist/test/Analysis/bstring.c vendor/clang/dist/test/Analysis/bstring.cpp vendor/clang/dist/test/Analysis/bug_hash_test.cpp vendor/clang/dist/test/Analysis/bug_hash_test.m vendor/clang/dist/test/Analysis/builtin-functions.cpp vendor/clang/dist/test/Analysis/call-invalidation.cpp vendor/clang/dist/test/Analysis/cast-to-struct.cpp vendor/clang/dist/test/Analysis/castexpr-callback.c vendor/clang/dist/test/Analysis/casts.c vendor/clang/dist/test/Analysis/casts.cpp vendor/clang/dist/test/Analysis/casts.m vendor/clang/dist/test/Analysis/cfg.cpp vendor/clang/dist/test/Analysis/cfref_PR2519.c vendor/clang/dist/test/Analysis/cfref_rdar6080742.c vendor/clang/dist/test/Analysis/check-deserialization.cpp vendor/clang/dist/test/Analysis/checker-plugins.c vendor/clang/dist/test/Analysis/chroot.c vendor/clang/dist/test/Analysis/comparison-implicit-casts.cpp vendor/clang/dist/test/Analysis/complex-init-list.cpp vendor/clang/dist/test/Analysis/complex.c vendor/clang/dist/test/Analysis/concrete-address.c vendor/clang/dist/test/Analysis/conditional-operator.cpp vendor/clang/dist/test/Analysis/conditional-path-notes.c vendor/clang/dist/test/Analysis/const-method-call.cpp vendor/clang/dist/test/Analysis/constant-folding.c vendor/clang/dist/test/Analysis/conversion.c vendor/clang/dist/test/Analysis/copypaste/asm.cpp vendor/clang/dist/test/Analysis/copypaste/attributes.cpp vendor/clang/dist/test/Analysis/copypaste/blocks.cpp vendor/clang/dist/test/Analysis/copypaste/call.cpp vendor/clang/dist/test/Analysis/copypaste/catch.cpp vendor/clang/dist/test/Analysis/copypaste/delete.cpp vendor/clang/dist/test/Analysis/copypaste/dependent-exist.cpp vendor/clang/dist/test/Analysis/copypaste/expr-types.cpp vendor/clang/dist/test/Analysis/copypaste/fold.cpp vendor/clang/dist/test/Analysis/copypaste/function-try-block.cpp vendor/clang/dist/test/Analysis/copypaste/functions.cpp vendor/clang/dist/test/Analysis/copypaste/generic.c vendor/clang/dist/test/Analysis/copypaste/labels.cpp vendor/clang/dist/test/Analysis/copypaste/lambda.cpp vendor/clang/dist/test/Analysis/copypaste/macro-complexity.cpp vendor/clang/dist/test/Analysis/copypaste/macros.cpp vendor/clang/dist/test/Analysis/copypaste/objc-methods.m vendor/clang/dist/test/Analysis/copypaste/plist-diagnostics-notes-as-events.cpp vendor/clang/dist/test/Analysis/copypaste/plist-diagnostics.cpp vendor/clang/dist/test/Analysis/copypaste/sub-sequences.cpp vendor/clang/dist/test/Analysis/copypaste/suspicious-clones.cpp vendor/clang/dist/test/Analysis/copypaste/text-diagnostics.cpp vendor/clang/dist/test/Analysis/coverage.c vendor/clang/dist/test/Analysis/crash-trace.c vendor/clang/dist/test/Analysis/cstring-syntax-cxx.cpp vendor/clang/dist/test/Analysis/cstring-syntax.c vendor/clang/dist/test/Analysis/ctor.mm vendor/clang/dist/test/Analysis/cxx-crashes.cpp vendor/clang/dist/test/Analysis/cxx-for-range.cpp vendor/clang/dist/test/Analysis/cxx-method-names.cpp vendor/clang/dist/test/Analysis/cxx11-crashes.cpp vendor/clang/dist/test/Analysis/dead-stores.c vendor/clang/dist/test/Analysis/dead-stores.cpp vendor/clang/dist/test/Analysis/dead-stores.m vendor/clang/dist/test/Analysis/debug-CallGraph.c vendor/clang/dist/test/Analysis/default-analyze.m vendor/clang/dist/test/Analysis/default-diagnostic-visitors.c vendor/clang/dist/test/Analysis/delayed-template-parsing-crash.cpp vendor/clang/dist/test/Analysis/delegates.m vendor/clang/dist/test/Analysis/derived-to-base.cpp vendor/clang/dist/test/Analysis/designated-initializer.c vendor/clang/dist/test/Analysis/diagnostics/deref-track-symbolic-region.c vendor/clang/dist/test/Analysis/diagnostics/deref-track-symbolic-region.cpp vendor/clang/dist/test/Analysis/diagnostics/diag-cross-file-boundaries.c vendor/clang/dist/test/Analysis/diagnostics/explicit-suppression.cpp vendor/clang/dist/test/Analysis/diagnostics/false-positive-suppression.c vendor/clang/dist/test/Analysis/diagnostics/implicit-cxx-std-suppression.cpp vendor/clang/dist/test/Analysis/diagnostics/macros.cpp vendor/clang/dist/test/Analysis/diagnostics/macros.m vendor/clang/dist/test/Analysis/diagnostics/no-prune-paths.c vendor/clang/dist/test/Analysis/diagnostics/plist-diagnostics-include-check.cpp vendor/clang/dist/test/Analysis/diagnostics/report-issues-within-main-file.cpp vendor/clang/dist/test/Analysis/diagnostics/shortest-path-suppression.c vendor/clang/dist/test/Analysis/diagnostics/text-diagnostics.c vendor/clang/dist/test/Analysis/diagnostics/undef-value-caller.c vendor/clang/dist/test/Analysis/diagnostics/undef-value-param.c vendor/clang/dist/test/Analysis/diagnostics/undef-value-param.m vendor/clang/dist/test/Analysis/disable-all-checks.c vendor/clang/dist/test/Analysis/dispatch-once.m vendor/clang/dist/test/Analysis/div-zero.cpp vendor/clang/dist/test/Analysis/division-by-zero.c vendor/clang/dist/test/Analysis/domtest.c vendor/clang/dist/test/Analysis/dtor-cxx11.cpp vendor/clang/dist/test/Analysis/dtor.cpp vendor/clang/dist/test/Analysis/dtors-in-dtor-cfg-output.cpp vendor/clang/dist/test/Analysis/dynamic-cast.cpp vendor/clang/dist/test/Analysis/dynamic_type_check.m vendor/clang/dist/test/Analysis/edges-new.mm vendor/clang/dist/test/Analysis/elementtype.c vendor/clang/dist/test/Analysis/engine/replay-without-inlining.c vendor/clang/dist/test/Analysis/enum.cpp vendor/clang/dist/test/Analysis/exceptions.mm vendor/clang/dist/test/Analysis/exercise-ps.c vendor/clang/dist/test/Analysis/explain-svals.cpp vendor/clang/dist/test/Analysis/explain-svals.m vendor/clang/dist/test/Analysis/expr-inspection.c vendor/clang/dist/test/Analysis/fields.c vendor/clang/dist/test/Analysis/free.c vendor/clang/dist/test/Analysis/func.c vendor/clang/dist/test/Analysis/generics.m vendor/clang/dist/test/Analysis/global-region-invalidation.c vendor/clang/dist/test/Analysis/global_region_invalidation.mm vendor/clang/dist/test/Analysis/gtest.cpp vendor/clang/dist/test/Analysis/html-diags-multifile.c vendor/clang/dist/test/Analysis/html-diags.c vendor/clang/dist/test/Analysis/identical-expressions.cpp vendor/clang/dist/test/Analysis/index-type.c vendor/clang/dist/test/Analysis/initializer.cpp vendor/clang/dist/test/Analysis/initializers-cfg-output.cpp vendor/clang/dist/test/Analysis/inline-not-supported.c vendor/clang/dist/test/Analysis/inline-plist.c vendor/clang/dist/test/Analysis/inline-unique-reports.c vendor/clang/dist/test/Analysis/inline.c vendor/clang/dist/test/Analysis/inline.cpp vendor/clang/dist/test/Analysis/inline2.c vendor/clang/dist/test/Analysis/inline3.c vendor/clang/dist/test/Analysis/inline4.c vendor/clang/dist/test/Analysis/inlining/DynDispatchBifurcate.m vendor/clang/dist/test/Analysis/inlining/InlineObjCClassMethod.m vendor/clang/dist/test/Analysis/inlining/InlineObjCInstanceMethod.m vendor/clang/dist/test/Analysis/inlining/ObjCDynTypePopagation.m vendor/clang/dist/test/Analysis/inlining/ObjCImproperDynamictallyDetectableCast.m vendor/clang/dist/test/Analysis/inlining/RetainCountExamples.m vendor/clang/dist/test/Analysis/inlining/analysis-order.c vendor/clang/dist/test/Analysis/inlining/assume-super-init-does-not-return-nil.m vendor/clang/dist/test/Analysis/inlining/containers.cpp vendor/clang/dist/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp vendor/clang/dist/test/Analysis/inlining/eager-reclamation-path-notes.c vendor/clang/dist/test/Analysis/inlining/eager-reclamation-path-notes.cpp vendor/clang/dist/test/Analysis/inlining/false-positive-suppression.c vendor/clang/dist/test/Analysis/inlining/false-positive-suppression.cpp vendor/clang/dist/test/Analysis/inlining/false-positive-suppression.m vendor/clang/dist/test/Analysis/inlining/inline-defensive-checks.c vendor/clang/dist/test/Analysis/inlining/inline-defensive-checks.cpp vendor/clang/dist/test/Analysis/inlining/inline-defensive-checks.m vendor/clang/dist/test/Analysis/inlining/path-notes.c vendor/clang/dist/test/Analysis/inlining/path-notes.cpp vendor/clang/dist/test/Analysis/inlining/path-notes.m vendor/clang/dist/test/Analysis/inlining/retain-count-self-init.m vendor/clang/dist/test/Analysis/inlining/stl.cpp vendor/clang/dist/test/Analysis/inlining/test-always-inline-size-option.c vendor/clang/dist/test/Analysis/inlining/test_objc_inlining_option.m vendor/clang/dist/test/Analysis/iterator-past-end.cpp vendor/clang/dist/test/Analysis/ivars.m vendor/clang/dist/test/Analysis/keychainAPI-diagnostic-visitor.m vendor/clang/dist/test/Analysis/keychainAPI.m vendor/clang/dist/test/Analysis/kmalloc-linux.c vendor/clang/dist/test/Analysis/lambda-notes.cpp vendor/clang/dist/test/Analysis/lambdas-generalized-capture.cpp vendor/clang/dist/test/Analysis/lambdas.cpp vendor/clang/dist/test/Analysis/lambdas.mm vendor/clang/dist/test/Analysis/lifetime-extension.cpp vendor/clang/dist/test/Analysis/lit.local.cfg vendor/clang/dist/test/Analysis/live-variables.cpp vendor/clang/dist/test/Analysis/live-variables.m vendor/clang/dist/test/Analysis/localization-aggressive.m vendor/clang/dist/test/Analysis/localization.m vendor/clang/dist/test/Analysis/logical-ops.c vendor/clang/dist/test/Analysis/loop-widening.c vendor/clang/dist/test/Analysis/lvalue.cpp vendor/clang/dist/test/Analysis/malloc-annotations.c vendor/clang/dist/test/Analysis/malloc-custom.c vendor/clang/dist/test/Analysis/malloc-interprocedural.c vendor/clang/dist/test/Analysis/malloc-overflow.c vendor/clang/dist/test/Analysis/malloc-overflow.cpp vendor/clang/dist/test/Analysis/malloc-overflow2.c vendor/clang/dist/test/Analysis/malloc-plist.c vendor/clang/dist/test/Analysis/malloc-protoype.c vendor/clang/dist/test/Analysis/malloc-sizeof.c vendor/clang/dist/test/Analysis/malloc-sizeof.cpp vendor/clang/dist/test/Analysis/malloc-three-arg.c vendor/clang/dist/test/Analysis/malloc.c vendor/clang/dist/test/Analysis/malloc.cpp vendor/clang/dist/test/Analysis/malloc.m vendor/clang/dist/test/Analysis/malloc.mm vendor/clang/dist/test/Analysis/max-nodes-suppress-on-sink.c vendor/clang/dist/test/Analysis/member-expr.cpp vendor/clang/dist/test/Analysis/method-call-intra-p.cpp vendor/clang/dist/test/Analysis/method-call-path-notes.cpp vendor/clang/dist/test/Analysis/method-call.cpp vendor/clang/dist/test/Analysis/misc-ps-64.m vendor/clang/dist/test/Analysis/misc-ps-arm.m vendor/clang/dist/test/Analysis/misc-ps-cxx0x.cpp vendor/clang/dist/test/Analysis/misc-ps-eager-assume.m vendor/clang/dist/test/Analysis/misc-ps-ranges.m vendor/clang/dist/test/Analysis/misc-ps-region-store-i386.m vendor/clang/dist/test/Analysis/misc-ps-region-store-x86_64.m vendor/clang/dist/test/Analysis/misc-ps-region-store.cpp vendor/clang/dist/test/Analysis/misc-ps-region-store.m vendor/clang/dist/test/Analysis/misc-ps-region-store.mm vendor/clang/dist/test/Analysis/misc-ps.c vendor/clang/dist/test/Analysis/misc-ps.m vendor/clang/dist/test/Analysis/model-file.cpp vendor/clang/dist/test/Analysis/mpichecker.cpp vendor/clang/dist/test/Analysis/mpicheckernotes.cpp vendor/clang/dist/test/Analysis/new-with-exceptions.cpp vendor/clang/dist/test/Analysis/new.cpp vendor/clang/dist/test/Analysis/nil-receiver-undefined-larger-than-voidptr-ret-region.m vendor/clang/dist/test/Analysis/nil-receiver-undefined-larger-than-voidptr-ret.m vendor/clang/dist/test/Analysis/no-exit-cfg.c vendor/clang/dist/test/Analysis/no-outofbounds.c vendor/clang/dist/test/Analysis/no-unreachable-dtors.cpp vendor/clang/dist/test/Analysis/non-diagnosable-assumptions.c vendor/clang/dist/test/Analysis/nonnull.m vendor/clang/dist/test/Analysis/null-deref-path-notes.m vendor/clang/dist/test/Analysis/null-deref-ps-region.c vendor/clang/dist/test/Analysis/null-deref-ps.c vendor/clang/dist/test/Analysis/nullability-no-arc.mm vendor/clang/dist/test/Analysis/nullability.c vendor/clang/dist/test/Analysis/nullability.mm vendor/clang/dist/test/Analysis/nullability_nullonly.mm vendor/clang/dist/test/Analysis/nullptr.cpp vendor/clang/dist/test/Analysis/number-object-conversion.c vendor/clang/dist/test/Analysis/number-object-conversion.cpp vendor/clang/dist/test/Analysis/number-object-conversion.m vendor/clang/dist/test/Analysis/objc-arc.m vendor/clang/dist/test/Analysis/objc-bool.m vendor/clang/dist/test/Analysis/objc-boxing.m vendor/clang/dist/test/Analysis/objc-for.m vendor/clang/dist/test/Analysis/objc-message.m vendor/clang/dist/test/Analysis/objc-method-coverage.m vendor/clang/dist/test/Analysis/objc-properties.m vendor/clang/dist/test/Analysis/objc-radar17039661.m vendor/clang/dist/test/Analysis/objc-string.mm vendor/clang/dist/test/Analysis/objc-subscript.m vendor/clang/dist/test/Analysis/objc/direct-ivar-assignment-in-annotated-functions.m vendor/clang/dist/test/Analysis/objc_invalidation.m vendor/clang/dist/test/Analysis/operator-calls.cpp vendor/clang/dist/test/Analysis/out-of-bounds-new.cpp vendor/clang/dist/test/Analysis/out-of-bounds.c vendor/clang/dist/test/Analysis/outofbound-notwork.c vendor/clang/dist/test/Analysis/outofbound.c vendor/clang/dist/test/Analysis/override-werror.c vendor/clang/dist/test/Analysis/padding_c.c vendor/clang/dist/test/Analysis/padding_cpp.cpp vendor/clang/dist/test/Analysis/padding_message.cpp vendor/clang/dist/test/Analysis/plist-html-macros.c vendor/clang/dist/test/Analysis/plist-macros.cpp vendor/clang/dist/test/Analysis/plist-output-alternate.m vendor/clang/dist/test/Analysis/plist-output.m vendor/clang/dist/test/Analysis/pointer-to-member.cpp vendor/clang/dist/test/Analysis/pr22954.c vendor/clang/dist/test/Analysis/pr4209.m vendor/clang/dist/test/Analysis/pr_2542_rdar_6793404.m vendor/clang/dist/test/Analysis/pr_4164.c vendor/clang/dist/test/Analysis/properties.m vendor/clang/dist/test/Analysis/properties.mm vendor/clang/dist/test/Analysis/pthreadlock.c vendor/clang/dist/test/Analysis/ptr-arith.c vendor/clang/dist/test/Analysis/ptr-arith.cpp vendor/clang/dist/test/Analysis/qt_malloc.cpp vendor/clang/dist/test/Analysis/range_casts.c vendor/clang/dist/test/Analysis/rdar-6442306-1.m vendor/clang/dist/test/Analysis/rdar-6540084.m vendor/clang/dist/test/Analysis/rdar-6541136-region.c vendor/clang/dist/test/Analysis/rdar-6562655.m vendor/clang/dist/test/Analysis/rdar-6600344-nil-receiver-undefined-struct-ret.m vendor/clang/dist/test/Analysis/rdar-7168531.m vendor/clang/dist/test/Analysis/redefined_system.c vendor/clang/dist/test/Analysis/refcnt_naming.m vendor/clang/dist/test/Analysis/reference.cpp vendor/clang/dist/test/Analysis/reference.mm vendor/clang/dist/test/Analysis/region-1.m vendor/clang/dist/test/Analysis/region-store.c vendor/clang/dist/test/Analysis/region-store.cpp vendor/clang/dist/test/Analysis/reinterpret-cast.cpp vendor/clang/dist/test/Analysis/retain-release-arc.m vendor/clang/dist/test/Analysis/retain-release-cache-out.m vendor/clang/dist/test/Analysis/retain-release-cf-audited.m vendor/clang/dist/test/Analysis/retain-release-gc-only.m vendor/clang/dist/test/Analysis/retain-release-inline.m vendor/clang/dist/test/Analysis/retain-release-path-notes-gc.m vendor/clang/dist/test/Analysis/retain-release-path-notes.m vendor/clang/dist/test/Analysis/retain-release-region-store.m vendor/clang/dist/test/Analysis/retain-release.m vendor/clang/dist/test/Analysis/retain-release.mm vendor/clang/dist/test/Analysis/return-ptr-range.cpp vendor/clang/dist/test/Analysis/security-syntax-checks-no-emit.c vendor/clang/dist/test/Analysis/security-syntax-checks.m vendor/clang/dist/test/Analysis/self-assign.cpp vendor/clang/dist/test/Analysis/self-init.m vendor/clang/dist/test/Analysis/shallow-mode.m vendor/clang/dist/test/Analysis/simple-stream-checks.c vendor/clang/dist/test/Analysis/sizeofpointer.c vendor/clang/dist/test/Analysis/stack-addr-ps.c vendor/clang/dist/test/Analysis/stack-addr-ps.cpp vendor/clang/dist/test/Analysis/stack-block-returned.cpp vendor/clang/dist/test/Analysis/stackaddrleak.c vendor/clang/dist/test/Analysis/static_local.m vendor/clang/dist/test/Analysis/stats.c vendor/clang/dist/test/Analysis/std-c-library-functions.c vendor/clang/dist/test/Analysis/std-c-library-functions.cpp vendor/clang/dist/test/Analysis/stream.c vendor/clang/dist/test/Analysis/string-fail.c vendor/clang/dist/test/Analysis/string.c vendor/clang/dist/test/Analysis/superclass.m vendor/clang/dist/test/Analysis/svalbuilder-logic.c vendor/clang/dist/test/Analysis/switch-case.c vendor/clang/dist/test/Analysis/symbol-reaper.c vendor/clang/dist/test/Analysis/taint-generic.c vendor/clang/dist/test/Analysis/taint-tester.c vendor/clang/dist/test/Analysis/taint-tester.cpp vendor/clang/dist/test/Analysis/taint-tester.m vendor/clang/dist/test/Analysis/temp-obj-dtors-cfg-output.cpp vendor/clang/dist/test/Analysis/templates.cpp vendor/clang/dist/test/Analysis/temporaries.cpp vendor/clang/dist/test/Analysis/test-after-div-zero.c vendor/clang/dist/test/Analysis/test-include-cpp.cpp vendor/clang/dist/test/Analysis/test-include.c vendor/clang/dist/test/Analysis/test-objc-non-nil-return-value-checker.m vendor/clang/dist/test/Analysis/test-variably-modified-types.c vendor/clang/dist/test/Analysis/traversal-algorithm.mm vendor/clang/dist/test/Analysis/traversal-begin-end-function.c vendor/clang/dist/test/Analysis/traversal-path-unification.c vendor/clang/dist/test/Analysis/ubigraph-viz.cpp vendor/clang/dist/test/Analysis/undef-buffers.c vendor/clang/dist/test/Analysis/uninit-const.c vendor/clang/dist/test/Analysis/uninit-const.cpp vendor/clang/dist/test/Analysis/uninit-msg-expr.m vendor/clang/dist/test/Analysis/uninit-ps-rdar6145427.m vendor/clang/dist/test/Analysis/uninit-vals-ps-region.m vendor/clang/dist/test/Analysis/uninit-vals-ps.c vendor/clang/dist/test/Analysis/uninit-vals-union.c vendor/clang/dist/test/Analysis/uninit-vals.cpp vendor/clang/dist/test/Analysis/uninit-vals.m vendor/clang/dist/test/Analysis/unions-region.m vendor/clang/dist/test/Analysis/unions.cpp vendor/clang/dist/test/Analysis/unix-api.c vendor/clang/dist/test/Analysis/unix-api.cpp vendor/clang/dist/test/Analysis/unix-fns.c vendor/clang/dist/test/Analysis/unreachable-code-path.c vendor/clang/dist/test/Analysis/unused-ivars.m vendor/clang/dist/test/Analysis/valist-uninitialized.c vendor/clang/dist/test/Analysis/valist-unterminated.c vendor/clang/dist/test/Analysis/variadic-method-types.m vendor/clang/dist/test/Analysis/vfork.c vendor/clang/dist/test/Analysis/virtualcall.cpp vendor/clang/dist/test/Analysis/vla.c vendor/clang/dist/test/Analysis/weak-functions.c vendor/clang/dist/test/CMakeLists.txt vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual/p2.cpp vendor/clang/dist/test/CXX/class.derived/class.abstract/p16.cpp vendor/clang/dist/test/CXX/class.derived/class.member.lookup/p6.cpp vendor/clang/dist/test/CXX/class.derived/class.member.lookup/p7.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.deprecated/p1.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-1y.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p4.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p5.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-1y.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.list/p3.cpp vendor/clang/dist/test/CXX/drs/dr10xx.cpp vendor/clang/dist/test/CXX/drs/dr12xx.cpp vendor/clang/dist/test/CXX/drs/dr13xx.cpp vendor/clang/dist/test/CXX/drs/dr16xx.cpp vendor/clang/dist/test/CXX/drs/dr1xx.cpp vendor/clang/dist/test/CXX/drs/dr2xx.cpp vendor/clang/dist/test/CXX/drs/dr3xx.cpp vendor/clang/dist/test/CXX/drs/dr4xx.cpp vendor/clang/dist/test/CXX/drs/dr5xx.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p12.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p13.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p16.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p18.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p19.cpp vendor/clang/dist/test/CXX/over/over.match/over.match.best/p1.cpp vendor/clang/dist/test/CXX/special/class.dtor/p10-0x.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.variadic/sizeofpack.cpp vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p3-0x.cpp vendor/clang/dist/test/CXX/temp/temp.res/temp.local/p1.cpp vendor/clang/dist/test/CXX/temp/temp.spec/cxx1y-variable-template-no-body.cpp vendor/clang/dist/test/CodeCompletion/member-access.cpp vendor/clang/dist/test/CodeCompletion/ordinary-name-cxx11.cpp vendor/clang/dist/test/CodeGen/2006-05-19-SingleEltReturn.c vendor/clang/dist/test/CodeGen/aarch64-neon-intrinsics.c vendor/clang/dist/test/CodeGen/address-space.c vendor/clang/dist/test/CodeGen/alloc-size.c vendor/clang/dist/test/CodeGen/altivec.c vendor/clang/dist/test/CodeGen/avx-builtins.c vendor/clang/dist/test/CodeGen/avx2-builtins.c vendor/clang/dist/test/CodeGen/avx512-reduceMinMaxIntrin.c vendor/clang/dist/test/CodeGen/avx512bw-builtins.c vendor/clang/dist/test/CodeGen/avx512dq-builtins.c vendor/clang/dist/test/CodeGen/avx512f-builtins.c vendor/clang/dist/test/CodeGen/avx512pf-builtins.c vendor/clang/dist/test/CodeGen/avx512vl-builtins.c vendor/clang/dist/test/CodeGen/avx512vlbw-builtins.c vendor/clang/dist/test/CodeGen/avx512vldq-builtins.c vendor/clang/dist/test/CodeGen/blocks.c vendor/clang/dist/test/CodeGen/builtin-clflushopt.c vendor/clang/dist/test/CodeGen/builtins-mips-msa-error.c vendor/clang/dist/test/CodeGen/builtins-mips-msa.c vendor/clang/dist/test/CodeGen/builtins-ppc-altivec.c vendor/clang/dist/test/CodeGen/builtins-ppc-crypto-disabled.c vendor/clang/dist/test/CodeGen/builtins-ppc-crypto.c vendor/clang/dist/test/CodeGen/builtins-ppc-error.c vendor/clang/dist/test/CodeGen/builtins-ppc-htm.c vendor/clang/dist/test/CodeGen/builtins-ppc-p8vector.c vendor/clang/dist/test/CodeGen/builtins-ppc-p9vector.c vendor/clang/dist/test/CodeGen/builtins-ppc-quadword.c vendor/clang/dist/test/CodeGen/builtins-ppc-vsx.c vendor/clang/dist/test/CodeGen/builtins-wasm.c vendor/clang/dist/test/CodeGen/builtins-x86.c vendor/clang/dist/test/CodeGen/catch-undef-behavior.c vendor/clang/dist/test/CodeGen/cfi-check-fail.c vendor/clang/dist/test/CodeGen/cleanup-destslot-simple.c vendor/clang/dist/test/CodeGen/compound-assign-overflow.c vendor/clang/dist/test/CodeGen/ffp-contract-option.c vendor/clang/dist/test/CodeGen/function-sections.c vendor/clang/dist/test/CodeGen/libcall-declarations.c vendor/clang/dist/test/CodeGen/lifetime-asan.c vendor/clang/dist/test/CodeGen/lifetime2.c vendor/clang/dist/test/CodeGen/mmx-builtins.c vendor/clang/dist/test/CodeGen/ms-declspecs.c vendor/clang/dist/test/CodeGen/ms-inline-asm.c vendor/clang/dist/test/CodeGen/ms-intrinsics.c vendor/clang/dist/test/CodeGen/ms-x86-intrinsics.c vendor/clang/dist/test/CodeGen/object-size.c vendor/clang/dist/test/CodeGen/object-size.cpp vendor/clang/dist/test/CodeGen/pass-object-size.c vendor/clang/dist/test/CodeGen/ppc64-align-struct.c vendor/clang/dist/test/CodeGen/ppc64-complex-parms.c vendor/clang/dist/test/CodeGen/ppc64-vector.c vendor/clang/dist/test/CodeGen/ppc64le-aggregates.c vendor/clang/dist/test/CodeGen/sanitize-init-order.cpp vendor/clang/dist/test/CodeGen/sanitize-recover.c vendor/clang/dist/test/CodeGen/sanitize-thread-no-checking-at-run-time.m vendor/clang/dist/test/CodeGen/sse-builtins.c vendor/clang/dist/test/CodeGen/sse2-builtins.c vendor/clang/dist/test/CodeGen/sse41-builtins.c vendor/clang/dist/test/CodeGen/temporary-lifetime-exceptions.cpp vendor/clang/dist/test/CodeGen/temporary-lifetime.cpp vendor/clang/dist/test/CodeGen/transparent-union.c vendor/clang/dist/test/CodeGen/unsigned-promotion.c vendor/clang/dist/test/CodeGen/xop-builtins.c vendor/clang/dist/test/CodeGen/xray-attributes-supported.cpp vendor/clang/dist/test/CodeGen/zvector.c vendor/clang/dist/test/CodeGenCUDA/fp-contract.cu vendor/clang/dist/test/CodeGenCXX/cfi-ms-rtti.cpp vendor/clang/dist/test/CodeGenCXX/constructors.cpp vendor/clang/dist/test/CodeGenCXX/cxx11-initializer-aggregate.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-use-after-free.cpp vendor/clang/dist/test/CodeGenCXX/destructors.cpp vendor/clang/dist/test/CodeGenCXX/dllexport.cpp vendor/clang/dist/test/CodeGenCXX/dllimport.cpp vendor/clang/dist/test/CodeGenCXX/dynamic-cast-hint.cpp vendor/clang/dist/test/CodeGenCXX/exceptions-cxx-new.cpp vendor/clang/dist/test/CodeGenCXX/exceptions-seh.cpp vendor/clang/dist/test/CodeGenCXX/explicit-instantiation.cpp vendor/clang/dist/test/CodeGenCXX/float128-declarations.cpp vendor/clang/dist/test/CodeGenCXX/global-init.cpp vendor/clang/dist/test/CodeGenCXX/inheriting-constructor.cpp vendor/clang/dist/test/CodeGenCXX/linetable-cleanup.cpp vendor/clang/dist/test/CodeGenCXX/lpad-linetable.cpp vendor/clang/dist/test/CodeGenCXX/mangle-unnamed.cpp vendor/clang/dist/test/CodeGenCXX/mangle.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-structors.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-throw.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp vendor/clang/dist/test/CodeGenCXX/modules-ts.cppm vendor/clang/dist/test/CodeGenCXX/new-array-init.cpp vendor/clang/dist/test/CodeGenCXX/nrvo.cpp vendor/clang/dist/test/CodeGenCXX/optnone-class-members.cpp vendor/clang/dist/test/CodeGenCXX/optnone-def-decl.cpp vendor/clang/dist/test/CodeGenCXX/reference-init.cpp vendor/clang/dist/test/CodeGenCXX/regcall.cpp vendor/clang/dist/test/CodeGenCXX/static-init.cpp vendor/clang/dist/test/CodeGenCXX/stmtexpr.cpp vendor/clang/dist/test/CodeGenCXX/template-instantiation.cpp vendor/clang/dist/test/CodeGenCXX/type-metadata.cpp vendor/clang/dist/test/CodeGenCXX/volatile-1.cpp vendor/clang/dist/test/CodeGenCXX/volatile.cpp vendor/clang/dist/test/CodeGenCoroutines/coro-alloc.cpp vendor/clang/dist/test/CodeGenCoroutines/coro-builtins.c vendor/clang/dist/test/CodeGenObjC/arc-blocks.m vendor/clang/dist/test/CodeGenObjC/arc-linetable-autorelease.m vendor/clang/dist/test/CodeGenObjC/arc-precise-lifetime.m vendor/clang/dist/test/CodeGenObjC/arc-ternary-op.m vendor/clang/dist/test/CodeGenObjC/arc.m vendor/clang/dist/test/CodeGenObjC/exceptions.m vendor/clang/dist/test/CodeGenObjC/ubsan-bool.m vendor/clang/dist/test/CodeGenObjCXX/arc-blocks.mm vendor/clang/dist/test/CodeGenObjCXX/arc-move.mm vendor/clang/dist/test/CodeGenObjCXX/arc-references.mm vendor/clang/dist/test/CodeGenObjCXX/arc.mm vendor/clang/dist/test/CodeGenObjCXX/encode.mm vendor/clang/dist/test/CodeGenObjCXX/lambda-expressions.mm vendor/clang/dist/test/CodeGenObjCXX/literals.mm vendor/clang/dist/test/CodeGenOpenCL/address-space-constant-initializers.cl vendor/clang/dist/test/CodeGenOpenCL/address-spaces.cl vendor/clang/dist/test/CodeGenOpenCL/amdgpu-attrs.cl vendor/clang/dist/test/CodeGenOpenCL/amdgpu-nullptr.cl vendor/clang/dist/test/CodeGenOpenCL/builtins-amdgcn-vi.cl vendor/clang/dist/test/CodeGenOpenCL/builtins-amdgcn.cl vendor/clang/dist/test/CodeGenOpenCL/cl20-device-side-enqueue.cl vendor/clang/dist/test/CodeGenOpenCL/denorms-are-zero.cl vendor/clang/dist/test/CodeGenOpenCL/kernel-arg-info.cl vendor/clang/dist/test/CodeGenOpenCL/relaxed-fpmath.cl vendor/clang/dist/test/CodeGenOpenCL/sampler.cl vendor/clang/dist/test/CodeGenOpenCL/vla.cl vendor/clang/dist/test/CoverageMapping/implicit-def-in-macro.m vendor/clang/dist/test/CoverageMapping/macro-expressions.cpp vendor/clang/dist/test/CoverageMapping/objc.m vendor/clang/dist/test/CoverageMapping/unused_names.c vendor/clang/dist/test/Driver/XRay/xray-instrument-cpu.c vendor/clang/dist/test/Driver/aarch64-cpus.c vendor/clang/dist/test/Driver/arm-abi.c vendor/clang/dist/test/Driver/arm-cortex-cpus.c vendor/clang/dist/test/Driver/arm-execute-only.c vendor/clang/dist/test/Driver/cl-link-at-file.c vendor/clang/dist/test/Driver/cl-link.c vendor/clang/dist/test/Driver/cl-options.c vendor/clang/dist/test/Driver/clang_f_opts.c vendor/clang/dist/test/Driver/crash-report-crashfile.m vendor/clang/dist/test/Driver/debug-options.c vendor/clang/dist/test/Driver/embed-bitcode.c vendor/clang/dist/test/Driver/fast-math.c vendor/clang/dist/test/Driver/frame-pointer-elim.c vendor/clang/dist/test/Driver/frame-pointer.c vendor/clang/dist/test/Driver/fsanitize.c vendor/clang/dist/test/Driver/fuchsia.c vendor/clang/dist/test/Driver/hexagon-toolchain-elf.c vendor/clang/dist/test/Driver/immediate-options.c vendor/clang/dist/test/Driver/linux-ld.c vendor/clang/dist/test/Driver/mglobal-merge.c vendor/clang/dist/test/Driver/mingw.cpp vendor/clang/dist/test/Driver/mips-as.c vendor/clang/dist/test/Driver/msc-version.c vendor/clang/dist/test/Driver/openbsd.c vendor/clang/dist/test/Driver/pic.c vendor/clang/dist/test/Driver/ppc-features.cpp vendor/clang/dist/test/Driver/r600-mcpu.cl vendor/clang/dist/test/Driver/response-file.c vendor/clang/dist/test/Driver/sanitizer-ld.c vendor/clang/dist/test/Driver/windows-cross.c vendor/clang/dist/test/Driver/x86-target-features.c vendor/clang/dist/test/FixIt/fixit.cpp vendor/clang/dist/test/FixIt/no-fixit.cpp vendor/clang/dist/test/Format/style-on-command-line.cpp vendor/clang/dist/test/Frontend/aarch64-target-cpu.c vendor/clang/dist/test/Frontend/gnu-mcount.c vendor/clang/dist/test/Frontend/iframework.c vendor/clang/dist/test/Frontend/objc-bool-is-bool.m vendor/clang/dist/test/Frontend/optimization-remark-with-hotness.c vendor/clang/dist/test/Frontend/optimization-remark.c vendor/clang/dist/test/Headers/altivec-header.c vendor/clang/dist/test/Headers/altivec-intrin.c vendor/clang/dist/test/Headers/opencl-c-header.cl vendor/clang/dist/test/Index/Core/index-source.cpp vendor/clang/dist/test/Index/Core/index-source.m vendor/clang/dist/test/Index/Core/index-subkinds.m vendor/clang/dist/test/Index/Core/index-with-module.m vendor/clang/dist/test/Index/annotate-nested-name-specifier.cpp vendor/clang/dist/test/Index/comment-cplus-decls.cpp vendor/clang/dist/test/Index/complete-block-properties.m vendor/clang/dist/test/Index/complete-objc-message.m vendor/clang/dist/test/Index/complete-preamble.h vendor/clang/dist/test/Index/crash-recovery-code-complete.c vendor/clang/dist/test/Index/crash-recovery-modules.m vendor/clang/dist/test/Index/crash-recovery-reparse.c vendor/clang/dist/test/Index/crash-recovery.c vendor/clang/dist/test/Index/file-refs.cpp vendor/clang/dist/test/Index/get-cursor.m vendor/clang/dist/test/Index/index-decls.m vendor/clang/dist/test/Index/overriding-ftemplate-comments.cpp vendor/clang/dist/test/Index/overriding-method-comments.mm vendor/clang/dist/test/Index/print-type.cpp vendor/clang/dist/test/Index/recursive-cxx-member-calls.cpp vendor/clang/dist/test/Layout/ms-x86-basic-layout.cpp vendor/clang/dist/test/Lexer/cxx-features.cpp vendor/clang/dist/test/Misc/ast-dump-attr.cpp vendor/clang/dist/test/Misc/ast-dump-decl.cpp vendor/clang/dist/test/Misc/ast-dump-decl.m vendor/clang/dist/test/Misc/ast-dump-templates.cpp vendor/clang/dist/test/Misc/backend-stack-frame-diagnostics.cpp vendor/clang/dist/test/Misc/diag-template-diffing.cpp vendor/clang/dist/test/Modules/ExtDebugInfo.cpp vendor/clang/dist/test/Modules/Inputs/category_right_sub.h vendor/clang/dist/test/Modules/Inputs/diag_pragma.h vendor/clang/dist/test/Modules/Inputs/merge-name-for-linkage/b.h vendor/clang/dist/test/Modules/Inputs/merge-name-for-linkage/module.modulemap vendor/clang/dist/test/Modules/Inputs/merge-using-decls/b.h vendor/clang/dist/test/Modules/Inputs/module.map vendor/clang/dist/test/Modules/builtins.m vendor/clang/dist/test/Modules/cxx-templates.cpp vendor/clang/dist/test/Modules/dependency-dump-dependent-module.m vendor/clang/dist/test/Modules/dependency-dump.m vendor/clang/dist/test/Modules/diagnostic-options-out-of-date.m vendor/clang/dist/test/Modules/implicit-private-with-different-name.m vendor/clang/dist/test/Modules/merge-name-for-linkage.cpp vendor/clang/dist/test/Modules/merge-using-decls.cpp vendor/clang/dist/test/Modules/module-impl-with-link.c vendor/clang/dist/test/Modules/module_file_info.m vendor/clang/dist/test/Modules/objc-categories.m vendor/clang/dist/test/Modules/rebuild.m vendor/clang/dist/test/OpenMP/cancel_messages.cpp vendor/clang/dist/test/OpenMP/cancellation_point_messages.cpp vendor/clang/dist/test/OpenMP/declare_reduction_messages.cpp vendor/clang/dist/test/OpenMP/distribute_collapse_messages.cpp vendor/clang/dist/test/OpenMP/distribute_lastprivate_codegen.cpp vendor/clang/dist/test/OpenMP/linking.c vendor/clang/dist/test/OpenMP/nvptx_target_codegen.cpp vendor/clang/dist/test/OpenMP/openmp_check.cpp vendor/clang/dist/test/OpenMP/ordered_messages.cpp vendor/clang/dist/test/OpenMP/target_parallel_default_messages.cpp vendor/clang/dist/test/OpenMP/target_parallel_for_collapse_messages.cpp vendor/clang/dist/test/OpenMP/target_parallel_for_ordered_messages.cpp vendor/clang/dist/test/OpenMP/threadprivate_codegen.cpp vendor/clang/dist/test/PCH/cxx-traits.cpp vendor/clang/dist/test/PCH/cxx-traits.h vendor/clang/dist/test/PCH/macro-undef.cpp vendor/clang/dist/test/PCH/ocl_types.h vendor/clang/dist/test/Parser/altivec-csk-bool.c vendor/clang/dist/test/Parser/altivec.c vendor/clang/dist/test/Parser/backtrack-off-by-one.cpp vendor/clang/dist/test/Parser/cxx-altivec.cpp vendor/clang/dist/test/Parser/cxx-template-decl.cpp vendor/clang/dist/test/Parser/cxx0x-ambig.cpp vendor/clang/dist/test/Parser/cxx0x-attributes.cpp vendor/clang/dist/test/Parser/cxx11-stmt-attributes.cpp vendor/clang/dist/test/Parser/eof.cpp vendor/clang/dist/test/Parser/objc-available.m vendor/clang/dist/test/Parser/opencl-atomics-cl20.cl vendor/clang/dist/test/Parser/vsx.c vendor/clang/dist/test/Preprocessor/aarch64-target-features.c vendor/clang/dist/test/Preprocessor/arm-acle-6.4.c vendor/clang/dist/test/Preprocessor/arm-acle-6.5.c vendor/clang/dist/test/Preprocessor/arm-target-features.c vendor/clang/dist/test/Preprocessor/init.c vendor/clang/dist/test/Preprocessor/predefined-arch-macros.c vendor/clang/dist/test/Preprocessor/x86_target_features.c vendor/clang/dist/test/Profile/Inputs/cxx-class.proftext vendor/clang/dist/test/Profile/c-generate.c vendor/clang/dist/test/Profile/cxx-class.cpp vendor/clang/dist/test/Profile/cxx-structors.cpp vendor/clang/dist/test/Profile/cxx-virtual-destructor-calls.cpp vendor/clang/dist/test/Rewriter/lit.local.cfg vendor/clang/dist/test/Sema/address_spaces.c vendor/clang/dist/test/Sema/alias-redefinition.c vendor/clang/dist/test/Sema/altivec-init.c vendor/clang/dist/test/Sema/arm-interrupt-attr.c vendor/clang/dist/test/Sema/ast-print.c vendor/clang/dist/test/Sema/attr-deprecated.c vendor/clang/dist/test/Sema/attr-ifunc.c vendor/clang/dist/test/Sema/auto-type.c vendor/clang/dist/test/Sema/builtins-ppc.c vendor/clang/dist/test/Sema/builtins-x86.c vendor/clang/dist/test/Sema/callingconv-cast.c vendor/clang/dist/test/Sema/const-eval.c vendor/clang/dist/test/Sema/designated-initializers.c vendor/clang/dist/test/Sema/enable_if.c vendor/clang/dist/test/Sema/expr-address-of.c vendor/clang/dist/test/Sema/knr-def-call.c vendor/clang/dist/test/Sema/ms-inline-asm.c vendor/clang/dist/test/Sema/nonnull.c vendor/clang/dist/test/Sema/transparent-union.c vendor/clang/dist/test/Sema/vector-ops.c vendor/clang/dist/test/Sema/warn-strict-prototypes.c vendor/clang/dist/test/Sema/warn-unreachable.c vendor/clang/dist/test/SemaCXX/MicrosoftExtensions.cpp vendor/clang/dist/test/SemaCXX/PR9572.cpp vendor/clang/dist/test/SemaCXX/altivec.cpp vendor/clang/dist/test/SemaCXX/anonymous-struct.cpp vendor/clang/dist/test/SemaCXX/array-bounds.cpp vendor/clang/dist/test/SemaCXX/attr-deprecated.cpp vendor/clang/dist/test/SemaCXX/attr-noreturn.cpp vendor/clang/dist/test/SemaCXX/attr-require-constant-initialization.cpp vendor/clang/dist/test/SemaCXX/auto-cxx0x.cpp vendor/clang/dist/test/SemaCXX/calling-conv-compat.cpp vendor/clang/dist/test/SemaCXX/constant-expression-cxx11.cpp vendor/clang/dist/test/SemaCXX/constant-expression-cxx1y.cpp vendor/clang/dist/test/SemaCXX/coreturn.cpp vendor/clang/dist/test/SemaCXX/coroutines.cpp vendor/clang/dist/test/SemaCXX/cxx-altivec.cpp vendor/clang/dist/test/SemaCXX/cxx0x-class.cpp vendor/clang/dist/test/SemaCXX/cxx0x-initializer-aggregates.cpp vendor/clang/dist/test/SemaCXX/cxx0x-initializer-constructor.cpp vendor/clang/dist/test/SemaCXX/cxx0x-initializer-references.cpp vendor/clang/dist/test/SemaCXX/cxx0x-initializer-scalars.cpp vendor/clang/dist/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp vendor/clang/dist/test/SemaCXX/cxx1y-deduced-return-type.cpp vendor/clang/dist/test/SemaCXX/cxx1y-generic-lambdas.cpp vendor/clang/dist/test/SemaCXX/cxx1y-variable-templates_in_class.cpp vendor/clang/dist/test/SemaCXX/cxx1y-variable-templates_top_level.cpp vendor/clang/dist/test/SemaCXX/cxx1z-constexpr-lambdas.cpp vendor/clang/dist/test/SemaCXX/default-assignment-operator.cpp vendor/clang/dist/test/SemaCXX/default-constructor-initializers.cpp vendor/clang/dist/test/SemaCXX/dllimport.cpp vendor/clang/dist/test/SemaCXX/enable_if.cpp vendor/clang/dist/test/SemaCXX/enum-scoped.cpp vendor/clang/dist/test/SemaCXX/format-strings.cpp vendor/clang/dist/test/SemaCXX/i-c-e-cxx.cpp vendor/clang/dist/test/SemaCXX/implicit-exception-spec.cpp vendor/clang/dist/test/SemaCXX/implicit-member-functions.cpp vendor/clang/dist/test/SemaCXX/implicit-virtual-member-functions.cpp vendor/clang/dist/test/SemaCXX/libstdcxx_pair_swap_hack.cpp vendor/clang/dist/test/SemaCXX/make_integer_seq.cpp vendor/clang/dist/test/SemaCXX/nested-name-spec.cpp vendor/clang/dist/test/SemaCXX/new-delete.cpp vendor/clang/dist/test/SemaCXX/no-wchar.cpp vendor/clang/dist/test/SemaCXX/printf-cstr.cpp vendor/clang/dist/test/SemaCXX/pseudo-destructors.cpp vendor/clang/dist/test/SemaCXX/ptrtomember.cpp vendor/clang/dist/test/SemaCXX/type-convert-construct.cpp vendor/clang/dist/test/SemaCXX/type-traits.cpp vendor/clang/dist/test/SemaCXX/uninitialized.cpp vendor/clang/dist/test/SemaCXX/virtual-base-used.cpp vendor/clang/dist/test/SemaCXX/virtual-member-functions-key-function.cpp vendor/clang/dist/test/SemaCXX/warn-bool-conversion.cpp vendor/clang/dist/test/SemaCXX/warn-shadow.cpp vendor/clang/dist/test/SemaCXX/warn-thread-safety-parsing.cpp vendor/clang/dist/test/SemaCXX/warn-unused-value.cpp vendor/clang/dist/test/SemaCXX/zero-length-arrays.cpp vendor/clang/dist/test/SemaObjC/arc-peformselector.m vendor/clang/dist/test/SemaObjC/arc-repeated-weak.mm vendor/clang/dist/test/SemaObjC/arc-unavailable-for-weakref.m vendor/clang/dist/test/SemaObjC/arc.m vendor/clang/dist/test/SemaObjC/attr-deprecated.m vendor/clang/dist/test/SemaObjC/class-message-protocol-lookup.m vendor/clang/dist/test/SemaObjC/default-synthesize-3.m vendor/clang/dist/test/SemaObjC/objc-class-property.m vendor/clang/dist/test/SemaObjC/property-typecheck-1.m vendor/clang/dist/test/SemaObjC/special-dep-unavail-warning.m vendor/clang/dist/test/SemaObjC/warn-deprecated-implementations.m vendor/clang/dist/test/SemaObjCXX/arc-bridged-cast.mm vendor/clang/dist/test/SemaObjCXX/arc-system-header.mm vendor/clang/dist/test/SemaObjCXX/arc-templates.mm vendor/clang/dist/test/SemaObjCXX/arc-unavailable-for-weakref.mm vendor/clang/dist/test/SemaObjCXX/blocks.mm vendor/clang/dist/test/SemaObjCXX/ivar-construct.mm vendor/clang/dist/test/SemaObjCXX/overload.mm vendor/clang/dist/test/SemaOpenCL/access-qualifier.cl vendor/clang/dist/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl vendor/clang/dist/test/SemaOpenCL/as_type.cl vendor/clang/dist/test/SemaOpenCL/builtins-amdgcn-error-f16.cl vendor/clang/dist/test/SemaOpenCL/builtins-amdgcn-error.cl vendor/clang/dist/test/SemaOpenCL/cl20-device-side-enqueue.cl vendor/clang/dist/test/SemaOpenCL/invalid-block.cl vendor/clang/dist/test/SemaOpenCL/sampler_t.cl vendor/clang/dist/test/SemaTemplate/alias-templates.cpp vendor/clang/dist/test/SemaTemplate/deduction.cpp vendor/clang/dist/test/SemaTemplate/default-expr-arguments-3.cpp vendor/clang/dist/test/SemaTemplate/explicit-instantiation.cpp vendor/clang/dist/test/SemaTemplate/injected-class-name.cpp vendor/clang/dist/test/SemaTemplate/instantiate-c99.cpp vendor/clang/dist/test/SemaTemplate/instantiate-enum.cpp vendor/clang/dist/test/SemaTemplate/instantiate-member-class.cpp vendor/clang/dist/test/SemaTemplate/member-access-ambig.cpp vendor/clang/dist/test/SemaTemplate/ms-sizeof-missing-typename.cpp vendor/clang/dist/test/SemaTemplate/temp_arg.cpp vendor/clang/dist/test/SemaTemplate/temp_arg_nontype.cpp vendor/clang/dist/test/SemaTemplate/temp_arg_template.cpp vendor/clang/dist/test/SemaTemplate/temp_arg_template_cxx1z.cpp vendor/clang/dist/test/SemaTemplate/temp_explicit.cpp vendor/clang/dist/test/SemaTemplate/template-id-expr.cpp vendor/clang/dist/test/SemaTemplate/typename-specifier-3.cpp vendor/clang/dist/test/SemaTemplate/typename-specifier.cpp vendor/clang/dist/test/SemaTemplate/undefined-template.cpp vendor/clang/dist/test/SemaTemplate/value-dependent-null-pointer-constant.cpp vendor/clang/dist/test/SemaTemplate/virtual-member-functions.cpp vendor/clang/dist/test/Tooling/lit.local.cfg vendor/clang/dist/test/lit.cfg vendor/clang/dist/test/lit.site.cfg.in vendor/clang/dist/tools/c-index-test/CMakeLists.txt vendor/clang/dist/tools/c-index-test/c-index-test.c vendor/clang/dist/tools/c-index-test/core_main.cpp vendor/clang/dist/tools/clang-check/ClangCheck.cpp vendor/clang/dist/tools/clang-format-vs/.gitignore vendor/clang/dist/tools/clang-format-vs/CMakeLists.txt vendor/clang/dist/tools/clang-format-vs/ClangFormat.sln vendor/clang/dist/tools/clang-format-vs/ClangFormat/ClangFormat.csproj vendor/clang/dist/tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs vendor/clang/dist/tools/clang-format-vs/ClangFormat/packages.config vendor/clang/dist/tools/clang-format-vs/source.extension.vsixmanifest.in vendor/clang/dist/tools/clang-format/ClangFormat.cpp vendor/clang/dist/tools/clang-format/clang-format.el vendor/clang/dist/tools/clang-import-test/clang-import-test.cpp vendor/clang/dist/tools/clang-offload-bundler/ClangOffloadBundler.cpp vendor/clang/dist/tools/driver/CMakeLists.txt vendor/clang/dist/tools/driver/cc1as_main.cpp vendor/clang/dist/tools/driver/driver.cpp vendor/clang/dist/tools/libclang/CIndex.cpp vendor/clang/dist/tools/libclang/CIndexCodeCompletion.cpp vendor/clang/dist/tools/libclang/CXCursor.cpp vendor/clang/dist/tools/libclang/CXIndexDataConsumer.cpp vendor/clang/dist/tools/libclang/CXType.cpp vendor/clang/dist/tools/libclang/libclang.exports vendor/clang/dist/tools/scan-build-py/bin/analyze-build vendor/clang/dist/tools/scan-build-py/bin/analyze-c++ vendor/clang/dist/tools/scan-build-py/bin/analyze-cc vendor/clang/dist/tools/scan-build-py/bin/intercept-build vendor/clang/dist/tools/scan-build-py/bin/intercept-c++ vendor/clang/dist/tools/scan-build-py/bin/intercept-cc vendor/clang/dist/tools/scan-build-py/bin/scan-build vendor/clang/dist/tools/scan-build-py/libear/__init__.py vendor/clang/dist/tools/scan-build-py/libscanbuild/__init__.py vendor/clang/dist/tools/scan-build-py/libscanbuild/analyze.py vendor/clang/dist/tools/scan-build-py/libscanbuild/clang.py vendor/clang/dist/tools/scan-build-py/libscanbuild/intercept.py vendor/clang/dist/tools/scan-build-py/libscanbuild/report.py vendor/clang/dist/tools/scan-build-py/tests/unit/__init__.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_analyze.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_intercept.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_report.py vendor/clang/dist/tools/scan-build/CMakeLists.txt vendor/clang/dist/tools/scan-view/share/Reporter.py vendor/clang/dist/tools/scan-view/share/startfile.py vendor/clang/dist/unittests/ASTMatchers/ASTMatchersNodeTest.cpp vendor/clang/dist/unittests/ASTMatchers/ASTMatchersTest.h vendor/clang/dist/unittests/Analysis/CFGTest.cpp vendor/clang/dist/unittests/Analysis/CMakeLists.txt vendor/clang/dist/unittests/Basic/CMakeLists.txt vendor/clang/dist/unittests/Basic/FileManagerTest.cpp vendor/clang/dist/unittests/Basic/SourceManagerTest.cpp vendor/clang/dist/unittests/Basic/VirtualFileSystemTest.cpp vendor/clang/dist/unittests/Driver/CMakeLists.txt vendor/clang/dist/unittests/Format/CMakeLists.txt vendor/clang/dist/unittests/Format/FormatTest.cpp vendor/clang/dist/unittests/Format/FormatTestJS.cpp vendor/clang/dist/unittests/Format/FormatTestJava.cpp vendor/clang/dist/unittests/Format/FormatTestObjC.cpp vendor/clang/dist/unittests/Format/FormatTestProto.cpp vendor/clang/dist/unittests/Format/FormatTestSelective.cpp vendor/clang/dist/unittests/Lex/LexerTest.cpp vendor/clang/dist/unittests/Lex/PPCallbacksTest.cpp vendor/clang/dist/unittests/Lex/PPConditionalDirectiveRecordTest.cpp vendor/clang/dist/unittests/Tooling/CMakeLists.txt vendor/clang/dist/unittests/Tooling/RefactoringTest.cpp vendor/clang/dist/utils/TableGen/CMakeLists.txt vendor/clang/dist/utils/TableGen/ClangAttrEmitter.cpp vendor/clang/dist/utils/TableGen/TableGen.cpp vendor/clang/dist/utils/TableGen/TableGenBackends.h vendor/clang/dist/www/analyzer/alpha_checks.html vendor/clang/dist/www/cxx_dr_status.html vendor/clang/dist/www/cxx_status.html Modified: vendor/clang/dist/CMakeLists.txt ============================================================================== --- vendor/clang/dist/CMakeLists.txt Sun Apr 16 16:01:37 2017 (r317018) +++ vendor/clang/dist/CMakeLists.txt Sun Apr 16 16:02:28 2017 (r317019) @@ -82,6 +82,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) endif() + option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON) option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF) @@ -185,6 +186,8 @@ if (LIBXML2_FOUND) set(CLANG_HAVE_LIBXML 1) endif() +find_package(Z3 4.5) + include(CheckIncludeFile) check_include_file(sys/resource.h CLANG_HAVE_RLIMITS) @@ -329,10 +332,6 @@ if (APPLE) endif() endif() -configure_file( - ${CLANG_SOURCE_DIR}/include/clang/Config/config.h.cmake - ${CLANG_BINARY_DIR}/include/clang/Config/config.h) - include(CMakeParseArguments) include(AddClang) @@ -368,21 +367,21 @@ option(CLANG_BUILD_TOOLS "Build the Clang tools. If OFF, just generate build targets." ON) option(CLANG_ENABLE_ARCMT "Build ARCMT." ON) -if (CLANG_ENABLE_ARCMT) - set(ENABLE_CLANG_ARCMT "1") -else() - set(ENABLE_CLANG_ARCMT "0") -endif() - option(CLANG_ENABLE_STATIC_ANALYZER "Build static analyzer." ON) -if (CLANG_ENABLE_STATIC_ANALYZER) - set(ENABLE_CLANG_STATIC_ANALYZER "1") -else() - set(ENABLE_CLANG_STATIC_ANALYZER "0") + +option(CLANG_ANALYZER_BUILD_Z3 + "Build the static analyzer with the Z3 constraint manager." OFF) + +if(NOT CLANG_ENABLE_STATIC_ANALYZER AND (CLANG_ENABLE_ARCMT OR CLANG_ANALYZER_BUILD_Z3)) + message(FATAL_ERROR "Cannot disable static analyzer while enabling ARCMT or Z3") endif() -if (NOT CLANG_ENABLE_STATIC_ANALYZER AND CLANG_ENABLE_ARCMT) - message(FATAL_ERROR "Cannot disable static analyzer while enabling ARCMT") +if(CLANG_ANALYZER_BUILD_Z3) + if(Z3_FOUND) + set(CLANG_ANALYZER_WITH_Z3 1) + else() + message(FATAL_ERROR "Cannot find Z3 header file or shared library") + endif() endif() if(CLANG_ENABLE_ARCMT) @@ -419,11 +418,6 @@ add_subdirectory(tools) add_subdirectory(runtime) option(CLANG_BUILD_EXAMPLES "Build CLANG example programs by default." OFF) -if (CLANG_BUILD_EXAMPLES) - set(ENABLE_CLANG_EXAMPLES "1") -else() - set(ENABLE_CLANG_EXAMPLES "0") -endif() add_subdirectory(examples) if(APPLE) @@ -519,6 +513,10 @@ if (CLANG_ENABLE_BOOTSTRAP) set(STAMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-stamps/) set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-bins/) + if(BOOTSTRAP_LLVM_ENABLE_LLD) + add_dependencies(clang-bootstrap-deps lld) + endif() + # If the next stage is LTO we need to depend on LTO and possibly lld or LLVMgold if(BOOTSTRAP_LLVM_ENABLE_LTO OR LLVM_ENABLE_LTO AND NOT LLVM_BUILD_INSTRUMENTED) if(APPLE) @@ -535,9 +533,7 @@ if (CLANG_ENABLE_BOOTSTRAP) -DDYLD_LIBRARY_PATH=${LLVM_LIBRARY_OUTPUT_INTDIR}) elseif(NOT WIN32) add_dependencies(clang-bootstrap-deps llvm-ar llvm-ranlib) - if(BOOTSTRAP_LLVM_ENABLE_LLD) - add_dependencies(clang-bootstrap-deps lld) - elseif(LLVM_BINUTILS_INCDIR) + if(NOT BOOTSTRAP_LLVM_ENABLE_LLD AND LLVM_BINUTILS_INCDIR) add_dependencies(clang-bootstrap-deps LLVMgold) endif() set(LTO_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) @@ -700,3 +696,7 @@ endif() if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION) add_subdirectory(utils/ClangVisualizers) endif() + +configure_file( + ${CLANG_SOURCE_DIR}/include/clang/Config/config.h.cmake + ${CLANG_BINARY_DIR}/include/clang/Config/config.h) Modified: vendor/clang/dist/bindings/python/clang/cindex.py ============================================================================== --- vendor/clang/dist/bindings/python/clang/cindex.py Sun Apr 16 16:01:37 2017 (r317018) +++ vendor/clang/dist/bindings/python/clang/cindex.py Sun Apr 16 16:02:28 2017 (r317019) @@ -1887,6 +1887,7 @@ TypeKind.OBJCID = TypeKind(27) TypeKind.OBJCCLASS = TypeKind(28) TypeKind.OBJCSEL = TypeKind(29) TypeKind.FLOAT128 = TypeKind(30) +TypeKind.HALF = TypeKind(31) TypeKind.COMPLEX = TypeKind(100) TypeKind.POINTER = TypeKind(101) TypeKind.BLOCKPOINTER = TypeKind(102) Added: vendor/clang/dist/cmake/caches/Apple-stage2-ThinLTO.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/caches/Apple-stage2-ThinLTO.cmake Sun Apr 16 16:02:28 2017 (r317019) @@ -0,0 +1,6 @@ +# This file sets up a CMakeCache for Apple-style stage2 ThinLTO bootstrap. It is +# specified by the stage1 build. + + +set(LLVM_ENABLE_LTO THIN CACHE BOOL "") +include(${CMAKE_CURRENT_LIST_DIR}/Apple-stage2.cmake) Added: vendor/clang/dist/cmake/caches/Fuchsia-stage2.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/caches/Fuchsia-stage2.cmake Sun Apr 16 16:02:28 2017 (r317019) @@ -0,0 +1,66 @@ +# This file sets up a CMakeCache for the second stage of a Fuchsia toolchain +# build. + +set(LLVM_TARGETS_TO_BUILD X86;AArch64 CACHE STRING "") + +set(PACKAGE_VENDOR Fuchsia CACHE STRING "") + +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") +set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") + +set(LLVM_ENABLE_LTO ON CACHE BOOL "") +if(NOT APPLE) + set(LLVM_ENABLE_LLD ON CACHE BOOL "") + set(CLANG_DEFAULT_LINKER lld CACHE STRING "") +endif() + +if(APPLE) + set(LLDB_CODESIGN_IDENTITY "" CACHE STRING "") +endif() + +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") + +set(LLVM_BUILTIN_TARGETS "x86_64-fuchsia-none;aarch64-fuchsia-none" CACHE STRING "") +set(BUILTINS_x86_64-fuchsia-none_CMAKE_SYSROOT ${FUCHSIA_SYSROOT} CACHE STRING "") +set(BUILTINS_x86_64-fuchsia-none_CMAKE_SYSTEM_NAME Fuchsia CACHE STRING "") +set(BUILTINS_aarch64-fuchsia-none_CMAKE_SYSROOT ${FUCHSIA_SYSROOT} CACHE STRING "") +set(BUILTINS_aarch64-fuchsia-none_CMAKE_SYSTEM_NAME Fuchsia CACHE STRING "") + +# Setup toolchain. +set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") +set(LLVM_TOOLCHAIN_TOOLS + llvm-ar + llvm-cov + llvm-cxxfilt + llvm-dwarfdump + llvm-dsymutil + llvm-lib + llvm-nm + llvm-objdump + llvm-profdata + llvm-ranlib + llvm-readobj + llvm-size + llvm-symbolizer + CACHE STRING "") + +set(LLVM_DISTRIBUTION_COMPONENTS + clang + lld + lldb + liblldb + LTO + clang-format + clang-headers + builtins-x86_64-fuchsia-none + builtins-aarch64-fuchsia-none + runtimes + ${LLVM_TOOLCHAIN_TOOLS} + CACHE STRING "") Added: vendor/clang/dist/cmake/caches/Fuchsia.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/caches/Fuchsia.cmake Sun Apr 16 16:02:28 2017 (r317019) @@ -0,0 +1,50 @@ +# This file sets up a CMakeCache for a Fuchsia toolchain build. + +set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") + +set(PACKAGE_VENDOR Fuchsia CACHE STRING "") + +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") + +set(CMAKE_BUILD_TYPE Release CACHE STRING "") + +set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") +if(NOT APPLE) + set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") +endif() + +if(APPLE) + set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "") + set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "") + set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "") +endif() + +set(CLANG_BOOTSTRAP_TARGETS + check-all + check-llvm + check-clang + llvm-config + test-suite + test-depends + llvm-test-depends + clang-test-depends + distribution + install-distribution + clang CACHE STRING "") + +if(FUCHSIA_SYSROOT) + set(EXTRA_ARGS -DFUCHSIA_SYSROOT=${FUCHSIA_SYSROOT}) +endif() + +# Setup the bootstrap build. +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_CMAKE_ARGS + ${EXTRA_ARGS} + -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake + CACHE STRING "") Modified: vendor/clang/dist/cmake/modules/CMakeLists.txt ============================================================================== --- vendor/clang/dist/cmake/modules/CMakeLists.txt Sun Apr 16 16:01:37 2017 (r317018) +++ vendor/clang/dist/cmake/modules/CMakeLists.txt Sun Apr 16 16:02:28 2017 (r317019) @@ -4,17 +4,27 @@ set(CLANG_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/clang) set(clang_cmake_builddir "${CMAKE_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR}") +# Keep this in sync with llvm/cmake/CMakeLists.txt! +set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) +set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") + get_property(CLANG_EXPORTS GLOBAL PROPERTY CLANG_EXPORTS) export(TARGETS ${CLANG_EXPORTS} FILE ${clang_cmake_builddir}/ClangTargets.cmake) # Generate ClangConfig.cmake for the build tree. set(CLANG_CONFIG_CMAKE_DIR "${clang_cmake_builddir}") +set(CLANG_CONFIG_LLVM_CMAKE_DIR "${llvm_cmake_builddir}") set(CLANG_CONFIG_EXPORTS_FILE "${clang_cmake_builddir}/ClangTargets.cmake") +set(CLANG_CONFIG_INCLUDE_DIRS + "${CLANG_SOURCE_DIR}/include" + "${CLANG_BINARY_DIR}/include" + ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/ClangConfig.cmake.in ${clang_cmake_builddir}/ClangConfig.cmake @ONLY) set(CLANG_CONFIG_CMAKE_DIR) +set(CLANG_CONFIG_LLVM_CMAKE_DIR) set(CLANG_CONFIG_EXPORTS_FILE) # Generate ClangConfig.cmake for the install tree. @@ -29,7 +39,11 @@ foreach(p ${_count}) get_filename_component(CLANG_INSTALL_PREFIX \"\${CLANG_INSTALL_PREFIX}\" PATH)") endforeach(p) set(CLANG_CONFIG_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}/${CLANG_INSTALL_PACKAGE_DIR}") +set(CLANG_CONFIG_LLVM_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") set(CLANG_CONFIG_EXPORTS_FILE "\${CLANG_CMAKE_DIR}/ClangTargets.cmake") +set(CLANG_CONFIG_INCLUDE_DIRS + "\${CLANG_INSTALL_PREFIX}/include" + ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/ClangConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/ClangConfig.cmake Modified: vendor/clang/dist/cmake/modules/ClangConfig.cmake.in ============================================================================== --- vendor/clang/dist/cmake/modules/ClangConfig.cmake.in Sun Apr 16 16:01:37 2017 (r317018) +++ vendor/clang/dist/cmake/modules/ClangConfig.cmake.in Sun Apr 16 16:02:28 2017 (r317019) @@ -1,11 +1,13 @@ # This file allows users to call find_package(Clang) and pick up our targets. -find_package(LLVM REQUIRED CONFIG) - @CLANG_CONFIG_CODE@ +find_package(LLVM REQUIRED CONFIG + HINTS "@CLANG_CONFIG_LLVM_CMAKE_DIR@") + set(CLANG_EXPORTED_TARGETS "@CLANG_EXPORTS@") set(CLANG_CMAKE_DIR "@CLANG_CONFIG_CMAKE_DIR@") +set(CLANG_INCLUDE_DIRS "@CLANG_CONFIG_INCLUDE_DIRS@") # Provide all our library targets to users. include("@CLANG_CONFIG_EXPORTS_FILE@") Added: vendor/clang/dist/cmake/modules/FindZ3.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/modules/FindZ3.cmake Sun Apr 16 16:02:28 2017 (r317019) @@ -0,0 +1,28 @@ +find_path(Z3_INCLUDE_DIR NAMES z3.h + PATH_SUFFIXES libz3 z3 + ) + +find_library(Z3_LIBRARIES NAMES z3 libz3 + ) + +find_program(Z3_EXECUTABLE z3) + +if(Z3_INCLUDE_DIR AND Z3_EXECUTABLE) + execute_process (COMMAND ${Z3_EXECUTABLE} -version + OUTPUT_VARIABLE libz3_version_str + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + + string(REGEX REPLACE "^Z3 version ([0-9.]+)" "\\1" + Z3_VERSION_STRING "${libz3_version_str}") + unset(libz3_version_str) +endif() + +# handle the QUIETLY and REQUIRED arguments and set Z3_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Z3 + REQUIRED_VARS Z3_LIBRARIES Z3_INCLUDE_DIR + VERSION_VAR Z3_VERSION_STRING) + +mark_as_advanced(Z3_INCLUDE_DIR Z3_LIBRARIES) Modified: vendor/clang/dist/docs/AttributeReference.rst ============================================================================== --- vendor/clang/dist/docs/AttributeReference.rst Sun Apr 16 16:01:37 2017 (r317018) +++ vendor/clang/dist/docs/AttributeReference.rst Sun Apr 16 16:02:28 2017 (r317019) @@ -1,3119 +1,13 @@ .. ------------------------------------------------------------------- NOTE: This file is automatically generated by running clang-tblgen - -gen-attr-docs. Do not edit this file by hand!! + -gen-attr-docs. Do not edit this file by hand!! The contents for + this file are automatically generated by a server-side process. + + Please do not commit this file. The file exists for local testing + purposes only. ------------------------------------------------------------------- =================== Attributes in Clang -=================== -.. contents:: - :local: - -Introduction -============ - -This page lists the attributes currently supported by Clang. - -Function Attributes -=================== - - -interrupt ---------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Clang supports the GNU style ``__attribute__((interrupt("TYPE")))`` attribute on -ARM targets. This attribute may be attached to a function definition and -instructs the backend to generate appropriate function entry/exit code so that -it can be used directly as an interrupt service routine. - -The parameter passed to the interrupt attribute is optional, but if -provided it must be a string literal with one of the following values: "IRQ", -"FIQ", "SWI", "ABORT", "UNDEF". - -The semantics are as follows: - -- If the function is AAPCS, Clang instructs the backend to realign the stack to - 8 bytes on entry. This is a general requirement of the AAPCS at public - interfaces, but may not hold when an exception is taken. Doing this allows - other AAPCS functions to be called. -- If the CPU is M-class this is all that needs to be done since the architecture - itself is designed in such a way that functions obeying the normal AAPCS ABI - constraints are valid exception handlers. -- If the CPU is not M-class, the prologue and epilogue are modified to save all - non-banked registers that are used, so that upon return the user-mode state - will not be corrupted. Note that to avoid unnecessary overhead, only - general-purpose (integer) registers are saved in this way. If VFP operations - are needed, that state must be saved manually. - - Specifically, interrupt kinds other than "FIQ" will save all core registers - except "lr" and "sp". "FIQ" interrupts will save r0-r7. -- If the CPU is not M-class, the return instruction is changed to one of the - canonical sequences permitted by the architecture for exception return. Where - possible the function itself will make the necessary "lr" adjustments so that - the "preferred return address" is selected. - - Unfortunately the compiler is unable to make this guarantee for an "UNDEF" - handler, where the offset from "lr" to the preferred return address depends on - the execution state of the code which generated the exception. In this case - a sequence equivalent to "movs pc, lr" will be used. - - -abi_tag (gnu::abi_tag) ----------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -The ``abi_tag`` attribute can be applied to a function, variable, class or -inline namespace declaration to modify the mangled name of the entity. It gives -the ability to distinguish between different versions of the same entity but -with different ABI versions supported. For example, a newer version of a class -could have a different set of data members and thus have a different size. Using -the ``abi_tag`` attribute, it is possible to have different mangled names for -a global variable of the class type. Therefor, the old code could keep using -the old manged name and the new code will use the new mangled name with tags. - - -acquire_capability (acquire_shared_capability, clang::acquire_capability, clang::acquire_shared_capability) ------------------------------------------------------------------------------------------------------------ -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -Marks a function as acquiring a capability. - - -alloc_size (gnu::alloc_size) ----------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -The ``alloc_size`` attribute can be placed on functions that return pointers in -order to hint to the compiler how many bytes of memory will be available at the -returned poiner. ``alloc_size`` takes one or two arguments. - -- ``alloc_size(N)`` implies that argument number N equals the number of - available bytes at the returned pointer. -- ``alloc_size(N, M)`` implies that the product of argument number N and - argument number M equals the number of available bytes at the returned - pointer. - -Argument numbers are 1-based. - -An example of how to use ``alloc_size`` - -.. code-block:: c - - void *my_malloc(int a) __attribute__((alloc_size(1))); - void *my_calloc(int a, int b) __attribute__((alloc_size(1, 2))); - - int main() { - void *const p = my_malloc(100); - assert(__builtin_object_size(p, 0) == 100); - void *const a = my_calloc(20, 5); - assert(__builtin_object_size(a, 0) == 100); - } - -.. Note:: This attribute works differently in clang than it does in GCC. - Specifically, clang will only trace ``const`` pointers (as above); we give up - on pointers that are not marked as ``const``. In the vast majority of cases, - this is unimportant, because LLVM has support for the ``alloc_size`` - attribute. However, this may cause mildly unintuitive behavior when used with - other attributes, such as ``enable_if``. - - -interrupt ---------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Clang supports the GNU style ``__attribute__((interrupt))`` attribute on -x86/x86-64 targets.The compiler generates function entry and exit sequences -suitable for use in an interrupt handler when this attribute is present. -The 'IRET' instruction, instead of the 'RET' instruction, is used to return -from interrupt or exception handlers. All registers, except for the EFLAGS -register which is restored by the 'IRET' instruction, are preserved by the -compiler. - -Any interruptible-without-stack-switch code must be compiled with --mno-red-zone since interrupt handlers can and will, because of the -hardware design, touch the red zone. - -1. interrupt handler must be declared with a mandatory pointer argument: - - .. code-block:: c - - struct interrupt_frame - { - uword_t ip; - uword_t cs; - uword_t flags; - uword_t sp; - uword_t ss; - }; - - __attribute__ ((interrupt)) - void f (struct interrupt_frame *frame) { - ... - } - -2. exception handler: - - The exception handler is very similar to the interrupt handler with - a different mandatory function signature: - - .. code-block:: c - - __attribute__ ((interrupt)) - void f (struct interrupt_frame *frame, uword_t error_code) { - ... - } - - and compiler pops 'ERROR_CODE' off stack before the 'IRET' instruction. - - The exception handler should only be used for exceptions which push an - error code and all other exceptions must use the interrupt handler. - The system will crash if the wrong handler is used. - - -assert_capability (assert_shared_capability, clang::assert_capability, clang::assert_shared_capability) -------------------------------------------------------------------------------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -Marks a function that dynamically tests whether a capability is held, and halts -the program if it is not held. - - -assume_aligned (gnu::assume_aligned) ------------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -Use ``__attribute__((assume_aligned([,]))`` on a function -declaration to specify that the return value of the function (which must be a -pointer type) has the specified offset, in bytes, from an address with the -specified alignment. The offset is taken to be zero if omitted. - -.. code-block:: c++ - - // The returned pointer value has 32-byte alignment. - void *a() __attribute__((assume_aligned (32))); - - // The returned pointer value is 4 bytes greater than an address having - // 32-byte alignment. - void *b() __attribute__((assume_aligned (32, 4))); - -Note that this attribute provides information to the compiler regarding a -condition that the code already ensures is true. It does not cause the compiler -to enforce the provided alignment assumption. - - -availability ------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -The ``availability`` attribute can be placed on declarations to describe the -lifecycle of that declaration relative to operating system versions. Consider -the function declaration for a hypothetical function ``f``: - -.. code-block:: c++ - - void f(void) __attribute__((availability(macos,introduced=10.4,deprecated=10.6,obsoleted=10.7))); - -The availability attribute states that ``f`` was introduced in Mac OS X 10.4, -deprecated in Mac OS X 10.6, and obsoleted in Mac OS X 10.7. This information -is used by Clang to determine when it is safe to use ``f``: for example, if -Clang is instructed to compile code for Mac OS X 10.5, a call to ``f()`` -succeeds. If Clang is instructed to compile code for Mac OS X 10.6, the call -succeeds but Clang emits a warning specifying that the function is deprecated. -Finally, if Clang is instructed to compile code for Mac OS X 10.7, the call -fails because ``f()`` is no longer available. - -The availability attribute is a comma-separated list starting with the -platform name and then including clauses specifying important milestones in the -declaration's lifetime (in any order) along with additional information. Those -clauses can be: - -introduced=\ *version* - The first version in which this declaration was introduced. - -deprecated=\ *version* - The first version in which this declaration was deprecated, meaning that - users should migrate away from this API. - -obsoleted=\ *version* - The first version in which this declaration was obsoleted, meaning that it - was removed completely and can no longer be used. - -unavailable - This declaration is never available on this platform. - -message=\ *string-literal* - Additional message text that Clang will provide when emitting a warning or - error about use of a deprecated or obsoleted declaration. Useful to direct - users to replacement APIs. - -replacement=\ *string-literal* - Additional message text that Clang will use to provide Fix-It when emitting - a warning about use of a deprecated declaration. The Fix-It will replace - the deprecated declaration with the new declaration specified. - -Multiple availability attributes can be placed on a declaration, which may -correspond to different platforms. Only the availability attribute with the -platform corresponding to the target platform will be used; any others will be -ignored. If no availability attribute specifies availability for the current -target platform, the availability attributes are ignored. Supported platforms -are: - -``ios`` - Apple's iOS operating system. The minimum deployment target is specified by - the ``-mios-version-min=*version*`` or ``-miphoneos-version-min=*version*`` - command-line arguments. - -``macos`` - Apple's Mac OS X operating system. The minimum deployment target is - specified by the ``-mmacosx-version-min=*version*`` command-line argument. - ``macosx`` is supported for backward-compatibility reasons, but it is - deprecated. - -``tvos`` - Apple's tvOS operating system. The minimum deployment target is specified by - the ``-mtvos-version-min=*version*`` command-line argument. - -``watchos`` - Apple's watchOS operating system. The minimum deployment target is specified by - the ``-mwatchos-version-min=*version*`` command-line argument. - -A declaration can typically be used even when deploying back to a platform -version prior to when the declaration was introduced. When this happens, the -declaration is `weakly linked -`_, -as if the ``weak_import`` attribute were added to the declaration. A -weakly-linked declaration may or may not be present a run-time, and a program -can determine whether the declaration is present by checking whether the -address of that declaration is non-NULL. - -The flag ``strict`` disallows using API when deploying back to a -platform version prior to when the declaration was introduced. An -attempt to use such API before its introduction causes a hard error. -Weakly-linking is almost always a better API choice, since it allows -users to query availability at runtime. - -If there are multiple declarations of the same entity, the availability -attributes must either match on a per-platform basis or later -declarations must not have availability attributes for that -platform. For example: - -.. code-block:: c - - void g(void) __attribute__((availability(macos,introduced=10.4))); - void g(void) __attribute__((availability(macos,introduced=10.4))); // okay, matches - void g(void) __attribute__((availability(ios,introduced=4.0))); // okay, adds a new platform - void g(void); // okay, inherits both macos and ios availability from above. - void g(void) __attribute__((availability(macos,introduced=10.5))); // error: mismatch - -When one method overrides another, the overriding method can be more widely available than the overridden method, e.g.,: - -.. code-block:: objc - - @interface A - - (id)method __attribute__((availability(macos,introduced=10.4))); - - (id)method2 __attribute__((availability(macos,introduced=10.4))); - @end - - @interface B : A - - (id)method __attribute__((availability(macos,introduced=10.3))); // okay: method moved into base class later - - (id)method __attribute__((availability(macos,introduced=10.5))); // error: this method was available via the base class in 10.4 - @end - - -_Noreturn ---------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "","","","X", "" - -A function declared as ``_Noreturn`` shall not return to its caller. The -compiler will generate a diagnostic for a function declared as ``_Noreturn`` -that appears to be capable of returning to its caller. - - -noreturn --------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "","X","","", "" - -A function declared as ``[[noreturn]]`` shall not return to its caller. The -compiler will generate a diagnostic for a function declared as ``[[noreturn]]`` -that appears to be capable of returning to its caller. - - -carries_dependency ------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -The ``carries_dependency`` attribute specifies dependency propagation into and -out of functions. - -When specified on a function or Objective-C method, the ``carries_dependency`` -attribute means that the return value carries a dependency out of the function, -so that the implementation need not constrain ordering upon return from that -function. Implementations of the function and its caller may choose to preserve -dependencies instead of emitting memory ordering instructions such as fences. - -Note, this attribute does not change the meaning of the program, but may result -in generation of more efficient code. - - -convergent (clang::convergent) ------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -The ``convergent`` attribute can be placed on a function declaration. It is -translated into the LLVM ``convergent`` attribute, which indicates that the call -instructions of a function with this attribute cannot be made control-dependent -on any additional values. - -In languages designed for SPMD/SIMT programming model, e.g. OpenCL or CUDA, -the call instructions of a function with this attribute must be executed by -all work items or threads in a work group or sub group. - -This attribute is different from ``noduplicate`` because it allows duplicating -function calls if it can be proved that the duplicated function calls are -not made control-dependent on any additional values, e.g., unrolling a loop -executed by all work items. - -Sample usage: -.. code-block:: c - - void convfunc(void) __attribute__((convergent)); - // Setting it as a C++11 attribute is also valid in a C++ program. - // void convfunc(void) [[clang::convergent]]; - - -deprecated (gnu::deprecated) ----------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","X","", "" - -The ``deprecated`` attribute can be applied to a function, a variable, or a -type. This is useful when identifying functions, variables, or types that are -expected to be removed in a future version of a program. - -Consider the function declaration for a hypothetical function ``f``: - -.. code-block:: c++ - - void f(void) __attribute__((deprecated("message", "replacement"))); - -When spelled as `__attribute__((deprecated))`, the deprecated attribute can have -two optional string arguments. The first one is the message to display when -emitting the warning; the second one enables the compiler to provide a Fix-It -to replace the deprecated name with a new name. Otherwise, when spelled as -`[[gnu::deprecated]] or [[deprecated]]`, the attribute can have one optional -string argument which is the message to display when emitting the warning. - - -diagnose_if ------------ -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -The ``diagnose_if`` attribute can be placed on function declarations to emit -warnings or errors at compile-time if calls to the attributed function meet -certain user-defined criteria. For example: - -.. code-block:: c - - void abs(int a) - __attribute__((diagnose_if(a >= 0, "Redundant abs call", "warning"))); - void must_abs(int a) - __attribute__((diagnose_if(a >= 0, "Redundant abs call", "error"))); - - int val = abs(1); // warning: Redundant abs call - int val2 = must_abs(1); // error: Redundant abs call - int val3 = abs(val); - int val4 = must_abs(val); // Because run-time checks are not emitted for - // diagnose_if attributes, this executes without - // issue. - - -``diagnose_if`` is closely related to ``enable_if``, with a few key differences: - -* Overload resolution is not aware of ``diagnose_if`` attributes: they're - considered only after we select the best candidate from a given candidate set. -* Function declarations that differ only in their ``diagnose_if`` attributes are - considered to be redeclarations of the same function (not overloads). -* If the condition provided to ``diagnose_if`` cannot be evaluated, no - diagnostic will be emitted. - -Otherwise, ``diagnose_if`` is essentially the logical negation of ``enable_if``. - -As a result of bullet number two, ``diagnose_if`` attributes will stack on the -same function. For example: - -.. code-block:: c - - int foo() __attribute__((diagnose_if(1, "diag1", "warning"))); - int foo() __attribute__((diagnose_if(1, "diag2", "warning"))); - - int bar = foo(); // warning: diag1 - // warning: diag2 - int (*fooptr)(void) = foo; // warning: diag1 - // warning: diag2 - - constexpr int supportsAPILevel(int N) { return N < 5; } - int baz(int a) - __attribute__((diagnose_if(!supportsAPILevel(10), - "Upgrade to API level 10 to use baz", "error"))); - int baz(int a) - __attribute__((diagnose_if(!a, "0 is not recommended.", "warning"))); - - int (*bazptr)(int) = baz; // error: Upgrade to API level 10 to use baz - int v = baz(0); // error: Upgrade to API level 10 to use baz - -Query for this feature with ``__has_attribute(diagnose_if)``. - - -disable_tail_calls (clang::disable_tail_calls) ----------------------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -The ``disable_tail_calls`` attribute instructs the backend to not perform tail call optimization inside the marked function. - -For example: - - .. code-block:: c - - int callee(int); - - int foo(int a) __attribute__((disable_tail_calls)) { - return callee(a); // This call is not tail-call optimized. - } - -Marking virtual functions as ``disable_tail_calls`` is legal. - - .. code-block:: c++ - - int callee(int); - - class Base { - public: - [[clang::disable_tail_calls]] virtual int foo1() { - return callee(); // This call is not tail-call optimized. - } - }; - - class Derived1 : public Base { - public: - int foo1() override { - return callee(); // This call is tail-call optimized. - } - }; - - -enable_if ---------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -.. Note:: Some features of this attribute are experimental. The meaning of - multiple enable_if attributes on a single declaration is subject to change in - a future version of clang. Also, the ABI is not standardized and the name - mangling may change in future versions. To avoid that, use asm labels. - -The ``enable_if`` attribute can be placed on function declarations to control -which overload is selected based on the values of the function's arguments. -When combined with the ``overloadable`` attribute, this feature is also -available in C. - -.. code-block:: c++ - - int isdigit(int c); - int isdigit(int c) __attribute__((enable_if(c <= -1 || c > 255, "chosen when 'c' is out of range"))) __attribute__((unavailable("'c' must have the value of an unsigned char or EOF"))); - - void foo(char c) { - isdigit(c); - isdigit(10); - isdigit(-10); // results in a compile-time error. - } - -The enable_if attribute takes two arguments, the first is an expression written -in terms of the function parameters, the second is a string explaining why this -overload candidate could not be selected to be displayed in diagnostics. The -expression is part of the function signature for the purposes of determining -whether it is a redeclaration (following the rules used when determining -whether a C++ template specialization is ODR-equivalent), but is not part of -the type. - -The enable_if expression is evaluated as if it were the body of a -bool-returning constexpr function declared with the arguments of the function -it is being applied to, then called with the parameters at the call site. If the -result is false or could not be determined through constant expression -evaluation, then this overload will not be chosen and the provided string may -be used in a diagnostic if the compile fails as a result. - -Because the enable_if expression is an unevaluated context, there are no global -state changes, nor the ability to pass information from the enable_if -expression to the function body. For example, suppose we want calls to -strnlen(strbuf, maxlen) to resolve to strnlen_chk(strbuf, maxlen, size of -strbuf) only if the size of strbuf can be determined: - -.. code-block:: c++ - - __attribute__((always_inline)) - static inline size_t strnlen(const char *s, size_t maxlen) - __attribute__((overloadable)) - __attribute__((enable_if(__builtin_object_size(s, 0) != -1))), - "chosen when the buffer size is known but 'maxlen' is not"))) - { - return strnlen_chk(s, maxlen, __builtin_object_size(s, 0)); - } - -Multiple enable_if attributes may be applied to a single declaration. In this -case, the enable_if expressions are evaluated from left to right in the -following manner. First, the candidates whose enable_if expressions evaluate to -false or cannot be evaluated are discarded. If the remaining candidates do not -share ODR-equivalent enable_if expressions, the overload resolution is -ambiguous. Otherwise, enable_if overload resolution continues with the next -enable_if attribute on the candidates that have not been discarded and have -remaining enable_if attributes. In this way, we pick the most specific -overload out of a number of viable overloads using enable_if. - -.. code-block:: c++ - - void f() __attribute__((enable_if(true, ""))); // #1 - void f() __attribute__((enable_if(true, ""))) __attribute__((enable_if(true, ""))); // #2 - - void g(int i, int j) __attribute__((enable_if(i, ""))); // #1 - void g(int i, int j) __attribute__((enable_if(j, ""))) __attribute__((enable_if(true))); // #2 - -In this example, a call to f() is always resolved to #2, as the first enable_if -expression is ODR-equivalent for both declarations, but #1 does not have another -enable_if expression to continue evaluating, so the next round of evaluation has -only a single candidate. In a call to g(1, 1), the call is ambiguous even though -#2 has more enable_if attributes, because the first enable_if expressions are -not ODR-equivalent. - -Query for this feature with ``__has_attribute(enable_if)``. - -Note that functions with one or more ``enable_if`` attributes may not have -their address taken, unless all of the conditions specified by said -``enable_if`` are constants that evaluate to ``true``. For example: - -.. code-block:: c - - const int TrueConstant = 1; - const int FalseConstant = 0; - int f(int a) __attribute__((enable_if(a > 0, ""))); - int g(int a) __attribute__((enable_if(a == 0 || a != 0, ""))); - int h(int a) __attribute__((enable_if(1, ""))); - int i(int a) __attribute__((enable_if(TrueConstant, ""))); - int j(int a) __attribute__((enable_if(FalseConstant, ""))); - - void fn() { - int (*ptr)(int); - ptr = &f; // error: 'a > 0' is not always true - ptr = &g; // error: 'a == 0 || a != 0' is not a truthy constant *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 16 16:02:38 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA6D9D41F56; Sun, 16 Apr 2017 16:02:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 72CF7207; Sun, 16 Apr 2017 16:02:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GG2brQ097021; Sun, 16 Apr 2017 16:02:37 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG2b50097020; Sun, 16 Apr 2017 16:02:37 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161602.v3GG2b50097020@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:02:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317020 - vendor/clang/clang-trunk-r300422 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:02:38 -0000 Author: dim Date: Sun Apr 16 16:02:37 2017 New Revision: 317020 URL: https://svnweb.freebsd.org/changeset/base/317020 Log: Tag clang trunk r300422. Added: vendor/clang/clang-trunk-r300422/ - copied from r317019, vendor/clang/dist/ From owner-svn-src-all@freebsd.org Sun Apr 16 16:02:57 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D4CE6D41FD8; Sun, 16 Apr 2017 16:02:57 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5D97D371; Sun, 16 Apr 2017 16:02:57 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GG2uwM097099; Sun, 16 Apr 2017 16:02:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG2sNJ097075; Sun, 16 Apr 2017 16:02:54 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161602.v3GG2sNJ097075@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:02:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317021 - in vendor/compiler-rt/dist: . cmake cmake/Modules include include/sanitizer include/xray lib/asan lib/asan/scripts lib/asan/tests lib/builtins lib/builtins/arm lib/builtins/x8... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:02:57 -0000 Author: dim Date: Sun Apr 16 16:02:53 2017 New Revision: 317021 URL: https://svnweb.freebsd.org/changeset/base/317021 Log: Vendor import of compiler-rt trunk r300422: https://llvm.org/svn/llvm-project/compiler-rt/trunk@300422 Added: vendor/compiler-rt/dist/include/sanitizer/tsan_interface.h (contents, props changed) vendor/compiler-rt/dist/include/xray/xray_log_interface.h (contents, props changed) vendor/compiler-rt/dist/lib/asan/asan_interface.inc (contents, props changed) vendor/compiler-rt/dist/lib/asan/asan_win_weak_interception.cc (contents, props changed) vendor/compiler-rt/dist/lib/builtins/arm/addsf3.S (contents, props changed) vendor/compiler-rt/dist/lib/builtins/ffssi2.c (contents, props changed) vendor/compiler-rt/dist/lib/builtins/os_version_check.c (contents, props changed) vendor/compiler-rt/dist/lib/lsan/lsan_common_mac.cc (contents, props changed) vendor/compiler-rt/dist/lib/lsan/lsan_linux.cc (contents, props changed) vendor/compiler-rt/dist/lib/lsan/lsan_malloc_mac.cc (contents, props changed) vendor/compiler-rt/dist/lib/lsan/weak_symbols.txt (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interface.inc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interface_posix.inc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_interface.inc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_sections.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.h (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_defs.h (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dll_thunk.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dll_thunk.h (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_weak_interception.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win_weak_interception.h (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_quarantine_test.cc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_external.cc (contents, props changed) vendor/compiler-rt/dist/lib/ubsan/ubsan_interface.inc (contents, props changed) vendor/compiler-rt/dist/lib/ubsan/ubsan_win_dll_thunk.cc (contents, props changed) vendor/compiler-rt/dist/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc (contents, props changed) vendor/compiler-rt/dist/lib/ubsan/ubsan_win_weak_interception.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/tests/unit/fdr_logging_test.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_fdr_log_records.h (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_fdr_logging.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_fdr_logging.h (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_fdr_logging_impl.h (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_log_interface.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_mips.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_mips64.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_powerpc64.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_powerpc64.inc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_trampoline_mips.S (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_trampoline_mips64.S (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_trampoline_powerpc64.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_trampoline_powerpc64_asm.S (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_tsc.h (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_utils.cc (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_utils.h (contents, props changed) vendor/compiler-rt/dist/lib/xray/xray_x86_64.inc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Darwin/scribble.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/thread_local_quarantine_pthread_join.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/asan-sigbus.cpp (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/fread_fwrite.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_heap_allocation.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Windows/interface_symbols_windows.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/non-executable-pc.cpp (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/realloc.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/strtok.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/test/builtins/TestCases/ vendor/compiler-rt/dist/test/builtins/TestCases/Darwin/ vendor/compiler-rt/dist/test/builtins/TestCases/Darwin/lit.local.cfg vendor/compiler-rt/dist/test/builtins/TestCases/Darwin/os_version_check_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/TestCases/Darwin/os_version_check_test_no_core_foundation.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_idivmod_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_uidivmod_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_uldivmod_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/ffssi2_test.c (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/lit.cfg vendor/compiler-rt/dist/test/builtins/Unit/lit.site.cfg.in (contents, props changed) vendor/compiler-rt/dist/test/builtins/lit.cfg vendor/compiler-rt/dist/test/builtins/lit.site.cfg.in (contents, props changed) vendor/compiler-rt/dist/test/cfi/bad-split.cpp (contents, props changed) vendor/compiler-rt/dist/test/interception/TestCases/ vendor/compiler-rt/dist/test/interception/TestCases/Windows/ vendor/compiler-rt/dist/test/lsan/TestCases/Linux/ vendor/compiler-rt/dist/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/Linux/disabler_in_tsd_destructor.c (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/Linux/fork.cc (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/Linux/fork_threaded.cc (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/Linux/guard-page.c (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/Linux/lit.local.cfg vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_dynamic.cc (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cc (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_pthread_specific_static.cc (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_static.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/alloca.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/fread_fwrite.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/getloadavg.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/wcsncpy.cc (contents, props changed) vendor/compiler-rt/dist/test/profile/Linux/instrprof-dir.c (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/deepbind.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/iconv_test.c (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/fpe.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/weak_hook_test.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-init.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/symbolize_stack.cc (contents, props changed) vendor/compiler-rt/dist/test/scudo/threads.cpp (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/debug_external.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/external.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/gcd-after-null.mm vendor/compiler-rt/dist/test/tsan/Darwin/main_tid.mm vendor/compiler-rt/dist/test/tsan/Darwin/workerthreads.mm vendor/compiler-rt/dist/test/tsan/Darwin/xpc-cancel.mm vendor/compiler-rt/dist/test/tsan/Linux/pie_no_aslr.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/atomic_hle.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/custom_mutex.h (contents, props changed) vendor/compiler-rt/dist/test/tsan/custom_mutex0.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/custom_mutex1.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/custom_mutex2.cc (contents, props changed) vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/nullability.c (contents, props changed) vendor/compiler-rt/dist/test/xray/TestCases/Linux/arg1-logger.cc (contents, props changed) vendor/compiler-rt/dist/test/xray/TestCases/Linux/fdr-mode.cc (contents, props changed) vendor/compiler-rt/dist/test/xray/TestCases/Linux/fdr-thread-order.cc (contents, props changed) vendor/compiler-rt/dist/test/xray/TestCases/Linux/pic_test.cc (contents, props changed) vendor/compiler-rt/dist/unittests/lit_unittest_cfg_utils.py (contents, props changed) Deleted: vendor/compiler-rt/dist/lib/asan/asan_globals_win.h vendor/compiler-rt/dist/lib/scudo/scudo_crc32.h vendor/compiler-rt/dist/lib/xray/xray_emulate_tsc.h vendor/compiler-rt/dist/lib/xray/xray_x86_64.h vendor/compiler-rt/dist/test/lsan/TestCases/cleanup_in_tsd_destructor.c vendor/compiler-rt/dist/test/lsan/TestCases/disabler_in_tsd_destructor.c vendor/compiler-rt/dist/test/lsan/TestCases/fork.cc vendor/compiler-rt/dist/test/lsan/TestCases/fork_threaded.cc vendor/compiler-rt/dist/test/lsan/TestCases/guard-page.c vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_dynamic.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_pthread_specific_static.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_static.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/fpe.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/weak_hook_test.cc Modified: vendor/compiler-rt/dist/CMakeLists.txt vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake vendor/compiler-rt/dist/cmake/base-config-ix.cmake vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake vendor/compiler-rt/dist/cmake/config-ix.cmake vendor/compiler-rt/dist/include/CMakeLists.txt vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h vendor/compiler-rt/dist/include/xray/xray_interface.h vendor/compiler-rt/dist/include/xray/xray_records.h vendor/compiler-rt/dist/lib/asan/CMakeLists.txt vendor/compiler-rt/dist/lib/asan/asan.syms.extra vendor/compiler-rt/dist/lib/asan/asan_allocator.cc vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc vendor/compiler-rt/dist/lib/asan/asan_errors.cc vendor/compiler-rt/dist/lib/asan/asan_flags.cc vendor/compiler-rt/dist/lib/asan/asan_flags.inc vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc vendor/compiler-rt/dist/lib/asan/asan_interface_internal.h vendor/compiler-rt/dist/lib/asan/asan_internal.h vendor/compiler-rt/dist/lib/asan/asan_linux.cc vendor/compiler-rt/dist/lib/asan/asan_mac.cc vendor/compiler-rt/dist/lib/asan/asan_malloc_win.cc vendor/compiler-rt/dist/lib/asan/asan_mapping.h vendor/compiler-rt/dist/lib/asan/asan_memory_profile.cc vendor/compiler-rt/dist/lib/asan/asan_posix.cc vendor/compiler-rt/dist/lib/asan/asan_report.cc vendor/compiler-rt/dist/lib/asan/asan_report.h vendor/compiler-rt/dist/lib/asan/asan_suppressions.cc vendor/compiler-rt/dist/lib/asan/asan_thread.cc vendor/compiler-rt/dist/lib/asan/asan_win.cc vendor/compiler-rt/dist/lib/asan/asan_win_dll_thunk.cc vendor/compiler-rt/dist/lib/asan/asan_win_dynamic_runtime_thunk.cc vendor/compiler-rt/dist/lib/asan/scripts/asan_symbolize.py vendor/compiler-rt/dist/lib/asan/tests/asan_interface_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_internal_interface_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_mac_test_helpers.mm vendor/compiler-rt/dist/lib/asan/tests/asan_mem_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_noinst_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_test_config.h vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt vendor/compiler-rt/dist/lib/builtins/README.txt vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_dcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_idivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_ldivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memset.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_uidivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_uldivmod.S vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S vendor/compiler-rt/dist/lib/builtins/arm/udivsi3.S vendor/compiler-rt/dist/lib/builtins/clear_cache.c vendor/compiler-rt/dist/lib/builtins/cpu_model.c vendor/compiler-rt/dist/lib/builtins/divtc3.c vendor/compiler-rt/dist/lib/builtins/int_lib.h vendor/compiler-rt/dist/lib/builtins/x86_64/floatdidf.c vendor/compiler-rt/dist/lib/builtins/x86_64/floatdisf.c vendor/compiler-rt/dist/lib/cfi/cfi.cc vendor/compiler-rt/dist/lib/esan/esan_interceptors.cpp vendor/compiler-rt/dist/lib/interception/interception_win.cc vendor/compiler-rt/dist/lib/interception/tests/interception_win_test.cc vendor/compiler-rt/dist/lib/lsan/CMakeLists.txt vendor/compiler-rt/dist/lib/lsan/lsan.cc vendor/compiler-rt/dist/lib/lsan/lsan.h vendor/compiler-rt/dist/lib/lsan/lsan_allocator.cc vendor/compiler-rt/dist/lib/lsan/lsan_allocator.h vendor/compiler-rt/dist/lib/lsan/lsan_common.cc vendor/compiler-rt/dist/lib/lsan/lsan_common.h vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc vendor/compiler-rt/dist/lib/lsan/lsan_flags.inc vendor/compiler-rt/dist/lib/lsan/lsan_interceptors.cc vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc vendor/compiler-rt/dist/lib/msan/msan_interceptors.cc vendor/compiler-rt/dist/lib/msan/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/msan/tests/msan_test.cc vendor/compiler-rt/dist/lib/profile/InstrProfData.inc vendor/compiler-rt/dist/lib/profile/InstrProfilingFile.c vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.c vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.h vendor/compiler-rt/dist/lib/profile/InstrProfilingValue.c vendor/compiler-rt/dist/lib/sanitizer_common/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.cc vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_interface.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_local_cache.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_interface_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_internal_defs.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_s390.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_list.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_malloc_mac.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mutex.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_interceptors.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_printf.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_quarantine.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_tls_get_addr.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_tls_get_addr.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.cc vendor/compiler-rt/dist/lib/sanitizer_common/scripts/sancov.py vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt vendor/compiler-rt/dist/lib/sanitizer_common/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_allocator_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_bitvector_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_list_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/weak_symbols.txt vendor/compiler-rt/dist/lib/scudo/CMakeLists.txt vendor/compiler-rt/dist/lib/scudo/scudo_allocator.cpp vendor/compiler-rt/dist/lib/scudo/scudo_allocator.h vendor/compiler-rt/dist/lib/scudo/scudo_crc32.cpp vendor/compiler-rt/dist/lib/scudo/scudo_flags.cpp vendor/compiler-rt/dist/lib/scudo/scudo_flags.inc vendor/compiler-rt/dist/lib/scudo/scudo_utils.cpp vendor/compiler-rt/dist/lib/scudo/scudo_utils.h vendor/compiler-rt/dist/lib/tsan/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/check_analyze.sh vendor/compiler-rt/dist/lib/tsan/go/tsan_go.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan.syms.extra vendor/compiler-rt/dist/lib/tsan/rtl/tsan_debugging.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_defs.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.inc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_ann.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_atomic.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_java.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_libdispatch_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_mutex.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_report.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_thread.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stat.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stat.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_suppressions.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.h vendor/compiler-rt/dist/lib/ubsan/CMakeLists.txt vendor/compiler-rt/dist/lib/ubsan/ubsan_diag.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_flags.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers.h vendor/compiler-rt/dist/lib/ubsan/ubsan_init.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_init.h vendor/compiler-rt/dist/lib/xray/CMakeLists.txt vendor/compiler-rt/dist/lib/xray/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/xray/tests/unit/CMakeLists.txt vendor/compiler-rt/dist/lib/xray/tests/unit/buffer_queue_test.cc vendor/compiler-rt/dist/lib/xray/xray_AArch64.cc vendor/compiler-rt/dist/lib/xray/xray_arm.cc vendor/compiler-rt/dist/lib/xray/xray_buffer_queue.cc vendor/compiler-rt/dist/lib/xray/xray_buffer_queue.h vendor/compiler-rt/dist/lib/xray/xray_flags.cc vendor/compiler-rt/dist/lib/xray/xray_flags.h vendor/compiler-rt/dist/lib/xray/xray_flags.inc vendor/compiler-rt/dist/lib/xray/xray_init.cc vendor/compiler-rt/dist/lib/xray/xray_inmemory_log.cc vendor/compiler-rt/dist/lib/xray/xray_interface.cc vendor/compiler-rt/dist/lib/xray/xray_interface_internal.h vendor/compiler-rt/dist/lib/xray/xray_trampoline_AArch64.S vendor/compiler-rt/dist/lib/xray/xray_trampoline_arm.S vendor/compiler-rt/dist/lib/xray/xray_trampoline_x86_64.S vendor/compiler-rt/dist/lib/xray/xray_x86_64.cc vendor/compiler-rt/dist/test/CMakeLists.txt vendor/compiler-rt/dist/test/asan/CMakeLists.txt vendor/compiler-rt/dist/test/asan/TestCases/Darwin/interface_symbols_darwin.c vendor/compiler-rt/dist/test/asan/TestCases/Darwin/malloc_set_zone_name-mprotect.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/suppressions-darwin.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/suppressions-sandbox.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/asan_dlopen_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/clang_gcc_abi.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/coverage-missing.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/interface_symbols_linux.c vendor/compiler-rt/dist/test/asan/TestCases/Linux/memmem_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/print_memory_profile_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/release_to_os_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/swapcontext_annotation.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/thread_local_quarantine_size_kb.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/closed-fds.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-maybe-open-file.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-sandboxing.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/deep_call_stack.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/halt_on_error-torture.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/halt_on_error_suppress_equal_pcs.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/stack-use-after-return.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/start-deactivated.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_host.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_intercept_memchr.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_intercept_memcpy.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_intercept_memcpy_indirect.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_intercept_memset.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_noreturn.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_poison_unpoison.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_stack_use_after_return.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/fuse-lld.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/intercept_memcpy.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/intercept_strlen.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/stack_array_left_oob.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/stack_array_right_oob.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/stack_use_after_return.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/tls_init.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc vendor/compiler-rt/dist/test/asan/TestCases/invalid-pointer-pairs.cc vendor/compiler-rt/dist/test/asan/TestCases/stack-buffer-overflow-with-position.cc vendor/compiler-rt/dist/test/asan/TestCases/strcasestr-1.c vendor/compiler-rt/dist/test/asan/TestCases/strcasestr-2.c vendor/compiler-rt/dist/test/asan/TestCases/strcspn-1.c vendor/compiler-rt/dist/test/asan/TestCases/strcspn-2.c vendor/compiler-rt/dist/test/asan/TestCases/strpbrk-1.c vendor/compiler-rt/dist/test/asan/TestCases/strpbrk-2.c vendor/compiler-rt/dist/test/asan/TestCases/strspn-1.c vendor/compiler-rt/dist/test/asan/TestCases/strspn-2.c vendor/compiler-rt/dist/test/asan/TestCases/strstr-1.c vendor/compiler-rt/dist/test/asan/TestCases/strstr-2.c vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-inlined.cc vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope.cc vendor/compiler-rt/dist/test/asan/Unit/lit.site.cfg.in vendor/compiler-rt/dist/test/asan/lit.cfg vendor/compiler-rt/dist/test/builtins/Unit/absvdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/absvsi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/absvti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/adddf3vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/addsf3vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/addtf3_test.c vendor/compiler-rt/dist/test/builtins/Unit/addvdi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/addvsi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/addvti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cdcmple_test.c vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_cfcmple_test.c vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_drsub_test.c vendor/compiler-rt/dist/test/builtins/Unit/arm/aeabi_frsub_test.c vendor/compiler-rt/dist/test/builtins/Unit/arm/call_apsr.S vendor/compiler-rt/dist/test/builtins/Unit/ashldi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/ashlti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/ashrdi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/ashrti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/bswapdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/bswapsi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/clear_cache_test.c vendor/compiler-rt/dist/test/builtins/Unit/clzdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/clzsi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/clzti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/cmpdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/cmpti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/comparedf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/comparesf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/cpu_model_test.c vendor/compiler-rt/dist/test/builtins/Unit/ctzdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/ctzsi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/ctzti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/divdc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/divdf3vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/divdi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/divmodsi4_test.c vendor/compiler-rt/dist/test/builtins/Unit/divsc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/divsf3vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/divsi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/divtc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/divtf3_test.c vendor/compiler-rt/dist/test/builtins/Unit/divti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/divxc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/enable_execute_stack_test.c vendor/compiler-rt/dist/test/builtins/Unit/eqdf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/eqsf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/eqtf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/extebdsfdf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/extenddftf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/extendhfsf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/extendsftf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/ffsdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/ffsti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixdfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixdfsivfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixdfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixsfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixsfsivfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixsfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixtfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixtfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixtfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfsivfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsdfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunssfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunssfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunssfsivfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunssfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunstfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunstfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunstfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsxfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsxfsi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixunsxfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixxfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/fixxfti_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatdidf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatdisf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatditf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatdixf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatsidfvfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatsisfvfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatsitf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floattidf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floattisf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floattitf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floattixf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatundidf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatundisf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatunditf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatundixf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatunsitf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatunssidfvfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatunssisfvfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatuntidf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatuntisf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatuntitf_test.c vendor/compiler-rt/dist/test/builtins/Unit/floatuntixf_test.c vendor/compiler-rt/dist/test/builtins/Unit/gcc_personality_test.c vendor/compiler-rt/dist/test/builtins/Unit/gedf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/gesf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/getf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/gtdf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/gtsf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/gttf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/ledf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/lesf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/letf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/lshrdi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/lshrti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/ltdf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/ltsf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/lttf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/moddi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/modsi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/modti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/muldc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/muldf3vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/muldi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/mulodi4_test.c vendor/compiler-rt/dist/test/builtins/Unit/mulosi4_test.c vendor/compiler-rt/dist/test/builtins/Unit/muloti4_test.c vendor/compiler-rt/dist/test/builtins/Unit/mulsc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/mulsf3vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/multc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/multf3_test.c vendor/compiler-rt/dist/test/builtins/Unit/multi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/mulvdi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/mulvsi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/mulvti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/mulxc3_test.c vendor/compiler-rt/dist/test/builtins/Unit/nedf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/negdf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/negdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/negsf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/negti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/negvdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/negvsi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/negvti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/nesf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/netf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/paritydi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/paritysi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/parityti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/popcountdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/popcountsi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/popcountti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/powidf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/powisf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/powitf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/powixf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/ppc/fixtfdi_test.c vendor/compiler-rt/dist/test/builtins/Unit/ppc/floatditf_test.c vendor/compiler-rt/dist/test/builtins/Unit/ppc/floatunditf_test.c vendor/compiler-rt/dist/test/builtins/Unit/ppc/qadd_test.c vendor/compiler-rt/dist/test/builtins/Unit/ppc/qdiv_test.c vendor/compiler-rt/dist/test/builtins/Unit/ppc/qmul_test.c vendor/compiler-rt/dist/test/builtins/Unit/ppc/qsub_test.c vendor/compiler-rt/dist/test/builtins/Unit/subdf3vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/subsf3vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/subtf3_test.c vendor/compiler-rt/dist/test/builtins/Unit/subvdi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/subvsi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/subvti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/trampoline_setup_test.c vendor/compiler-rt/dist/test/builtins/Unit/truncdfhf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/truncdfsf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/truncdfsf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/truncsfhf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/trunctfdf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/trunctfsf2_test.c vendor/compiler-rt/dist/test/builtins/Unit/ucmpdi2_test.c vendor/compiler-rt/dist/test/builtins/Unit/ucmpti2_test.c vendor/compiler-rt/dist/test/builtins/Unit/udivdi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/udivmoddi4_test.c vendor/compiler-rt/dist/test/builtins/Unit/udivmodsi4_test.c vendor/compiler-rt/dist/test/builtins/Unit/udivmodti4_test.c vendor/compiler-rt/dist/test/builtins/Unit/udivsi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/udivti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/umoddi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/umodsi3_test.c vendor/compiler-rt/dist/test/builtins/Unit/umodti3_test.c vendor/compiler-rt/dist/test/builtins/Unit/unorddf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/unordsf2vfp_test.c vendor/compiler-rt/dist/test/builtins/Unit/unordtf2_test.c vendor/compiler-rt/dist/test/cfi/CMakeLists.txt vendor/compiler-rt/dist/test/esan/TestCases/workingset-samples.cpp vendor/compiler-rt/dist/test/lit.common.cfg vendor/compiler-rt/dist/test/lit.common.configured.in vendor/compiler-rt/dist/test/lsan/TestCases/disabler.cc vendor/compiler-rt/dist/test/lsan/TestCases/do_leak_check_override.cc vendor/compiler-rt/dist/test/lsan/TestCases/high_allocator_contention.cc vendor/compiler-rt/dist/test/lsan/TestCases/large_allocation_leak.cc vendor/compiler-rt/dist/test/lsan/TestCases/leak_check_at_exit.cc vendor/compiler-rt/dist/test/lsan/TestCases/link_turned_off.cc vendor/compiler-rt/dist/test/lsan/TestCases/pointer_to_self.cc vendor/compiler-rt/dist/test/lsan/TestCases/print_suppressions.cc vendor/compiler-rt/dist/test/lsan/TestCases/recoverable_leak_check.cc vendor/compiler-rt/dist/test/lsan/TestCases/register_root_region.cc vendor/compiler-rt/dist/test/lsan/TestCases/stale_stack_leak.cc vendor/compiler-rt/dist/test/lsan/TestCases/suppressions_default.cc vendor/compiler-rt/dist/test/lsan/TestCases/suppressions_file.cc vendor/compiler-rt/dist/test/lsan/TestCases/swapcontext.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_after_return.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_globals_initialized.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_globals_uninitialized.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_poisoned_asan.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_registers.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_stacks.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_stacks_threaded.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_unaligned.cc vendor/compiler-rt/dist/test/lsan/lit.common.cfg vendor/compiler-rt/dist/test/msan/Linux/sendmsg.cc vendor/compiler-rt/dist/test/msan/ioctl.cc vendor/compiler-rt/dist/test/msan/ioctl_custom.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/corelimit.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-dso.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/symbolize_pc.cc vendor/compiler-rt/dist/test/sanitizer_common/lit.common.cfg vendor/compiler-rt/dist/test/sanitizer_common/print_address.h vendor/compiler-rt/dist/test/scudo/alignment.cpp vendor/compiler-rt/dist/test/scudo/double-free.cpp vendor/compiler-rt/dist/test/scudo/interface.cpp vendor/compiler-rt/dist/test/scudo/lit.cfg vendor/compiler-rt/dist/test/scudo/malloc.cpp vendor/compiler-rt/dist/test/scudo/memalign.cpp vendor/compiler-rt/dist/test/scudo/mismatch.cpp vendor/compiler-rt/dist/test/scudo/options.cpp vendor/compiler-rt/dist/test/scudo/overflow.cpp vendor/compiler-rt/dist/test/scudo/preinit.cpp vendor/compiler-rt/dist/test/scudo/quarantine.cpp vendor/compiler-rt/dist/test/scudo/random_shuffle.cpp vendor/compiler-rt/dist/test/scudo/realloc.cpp vendor/compiler-rt/dist/test/scudo/secondary.cpp vendor/compiler-rt/dist/test/scudo/sized-delete.cpp vendor/compiler-rt/dist/test/scudo/sizes.cpp vendor/compiler-rt/dist/test/tsan/Darwin/dispatch_main.mm vendor/compiler-rt/dist/test/tsan/Darwin/dispatch_once_deadlock.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-after.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-apply-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-apply.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-async-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-async-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-barrier-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-barrier.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-blocks.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-data.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-fd.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-destructor.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-leave.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-stress.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-barrier-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-barrier.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-cleanup.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-once.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-semaphore-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-serial-queue-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-cancel.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-cancel2.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-event.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-event2.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-registration.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-registration2.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-serial.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-suspend.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-sync-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-sync-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-target-queue-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/ignore-noninstrumented.mm vendor/compiler-rt/dist/test/tsan/Darwin/ignored-interceptors.mm vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-call-once.mm vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-future.mm vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr-recursive.mm vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr-stress.mm vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr.mm vendor/compiler-rt/dist/test/tsan/Darwin/lit.local.cfg vendor/compiler-rt/dist/test/tsan/Darwin/norace-objcxx-run-time.mm vendor/compiler-rt/dist/test/tsan/Darwin/objc-double-property.mm vendor/compiler-rt/dist/test/tsan/Darwin/objc-simple.mm vendor/compiler-rt/dist/test/tsan/Darwin/xpc-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/xpc.mm vendor/compiler-rt/dist/test/tsan/Linux/user_malloc.cc vendor/compiler-rt/dist/test/tsan/Unit/lit.site.cfg.in vendor/compiler-rt/dist/test/tsan/fd_socket_connect_norace.cc vendor/compiler-rt/dist/test/tsan/fd_socket_norace.cc vendor/compiler-rt/dist/test/tsan/lit.cfg vendor/compiler-rt/dist/test/ubsan/TestCases/Integer/summary.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/vla.c vendor/compiler-rt/dist/test/xray/CMakeLists.txt vendor/compiler-rt/dist/test/xray/TestCases/Linux/argv0-log-file-name.cc vendor/compiler-rt/dist/test/xray/TestCases/Linux/fixedsize-logging.cc vendor/compiler-rt/dist/test/xray/TestCases/Linux/optional-inmemory-log.cc vendor/compiler-rt/dist/test/xray/Unit/lit.site.cfg.in vendor/compiler-rt/dist/test/xray/lit.cfg vendor/compiler-rt/dist/unittests/lit.common.unit.cfg Modified: vendor/compiler-rt/dist/CMakeLists.txt ============================================================================== --- vendor/compiler-rt/dist/CMakeLists.txt Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/CMakeLists.txt Sun Apr 16 16:02:53 2017 (r317021) @@ -14,16 +14,6 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR endif() cmake_minimum_required(VERSION 3.4.3) -# FIXME: -# The OLD behavior (pre 3.2) for this policy is to not set the value of the -# CMAKE_EXE_LINKER_FLAGS variable in the generated test project. The NEW behavior -# for this policy is to set the value of the CMAKE_EXE_LINKER_FLAGS variable -# in the test project to the same as it is in the calling project. The new -# behavior cause the compiler_rt test to fail during try_compile: see -# projects/compiler-rt/cmake/Modules/CompilerRTUtils.cmake:121 such that -# CAN_TARGET_${arch} is not set properly. This results in COMPILER_RT_SUPPORTED_ARCH -# not being updated properly leading to poblems. -cmake_policy(SET CMP0056 OLD) # Add path for custom compiler-rt modules. list(INSERT CMAKE_MODULE_PATH 0 @@ -134,7 +124,7 @@ if(NOT WIN32) endif() append_list_if(COMPILER_RT_HAS_FNO_BUILTIN_FLAG -fno-builtin SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG -fno-exceptions SANITIZER_COMMON_CFLAGS) -if(NOT COMPILER_RT_DEBUG) +if(NOT COMPILER_RT_DEBUG AND NOT APPLE) append_list_if(COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG -fomit-frame-pointer SANITIZER_COMMON_CFLAGS) endif() append_list_if(COMPILER_RT_HAS_FUNWIND_TABLES_FLAG -funwind-tables SANITIZER_COMMON_CFLAGS) @@ -142,9 +132,16 @@ append_list_if(COMPILER_RT_HAS_FNO_STACK append_list_if(COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG -fno-sanitize=safe-stack SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG -fvisibility=hidden SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FVISIBILITY_INLINES_HIDDEN_FLAG -fvisibility-inlines-hidden SANITIZER_COMMON_CFLAGS) -append_list_if(COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG -fno-function-sections SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_LTO_FLAG -fno-lto SANITIZER_COMMON_CFLAGS) +# The following is a workaround for powerpc64le. This is the only architecture +# that requires -fno-function-sections to work properly. If lacking, the ASan +# Linux test function-sections-are-bad.cc fails with the following error: +# 'undefined symbol: __sanitizer_unaligned_load32'. +if(DEFINED TARGET_powerpc64le_CFLAGS) + append_list_if(COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG -fno-function-sections TARGET_powerpc64le_CFLAGS) +endif() + if(MSVC) # Replace the /M[DT][d] flags with /MT, and strip any definitions of _DEBUG, # which cause definition mismatches at link time. @@ -246,12 +243,12 @@ else() endif() set(COMPILER_RT_LLD_PATH ${LLVM_MAIN_SRC_DIR}/tools/lld) -if(EXISTS ${COMPILER_RT_LLD_PATH}/) - set(COMPILER_RT_HAS_LLD_SOURCES TRUE) +if(EXISTS ${COMPILER_RT_LLD_PATH}/ AND LLVM_TOOL_LLD_BUILD) + set(COMPILER_RT_HAS_LLD TRUE) else() - set(COMPILER_RT_HAS_LLD_SOURCES FALSE) + set(COMPILER_RT_HAS_LLD FALSE) endif() -pythonize_bool(COMPILER_RT_HAS_LLD_SOURCES) +pythonize_bool(COMPILER_RT_HAS_LLD) add_subdirectory(lib) Modified: vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Sun Apr 16 16:02:53 2017 (r317021) @@ -110,6 +110,13 @@ function(add_compiler_rt_runtime name ty "OS;ARCHS;SOURCES;CFLAGS;LINK_FLAGS;DEFS;LINK_LIBS;OBJECT_LIBS" ${ARGN}) set(libnames) + # Until we support this some other way, build compiler-rt runtime without LTO + # to allow non-LTO projects to link with it. + if(COMPILER_RT_HAS_FNO_LTO_FLAG) + set(NO_LTO_FLAGS "-fno-lto") + else() + set(NO_LTO_FLAGS "") + endif() if(APPLE) foreach(os ${LIB_OS}) if(type STREQUAL "STATIC") @@ -121,7 +128,7 @@ function(add_compiler_rt_runtime name ty list_intersect(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS) if(LIB_ARCHS_${libname}) list(APPEND libnames ${libname}) - set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS} ${LIB_CFLAGS}) + set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS} ${NO_LTO_FLAGS} ${LIB_CFLAGS}) set(output_name_${libname} ${libname}${COMPILER_RT_OS_SUFFIX}) set(sources_${libname} ${LIB_SOURCES}) format_object_libs(sources_${libname} ${os} ${LIB_OBJECT_LIBS}) @@ -149,7 +156,7 @@ function(add_compiler_rt_runtime name ty set(sources_${libname} ${LIB_SOURCES}) format_object_libs(sources_${libname} ${arch} ${LIB_OBJECT_LIBS}) set(libnames ${libnames} ${libname}) - set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS}) + set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${NO_LTO_FLAGS} ${LIB_CFLAGS}) endforeach() endif() @@ -380,6 +387,7 @@ macro(add_custom_libcxx name prefix) -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH= -DLLVM_PATH=${LLVM_MAIN_SRC_DIR} + -DLIBCXX_STANDALONE_BUILD=On LOG_BUILD 1 LOG_CONFIGURE 1 LOG_INSTALL 1 Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Sun Apr 16 16:02:53 2017 (r317021) @@ -85,10 +85,12 @@ function(darwin_test_archs os valid_arch if(TEST_COMPILE_ONLY) try_compile_only(CAN_TARGET_${os}_${arch} -v -arch ${arch} ${DARWIN_${os}_CFLAGS}) else() + set(SAVED_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${arch_linker_flags}") try_compile(CAN_TARGET_${os}_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_C} COMPILE_DEFINITIONS "-v -arch ${arch}" ${DARWIN_${os}_CFLAGS} - CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${arch_linker_flags}" OUTPUT_VARIABLE TEST_OUTPUT) + set(CMAKE_EXE_LINKER_FLAGS ${SAVED_CMAKE_EXE_LINKER_FLAGS}) endif() if(${CAN_TARGET_${os}_${arch}}) list(APPEND working_archs ${arch}) Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Sun Apr 16 16:02:53 2017 (r317021) @@ -138,15 +138,16 @@ macro(test_target_arch arch def) elseif(TEST_COMPILE_ONLY) try_compile_only(CAN_TARGET_${arch} ${TARGET_${arch}_CFLAGS}) else() - set(argstring "${CMAKE_EXE_LINKER_FLAGS} ${argstring}") set(FLAG_NO_EXCEPTIONS "") if(COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG) set(FLAG_NO_EXCEPTIONS " -fno-exceptions ") endif() + set(SAVED_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${argstring}") try_compile(CAN_TARGET_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_SOURCE} COMPILE_DEFINITIONS "${TARGET_${arch}_CFLAGS} ${FLAG_NO_EXCEPTIONS}" - OUTPUT_VARIABLE TARGET_${arch}_OUTPUT - CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS:STRING=${argstring}") + OUTPUT_VARIABLE TARGET_${arch}_OUTPUT) + set(CMAKE_EXE_LINKER_FLAGS ${SAVED_CMAKE_EXE_LINKER_FLAGS}) endif() endif() if(${CAN_TARGET_${arch}}) @@ -225,7 +226,8 @@ macro(load_llvm_config) RESULT_VARIABLE HAD_ERROR OUTPUT_VARIABLE CONFIG_OUTPUT) if(NOT HAD_ERROR) - string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH) + string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH_FROM_LLVM_CONFIG) + file(TO_CMAKE_PATH ${LLVM_CMAKE_PATH_FROM_LLVM_CONFIG} LLVM_CMAKE_PATH) else() file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE) set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") Modified: vendor/compiler-rt/dist/cmake/base-config-ix.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/base-config-ix.cmake Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/cmake/base-config-ix.cmake Sun Apr 16 16:02:53 2017 (r317021) @@ -172,6 +172,7 @@ macro(test_targets) else() test_target_arch(arm "" "-march=armv7-a" "-mfloat-abi=soft") test_target_arch(armhf "" "-march=armv7-a" "-mfloat-abi=hard") + test_target_arch(armv6m "" "-march=armv6m" "-mfloat-abi=soft") endif() elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "aarch32") test_target_arch(aarch32 "" "-march=armv8-a") Modified: vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake Sun Apr 16 16:02:53 2017 (r317021) @@ -24,7 +24,7 @@ int foo(int x, int y) { set(ARM64 aarch64) -set(ARM32 arm armhf) +set(ARM32 arm armhf armv6m) set(X86 i386 i686) set(X86_64 x86_64) set(MIPS32 mips mipsel) Modified: vendor/compiler-rt/dist/cmake/config-ix.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/config-ix.cmake Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/cmake/config-ix.cmake Sun Apr 16 16:02:53 2017 (r317021) @@ -31,6 +31,7 @@ check_cxx_compiler_flag(-fno-lto check_cxx_compiler_flag("-Werror -msse3" COMPILER_RT_HAS_MSSE3_FLAG) check_cxx_compiler_flag("-Werror -msse4.2" COMPILER_RT_HAS_MSSE4_2_FLAG) check_cxx_compiler_flag(--sysroot=. COMPILER_RT_HAS_SYSROOT_FLAG) +check_cxx_compiler_flag("-Werror -mcrc" COMPILER_RT_HAS_MCRC_FLAG) if(NOT WIN32 AND NOT CYGWIN) # MinGW warns if -fvisibility-inlines-hidden is used. @@ -163,7 +164,12 @@ set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} ${PPC64} ${S390X}) set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64}) -set(ALL_LSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64}) + +if(APPLE) + set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64}) +else() + set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64} ${ARM32}) +endif() set(ALL_MSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64}) set(ALL_PROFILE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${PPC64} ${MIPS32} ${MIPS64} ${S390X}) @@ -173,8 +179,8 @@ set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X8 set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64} ${MIPS32} ${MIPS64}) set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64}) set(ALL_ESAN_SUPPORTED_ARCH ${X86_64} ${MIPS64}) -set(ALL_SCUDO_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32}) -set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64}) +set(ALL_SCUDO_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}) +set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} powerpc64le) if(APPLE) include(CompilerRTDarwinUtils) @@ -199,7 +205,7 @@ if(APPLE) list(APPEND DARWIN_EMBEDDED_PLATFORMS ios) set(DARWIN_ios_MIN_VER_FLAG -miphoneos-version-min) set(DARWIN_ios_SANITIZER_MIN_VER_FLAG - ${DARWIN_ios_MIN_VER_FLAG}=7.0) + ${DARWIN_ios_MIN_VER_FLAG}=8.0) endif() if(COMPILER_RT_ENABLE_WATCHOS) list(APPEND DARWIN_EMBEDDED_PLATFORMS watchos) @@ -484,21 +490,21 @@ else() endif() if (PROFILE_SUPPORTED_ARCH AND NOT LLVM_USE_SANITIZER AND - OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows") + OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows|Android") set(COMPILER_RT_HAS_PROFILE TRUE) else() set(COMPILER_RT_HAS_PROFILE FALSE) endif() if (COMPILER_RT_HAS_SANITIZER_COMMON AND TSAN_SUPPORTED_ARCH AND - OS_NAME MATCHES "Darwin|Linux|FreeBSD") + OS_NAME MATCHES "Darwin|Linux|FreeBSD|Android") set(COMPILER_RT_HAS_TSAN TRUE) else() set(COMPILER_RT_HAS_TSAN FALSE) endif() if (COMPILER_RT_HAS_SANITIZER_COMMON AND UBSAN_SUPPORTED_ARCH AND - OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows") + OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows|Android") set(COMPILER_RT_HAS_UBSAN TRUE) else() set(COMPILER_RT_HAS_UBSAN FALSE) Modified: vendor/compiler-rt/dist/include/CMakeLists.txt ============================================================================== --- vendor/compiler-rt/dist/include/CMakeLists.txt Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/include/CMakeLists.txt Sun Apr 16 16:02:53 2017 (r317021) @@ -1,17 +1,23 @@ -set(SANITIZER_HEADERS - sanitizer/allocator_interface.h - sanitizer/asan_interface.h - sanitizer/common_interface_defs.h - sanitizer/coverage_interface.h - sanitizer/dfsan_interface.h - sanitizer/esan_interface.h - sanitizer/linux_syscall_hooks.h - sanitizer/lsan_interface.h - sanitizer/msan_interface.h - sanitizer/tsan_interface_atomic.h) - -set(XRAY_HEADERS - xray/xray_interface.h) +if (COMPILER_RT_BUILD_SANITIZERS) + set(SANITIZER_HEADERS + sanitizer/allocator_interface.h + sanitizer/asan_interface.h + sanitizer/common_interface_defs.h + sanitizer/coverage_interface.h + sanitizer/dfsan_interface.h + sanitizer/esan_interface.h + sanitizer/linux_syscall_hooks.h + sanitizer/lsan_interface.h + sanitizer/msan_interface.h + sanitizer/tsan_interface.h + sanitizer/tsan_interface_atomic.h) +endif(COMPILER_RT_BUILD_SANITIZERS) + +if (COMPILER_RT_BUILD_XRAY) + set(XRAY_HEADERS + xray/xray_interface.h + xray/xray_log_interface.h) +endif(COMPILER_RT_BUILD_XRAY) set(COMPILER_RT_HEADERS ${SANITIZER_HEADERS} Modified: vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h ============================================================================== --- vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h Sun Apr 16 16:02:53 2017 (r317021) @@ -158,8 +158,10 @@ extern "C" { // Prints stack traces for all live heap allocations ordered by total // allocation size until `top_percent` of total live heap is shown. // `top_percent` should be between 1 and 100. + // At most `max_number_of_contexts` contexts (stack traces) is printed. // Experimental feature currently available only with asan on Linux/x86_64. - void __sanitizer_print_memory_profile(size_t top_percent); + void __sanitizer_print_memory_profile(size_t top_percent, + size_t max_number_of_contexts); // Fiber annotation interface. // Before switching to a different stack, one must call Added: vendor/compiler-rt/dist/include/sanitizer/tsan_interface.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/compiler-rt/dist/include/sanitizer/tsan_interface.h Sun Apr 16 16:02:53 2017 (r317021) @@ -0,0 +1,121 @@ +//===-- tsan_interface.h ----------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of ThreadSanitizer (TSan), a race detector. +// +// Public interface header for TSan. +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_TSAN_INTERFACE_H +#define SANITIZER_TSAN_INTERFACE_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// __tsan_release establishes a happens-before relation with a preceding +// __tsan_acquire on the same address. +void __tsan_acquire(void *addr); +void __tsan_release(void *addr); + +// Annotations for custom mutexes. +// The annotations allow to get better reports (with sets of locked mutexes), +// detect more types of bugs (e.g. mutex misuses, races between lock/unlock and +// destruction and potential deadlocks) and improve precision and performance +// (by ignoring individual atomic operations in mutex code). However, the +// downside is that annotated mutex code itself is not checked for correctness. + +// Mutex creation flags are passed to __tsan_mutex_create annotation. +// If mutex has no constructor and __tsan_mutex_create is not called, +// the flags may be passed to __tsan_mutex_pre_lock/__tsan_mutex_post_lock +// annotations. + +// Mutex has static storage duration and no-op constructor and destructor. +// This effectively makes tsan ignore destroy annotation. +const unsigned __tsan_mutex_linker_init = 1 << 0; +// Mutex is write reentrant. +const unsigned __tsan_mutex_write_reentrant = 1 << 1; +// Mutex is read reentrant. +const unsigned __tsan_mutex_read_reentrant = 1 << 2; + +// Mutex operation flags: + +// Denotes read lock operation. +const unsigned __tsan_mutex_read_lock = 1 << 3; +// Denotes try lock operation. +const unsigned __tsan_mutex_try_lock = 1 << 4; +// Denotes that a try lock operation has failed to acquire the mutex. +const unsigned __tsan_mutex_try_lock_failed = 1 << 5; +// Denotes that the lock operation acquires multiple recursion levels. +// Number of levels is passed in recursion parameter. +// This is useful for annotation of e.g. Java builtin monitors, +// for which wait operation releases all recursive acquisitions of the mutex. +const unsigned __tsan_mutex_recursive_lock = 1 << 6; +// Denotes that the unlock operation releases all recursion levels. +// Number of released levels is returned and later must be passed to +// the corresponding __tsan_mutex_post_lock annotation. +const unsigned __tsan_mutex_recursive_unlock = 1 << 7; + +// Annotate creation of a mutex. +// Supported flags: mutex creation flags. +void __tsan_mutex_create(void *addr, unsigned flags); + +// Annotate destruction of a mutex. +// Supported flags: none. +void __tsan_mutex_destroy(void *addr, unsigned flags); + +// Annotate start of lock operation. +// Supported flags: +// - __tsan_mutex_read_lock +// - __tsan_mutex_try_lock +// - all mutex creation flags +void __tsan_mutex_pre_lock(void *addr, unsigned flags); + +// Annotate end of lock operation. +// Supported flags: +// - __tsan_mutex_read_lock (must match __tsan_mutex_pre_lock) +// - __tsan_mutex_try_lock (must match __tsan_mutex_pre_lock) +// - __tsan_mutex_try_lock_failed +// - __tsan_mutex_recursive_lock +// - all mutex creation flags +void __tsan_mutex_post_lock(void *addr, unsigned flags, int recursion); + +// Annotate start of unlock operation. +// Supported flags: +// - __tsan_mutex_read_lock +// - __tsan_mutex_recursive_unlock +int __tsan_mutex_pre_unlock(void *addr, unsigned flags); + +// Annotate end of unlock operation. +// Supported flags: +// - __tsan_mutex_read_lock (must match __tsan_mutex_pre_unlock) +void __tsan_mutex_post_unlock(void *addr, unsigned flags); + +// Annotate start/end of notify/signal/broadcast operation. +// Supported flags: none. +void __tsan_mutex_pre_signal(void *addr, unsigned flags); +void __tsan_mutex_post_signal(void *addr, unsigned flags); + +// Annotate start/end of a region of code where lock/unlock/signal operation +// diverts to do something else unrelated to the mutex. This can be used to +// annotate, for example, calls into cooperative scheduler or contention +// profiling code. +// These annotations must be called only from within +// __tsan_mutex_pre/post_lock, __tsan_mutex_pre/post_unlock, +// __tsan_mutex_pre/post_signal regions. +// Supported flags: none. +void __tsan_mutex_pre_divert(void *addr, unsigned flags); +void __tsan_mutex_post_divert(void *addr, unsigned flags); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // SANITIZER_TSAN_INTERFACE_H Modified: vendor/compiler-rt/dist/include/xray/xray_interface.h ============================================================================== --- vendor/compiler-rt/dist/include/xray/xray_interface.h Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/include/xray/xray_interface.h Sun Apr 16 16:02:53 2017 (r317021) @@ -18,7 +18,13 @@ extern "C" { -enum XRayEntryType { ENTRY = 0, EXIT = 1, TAIL = 2 }; +// Synchronize this with AsmPrinter::SledKind in LLVM. +enum XRayEntryType { + ENTRY = 0, + EXIT = 1, + TAIL = 2, + LOG_ARGS_ENTRY = 3, +}; // Provide a function to invoke for when instrumentation points are hit. This is // a user-visible control surface that overrides the default implementation. The @@ -60,6 +66,17 @@ extern XRayPatchingStatus __xray_patch() // Reverses the effect of __xray_patch(). See XRayPatchingStatus for possible // result values. extern XRayPatchingStatus __xray_unpatch(); + +// Use XRay to log the first argument of each (instrumented) function call. +// When this function exits, all threads will have observed the effect and +// start logging their subsequent affected function calls (if patched). +// +// Returns 1 on success, 0 on error. +extern int __xray_set_handler_arg1(void (*)(int32_t, XRayEntryType, uint64_t)); + +// Disables the XRay handler used to log first arguments of function calls. +// Returns 1 on success, 0 on error. +extern int __xray_remove_handler_arg1(); } #endif Added: vendor/compiler-rt/dist/include/xray/xray_log_interface.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/compiler-rt/dist/include/xray/xray_log_interface.h Sun Apr 16 16:02:53 2017 (r317021) @@ -0,0 +1,60 @@ +//===-- xray_log_interface.h ----------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a function call tracing system. +// +// APIs for installing a new logging implementation. +//===----------------------------------------------------------------------===// +#ifndef XRAY_XRAY_LOG_INTERFACE_H +#define XRAY_XRAY_LOG_INTERFACE_H + +#include "xray/xray_interface.h" +#include + +extern "C" { + +enum XRayLogInitStatus { + XRAY_LOG_UNINITIALIZED = 0, + XRAY_LOG_INITIALIZING = 1, + XRAY_LOG_INITIALIZED = 2, + XRAY_LOG_FINALIZING = 3, + XRAY_LOG_FINALIZED = 4, +}; + +enum XRayLogFlushStatus { + XRAY_LOG_NOT_FLUSHING = 0, + XRAY_LOG_FLUSHING = 1, + XRAY_LOG_FLUSHED = 2, +}; + +struct XRayLogImpl { + XRayLogInitStatus (*log_init)(size_t, size_t, void *, size_t); + XRayLogInitStatus (*log_finalize)(); + void (*handle_arg0)(int32_t, XRayEntryType); + XRayLogFlushStatus (*flush_log)(); +}; + +void __xray_set_log_impl(XRayLogImpl Impl); +XRayLogInitStatus __xray_log_init(size_t BufferSize, size_t MaxBuffers, + void *Args, size_t ArgsSize); +XRayLogInitStatus __xray_log_finalize(); +XRayLogFlushStatus __xray_log_flushLog(); + +} // extern "C" + +namespace __xray { +// Options used by the LLVM XRay FDR implementation. +struct FDRLoggingOptions { + bool ReportErrors = false; + int Fd = -1; +}; + +} // namespace __xray + +#endif // XRAY_XRAY_LOG_INTERFACE_H Modified: vendor/compiler-rt/dist/include/xray/xray_records.h ============================================================================== --- vendor/compiler-rt/dist/include/xray/xray_records.h Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/include/xray/xray_records.h Sun Apr 16 16:02:53 2017 (r317021) @@ -21,8 +21,17 @@ namespace __xray { enum FileTypes { NAIVE_LOG = 0, + FDR_LOG = 1, }; +// FDR mode use of the union field in the XRayFileHeader. +struct alignas(16) FdrAdditionalHeaderData { + uint64_t ThreadBufferSize; +}; + +static_assert(sizeof(FdrAdditionalHeaderData) == 16, + "FdrAdditionalHeaderData != 16 bytes"); + // This data structure is used to describe the contents of the file. We use this // for versioning the supported XRay file formats. struct alignas(32) XRayFileHeader { @@ -40,6 +49,16 @@ struct alignas(32) XRayFileHeader { // The frequency by which TSC increases per-second. alignas(8) uint64_t CycleFrequency = 0; + + union { + char FreeForm[16]; + // The current civiltime timestamp, as retrived from 'clock_gettime'. This + // allows readers of the file to determine when the file was created or + // written down. + struct timespec TS; + + struct FdrAdditionalHeaderData FdrData; + }; } __attribute__((packed)); static_assert(sizeof(XRayFileHeader) == 32, "XRayFileHeader != 32 bytes"); Modified: vendor/compiler-rt/dist/lib/asan/CMakeLists.txt ============================================================================== --- vendor/compiler-rt/dist/lib/asan/CMakeLists.txt Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/CMakeLists.txt Sun Apr 16 16:02:53 2017 (r317021) @@ -36,6 +36,7 @@ set(ASAN_PREINIT_SOURCES include_directories(..) set(ASAN_CFLAGS ${SANITIZER_COMMON_CFLAGS}) + append_rtti_flag(OFF ASAN_CFLAGS) set(ASAN_DYNAMIC_LINK_FLAGS) @@ -107,6 +108,7 @@ add_compiler_rt_component(asan) if(APPLE) add_weak_symbols("asan" WEAK_SYMBOL_LINK_FLAGS) + add_weak_symbols("lsan" WEAK_SYMBOL_LINK_FLAGS) add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS) add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS) @@ -176,6 +178,21 @@ else() set(VERSION_SCRIPT_FLAG) endif() + set(ASAN_DYNAMIC_WEAK_INTERCEPTION) + if (MSVC) + add_compiler_rt_object_libraries(AsanWeakInterception + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${arch} + SOURCES asan_win_weak_interception.cc + CFLAGS ${ASAN_CFLAGS} -DSANITIZER_DYNAMIC + DEFS ${ASAN_COMMON_DEFINITIONS}) + set(ASAN_DYNAMIC_WEAK_INTERCEPTION + AsanWeakInterception + UbsanWeakInterception + SancovWeakInterception + SanitizerCommonWeakInterception) + endif() + add_compiler_rt_runtime(clang_rt.asan SHARED ARCHS ${arch} @@ -187,6 +204,7 @@ else() # add_dependencies(clang_rt.asan-dynamic-${arch} clang_rt.asan-dynamic-${arch}-version-list) RTAsan_dynamic_version_script_dummy RTUbsan_cxx + ${ASAN_DYNAMIC_WEAK_INTERCEPTION} CFLAGS ${ASAN_DYNAMIC_CFLAGS} LINK_FLAGS ${ASAN_DYNAMIC_LINK_FLAGS} ${VERSION_SCRIPT_FLAG} @@ -205,28 +223,46 @@ else() endif() if (WIN32) + add_compiler_rt_object_libraries(AsanDllThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${arch} + SOURCES asan_globals_win.cc + asan_win_dll_thunk.cc + CFLAGS ${ASAN_CFLAGS} -DSANITIZER_DLL_THUNK + DEFS ${ASAN_COMMON_DEFINITIONS}) + add_compiler_rt_runtime(clang_rt.asan_dll_thunk STATIC ARCHS ${arch} - SOURCES asan_win_dll_thunk.cc - asan_globals_win.cc - $ - CFLAGS ${ASAN_CFLAGS} -DASAN_DLL_THUNK - DEFS ${ASAN_COMMON_DEFINITIONS} + OBJECT_LIBS AsanDllThunk + UbsanDllThunk + SancovDllThunk + SanitizerCommonDllThunk + SOURCES $ PARENT_TARGET asan) - set(DYNAMIC_RUNTIME_THUNK_CFLAGS "-DASAN_DYNAMIC_RUNTIME_THUNK") + set(DYNAMIC_RUNTIME_THUNK_CFLAGS "-DSANITIZER_DYNAMIC_RUNTIME_THUNK") if(MSVC) list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-Zl") elseif(CMAKE_C_COMPILER_ID MATCHES Clang) list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-nodefaultlibs") endif() + add_compiler_rt_object_libraries(AsanDynamicRuntimeThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${arch} + SOURCES asan_globals_win.cc + asan_win_dynamic_runtime_thunk.cc + CFLAGS ${ASAN_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS} + DEFS ${ASAN_COMMON_DEFINITIONS}) + add_compiler_rt_runtime(clang_rt.asan_dynamic_runtime_thunk STATIC ARCHS ${arch} - SOURCES asan_win_dynamic_runtime_thunk.cc - asan_globals_win.cc + OBJECT_LIBS AsanDynamicRuntimeThunk + UbsanDynamicRuntimeThunk + SancovDynamicRuntimeThunk + SanitizerCommonDynamicRuntimeThunk CFLAGS ${ASAN_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS} DEFS ${ASAN_COMMON_DEFINITIONS} PARENT_TARGET asan) Modified: vendor/compiler-rt/dist/lib/asan/asan.syms.extra ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan.syms.extra Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/asan.syms.extra Sun Apr 16 16:02:53 2017 (r317021) @@ -1,3 +1,4 @@ __asan_* __lsan_* __ubsan_* +__sancov_* Modified: vendor/compiler-rt/dist/lib/asan/asan_allocator.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_allocator.cc Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/asan_allocator.cc Sun Apr 16 16:02:53 2017 (r317021) @@ -523,6 +523,18 @@ struct Allocator { AsanThread *t = GetCurrentThread(); m->free_tid = t ? t->tid() : 0; m->free_context_id = StackDepotPut(*stack); + + Flags &fl = *flags(); + if (fl.max_free_fill_size > 0) { + // We have to skip the chunk header, it contains free_context_id. + uptr scribble_start = (uptr)m + kChunkHeaderSize + kChunkHeader2Size; + if (m->UsedSize() >= kChunkHeader2Size) { // Skip Header2 in user area. + uptr size_to_fill = m->UsedSize() - kChunkHeader2Size; + size_to_fill = Min(size_to_fill, (uptr)fl.max_free_fill_size); + REAL(memset)((void *)scribble_start, fl.free_fill_byte, size_to_fill); + } + } + // Poison the region. PoisonShadow(m->Beg(), RoundUpTo(m->UsedSize(), SHADOW_GRANULARITY), @@ -554,7 +566,17 @@ struct Allocator { uptr chunk_beg = p - kChunkHeaderSize; AsanChunk *m = reinterpret_cast(chunk_beg); + // On Windows, uninstrumented DLLs may allocate memory before ASan hooks + // malloc. Don't report an invalid free in this case. + if (SANITIZER_WINDOWS && + !get_allocator().PointerIsMine(ptr)) { + if (!IsSystemHeapAddress(p)) + ReportFreeNotMalloced(p, stack); + return; + } + ASAN_FREE_HOOK(ptr); + // Must mark the chunk as quarantined before any changes to its metadata. // Do not quarantine given chunk if we failed to set CHUNK_QUARANTINE flag. if (!AtomicallySetQuarantineFlagIfAllocated(m, ptr, stack)) return; @@ -790,8 +812,12 @@ void *asan_realloc(void *p, uptr size, B if (!p) return instance.Allocate(size, 8, stack, FROM_MALLOC, true); if (size == 0) { - instance.Deallocate(p, 0, stack, FROM_MALLOC); - return nullptr; + if (flags()->allocator_frees_and_returns_null_on_realloc_zero) { + instance.Deallocate(p, 0, stack, FROM_MALLOC); + return nullptr; + } + // Allocate a size of 1 if we shouldn't free() on Realloc to 0 + size = 1; } return instance.Reallocate(p, size, stack); } @@ -958,15 +984,13 @@ uptr __sanitizer_get_allocated_size(cons #if !SANITIZER_SUPPORTS_WEAK_HOOKS // Provide default (no-op) implementation of malloc hooks. -extern "C" { -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_malloc_hook(void *ptr, uptr size) { +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_malloc_hook, + void *ptr, uptr size) { (void)ptr; (void)size; } -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_free_hook(void *ptr) { + +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_free_hook, void *ptr) { (void)ptr; } -} // extern "C" #endif Modified: vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc Sun Apr 16 16:02:53 2017 (r317021) @@ -252,6 +252,9 @@ static void PrintAccessAndVarIntersectio str.append("%c", var.name_pos[i]); } str.append("'"); + if (var.line > 0) { + str.append(" (line %d)", var.line); + } if (pos_descr) { Decorator d; // FIXME: we may want to also print the size of the access here, Modified: vendor/compiler-rt/dist/lib/asan/asan_errors.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_errors.cc Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/asan_errors.cc Sun Apr 16 16:02:53 2017 (r317021) @@ -58,10 +58,22 @@ static void MaybeDumpRegisters(void *con SignalContext::DumpAllRegisters(context); } +static void MaybeReportNonExecRegion(uptr pc) { +#if SANITIZER_FREEBSD || SANITIZER_LINUX + MemoryMappingLayout proc_maps(/*cache_enabled*/ true); + uptr start, end, protection; + while (proc_maps.Next(&start, &end, nullptr, nullptr, 0, &protection)) { + if (pc >= start && pc < end && + !(protection & MemoryMappingLayout::kProtectionExecute)) + Report("Hint: PC is at a non-executable region. Maybe a wild jump?\n"); + } +#endif +} + void ErrorDeadlySignal::Print() { Decorator d; Printf("%s", d.Warning()); - const char *description = DescribeSignalOrException(signo); + const char *description = __sanitizer::DescribeSignalOrException(signo); Report( "ERROR: AddressSanitizer: %s on unknown address %p (pc %p bp %p sp %p " "T%d)\n", @@ -77,6 +89,7 @@ void ErrorDeadlySignal::Print() { if (addr < GetPageSizeCached()) Report("Hint: address points to the zero page.\n"); } + MaybeReportNonExecRegion(pc); scariness.Print(); BufferedStackTrace stack; GetStackTraceWithPcBpAndContext(&stack, kStackTraceMax, pc, bp, context, Modified: vendor/compiler-rt/dist/lib/asan/asan_flags.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_flags.cc Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/asan_flags.cc Sun Apr 16 16:02:53 2017 (r317021) @@ -61,7 +61,7 @@ void InitializeFlags() { { CommonFlags cf; cf.CopyFrom(*common_flags()); - cf.detect_leaks = CAN_SANITIZE_LEAKS; + cf.detect_leaks = cf.detect_leaks && CAN_SANITIZE_LEAKS; cf.external_symbolizer_path = GetEnv("ASAN_SYMBOLIZER_PATH"); cf.malloc_context_size = kDefaultMallocContextSize; cf.intercept_tls_get_addr = true; @@ -95,6 +95,18 @@ void InitializeFlags() { RegisterCommonFlags(&ubsan_parser); #endif + if (SANITIZER_MAC) { + // Support macOS MallocScribble and MallocPreScribble: + // + if (GetEnv("MallocScribble")) { + f->max_free_fill_size = 0x1000; + } + if (GetEnv("MallocPreScribble")) { + f->malloc_fill_byte = 0xaa; + } + } + // Override from ASan compile definition. const char *asan_compile_def = MaybeUseAsanDefaultOptionsCompileDefinition(); asan_parser.ParseString(asan_compile_def); @@ -186,9 +198,6 @@ void InitializeFlags() { } // namespace __asan -#if !SANITIZER_SUPPORTS_WEAK_HOOKS -extern "C" { -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -const char* __asan_default_options() { return ""; } -} // extern "C" -#endif +SANITIZER_INTERFACE_WEAK_DEF(const char*, __asan_default_options, void) { + return ""; +} Modified: vendor/compiler-rt/dist/lib/asan/asan_flags.inc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_flags.inc Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/asan_flags.inc Sun Apr 16 16:02:53 2017 (r317021) @@ -63,8 +63,14 @@ ASAN_FLAG( int, max_malloc_fill_size, 0x1000, // By default, fill only the first 4K. "ASan allocator flag. max_malloc_fill_size is the maximal amount of " "bytes that will be filled with malloc_fill_byte on malloc.") +ASAN_FLAG( + int, max_free_fill_size, 0, + "ASan allocator flag. max_free_fill_size is the maximal amount of " + "bytes that will be filled with free_fill_byte during free.") ASAN_FLAG(int, malloc_fill_byte, 0xbe, "Value used to fill the newly allocated memory.") +ASAN_FLAG(int, free_fill_byte, 0x55, + "Value used to fill deallocated memory.") ASAN_FLAG(bool, allow_user_poisoning, true, "If set, user may manually mark memory regions as poisoned or " "unpoisoned.") @@ -148,3 +154,10 @@ ASAN_FLAG(bool, halt_on_error, true, "(WARNING: USE AT YOUR OWN RISK!)") ASAN_FLAG(bool, use_odr_indicator, false, "Use special ODR indicator symbol for ODR violation detection") +ASAN_FLAG(bool, allocator_frees_and_returns_null_on_realloc_zero, true, + "realloc(p, 0) is equivalent to free(p) by default (Same as the " + "POSIX standard). If set to false, realloc(p, 0) will return a " + "pointer to an allocated space which can not be used.") +ASAN_FLAG(bool, verify_asan_link_order, true, + "Check position of ASan runtime in library list (needs to be disabled" + " when other library has to be preloaded system-wide)") Modified: vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc Sun Apr 16 16:02:53 2017 (r317021) @@ -29,7 +29,7 @@ static void call_on_globals(void (*hook) __asan_global *end = &__asan_globals_end; uptr bytediff = (uptr)end - (uptr)start; if (bytediff % sizeof(__asan_global) != 0) { -#ifdef ASAN_DLL_THUNK +#ifdef SANITIZER_DLL_THUNK __debugbreak(); #else CHECK("corrupt asan global array"); Modified: vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc Sun Apr 16 16:02:37 2017 (r317020) +++ vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc Sun Apr 16 16:02:53 2017 (r317021) @@ -228,9 +228,11 @@ DECLARE_REAL_AND_INTERCEPTOR(void, free, // Strict init-order checking is dlopen-hostile: // https://github.com/google/sanitizers/issues/178 #define COMMON_INTERCEPTOR_ON_DLOPEN(filename, flag) \ - if (flags()->strict_init_order) { \ - StopInitOrderChecking(); \ - } + do { \ + if (flags()->strict_init_order) \ + StopInitOrderChecking(); \ + CheckNoDeepBind(filename, flag); \ + } while (false) #define COMMON_INTERCEPTOR_ON_EXIT(ctx) OnExit() #define COMMON_INTERCEPTOR_LIBRARY_LOADED(filename, handle) \ CoverageUpdateMapping() Added: vendor/compiler-rt/dist/lib/asan/asan_interface.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/compiler-rt/dist/lib/asan/asan_interface.inc Sun Apr 16 16:02:53 2017 (r317021) @@ -0,0 +1,167 @@ +//===-- asan_interface.inc ------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// Asan interface list. +//===----------------------------------------------------------------------===// +INTERFACE_FUNCTION(__asan_addr_is_in_fake_stack) +INTERFACE_FUNCTION(__asan_address_is_poisoned) +INTERFACE_FUNCTION(__asan_after_dynamic_init) +INTERFACE_FUNCTION(__asan_alloca_poison) +INTERFACE_FUNCTION(__asan_allocas_unpoison) +INTERFACE_FUNCTION(__asan_before_dynamic_init) +INTERFACE_FUNCTION(__asan_describe_address) +INTERFACE_FUNCTION(__asan_exp_load1) +INTERFACE_FUNCTION(__asan_exp_load2) +INTERFACE_FUNCTION(__asan_exp_load4) +INTERFACE_FUNCTION(__asan_exp_load8) +INTERFACE_FUNCTION(__asan_exp_load16) +INTERFACE_FUNCTION(__asan_exp_loadN) +INTERFACE_FUNCTION(__asan_exp_store1) +INTERFACE_FUNCTION(__asan_exp_store2) +INTERFACE_FUNCTION(__asan_exp_store4) +INTERFACE_FUNCTION(__asan_exp_store8) +INTERFACE_FUNCTION(__asan_exp_store16) +INTERFACE_FUNCTION(__asan_exp_storeN) +INTERFACE_FUNCTION(__asan_get_alloc_stack) +INTERFACE_FUNCTION(__asan_get_current_fake_stack) +INTERFACE_FUNCTION(__asan_get_free_stack) +INTERFACE_FUNCTION(__asan_get_report_access_size) +INTERFACE_FUNCTION(__asan_get_report_access_type) +INTERFACE_FUNCTION(__asan_get_report_address) +INTERFACE_FUNCTION(__asan_get_report_bp) +INTERFACE_FUNCTION(__asan_get_report_description) +INTERFACE_FUNCTION(__asan_get_report_pc) +INTERFACE_FUNCTION(__asan_get_report_sp) +INTERFACE_FUNCTION(__asan_get_shadow_mapping) +INTERFACE_FUNCTION(__asan_handle_no_return) +INTERFACE_FUNCTION(__asan_init) +INTERFACE_FUNCTION(__asan_load_cxx_array_cookie) +INTERFACE_FUNCTION(__asan_load1) +INTERFACE_FUNCTION(__asan_load2) +INTERFACE_FUNCTION(__asan_load4) +INTERFACE_FUNCTION(__asan_load8) +INTERFACE_FUNCTION(__asan_load16) +INTERFACE_FUNCTION(__asan_loadN) +INTERFACE_FUNCTION(__asan_load1_noabort) +INTERFACE_FUNCTION(__asan_load2_noabort) +INTERFACE_FUNCTION(__asan_load4_noabort) +INTERFACE_FUNCTION(__asan_load8_noabort) +INTERFACE_FUNCTION(__asan_load16_noabort) +INTERFACE_FUNCTION(__asan_loadN_noabort) +INTERFACE_FUNCTION(__asan_locate_address) +INTERFACE_FUNCTION(__asan_memcpy) +INTERFACE_FUNCTION(__asan_memmove) +INTERFACE_FUNCTION(__asan_memset) +INTERFACE_FUNCTION(__asan_poison_cxx_array_cookie) +INTERFACE_FUNCTION(__asan_poison_intra_object_redzone) +INTERFACE_FUNCTION(__asan_poison_memory_region) +INTERFACE_FUNCTION(__asan_poison_stack_memory) +INTERFACE_FUNCTION(__asan_print_accumulated_stats) +INTERFACE_FUNCTION(__asan_region_is_poisoned) +INTERFACE_FUNCTION(__asan_register_globals) +INTERFACE_FUNCTION(__asan_register_image_globals) +INTERFACE_FUNCTION(__asan_report_error) +INTERFACE_FUNCTION(__asan_report_exp_load1) +INTERFACE_FUNCTION(__asan_report_exp_load2) +INTERFACE_FUNCTION(__asan_report_exp_load4) +INTERFACE_FUNCTION(__asan_report_exp_load8) +INTERFACE_FUNCTION(__asan_report_exp_load16) +INTERFACE_FUNCTION(__asan_report_exp_load_n) +INTERFACE_FUNCTION(__asan_report_exp_store1) +INTERFACE_FUNCTION(__asan_report_exp_store2) +INTERFACE_FUNCTION(__asan_report_exp_store4) +INTERFACE_FUNCTION(__asan_report_exp_store8) +INTERFACE_FUNCTION(__asan_report_exp_store16) +INTERFACE_FUNCTION(__asan_report_exp_store_n) +INTERFACE_FUNCTION(__asan_report_load1) +INTERFACE_FUNCTION(__asan_report_load2) +INTERFACE_FUNCTION(__asan_report_load4) +INTERFACE_FUNCTION(__asan_report_load8) +INTERFACE_FUNCTION(__asan_report_load16) +INTERFACE_FUNCTION(__asan_report_load_n) +INTERFACE_FUNCTION(__asan_report_load1_noabort) +INTERFACE_FUNCTION(__asan_report_load2_noabort) +INTERFACE_FUNCTION(__asan_report_load4_noabort) +INTERFACE_FUNCTION(__asan_report_load8_noabort) +INTERFACE_FUNCTION(__asan_report_load16_noabort) +INTERFACE_FUNCTION(__asan_report_load_n_noabort) +INTERFACE_FUNCTION(__asan_report_present) +INTERFACE_FUNCTION(__asan_report_store1) +INTERFACE_FUNCTION(__asan_report_store2) +INTERFACE_FUNCTION(__asan_report_store4) +INTERFACE_FUNCTION(__asan_report_store8) +INTERFACE_FUNCTION(__asan_report_store16) +INTERFACE_FUNCTION(__asan_report_store_n) +INTERFACE_FUNCTION(__asan_report_store1_noabort) +INTERFACE_FUNCTION(__asan_report_store2_noabort) +INTERFACE_FUNCTION(__asan_report_store4_noabort) +INTERFACE_FUNCTION(__asan_report_store8_noabort) +INTERFACE_FUNCTION(__asan_report_store16_noabort) +INTERFACE_FUNCTION(__asan_report_store_n_noabort) +INTERFACE_FUNCTION(__asan_set_death_callback) +INTERFACE_FUNCTION(__asan_set_error_report_callback) +INTERFACE_FUNCTION(__asan_set_shadow_00) +INTERFACE_FUNCTION(__asan_set_shadow_f1) +INTERFACE_FUNCTION(__asan_set_shadow_f2) +INTERFACE_FUNCTION(__asan_set_shadow_f3) +INTERFACE_FUNCTION(__asan_set_shadow_f5) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 16 16:03:02 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D4C6CD41FEB; Sun, 16 Apr 2017 16:03:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A2643C6; Sun, 16 Apr 2017 16:03:02 +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 v3GG31st097152; Sun, 16 Apr 2017 16:03:01 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG31qg097151; Sun, 16 Apr 2017 16:03:01 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161603.v3GG31qg097151@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:03:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317022 - vendor/compiler-rt/compiler-rt-trunk-r300422 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:03:03 -0000 Author: dim Date: Sun Apr 16 16:03:01 2017 New Revision: 317022 URL: https://svnweb.freebsd.org/changeset/base/317022 Log: Tag compiler-rt trunk r300422. Added: vendor/compiler-rt/compiler-rt-trunk-r300422/ - copied from r317021, vendor/compiler-rt/dist/ From owner-svn-src-all@freebsd.org Sun Apr 16 16:03:27 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6DB16D400B8; Sun, 16 Apr 2017 16:03:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A513585B; Sun, 16 Apr 2017 16:03:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GG3PWR097228; Sun, 16 Apr 2017 16:03:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG3NhD097207; Sun, 16 Apr 2017 16:03:23 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161603.v3GG3NhD097207@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:03:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317023 - in vendor/libc++/dist: . cmake cmake/Modules docs docs/DesignDocs include include/experimental include/ext include/support/fuchsia include/support/win32 lib lib/abi lib/abi/3.... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:03:27 -0000 Author: dim Date: Sun Apr 16 16:03:23 2017 New Revision: 317023 URL: https://svnweb.freebsd.org/changeset/base/317023 Log: Vendor import of libc++ trunk r300422: https://llvm.org/svn/llvm-project/libcxx/trunk@300422 Added: vendor/libc++/dist/cmake/Modules/HandleCompilerRT.cmake vendor/libc++/dist/include/support/fuchsia/ vendor/libc++/dist/include/support/fuchsia/xlocale.h (contents, props changed) vendor/libc++/dist/lib/abi/3.9/x86_64-apple-darwin16.abilist vendor/libc++/dist/lib/abi/4.0/x86_64-apple-darwin16.abilist vendor/libc++/dist/lib/abi/x86_64-apple-darwin16.abilist vendor/libc++/dist/lib/libc++abi-new-delete.exp vendor/libc++/dist/src/functional.cpp (contents, props changed) vendor/libc++/dist/src/support/runtime/ vendor/libc++/dist/src/support/runtime/exception_fallback.ipp vendor/libc++/dist/src/support/runtime/exception_glibcxx.ipp vendor/libc++/dist/src/support/runtime/exception_libcxxabi.ipp vendor/libc++/dist/src/support/runtime/exception_libcxxrt.ipp vendor/libc++/dist/src/support/runtime/exception_msvc.ipp vendor/libc++/dist/src/support/runtime/exception_pointer_cxxabi.ipp vendor/libc++/dist/src/support/runtime/exception_pointer_glibcxx.ipp vendor/libc++/dist/src/support/runtime/exception_pointer_unimplemented.ipp vendor/libc++/dist/src/support/runtime/new_handler_fallback.ipp vendor/libc++/dist/test/libcxx/algorithms/alg.modifying.operations/ vendor/libc++/dist/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/ vendor/libc++/dist/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.cxx1z.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/atomics/diagnose_invalid_memory_order.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/associative/non_const_comparator.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/non_const_comparator.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/unord.set/missing_hash_specialization.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/depr.auto.ptr/ vendor/libc++/dist/test/libcxx/depr/depr.auto.ptr/auto.ptr/ vendor/libc++/dist/test/libcxx/depr/depr.auto.ptr/auto.ptr/auto_ptr.cxx1z.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/depr.function.objects/ vendor/libc++/dist/test/libcxx/depr/depr.function.objects/depr.adaptors/ vendor/libc++/dist/test/libcxx/depr/depr.function.objects/depr.adaptors.cxx1z.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/enable_removed_cpp17_features.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/exception.unexpected/ vendor/libc++/dist/test/libcxx/depr/exception.unexpected/get_unexpected.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/exception.unexpected/set_unexpected.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/exception.unexpected/unexpected.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/exception.unexpected/unexpected_disabled_cpp17.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/filesystem/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/function.objects/unord.hash/ vendor/libc++/dist/test/libcxx/utilities/function.objects/unord.hash/murmur2_or_cityhash_ubsan_unsigned_overflow_ignored.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/meta/meta.unary/meta.unary.prop/missing_is_aggregate_trait.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/clear.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.function.pointer.adaptors/pointer_to_binary_function.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.function.pointer.adaptors/pointer_to_unary_function.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.function.pointer.adaptors/ptr_fun1.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.function.pointer.adaptors/ptr_fun2.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1_ref_t.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1_t.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref1.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref_t.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_t.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1_ref_t.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1_t.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref1.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref_t.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_t.cxx1z.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.observers/bool.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.assign/braced_init.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.bool1.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.bool2.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.bool3.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.bool4.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.bool1.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.bool2.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.bool3.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.bool4.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/string.view/lit.local.cfg vendor/libc++/dist/test/std/language.support/support.types/byte.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/ vendor/libc++/dist/test/std/language.support/support.types/byteops/and.assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/and.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.assign.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/not.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/or.assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/or.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.assign.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/to_integer.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/to_integer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/xor.assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.types/byteops/xor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/traits_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.cons/assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/traits_mismatch.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/ vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/adopt_lock.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/assign.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/copy.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/mutex.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/mutex.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/types.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/enabled_hashes.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.hash/enabled_hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_aggregate.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/optional/optional.hash/enabled_hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/optional/optional.nullopt/nullopt_t.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/copy.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/move.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/README.TXT (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/pointer_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.runtime.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.single.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/null.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/nullptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/auto_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/move_convert.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/move_convert.runtime.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/move_convert.single.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/null.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/nullptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/pointer_deleter.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/pointer_deleter.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.dtor/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.dtor/null.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/release.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/reset.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/reset.runtime.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/reset.single.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/reset_self.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/dereference.runtime.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/dereference.single.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/explicit_bool.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/get.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/get_deleter.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/op_arrow.runtime.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/op_arrow.single.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/op_subscript.runtime.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/op_subscript.single.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array1.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array2.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array3.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array4.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.single.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/convert_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/incomplete.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/void.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/convert_ctor.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/convert_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/incomplete.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.general/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.general/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.special/ vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.special/cmp_nullptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.special/eq.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.special/rel.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.special/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.general/ignore.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/type.index/type.index.hash/enabled_hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/variant/variant.hash/enabled_hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/support/deleter_types.h (contents, props changed) vendor/libc++/dist/test/support/msvc_stdlib_force_include.hpp vendor/libc++/dist/test/support/poisoned_hash_helper.hpp vendor/libc++/dist/test/support/set_windows_crt_report_mode.h (contents, props changed) vendor/libc++/dist/test/support/test.support/test_poisoned_hash_helper.pass.cpp (contents, props changed) vendor/libc++/dist/test/support/test.workarounds/ vendor/libc++/dist/test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp (contents, props changed) vendor/libc++/dist/test/support/test_workarounds.h (contents, props changed) vendor/libc++/dist/test/support/unique_ptr_test_helper.h (contents, props changed) vendor/libc++/dist/utils/gen_link_script.py (contents, props changed) vendor/libc++/dist/utils/libcxx/ vendor/libc++/dist/utils/libcxx/__init__.py (contents, props changed) vendor/libc++/dist/utils/libcxx/compiler.py (contents, props changed) vendor/libc++/dist/utils/libcxx/sym_check/ vendor/libc++/dist/utils/libcxx/sym_check/__init__.py (contents, props changed) vendor/libc++/dist/utils/libcxx/sym_check/diff.py (contents, props changed) vendor/libc++/dist/utils/libcxx/sym_check/extract.py (contents, props changed) vendor/libc++/dist/utils/libcxx/sym_check/match.py (contents, props changed) vendor/libc++/dist/utils/libcxx/sym_check/util.py (contents, props changed) vendor/libc++/dist/utils/libcxx/test/ vendor/libc++/dist/utils/libcxx/test/__init__.py (contents, props changed) vendor/libc++/dist/utils/libcxx/test/config.py (contents, props changed) vendor/libc++/dist/utils/libcxx/test/executor.py (contents, props changed) vendor/libc++/dist/utils/libcxx/test/format.py (contents, props changed) vendor/libc++/dist/utils/libcxx/test/target_info.py (contents, props changed) vendor/libc++/dist/utils/libcxx/test/tracing.py (contents, props changed) vendor/libc++/dist/utils/libcxx/util.py (contents, props changed) vendor/libc++/dist/utils/not.py (contents, props changed) vendor/libc++/dist/utils/sym_diff.py (contents, props changed) vendor/libc++/dist/utils/sym_extract.py (contents, props changed) vendor/libc++/dist/utils/sym_match.py (contents, props changed) vendor/libc++/dist/utils/symcheck-blacklists/ vendor/libc++/dist/utils/symcheck-blacklists/linux_blacklist.txt (contents, props changed) vendor/libc++/dist/utils/symcheck-blacklists/osx_blacklist.txt (contents, props changed) Deleted: vendor/libc++/dist/lib/abi/3.9/x86_64-apple-darwin16.0.abilist vendor/libc++/dist/lib/abi/4.0/x86_64-apple-darwin16.0.0.abilist vendor/libc++/dist/lib/abi/x86_64-apple-darwin16.0.0.abilist vendor/libc++/dist/lib/buildit vendor/libc++/dist/test/libcxx/__init__.py vendor/libc++/dist/test/libcxx/compiler.py vendor/libc++/dist/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/max_size.pass.cpp vendor/libc++/dist/test/libcxx/test/__init__.py vendor/libc++/dist/test/libcxx/test/config.py vendor/libc++/dist/test/libcxx/test/executor.py vendor/libc++/dist/test/libcxx/test/format.py vendor/libc++/dist/test/libcxx/test/target_info.py vendor/libc++/dist/test/libcxx/test/tracing.py vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex_mangling.pass.cpp vendor/libc++/dist/test/libcxx/util.py vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/size.fail.cpp vendor/libc++/dist/test/std/strings/string.view/nothing_to_do.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_adopt_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_assign.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_copy.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex_cxx03.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_types.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/deleter.h vendor/libc++/dist/test/std/utilities/memory/unique.ptr/nothing_to_do.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.array.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.array1.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.array2.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.array3.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.array4.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.single.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/nothing_to_do.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/convert_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/default.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/incomplete.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt/void.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/convert_ctor.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/convert_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/default.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/incomplete.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.general/nothing_to_do.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert05.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert06.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert07.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert08.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move_convert09.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_asgn.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/nullptr_asgn.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/pointer_type.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert05.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert06.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert07.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert08.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert09.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert10.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert11.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert12.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert13.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert14.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert15.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert16.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert17.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move_convert18.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/nullptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter03.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter04.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter05.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.modifiers/release.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.modifiers/reset1.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.modifiers/reset2.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.modifiers/swap.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.observers/dereference.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.observers/explicit_bool.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.observers/get.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.observers/get_deleter.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.observers/index.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.observers/op_arrow.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/pointer_type.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert05.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert06.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert13.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/null.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/nullptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/auto_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/auto_pointer01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/auto_pointer02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert05.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert06.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert07.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert08.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert09.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert10.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert11.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert12.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert13.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/nullptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer01.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer02.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer03.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter04.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.dtor/null.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/release.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset1.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset2.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset_self.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/swap.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.observers/dereference.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.observers/explicit_bool.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.observers/get.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.observers/get_deleter.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.observers/index.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.observers/op_arrow.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.special/cmp_nullptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.special/eq.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.special/rel.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.special/swap.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/test_deleter.h vendor/libc++/dist/test/testit vendor/libc++/dist/utils/gen_link_script/gen_link_script.py vendor/libc++/dist/utils/not/not.py vendor/libc++/dist/utils/sym_check/linux_blacklist.txt vendor/libc++/dist/utils/sym_check/osx_blacklist.txt vendor/libc++/dist/utils/sym_check/sym_check/__init__.py vendor/libc++/dist/utils/sym_check/sym_check/diff.py vendor/libc++/dist/utils/sym_check/sym_check/extract.py vendor/libc++/dist/utils/sym_check/sym_check/match.py vendor/libc++/dist/utils/sym_check/sym_check/util.py vendor/libc++/dist/utils/sym_check/sym_diff.py vendor/libc++/dist/utils/sym_check/sym_extract.py vendor/libc++/dist/utils/sym_check/sym_match.py Modified: vendor/libc++/dist/.clang-format vendor/libc++/dist/CMakeLists.txt vendor/libc++/dist/CREDITS.TXT vendor/libc++/dist/TODO.TXT vendor/libc++/dist/cmake/Modules/CodeCoverage.cmake vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake vendor/libc++/dist/cmake/config-ix.cmake vendor/libc++/dist/docs/BuildingLibcxx.rst vendor/libc++/dist/docs/DesignDocs/DebugMode.rst vendor/libc++/dist/docs/DesignDocs/ThreadingSupportAPI.rst vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst vendor/libc++/dist/docs/UsingLibcxx.rst vendor/libc++/dist/docs/conf.py vendor/libc++/dist/docs/index.rst vendor/libc++/dist/include/__config vendor/libc++/dist/include/__debug vendor/libc++/dist/include/__functional_base vendor/libc++/dist/include/__hash_table vendor/libc++/dist/include/__libcpp_version vendor/libc++/dist/include/__locale vendor/libc++/dist/include/__mutex_base vendor/libc++/dist/include/__split_buffer vendor/libc++/dist/include/__threading_support vendor/libc++/dist/include/__tree vendor/libc++/dist/include/__undef_min_max vendor/libc++/dist/include/algorithm vendor/libc++/dist/include/any vendor/libc++/dist/include/array vendor/libc++/dist/include/atomic vendor/libc++/dist/include/chrono vendor/libc++/dist/include/cmath vendor/libc++/dist/include/condition_variable vendor/libc++/dist/include/cstddef vendor/libc++/dist/include/cstdio vendor/libc++/dist/include/cstdlib vendor/libc++/dist/include/deque vendor/libc++/dist/include/exception vendor/libc++/dist/include/experimental/filesystem vendor/libc++/dist/include/experimental/memory_resource vendor/libc++/dist/include/experimental/numeric vendor/libc++/dist/include/ext/hash_map vendor/libc++/dist/include/ext/hash_set vendor/libc++/dist/include/forward_list vendor/libc++/dist/include/functional vendor/libc++/dist/include/future vendor/libc++/dist/include/ios vendor/libc++/dist/include/iterator vendor/libc++/dist/include/limits vendor/libc++/dist/include/list vendor/libc++/dist/include/locale vendor/libc++/dist/include/map vendor/libc++/dist/include/math.h vendor/libc++/dist/include/memory vendor/libc++/dist/include/mutex vendor/libc++/dist/include/new vendor/libc++/dist/include/numeric vendor/libc++/dist/include/optional vendor/libc++/dist/include/regex vendor/libc++/dist/include/shared_mutex vendor/libc++/dist/include/stddef.h vendor/libc++/dist/include/string vendor/libc++/dist/include/string_view vendor/libc++/dist/include/support/win32/locale_win32.h vendor/libc++/dist/include/support/win32/support.h vendor/libc++/dist/include/system_error vendor/libc++/dist/include/thread vendor/libc++/dist/include/tuple vendor/libc++/dist/include/type_traits vendor/libc++/dist/include/typeinfo vendor/libc++/dist/include/unordered_map vendor/libc++/dist/include/utility vendor/libc++/dist/include/variant vendor/libc++/dist/include/vector vendor/libc++/dist/lib/CMakeLists.txt vendor/libc++/dist/lib/abi/CHANGELOG.TXT vendor/libc++/dist/lib/abi/CMakeLists.txt vendor/libc++/dist/lib/abi/x86_64-unknown-linux-gnu.abilist vendor/libc++/dist/lib/libc++abi2.exp vendor/libc++/dist/src/condition_variable.cpp vendor/libc++/dist/src/exception.cpp vendor/libc++/dist/src/experimental/filesystem/directory_iterator.cpp vendor/libc++/dist/src/experimental/filesystem/operations.cpp vendor/libc++/dist/src/experimental/filesystem/path.cpp vendor/libc++/dist/src/include/atomic_support.h vendor/libc++/dist/src/locale.cpp vendor/libc++/dist/src/memory.cpp vendor/libc++/dist/src/mutex.cpp vendor/libc++/dist/src/new.cpp vendor/libc++/dist/src/support/win32/locale_win32.cpp vendor/libc++/dist/src/system_error.cpp vendor/libc++/dist/src/thread.cpp vendor/libc++/dist/src/typeinfo.cpp vendor/libc++/dist/test/CMakeLists.txt vendor/libc++/dist/test/libcxx/containers/associative/undef_min_max.pass.cpp vendor/libc++/dist/test/libcxx/debug/containers/db_associative_container_tests.pass.cpp vendor/libc++/dist/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp vendor/libc++/dist/test/libcxx/debug/containers/db_string.pass.cpp vendor/libc++/dist/test/libcxx/debug/containers/db_unord_container_tests.pass.cpp vendor/libc++/dist/test/libcxx/debug/debug_abort.pass.cpp vendor/libc++/dist/test/libcxx/debug/debug_throw.pass.cpp vendor/libc++/dist/test/libcxx/debug/debug_throw_register.pass.cpp vendor/libc++/dist/test/libcxx/thread/thread.condition/thread.condition.condvar/native_handle.pass.cpp vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/native_handle.pass.cpp vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/native_handle.pass.cpp vendor/libc++/dist/test/libcxx/thread/thread.threads/thread.thread.class/thread.thread.member/native_handle.pass.cpp vendor/libc++/dist/test/libcxx/thread/thread.threads/thread.thread.class/types.pass.cpp vendor/libc++/dist/test/libcxx/type_traits/convert_to_integral.pass.cpp vendor/libc++/dist/test/libcxx/utilities/function.objects/func.require/invoke_helpers.h vendor/libc++/dist/test/libcxx/utilities/tuple/tuple.tuple/diagnose_reference_binding.fail.cpp vendor/libc++/dist/test/libcxx/utilities/variant/variant.variant/variant.assign/copy.pass.cpp vendor/libc++/dist/test/libcxx/utilities/variant/variant.variant/variant.assign/move.pass.cpp vendor/libc++/dist/test/lit.cfg vendor/libc++/dist/test/lit.site.cfg.in vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_rand.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.remove/remove_copy_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.replace/replace_copy_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.replace/replace_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.transform/unary_transform.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.merge/inplace_merge.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.merge/inplace_merge_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/max_element.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/min_element.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/minmax_element_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.nth.element/nth_element.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/sort/sort.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/PR28469_undefined_behavior_segfault.sh.cpp vendor/libc++/dist/test/std/containers/associative/map/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/incomplete_type.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/index_tuple.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/iter_iter_comp_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/incomplete_type.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/incomplete_type.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/incomplete_type.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.size/size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/at.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/front_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/indexing.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/initializer_list_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/op_equal_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_back_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_front_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/sort.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/sort_pred.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/incomplete_type.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/initializer_list_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/op_equal_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/size_type.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_back_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_front_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/emplace.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/find.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/initializer_list_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/insert_iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/op_equal_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/vector_bool.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/resize_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/initializer_list_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/op_equal_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/emplace_extra.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/insert_iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/push_back_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/compare.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/incomplete_type.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.elem/index_tuple.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/incomplete.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/max_bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/max_load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/swap_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_non_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/incomplete.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/max_load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/swap_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_non_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/incomplete.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/max_load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/swap_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.swap/swap_non_member.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.cons/assignment.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.cons/convert.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.cons/convert_assignment.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.cons/copy.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.cons/pointer.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.conv/assign_from_auto_ptr_ref.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.conv/convert_from_auto_ptr_ref.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.conv/convert_to_auto_ptr.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.conv/convert_to_auto_ptr_ref.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.members/arrow.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.members/deref.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.members/release.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.members/reset.pass.cpp vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/element_type.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdio_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.function.pointer.adaptors/pointer_to_binary_function.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.function.pointer.adaptors/pointer_to_unary_function.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.function.pointer.adaptors/ptr_fun1.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.function.pointer.adaptors/ptr_fun2.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1_ref_t.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1_t.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref1.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref_t.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_t.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1_ref_t.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1_t.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref1.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref_t.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_t.pass.cpp vendor/libc++/dist/test/std/depr/depr.lib.binders/depr.lib.bind.1st/bind1st.pass.cpp vendor/libc++/dist/test/std/depr/depr.lib.binders/depr.lib.bind.2nd/bind2nd.pass.cpp vendor/libc++/dist/test/std/depr/depr.lib.binders/depr.lib.binder.1st/binder1st.pass.cpp vendor/libc++/dist/test/std/depr/depr.lib.binders/depr.lib.binder.2nd/binder2nd.pass.cpp vendor/libc++/dist/test/std/depr/exception.unexpected/set.unexpected/get_unexpected.pass.cpp vendor/libc++/dist/test/std/depr/exception.unexpected/set.unexpected/set_unexpected.pass.cpp vendor/libc++/dist/test/std/depr/exception.unexpected/unexpected.handler/unexpected_handler.pass.cpp vendor/libc++/dist/test/std/depr/exception.unexpected/unexpected/unexpected.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.hash/error_code.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.hash/error_condition.pass.cpp vendor/libc++/dist/test/std/experimental/algorithms/alg.random.sample/sample.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.file_status/file_status.cons.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.append.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.assign/source.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.concat.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.decompose/path.decompose.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.path/synop.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.filesystem.synopsis/file_time_type.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.absolute/absolute.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.permissions/permissions.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.pass.cpp vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.access/at.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/extended_types.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/c.files/cstdio.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore_0xff.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/minus1.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.seeks/seekp.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.seeks/seekp2.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/quoted.manip/quoted_char.fail.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.storage/iword.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.base.storage/pword.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op=/rv_value.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op=/rv_value.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op=/rv_value.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/copy.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_calls_unsized_delete_array.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete11.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.sh.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/ctype_base.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/negative_sign.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_double.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp vendor/libc++/dist/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp vendor/libc++/dist/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.types/locale.category/category.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/atan.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/tan.pass.cpp vendor/libc++/dist/test/std/numerics/numarray/template.valarray/valarray.assign/move_assign.pass.cpp vendor/libc++/dist/test/std/numerics/numarray/template.valarray/valarray.cons/move.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/adjacent.difference/adjacent_difference.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/adjacent.difference/adjacent_difference_op.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/numeric.ops.gcd/gcd.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.cauchy/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.chisq/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.normal/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.exp/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.weibull/eval.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/awk.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/parse_curly_brackets.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/backup.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/lookahead.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/bad_backref.pass.cpp vendor/libc++/dist/test/std/re/re.traits/lookup_classname.pass.cpp vendor/libc++/dist/test/std/re/re.traits/translate_nocase.pass.cpp vendor/libc++/dist/test/std/strings/basic.string.hash/strings.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/pointer_size_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/substr.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_T_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/string.classes/typedefs.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stof.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stol.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoll.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoul.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoull.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.access/at.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.hash/string_view.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.iterators/rend.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string_view.literals/literal.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.future_error/what.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_rvalue.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_rvalue_at_thread_exit.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor_func_alloc.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/move_ctor.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/share.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/PR30202_notify_from_pthread_created_thread.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvarany/wait_terminates.sh.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_ctor.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.assign/move.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/move.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/thread_id.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_const_lvalue_pair.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_piecewise.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_rvalue.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_pair_values.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/reference_types.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/PR23141_invoke_not_constexpr.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/copy.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_function_object.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/nested.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/derive_from.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_nullptr.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_nullptr.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/enum.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/floating.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/integral.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.getdeleter/get_deleter.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.assign/auto_ptr_Y.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_allocator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_allocator_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/reset_pointer_deleter.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/reset_pointer_deleter_allocator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/owner_before_shared_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/owner_before_weak_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.ownerless/owner_less.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.obs/owner_before_shared_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.obs/owner_before_weak_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/common_type.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/decay.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/underlying_type.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/void_t.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_function.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_member_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/member_function_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_abstract.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.hash/hash.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.nullopt/nullopt_t.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/greater_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/greater_than.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/less_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/less_than.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/not_equal.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.hash/bitset.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/all.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/any.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/index.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/none.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/to_ulong.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.system/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.arithmetic/op_+.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.arithmetic/op_-.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.apply/make_from_tuple.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR22806_constrain_tuple_like_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp vendor/libc++/dist/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/assign_pair_cxx03.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/default-sfinae.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.get/get_index.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.get/get_type.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.hash/hash.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.status/valueless_by_exception.pass.cpp vendor/libc++/dist/test/support/MoveOnly.h vendor/libc++/dist/test/support/constexpr_char_traits.hpp vendor/libc++/dist/test/support/container_test_types.h vendor/libc++/dist/test/support/controlled_allocators.hpp vendor/libc++/dist/test/support/debug_mode_helper.h vendor/libc++/dist/test/support/demangle.h vendor/libc++/dist/test/support/filesystem_dynamic_test_helper.py vendor/libc++/dist/test/support/filesystem_test_helper.hpp vendor/libc++/dist/test/support/min_allocator.h vendor/libc++/dist/test/support/platform_support.h vendor/libc++/dist/test/support/test.support/test_demangle.pass.cpp vendor/libc++/dist/test/support/test_macros.h vendor/libc++/dist/test/support/test_memory_resource.hpp vendor/libc++/dist/www/atomic_design.html vendor/libc++/dist/www/atomic_design_a.html vendor/libc++/dist/www/atomic_design_b.html vendor/libc++/dist/www/atomic_design_c.html vendor/libc++/dist/www/cxx1y_status.html vendor/libc++/dist/www/cxx1z_status.html vendor/libc++/dist/www/index.html vendor/libc++/dist/www/ts1z_status.html vendor/libc++/dist/www/type_traits_design.html vendor/libc++/dist/www/upcoming_meeting.html Modified: vendor/libc++/dist/.clang-format ============================================================================== --- vendor/libc++/dist/.clang-format Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/.clang-format Sun Apr 16 16:03:23 2017 (r317023) @@ -2,13 +2,9 @@ BasedOnStyle: LLVM --- Language: Cpp +Standard: Cpp03 AlwaysBreakTemplateDeclarations: true -AllowShortFunctionsOnASingleLine: Inline -BreakBeforeBraces: Custom -BraceWrapping: - AfterClass: true - AfterFunction: true PointerAlignment: Left # Disable formatting options which may break tests. Modified: vendor/libc++/dist/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/CMakeLists.txt Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/CMakeLists.txt Sun Apr 16 16:03:23 2017 (r317023) @@ -19,12 +19,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ) - if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) project(libcxx CXX C) set(PACKAGE_NAME libcxx) - set(PACKAGE_VERSION 4.0.0) + set(PACKAGE_VERSION 5.0.0svn) set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_BUGREPORT "llvm-bugs@lists.llvm.org") @@ -32,6 +31,15 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR include(HandleOutOfTreeLLVM) endif() +if (LIBCXX_STANDALONE_BUILD) + include(FindPythonInterp) + if( NOT PYTHONINTERP_FOUND ) + message(WARNING "Failed to find python interpreter. " + "The libc++ test suite will be disabled.") + set(LLVM_INCLUDE_TESTS OFF) + endif() +endif() + # Require out of source build. include(MacroEnsureOutOfSourceBuild) MACRO_ENSURE_OUT_OF_SOURCE_BUILD( @@ -39,13 +47,20 @@ MACRO_ENSURE_OUT_OF_SOURCE_BUILD( build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there." ) +if (MSVC) + set(LIBCXX_TARGETING_MSVC ON) +else() + set(LIBCXX_TARGETING_MSVC OFF) +endif() + #=============================================================================== # Setup CMake Options #=============================================================================== include(CMakeDependentOption) +include(HandleCompilerRT) # Basic options --------------------------------------------------------------- -option(LIBCXX_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON) +option(LIBCXX_ENABLE_ASSERTIONS "Enable assertions independent of build mode." OFF) option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON) option(LIBCXX_ENABLE_STATIC "Build libc++ as a static library." ON) option(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY "Build libc++experimental.a" ON) @@ -89,18 +104,9 @@ endif() # ABI Library options --------------------------------------------------------- set(LIBCXX_CXX_ABI "default" CACHE STRING "Specify C++ ABI library to use.") -set(CXXABIS none default libcxxabi libcxxrt libstdc++ libsupc++) +set(CXXABIS none default libcxxabi libcxxrt libstdc++ libsupc++ vcruntime) set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS ;${CXXABIS}) -# FIXME: This is a temporary hack to force LLVM buildbots to store -# the fixed cache entry instead of the previous cache entry. This is needed -# because some LLVM buildbots don't clear their cache. It will be removed -# once all LLVM bots have been run. -if (LIBCXX_CXX_ABI STREQUAL "") - set(LIBCXX_CXX_ABI "default" CACHE STRING - "Specify the C++ ABI library to use." FORCE) -endif() - # Setup the default options if LIBCXX_CXX_ABI is not specified. if (LIBCXX_CXX_ABI STREQUAL "default") find_path( @@ -110,15 +116,18 @@ if (LIBCXX_CXX_ABI STREQUAL "default") ${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include NO_DEFAULT_PATH ) - if (NOT DEFINED LIBCXX_STANDALONE_BUILD AND + if ((NOT LIBCXX_STANDALONE_BUILD OR HAVE_LIBCXXABI) AND IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}") set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi") set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}") set(LIBCXX_CXX_ABI_INTREE 1) else() - if (WIN32 AND NOT MINGW) + if (LIBCXX_TARGETING_MSVC) # FIXME: Figure out how to configure the ABI library on Windows. - set(LIBCXX_CXX_ABI_LIBNAME "none") + set(LIBCXX_CXX_ABI_LIBNAME "vcruntime") + elseif(APPLE) + set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi") + set(LIBCXX_CXX_ABI_SYSTEM 1) else() set(LIBCXX_CXX_ABI_LIBNAME "default") endif() @@ -133,7 +142,7 @@ option(LIBCXX_ENABLE_STATIC_ABI_LIBRARY # Generate and install a linker script inplace of libc++.so. The linker script # will link libc++ to the correct ABI library. This option is on by default -# On UNIX platforms other than Apple unless 'LIBCXX_ENABLE_STATIC_ABI_LIBRARY' +# on UNIX platforms other than Apple unless 'LIBCXX_ENABLE_STATIC_ABI_LIBRARY' # is on. This option is also disabled when the ABI library is not specified # or is specified to be "none". set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE OFF) @@ -149,9 +158,25 @@ option(LIBCXX_ENABLE_ABI_LINKER_SCRIPT "Use and install a linker script for the given ABI library" ${ENABLE_LINKER_SCRIPT_DEFAULT_VALUE}) +set(ENABLE_NEW_DELETE_DEFAULT ON) +if (LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS) +# FIXME: This option should default to off. Unfortunatly GCC 4.9 fails to link +# programs due to undefined references to new/delete in libc++abi so to work +# around this libc++abi currently defaults LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS +# to ON. Once the GCC bug has been worked around this option should be changed +# back to OFF. + set(ENABLE_NEW_DELETE_DEFAULT ON) +endif() + +option(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS + "Build libc++ with definitions for operator new/delete. This option can + be used to disable the definitions when libc++abi is expected to provide + them" ${ENABLE_NEW_DELETE_DEFAULT}) + # Build libc++abi with libunwind. We need this option to determine whether to # link with libunwind or libgcc_s while running the test cases. option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF) +option(LIBCXXABI_ENABLE_STATIC_UNWINDER "Statically link the LLVM unwinder." OFF) # Target options -------------------------------------------------------------- option(LIBCXX_BUILD_32_BITS "Build 32 bit libc++." ${LLVM_BUILD_32_BITS}) @@ -316,10 +341,13 @@ endif() set(LIBCXX_COMPILER ${CMAKE_CXX_COMPILER}) set(LIBCXX_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(LIBCXX_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(LIBCXX_BINARY_INCLUDE_DIR "${LIBCXX_BINARY_DIR}/include/c++build") set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX}) +file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR}) # Declare libc++ configuration variables. # They are intended for use as follows: @@ -342,9 +370,9 @@ include(HandleLibcxxFlags) # 'config-ix' use them during feature checks. It also adds them to both # 'LIBCXX_COMPILE_FLAGS' and 'LIBCXX_LINK_FLAGS' add_target_flags_if(LIBCXX_BUILD_32_BITS "-m32") -add_target_flags_if(LIBCXX_TARGET_TRIPLE "-target ${LIBCXX_TARGET_TRIPLE}") +add_target_flags_if(LIBCXX_TARGET_TRIPLE "--target=${LIBCXX_TARGET_TRIPLE}") add_target_flags_if(LIBCXX_SYSROOT "--sysroot=${LIBCXX_SYSROOT}") -add_target_flags_if(LIBCXX_GCC_TOOLCHAIN "-gcc-toolchain ${LIBCXX_GCC_TOOLCHAIN}") +add_target_flags_if(LIBCXX_GCC_TOOLCHAIN "--gcc-toolchain=${LIBCXX_GCC_TOOLCHAIN}") if (LIBCXX_TARGET_TRIPLE) set(TARGET_TRIPLE "${LIBCXX_TARGET_TRIPLE}") endif() @@ -363,6 +391,11 @@ if (LIBCXX_GENERATE_COVERAGE) endif() string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE) +if (uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG") + set(LIBCXX_DEBUG_BUILD ON) +else() + set(LIBCXX_DEBUG_BUILD OFF) +endif() #=============================================================================== # Setup Compiler Flags @@ -373,13 +406,18 @@ include(HandleLibCXXABI) # Setup the ABI if (NOT LIBCXX_STANDALONE_BUILD) # Remove flags that may have snuck in. remove_flags(-DNDEBUG -UNDEBUG -D_DEBUG - -lc++abi -m32) + -lc++abi) endif() remove_flags(-stdlib=libc++ -stdlib=libstdc++) +# FIXME: Remove all debug flags and flags that change which Windows +# default libraries are linked. Currently we only support linking the +# non-debug DLLs +remove_flags("/D_DEBUG" "/MTd" "/MDd" "/MT" "/Md") + # FIXME(EricWF): See the FIXME on LIBCXX_ENABLE_PEDANTIC. # Remove the -pedantic flag and -Wno-pedantic and -pedantic-errors -# so they don't get transformed into -Wno and -errors respectivly. +# so they don't get transformed into -Wno and -errors respectively. remove_flags(-Wno-pedantic -pedantic-errors -pedantic) # Required flags ============================================================== @@ -412,6 +450,10 @@ add_compile_flags_if_supported(-fvisibil # library. add_definitions(-D_LIBCPP_BUILDING_LIBRARY) +if (NOT LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS) + add_definitions(-D_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS) +endif() + # Warning flags =============================================================== add_definitions(-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) add_compile_flags_if_supported( @@ -425,7 +467,8 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES " elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") add_compile_flags_if_supported( -Wno-literal-suffix - -Wno-c++14-compat) + -Wno-c++14-compat + -Wno-noexcept-type) endif() if (LIBCXX_ENABLE_WERROR) add_compile_flags_if_supported(-Werror) @@ -474,9 +517,11 @@ endif() # Assertion flags ============================================================= define_if(LIBCXX_ENABLE_ASSERTIONS -UNDEBUG) define_if_not(LIBCXX_ENABLE_ASSERTIONS -DNDEBUG) -if (LIBCXX_ENABLE_ASSERTIONS) +define_if(LIBCXX_ENABLE_ASSERTIONS -D_LIBCPP_DEBUG=0) +define_if(LIBCXX_DEBUG_BUILD -D_DEBUG) +if (LIBCXX_ENABLE_ASSERTIONS AND NOT LIBCXX_DEBUG_BUILD) # MSVC doesn't like _DEBUG on release builds. See PR 4379. - define_if_not(MSVC -D_DEBUG) + define_if_not(LIBCXX_TARGETING_MSVC -D_DEBUG) endif() # Modules flags =============================================================== @@ -576,10 +621,15 @@ add_subdirectory(lib) if (LIBCXX_INCLUDE_BENCHMARKS) add_subdirectory(benchmarks) endif() + +# Create the lit.site.cfg file even when LIBCXX_INCLUDE_TESTS is OFF or +# LLVM_FOUND is OFF. This allows users to run the tests manually using +# LIT without requiring a full LLVM checkout. +add_subdirectory(test) if (LIBCXX_INCLUDE_TESTS) - add_subdirectory(test) add_subdirectory(lib/abi) endif() + if (LIBCXX_INCLUDE_DOCS) add_subdirectory(docs) endif() Modified: vendor/libc++/dist/CREDITS.TXT ============================================================================== --- vendor/libc++/dist/CREDITS.TXT Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/CREDITS.TXT Sun Apr 16 16:03:23 2017 (r317023) @@ -81,7 +81,7 @@ E: andrew.c.morrow@gmail.com D: Minor patches and Linux fixes. N: Michael Park -E: mpark@apache.org +E: mcypark@gmail.com D: Implementation of . N: Arvid Picciani Modified: vendor/libc++/dist/TODO.TXT ============================================================================== --- vendor/libc++/dist/TODO.TXT Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/TODO.TXT Sun Apr 16 16:03:23 2017 (r317023) @@ -17,6 +17,56 @@ Test Suite Tasks * Improve the quality and portability of the locale test data. * Convert failure tests to use Clang Verify. +Filesystem Tasks +================ +* P0492r2 - Implement National body comments for Filesystem + * INCOMPLETE - US 25: has_filename() is equivalent to just !empty() + * INCOMPLETE - US 31: Everything is defined in terms of one implicit host system + * INCOMPLETE - US 32: Meaning of 27.10.2.1 unclear + * INCOMPLETE - US 33: Definition of canonical path problematic + * INCOMPLETE - US 34: Are there attributes of a file that are not an aspect of the file system? + * INCOMPLETE - US 35: What synchronization is required to avoid a file system race? + * INCOMPLETE - US 36: Symbolic links themselves are attached to a directory via (hard) links + * INCOMPLETE - US 37: The term “redundant current directory (dot) elements†is not defined + * INCOMPLETE - US 38: Duplicates §17.3.16 + * INCOMPLETE - US 39: Remove note: Dot and dot-dot are not directories + * INCOMPLETE - US 40: Not all directories have a parent. + * INCOMPLETE - US 41: The term “parent directory†for a (non-directory) file is unusual + * INCOMPLETE - US 42: Pathname resolution does not always resolve a symlink + * INCOMPLETE - US 43: Concerns about encoded character types + * INCOMPLETE - US 44: Definition of path in terms of a string requires leaky abstraction + * INCOMPLETE - US 45: Generic format portability compromised by unspecified root-name + * INCOMPLETE - US 46: filename can be empty so productions for relative-path are redundant + * INCOMPLETE - US 47: “.†and “..†already match the name production + * INCOMPLETE - US 48: Multiple separators are often meaningful in a root-name + * INCOMPLETE - US 49: What does “method of conversion method†mean? + * INCOMPLETE - US 50: 27.10.8.1 ¶ 1.4 largely redundant with ¶ 1.3 + * INCOMPLETE - US 51: Failing to add / when appending empty string prevents useful apps + * INCOMPLETE - US 52: remove_filename() postcondition is not by itself a definition + * INCOMPLETE - US 53: remove_filename()'s name does not correspond to its behavior + * INCOMPLETE - US 54: remove_filename() is broken + * INCOMPLETE - US 55: replace_extension()'s use of path as parameter is inappropriate + * INCOMPLETE - US 56: Remove replace_extension()'s conditional addition of period + * INCOMPLETE - US 57: On Windows, absolute paths will sort in among relative paths + * INCOMPLETE - US 58: parent_path() behavior for root paths is useless + * INCOMPLETE - US 59: filename() returning path for single path components is bizarre + * INCOMPLETE - US 60: path("/foo/").filename()==path(".") is surprising + * INCOMPLETE - US 61: Leading dots in filename() should not begin an extension + * INCOMPLETE - US 62: It is important that stem()+extension()==filename() + * INCOMPLETE - US 63: lexically_normal() inconsistently treats trailing "/" but not "/.." as directory + * INCOMPLETE - US 73, CA 2: root-name is effectively implementation defined + * INCOMPLETE - US 74, CA 3: The term “pathname†is ambiguous in some contexts + * INCOMPLETE - US 75, CA 4: Extra flag in path constructors is needed + * INCOMPLETE - US 76, CA 5: root-name definition is over-specified. + * INCOMPLETE - US 77, CA 6: operator/ and other appends not useful if arg has root-name + * INCOMPLETE - US 78, CA 7: Member absolute() in 27.10.4.1 is overspecified for non-POSIX-like O/S + * INCOMPLETE - US 79, CA 8: Some operation functions are overspecified for implementation-defined file types + * INCOMPLETE - US 185: Fold error_code and non-error_code signatures into one signature + * INCOMPLETE - FI 14: directory_entry comparisons are members + * INCOMPLETE - Late 36: permissions() error_code overload should be noexcept + * INCOMPLETE - Late 37: permissions() actions should be separate parameter + * INCOMPLETE - Late 42: resize_file() Postcondition missing argument + Misc Tasks ========== * Find all sequences of >2 underscores and eradicate them. Modified: vendor/libc++/dist/cmake/Modules/CodeCoverage.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/CodeCoverage.cmake Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/cmake/Modules/CodeCoverage.cmake Sun Apr 16 16:03:23 2017 (r317023) @@ -3,6 +3,11 @@ if (NOT CODE_COVERAGE_LCOV) message(FATAL_ERROR "Cannot find lcov...") endif() +find_program(CODE_COVERAGE_LLVM_COV llvm-cov) +if (NOT CODE_COVERAGE_LLVM_COV) + message(FATAL_ERROR "Cannot find llvm-cov...") +endif() + find_program(CODE_COVERAGE_GENHTML genhtml) if (NOT CODE_COVERAGE_GENHTML) message(FATAL_ERROR "Cannot find genhtml...") @@ -11,6 +16,14 @@ endif() set(CMAKE_CXX_FLAGS_COVERAGE "-g -O0 --coverage") function(setup_lcov_test_target_coverage target_name output_dir capture_dirs source_dirs) + if (NOT DEFINED LIBCXX_BINARY_DIR) + message(FATAL_ERROR "Variable must be set") + endif() + + set(GCOV_TOOL "${LIBCXX_BINARY_DIR}/llvm-cov-wrapper") + file(GENERATE OUTPUT ${GCOV_TOOL} + CONTENT "#!/usr/bin/env bash\n${CODE_COVERAGE_LLVM_COV} gcov \"$@\"\n") + file(MAKE_DIRECTORY ${output_dir}) set(CAPTURE_DIRS "") @@ -27,8 +40,9 @@ function(setup_lcov_test_target_coverage message(STATUS "Extract Directories: ${EXTRACT_DIRS}") add_custom_target(generate-lib${target_name}-coverage - COMMAND ${CODE_COVERAGE_LCOV} --capture ${CAPTURE_DIRS} -o test_coverage.info - COMMAND ${CODE_COVERAGE_LCOV} --extract test_coverage.info ${EXTRACT_DIRS} -o test_coverage.info + COMMAND chmod +x ${GCOV_TOOL} + COMMAND ${CODE_COVERAGE_LCOV} --gcov-tool ${GCOV_TOOL} --capture ${CAPTURE_DIRS} -o test_coverage.info + COMMAND ${CODE_COVERAGE_LCOV} --gcov-tool ${GCOV_TOOL} --extract test_coverage.info ${EXTRACT_DIRS} -o test_coverage.info COMMAND ${CODE_COVERAGE_GENHTML} --demangle-cpp test_coverage.info -o test_coverage COMMAND ${CMAKE_COMMAND} -E remove test_coverage.info WORKING_DIRECTORY ${output_dir} Added: vendor/libc++/dist/cmake/Modules/HandleCompilerRT.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/cmake/Modules/HandleCompilerRT.cmake Sun Apr 16 16:03:23 2017 (r317023) @@ -0,0 +1,58 @@ +function(find_compiler_rt_library name dest) + if (NOT DEFINED LIBCXX_COMPILE_FLAGS) + message(FATAL_ERROR "LIBCXX_COMPILE_FLAGS must be defined when using this function") + endif() + set(dest "" PARENT_SCOPE) + set(CLANG_COMMAND ${CMAKE_CXX_COMPILER} ${LIBCXX_COMPILE_FLAGS} + "--rtlib=compiler-rt" "--print-libgcc-file-name") + if (CMAKE_CXX_COMPILER_ID MATCHES Clang AND CMAKE_CXX_COMPILER_TARGET) + list(APPEND CLANG_COMMAND "--target=${CMAKE_CXX_COMPILER_TARGET}") + endif() + execute_process( + COMMAND ${CLANG_COMMAND} + RESULT_VARIABLE HAD_ERROR + OUTPUT_VARIABLE LIBRARY_FILE + ) + string(STRIP "${LIBRARY_FILE}" LIBRARY_FILE) + string(REPLACE "builtins" "${name}" LIBRARY_FILE "${LIBRARY_FILE}") + if (NOT HAD_ERROR AND EXISTS "${LIBRARY_FILE}") + message(STATUS "Found compiler-rt library: ${LIBRARY_FILE}") + set(${dest} "${LIBRARY_FILE}" PARENT_SCOPE) + else() + message(STATUS "Failed to find compiler-rt library") + endif() +endfunction() + +function(find_compiler_rt_dir dest) + if (NOT DEFINED LIBCXX_COMPILE_FLAGS) + message(FATAL_ERROR "LIBCXX_COMPILE_FLAGS must be defined when using this function") + endif() + set(dest "" PARENT_SCOPE) + if (APPLE) + set(CLANG_COMMAND ${CMAKE_CXX_COMPILER} ${LIBCXX_COMPILE_FLAGS} + "-print-file-name=lib") + execute_process( + COMMAND ${CLANG_COMMAND} + RESULT_VARIABLE HAD_ERROR + OUTPUT_VARIABLE LIBRARY_DIR + ) + string(STRIP "${LIBRARY_DIR}" LIBRARY_DIR) + set(LIBRARY_DIR "${LIBRARY_DIR}/darwin") + else() + set(CLANG_COMMAND ${CMAKE_CXX_COMPILER} ${LIBCXX_COMPILE_FLAGS} + "--rtlib=compiler-rt" "--print-libgcc-file-name") + execute_process( + COMMAND ${CLANG_COMMAND} + RESULT_VARIABLE HAD_ERROR + OUTPUT_VARIABLE LIBRARY_FILE + ) + string(STRIP "${LIBRARY_FILE}" LIBRARY_FILE) + get_filename_component(LIBRARY_DIR "${LIBRARY_FILE}" DIRECTORY) + endif() + if (NOT HAD_ERROR AND EXISTS "${LIBRARY_DIR}") + message(STATUS "Found compiler-rt directory: ${LIBRARY_DIR}") + set(${dest} "${LIBRARY_DIR}" PARENT_SCOPE) + else() + message(STATUS "Failed to find compiler-rt directory") + endif() +endfunction() Modified: vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake Sun Apr 16 16:03:23 2017 (r317023) @@ -18,6 +18,7 @@ # abidirs : A list of relative paths to create under an include directory # in the libc++ build directory. # + macro(setup_abi_lib abidefines abilib abifiles abidirs) list(APPEND LIBCXX_COMPILE_FLAGS ${abidefines}) set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_CXX_ABI_INCLUDE_PATHS}" @@ -32,11 +33,10 @@ macro(setup_abi_lib abidefines abilib ab set(LIBCXX_ABILIB_FILES ${abifiles}) # The place in the build tree where we store out-of-source headers. - set(LIBCXX_BUILD_HEADERS_ROOT "${CMAKE_BINARY_DIR}/include/c++-build") file(MAKE_DIRECTORY "${LIBCXX_BUILD_HEADERS_ROOT}") file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/include/c++/v1") foreach(_d ${abidirs}) - file(MAKE_DIRECTORY "${LIBCXX_BUILD_HEADERS_ROOT}/${_d}") + file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}/${_d}") file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/include/c++/v1/${_d}") endforeach() @@ -48,19 +48,19 @@ macro(setup_abi_lib abidefines abilib ab get_filename_component(dstdir ${fpath} PATH) get_filename_component(ifile ${fpath} NAME) file(COPY "${incpath}/${fpath}" - DESTINATION "${LIBCXX_BUILD_HEADERS_ROOT}/${dstdir}" + DESTINATION "${LIBCXX_BINARY_INCLUDE_DIR}/${dstdir}" ) file(COPY "${incpath}/${fpath}" DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1/${dstdir}" ) if (LIBCXX_INSTALL_HEADERS) - install(FILES "${LIBCXX_BUILD_HEADERS_ROOT}/${fpath}" + install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}" DESTINATION include/c++/v1/${dstdir} COMPONENT libcxx PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) endif() - list(APPEND abilib_headers "${LIBCXX_BUILD_HEADERS_ROOT}/${fpath}") + list(APPEND abilib_headers "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}") endif() endforeach() if (NOT found) @@ -68,7 +68,7 @@ macro(setup_abi_lib abidefines abilib ab endif() endforeach() - include_directories("${LIBCXX_BUILD_HEADERS_ROOT}") + include_directories("${LIBCXX_BINARY_INCLUDE_DIR}") endmacro() @@ -103,13 +103,17 @@ elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STRE # Assume c++abi is installed in the system, rely on -lc++abi link flag. set(CXXABI_LIBNAME "c++abi") endif() - setup_abi_lib("-DLIBCXX_BUILDING_LIBCXXABI" - ${CXXABI_LIBNAME} "cxxabi.h;__cxxabi_config.h" "" - ) + set(HEADERS "cxxabi.h;__cxxabi_config.h") + if (LIBCXX_CXX_ABI_SYSTEM) + set(HEADERS "") + endif() + setup_abi_lib("-DLIBCXX_BUILDING_LIBCXXABI" ${CXXABI_LIBNAME} "${HEADERS}" "") elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxrt") setup_abi_lib("-DLIBCXXRT" "cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" "" ) +elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "vcruntime") + # Nothing TODO elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "none") list(APPEND LIBCXX_COMPILE_FLAGS "-D_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY") elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "default") Modified: vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake Sun Apr 16 16:03:23 2017 (r317023) @@ -26,6 +26,10 @@ endmacro() # or added in other parts of LLVM's cmake configuration. macro(remove_flags) foreach(var ${ARGN}) + string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") + string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}") + string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") + string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") string(REPLACE "${var}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REPLACE "${var}" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") string(REPLACE "${var}" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") Modified: vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake Sun Apr 16 16:03:23 2017 (r317023) @@ -43,7 +43,8 @@ macro(find_llvm_parts) execute_process( COMMAND ${LLVM_CONFIG_PATH} --cmakedir RESULT_VARIABLE HAD_ERROR - OUTPUT_VARIABLE CONFIG_OUTPUT) + OUTPUT_VARIABLE CONFIG_OUTPUT + ERROR_QUIET) if(NOT HAD_ERROR) string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH) else() @@ -95,13 +96,6 @@ macro(configure_out_of_tree_llvm) endif() # LLVM Options -------------------------------------------------------------- - include(FindPythonInterp) - if( NOT PYTHONINTERP_FOUND ) - message(WARNING "Failed to find python interpreter. " - "The libc++ test suite will be disabled.") - set(LLVM_INCLUDE_TESTS OFF) - endif() - if (NOT DEFINED LLVM_INCLUDE_TESTS) set(LLVM_INCLUDE_TESTS ${LLVM_FOUND}) endif() Modified: vendor/libc++/dist/cmake/config-ix.cmake ============================================================================== --- vendor/libc++/dist/cmake/config-ix.cmake Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/cmake/config-ix.cmake Sun Apr 16 16:03:23 2017 (r317023) @@ -1,4 +1,5 @@ include(CheckLibraryExists) +include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) if(WIN32 AND NOT MINGW) @@ -24,17 +25,24 @@ endif() # required during compilation (which has the -nodefaultlibs). libc is # required for the link to go through. We remove sanitizers from the # configuration checks to avoid spurious link errors. -check_cxx_compiler_flag(-nodefaultlibs LIBCXX_SUPPORTS_NODEFAULTLIBS_FLAG) +check_c_compiler_flag(-nodefaultlibs LIBCXX_SUPPORTS_NODEFAULTLIBS_FLAG) if (LIBCXX_SUPPORTS_NODEFAULTLIBS_FLAG) set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nodefaultlibs") if (LIBCXX_HAS_C_LIB) list(APPEND CMAKE_REQUIRED_LIBRARIES c) endif () if (LIBCXX_USE_COMPILER_RT) - list(APPEND CMAKE_REQUIRED_LIBRARIES -rtlib=compiler-rt) + list(APPEND CMAKE_REQUIRED_FLAGS -rtlib=compiler-rt) + find_compiler_rt_library(builtins LIBCXX_BUILTINS_LIBRARY) + list(APPEND CMAKE_REQUIRED_LIBRARIES "${LIBCXX_BUILTINS_LIBRARY}") elseif (LIBCXX_HAS_GCC_S_LIB) list(APPEND CMAKE_REQUIRED_LIBRARIES gcc_s) endif () + if (MINGW) + # Mingw64 requires quite a few "C" runtime libraries in order for basic + # programs to link successfully with -nodefaultlibs. + list(APPEND CMAKE_REQUIRED_LIBRARIES mingw32 gcc gcc_eh mingwex msvcrt gcc) + endif() if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize) set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all") endif () Modified: vendor/libc++/dist/docs/BuildingLibcxx.rst ============================================================================== --- vendor/libc++/dist/docs/BuildingLibcxx.rst Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/docs/BuildingLibcxx.rst Sun Apr 16 16:03:23 2017 (r317023) @@ -92,6 +92,57 @@ build would look like this: $ make check-libcxx # optional +Experimental Support for Windows +-------------------------------- + +The Windows support requires building with clang-cl as cl does not support one +required extension: `#include_next`. Furthermore, VS 2015 or newer (19.00) is +required. In the case of clang-cl, we need to specify the "MS Compatibility +Version" as it defaults to 2014 (18.00). + +CMake + Visual Studio +~~~~~~~~~~~~~~~~~~~~~ + +Building with Visual Studio currently does not permit running tests. However, +it is the simplest way to build. + +.. code-block:: batch + + > cmake -G "Visual Studio 14 2015" ^ + -T "LLVM-vs2014" ^ + -DLIBCXX_ENABLE_SHARED=YES ^ + -DLIBCXX_ENABLE_STATIC=NO ^ + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=NO ^ + \path\to\libcxx + > cmake --build . + +CMake + ninja +~~~~~~~~~~~~~ + +Building with ninja is required for development to enable tests. +Unfortunately, doing so requires additional configuration as we cannot +just specify a toolset. + +.. code-block:: batch + + > cmake -G Ninja ^ + -DCMAKE_MAKE_PROGRAM=/path/to/ninja ^ + -DCMAKE_SYSTEM_NAME=Windows ^ + -DCMAKE_C_COMPILER=clang-cl ^ + -DCMAKE_C_FLAGS="-fms-compatibility-version=19.00 --target=i686--windows" ^ + -DCMAKE_CXX_COMPILER=clang-c ^ + -DCMAKE_CXX_FLAGS="-fms-compatibility-version=19.00 --target=i686--windows" ^ + -DLLVM_PATH=/path/to/llvm/tree ^ + -DLIBCXX_ENABLE_SHARED=YES ^ + -DLIBCXX_ENABLE_STATIC=NO ^ + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=NO ^ + \path\to\libcxx + > /path/to/ninja cxx + > /path/to/ninja check-cxx + +Note that the paths specified with backward slashes must use the `\\` as the +directory separator as clang-cl may otherwise parse the path as an argument. + .. _`libc++abi`: http://libcxxabi.llvm.org/ Modified: vendor/libc++/dist/docs/DesignDocs/DebugMode.rst ============================================================================== --- vendor/libc++/dist/docs/DesignDocs/DebugMode.rst Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/docs/DesignDocs/DebugMode.rst Sun Apr 16 16:03:23 2017 (r317023) @@ -3,7 +3,7 @@ Debug Mode ========== .. contents:: - :local + :local: .. _using-debug-mode: Modified: vendor/libc++/dist/docs/DesignDocs/ThreadingSupportAPI.rst ============================================================================== --- vendor/libc++/dist/docs/DesignDocs/ThreadingSupportAPI.rst Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/docs/DesignDocs/ThreadingSupportAPI.rst Sun Apr 16 16:03:23 2017 (r317023) @@ -33,13 +33,22 @@ interface normally provided by ``<__thre External Threading Library ========================== -Normally ``<__threading_support>`` provides inline definitions to each internal -threading API function it declares. However libc++ also supports using an -external library to provide the definitions. - -When ``_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL`` libc++ does not provide inline -definitions for the internal API, instead assuming the definitions will be -provided by an external library. +libc++ can be compiled with its internal threading API delegating to an external +library. Such a configuration is useful for library vendors who wish to +distribute a thread-agnostic libc++ library, where the users of the library are +expected to provide the implementation of the libc++ internal threading API. + +On a production setting, this would be achieved through a custom +``<__external_threading>`` header, which declares the libc++ internal threading +API but leaves out the implementation. + +The ``-DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY`` option allows building libc++ in +such a configuration while allowing it to be tested on a platform that supports +any of the threading systems (e.g. pthread) supported in ``__threading_support`` +header. Therefore, the main purpose of this option is to allow testing of this +particular configuration of the library without being tied to a vendor-specific +threading system. This option is only meant to be used by libc++ library +developers. Threading Configuration Macros ============================== Modified: vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst ============================================================================== --- vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst Sun Apr 16 16:03:23 2017 (r317023) @@ -22,6 +22,12 @@ Visibility Macros Mark a symbol as being exported by the libc++ library. This attribute must be applied to the declaration of all functions exported by the libc++ dylib. +**_LIBCPP_EXTERN_VIS** + Mark a symbol as being exported by the libc++ library. This attribute may + only be applied to objects defined in the libc++ library. On Windows this + macro applies `dllimport`/`dllexport` to the symbol. On all other platforms + this macro has no effect. + **_LIBCPP_OVERRIDABLE_FUNC_VIS** Mark a symbol as being exported by the libc++ library, but allow it to be overridden locally. On non-Windows, this is equivalent to `_LIBCPP_FUNC_VIS`. @@ -41,18 +47,17 @@ Visibility Macros A synonym for `_LIBCPP_INLINE_VISIBILITY` **_LIBCPP_TYPE_VIS** + Mark a type's typeinfo, vtable and members as having default visibility. + This attribute cannot be used on class templates. + +**_LIBCPP_TEMPLATE_VIS** Mark a type's typeinfo and vtable as having default visibility. - `_LIBCPP_TYPE_VIS`. This macro has no effect on the visibility of the - type's member functions. This attribute cannot be used on class templates. + This macro has no effect on the visibility of the type's member functions. **GCC Behavior**: GCC does not support Clang's `type_visibility(...)` attribute. With GCC the `visibility(...)` attribute is used and member functions are affected. -**_LIBCPP_TEMPLATE_VIS** - The same as `_LIBCPP_TYPE_VIS` except that it may be applied to class - templates. - **Windows Behavior**: DLLs do not support dllimport/export on class templates. The macro has an empty definition on this platform. @@ -104,6 +109,35 @@ Visibility Macros the extern template declaration) as exported on Windows, as discussed above. On all other platforms, this macro has an empty definition. +**_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS** + Mark a symbol as hidden so it will not be exported from shared libraries. This + is intended specifically for method templates of either classes marked with + `_LIBCPP_TYPE_VIS` or classes with an extern template instantiation + declaration marked with `_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS`. + + When building libc++ with hidden visibility, we want explicit template + instantiations to export members, which is consistent with existing Windows + behavior. We also want classes annotated with `_LIBCPP_TYPE_VIS` to export + their members, which is again consistent with existing Windows behavior. + Both these changes are necessary for clients to be able to link against a + libc++ DSO built with hidden visibility without encountering missing symbols. + + An unfortunate side effect, however, is that method templates of classes + either marked `_LIBCPP_TYPE_VIS` or with extern template instantiation + declarations marked with `_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS` also get default + visibility when instantiated. These methods are often implicitly instantiated + inside other libraries which use the libc++ headers, and will therefore end up + being exported from those libraries, since those implicit instantiations will + receive default visibility. This is not acceptable for libraries that wish to + control their visibility, and led to PR30642. + + Consequently, all such problematic method templates are explicitly marked + either hidden (via this macro) or inline, so that they don't leak into client + libraries. The problematic methods were found by running + `bad-visibility-finder `_ + against the libc++ headers after making `_LIBCPP_TYPE_VIS` and + `_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS` expand to default visibility. + **_LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY** Mark a member function of a class template as visible and always inline. This macro should only be applied to member functions of class templates that are Modified: vendor/libc++/dist/docs/UsingLibcxx.rst ============================================================================== --- vendor/libc++/dist/docs/UsingLibcxx.rst Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/docs/UsingLibcxx.rst Sun Apr 16 16:03:23 2017 (r317023) @@ -146,6 +146,11 @@ thread safety annotations. build of libc++ which does not export any symbols, which can be useful when building statically for inclusion into another library. +**_LIBCPP_DISABLE_EXTERN_TEMPLATE**: + This macro is used to disable extern template declarations in the libc++ + headers. The intended use case is for clients who wish to use the libc++ + headers without taking a dependency on the libc++ library itself. + **_LIBCPP_ENABLE_TUPLE_IMPLICIT_REDUCED_ARITY_EXTENSION**: This macro is used to re-enable an extension in `std::tuple` which allowed it to be implicitly constructed from fewer initializers than contained @@ -173,3 +178,22 @@ thread safety annotations. return Tup{"hello world", 42}; // explicit constructor called. OK. } +**_LIBCPP_DISABLE_ADDITIONAL_DIAGNOSTICS**: + This macro disables the additional diagnostics generated by libc++ using the + `diagnose_if` attribute. These additional diagnostics include checks for: + + * Giving `set`, `map`, `multiset`, `multimap` a comparator which is not + const callable. + +C++17 Specific Configuration Macros +----------------------------------- +**_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES**: + This macro is used to re-enable all the features removed in C++17. The effect + is equivalent to manually defining each macro listed below. + +**_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS**: + This macro is used to re-enable the `set_unexpected`, `get_unexpected`, and + `unexpected` functions, which were removed in C++17. + +**_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR**: + This macro is used to re-enable `std::auto_ptr` in C++17. Modified: vendor/libc++/dist/docs/conf.py ============================================================================== --- vendor/libc++/dist/docs/conf.py Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/docs/conf.py Sun Apr 16 16:03:23 2017 (r317023) @@ -47,9 +47,9 @@ copyright = u'2011-2017, LLVM Project' # built documents. # # The short X.Y version. -version = '4' +version = '5.0' # The full version, including alpha/beta/rc tags. -release = '4' +release = '5.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. Modified: vendor/libc++/dist/docs/index.rst ============================================================================== --- vendor/libc++/dist/docs/index.rst Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/docs/index.rst Sun Apr 16 16:03:23 2017 (r317023) @@ -7,7 +7,8 @@ Overview ======== -libc++ is a new implementation of the C++ standard library, targeting C++11. +libc++ is a new implementation of the C++ standard library, targeting C++11 and +above. * Features and Goals @@ -119,7 +120,7 @@ This list contains known issues with lib A full list of currently open libc++ bugs can be `found here`__. -.. __: https://llvm.org/bugs/buglist.cgi?component=All%20Bugs&product=libc%2B%2B&query_format=advanced&resolution=---&order=changeddate%20DESC%2Cassigned_to%20DESC%2Cbug_status%2Cpriority%2Cbug_id&list_id=74184 +.. __: https://bugs.llvm.org/buglist.cgi?component=All%20Bugs&product=libc%2B%2B&query_format=advanced&resolution=---&order=changeddate%20DESC%2Cassigned_to%20DESC%2Cbug_status%2Cpriority%2Cbug_id&list_id=74184 Design Documents ---------------- @@ -179,7 +180,7 @@ Quick Links =========== * `LLVM Homepage `_ * `libc++abi Homepage `_ -* `LLVM Bugzilla `_ +* `LLVM Bugzilla `_ * `cfe-commits Mailing List`_ * `cfe-dev Mailing List`_ * `Browse libc++ -- SVN `_ Modified: vendor/libc++/dist/include/__config ============================================================================== --- vendor/libc++/dist/include/__config Sun Apr 16 16:03:01 2017 (r317022) +++ vendor/libc++/dist/include/__config Sun Apr 16 16:03:23 2017 (r317023) @@ -12,8 +12,10 @@ #define _LIBCPP_CONFIG #if defined(_MSC_VER) && !defined(__clang__) +#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER #endif +#endif #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER #pragma GCC system_header @@ -23,16 +25,30 @@ #ifdef __GNUC__ #define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__) +// The _GNUC_VER_NEW macro better represents the new GCC versioning scheme +// introduced in GCC 5.0. +#define _GNUC_VER_NEW (_GNUC_VER * 10 + __GNUC_PATCHLEVEL__) #else #define _GNUC_VER 0 +#define _GNUC_VER_NEW 0 #endif -#define _LIBCPP_VERSION 4000 +#define _LIBCPP_VERSION 5000 #ifndef _LIBCPP_ABI_VERSION #define _LIBCPP_ABI_VERSION 1 #endif +#if defined(__ELF__) +#define _LIBCPP_OBJECT_FORMAT_ELF 1 +#elif defined(__MACH__) +#define _LIBCPP_OBJECT_FORMAT_MACHO 1 +#elif defined(_WIN32) +#define _LIBCPP_OBJECT_FORMAT_COFF 1 +#else +#error Unknown object file format +#endif + #if defined(_LIBCPP_ABI_UNSTABLE) || _LIBCPP_ABI_VERSION >= 2 // Change short string representation so that string data starts at offset 0, // improving its alignment in some cases. @@ -47,7 +63,6 @@ #define _LIBCPP_ABI_FIX_UNORDERED_NODE_POINTER_UB #define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB #define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE -#define _LIBCPP_ABI_VARIADIC_LOCK_GUARD // Don't use a nullptr_t simulation type in C++03 instead using C++11 nullptr // provided under the alternate keyword __nullptr, which changes the mangling // of nullptr_t. This option is ABI incompatible with GCC in C++03 mode. @@ -57,10 +72,18 @@ // `pointer_safety` and `get_pointer_safety()` will no longer be available // in C++03. #define _LIBCPP_ABI_POINTER_SAFETY_ENUM_TYPE +// Define a key function for `bad_function_call` in the library, to centralize +// its vtable and typeinfo to libc++ rather than having all other libraries +// using that class define their own copies. +#define _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION #elif _LIBCPP_ABI_VERSION == 1 -#if !defined(_WIN32) -// Enable compiling a definition of error_category() into the libc++ dylib. -#define _LIBCPP_DEPRECATED_ABI_EXTERNAL_ERROR_CATEGORY_CONSTRUCTOR +#if !defined(_LIBCPP_OBJECT_FORMAT_COFF) +// Enable compiling copies of now inline methods into the dylib to support +// applications compiled against older libraries. This is unnecessary with +// COFF dllexport semantics, since dllexport forces a non-inline definition +// of inline functions to be emitted anyway. Our own non-inline copy would +// conflict with the dllexport-emitted copy, so we disable it. +#define _LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS #endif // Feature macros for disabling pre ABI v1 features. All of these options // are deprecated. @@ -100,6 +123,11 @@ #ifndef __is_identifier #define __is_identifier(__x) 1 #endif +#ifndef __has_declspec_attribute +#define __has_declspec_attribute(__x) 0 +#endif + +#define __has_keyword(__x) !(__is_identifier(__x)) #if defined(__clang__) #define _LIBCPP_COMPILER_CLANG @@ -115,7 +143,7 @@ #endif #ifndef _LIBCPP_CLANG_VER -# define _LIBCPP_CLANG_VER 0 +#define _LIBCPP_CLANG_VER 0 #endif // FIXME: ABI detection should be done via compiler builtin macros. This @@ -190,7 +218,6 @@ # define _LIBCPP_LITTLE_ENDIAN 1 # define _LIBCPP_BIG_ENDIAN 0 # define _LIBCPP_SHORT_WCHAR 1 - // If mingw not explicitly detected, assume using MS C runtime only. # ifndef __MINGW32__ # define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library @@ -198,6 +225,19 @@ # if (defined(_M_AMD64) || defined(__x86_64__)) || (defined(_M_ARM) || defined(__arm__)) # define _LIBCPP_HAS_BITSCAN64 # endif +# if defined(_LIBCPP_MSVCRT) +# define _LIBCPP_HAS_QUICK_EXIT +# endif + +// Some CRT APIs are unavailable to store apps +#if defined(WINAPI_FAMILY) +#include +#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && \ + (!defined(WINAPI_PARTITION_SYSTEM) || \ + !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_SYSTEM)) +#define _LIBCPP_WINDOWS_STORE_APP +#endif +#endif #endif // defined(_WIN32) #ifdef __sun__ @@ -252,7 +292,7 @@ // _LIBCPP_ALTERNATE_STRING_LAYOUT is an old name for // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT left here for backward compatibility. #if (defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) && \ - !defined(__arm__)) || \ + (!defined(__arm__) || __ARM_ARCH_7K__ >= 2)) || \ defined(_LIBCPP_ALTERNATE_STRING_LAYOUT) #define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT #endif @@ -297,7 +337,7 @@ typedef __char32_t char32_t; #endif #if !(__has_feature(cxx_nullptr)) -# if __has_extension(cxx_nullptr) && defined(_LIBCPP_ABI_ALWAYS_USE_CXX11_NULLPTR) +# if (__has_extension(cxx_nullptr) || __has_keyword(__nullptr)) && defined(_LIBCPP_ABI_ALWAYS_USE_CXX11_NULLPTR) # define nullptr __nullptr # else # define _LIBCPP_HAS_NO_NULLPTR @@ -335,7 +375,6 @@ typedef __char32_t char32_t; #if __has_feature(objc_arc_weak) #define _LIBCPP_HAS_OBJC_ARC_WEAK -#define _LIBCPP_HAS_NO_STRONG_ENUMS #endif #if !(__has_feature(cxx_constexpr)) @@ -472,14 +511,13 @@ namespace std { #endif // __GXX_EXPERIMENTAL_CXX0X__ -#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE { +#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { inline namespace _LIBCPP_NAMESPACE { #define _LIBCPP_END_NAMESPACE_STD } } #define _VSTD std::_LIBCPP_NAMESPACE namespace std { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 16 16:03:32 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39A7BD400D1; Sun, 16 Apr 2017 16:03: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 mx1.freebsd.org (Postfix) with ESMTPS id E74A58AE; Sun, 16 Apr 2017 16:03:31 +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 v3GG3V9q097276; Sun, 16 Apr 2017 16:03:31 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG3VIl097275; Sun, 16 Apr 2017 16:03:31 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161603.v3GG3VIl097275@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:03:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317024 - vendor/libc++/libc++-trunk-r300422 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:03:32 -0000 Author: dim Date: Sun Apr 16 16:03:30 2017 New Revision: 317024 URL: https://svnweb.freebsd.org/changeset/base/317024 Log: Tag libc++ trunk r300422. Added: vendor/libc++/libc++-trunk-r300422/ - copied from r317023, vendor/libc++/dist/ From owner-svn-src-all@freebsd.org Sun Apr 16 16:03:42 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01435D40144; Sun, 16 Apr 2017 16:03:42 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 813C1977; Sun, 16 Apr 2017 16:03:41 +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 v3GG3e9Z097342; Sun, 16 Apr 2017 16:03:40 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG3d6R097331; Sun, 16 Apr 2017 16:03:39 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161603.v3GG3d6R097331@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:03:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317025 - in vendor/lld/dist: . COFF ELF docs include/lld/Core include/lld/Driver lib/Core lib/ReaderWriter/MachO test test/COFF test/COFF/Inputs test/ELF test/ELF/Inputs test/ELF/inval... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:03:42 -0000 Author: dim Date: Sun Apr 16 16:03:39 2017 New Revision: 317025 URL: https://svnweb.freebsd.org/changeset/base/317025 Log: Vendor import of lld trunk r300422: https://llvm.org/svn/llvm-project/lld/trunk@300422 Added: vendor/lld/dist/COFF/LTO.cpp (contents, props changed) vendor/lld/dist/COFF/LTO.h (contents, props changed) vendor/lld/dist/COFF/MapFile.cpp (contents, props changed) vendor/lld/dist/COFF/MapFile.h (contents, props changed) vendor/lld/dist/ELF/Filesystem.cpp (contents, props changed) vendor/lld/dist/ELF/Filesystem.h (contents, props changed) vendor/lld/dist/ELF/MapFile.cpp (contents, props changed) vendor/lld/dist/ELF/MapFile.h (contents, props changed) vendor/lld/dist/ELF/ScriptLexer.cpp (contents, props changed) vendor/lld/dist/ELF/ScriptLexer.h (contents, props changed) vendor/lld/dist/include/lld/Core/TargetOptionsCommandFlags.h (contents, props changed) vendor/lld/dist/lib/Core/TargetOptionsCommandFlags.cpp (contents, props changed) vendor/lld/dist/test/COFF/Inputs/bar.ll vendor/lld/dist/test/COFF/Inputs/msvclto.s (contents, props changed) vendor/lld/dist/test/COFF/Inputs/thinlto-mangled-qux.ll vendor/lld/dist/test/COFF/def-name.test vendor/lld/dist/test/COFF/driver-windows.test vendor/lld/dist/test/COFF/error-limit.test vendor/lld/dist/test/COFF/include-lto.ll vendor/lld/dist/test/COFF/invalid-debug-type.test vendor/lld/dist/test/COFF/lto-debug-pass-arguments.ll vendor/lld/dist/test/COFF/msvclto-archive.ll vendor/lld/dist/test/COFF/msvclto.ll vendor/lld/dist/test/COFF/nopdb.test vendor/lld/dist/test/COFF/pdb-none.test vendor/lld/dist/test/COFF/savetemps.ll vendor/lld/dist/test/COFF/thinlto-archives.ll vendor/lld/dist/test/COFF/thinlto-mangled.ll vendor/lld/dist/test/COFF/thinlto.ll vendor/lld/dist/test/ELF/Inputs/i386-got32x-baseless.elf (contents, props changed) vendor/lld/dist/test/ELF/Inputs/i386-reloc-16-error.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/i386-reloc-16.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/i386-reloc-8-error.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/i386-reloc-8.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/icf-absolute.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/map-file2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/map-file3.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/map-file4.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocatable-non-alloc.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocation-copy-align-common.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/x86-64-reloc-16-error.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/x86-64-reloc-16.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/x86-64-reloc-8-error.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/x86-64-reloc-8.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/ztext-text-notext.s (contents, props changed) vendor/lld/dist/test/ELF/arm-icf-exidx.s (contents, props changed) vendor/lld/dist/test/ELF/arm-tls-gd-nonpreemptible.s (contents, props changed) vendor/lld/dist/test/ELF/bss-start-common.s (contents, props changed) vendor/lld/dist/test/ELF/compatible-section-types.s (contents, props changed) vendor/lld/dist/test/ELF/default-fill.s (contents, props changed) vendor/lld/dist/test/ELF/early-exit-for-bad-paths.s (contents, props changed) vendor/lld/dist/test/ELF/emit-relocs-merge.s (contents, props changed) vendor/lld/dist/test/ELF/emit-relocs-shared.s (contents, props changed) vendor/lld/dist/test/ELF/emit-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/end-abs.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-metadata-startstop.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-metadata.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-metadata2.s (contents, props changed) vendor/lld/dist/test/ELF/got32-i386.s (contents, props changed) vendor/lld/dist/test/ELF/got32x-i386.s (contents, props changed) vendor/lld/dist/test/ELF/hidden-vis-shared.s (contents, props changed) vendor/lld/dist/test/ELF/i386-pc8-pc16-addend.s (contents, props changed) vendor/lld/dist/test/ELF/i386-pc8.s (contents, props changed) vendor/lld/dist/test/ELF/i386-reloc-16.s (contents, props changed) vendor/lld/dist/test/ELF/i386-reloc-8.s (contents, props changed) vendor/lld/dist/test/ELF/i386-reloc8-reloc16-addend.s (contents, props changed) vendor/lld/dist/test/ELF/icf-absolute.s (contents, props changed) vendor/lld/dist/test/ELF/icf8.s (contents, props changed) vendor/lld/dist/test/ELF/icf9.s (contents, props changed) vendor/lld/dist/test/ELF/init-fini-progbits.s (contents, props changed) vendor/lld/dist/test/ELF/invalid/broken-relaxation-x64.test vendor/lld/dist/test/ELF/invalid/invalid-relocation-x64.test vendor/lld/dist/test/ELF/linkerscript/Inputs/lazy-symbols.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/addr-zero.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/at-addr.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/constructor.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/discard-print-gc.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/discard-section-metadata.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/eh-frame-reloc-out-of-range.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/eh-frame.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/emit-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/emit-relocs-discard.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/emit-relocs-ehframe-discard.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/expr-invalid-sec.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/expr-sections.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/fill-exec-sections.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/huge-temporary-file.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/lazy-symbols.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/locationcountererr2.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/memory.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/merge-sections-syms.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/non-absolute.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/non-absolute2.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/obj-symbol-value.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/operators.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/out-of-order.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/output-too-large.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/pt_gnu_eh_frame.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/section-align.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/sections-gc.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/sections-gc2.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/symbol-reserved.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript/symbols-non-alloc.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/cache.ll vendor/lld/dist/test/ELF/lto/archive-no-index.ll vendor/lld/dist/test/ELF/lto/cache.ll vendor/lld/dist/test/ELF/lto/codemodel.ll vendor/lld/dist/test/ELF/lto/opt-remarks.ll vendor/lld/dist/test/ELF/map-file.s (contents, props changed) vendor/lld/dist/test/ELF/mips-got-string.s (contents, props changed) vendor/lld/dist/test/ELF/mips-got16-relocatable.s (contents, props changed) vendor/lld/dist/test/ELF/mips-gprel-sec.s (contents, props changed) vendor/lld/dist/test/ELF/mips-npic-call-pic-os.s (contents, props changed) vendor/lld/dist/test/ELF/no-dynamic-linker.s (contents, props changed) vendor/lld/dist/test/ELF/no-soname.s (contents, props changed) vendor/lld/dist/test/ELF/note-contiguous.s (contents, props changed) vendor/lld/dist/test/ELF/note-loadaddr.c (contents, props changed) vendor/lld/dist/test/ELF/note-multiple.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-eh-frame-hdr.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-eh-frame.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-non-alloc.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-section-symbol.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-symbol-name.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-copy-align-common.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-group.test vendor/lld/dist/test/ELF/relocation-nocopy.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-none-aarch64.test vendor/lld/dist/test/ELF/retain-und.s (contents, props changed) vendor/lld/dist/test/ELF/static-with-export-dynamic.s (contents, props changed) vendor/lld/dist/test/ELF/version-script-copy-rel.s (contents, props changed) vendor/lld/dist/test/ELF/warn-unresolved-symbols-hidden.s (contents, props changed) vendor/lld/dist/test/ELF/warn-unresolved-symbols.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-reloc-16.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-reloc-8.s (contents, props changed) vendor/lld/dist/test/ELF/ztext-text-notext.s (contents, props changed) Deleted: vendor/lld/dist/docs/C++11.rst vendor/lld/dist/test/ELF/incompatible-section-types.s vendor/lld/dist/test/ELF/invalid/broken-relaxation-x64.s vendor/lld/dist/test/ELF/invalid/invalid-relocation-x64.s vendor/lld/dist/test/ELF/linkerscript/locationcounter.s vendor/lld/dist/test/ELF/unknown-reloc.s Modified: vendor/lld/dist/CMakeLists.txt vendor/lld/dist/COFF/CMakeLists.txt vendor/lld/dist/COFF/Chunks.cpp vendor/lld/dist/COFF/Chunks.h vendor/lld/dist/COFF/Config.h vendor/lld/dist/COFF/Driver.cpp vendor/lld/dist/COFF/Driver.h vendor/lld/dist/COFF/DriverUtils.cpp vendor/lld/dist/COFF/Error.cpp vendor/lld/dist/COFF/Error.h vendor/lld/dist/COFF/ICF.cpp vendor/lld/dist/COFF/InputFiles.cpp vendor/lld/dist/COFF/InputFiles.h vendor/lld/dist/COFF/Librarian.cpp vendor/lld/dist/COFF/ModuleDef.cpp vendor/lld/dist/COFF/Options.td vendor/lld/dist/COFF/PDB.cpp vendor/lld/dist/COFF/SymbolTable.cpp vendor/lld/dist/COFF/SymbolTable.h vendor/lld/dist/COFF/Symbols.cpp vendor/lld/dist/COFF/Symbols.h vendor/lld/dist/COFF/Writer.cpp vendor/lld/dist/COFF/Writer.h vendor/lld/dist/ELF/CMakeLists.txt vendor/lld/dist/ELF/Config.h vendor/lld/dist/ELF/Driver.cpp vendor/lld/dist/ELF/Driver.h vendor/lld/dist/ELF/DriverUtils.cpp vendor/lld/dist/ELF/EhFrame.cpp vendor/lld/dist/ELF/EhFrame.h vendor/lld/dist/ELF/Error.cpp vendor/lld/dist/ELF/Error.h vendor/lld/dist/ELF/GdbIndex.cpp vendor/lld/dist/ELF/GdbIndex.h vendor/lld/dist/ELF/ICF.cpp vendor/lld/dist/ELF/InputFiles.cpp vendor/lld/dist/ELF/InputFiles.h vendor/lld/dist/ELF/InputSection.cpp vendor/lld/dist/ELF/InputSection.h vendor/lld/dist/ELF/LTO.cpp vendor/lld/dist/ELF/LTO.h vendor/lld/dist/ELF/LinkerScript.cpp vendor/lld/dist/ELF/LinkerScript.h vendor/lld/dist/ELF/MarkLive.cpp vendor/lld/dist/ELF/Options.td vendor/lld/dist/ELF/OutputSections.cpp vendor/lld/dist/ELF/OutputSections.h vendor/lld/dist/ELF/Relocations.cpp vendor/lld/dist/ELF/Relocations.h vendor/lld/dist/ELF/ScriptParser.cpp vendor/lld/dist/ELF/ScriptParser.h vendor/lld/dist/ELF/Strings.cpp vendor/lld/dist/ELF/SymbolTable.cpp vendor/lld/dist/ELF/SymbolTable.h vendor/lld/dist/ELF/Symbols.cpp vendor/lld/dist/ELF/Symbols.h vendor/lld/dist/ELF/SyntheticSections.cpp vendor/lld/dist/ELF/SyntheticSections.h vendor/lld/dist/ELF/Target.cpp vendor/lld/dist/ELF/Target.h vendor/lld/dist/ELF/Threads.h vendor/lld/dist/ELF/Thunks.cpp vendor/lld/dist/ELF/Thunks.h vendor/lld/dist/ELF/Writer.cpp vendor/lld/dist/ELF/Writer.h vendor/lld/dist/docs/AtomLLD.rst vendor/lld/dist/docs/Driver.rst vendor/lld/dist/docs/NewLLD.rst vendor/lld/dist/docs/Readers.rst vendor/lld/dist/docs/ReleaseNotes.rst vendor/lld/dist/docs/conf.py vendor/lld/dist/docs/design.rst vendor/lld/dist/docs/development.rst vendor/lld/dist/docs/index.rst vendor/lld/dist/include/lld/Core/Parallel.h vendor/lld/dist/include/lld/Driver/Driver.h vendor/lld/dist/lib/Core/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_x86.cpp vendor/lld/dist/lib/ReaderWriter/MachO/CMakeLists.txt vendor/lld/dist/test/CMakeLists.txt vendor/lld/dist/test/COFF/export32.test vendor/lld/dist/test/COFF/hello32.test vendor/lld/dist/test/COFF/lldmap.test vendor/lld/dist/test/COFF/lto-comdat.ll vendor/lld/dist/test/COFF/lto-parallel.ll vendor/lld/dist/test/COFF/pdb.test vendor/lld/dist/test/COFF/rsds.test vendor/lld/dist/test/COFF/weak-external.test vendor/lld/dist/test/COFF/weak-external3.test vendor/lld/dist/test/ELF/Inputs/resolution-end.s vendor/lld/dist/test/ELF/aarch64-fpic-abs16.s vendor/lld/dist/test/ELF/aarch64-fpic-add_abs_lo12_nc.s vendor/lld/dist/test/ELF/aarch64-fpic-adr_prel_lo21.s vendor/lld/dist/test/ELF/aarch64-fpic-adr_prel_pg_hi21.s vendor/lld/dist/test/ELF/aarch64-fpic-ldst32_abs_lo12_nc.s vendor/lld/dist/test/ELF/aarch64-fpic-ldst64_abs_lo12_nc.s vendor/lld/dist/test/ELF/aarch64-fpic-ldst8_abs_lo12_nc.s vendor/lld/dist/test/ELF/aarch64-fpic-prel16.s vendor/lld/dist/test/ELF/aarch64-fpic-prel32.s vendor/lld/dist/test/ELF/aarch64-fpic-prel64.s vendor/lld/dist/test/ELF/abs-conflict.s vendor/lld/dist/test/ELF/arm-gnu-ifunc-plt.s vendor/lld/dist/test/ELF/arm-gnu-ifunc.s vendor/lld/dist/test/ELF/arm-plt-reloc.s vendor/lld/dist/test/ELF/arm-target1.s vendor/lld/dist/test/ELF/arm-thumb-interwork-shared.s vendor/lld/dist/test/ELF/arm-thumb-interwork-thunk.s vendor/lld/dist/test/ELF/arm-thumb-plt-reloc.s vendor/lld/dist/test/ELF/as-needed-no-reloc.s vendor/lld/dist/test/ELF/basic-aarch64.s vendor/lld/dist/test/ELF/basic-mips.s vendor/lld/dist/test/ELF/basic-ppc.s vendor/lld/dist/test/ELF/basic.s vendor/lld/dist/test/ELF/basic32.s vendor/lld/dist/test/ELF/basic64be.s vendor/lld/dist/test/ELF/build-id.s vendor/lld/dist/test/ELF/compressed-debug-input.s vendor/lld/dist/test/ELF/conflict.s vendor/lld/dist/test/ELF/copy-errors.s vendor/lld/dist/test/ELF/copy-in-shared.s vendor/lld/dist/test/ELF/copy-rel-pie-error.s vendor/lld/dist/test/ELF/driver.test vendor/lld/dist/test/ELF/dt_flags.s vendor/lld/dist/test/ELF/dynamic-list.s vendor/lld/dist/test/ELF/dynamic-reloc-in-ro.s vendor/lld/dist/test/ELF/edata-etext.s vendor/lld/dist/test/ELF/eh-frame-dyn-rel.s vendor/lld/dist/test/ELF/ehdr_start.s vendor/lld/dist/test/ELF/emulation.s vendor/lld/dist/test/ELF/gc-debuginfo-tls.s vendor/lld/dist/test/ELF/gc-merge-local-sym.s vendor/lld/dist/test/ELF/gc-sections-merge-addend.s vendor/lld/dist/test/ELF/gc-sections-merge-implicit-addend.s vendor/lld/dist/test/ELF/gc-sections-merge.s vendor/lld/dist/test/ELF/gnu-hash-table.s vendor/lld/dist/test/ELF/gnustack.s vendor/lld/dist/test/ELF/i386-pc16.test vendor/lld/dist/test/ELF/invalid-cie-length.s vendor/lld/dist/test/ELF/invalid-cie-length2.s vendor/lld/dist/test/ELF/invalid-cie-length3.s vendor/lld/dist/test/ELF/invalid-cie-length4.s vendor/lld/dist/test/ELF/invalid-fde-rel.s vendor/lld/dist/test/ELF/invalid-linkerscript.test vendor/lld/dist/test/ELF/invalid/dynamic-section-size.s vendor/lld/dist/test/ELF/invalid/mips-invalid-options-descriptor.s vendor/lld/dist/test/ELF/libsearch.s vendor/lld/dist/test/ELF/linkerscript/absolute.s vendor/lld/dist/test/ELF/linkerscript/align.s vendor/lld/dist/test/ELF/linkerscript/alternate-sections.s vendor/lld/dist/test/ELF/linkerscript/assert.s vendor/lld/dist/test/ELF/linkerscript/at.s vendor/lld/dist/test/ELF/linkerscript/edata-etext.s vendor/lld/dist/test/ELF/linkerscript/ehdr_start.s vendor/lld/dist/test/ELF/linkerscript/empty-load.s vendor/lld/dist/test/ELF/linkerscript/excludefile.s vendor/lld/dist/test/ELF/linkerscript/fill.s vendor/lld/dist/test/ELF/linkerscript/locationcountererr.s vendor/lld/dist/test/ELF/linkerscript/merge-sections.s vendor/lld/dist/test/ELF/linkerscript/no-space.s vendor/lld/dist/test/ELF/linkerscript/non-alloc.s vendor/lld/dist/test/ELF/linkerscript/numbers.s vendor/lld/dist/test/ELF/linkerscript/orphan-first-cmd.s vendor/lld/dist/test/ELF/linkerscript/outputarch.s vendor/lld/dist/test/ELF/linkerscript/outsections-addr.s vendor/lld/dist/test/ELF/linkerscript/page-size.s vendor/lld/dist/test/ELF/linkerscript/sections-padding.s vendor/lld/dist/test/ELF/linkerscript/sections-sort.s vendor/lld/dist/test/ELF/linkerscript/sections.s vendor/lld/dist/test/ELF/linkerscript/symbol-assignexpr.s vendor/lld/dist/test/ELF/linkerscript/symbol-only.s vendor/lld/dist/test/ELF/lto/combined-lto-object-name.ll vendor/lld/dist/test/ELF/lto/duplicated.ll vendor/lld/dist/test/ELF/lto/parallel-internalize.ll vendor/lld/dist/test/ELF/lto/parallel.ll vendor/lld/dist/test/ELF/lto/thinlto.ll vendor/lld/dist/test/ELF/merge-reloc.s vendor/lld/dist/test/ELF/merge-string-align.s vendor/lld/dist/test/ELF/merge-string.s vendor/lld/dist/test/ELF/merge.s vendor/lld/dist/test/ELF/mips-elf-flags-err.s vendor/lld/dist/test/ELF/mips-elf-flags.s vendor/lld/dist/test/ELF/mips-gp-ext.s vendor/lld/dist/test/ELF/mips-npic-call-pic.s vendor/lld/dist/test/ELF/mips-options.s vendor/lld/dist/test/ELF/mips-reginfo.s vendor/lld/dist/test/ELF/mips-sto-pic-flag.s vendor/lld/dist/test/ELF/mips-tls-64.s vendor/lld/dist/test/ELF/mips-tls-hilo.s vendor/lld/dist/test/ELF/mips-tls.s vendor/lld/dist/test/ELF/no-merge.s vendor/lld/dist/test/ELF/plt-i686.s vendor/lld/dist/test/ELF/pre_init_fini_array_missing.s vendor/lld/dist/test/ELF/relocatable-bss.s vendor/lld/dist/test/ELF/relocatable-common.s vendor/lld/dist/test/ELF/relocatable-ehframe.s vendor/lld/dist/test/ELF/relocatable.s vendor/lld/dist/test/ELF/relocation-relative-absolute.s vendor/lld/dist/test/ELF/relro-omagic.s vendor/lld/dist/test/ELF/reproduce.s vendor/lld/dist/test/ELF/resolution-end.s vendor/lld/dist/test/ELF/retain-symbols-file.s vendor/lld/dist/test/ELF/section-name.s vendor/lld/dist/test/ELF/splitstacks.s vendor/lld/dist/test/ELF/startstop-gccollect.s vendor/lld/dist/test/ELF/sysroot.s vendor/lld/dist/test/ELF/tls-mismatch.s vendor/lld/dist/test/ELF/tls-static.s vendor/lld/dist/test/ELF/trace-symbols.s vendor/lld/dist/test/ELF/ttext-tdata-tbss.s vendor/lld/dist/test/ELF/undef-shared.s vendor/lld/dist/test/ELF/undef-with-plt-addr.s vendor/lld/dist/test/ELF/undef.s vendor/lld/dist/test/ELF/unresolved-symbols.s vendor/lld/dist/test/ELF/verneed-local.s vendor/lld/dist/test/ELF/version-script-extern-exact.s vendor/lld/dist/test/ELF/version-script-extern-wildcards-anon.s vendor/lld/dist/test/ELF/version-script-glob.s vendor/lld/dist/test/ELF/version-script.s vendor/lld/dist/test/ELF/x86-64-dyn-rel-error.s vendor/lld/dist/test/ELF/x86-64-dyn-rel-error2.s vendor/lld/dist/test/ELF/x86-64-reloc-32-fpic.s vendor/lld/dist/test/ELF/x86-64-reloc-pc32-fpic.s vendor/lld/dist/test/ELF/zdefs.s vendor/lld/dist/test/ELF/zstack-size.s vendor/lld/dist/test/lit.cfg vendor/lld/dist/test/lit.site.cfg.in vendor/lld/dist/tools/lld/lld.cpp vendor/lld/dist/unittests/CoreTests/CMakeLists.txt vendor/lld/dist/unittests/CoreTests/ParallelTest.cpp Modified: vendor/lld/dist/CMakeLists.txt ============================================================================== --- vendor/lld/dist/CMakeLists.txt Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/CMakeLists.txt Sun Apr 16 16:03:39 2017 (r317025) @@ -11,8 +11,11 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRE message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH") endif() - execute_process(COMMAND "${LLVM_CONFIG_PATH}" "--obj-root" "--includedir" + execute_process(COMMAND "${LLVM_CONFIG_PATH}" + "--obj-root" + "--includedir" "--cmakedir" + "--src-root" RESULT_VARIABLE HAD_ERROR OUTPUT_VARIABLE LLVM_CONFIG_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -25,9 +28,11 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRE list(GET LLVM_CONFIG_OUTPUT 0 OBJ_ROOT) list(GET LLVM_CONFIG_OUTPUT 1 MAIN_INCLUDE_DIR) list(GET LLVM_CONFIG_OUTPUT 2 LLVM_CMAKE_PATH) + list(GET LLVM_CONFIG_OUTPUT 3 MAIN_SRC_DIR) set(LLVM_OBJ_ROOT ${OBJ_ROOT} CACHE PATH "path to LLVM build tree") set(LLVM_MAIN_INCLUDE_DIR ${MAIN_INCLUDE_DIR} CACHE PATH "path to llvm/include") + set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree") file(TO_CMAKE_PATH ${LLVM_OBJ_ROOT} LLVM_BINARY_DIR) @@ -49,6 +54,67 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRE include(AddLLVM) include(TableGen) include(HandleLLVMOptions) + + if(LLVM_INCLUDE_TESTS) + set(Python_ADDITIONAL_VERSIONS 2.7) + include(FindPythonInterp) + if(NOT PYTHONINTERP_FOUND) + message(FATAL_ERROR +"Unable to find Python interpreter, required for testing. + +Please install Python or specify the PYTHON_EXECUTABLE CMake variable.") + endif() + + if(${PYTHON_VERSION_STRING} VERSION_LESS 2.7) + message(FATAL_ERROR "Python 2.7 or newer is required") + endif() + + # Check prebuilt llvm/utils. + if(EXISTS ${LLVM_TOOLS_BINARY_DIR}/FileCheck${CMAKE_EXECUTABLE_SUFFIX} + AND EXISTS ${LLVM_TOOLS_BINARY_DIR}/not${CMAKE_EXECUTABLE_SUFFIX}) + set(LLVM_UTILS_PROVIDED ON) + endif() + + if(EXISTS ${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py) + # Note: path not really used, except for checking if lit was found + set(LLVM_LIT ${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py) + if(NOT LLVM_UTILS_PROVIDED) + add_subdirectory(${LLVM_MAIN_SRC_DIR}/utils/FileCheck utils/FileCheck) + add_subdirectory(${LLVM_MAIN_SRC_DIR}/utils/not utils/not) + set(LLVM_UTILS_PROVIDED ON) + set(LLD_TEST_DEPS FileCheck not) + endif() + set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest) + if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h + AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} + AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt) + add_subdirectory(${UNITTEST_DIR} utils/unittest) + endif() + else() + # Seek installed Lit. + find_program(LLVM_LIT + NAMES llvm-lit lit.py lit + PATHS "${LLVM_MAIN_SRC_DIR}/utils/lit" + DOC "Path to lit.py") + endif() + + if(LLVM_LIT) + # Define the default arguments to use with 'lit', and an option for the user + # to override. + set(LIT_ARGS_DEFAULT "-sv") + if (MSVC OR XCODE) + set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") + endif() + set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") + + # On Win32 hosts, provide an option to specify the path to the GnuWin32 tools. + if(WIN32 AND NOT CYGWIN) + set(LLVM_LIT_TOOLS_DIR "" CACHE PATH "Path to GnuWin32 tools") + endif() + else() + set(LLVM_INCLUDE_TESTS OFF) + endif() + endif() endif() set(LLD_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) Modified: vendor/lld/dist/COFF/CMakeLists.txt ============================================================================== --- vendor/lld/dist/COFF/CMakeLists.txt Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/COFF/CMakeLists.txt Sun Apr 16 16:03:39 2017 (r317025) @@ -15,6 +15,8 @@ add_lld_library(lldCOFF ICF.cpp InputFiles.cpp Librarian.cpp + LTO.cpp + MapFile.cpp MarkLive.cpp ModuleDef.cpp PDB.cpp @@ -25,6 +27,7 @@ add_lld_library(lldCOFF LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} + BitReader Core DebugInfoCodeView DebugInfoMSF @@ -40,7 +43,7 @@ add_lld_library(lldCOFF LINK_LIBS lldCore - ${PTHREAD_LIB} + ${LLVM_PTHREAD_LIB} DEPENDS COFFOptionsTableGen Modified: vendor/lld/dist/COFF/Chunks.cpp ============================================================================== --- vendor/lld/dist/COFF/Chunks.cpp Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/COFF/Chunks.cpp Sun Apr 16 16:03:39 2017 (r317025) @@ -11,6 +11,7 @@ #include "Error.h" #include "InputFiles.h" #include "Symbols.h" +#include "llvm/ADT/Twine.h" #include "llvm/Object/COFF.h" #include "llvm/Support/COFF.h" #include "llvm/Support/Debug.h" @@ -61,7 +62,7 @@ void SectionChunk::applyRelX64(uint8_t * case IMAGE_REL_AMD64_SECTION: add16(Off, Sym->getSectionIndex()); break; case IMAGE_REL_AMD64_SECREL: add32(Off, Sym->getSecrel()); break; default: - fatal("unsupported relocation type"); + fatal("unsupported relocation type 0x" + Twine::utohexstr(Type)); } } @@ -76,7 +77,7 @@ void SectionChunk::applyRelX86(uint8_t * case IMAGE_REL_I386_SECTION: add16(Off, Sym->getSectionIndex()); break; case IMAGE_REL_I386_SECREL: add32(Off, Sym->getSecrel()); break; default: - fatal("unsupported relocation type"); + fatal("unsupported relocation type 0x" + Twine::utohexstr(Type)); } } @@ -136,7 +137,7 @@ void SectionChunk::applyRelARM(uint8_t * case IMAGE_REL_ARM_BLX23T: applyBranch24T(Off, S - P - 4); break; case IMAGE_REL_ARM_SECREL: add32(Off, Sym->getSecrel()); break; default: - fatal("unsupported relocation type"); + fatal("unsupported relocation type 0x" + Twine::utohexstr(Type)); } } @@ -226,7 +227,7 @@ void SectionChunk::printDiscardedMessage // Removed by dead-stripping. If it's removed by ICF, ICF already // printed out the name, so don't repeat that here. if (Sym && this == Repl) - outs() << "Discarded " << Sym->getName() << "\n"; + message("Discarded " + Sym->getName()); } StringRef SectionChunk::getDebugName() { Modified: vendor/lld/dist/COFF/Chunks.h ============================================================================== --- vendor/lld/dist/COFF/Chunks.h Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/COFF/Chunks.h Sun Apr 16 16:03:39 2017 (r317025) @@ -187,10 +187,10 @@ public: const coff_section *Header; -private: - // A file this chunk was created from. + // The file that this chunk was created from. ObjectFile *File; +private: StringRef SectionName; std::vector AssocChildren; llvm::iterator_range Relocs; Modified: vendor/lld/dist/COFF/Config.h ============================================================================== --- vendor/lld/dist/COFF/Config.h Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/COFF/Config.h Sun Apr 16 16:03:39 2017 (r317025) @@ -80,14 +80,16 @@ struct Configuration { SymbolBody *Entry = nullptr; bool NoEntry = false; std::string OutputFile; + bool ColorDiagnostics; bool DoGC = true; bool DoICF = true; + uint64_t ErrorLimit = 20; bool Relocatable = true; bool Force = false; bool Debug = false; bool WriteSymtab = true; unsigned DebugTypes = static_cast(DebugType::None); - StringRef PDBPath; + llvm::SmallString<128> PDBPath; // Symbols in this set are considered as live by the garbage collector. std::set GCRoot; @@ -103,6 +105,8 @@ struct Configuration { std::map DLLOrder; SymbolBody *DelayLoadHelper = nullptr; + bool SaveTemps = false; + // Used for SafeSEH. Symbol *SEHTable = nullptr; Symbol *SEHCount = nullptr; @@ -111,7 +115,9 @@ struct Configuration { unsigned LTOOptLevel = 2; // Used for /opt:lldltojobs=N - unsigned LTOJobs = 1; + unsigned LTOJobs = 0; + // Used for /opt:lldltopartitions=N + unsigned LTOPartitions = 1; // Used for /merge:from=to (e.g. /merge:.rdata=.text) std::map Merge; @@ -135,6 +141,9 @@ struct Configuration { // Used for /alternatename. std::map AlternateNames; + // Used for /lldmap. + std::string MapFile; + uint64_t ImageBase = -1; uint64_t StackReserve = 1024 * 1024; uint64_t StackCommit = 4096; @@ -151,6 +160,7 @@ struct Configuration { bool TerminalServerAware = true; bool LargeAddressAware = false; bool HighEntropyVA = false; + bool AppContainer = false; // This is for debugging. bool DebugPdb = false; Modified: vendor/lld/dist/COFF/Driver.cpp ============================================================================== --- vendor/lld/dist/COFF/Driver.cpp Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/COFF/Driver.cpp Sun Apr 16 16:03:39 2017 (r317025) @@ -19,6 +19,7 @@ #include "llvm/ADT/Optional.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/LibDriver/LibDriver.h" +#include "llvm/Object/ArchiveWriter.h" #include "llvm/Option/Arg.h" #include "llvm/Option/ArgList.h" #include "llvm/Option/Option.h" @@ -31,17 +32,11 @@ #include #include -#ifdef _MSC_VER -// depends on for __uncaught_exception. -#include -#endif - #include using namespace llvm; using namespace llvm::COFF; using llvm::sys::Process; -using llvm::sys::fs::OpenFlags; using llvm::sys::fs::file_magic; using llvm::sys::fs::identify_magic; @@ -55,11 +50,16 @@ BumpPtrAllocator BAlloc; StringSaver Saver{BAlloc}; std::vector SpecificAllocBase::Instances; -bool link(ArrayRef Args) { +bool link(ArrayRef Args, raw_ostream &Diag) { + ErrorCount = 0; + ErrorOS = &Diag; + Argv0 = Args[0]; Config = make(); + Config->ColorDiagnostics = + (ErrorOS == &llvm::errs() && Process::StandardErrHasColors()); Driver = make(); Driver->link(Args); - return true; + return !ErrorCount; } // Drop directory components and replace extension with ".exe" or ".dll". @@ -121,10 +121,12 @@ void LinkerDriver::addBuffer(std::unique return Symtab.addFile(make(MBRef)); if (Magic == file_magic::bitcode) return Symtab.addFile(make(MBRef)); + if (Magic == file_magic::coff_cl_gl_object) - fatal(MBRef.getBufferIdentifier() + ": is not a native COFF file. " + error(MBRef.getBufferIdentifier() + ": is not a native COFF file. " "Recompile without /GL"); - Symtab.addFile(make(MBRef)); + else + Symtab.addFile(make(MBRef)); } void LinkerDriver::enqueuePath(StringRef Path) { @@ -134,12 +136,10 @@ void LinkerDriver::enqueuePath(StringRef enqueueTask([=]() { auto MBOrErr = Future->get(); if (MBOrErr.second) - fatal(MBOrErr.second, "could not open " + PathStr); - Driver->addBuffer(std::move(MBOrErr.first)); + error("could not open " + PathStr + ": " + MBOrErr.second.message()); + else + Driver->addBuffer(std::move(MBOrErr.first)); }); - - if (Config->OutputFile == "") - Config->OutputFile = getOutputPath(Path); } void LinkerDriver::addArchiveBuffer(MemoryBufferRef MB, StringRef SymName, @@ -151,17 +151,18 @@ void LinkerDriver::addArchiveBuffer(Memo } InputFile *Obj; - if (Magic == file_magic::coff_object) + if (Magic == file_magic::coff_object) { Obj = make(MB); - else if (Magic == file_magic::bitcode) + } else if (Magic == file_magic::bitcode) { Obj = make(MB); - else - fatal("unknown file type: " + MB.getBufferIdentifier()); + } else { + error("unknown file type: " + MB.getBufferIdentifier()); + return; + } Obj->ParentName = ParentName; Symtab.addFile(Obj); - if (Config->Verbose) - outs() << "Loaded " << toString(Obj) << " for " << SymName << "\n"; + log("Loaded " + toString(Obj) + " for " + SymName); } void LinkerDriver::enqueueArchiveMember(const Archive::Child &C, @@ -234,7 +235,7 @@ void LinkerDriver::parseDirectives(Strin case OPT_throwingnew: break; default: - fatal(Arg->getSpelling() + " is not allowed in .drectve"); + error(Arg->getSpelling() + " is not allowed in .drectve"); } } } @@ -402,7 +403,8 @@ static unsigned parseDebugType(StringRef DebugTypes |= StringSwitch(Type.lower()) .Case("cv", static_cast(DebugType::CV)) .Case("pdata", static_cast(DebugType::PData)) - .Case("fixup", static_cast(DebugType::Fixup)); + .Case("fixup", static_cast(DebugType::Fixup)) + .Default(0); return DebugTypes; } @@ -418,6 +420,132 @@ static std::string getMapFile(const opt: return (OutFile.substr(0, OutFile.rfind('.')) + ".map").str(); } +std::vector getArchiveMembers(Archive *File) { + std::vector V; + Error Err = Error::success(); + for (const ErrorOr &COrErr : File->children(Err)) { + Archive::Child C = + check(COrErr, + File->getFileName() + ": could not get the child of the archive"); + MemoryBufferRef MBRef = + check(C.getMemoryBufferRef(), + File->getFileName() + + ": could not get the buffer for a child of the archive"); + V.push_back(MBRef); + } + if (Err) + fatal(File->getFileName() + + ": Archive::children failed: " + toString(std::move(Err))); + return V; +} + +// A helper function for filterBitcodeFiles. +static bool needsRebuilding(MemoryBufferRef MB) { + // The MSVC linker doesn't support thin archives, so if it's a thin + // archive, we always need to rebuild it. + std::unique_ptr File = + check(Archive::create(MB), "Failed to read " + MB.getBufferIdentifier()); + if (File->isThin()) + return true; + + // Returns true if the archive contains at least one bitcode file. + for (MemoryBufferRef Member : getArchiveMembers(File.get())) + if (identify_magic(Member.getBuffer()) == file_magic::bitcode) + return true; + return false; +} + +// Opens a given path as an archive file and removes bitcode files +// from them if exists. This function is to appease the MSVC linker as +// their linker doesn't like archive files containing non-native +// object files. +// +// If a given archive doesn't contain bitcode files, the archive path +// is returned as-is. Otherwise, a new temporary file is created and +// its path is returned. +static Optional +filterBitcodeFiles(StringRef Path, std::vector &TemporaryFiles) { + std::unique_ptr MB = check( + MemoryBuffer::getFile(Path, -1, false, true), "could not open " + Path); + MemoryBufferRef MBRef = MB->getMemBufferRef(); + file_magic Magic = identify_magic(MBRef.getBuffer()); + + if (Magic == file_magic::bitcode) + return None; + if (Magic != file_magic::archive) + return Path.str(); + if (!needsRebuilding(MBRef)) + return Path.str(); + + std::unique_ptr File = + check(Archive::create(MBRef), + MBRef.getBufferIdentifier() + ": failed to parse archive"); + + std::vector New; + for (MemoryBufferRef Member : getArchiveMembers(File.get())) + if (identify_magic(Member.getBuffer()) != file_magic::bitcode) + New.emplace_back(Member); + + if (New.empty()) + return None; + + log("Creating a temporary archive for " + Path + " to remove bitcode files"); + + SmallString<128> S; + if (auto EC = sys::fs::createTemporaryFile("lld-" + sys::path::stem(Path), + ".lib", S)) + fatal(EC, "cannot create a temporary file"); + std::string Temp = S.str(); + TemporaryFiles.push_back(Temp); + + std::pair Ret = + llvm::writeArchive(Temp, New, /*WriteSymtab=*/true, Archive::Kind::K_GNU, + /*Deterministics=*/true, + /*Thin=*/false); + if (Ret.second) + error("failed to create a new archive " + S.str() + ": " + Ret.first); + return Temp; +} + +// Create response file contents and invoke the MSVC linker. +void LinkerDriver::invokeMSVC(opt::InputArgList &Args) { + std::string Rsp = "/nologo "; + std::vector Temps; + + for (auto *Arg : Args) { + switch (Arg->getOption().getID()) { + case OPT_linkrepro: + case OPT_lldmap: + case OPT_lldmap_file: + case OPT_lldsavetemps: + case OPT_msvclto: + // LLD-specific options are stripped. + break; + case OPT_opt: + if (!StringRef(Arg->getValue()).startswith("lld")) + Rsp += toString(Arg) + " "; + break; + case OPT_INPUT: { + if (Optional Path = doFindFile(Arg->getValue())) { + if (Optional S = filterBitcodeFiles(*Path, Temps)) + Rsp += quote(*S) + " "; + continue; + } + Rsp += quote(Arg->getValue()) + " "; + break; + } + default: + Rsp += toString(Arg) + " "; + } + } + + std::vector ObjectFiles = Symtab.compileBitcodeFiles(); + runMSVCLinker(Rsp, ObjectFiles); + + for (StringRef Path : Temps) + sys::fs::remove(Path); +} + void LinkerDriver::enqueueTask(std::function Task) { TaskQueue.push_back(std::move(Task)); } @@ -451,6 +579,22 @@ void LinkerDriver::link(ArrayRef V; + V.push_back("lld-link (LLVM option parsing)"); + for (auto *Arg : Args.filtered(OPT_mllvm)) + V.push_back(Arg->getValue()); + cl::ParseCommandLineOptions(V.size(), V.data()); + + // Handle /errorlimit early, because error() depends on it. + if (auto *Arg = Args.getLastArg(OPT_errorlimit)) { + int N = 20; + StringRef S = Arg->getValue(); + if (S.getAsInteger(10, N)) + error(Arg->getSpelling() + " number expected, but got " + S); + Config->ErrorLimit = N; + } + // Handle /help if (Args.hasArg(OPT_help)) { printHelp(ArgsArr[0]); @@ -467,12 +611,12 @@ void LinkerDriver::link(ArrayRefNoEntry = true; + if (Args.hasArg(OPT_dll)) + Config->NoEntry = true; + else + error("/noentry must be specified with /dll"); } // Handle /dll @@ -521,12 +666,17 @@ void LinkerDriver::link(ArrayRefRelocatable = false; - Config->DynamicBase = false; + if (Args.hasArg(OPT_dynamicbase)) { + error("/fixed must not be specified with /dynamicbase"); + } else { + Config->Relocatable = false; + Config->DynamicBase = false; + } } + if (Args.hasArg(OPT_appcontainer)) + Config->AppContainer = true; + // Handle /machine if (auto *Arg = Args.getLastArg(OPT_machine)) Config->Machine = getMachineType(Arg->getValue()); @@ -596,20 +746,31 @@ void LinkerDriver::link(ArrayRefLTOOptLevel) || Config->LTOOptLevel > 3) - fatal("/opt:lldlto: invalid optimization level: " + OptLevel); + error("/opt:lldlto: invalid optimization level: " + OptLevel); continue; } if (StringRef(S).startswith("lldltojobs=")) { StringRef Jobs = StringRef(S).substr(11); if (Jobs.getAsInteger(10, Config->LTOJobs) || Config->LTOJobs == 0) - fatal("/opt:lldltojobs: invalid job count: " + Jobs); + error("/opt:lldltojobs: invalid job count: " + Jobs); + continue; + } + if (StringRef(S).startswith("lldltopartitions=")) { + StringRef N = StringRef(S).substr(17); + if (N.getAsInteger(10, Config->LTOPartitions) || + Config->LTOPartitions == 0) + error("/opt:lldltopartitions: invalid partition count: " + N); continue; } if (S != "ref" && S != "lbr" && S != "nolbr") - fatal("/opt: unknown option: " + S); + error("/opt: unknown option: " + S); } } + // Handle /lldsavetemps + if (Args.hasArg(OPT_lldsavetemps)) + Config->SaveTemps = true; + // Handle /failifmismatch for (auto *Arg : Args.filtered(OPT_failifmismatch)) checkFailIfMismatch(Arg->getValue()); @@ -658,6 +819,11 @@ void LinkerDriver::link(ArrayRefDumpPdb = Args.hasArg(OPT_dumppdb); Config->DebugPdb = Args.hasArg(OPT_debugpdb); + Config->MapFile = getMapFile(Args); + + if (ErrorCount) + return; + // Create a list of input files. Files can be given as arguments // for /defaultlib option. std::vector MBs; @@ -678,7 +844,7 @@ void LinkerDriver::link(ArrayRefMachine == IMAGE_FILE_MACHINE_UNKNOWN) { - errs() << "warning: /machine is not specified. x64 is assumed.\n"; + warn("/machine is not specified. x64 is assumed"); Config->Machine = AMD64; } @@ -715,8 +881,7 @@ void LinkerDriver::link(ArrayRefEntry = addUndefined(S); - if (Config->Verbose) - outs() << "Entry name inferred: " << S << "\n"; + log("Entry name inferred: " + S); } // Handle /export @@ -749,6 +914,22 @@ void LinkerDriver::link(ArrayRefOutputFile.empty()) { + Config->OutputFile = + getOutputPath((*Args.filtered(OPT_INPUT).begin())->getValue()); + } + + // Put the PDB next to the image if no /pdb flag was passed. + if (Config->Debug && Config->PDBPath.empty()) { + Config->PDBPath = Config->OutputFile; + sys::path::replace_extension(Config->PDBPath, ".pdb"); + } + + // Disable PDB generation if the user requested it. + if (Args.hasArg(OPT_nopdb)) + Config->PDBPath = ""; + // Set default image base if /base is not given. if (Config->ImageBase == uint64_t(-1)) Config->ImageBase = getDefaultImageBase(); @@ -801,6 +982,16 @@ void LinkerDriver::link(ArrayRefSEHCompat) - fatal("/safeseh: " + File->getName() + " is not compatible with SEH"); + error("/safeseh: " + File->getName() + " is not compatible with SEH"); + if (ErrorCount) + return; + } // Windows specific -- when we are creating a .dll file, we also // need to create a .lib file. @@ -846,17 +1040,6 @@ void LinkerDriver::link(ArrayRef MB); void addBuffer(std::unique_ptr MB); void addArchiveBuffer(MemoryBufferRef MBRef, StringRef SymName, @@ -178,6 +180,8 @@ void checkFailIfMismatch(StringRef Arg); std::unique_ptr convertResToCOFF(const std::vector &MBs); +void runMSVCLinker(std::string Rsp, ArrayRef Objects); + // Create enum with OPT_xxx values for each option in Options.td enum { OPT_INVALID = 0, Modified: vendor/lld/dist/COFF/DriverUtils.cpp ============================================================================== --- vendor/lld/dist/COFF/DriverUtils.cpp Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/COFF/DriverUtils.cpp Sun Apr 16 16:03:39 2017 (r317025) @@ -44,31 +44,33 @@ namespace { class Executor { public: explicit Executor(StringRef S) : Saver(Alloc), Prog(Saver.save(S)) {} - void add(StringRef S) { Args.push_back(Saver.save(S).data()); } - void add(std::string &S) { Args.push_back(Saver.save(S).data()); } - void add(Twine S) { Args.push_back(Saver.save(S).data()); } - void add(const char *S) { Args.push_back(Saver.save(S).data()); } + void add(StringRef S) { Args.push_back(Saver.save(S)); } + void add(std::string &S) { Args.push_back(Saver.save(S)); } + void add(Twine S) { Args.push_back(Saver.save(S)); } + void add(const char *S) { Args.push_back(Saver.save(S)); } void run() { ErrorOr ExeOrErr = sys::findProgramByName(Prog); if (auto EC = ExeOrErr.getError()) fatal(EC, "unable to find " + Prog + " in PATH: "); - const char *Exe = Saver.save(*ExeOrErr).data(); + StringRef Exe = Saver.save(*ExeOrErr); Args.insert(Args.begin(), Exe); - Args.push_back(nullptr); - if (sys::ExecuteAndWait(Args[0], Args.data()) != 0) { - for (const char *S : Args) - if (S) - errs() << S << " "; - fatal("ExecuteAndWait failed"); - } + + std::vector Vec; + for (StringRef S : Args) + Vec.push_back(S.data()); + Vec.push_back(nullptr); + + if (sys::ExecuteAndWait(Args[0], Vec.data()) != 0) + fatal("ExecuteAndWait failed: " + + llvm::join(Args.begin(), Args.end(), " ")); } private: BumpPtrAllocator Alloc; StringSaver Saver; StringRef Prog; - std::vector Args; + std::vector Args; }; } // anonymous namespace @@ -167,8 +169,7 @@ void parseMerge(StringRef S) { if (!Inserted) { StringRef Existing = Pair.first->second; if (Existing != To) - errs() << "warning: " << S << ": already merged into " << Existing - << "\n"; + warn(S + ": already merged into " + Existing); } } @@ -282,11 +283,19 @@ static void quoteAndPrint(raw_ostream &O namespace { class TemporaryFile { public: - TemporaryFile(StringRef Prefix, StringRef Extn) { + TemporaryFile(StringRef Prefix, StringRef Extn, StringRef Contents = "") { SmallString<128> S; if (auto EC = sys::fs::createTemporaryFile("lld-" + Prefix, Extn, S)) fatal(EC, "cannot create a temporary file"); Path = S.str(); + + if (!Contents.empty()) { + std::error_code EC; + raw_fd_ostream OS(Path, EC, sys::fs::F_None); + if (EC) + fatal(EC, "failed to open " + Path); + OS << Contents; + } } TemporaryFile(TemporaryFile &&Obj) { @@ -542,7 +551,7 @@ void fixupExports() { Export *Existing = Pair.first->second; if (E == *Existing || E.Name != Existing->Name) continue; - errs() << "warning: duplicate /export option: " << E.Name << "\n"; + warn("duplicate /export option: " + E.Name); } Config->Exports = std::move(V); @@ -617,6 +626,26 @@ convertResToCOFF(const std::vector Objects) { + // Write the in-memory object files to disk. + std::vector Temps; + for (StringRef S : Objects) { + Temps.emplace_back("lto", "obj", S); + Rsp += quote(Temps.back().Path) + " "; + } + + log("link.exe " + Rsp); + + // Run MSVC link.exe. + Temps.emplace_back("lto", "rsp", Rsp); + Executor E("link.exe"); + E.add(Twine("@" + Temps.back().Path)); + E.run(); +} + // Create OptTable // Create prefix string literals used in Options.td @@ -653,16 +682,16 @@ opt::InputArgList ArgParser::parse(Array // Print the real command line if response files are expanded. if (Args.hasArg(OPT_verbose) && ArgsArr.size() != Argv.size()) { - outs() << "Command line:"; + std::string Msg = "Command line:"; for (const char *S : Argv) - outs() << " " << S; - outs() << "\n"; + Msg += " " + std::string(S); + message(Msg); } if (MissingCount) fatal(Twine(Args.getArgString(MissingIndex)) + ": missing argument"); for (auto *Arg : Args.filtered(OPT_UNKNOWN)) - errs() << "ignoring unknown argument: " << Arg->getSpelling() << "\n"; + warn("ignoring unknown argument: " + Arg->getSpelling()); return Args; } Modified: vendor/lld/dist/COFF/Error.cpp ============================================================================== --- vendor/lld/dist/COFF/Error.cpp Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/COFF/Error.cpp Sun Apr 16 16:03:39 2017 (r317025) @@ -8,11 +8,14 @@ //===----------------------------------------------------------------------===// #include "Error.h" +#include "Config.h" #include "llvm/ADT/Twine.h" #include "llvm/Support/Error.h" +#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Process.h" #include "llvm/Support/raw_ostream.h" +#include #if !defined(_MSC_VER) && !defined(__MINGW32__) #include @@ -21,10 +24,68 @@ using namespace llvm; namespace lld { +// The functions defined in this file can be called from multiple threads, +// but outs() or errs() are not thread-safe. We protect them using a mutex. +static std::mutex Mu; + namespace coff { +StringRef Argv0; +uint64_t ErrorCount; +raw_ostream *ErrorOS; + +static LLVM_ATTRIBUTE_NORETURN void exitLld(int Val) { + // Dealloc/destroy ManagedStatic variables before calling + // _exit(). In a non-LTO build, this is a nop. In an LTO + // build allows us to get the output of -time-passes. + llvm_shutdown(); + + outs().flush(); + errs().flush(); + _exit(Val); +} + +static void print(StringRef S, raw_ostream::Colors C) { + *ErrorOS << Argv0 + ": "; + if (Config->ColorDiagnostics) { + ErrorOS->changeColor(C, true); + *ErrorOS << S; + ErrorOS->resetColor(); + } else { + *ErrorOS << S; + } +} + +void log(const Twine &Msg) { + if (Config->Verbose) { + std::lock_guard Lock(Mu); + outs() << Argv0 << ": " << Msg << "\n"; + } +} + +void message(const Twine &Msg) { + std::lock_guard Lock(Mu); + outs() << Msg << "\n"; + outs().flush(); +} + +void error(const Twine &Msg) { + std::lock_guard Lock(Mu); + + if (Config->ErrorLimit == 0 || ErrorCount < Config->ErrorLimit) { + print("error: ", raw_ostream::RED); + *ErrorOS << Msg << "\n"; + } else if (ErrorCount == Config->ErrorLimit) { + print("error: ", raw_ostream::RED); + *ErrorOS << "too many errors emitted, stopping now" + << " (use /ERRORLIMIT:0 to see all errors)\n"; + exitLld(1); + } + + ++ErrorCount; +} void fatal(const Twine &Msg) { - if (sys::Process::StandardErrHasColors()) { + if (Config->ColorDiagnostics) { errs().changeColor(raw_ostream::RED, /*bold=*/true); errs() << "error: "; errs().resetColor(); @@ -32,10 +93,7 @@ void fatal(const Twine &Msg) { errs() << "error: "; } errs() << Msg << "\n"; - - outs().flush(); - errs().flush(); - _exit(1); + exitLld(1); } void fatal(std::error_code EC, const Twine &Msg) { @@ -46,5 +104,11 @@ void fatal(llvm::Error &Err, const Twine fatal(errorToErrorCode(std::move(Err)), Msg); } +void warn(const Twine &Msg) { + std::lock_guard Lock(Mu); + print("warning: ", raw_ostream::MAGENTA); + *ErrorOS << Msg << "\n"; +} + } // namespace coff } // namespace lld Modified: vendor/lld/dist/COFF/Error.h ============================================================================== --- vendor/lld/dist/COFF/Error.h Sun Apr 16 16:03:30 2017 (r317024) +++ vendor/lld/dist/COFF/Error.h Sun Apr 16 16:03:39 2017 (r317025) @@ -16,11 +16,19 @@ namespace lld { namespace coff { +extern uint64_t ErrorCount; +extern llvm::raw_ostream *ErrorOS; +extern llvm::StringRef Argv0; + +void log(const Twine &Msg); +void message(const Twine &Msg); +void warn(const Twine &Msg); +void error(const Twine &Msg); LLVM_ATTRIBUTE_NORETURN void fatal(const Twine &Msg); LLVM_ATTRIBUTE_NORETURN void fatal(std::error_code EC, const Twine &Prefix); LLVM_ATTRIBUTE_NORETURN void fatal(llvm::Error &Err, const Twine &Prefix); -template T check(ErrorOr &&V, const Twine &Prefix) { +template T check(ErrorOr V, const Twine &Prefix) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 16 16:03:45 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E889D4019E; Sun, 16 Apr 2017 16:03:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C51BF9D3; Sun, 16 Apr 2017 16:03: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 v3GG3hRL097388; Sun, 16 Apr 2017 16:03:43 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG3hrx097387; Sun, 16 Apr 2017 16:03:43 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161603.v3GG3hrx097387@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:03:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317026 - vendor/lld/lld-trunk-r300422 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:03:45 -0000 Author: dim Date: Sun Apr 16 16:03:43 2017 New Revision: 317026 URL: https://svnweb.freebsd.org/changeset/base/317026 Log: Tag lld trunk r300422. Added: vendor/lld/lld-trunk-r300422/ - copied from r317025, vendor/lld/dist/ From owner-svn-src-all@freebsd.org Sun Apr 16 16:04:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CFF84D4031E; Sun, 16 Apr 2017 16:04:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 89BA1CBD; Sun, 16 Apr 2017 16:04:21 +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 v3GG4K4T097534; Sun, 16 Apr 2017 16:04:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG4Ksp097533; Sun, 16 Apr 2017 16:04:20 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161604.v3GG4Ksp097533@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:04:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317028 - vendor/lldb/lldb-trunk-r300422 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:04:21 -0000 Author: dim Date: Sun Apr 16 16:04:20 2017 New Revision: 317028 URL: https://svnweb.freebsd.org/changeset/base/317028 Log: Tag lldb trunk r300422. Added: vendor/lldb/lldb-trunk-r300422/ - copied from r317027, vendor/lldb/dist/ From owner-svn-src-all@freebsd.org Sun Apr 16 16:04:16 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A9AC0D4030D; Sun, 16 Apr 2017 16:04:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F4226C6C; Sun, 16 Apr 2017 16:04:15 +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 v3GG4F2r097485; Sun, 16 Apr 2017 16:04:15 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GG4BwT097451; Sun, 16 Apr 2017 16:04:11 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704161604.v3GG4BwT097451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 16 Apr 2017 16:04:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317027 - in vendor/lldb/dist: . cmake cmake/modules cmake/platforms docs examples/python include/lldb include/lldb/API include/lldb/Breakpoint include/lldb/Core include/lldb/DataFormat... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:04:16 -0000 Author: dim Date: Sun Apr 16 16:04:10 2017 New Revision: 317027 URL: https://svnweb.freebsd.org/changeset/base/317027 Log: Vendor import of lldb trunk r300422: https://llvm.org/svn/llvm-project/lldb/trunk@300422 Added: vendor/lldb/dist/include/lldb/Core/DumpDataExtractor.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/Config.h.cmake vendor/lldb/dist/include/lldb/Host/PseudoTerminal.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/linux/Support.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/openbsd/ vendor/lldb/dist/include/lldb/Host/openbsd/HostInfoOpenBSD.h (contents, props changed) vendor/lldb/dist/include/lldb/Host/posix/ProcessLauncherPosixFork.h (contents, props changed) vendor/lldb/dist/include/lldb/Target/ModuleCache.h (contents, props changed) vendor/lldb/dist/include/lldb/Target/ProcessStructReader.h (contents, props changed) vendor/lldb/dist/include/lldb/Target/RegisterNumber.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Baton.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/ConstString.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/DataBuffer.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/DataBufferHeap.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/DataBufferLLVM.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/DataEncoder.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/DataExtractor.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Endian.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Error.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/FastDemangle.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/FileSpec.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Flags.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/History.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Log.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Logging.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/RegularExpression.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Stream.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/StreamCallback.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/StreamGDBRemote.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/StreamString.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/StreamTee.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/StringList.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/TildeExpressionResolver.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/UUID.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/UriParser.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/UserID.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/VASPrintf.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/VMRange.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/TestMoveNearest.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/foo.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/foo.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/step_over_breakpoint/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/step_over_breakpoint/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/step_over_breakpoint/TestStepOverBreakpoint.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/step_over_breakpoint/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/darwin_log/.categories vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/disassembly/TestFrameDisassemble.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame-language/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame-language/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame-language/TestGuessLanguage.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame-language/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame-language/other-2.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame-language/other.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame-language/other.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame-language/somefunc.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/linux-mips64el-gnuabi64.core (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/linux-mips64el-gnuabi64.out (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/linux-mips64el-gnuabin32.core (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/linux-mips64el-gnuabin32.out (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/linux-mipsel-gnuabio32.core (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/linux-mipsel-gnuabio32.out (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/pre_run_dylibs/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/pre_run_dylibs/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/pre_run_dylibs/TestPreRunDylibs.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/pre_run_dylibs/foo.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/pre_run_dylibs/foo.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/pre_run_dylibs/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/find_struct_type/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/find_struct_type/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/find_struct_type/TestFindStructTypes.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/find_struct_type/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/make/Android.rules vendor/lldb/dist/packages/Python/lldbsuite/test/make/pseudo_barrier.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/name_lookup/ vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/name_lookup/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/name_lookup/TestNameLookup.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/name_lookup/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/sample_test/ vendor/lldb/dist/packages/Python/lldbsuite/test/sample_test/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/sample_test/TestSampleInlineTest.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/sample_test/TestSampleTest.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/sample_test/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/lexical_scope/ vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/lexical_scope/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/lexical_scope/TestMiLexicalScope.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/lexical_scope/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/.clang-format vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteHostInfo.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/signal-filtering/ vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/signal-filtering/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/signal-filtering/TestGdbRemote_QPassSignals.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/signal-filtering/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/thread-name/ vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/thread-name/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/thread-name/TestGdbRemoteThreadName.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/thread-name/main.cpp (contents, props changed) vendor/lldb/dist/scripts/Xcode/repo.py (contents, props changed) vendor/lldb/dist/scripts/Xcode/repos/ vendor/lldb/dist/scripts/Xcode/repos/FALLBACK vendor/lldb/dist/scripts/Xcode/repos/svn-trunk.json vendor/lldb/dist/scripts/analyze-project-deps.py (contents, props changed) vendor/lldb/dist/source/Core/DumpDataExtractor.cpp (contents, props changed) vendor/lldb/dist/source/Host/common/PseudoTerminal.cpp (contents, props changed) vendor/lldb/dist/source/Host/linux/Support.cpp (contents, props changed) vendor/lldb/dist/source/Host/openbsd/ vendor/lldb/dist/source/Host/openbsd/Host.cpp (contents, props changed) vendor/lldb/dist/source/Host/openbsd/HostInfoOpenBSD.cpp (contents, props changed) vendor/lldb/dist/source/Host/posix/ProcessLauncherPosixFork.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h (contents, props changed) vendor/lldb/dist/source/Plugins/Platform/OpenBSD/ vendor/lldb/dist/source/Plugins/Platform/OpenBSD/CMakeLists.txt (contents, props changed) vendor/lldb/dist/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/ vendor/lldb/dist/source/Plugins/Process/NetBSD/CMakeLists.txt (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.h (contents, props changed) vendor/lldb/dist/source/Target/ModuleCache.cpp (contents, props changed) vendor/lldb/dist/source/Target/RegisterNumber.cpp (contents, props changed) vendor/lldb/dist/source/Utility/Baton.cpp (contents, props changed) vendor/lldb/dist/source/Utility/ConstString.cpp (contents, props changed) vendor/lldb/dist/source/Utility/DataBufferHeap.cpp (contents, props changed) vendor/lldb/dist/source/Utility/DataBufferLLVM.cpp (contents, props changed) vendor/lldb/dist/source/Utility/DataEncoder.cpp (contents, props changed) vendor/lldb/dist/source/Utility/DataExtractor.cpp (contents, props changed) vendor/lldb/dist/source/Utility/Error.cpp (contents, props changed) vendor/lldb/dist/source/Utility/FastDemangle.cpp (contents, props changed) vendor/lldb/dist/source/Utility/FileSpec.cpp (contents, props changed) vendor/lldb/dist/source/Utility/History.cpp (contents, props changed) vendor/lldb/dist/source/Utility/Log.cpp (contents, props changed) vendor/lldb/dist/source/Utility/Logging.cpp (contents, props changed) vendor/lldb/dist/source/Utility/RegularExpression.cpp (contents, props changed) vendor/lldb/dist/source/Utility/Stream.cpp (contents, props changed) vendor/lldb/dist/source/Utility/StreamCallback.cpp (contents, props changed) vendor/lldb/dist/source/Utility/StreamGDBRemote.cpp (contents, props changed) vendor/lldb/dist/source/Utility/StreamString.cpp (contents, props changed) vendor/lldb/dist/source/Utility/StringList.cpp (contents, props changed) vendor/lldb/dist/source/Utility/TildeExpressionResolver.cpp (contents, props changed) vendor/lldb/dist/source/Utility/UUID.cpp (contents, props changed) vendor/lldb/dist/source/Utility/UserID.cpp (contents, props changed) vendor/lldb/dist/source/Utility/VASprintf.cpp (contents, props changed) vendor/lldb/dist/source/Utility/VMRange.cpp (contents, props changed) vendor/lldb/dist/tools/intel-mpx/ vendor/lldb/dist/tools/intel-mpx/CMakeLists.txt (contents, props changed) vendor/lldb/dist/tools/intel-mpx/IntelMPXTablePlugin.cpp (contents, props changed) vendor/lldb/dist/tools/intel-mpx/test/ vendor/lldb/dist/tools/intel-mpx/test/Makefile (contents, props changed) vendor/lldb/dist/tools/intel-mpx/test/README.txt (contents, props changed) vendor/lldb/dist/tools/intel-mpx/test/TestMPXTable.py (contents, props changed) vendor/lldb/dist/tools/intel-mpx/test/main.cpp (contents, props changed) vendor/lldb/dist/unittests/Core/StateTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Core/StreamCallbackTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Host/linux/ vendor/lldb/dist/unittests/Host/linux/HostTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Host/linux/SupportTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Interpreter/TestCompletion.cpp (contents, props changed) vendor/lldb/dist/unittests/ObjectFile/ vendor/lldb/dist/unittests/ObjectFile/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/ObjectFile/ELF/ vendor/lldb/dist/unittests/ObjectFile/ELF/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/ObjectFile/ELF/TestELFHeader.cpp (contents, props changed) vendor/lldb/dist/unittests/Signals/ vendor/lldb/dist/unittests/Signals/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/Signals/UnixSignalsTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Target/ vendor/lldb/dist/unittests/Target/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/Target/Inputs/ vendor/lldb/dist/unittests/Target/Inputs/TestModule.c (contents, props changed) vendor/lldb/dist/unittests/Target/Inputs/TestModule.so (contents, props changed) vendor/lldb/dist/unittests/Target/MemoryRegionInfoTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Target/ModuleCacheTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/ConstStringTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/ErrorTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/LogTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/Mocks/ vendor/lldb/dist/unittests/Utility/Mocks/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/Utility/Mocks/MockTildeExpressionResolver.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/Mocks/MockTildeExpressionResolver.h (contents, props changed) vendor/lldb/dist/unittests/Utility/NameMatchesTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/TildeExpressionResolverTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/VASprintfTest.cpp (contents, props changed) vendor/lldb/dist/unittests/debugserver/ vendor/lldb/dist/unittests/debugserver/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/debugserver/RNBSocketTest.cpp (contents, props changed) vendor/lldb/dist/unittests/debugserver/debugserver_LogCallback.cpp (contents, props changed) vendor/lldb/dist/www/projects.html (contents, props changed) Deleted: vendor/lldb/dist/include/lldb/Core/Baton.h vendor/lldb/dist/include/lldb/Core/ConstString.h vendor/lldb/dist/include/lldb/Core/DataBuffer.h vendor/lldb/dist/include/lldb/Core/DataBufferHeap.h vendor/lldb/dist/include/lldb/Core/DataBufferMemoryMap.h vendor/lldb/dist/include/lldb/Core/DataEncoder.h vendor/lldb/dist/include/lldb/Core/DataExtractor.h vendor/lldb/dist/include/lldb/Core/Error.h vendor/lldb/dist/include/lldb/Core/FastDemangle.h vendor/lldb/dist/include/lldb/Core/Flags.h vendor/lldb/dist/include/lldb/Core/History.h vendor/lldb/dist/include/lldb/Core/Log.h vendor/lldb/dist/include/lldb/Core/Logging.h vendor/lldb/dist/include/lldb/Core/RegularExpression.h vendor/lldb/dist/include/lldb/Core/Stream.h vendor/lldb/dist/include/lldb/Core/StreamCallback.h vendor/lldb/dist/include/lldb/Core/StreamGDBRemote.h vendor/lldb/dist/include/lldb/Core/StreamString.h vendor/lldb/dist/include/lldb/Core/StreamTee.h vendor/lldb/dist/include/lldb/Core/StringList.h vendor/lldb/dist/include/lldb/Core/UUID.h vendor/lldb/dist/include/lldb/Core/UserID.h vendor/lldb/dist/include/lldb/Core/VMRange.h vendor/lldb/dist/include/lldb/Host/Endian.h vendor/lldb/dist/include/lldb/Host/FileSpec.h vendor/lldb/dist/include/lldb/Host/ThisThread.h vendor/lldb/dist/include/lldb/Host/android/Config.h vendor/lldb/dist/include/lldb/Host/common/NativeRegisterContextRegisterInfo.h vendor/lldb/dist/include/lldb/Host/freebsd/Config.h vendor/lldb/dist/include/lldb/Host/freebsd/HostThreadFreeBSD.h vendor/lldb/dist/include/lldb/Host/linux/Config.h vendor/lldb/dist/include/lldb/Host/linux/HostThreadLinux.h vendor/lldb/dist/include/lldb/Host/linux/ProcessLauncherLinux.h vendor/lldb/dist/include/lldb/Host/macosx/Config.h vendor/lldb/dist/include/lldb/Host/mingw/Config.h vendor/lldb/dist/include/lldb/Host/msvc/Config.h vendor/lldb/dist/include/lldb/Host/netbsd/Config.h vendor/lldb/dist/include/lldb/Host/netbsd/HostThreadNetBSD.h vendor/lldb/dist/include/lldb/Utility/ConvertEnum.h vendor/lldb/dist/include/lldb/Utility/PriorityPointerPair.h vendor/lldb/dist/include/lldb/Utility/ProcessStructReader.h vendor/lldb/dist/include/lldb/Utility/PseudoTerminal.h vendor/lldb/dist/include/lldb/Utility/RegisterNumber.h vendor/lldb/dist/include/lldb/Utility/Utils.h vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/llvm/ vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/host-info/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/host-info/TestGdbRemoteHostInfo.py vendor/lldb/dist/source/Core/Baton.cpp vendor/lldb/dist/source/Core/ConstString.cpp vendor/lldb/dist/source/Core/DataBufferHeap.cpp vendor/lldb/dist/source/Core/DataBufferMemoryMap.cpp vendor/lldb/dist/source/Core/DataEncoder.cpp vendor/lldb/dist/source/Core/DataExtractor.cpp vendor/lldb/dist/source/Core/Error.cpp vendor/lldb/dist/source/Core/FastDemangle.cpp vendor/lldb/dist/source/Core/History.cpp vendor/lldb/dist/source/Core/Log.cpp vendor/lldb/dist/source/Core/Logging.cpp vendor/lldb/dist/source/Core/RegularExpression.cpp vendor/lldb/dist/source/Core/Stream.cpp vendor/lldb/dist/source/Core/StreamCallback.cpp vendor/lldb/dist/source/Core/StreamGDBRemote.cpp vendor/lldb/dist/source/Core/StreamString.cpp vendor/lldb/dist/source/Core/StringList.cpp vendor/lldb/dist/source/Core/UUID.cpp vendor/lldb/dist/source/Core/UserID.cpp vendor/lldb/dist/source/Core/VMRange.cpp vendor/lldb/dist/source/Host/common/FileSpec.cpp vendor/lldb/dist/source/Host/common/NativeRegisterContextRegisterInfo.cpp vendor/lldb/dist/source/Host/common/ThisThread.cpp vendor/lldb/dist/source/Host/freebsd/HostThreadFreeBSD.cpp vendor/lldb/dist/source/Host/freebsd/ThisThread.cpp vendor/lldb/dist/source/Host/linux/HostThreadLinux.cpp vendor/lldb/dist/source/Host/linux/ThisThread.cpp vendor/lldb/dist/source/Host/macosx/ThisThread.cpp vendor/lldb/dist/source/Host/netbsd/HostThreadNetBSD.cpp vendor/lldb/dist/source/Host/netbsd/ThisThread.cpp vendor/lldb/dist/source/Host/windows/ThisThread.cpp vendor/lldb/dist/source/Plugins/Process/Linux/ProcFileReader.cpp vendor/lldb/dist/source/Plugins/Process/Linux/ProcFileReader.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_arm.h vendor/lldb/dist/source/Utility/ARM64_DWARF_Registers.cpp vendor/lldb/dist/source/Utility/ARM_DWARF_Registers.cpp vendor/lldb/dist/source/Utility/ConvertEnum.cpp vendor/lldb/dist/source/Utility/ModuleCache.cpp vendor/lldb/dist/source/Utility/ModuleCache.h vendor/lldb/dist/source/Utility/PseudoTerminal.cpp vendor/lldb/dist/source/Utility/RegisterNumber.cpp vendor/lldb/dist/source/Utility/UriParser.h vendor/lldb/dist/tools/debugserver/source/MacOSX/HasAVX.h vendor/lldb/dist/tools/debugserver/source/MacOSX/HasAVX.s vendor/lldb/dist/unittests/Core/ErrorTest.cpp vendor/lldb/dist/unittests/Utility/Inputs/ vendor/lldb/dist/unittests/Utility/ModuleCacheTest.cpp Modified: vendor/lldb/dist/CMakeLists.txt vendor/lldb/dist/CODE_OWNERS.txt vendor/lldb/dist/INSTALL.txt vendor/lldb/dist/cmake/LLDBDependencies.cmake vendor/lldb/dist/cmake/modules/AddLLDB.cmake vendor/lldb/dist/cmake/modules/LLDBConfig.cmake vendor/lldb/dist/cmake/modules/LLDBStandalone.cmake vendor/lldb/dist/cmake/platforms/Android.cmake vendor/lldb/dist/docs/lldb-gdb-remote.txt vendor/lldb/dist/examples/python/crashlog.py vendor/lldb/dist/examples/python/gdbremote.py vendor/lldb/dist/include/lldb/API/SBAttachInfo.h vendor/lldb/dist/include/lldb/API/SBBreakpoint.h vendor/lldb/dist/include/lldb/API/SBBreakpointLocation.h vendor/lldb/dist/include/lldb/API/SBFrame.h vendor/lldb/dist/include/lldb/API/SBListener.h vendor/lldb/dist/include/lldb/API/SBTarget.h vendor/lldb/dist/include/lldb/API/SBWatchpoint.h vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolver.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileLine.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileRegex.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSite.h vendor/lldb/dist/include/lldb/Breakpoint/Stoppoint.h vendor/lldb/dist/include/lldb/Breakpoint/StoppointLocation.h vendor/lldb/dist/include/lldb/Breakpoint/Watchpoint.h vendor/lldb/dist/include/lldb/Breakpoint/WatchpointOptions.h vendor/lldb/dist/include/lldb/Core/Address.h vendor/lldb/dist/include/lldb/Core/AddressRange.h vendor/lldb/dist/include/lldb/Core/AddressResolver.h vendor/lldb/dist/include/lldb/Core/AddressResolverFileLine.h vendor/lldb/dist/include/lldb/Core/AddressResolverName.h vendor/lldb/dist/include/lldb/Core/ArchSpec.h vendor/lldb/dist/include/lldb/Core/Broadcaster.h vendor/lldb/dist/include/lldb/Core/Communication.h vendor/lldb/dist/include/lldb/Core/Connection.h vendor/lldb/dist/include/lldb/Core/Debugger.h vendor/lldb/dist/include/lldb/Core/Disassembler.h vendor/lldb/dist/include/lldb/Core/EmulateInstruction.h vendor/lldb/dist/include/lldb/Core/Event.h vendor/lldb/dist/include/lldb/Core/FileLineResolver.h vendor/lldb/dist/include/lldb/Core/FileSpecList.h vendor/lldb/dist/include/lldb/Core/FormatEntity.h vendor/lldb/dist/include/lldb/Core/IOHandler.h vendor/lldb/dist/include/lldb/Core/Listener.h vendor/lldb/dist/include/lldb/Core/Mangled.h vendor/lldb/dist/include/lldb/Core/MappedHash.h vendor/lldb/dist/include/lldb/Core/Module.h vendor/lldb/dist/include/lldb/Core/ModuleChild.h vendor/lldb/dist/include/lldb/Core/ModuleList.h vendor/lldb/dist/include/lldb/Core/ModuleSpec.h vendor/lldb/dist/include/lldb/Core/Opcode.h vendor/lldb/dist/include/lldb/Core/PluginManager.h vendor/lldb/dist/include/lldb/Core/RangeMap.h vendor/lldb/dist/include/lldb/Core/RegisterValue.h vendor/lldb/dist/include/lldb/Core/Scalar.h vendor/lldb/dist/include/lldb/Core/SearchFilter.h vendor/lldb/dist/include/lldb/Core/Section.h vendor/lldb/dist/include/lldb/Core/SourceManager.h vendor/lldb/dist/include/lldb/Core/State.h vendor/lldb/dist/include/lldb/Core/StreamAsynchronousIO.h vendor/lldb/dist/include/lldb/Core/StreamBuffer.h vendor/lldb/dist/include/lldb/Core/StreamFile.h vendor/lldb/dist/include/lldb/Core/StructuredData.h vendor/lldb/dist/include/lldb/Core/Timer.h vendor/lldb/dist/include/lldb/Core/UniqueCStringMap.h vendor/lldb/dist/include/lldb/Core/UserSettingsController.h vendor/lldb/dist/include/lldb/Core/Value.h vendor/lldb/dist/include/lldb/Core/ValueObject.h vendor/lldb/dist/include/lldb/Core/ValueObjectCast.h vendor/lldb/dist/include/lldb/Core/ValueObjectChild.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResult.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultCast.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultChild.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultImpl.h vendor/lldb/dist/include/lldb/Core/ValueObjectDynamicValue.h vendor/lldb/dist/include/lldb/Core/ValueObjectList.h vendor/lldb/dist/include/lldb/Core/ValueObjectMemory.h vendor/lldb/dist/include/lldb/Core/ValueObjectRegister.h vendor/lldb/dist/include/lldb/Core/ValueObjectSyntheticFilter.h vendor/lldb/dist/include/lldb/Core/ValueObjectVariable.h vendor/lldb/dist/include/lldb/DataFormatters/DataVisualization.h vendor/lldb/dist/include/lldb/DataFormatters/DumpValueObjectOptions.h vendor/lldb/dist/include/lldb/DataFormatters/FormatCache.h vendor/lldb/dist/include/lldb/DataFormatters/FormattersContainer.h vendor/lldb/dist/include/lldb/DataFormatters/StringPrinter.h vendor/lldb/dist/include/lldb/DataFormatters/TypeSummary.h vendor/lldb/dist/include/lldb/DataFormatters/ValueObjectPrinter.h vendor/lldb/dist/include/lldb/DataFormatters/VectorIterator.h vendor/lldb/dist/include/lldb/Expression/DWARFExpression.h vendor/lldb/dist/include/lldb/Expression/ExpressionParser.h vendor/lldb/dist/include/lldb/Expression/ExpressionVariable.h vendor/lldb/dist/include/lldb/Expression/IRExecutionUnit.h vendor/lldb/dist/include/lldb/Expression/IRInterpreter.h vendor/lldb/dist/include/lldb/Expression/IRMemoryMap.h vendor/lldb/dist/include/lldb/Expression/Materializer.h vendor/lldb/dist/include/lldb/Host/Config.h vendor/lldb/dist/include/lldb/Host/Editline.h vendor/lldb/dist/include/lldb/Host/File.h vendor/lldb/dist/include/lldb/Host/FileCache.h vendor/lldb/dist/include/lldb/Host/FileSystem.h vendor/lldb/dist/include/lldb/Host/Host.h vendor/lldb/dist/include/lldb/Host/HostInfo.h vendor/lldb/dist/include/lldb/Host/HostInfoBase.h vendor/lldb/dist/include/lldb/Host/HostNativeProcessBase.h vendor/lldb/dist/include/lldb/Host/HostNativeThread.h vendor/lldb/dist/include/lldb/Host/HostNativeThreadBase.h vendor/lldb/dist/include/lldb/Host/HostNativeThreadForward.h vendor/lldb/dist/include/lldb/Host/HostThread.h vendor/lldb/dist/include/lldb/Host/LockFileBase.h vendor/lldb/dist/include/lldb/Host/MainLoopBase.h vendor/lldb/dist/include/lldb/Host/PipeBase.h vendor/lldb/dist/include/lldb/Host/Socket.h vendor/lldb/dist/include/lldb/Host/SocketAddress.h vendor/lldb/dist/include/lldb/Host/Symbols.h vendor/lldb/dist/include/lldb/Host/ThreadLauncher.h vendor/lldb/dist/include/lldb/Host/XML.h vendor/lldb/dist/include/lldb/Host/common/NativeBreakpointList.h vendor/lldb/dist/include/lldb/Host/common/NativeProcessProtocol.h vendor/lldb/dist/include/lldb/Host/common/NativeRegisterContext.h vendor/lldb/dist/include/lldb/Host/common/NativeThreadProtocol.h vendor/lldb/dist/include/lldb/Host/common/NativeWatchpointList.h vendor/lldb/dist/include/lldb/Host/common/UDPSocket.h vendor/lldb/dist/include/lldb/Host/freebsd/HostInfoFreeBSD.h vendor/lldb/dist/include/lldb/Host/linux/HostInfoLinux.h vendor/lldb/dist/include/lldb/Host/macosx/HostInfoMacOSX.h vendor/lldb/dist/include/lldb/Host/netbsd/HostInfoNetBSD.h vendor/lldb/dist/include/lldb/Host/posix/HostInfoPosix.h vendor/lldb/dist/include/lldb/Host/posix/HostProcessPosix.h vendor/lldb/dist/include/lldb/Host/windows/HostInfoWindows.h vendor/lldb/dist/include/lldb/Host/windows/PosixApi.h vendor/lldb/dist/include/lldb/Interpreter/Args.h vendor/lldb/dist/include/lldb/Interpreter/CommandCompletions.h vendor/lldb/dist/include/lldb/Interpreter/CommandHistory.h vendor/lldb/dist/include/lldb/Interpreter/CommandInterpreter.h vendor/lldb/dist/include/lldb/Interpreter/CommandObject.h vendor/lldb/dist/include/lldb/Interpreter/CommandObjectRegexCommand.h vendor/lldb/dist/include/lldb/Interpreter/CommandReturnObject.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupPlatform.h vendor/lldb/dist/include/lldb/Interpreter/OptionValue.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueEnumeration.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueFileSpec.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueProperties.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueRegex.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueString.h vendor/lldb/dist/include/lldb/Interpreter/OptionValueUUID.h vendor/lldb/dist/include/lldb/Interpreter/Property.h vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h vendor/lldb/dist/include/lldb/Symbol/ArmUnwindInfo.h vendor/lldb/dist/include/lldb/Symbol/Block.h vendor/lldb/dist/include/lldb/Symbol/ClangASTContext.h vendor/lldb/dist/include/lldb/Symbol/CompactUnwindInfo.h vendor/lldb/dist/include/lldb/Symbol/CompileUnit.h vendor/lldb/dist/include/lldb/Symbol/CompilerDecl.h vendor/lldb/dist/include/lldb/Symbol/CompilerDeclContext.h vendor/lldb/dist/include/lldb/Symbol/CompilerType.h vendor/lldb/dist/include/lldb/Symbol/DWARFCallFrameInfo.h vendor/lldb/dist/include/lldb/Symbol/DebugMacros.h vendor/lldb/dist/include/lldb/Symbol/DeclVendor.h vendor/lldb/dist/include/lldb/Symbol/Declaration.h vendor/lldb/dist/include/lldb/Symbol/Function.h vendor/lldb/dist/include/lldb/Symbol/GoASTContext.h vendor/lldb/dist/include/lldb/Symbol/JavaASTContext.h vendor/lldb/dist/include/lldb/Symbol/LineEntry.h vendor/lldb/dist/include/lldb/Symbol/OCamlASTContext.h vendor/lldb/dist/include/lldb/Symbol/ObjectContainer.h vendor/lldb/dist/include/lldb/Symbol/ObjectFile.h vendor/lldb/dist/include/lldb/Symbol/Symbol.h vendor/lldb/dist/include/lldb/Symbol/Type.h vendor/lldb/dist/include/lldb/Symbol/UnwindPlan.h vendor/lldb/dist/include/lldb/Symbol/Variable.h vendor/lldb/dist/include/lldb/Target/ABI.h vendor/lldb/dist/include/lldb/Target/DynamicLoader.h vendor/lldb/dist/include/lldb/Target/FileAction.h vendor/lldb/dist/include/lldb/Target/Memory.h vendor/lldb/dist/include/lldb/Target/MemoryRegionInfo.h vendor/lldb/dist/include/lldb/Target/PathMappingList.h vendor/lldb/dist/include/lldb/Target/Platform.h vendor/lldb/dist/include/lldb/Target/Process.h vendor/lldb/dist/include/lldb/Target/ProcessInfo.h vendor/lldb/dist/include/lldb/Target/ProcessLaunchInfo.h vendor/lldb/dist/include/lldb/Target/QueueItem.h vendor/lldb/dist/include/lldb/Target/QueueList.h vendor/lldb/dist/include/lldb/Target/RegisterCheckpoint.h vendor/lldb/dist/include/lldb/Target/StackFrame.h vendor/lldb/dist/include/lldb/Target/SystemRuntime.h vendor/lldb/dist/include/lldb/Target/Thread.h vendor/lldb/dist/include/lldb/Target/ThreadList.h vendor/lldb/dist/include/lldb/Target/ThreadPlan.h vendor/lldb/dist/include/lldb/Target/ThreadPlanPython.h vendor/lldb/dist/include/lldb/Target/UnixSignals.h vendor/lldb/dist/include/lldb/Utility/JSON.h vendor/lldb/dist/include/lldb/Utility/LLDBAssert.h vendor/lldb/dist/include/lldb/Utility/NameMatches.h vendor/lldb/dist/include/lldb/Utility/Range.h vendor/lldb/dist/include/lldb/Utility/SelectHelper.h vendor/lldb/dist/include/lldb/Utility/SharingPtr.h vendor/lldb/dist/include/lldb/Utility/StringExtractor.h vendor/lldb/dist/include/lldb/Utility/StringLexer.h vendor/lldb/dist/include/lldb/Utility/TaskPool.h vendor/lldb/dist/include/lldb/Utility/Timeout.h vendor/lldb/dist/include/lldb/lldb-forward.h vendor/lldb/dist/include/lldb/lldb-private-enumerations.h vendor/lldb/dist/include/lldb/lldb-private-interfaces.h vendor/lldb/dist/lit/lit.cfg vendor/lldb/dist/lit/lit.site.cfg.in vendor/lldb/dist/lldb.xcodeproj/project.pbxproj vendor/lldb/dist/packages/Python/lldbsuite/test/README-TestSuite vendor/lldb/dist/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py vendor/lldb/dist/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/configuration.py vendor/lldb/dist/packages/Python/lldbsuite/test/dosep.py vendor/lldb/dist/packages/Python/lldbsuite/test/dotest.py vendor/lldb/dist/packages/Python/lldbsuite/test/dotest_args.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_options/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/darwin_log/basic/TestDarwinLogBasic.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/loop/TestDataFormatterLibcxxListLoop.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/TestDataFormatterStdUniquePtr.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/disassembly/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/memory/read/TestMemoryRead.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/memory/read/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/TestLinuxCore.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/gcore/TestGCore.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/gcore/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/thread_crash/TestLinuxCoreThreads.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/thread_crash/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpNew.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/register/intel_avx/TestYMMRegister.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/break_after_join/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/create_during_step/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/exit_during_break/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/exit_during_step/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/multi_break/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/step_out/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/thread_exit/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/incomplete-types/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py vendor/lldb/dist/packages/Python/lldbsuite/test/lldbinline.py vendor/lldb/dist/packages/Python/lldbsuite/test/lldbplatformutil.py vendor/lldb/dist/packages/Python/lldbsuite/test/lldbtest.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/queues/TestQueues.py vendor/lldb/dist/packages/Python/lldbsuite/test/make/Makefile.rules vendor/lldb/dist/packages/Python/lldbsuite/test/make/test_common.h vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/breakpoint/TestBreakpointAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/watchpoint/TestSetWatchpoint.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/watchpoint/TestWatchpointIgnoreCount.py vendor/lldb/dist/packages/Python/lldbsuite/test/test_categories.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiEnvironmentCd.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiExit.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiFile.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiGdbSetShow.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiLibraryLoaded.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiPrompt.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/breakpoint/TestMiBreak.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/breakpoint/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/interpreter/TestMiCliSupport.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/signal/TestMiSignal.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/symbol/TestMiSymbol.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/syntax/TestMiSyntax.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/target/TestMiTarget.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/threadinfo/TestMiThreadInfo.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/variable/TestMiGdbSetShowPrint.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/variable/TestMiVar.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestLldbGdbServer.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/exit-code/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/platform-process-connect/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/results_formatter.py vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/xunit.py vendor/lldb/dist/scripts/Python/finishSwigPythonLLDB.py vendor/lldb/dist/scripts/Xcode/build-llvm.py vendor/lldb/dist/scripts/finishSwigWrapperClasses.py vendor/lldb/dist/scripts/interface/SBFrame.i vendor/lldb/dist/scripts/interface/SBThread.i vendor/lldb/dist/scripts/utilsArgsParse.py vendor/lldb/dist/source/API/CMakeLists.txt vendor/lldb/dist/source/API/SBAddress.cpp vendor/lldb/dist/source/API/SBBlock.cpp vendor/lldb/dist/source/API/SBBreakpoint.cpp vendor/lldb/dist/source/API/SBBreakpointLocation.cpp vendor/lldb/dist/source/API/SBBroadcaster.cpp vendor/lldb/dist/source/API/SBCommandReturnObject.cpp vendor/lldb/dist/source/API/SBCommunication.cpp vendor/lldb/dist/source/API/SBCompileUnit.cpp vendor/lldb/dist/source/API/SBData.cpp vendor/lldb/dist/source/API/SBDebugger.cpp vendor/lldb/dist/source/API/SBDeclaration.cpp vendor/lldb/dist/source/API/SBError.cpp vendor/lldb/dist/source/API/SBEvent.cpp vendor/lldb/dist/source/API/SBFileSpec.cpp vendor/lldb/dist/source/API/SBFileSpecList.cpp vendor/lldb/dist/source/API/SBFrame.cpp vendor/lldb/dist/source/API/SBFunction.cpp vendor/lldb/dist/source/API/SBHostOS.cpp vendor/lldb/dist/source/API/SBInstruction.cpp vendor/lldb/dist/source/API/SBInstructionList.cpp vendor/lldb/dist/source/API/SBLineEntry.cpp vendor/lldb/dist/source/API/SBListener.cpp vendor/lldb/dist/source/API/SBMemoryRegionInfo.cpp vendor/lldb/dist/source/API/SBMemoryRegionInfoList.cpp vendor/lldb/dist/source/API/SBModule.cpp vendor/lldb/dist/source/API/SBModuleSpec.cpp vendor/lldb/dist/source/API/SBPlatform.cpp vendor/lldb/dist/source/API/SBProcess.cpp vendor/lldb/dist/source/API/SBQueue.cpp vendor/lldb/dist/source/API/SBQueueItem.cpp vendor/lldb/dist/source/API/SBSection.cpp vendor/lldb/dist/source/API/SBSourceManager.cpp vendor/lldb/dist/source/API/SBStream.cpp vendor/lldb/dist/source/API/SBStringList.cpp vendor/lldb/dist/source/API/SBStructuredData.cpp vendor/lldb/dist/source/API/SBSymbol.cpp vendor/lldb/dist/source/API/SBSymbolContext.cpp vendor/lldb/dist/source/API/SBTarget.cpp vendor/lldb/dist/source/API/SBThread.cpp vendor/lldb/dist/source/API/SBThreadPlan.cpp vendor/lldb/dist/source/API/SBType.cpp vendor/lldb/dist/source/API/SBTypeEnumMember.cpp vendor/lldb/dist/source/API/SBUnixSignals.cpp vendor/lldb/dist/source/API/SBValue.cpp vendor/lldb/dist/source/API/SBValueList.cpp vendor/lldb/dist/source/API/SBWatchpoint.cpp vendor/lldb/dist/source/API/SystemInitializerFull.cpp vendor/lldb/dist/source/Breakpoint/Breakpoint.cpp vendor/lldb/dist/source/Breakpoint/BreakpointID.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocation.cpp vendor/lldb/dist/source/Breakpoint/BreakpointOptions.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolver.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverAddress.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverFileLine.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverFileRegex.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverName.cpp vendor/lldb/dist/source/Breakpoint/BreakpointSite.cpp vendor/lldb/dist/source/Breakpoint/BreakpointSiteList.cpp vendor/lldb/dist/source/Breakpoint/CMakeLists.txt vendor/lldb/dist/source/Breakpoint/Watchpoint.cpp vendor/lldb/dist/source/Breakpoint/WatchpointOptions.cpp vendor/lldb/dist/source/CMakeLists.txt vendor/lldb/dist/source/Commands/CMakeLists.txt vendor/lldb/dist/source/Commands/CommandCompletions.cpp vendor/lldb/dist/source/Commands/CommandObjectArgs.cpp vendor/lldb/dist/source/Commands/CommandObjectBreakpoint.cpp vendor/lldb/dist/source/Commands/CommandObjectBreakpointCommand.cpp vendor/lldb/dist/source/Commands/CommandObjectCommands.cpp vendor/lldb/dist/source/Commands/CommandObjectDisassemble.cpp vendor/lldb/dist/source/Commands/CommandObjectExpression.cpp vendor/lldb/dist/source/Commands/CommandObjectFrame.cpp vendor/lldb/dist/source/Commands/CommandObjectHelp.h vendor/lldb/dist/source/Commands/CommandObjectLog.cpp vendor/lldb/dist/source/Commands/CommandObjectMemory.cpp vendor/lldb/dist/source/Commands/CommandObjectPlatform.cpp vendor/lldb/dist/source/Commands/CommandObjectProcess.cpp vendor/lldb/dist/source/Commands/CommandObjectRegister.cpp vendor/lldb/dist/source/Commands/CommandObjectSettings.cpp vendor/lldb/dist/source/Commands/CommandObjectSource.cpp vendor/lldb/dist/source/Commands/CommandObjectTarget.cpp vendor/lldb/dist/source/Commands/CommandObjectThread.cpp vendor/lldb/dist/source/Commands/CommandObjectType.cpp vendor/lldb/dist/source/Commands/CommandObjectWatchpoint.cpp vendor/lldb/dist/source/Commands/CommandObjectWatchpointCommand.cpp vendor/lldb/dist/source/Core/Address.cpp vendor/lldb/dist/source/Core/AddressRange.cpp vendor/lldb/dist/source/Core/AddressResolver.cpp vendor/lldb/dist/source/Core/AddressResolverFileLine.cpp vendor/lldb/dist/source/Core/AddressResolverName.cpp vendor/lldb/dist/source/Core/ArchSpec.cpp vendor/lldb/dist/source/Core/Broadcaster.cpp vendor/lldb/dist/source/Core/CMakeLists.txt vendor/lldb/dist/source/Core/Communication.cpp vendor/lldb/dist/source/Core/Connection.cpp vendor/lldb/dist/source/Core/Debugger.cpp vendor/lldb/dist/source/Core/Disassembler.cpp vendor/lldb/dist/source/Core/DynamicLoader.cpp vendor/lldb/dist/source/Core/EmulateInstruction.cpp vendor/lldb/dist/source/Core/Event.cpp vendor/lldb/dist/source/Core/FileLineResolver.cpp vendor/lldb/dist/source/Core/FileSpecList.cpp vendor/lldb/dist/source/Core/FormatEntity.cpp vendor/lldb/dist/source/Core/IOHandler.cpp vendor/lldb/dist/source/Core/Listener.cpp vendor/lldb/dist/source/Core/Mangled.cpp vendor/lldb/dist/source/Core/Module.cpp vendor/lldb/dist/source/Core/ModuleList.cpp vendor/lldb/dist/source/Core/Opcode.cpp vendor/lldb/dist/source/Core/PluginManager.cpp vendor/lldb/dist/source/Core/RegisterValue.cpp vendor/lldb/dist/source/Core/Scalar.cpp vendor/lldb/dist/source/Core/SearchFilter.cpp vendor/lldb/dist/source/Core/Section.cpp vendor/lldb/dist/source/Core/SourceManager.cpp vendor/lldb/dist/source/Core/State.cpp vendor/lldb/dist/source/Core/StreamAsynchronousIO.cpp vendor/lldb/dist/source/Core/StreamFile.cpp vendor/lldb/dist/source/Core/StructuredData.cpp vendor/lldb/dist/source/Core/Timer.cpp vendor/lldb/dist/source/Core/UserSettingsController.cpp vendor/lldb/dist/source/Core/Value.cpp vendor/lldb/dist/source/Core/ValueObject.cpp vendor/lldb/dist/source/Core/ValueObjectCast.cpp vendor/lldb/dist/source/Core/ValueObjectChild.cpp vendor/lldb/dist/source/Core/ValueObjectConstResult.cpp vendor/lldb/dist/source/Core/ValueObjectConstResultCast.cpp vendor/lldb/dist/source/Core/ValueObjectConstResultChild.cpp vendor/lldb/dist/source/Core/ValueObjectConstResultImpl.cpp vendor/lldb/dist/source/Core/ValueObjectDynamicValue.cpp vendor/lldb/dist/source/Core/ValueObjectList.cpp vendor/lldb/dist/source/Core/ValueObjectMemory.cpp vendor/lldb/dist/source/Core/ValueObjectRegister.cpp vendor/lldb/dist/source/Core/ValueObjectSyntheticFilter.cpp vendor/lldb/dist/source/Core/ValueObjectVariable.cpp vendor/lldb/dist/source/DataFormatters/CMakeLists.txt vendor/lldb/dist/source/DataFormatters/CXXFunctionPointer.cpp vendor/lldb/dist/source/DataFormatters/FormatManager.cpp vendor/lldb/dist/source/DataFormatters/FormattersHelpers.cpp vendor/lldb/dist/source/DataFormatters/StringPrinter.cpp vendor/lldb/dist/source/DataFormatters/TypeCategoryMap.cpp vendor/lldb/dist/source/DataFormatters/TypeFormat.cpp vendor/lldb/dist/source/DataFormatters/TypeSummary.cpp vendor/lldb/dist/source/DataFormatters/TypeSynthetic.cpp vendor/lldb/dist/source/DataFormatters/TypeValidator.cpp vendor/lldb/dist/source/DataFormatters/ValueObjectPrinter.cpp vendor/lldb/dist/source/DataFormatters/VectorType.cpp vendor/lldb/dist/source/Expression/CMakeLists.txt vendor/lldb/dist/source/Expression/DWARFExpression.cpp vendor/lldb/dist/source/Expression/DiagnosticManager.cpp vendor/lldb/dist/source/Expression/ExpressionSourceCode.cpp vendor/lldb/dist/source/Expression/ExpressionVariable.cpp vendor/lldb/dist/source/Expression/FunctionCaller.cpp vendor/lldb/dist/source/Expression/IRDynamicChecks.cpp vendor/lldb/dist/source/Expression/IRExecutionUnit.cpp vendor/lldb/dist/source/Expression/IRInterpreter.cpp vendor/lldb/dist/source/Expression/IRMemoryMap.cpp vendor/lldb/dist/source/Expression/LLVMUserExpression.cpp vendor/lldb/dist/source/Expression/Materializer.cpp vendor/lldb/dist/source/Expression/UserExpression.cpp vendor/lldb/dist/source/Expression/UtilityFunction.cpp vendor/lldb/dist/source/Host/CMakeLists.txt vendor/lldb/dist/source/Host/common/Editline.cpp vendor/lldb/dist/source/Host/common/File.cpp vendor/lldb/dist/source/Host/common/FileSystem.cpp vendor/lldb/dist/source/Host/common/Host.cpp vendor/lldb/dist/source/Host/common/HostInfoBase.cpp vendor/lldb/dist/source/Host/common/HostNativeThreadBase.cpp vendor/lldb/dist/source/Host/common/MonitoringProcessLauncher.cpp vendor/lldb/dist/source/Host/common/NativeBreakpoint.cpp vendor/lldb/dist/source/Host/common/NativeBreakpointList.cpp vendor/lldb/dist/source/Host/common/NativeProcessProtocol.cpp vendor/lldb/dist/source/Host/common/NativeRegisterContext.cpp vendor/lldb/dist/source/Host/common/NativeWatchpointList.cpp vendor/lldb/dist/source/Host/common/Socket.cpp vendor/lldb/dist/source/Host/common/SocketAddress.cpp vendor/lldb/dist/source/Host/common/SoftwareBreakpoint.cpp vendor/lldb/dist/source/Host/common/Symbols.cpp vendor/lldb/dist/source/Host/common/TCPSocket.cpp vendor/lldb/dist/source/Host/common/ThreadLauncher.cpp vendor/lldb/dist/source/Host/common/UDPSocket.cpp vendor/lldb/dist/source/Host/freebsd/Host.cpp vendor/lldb/dist/source/Host/freebsd/HostInfoFreeBSD.cpp vendor/lldb/dist/source/Host/linux/Host.cpp vendor/lldb/dist/source/Host/linux/HostInfoLinux.cpp vendor/lldb/dist/source/Host/linux/ProcessLauncherLinux.cpp vendor/lldb/dist/source/Host/macosx/Host.mm vendor/lldb/dist/source/Host/macosx/HostInfoMacOSX.mm vendor/lldb/dist/source/Host/macosx/Symbols.cpp vendor/lldb/dist/source/Host/netbsd/Host.cpp vendor/lldb/dist/source/Host/netbsd/HostInfoNetBSD.cpp vendor/lldb/dist/source/Host/posix/ConnectionFileDescriptorPosix.cpp vendor/lldb/dist/source/Host/posix/DomainSocket.cpp vendor/lldb/dist/source/Host/posix/FileSystem.cpp vendor/lldb/dist/source/Host/posix/HostInfoPosix.cpp vendor/lldb/dist/source/Host/posix/HostThreadPosix.cpp vendor/lldb/dist/source/Host/posix/MainLoopPosix.cpp vendor/lldb/dist/source/Host/posix/PipePosix.cpp vendor/lldb/dist/source/Host/windows/ConnectionGenericFileWindows.cpp vendor/lldb/dist/source/Host/windows/FileSystem.cpp vendor/lldb/dist/source/Host/windows/Host.cpp vendor/lldb/dist/source/Host/windows/HostInfoWindows.cpp vendor/lldb/dist/source/Host/windows/HostProcessWindows.cpp vendor/lldb/dist/source/Host/windows/HostThreadWindows.cpp vendor/lldb/dist/source/Host/windows/Windows.cpp vendor/lldb/dist/source/Initialization/CMakeLists.txt vendor/lldb/dist/source/Initialization/SystemInitializerCommon.cpp vendor/lldb/dist/source/Interpreter/Args.cpp vendor/lldb/dist/source/Interpreter/CMakeLists.txt vendor/lldb/dist/source/Interpreter/CommandAlias.cpp vendor/lldb/dist/source/Interpreter/CommandHistory.cpp vendor/lldb/dist/source/Interpreter/CommandInterpreter.cpp vendor/lldb/dist/source/Interpreter/CommandObject.cpp vendor/lldb/dist/source/Interpreter/CommandReturnObject.cpp vendor/lldb/dist/source/Interpreter/OptionGroupArchitecture.cpp vendor/lldb/dist/source/Interpreter/OptionGroupBoolean.cpp vendor/lldb/dist/source/Interpreter/OptionGroupFile.cpp vendor/lldb/dist/source/Interpreter/OptionGroupFormat.cpp vendor/lldb/dist/source/Interpreter/OptionGroupOutputFile.cpp vendor/lldb/dist/source/Interpreter/OptionGroupPlatform.cpp vendor/lldb/dist/source/Interpreter/OptionGroupString.cpp vendor/lldb/dist/source/Interpreter/OptionGroupUInt64.cpp vendor/lldb/dist/source/Interpreter/OptionGroupUUID.cpp vendor/lldb/dist/source/Interpreter/OptionGroupValueObjectDisplay.cpp vendor/lldb/dist/source/Interpreter/OptionGroupVariable.cpp vendor/lldb/dist/source/Interpreter/OptionGroupWatchpoint.cpp vendor/lldb/dist/source/Interpreter/OptionValue.cpp vendor/lldb/dist/source/Interpreter/OptionValueArray.cpp vendor/lldb/dist/source/Interpreter/OptionValueBoolean.cpp vendor/lldb/dist/source/Interpreter/OptionValueChar.cpp vendor/lldb/dist/source/Interpreter/OptionValueEnumeration.cpp vendor/lldb/dist/source/Interpreter/OptionValueFileSpec.cpp vendor/lldb/dist/source/Interpreter/OptionValueFileSpecLIst.cpp vendor/lldb/dist/source/Interpreter/OptionValueFormat.cpp vendor/lldb/dist/source/Interpreter/OptionValueFormatEntity.cpp vendor/lldb/dist/source/Interpreter/OptionValueLanguage.cpp vendor/lldb/dist/source/Interpreter/OptionValuePathMappings.cpp vendor/lldb/dist/source/Interpreter/OptionValueProperties.cpp vendor/lldb/dist/source/Interpreter/OptionValueRegex.cpp vendor/lldb/dist/source/Interpreter/OptionValueSInt64.cpp vendor/lldb/dist/source/Interpreter/OptionValueString.cpp vendor/lldb/dist/source/Interpreter/OptionValueUInt64.cpp vendor/lldb/dist/source/Interpreter/OptionValueUUID.cpp vendor/lldb/dist/source/Interpreter/Options.cpp vendor/lldb/dist/source/Interpreter/ScriptInterpreter.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-arm/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-i386/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt vendor/lldb/dist/source/Plugins/Disassembler/llvm/CMakeLists.txt vendor/lldb/dist/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Darwin-Kernel/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h vendor/lldb/dist/source/Plugins/DynamicLoader/Static/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h vendor/lldb/dist/source/Plugins/DynamicLoader/Windows-DYLD/CMakeLists.txt vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTDumper.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/CMakeLists.txt vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRForTarget.h vendor/lldb/dist/source/Plugins/ExpressionParser/Go/CMakeLists.txt vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoParser.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoUserExpression.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulateInstructionARM.h vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulationStateARM.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM64/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h vendor/lldb/dist/source/Plugins/Instruction/MIPS/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp vendor/lldb/dist/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h vendor/lldb/dist/source/Plugins/Instruction/MIPS64/CMakeLists.txt vendor/lldb/dist/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp vendor/lldb/dist/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/AddressSanitizer/CMakeLists.txt vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ThreadSanitizer/CMakeLists.txt vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.h vendor/lldb/dist/source/Plugins/JITLoader/GDB/CMakeLists.txt vendor/lldb/dist/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CxxStringTypes.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxx.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxx.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxAtomic.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxList.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcpp.h vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp vendor/lldb/dist/source/Plugins/Language/Go/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/Go/GoFormatterFunctions.h vendor/lldb/dist/source/Plugins/Language/Go/GoLanguage.cpp vendor/lldb/dist/source/Plugins/Language/Go/GoLanguage.h vendor/lldb/dist/source/Plugins/Language/Java/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/Java/JavaLanguage.cpp vendor/lldb/dist/source/Plugins/Language/Java/JavaLanguage.h vendor/lldb/dist/source/Plugins/Language/OCaml/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/OCaml/OCamlLanguage.cpp vendor/lldb/dist/source/Plugins/Language/OCaml/OCamlLanguage.h vendor/lldb/dist/source/Plugins/Language/ObjC/CF.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/CF.h vendor/lldb/dist/source/Plugins/Language/ObjC/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.h vendor/lldb/dist/source/Plugins/Language/ObjC/CoreMedia.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/CoreMedia.h vendor/lldb/dist/source/Plugins/Language/ObjC/NSArray.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSDictionary.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSDictionary.h vendor/lldb/dist/source/Plugins/Language/ObjC/NSError.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSException.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSSet.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSSet.h vendor/lldb/dist/source/Plugins/Language/ObjC/NSString.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSString.h vendor/lldb/dist/source/Plugins/Language/ObjC/ObjCLanguage.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/ObjCLanguage.h vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/Go/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/Java/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp vendor/lldb/dist/source/Plugins/MemoryHistory/asan/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h vendor/lldb/dist/source/Plugins/ObjectContainer/Universal-Mach-O/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp vendor/lldb/dist/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h vendor/lldb/dist/source/Plugins/ObjectFile/ELF/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ELFHeader.cpp vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ELFHeader.h vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.h vendor/lldb/dist/source/Plugins/ObjectFile/JIT/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp vendor/lldb/dist/source/Plugins/ObjectFile/Mach-O/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp vendor/lldb/dist/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h vendor/lldb/dist/source/Plugins/ObjectFile/PECOFF/CMakeLists.txt vendor/lldb/dist/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp vendor/lldb/dist/source/Plugins/ObjectFile/PECOFF/WindowsMiniDump.cpp vendor/lldb/dist/source/Plugins/OperatingSystem/Go/CMakeLists.txt vendor/lldb/dist/source/Plugins/OperatingSystem/Go/OperatingSystemGo.cpp vendor/lldb/dist/source/Plugins/OperatingSystem/Python/CMakeLists.txt vendor/lldb/dist/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp vendor/lldb/dist/source/Plugins/Platform/Android/AdbClient.cpp vendor/lldb/dist/source/Plugins/Platform/Android/AdbClient.h vendor/lldb/dist/source/Plugins/Platform/Android/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/Android/PlatformAndroid.cpp vendor/lldb/dist/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp vendor/lldb/dist/source/Plugins/Platform/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/FreeBSD/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp vendor/lldb/dist/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h vendor/lldb/dist/source/Plugins/Platform/Kalimba/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/Kalimba/PlatformKalimba.cpp vendor/lldb/dist/source/Plugins/Platform/Kalimba/PlatformKalimba.h vendor/lldb/dist/source/Plugins/Platform/Linux/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/Linux/PlatformLinux.cpp vendor/lldb/dist/source/Plugins/Platform/Linux/PlatformLinux.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformiOSSimulatorCoreSimulatorSupport.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformiOSSimulatorCoreSimulatorSupport.mm vendor/lldb/dist/source/Plugins/Platform/NetBSD/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp vendor/lldb/dist/source/Plugins/Platform/NetBSD/PlatformNetBSD.h vendor/lldb/dist/source/Plugins/Platform/POSIX/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp vendor/lldb/dist/source/Plugins/Platform/POSIX/PlatformPOSIX.h vendor/lldb/dist/source/Plugins/Platform/Windows/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/Windows/PlatformWindows.cpp vendor/lldb/dist/source/Plugins/Platform/gdb-server/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp vendor/lldb/dist/source/Plugins/Process/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/MachException.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/NativeProcessDarwin.h vendor/lldb/dist/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp vendor/lldb/dist/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/POSIXStopInfo.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessMonitor.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp vendor/lldb/dist/source/Plugins/Process/Linux/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Linux/NativeProcessLinux.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeProcessLinux.h vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux.h vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeThreadLinux.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeThreadLinux.h vendor/lldb/dist/source/Plugins/Process/Linux/SingleStepCheck.cpp vendor/lldb/dist/source/Plugins/Process/Linux/SingleStepCheck.h vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/ProcessKDPLog.cpp vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/ProcessKDPLog.h vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp vendor/lldb/dist/source/Plugins/Process/POSIX/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/POSIX/CrashReason.cpp vendor/lldb/dist/source/Plugins/Process/POSIX/ProcessPOSIXLog.cpp vendor/lldb/dist/source/Plugins/Process/POSIX/ProcessPOSIXLog.h vendor/lldb/dist/source/Plugins/Process/Utility/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp vendor/lldb/dist/source/Plugins/Process/Utility/DynamicRegisterInfo.h vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.cpp vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.h vendor/lldb/dist/source/Plugins/Process/Utility/NetBSDSignals.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDummy.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextHistory.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLLDB.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLLDB.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_mips.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMemory.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextMemory.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfoInterface.h vendor/lldb/dist/source/Plugins/Process/Utility/StopInfoMachException.cpp vendor/lldb/dist/source/Plugins/Process/Utility/UnwindLLDB.cpp vendor/lldb/dist/source/Plugins/Process/Utility/UnwindLLDB.h vendor/lldb/dist/source/Plugins/Process/Windows/Common/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Windows/Common/DebuggerThread.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/ProcessWindows.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/ProcessWindows.h vendor/lldb/dist/source/Plugins/Process/Windows/Common/ProcessWindowsLog.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/ProcessWindowsLog.h vendor/lldb/dist/source/Plugins/Process/Windows/Common/RegisterContextWindows.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/elf-core/ProcessElfCore.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/ProcessElfCore.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.h vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/ThreadElfCore.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/ThreadElfCore.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp vendor/lldb/dist/source/Plugins/Process/mach-core/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/mach-core/ProcessMachCore.cpp vendor/lldb/dist/source/Plugins/Process/mach-core/ProcessMachCore.h vendor/lldb/dist/source/Plugins/Process/mach-core/ThreadMachCore.cpp vendor/lldb/dist/source/Plugins/Process/minidump/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/minidump/MinidumpParser.h vendor/lldb/dist/source/Plugins/Process/minidump/MinidumpTypes.h vendor/lldb/dist/source/Plugins/Process/minidump/ProcessMinidump.cpp vendor/lldb/dist/source/Plugins/Process/minidump/ProcessMinidump.h vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp vendor/lldb/dist/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/minidump/ThreadMinidump.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/CMakeLists.txt vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp vendor/lldb/dist/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt vendor/lldb/dist/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfo.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnamesSet.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnamesSet.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h vendor/lldb/dist/source/Plugins/SymbolFile/PDB/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp vendor/lldb/dist/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h vendor/lldb/dist/source/Plugins/SymbolVendor/ELF/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp vendor/lldb/dist/source/Plugins/SymbolVendor/MacOSX/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.h vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.h vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.h vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.h vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/CMakeLists.txt vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h vendor/lldb/dist/source/Plugins/UnwindAssembly/InstEmulation/CMakeLists.txt vendor/lldb/dist/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/CMakeLists.txt vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h vendor/lldb/dist/source/Symbol/ArmUnwindInfo.cpp vendor/lldb/dist/source/Symbol/Block.cpp vendor/lldb/dist/source/Symbol/CMakeLists.txt vendor/lldb/dist/source/Symbol/ClangASTContext.cpp vendor/lldb/dist/source/Symbol/ClangASTImporter.cpp vendor/lldb/dist/source/Symbol/ClangExternalASTSourceCallbacks.cpp vendor/lldb/dist/source/Symbol/ClangExternalASTSourceCommon.cpp vendor/lldb/dist/source/Symbol/CompactUnwindInfo.cpp vendor/lldb/dist/source/Symbol/CompilerType.cpp vendor/lldb/dist/source/Symbol/DWARFCallFrameInfo.cpp vendor/lldb/dist/source/Symbol/Declaration.cpp vendor/lldb/dist/source/Symbol/FuncUnwinders.cpp vendor/lldb/dist/source/Symbol/Function.cpp vendor/lldb/dist/source/Symbol/GoASTContext.cpp vendor/lldb/dist/source/Symbol/JavaASTContext.cpp vendor/lldb/dist/source/Symbol/LineTable.cpp vendor/lldb/dist/source/Symbol/OCamlASTContext.cpp vendor/lldb/dist/source/Symbol/ObjectFile.cpp vendor/lldb/dist/source/Symbol/Symbol.cpp vendor/lldb/dist/source/Symbol/SymbolContext.cpp vendor/lldb/dist/source/Symbol/SymbolFile.cpp vendor/lldb/dist/source/Symbol/SymbolVendor.cpp vendor/lldb/dist/source/Symbol/Symtab.cpp vendor/lldb/dist/source/Symbol/Type.cpp vendor/lldb/dist/source/Symbol/UnwindPlan.cpp vendor/lldb/dist/source/Symbol/Variable.cpp vendor/lldb/dist/source/Symbol/VariableList.cpp vendor/lldb/dist/source/Target/CMakeLists.txt vendor/lldb/dist/source/Target/FileAction.cpp vendor/lldb/dist/source/Target/InstrumentationRuntime.cpp vendor/lldb/dist/source/Target/Language.cpp vendor/lldb/dist/source/Target/LanguageRuntime.cpp vendor/lldb/dist/source/Target/Memory.cpp vendor/lldb/dist/source/Target/ObjCLanguageRuntime.cpp vendor/lldb/dist/source/Target/PathMappingList.cpp vendor/lldb/dist/source/Target/Platform.cpp vendor/lldb/dist/source/Target/Process.cpp vendor/lldb/dist/source/Target/ProcessInfo.cpp vendor/lldb/dist/source/Target/ProcessLaunchInfo.cpp vendor/lldb/dist/source/Target/RegisterContext.cpp vendor/lldb/dist/source/Target/SectionLoadHistory.cpp vendor/lldb/dist/source/Target/SectionLoadList.cpp vendor/lldb/dist/source/Target/StackFrame.cpp vendor/lldb/dist/source/Target/StackFrameList.cpp vendor/lldb/dist/source/Target/StackID.cpp vendor/lldb/dist/source/Target/StopInfo.cpp vendor/lldb/dist/source/Target/Target.cpp vendor/lldb/dist/source/Target/TargetList.cpp vendor/lldb/dist/source/Target/Thread.cpp vendor/lldb/dist/source/Target/ThreadList.cpp vendor/lldb/dist/source/Target/ThreadPlan.cpp vendor/lldb/dist/source/Target/ThreadPlanBase.cpp vendor/lldb/dist/source/Target/ThreadPlanCallFunction.cpp vendor/lldb/dist/source/Target/ThreadPlanCallFunctionUsingABI.cpp vendor/lldb/dist/source/Target/ThreadPlanCallUserExpression.cpp vendor/lldb/dist/source/Target/ThreadPlanPython.cpp vendor/lldb/dist/source/Target/ThreadPlanRunToAddress.cpp vendor/lldb/dist/source/Target/ThreadPlanShouldStopHere.cpp vendor/lldb/dist/source/Target/ThreadPlanStepInRange.cpp vendor/lldb/dist/source/Target/ThreadPlanStepInstruction.cpp vendor/lldb/dist/source/Target/ThreadPlanStepOut.cpp vendor/lldb/dist/source/Target/ThreadPlanStepOverBreakpoint.cpp vendor/lldb/dist/source/Target/ThreadPlanStepOverRange.cpp vendor/lldb/dist/source/Target/ThreadPlanStepRange.cpp vendor/lldb/dist/source/Target/ThreadPlanStepThrough.cpp vendor/lldb/dist/source/Target/ThreadPlanStepUntil.cpp vendor/lldb/dist/source/Target/ThreadPlanTracer.cpp vendor/lldb/dist/source/Target/UnixSignals.cpp vendor/lldb/dist/source/Utility/ARM64_DWARF_Registers.h vendor/lldb/dist/source/Utility/ARM_DWARF_Registers.h vendor/lldb/dist/source/Utility/CMakeLists.txt vendor/lldb/dist/source/Utility/JSON.cpp vendor/lldb/dist/source/Utility/LLDBAssert.cpp vendor/lldb/dist/source/Utility/NameMatches.cpp vendor/lldb/dist/source/Utility/Range.cpp vendor/lldb/dist/source/Utility/SelectHelper.cpp vendor/lldb/dist/source/Utility/StringExtractor.cpp vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.cpp vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.h vendor/lldb/dist/source/Utility/StringLexer.cpp vendor/lldb/dist/source/Utility/TaskPool.cpp vendor/lldb/dist/source/Utility/UriParser.cpp vendor/lldb/dist/test/CMakeLists.txt vendor/lldb/dist/tools/CMakeLists.txt vendor/lldb/dist/tools/argdumper/CMakeLists.txt vendor/lldb/dist/tools/argdumper/argdumper.cpp vendor/lldb/dist/tools/debugserver/debugserver.xcodeproj/project.pbxproj vendor/lldb/dist/tools/debugserver/source/CMakeLists.txt vendor/lldb/dist/tools/debugserver/source/MacOSX/CMakeLists.txt vendor/lldb/dist/tools/debugserver/source/MacOSX/DarwinLog/DarwinLogCollector.cpp vendor/lldb/dist/tools/debugserver/source/MacOSX/MachProcess.mm vendor/lldb/dist/tools/debugserver/source/MacOSX/MachThread.cpp vendor/lldb/dist/tools/debugserver/source/MacOSX/OsLogger.cpp vendor/lldb/dist/tools/debugserver/source/MacOSX/i386/DNBArchImplI386.cpp vendor/lldb/dist/tools/debugserver/source/MacOSX/i386/DNBArchImplI386.h vendor/lldb/dist/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp vendor/lldb/dist/tools/debugserver/source/MacOSX/x86_64/MachRegisterStatesX86_64.h vendor/lldb/dist/tools/debugserver/source/RNBRemote.cpp vendor/lldb/dist/tools/driver/CMakeLists.txt vendor/lldb/dist/tools/driver/Driver.h vendor/lldb/dist/tools/driver/Platform.h vendor/lldb/dist/tools/lldb-mi/CMakeLists.txt vendor/lldb/dist/tools/lldb-mi/MICmdCmdStack.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdVar.cpp vendor/lldb/dist/tools/lldb-mi/MICmnBase.cpp vendor/lldb/dist/tools/lldb-mi/MICmnBase.h vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp vendor/lldb/dist/tools/lldb-mi/MIDriver.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilString.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilString.h vendor/lldb/dist/tools/lldb-mi/MIUtilThreadBaseStd.h vendor/lldb/dist/tools/lldb-mi/Platform.h vendor/lldb/dist/tools/lldb-server/Acceptor.cpp vendor/lldb/dist/tools/lldb-server/Acceptor.h vendor/lldb/dist/tools/lldb-server/CMakeLists.txt vendor/lldb/dist/tools/lldb-server/LLDBServerUtilities.cpp vendor/lldb/dist/tools/lldb-server/lldb-gdbserver.cpp vendor/lldb/dist/tools/lldb-server/lldb-platform.cpp vendor/lldb/dist/unittests/Breakpoint/BreakpointIDTest.cpp vendor/lldb/dist/unittests/Breakpoint/CMakeLists.txt vendor/lldb/dist/unittests/CMakeLists.txt vendor/lldb/dist/unittests/Core/BroadcasterTest.cpp vendor/lldb/dist/unittests/Core/CMakeLists.txt vendor/lldb/dist/unittests/Core/DataExtractorTest.cpp vendor/lldb/dist/unittests/Core/ScalarTest.cpp vendor/lldb/dist/unittests/Core/StructuredDataTest.cpp vendor/lldb/dist/unittests/Core/TimerTest.cpp vendor/lldb/dist/unittests/Editline/CMakeLists.txt vendor/lldb/dist/unittests/Editline/EditlineTest.cpp vendor/lldb/dist/unittests/Expression/CMakeLists.txt vendor/lldb/dist/unittests/Expression/GoParserTest.cpp vendor/lldb/dist/unittests/Host/CMakeLists.txt vendor/lldb/dist/unittests/Host/FileSpecTest.cpp vendor/lldb/dist/unittests/Host/SocketTest.cpp vendor/lldb/dist/unittests/Interpreter/CMakeLists.txt vendor/lldb/dist/unittests/Interpreter/TestArgs.cpp vendor/lldb/dist/unittests/Language/CPlusPlus/CMakeLists.txt vendor/lldb/dist/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp vendor/lldb/dist/unittests/Platform/CMakeLists.txt vendor/lldb/dist/unittests/Process/gdb-remote/CMakeLists.txt vendor/lldb/dist/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp vendor/lldb/dist/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp vendor/lldb/dist/unittests/Process/gdb-remote/GDBRemoteTestUtils.cpp vendor/lldb/dist/unittests/Process/minidump/CMakeLists.txt vendor/lldb/dist/unittests/Process/minidump/MinidumpParserTest.cpp vendor/lldb/dist/unittests/ScriptInterpreter/Python/CMakeLists.txt vendor/lldb/dist/unittests/Symbol/CMakeLists.txt vendor/lldb/dist/unittests/SymbolFile/DWARF/CMakeLists.txt vendor/lldb/dist/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp vendor/lldb/dist/unittests/SymbolFile/PDB/CMakeLists.txt vendor/lldb/dist/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp vendor/lldb/dist/unittests/UnwindAssembly/InstEmulation/CMakeLists.txt vendor/lldb/dist/unittests/UnwindAssembly/x86/CMakeLists.txt vendor/lldb/dist/unittests/Utility/CMakeLists.txt vendor/lldb/dist/unittests/Utility/TimeoutTest.cpp vendor/lldb/dist/unittests/Utility/UriParserTest.cpp vendor/lldb/dist/unittests/gtest_common.h vendor/lldb/dist/www/build.html vendor/lldb/dist/www/index.html vendor/lldb/dist/www/sidebar.incl vendor/lldb/dist/www/test.html vendor/lldb/dist/www/varformats.html Modified: vendor/lldb/dist/CMakeLists.txt ============================================================================== --- vendor/lldb/dist/CMakeLists.txt Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/CMakeLists.txt Sun Apr 16 16:04:10 2017 (r317027) @@ -4,7 +4,7 @@ include(cmake/modules/LLDBStandalone.cma include(cmake/modules/LLDBConfig.cmake) include(cmake/modules/AddLLDB.cmake) -if (__ANDROID_NDK__ OR (CMAKE_SYSTEM_NAME MATCHES "Windows")) +if (CMAKE_SYSTEM_NAME MATCHES "Windows|Android") set(LLDB_DEFAULT_DISABLE_LIBEDIT 1) else() set(LLDB_DEFAULT_DISABLE_LIBEDIT 0) @@ -20,6 +20,10 @@ endif() # add_subdirectory(include) add_subdirectory(docs) if (NOT LLDB_DISABLE_PYTHON) + if(LLDB_USE_SYSTEM_SIX) + set(SIX_EXTRA_ARGS "--useSystemSix") + endif() + set(LLDB_PYTHON_TARGET_DIR ${LLDB_BINARY_DIR}/scripts) if(LLDB_BUILD_FRAMEWORK) set(LLDB_PYTHON_TARGET_DIR @@ -50,6 +54,7 @@ if (NOT LLDB_DISABLE_PYTHON) --prefix=${CMAKE_BINARY_DIR} --cmakeBuildConfiguration=${CMAKE_CFG_INTDIR} --lldbLibDir=lib${LLVM_LIBDIR_SUFFIX} + ${SIX_EXTRA_ARGS} ${FINISH_EXTRA_ARGS} VERBATIM DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py Modified: vendor/lldb/dist/CODE_OWNERS.txt ============================================================================== --- vendor/lldb/dist/CODE_OWNERS.txt Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/CODE_OWNERS.txt Sun Apr 16 16:04:10 2017 (r317027) @@ -13,8 +13,7 @@ E: scallanan@apple.com D: Expression evaluator, IR interpreter, Clang integration N: Greg Clayton -E: clayborg@gmail.com (Phabricator) -E: gclayton@apple.com (Direct) +E: clayborg@gmail.com D: Overall LLDB architecture, Host (common+macosx), Symbol, API, ABI, Mac-specific code, D: DynamicLoader, ObjectFile, IOHandler, EditLine, Core/Value*, Watchpoints, debugserver D: Build scripts, Test suite, Platform, gdb-remote, Anything not covered by this file @@ -35,12 +34,17 @@ D: FreeBSD N: Jason Molenda E: jmolenda@apple.com -D: ABI, Disassembler, Unwinding, iOS, debugserver, Platform +D: ABI, Disassembler, Unwinding, iOS, debugserver, Platform, ObjectFile, SymbolFile, +D: SymbolVendor, DWARF, gdb-remote N: Hafiz Abid Qadeer E: abidh.haq@gmail.com D: lldb-mi +N: Kamil Rytarowski +E: kamil@netbsd.org +D: NetBSD + N: Zachary Turner E: zturner@google.com D: CMake build, Host (common+windows), Plugins/Process/Windows, Anything Windows-specific Modified: vendor/lldb/dist/INSTALL.txt ============================================================================== --- vendor/lldb/dist/INSTALL.txt Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/INSTALL.txt Sun Apr 16 16:04:10 2017 (r317027) @@ -7,6 +7,11 @@ On Mac OS X, in addition to using Xcode on your system to either build lldb or debug using lldb. Please see the code signing documentation in docs/code-signing.txt for more detailed directions. +If you are building on Mac OS X and LLVM is not present in llvm/, then LLDB +will check it out automatically. The files in scripts/Xcode/repos determine +which branches of LLVM/Clang are checked out, depending on the current +LLDB branch, according to the algorithm in scripts/Xcode/repo.py. + For instructions to build LLDB on Linux, or more details about supported compiler versions, other dependencies, and build flags, see: Modified: vendor/lldb/dist/cmake/LLDBDependencies.cmake ============================================================================== --- vendor/lldb/dist/cmake/LLDBDependencies.cmake Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/cmake/LLDBDependencies.cmake Sun Apr 16 16:04:10 2017 (r317027) @@ -1,152 +1,13 @@ -set( LLDB_USED_LIBS - lldbBase - lldbBreakpoint - lldbCommands - lldbDataFormatters - lldbHost - lldbCore - lldbExpression - lldbInitialization - lldbInterpreter - lldbSymbol - lldbTarget - lldbUtility - - # Plugins - lldbPluginDisassemblerLLVM - lldbPluginSymbolFileDWARF - lldbPluginSymbolFilePDB - lldbPluginSymbolFileSymtab - lldbPluginDynamicLoaderStatic - lldbPluginDynamicLoaderPosixDYLD - lldbPluginDynamicLoaderHexagonDYLD - lldbPluginDynamicLoaderWindowsDYLD - - lldbPluginCPlusPlusLanguage - lldbPluginGoLanguage - lldbPluginJavaLanguage - lldbPluginObjCLanguage - lldbPluginObjCPlusPlusLanguage - lldbPluginOCamlLanguage - - lldbPluginObjectFileELF - lldbPluginObjectFileJIT - lldbPluginSymbolVendorELF - lldbPluginObjectContainerBSDArchive - lldbPluginObjectContainerMachOArchive - lldbPluginProcessGDBRemote - lldbPluginProcessUtility - lldbPluginPlatformAndroid - lldbPluginPlatformGDB - lldbPluginPlatformFreeBSD - lldbPluginPlatformKalimba - lldbPluginPlatformLinux - lldbPluginPlatformNetBSD - lldbPluginPlatformPOSIX - lldbPluginPlatformWindows - lldbPluginObjectContainerMachOArchive - lldbPluginObjectContainerBSDArchive - lldbPluginPlatformMacOSX - lldbPluginStructuredDataDarwinLog - lldbPluginDynamicLoaderMacOSXDYLD - lldbPluginUnwindAssemblyInstEmulation - lldbPluginUnwindAssemblyX86 - lldbPluginAppleObjCRuntime - lldbPluginRenderScriptRuntime - lldbPluginLanguageRuntimeGo - lldbPluginLanguageRuntimeJava - lldbPluginCXXItaniumABI - lldbPluginABIMacOSX_arm - lldbPluginABIMacOSX_arm64 - lldbPluginABIMacOSX_i386 - lldbPluginABISysV_arm - lldbPluginABISysV_arm64 - lldbPluginABISysV_i386 - lldbPluginABISysV_x86_64 - lldbPluginABISysV_hexagon - lldbPluginABISysV_ppc - lldbPluginABISysV_ppc64 - lldbPluginABISysV_mips - lldbPluginABISysV_mips64 - lldbPluginABISysV_s390x - lldbPluginInstructionARM - lldbPluginInstructionARM64 - lldbPluginInstructionMIPS - lldbPluginInstructionMIPS64 - lldbPluginObjectFilePECOFF - lldbPluginOSGo - lldbPluginOSPython - lldbPluginMemoryHistoryASan - lldbPluginInstrumentationRuntimeAddressSanitizer - lldbPluginInstrumentationRuntimeThreadSanitizer - lldbPluginSystemRuntimeMacOSX - lldbPluginProcessElfCore - lldbPluginProcessMinidump - lldbPluginJITLoaderGDB - lldbPluginExpressionParserClang - lldbPluginExpressionParserGo - ) +set(LLDB_SYSTEM_LIBS) # Windows-only libraries if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) - list(APPEND LLDB_USED_LIBS - lldbPluginProcessWindowsCommon + list(APPEND LLDB_SYSTEM_LIBS ws2_32 rpcrt4 ) endif () -# Linux-only libraries -if ( CMAKE_SYSTEM_NAME MATCHES "Linux" ) - list(APPEND LLDB_USED_LIBS - lldbPluginProcessLinux - lldbPluginProcessPOSIX - ) -endif () - -# FreeBSD-only libraries -if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" ) - list(APPEND LLDB_USED_LIBS - lldbPluginProcessFreeBSD - lldbPluginProcessPOSIX - ) -endif () - -# NetBSD-only libraries -if ( CMAKE_SYSTEM_NAME MATCHES "NetBSD" ) - list(APPEND LLDB_USED_LIBS - lldbPluginProcessPOSIX - ) -endif () - -# Darwin-only libraries -if ( CMAKE_SYSTEM_NAME MATCHES "Darwin" ) - list(APPEND LLDB_USED_LIBS - lldbPluginDynamicLoaderDarwinKernel - lldbPluginObjectFileMachO - lldbPluginProcessMachCore - lldbPluginProcessMacOSXKernel - lldbPluginSymbolVendorMacOSX - ) -endif() - -set( CLANG_USED_LIBS - clangAnalysis - clangAST - clangBasic - clangCodeGen - clangDriver - clangEdit - clangFrontend - clangLex - clangParse - clangRewrite - clangRewriteFrontend - clangSema - clangSerialization - ) - -set(LLDB_SYSTEM_LIBS) if (NOT LLDB_DISABLE_LIBEDIT) list(APPEND LLDB_SYSTEM_LIBS edit) endif() @@ -178,29 +39,6 @@ if (LLVM_BUILD_STATIC) endif() endif() -set(LLVM_LINK_COMPONENTS - ${LLVM_TARGETS_TO_BUILD} - interpreter - asmparser - bitreader - bitwriter - codegen - demangle - ipo - selectiondag - bitreader - mc - mcjit - core - mcdisassembler - executionengine - runtimedyld - option - support - coverage - target - ) - if ( NOT LLDB_DISABLE_PYTHON ) set_source_files_properties(${LLDB_WRAP_PYTHON} PROPERTIES GENERATED 1) if (CLANG_CL) Modified: vendor/lldb/dist/cmake/modules/AddLLDB.cmake ============================================================================== --- vendor/lldb/dist/cmake/modules/AddLLDB.cmake Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/cmake/modules/AddLLDB.cmake Sun Apr 16 16:04:10 2017 (r317027) @@ -1,31 +1,17 @@ -function(lldb_link_common_libs name targetkind) - if (NOT LLDB_USED_LIBS) - return() - endif() - - if(${targetkind} MATCHES "SHARED") - set(LINK_KEYWORD PRIVATE) - endif() - - if(${targetkind} MATCHES "SHARED" OR ${targetkind} MATCHES "EXE") - if (LLDB_LINKER_SUPPORTS_GROUPS) - target_link_libraries(${name} ${LINK_KEYWORD} - -Wl,--start-group ${LLDB_USED_LIBS} -Wl,--end-group) - else() - target_link_libraries(${name} ${LINK_KEYWORD} ${LLDB_USED_LIBS}) - endif() - endif() -endfunction(lldb_link_common_libs) - function(add_lldb_library name) # only supported parameters to this macro are the optional # MODULE;SHARED;STATIC library type and source files cmake_parse_arguments(PARAM - "MODULE;SHARED;STATIC;OBJECT" + "MODULE;SHARED;STATIC;OBJECT;PLUGIN" "" - "DEPENDS" + "DEPENDS;LINK_LIBS;LINK_COMPONENTS" ${ARGN}) llvm_process_sources(srcs ${PARAM_UNPARSED_ARGUMENTS}) + list(APPEND LLVM_LINK_COMPONENTS ${PARAM_LINK_COMPONENTS}) + + if(PARAM_PLUGIN) + set_property(GLOBAL APPEND PROPERTY LLDB_PLUGINS ${name}) + endif() if (MSVC_IDE OR XCODE) string(REGEX MATCHALL "/[^/]+" split_path ${CMAKE_CURRENT_SOURCE_DIR}) @@ -56,22 +42,9 @@ function(add_lldb_library name) if (PARAM_OBJECT) add_library(${name} ${libkind} ${srcs}) else() - if (PARAM_SHARED) - if (LLDB_LINKER_SUPPORTS_GROUPS) - llvm_add_library(${name} ${libkind} ${srcs} LINK_LIBS - -Wl,--start-group ${LLDB_USED_LIBS} -Wl,--end-group - -Wl,--start-group ${CLANG_USED_LIBS} -Wl,--end-group - DEPENDS ${PARAM_DEPENDS} - ) - else() - llvm_add_library(${name} ${libkind} ${srcs} LINK_LIBS - ${LLDB_USED_LIBS} ${CLANG_USED_LIBS} - DEPENDS ${PARAM_DEPENDS} - ) - endif() - else() - llvm_add_library(${name} ${libkind} ${srcs} DEPENDS ${PARAM_DEPENDS}) - endif() + llvm_add_library(${name} ${libkind} ${srcs} LINK_LIBS + ${PARAM_LINK_LIBS} + DEPENDS ${PARAM_DEPENDS}) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "liblldb") if (PARAM_SHARED) @@ -112,8 +85,17 @@ function(add_lldb_library name) endfunction(add_lldb_library) function(add_lldb_executable name) - cmake_parse_arguments(ARG "INCLUDE_IN_FRAMEWORK;GENERATE_INSTALL" "" "" ${ARGN}) + cmake_parse_arguments(ARG + "INCLUDE_IN_FRAMEWORK;GENERATE_INSTALL" + "" + "LINK_LIBS;LINK_COMPONENTS" + ${ARGN} + ) + + list(APPEND LLVM_LINK_COMPONENTS ${ARG_LINK_COMPONENTS}) add_llvm_executable(${name} ${ARG_UNPARSED_ARGUMENTS}) + + target_link_libraries(${name} ${ARG_LINK_LIBS}) set_target_properties(${name} PROPERTIES FOLDER "lldb executables") Modified: vendor/lldb/dist/cmake/modules/LLDBConfig.cmake ============================================================================== --- vendor/lldb/dist/cmake/modules/LLDBConfig.cmake Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/cmake/modules/LLDBConfig.cmake Sun Apr 16 16:04:10 2017 (r317027) @@ -13,14 +13,12 @@ endif() if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) set(LLDB_DEFAULT_DISABLE_PYTHON 0) set(LLDB_DEFAULT_DISABLE_CURSES 1) +elseif (CMAKE_SYSTEM_NAME MATCHES "Android" ) + set(LLDB_DEFAULT_DISABLE_PYTHON 1) + set(LLDB_DEFAULT_DISABLE_CURSES 1) else() - if ( __ANDROID_NDK__ ) - set(LLDB_DEFAULT_DISABLE_PYTHON 1) - set(LLDB_DEFAULT_DISABLE_CURSES 1) - else() - set(LLDB_DEFAULT_DISABLE_PYTHON 0) - set(LLDB_DEFAULT_DISABLE_CURSES 0) - endif() + set(LLDB_DEFAULT_DISABLE_PYTHON 0) + set(LLDB_DEFAULT_DISABLE_CURSES 0) endif() set(LLDB_DISABLE_PYTHON ${LLDB_DEFAULT_DISABLE_PYTHON} CACHE BOOL @@ -31,6 +29,9 @@ set(LLDB_DISABLE_CURSES ${LLDB_DEFAULT_D set(LLDB_RELOCATABLE_PYTHON 0 CACHE BOOL "Causes LLDB to use the PYTHONHOME environment variable to locate Python.") +set(LLDB_USE_SYSTEM_SIX 0 CACHE BOOL + "Use six.py shipped with system and do not install a copy of it") + if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") set(LLDB_EXPORT_ALL_SYMBOLS 0 CACHE BOOL "Causes lldb to export all symbols when building liblldb.") @@ -269,8 +270,8 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[ message(STATUS "LLDB version: ${LLDB_VERSION}") include_directories(BEFORE - ${CMAKE_CURRENT_BINARY_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_BINARY_DIR}/include ) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) @@ -280,6 +281,17 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE + PATTERN ".cmake" EXCLUDE + PATTERN "Config.h" EXCLUDE + ) + + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ + COMPONENT lldb_headers + DESTINATION include + FILES_MATCHING + PATTERN "*.h" + PATTERN ".svn" EXCLUDE + PATTERN ".cmake" EXCLUDE ) endif() @@ -354,10 +366,7 @@ endif() # Figure out if lldb could use lldb-server. If so, then we'll # ensure we build lldb-server when an lldb target is being built. -if ((CMAKE_SYSTEM_NAME MATCHES "Darwin") OR - (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") OR - (CMAKE_SYSTEM_NAME MATCHES "Linux") OR - (CMAKE_SYSTEM_NAME MATCHES "NetBSD")) +if (CMAKE_SYSTEM_NAME MATCHES "Android|Darwin|FreeBSD|Linux|NetBSD") set(LLDB_CAN_USE_LLDB_SERVER 1) else() set(LLDB_CAN_USE_LLDB_SERVER 0) @@ -417,4 +426,24 @@ if(LLDB_USE_BUILTIN_DEMANGLER) add_definitions(-DLLDB_USE_BUILTIN_DEMANGLER) endif() +if ((CMAKE_SYSTEM_NAME MATCHES "Android") AND LLVM_BUILD_STATIC AND + ((ANDROID_ABI MATCHES "armeabi") OR (ANDROID_ABI MATCHES "mips"))) + add_definitions(-DANDROID_USE_ACCEPT_WORKAROUND) +endif() + find_package(Backtrace) + +check_include_file(termios.h HAVE_TERMIOS_H) + +# These checks exist in LLVM's configuration, so I want to match the LLVM names +# so that the check isn't duplicated, but we translate them into the LLDB names +# so that I don't have to change all the uses at the moment. +set(LLDB_CONFIG_TERMIOS_SUPPORTED ${HAVE_TERMIOS_H}) +if(NOT UNIX) + set(LLDB_DISABLE_POSIX 1) +endif() + +# This should be done at the end +configure_file( + ${LLDB_INCLUDE_ROOT}/lldb/Host/Config.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/include/lldb/Host/Config.h) Modified: vendor/lldb/dist/cmake/modules/LLDBStandalone.cmake ============================================================================== --- vendor/lldb/dist/cmake/modules/LLDBStandalone.cmake Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/cmake/modules/LLDBStandalone.cmake Sun Apr 16 16:04:10 2017 (r317027) @@ -69,6 +69,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR set(LLVMCONFIG_FILE "${LLVM_CMAKE_PATH}/LLVMConfig.cmake") if(EXISTS ${LLVMCONFIG_FILE}) + file(TO_CMAKE_PATH "${LLVM_CMAKE_PATH}" LLVM_CMAKE_PATH) list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}") include(${LLVMCONFIG_FILE}) else() Modified: vendor/lldb/dist/cmake/platforms/Android.cmake ============================================================================== --- vendor/lldb/dist/cmake/platforms/Android.cmake Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/cmake/platforms/Android.cmake Sun Apr 16 16:04:10 2017 (r317027) @@ -29,13 +29,12 @@ if( IS_IN_TRY_COMPILE ) return() endif() -set( CMAKE_SYSTEM_NAME Linux ) +set( CMAKE_SYSTEM_NAME Android ) include( CMakeForceCompiler ) # flags and definitions add_definitions( -DANDROID -DLLDB_DISABLE_LIBEDIT ) set( ANDROID True ) -set( __ANDROID_NDK__ True ) set( LLDB_DEFAULT_DISABLE_LIBEDIT True ) # linking lldb-server statically for Android avoids the need to ship two @@ -103,10 +102,6 @@ elseif( ANDROID_ABI STREQUAL "armeabi" ) # 64 bit atomic operations used in c++ libraries require armv7-a instructions # armv5te and armv6 were tried but do not work. set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv7-a -mthumb" ) - if( LLVM_BUILD_STATIC ) - # Temporary workaround for static linking with the latest API. - set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -DANDROID_ARM_BUILD_STATIC" ) - endif() elseif( ANDROID_ABI STREQUAL "mips" ) # http://b.android.com/182094 list( FIND LLDB_SYSTEM_LIBS atomic index ) @@ -114,10 +109,6 @@ elseif( ANDROID_ABI STREQUAL "mips" ) list( APPEND LLDB_SYSTEM_LIBS atomic ) set( LLDB_SYSTEM_LIBS ${LLDB_SYSTEM_LIBS} CACHE INTERNAL "" FORCE ) endif() - if( LLVM_BUILD_STATIC ) - # Temporary workaround for static linking with the latest API. - set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -DANDROID_MIPS_BUILD_STATIC" ) - endif() endif() # Use gold linker and enable safe ICF in case of x86, x86_64 and arm Modified: vendor/lldb/dist/docs/lldb-gdb-remote.txt ============================================================================== --- vendor/lldb/dist/docs/lldb-gdb-remote.txt Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/docs/lldb-gdb-remote.txt Sun Apr 16 16:04:10 2017 (r317027) @@ -1029,7 +1029,7 @@ for this region. // region what contains data mapped from the specified file. // // RESPONSE -// - Load address of the file in big endian encoding +// - Load address of the file in big endian encoding // "E01" - the requested file isn't loaded // "EXX" - for any other errors // Modified: vendor/lldb/dist/examples/python/crashlog.py ============================================================================== --- vendor/lldb/dist/examples/python/crashlog.py Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/examples/python/crashlog.py Sun Apr 16 16:04:10 2017 (r317027) @@ -259,7 +259,11 @@ class CrashLog(symbolication.Symbolicato self.dsymForUUIDBinary, uuid_str) s = commands.getoutput(dsym_for_uuid_command) if s: - plist_root = plistlib.readPlistFromString(s) + try: + plist_root = plistlib.readPlistFromString(s) + except: + print("Got exception: ", sys.exc_value, " handling dsymForUUID output: \n", s) + raise if plist_root: plist = plist_root[uuid_str] if plist: Modified: vendor/lldb/dist/examples/python/gdbremote.py ============================================================================== --- vendor/lldb/dist/examples/python/gdbremote.py Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/examples/python/gdbremote.py Sun Apr 16 16:04:10 2017 (r317027) @@ -322,6 +322,15 @@ def is_hex_byte(str): return str[0] in string.hexdigits and str[1] in string.hexdigits return False +def get_hex_string_if_all_printable(str): + try: + s = binascii.unhexlify(str) + if all(c in string.printable for c in s): + return s + except TypeError: + pass + return None + # global register info list g_register_infos = list() g_max_register_info_name_len = 0 @@ -638,6 +647,14 @@ def cmd_qSymbol(options, cmd, args): else: print 'error: bad command format' +def cmd_QSetWithHexString(options, cmd, args): + print '%s("%s")' % (cmd[:-1], binascii.unhexlify(args)) + +def cmd_QSetWithString(options, cmd, args): + print '%s("%s")' % (cmd[:-1], args) + +def cmd_QSetWithUnsigned(options, cmd, args): + print '%s(%i)' % (cmd[:-1], int(args)) def rsp_qSymbol(options, cmd, cmd_args, rsp): if len(rsp) == 0: @@ -766,7 +783,11 @@ def dump_key_value_pairs(key_value_pairs for key_value_pair in key_value_pairs: key = key_value_pair[0] value = key_value_pair[1] - print "%*s = %s" % (max_key_len, key, value) + unhex_value = get_hex_string_if_all_printable(value) + if unhex_value: + print "%*s = %s (%s)" % (max_key_len, key, value, unhex_value) + else: + print "%*s = %s" % (max_key_len, key, value) def rsp_dump_key_value_pairs(options, cmd, cmd_args, rsp): @@ -910,26 +931,29 @@ def rsp_qThreadInfo(options, cmd, cmd_ar def rsp_hex_big_endian(options, cmd, cmd_args, rsp): - packet = Packet(rsp) - uval = packet.get_hex_uint('big') - print '%s: 0x%x' % (cmd, uval) + if rsp == '': + print "%s%s is not supported" % (cmd, cmd_args) + else: + packet = Packet(rsp) + uval = packet.get_hex_uint('big') + print '%s: 0x%x' % (cmd, uval) def cmd_read_mem_bin(options, cmd, args): # x0x7fff5fc39200,0x200 packet = Packet(args) - addr = packet.get_number() + addr = packet.get_hex_uint('big') comma = packet.get_char() - size = packet.get_number() + size = packet.get_hex_uint('big') print 'binary_read_memory (addr = 0x%16.16x, size = %u)' % (addr, size) return False def rsp_mem_bin_bytes(options, cmd, cmd_args, rsp): packet = Packet(cmd_args) - addr = packet.get_number() + addr = packet.get_hex_uint('big') comma = packet.get_char() - size = packet.get_number() + size = packet.get_hex_uint('big') print 'memory:' if size > 0: dump_hex_memory_buffer(addr, rsp) @@ -1192,11 +1216,11 @@ gdb_remote_commands = { 'QStartNoAckMode': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_supported, 'name': "query if no ack mode is supported"}, 'QThreadSuffixSupported': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_supported, 'name': "query if thread suffix is supported"}, 'QListThreadsInStopReply': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_supported, 'name': "query if threads in stop reply packets are supported"}, - 'QSetDetachOnError': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_success, 'name': "set if we should detach on error"}, - 'QSetDisableASLR': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_success, 'name': "set if we should disable ASLR"}, + 'QSetDetachOnError:': {'cmd': cmd_QSetWithUnsigned, 'rsp': rsp_ok_means_success, 'name': "set if we should detach on error"}, + 'QSetDisableASLR:': {'cmd': cmd_QSetWithUnsigned, 'rsp': rsp_ok_means_success, 'name': "set if we should disable ASLR"}, 'qLaunchSuccess': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_success, 'name': "check on launch success for the A packet"}, 'A': {'cmd': cmd_A, 'rsp': rsp_ok_means_success, 'name': "launch process"}, - 'QLaunchArch': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_supported, 'name': "set if we should disable ASLR"}, + 'QLaunchArch:': {'cmd': cmd_QSetWithString, 'rsp': rsp_ok_means_supported, 'name': "set the arch to launch in case the file contains multiple architectures"}, 'qVAttachOrWaitSupported': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_supported, 'name': "set the launch architecture"}, 'qHostInfo': {'cmd': cmd_query_packet, 'rsp': rsp_dump_key_value_pairs, 'name': "get host information"}, 'qC': {'cmd': cmd_qC, 'rsp': rsp_qC, 'name': "return the current thread ID"}, @@ -1213,6 +1237,11 @@ gdb_remote_commands = { 'qSupported': {'cmd': cmd_query_packet, 'rsp': rsp_ok_means_supported, 'name': "query supported"}, 'qXfer:': {'cmd': cmd_qXfer, 'rsp': rsp_qXfer, 'name': "qXfer"}, 'qSymbol:': {'cmd': cmd_qSymbol, 'rsp': rsp_qSymbol, 'name': "qSymbol"}, + 'QSetSTDIN:' : {'cmd' : cmd_QSetWithHexString, 'rsp' : rsp_ok_means_success, 'name': "set STDIN prior to launching with A packet"}, + 'QSetSTDOUT:' : {'cmd' : cmd_QSetWithHexString, 'rsp' : rsp_ok_means_success, 'name': "set STDOUT prior to launching with A packet"}, + 'QSetSTDERR:' : {'cmd' : cmd_QSetWithHexString, 'rsp' : rsp_ok_means_success, 'name': "set STDERR prior to launching with A packet"}, + 'QEnvironment:' : {'cmd' : cmd_QSetWithString, 'rsp' : rsp_ok_means_success, 'name': "set an environment variable prior to launching with A packet"}, + 'QEnvironmentHexEncoded:' : {'cmd' : cmd_QSetWithHexString, 'rsp' : rsp_ok_means_success, 'name': "set an environment variable prior to launching with A packet"}, 'x': {'cmd': cmd_read_mem_bin, 'rsp': rsp_mem_bin_bytes, 'name': "read memory binary"}, 'X': {'cmd': cmd_write_memory, 'rsp': rsp_ok_means_success, 'name': "write memory binary"}, 'm': {'cmd': cmd_read_memory, 'rsp': rsp_memory_bytes, 'name': "read memory"}, @@ -1269,7 +1298,7 @@ def parse_gdb_log(file, options): packet_name_regex = re.compile('([A-Za-z_]+)[^a-z]') packet_transmit_name_regex = re.compile( '(?Psend|read) packet: (?P.*)') - packet_contents_name_regex = re.compile('\$([^#]+)#[0-9a-fA-F]{2}') + packet_contents_name_regex = re.compile('\$([^#]*)#[0-9a-fA-F]{2}') packet_checksum_regex = re.compile('.*#[0-9a-fA-F]{2}$') packet_names_regex_str = '(' + \ '|'.join(gdb_remote_commands.keys()) + ')(.*)' Modified: vendor/lldb/dist/include/lldb/API/SBAttachInfo.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBAttachInfo.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/API/SBAttachInfo.h Sun Apr 16 16:04:10 2017 (r317027) @@ -86,7 +86,7 @@ public: /// This function implies that a call to SBTarget::Attach(...) will /// be synchronous. /// - /// @param[in] wait_for + /// @param[in] b /// If \b false, attach to an existing process whose name matches. /// If \b true, then wait for the next process whose name matches. //------------------------------------------------------------------ @@ -99,7 +99,7 @@ public: /// Future calls to SBTarget::Attach(...) will be synchronous or /// asynchronous depending on the \a async argument. /// - /// @param[in] wait_for + /// @param[in] b /// If \b false, attach to an existing process whose name matches. /// If \b true, then wait for the next process whose name matches. /// Modified: vendor/lldb/dist/include/lldb/API/SBBreakpoint.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBBreakpoint.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/API/SBBreakpoint.h Sun Apr 16 16:04:10 2017 (r317027) @@ -133,19 +133,13 @@ private: SBBreakpoint(const lldb::BreakpointSP &bp_sp); - lldb_private::Breakpoint *operator->() const; - - lldb_private::Breakpoint *get() const; - - lldb::BreakpointSP &operator*(); - - const lldb::BreakpointSP &operator*() const; - static bool PrivateBreakpointHitCallback( void *baton, lldb_private::StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id); - lldb::BreakpointSP m_opaque_sp; + lldb::BreakpointSP GetSP() const; + + lldb::BreakpointWP m_opaque_wp; }; class LLDB_API SBBreakpointList { Modified: vendor/lldb/dist/include/lldb/API/SBBreakpointLocation.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBBreakpointLocation.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/API/SBBreakpointLocation.h Sun Apr 16 16:04:10 2017 (r317027) @@ -78,8 +78,9 @@ private: friend class SBBreakpoint; void SetLocation(const lldb::BreakpointLocationSP &break_loc_sp); + BreakpointLocationSP GetSP() const; - lldb::BreakpointLocationSP m_opaque_sp; + lldb::BreakpointLocationWP m_opaque_wp; }; } // namespace lldb Modified: vendor/lldb/dist/include/lldb/API/SBFrame.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBFrame.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/API/SBFrame.h Sun Apr 16 16:04:10 2017 (r317027) @@ -78,6 +78,10 @@ public: const char *GetDisplayFunctionName(); const char *GetFunctionName() const; + + // Return the frame function's language. If there isn't a function, then + // guess the language type from the mangled name. + lldb::LanguageType GuessLanguage() const; /// Return true if this frame represents an inlined function. /// Modified: vendor/lldb/dist/include/lldb/API/SBListener.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBListener.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/API/SBListener.h Sun Apr 16 16:04:10 2017 (r317027) @@ -89,7 +89,7 @@ protected: SBListener(const lldb::ListenerSP &listener_sp); - lldb::ListenerSP GetSP() { return m_opaque_sp; } + lldb::ListenerSP GetSP(); private: lldb_private::Listener *operator->() const; Modified: vendor/lldb/dist/include/lldb/API/SBTarget.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBTarget.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/API/SBTarget.h Sun Apr 16 16:04:10 2017 (r317027) @@ -124,9 +124,6 @@ public: /// @param[in] envp /// The environment array. /// - /// @param[in] launch_flags - /// Flags to modify the launch (@see lldb::LaunchFlags) - /// /// @param[in] stdin_path /// The path to use when re-directing the STDIN of the new /// process. If all stdXX_path arguments are nullptr, a pseudo @@ -480,6 +477,7 @@ public: /// Resolve a current file address into a section offset address. /// /// @param[in] file_addr + /// The file address to resolve. /// /// @return /// An SBAddress which will be valid if... @@ -653,7 +651,7 @@ public: /// @param[in] source_file /// The file from which to read the breakpoints. /// - /// @param[out] bkpt_list + /// @param[out] new_bps /// A list of the newly created breakpoints. /// /// @return @@ -673,7 +671,7 @@ public: /// Only read in breakpoints whose names match one of the names in this /// list. /// - /// @param[out] bkpt_list + /// @param[out] new_bps /// A list of the newly created breakpoints. /// /// @return Modified: vendor/lldb/dist/include/lldb/API/SBWatchpoint.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBWatchpoint.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/API/SBWatchpoint.h Sun Apr 16 16:04:10 2017 (r317027) @@ -72,7 +72,7 @@ private: friend class SBTarget; friend class SBValue; - lldb::WatchpointSP m_opaque_sp; + std::weak_ptr m_opaque_wp; }; } // namespace lldb Modified: vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h Sun Apr 16 16:04:10 2017 (r317027) @@ -26,8 +26,8 @@ #include "lldb/Breakpoint/Stoppoint.h" #include "lldb/Core/Event.h" #include "lldb/Core/SearchFilter.h" -#include "lldb/Core/StringList.h" #include "lldb/Core/StructuredData.h" +#include "lldb/Utility/StringList.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h Sun Apr 16 16:04:10 2017 (r317027) @@ -19,7 +19,7 @@ // Project includes #include "lldb/Breakpoint/StoppointLocation.h" #include "lldb/Core/Address.h" -#include "lldb/Core/UserID.h" +#include "lldb/Utility/UserID.h" #include "lldb/lldb-private.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h Sun Apr 16 16:04:10 2017 (r317027) @@ -17,9 +17,9 @@ // Other libraries and framework includes // Project includes -#include "lldb/Core/Baton.h" -#include "lldb/Core/StringList.h" #include "lldb/Core/StructuredData.h" +#include "lldb/Utility/Baton.h" +#include "lldb/Utility/StringList.h" #include "lldb/lldb-private.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolver.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolver.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolver.h Sun Apr 16 16:04:10 2017 (r317027) @@ -15,12 +15,11 @@ // Other libraries and framework includes // Project includes #include "lldb/Breakpoint/Breakpoint.h" -#include "lldb/Breakpoint/BreakpointResolver.h" #include "lldb/Core/Address.h" -#include "lldb/Core/ConstString.h" -#include "lldb/Core/RegularExpression.h" #include "lldb/Core/SearchFilter.h" -#include "lldb/Host/FileSpec.h" +#include "lldb/Utility/ConstString.h" +#include "lldb/Utility/FileSpec.h" +#include "lldb/Utility/RegularExpression.h" #include "lldb/lldb-private.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileLine.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileLine.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileLine.h Sun Apr 16 16:04:10 2017 (r317027) @@ -63,6 +63,8 @@ public: lldb::BreakpointResolverSP CopyForBreakpoint(Breakpoint &breakpoint) override; protected: + void FilterContexts(SymbolContextList &sc_list); + friend class Breakpoint; FileSpec m_file_spec; // This is the file spec we are looking for. uint32_t m_line_number; // This is the line number that we are looking for. Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileRegex.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileRegex.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileRegex.h Sun Apr 16 16:04:10 2017 (r317027) @@ -17,7 +17,7 @@ // Other libraries and framework includes // Project includes #include "lldb/Breakpoint/BreakpointResolver.h" -#include "lldb/Core/ConstString.h" +#include "lldb/Utility/ConstString.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSite.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSite.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSite.h Sun Apr 16 16:04:10 2017 (r317027) @@ -21,7 +21,7 @@ // Project includes #include "lldb/Breakpoint/BreakpointLocationCollection.h" #include "lldb/Breakpoint/StoppointLocation.h" -#include "lldb/Core/UserID.h" +#include "lldb/Utility/UserID.h" #include "lldb/lldb-forward.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/Stoppoint.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/Stoppoint.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/Stoppoint.h Sun Apr 16 16:04:10 2017 (r317027) @@ -14,7 +14,7 @@ // C++ Includes // Other libraries and framework includes // Project includes -#include "lldb/Core/UserID.h" +#include "lldb/Utility/UserID.h" #include "lldb/lldb-private.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/StoppointLocation.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/StoppointLocation.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/StoppointLocation.h Sun Apr 16 16:04:10 2017 (r317027) @@ -14,7 +14,7 @@ // C++ Includes // Other libraries and framework includes // Project includes -#include "lldb/Core/UserID.h" +#include "lldb/Utility/UserID.h" #include "lldb/lldb-private.h" // #include "lldb/Breakpoint/BreakpointOptions.h" Modified: vendor/lldb/dist/include/lldb/Breakpoint/Watchpoint.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/Watchpoint.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/Watchpoint.h Sun Apr 16 16:04:10 2017 (r317027) @@ -19,9 +19,9 @@ // Project includes #include "lldb/Breakpoint/StoppointLocation.h" #include "lldb/Breakpoint/WatchpointOptions.h" -#include "lldb/Core/UserID.h" #include "lldb/Symbol/CompilerType.h" #include "lldb/Target/Target.h" +#include "lldb/Utility/UserID.h" #include "lldb/lldb-private.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/WatchpointOptions.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/WatchpointOptions.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Breakpoint/WatchpointOptions.h Sun Apr 16 16:04:10 2017 (r317027) @@ -17,8 +17,8 @@ // Other libraries and framework includes // Project includes -#include "lldb/Core/Baton.h" -#include "lldb/Core/StringList.h" +#include "lldb/Utility/Baton.h" +#include "lldb/Utility/StringList.h" #include "lldb/lldb-private.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Core/Address.h ============================================================================== --- vendor/lldb/dist/include/lldb/Core/Address.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Core/Address.h Sun Apr 16 16:04:10 2017 (r317027) @@ -10,13 +10,44 @@ #ifndef liblldb_Address_h_ #define liblldb_Address_h_ -// C Includes -// C++ Includes +#include "lldb/lldb-defines.h" // for LLDB_INVALID_ADDRESS +#include "lldb/lldb-enumerations.h" // for AddressClass::eAddressClassInvalid +#include "lldb/lldb-forward.h" // for SectionWP, SectionSP, ModuleSP +#include "lldb/lldb-types.h" // for addr_t -// Other libraries and framework includes -// Project includes -#include "lldb/Symbol/SymbolContextScope.h" -#include "lldb/lldb-private.h" +#include // for size_t +#include // for uint32_t, UINT32_MAX, int64_t + +namespace lldb_private { +class Block; +} +namespace lldb_private { +class CompileUnit; +} +namespace lldb_private { +class ExecutionContextScope; +} +namespace lldb_private { +class Function; +} +namespace lldb_private { +class SectionList; +} +namespace lldb_private { +class Stream; +} +namespace lldb_private { +class Symbol; +} +namespace lldb_private { +class SymbolContext; +} +namespace lldb_private { +class Target; +} +namespace lldb_private { +struct LineEntry; +} namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Core/AddressRange.h ============================================================================== --- vendor/lldb/dist/include/lldb/Core/AddressRange.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Core/AddressRange.h Sun Apr 16 16:04:10 2017 (r317027) @@ -10,11 +10,21 @@ #ifndef liblldb_AddressRange_h_ #define liblldb_AddressRange_h_ -// C Includes -// C++ Includes -// Other libraries and framework includes -// Project includes #include "lldb/Core/Address.h" +#include "lldb/lldb-forward.h" // for SectionSP +#include "lldb/lldb-types.h" // for addr_t + +#include // for size_t + +namespace lldb_private { +class SectionList; +} +namespace lldb_private { +class Stream; +} +namespace lldb_private { +class Target; +} namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Core/AddressResolver.h ============================================================================== --- vendor/lldb/dist/include/lldb/Core/AddressResolver.h Sun Apr 16 16:03:43 2017 (r317026) +++ vendor/lldb/dist/include/lldb/Core/AddressResolver.h Sun Apr 16 16:04:10 2017 (r317027) @@ -10,20 +10,20 @@ #ifndef liblldb_AddressResolver_h_ #define liblldb_AddressResolver_h_ -#include - -// C Includes -// C++ Includes -// Other libraries and framework includes -// Project includes -#include "lldb/Core/Address.h" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Apr 16 16:04:40 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11263D403B9; Sun, 16 Apr 2017 16:04:40 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E3313E62; Sun, 16 Apr 2017 16:04:39 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3GG4aJY017438; Sun, 16 Apr 2017 09:04:36 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3GG4aoq017437; Sun, 16 Apr 2017 09:04:36 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704161604.v3GG4aoq017437@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys In-Reply-To: To: Mark R V Murray Date: Sun, 16 Apr 2017 09:04:36 -0700 (PDT) CC: rgrimes@FreeBSD.org, src-committers , svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Reply-To: rgrimes@FreeBSD.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:04:40 -0000 > > > On 16 Apr 2017, at 15:21, Rodney W. Grimes wrote: > >>>> RC4 has been standard for many years. > >>> Probably another rapid mode of design rather than a thoughful mode, we > >>> have a chance to correct this here, and imho, should. > >> > >> Fix it, sure. What's wrong with doing that as a next step? Why does this > >> change need to be held to ransom? > > > > Thats a fair point, let me counter, why do I want this change at all? > > RC4 is broken cryptographically. FreeBSD was lagging behind in still using it. > > > Is it just the new kid on the block and everyone wants to play with the > > new toy, or does it bring the users some wonderful star bright feature > > that they just can not live without? Is arc4random(9) some how fundementaly > > broken without chacha? > > Most folks won't notice a darn thing. Crap random numbers are very often > hard to tell apart from good ones, and if you are not depending on them in a > relevant way you won't notice anything. > > The big deal is that the attack vector for folks counting on (broken) > RC4 is now gone. For most FreeBSD users this is theoretical interest only. > > > Your code in and working now? > > Yes. > > > We just have 2 implementations of chacha, correct? > > Correct. > > > One in your static compiled in kernel section, and one as an LKM? > > Correct. The latter startled me when it arrived. So you can understand me being started when any of this arrived? I am on several of the mailling list, and I think -security is probably one of them. > >>>> Up until now, arc4random worked with unconditional RC4. > >>> > >>> And your wanting to just replace unconditional RC4 for unconditional chacha? > >>> Or actuall, aleady did? > >> > >> Correct. Both counts. It was up on Phabricator for weeks, BTW. > > > > We are having what I believe is a very serious disjoint in project communications > > caused by phabricator. How are the developers notified of new things going > > up in phabricator? I get bugzilla reports, but I get zip from phabriactor unless > > I go ask it for stuff. I get #network stuff cause I saw that in a commit that > > I would of liked to been aware of early and added into that project, but overall > > I think we need to work on this communcations too. > > True. I promised SO@ that I would get all my CSPRNG stuff reviewed in Phabricator > before committing it. All the folks who in the past have cared about my work now > are on the relevant watch-list. Apart from spamming everyone, what do you suggest? Yellow paint? Allan Jude informs me I have used all the blue paint. I wish I had a simple answer for that, but from looking at reviews post commit I notice we are getting more feedback on the commit list than we are getting pre commit in the review process, this leads me to believe I need some more Yellow paint so we can build a bike shed around how do we attract pre commit review activity? What watch list is this? And do we have a watch list that is just "New Phabricator created" so we can make just that incident go to some mailling list so people stop getting caught off guard by commits that have been reviews that they wish they had even known there was a review? We just need a way for being allerted there is a new review that we *might* be interested, or care to participate in without being on all the watch lists. And to add my hidden Blue Paint, we need to stop fearing the bike shed, the project seems to have stifled the communications process to the point it is becoming a closed door shop with everyone working in secret then dumping a commit in once they are done. Yes, bike sheds are a bit time consuming, but so is duplicate work cause you had no idea someone else was working in the same area (your LKM suprize is an excellent example). We must stop working in vacuums and start to communicate, and if that means we have a few bike sheds... well.. paints on me (though I reserve the blue for personal use!) -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Apr 16 16:16:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 90479D406F1; Sun, 16 Apr 2017 16:16:11 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5F1731854; Sun, 16 Apr 2017 16:16:11 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czmqO-0000He-5R; Sun, 16 Apr 2017 17:16:08 +0100 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Mark R V Murray In-Reply-To: <201704161604.v3GG4aoq017437@pdx.rh.CN85.dnsmgr.net> Date: Sun, 16 Apr 2017 17:16:06 +0100 Cc: src-committers , svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Content-Transfer-Encoding: quoted-printable Message-Id: <98247B49-8F7C-43D4-A187-54FD6E93DB05@FreeBSD.org> References: <201704161604.v3GG4aoq017437@pdx.rh.CN85.dnsmgr.net> To: rgrimes@FreeBSD.org X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:16:11 -0000 > On 16 Apr 2017, at 17:04, Rodney W. Grimes = wrote: > So you can understand me being started when any of this arrived? I am > on several of the mailling list, and I think -security is probably one > of them. I was thoroughly ignored last time I tried to use -security. It was, = however, a while back. I'll try again. > What watch list is this? And do we have a watch list that is just = "New Phabricator > created" so we can make just that incident go to some mailling list so = people stop > getting caught off guard by commits that have been reviews that they = wish they had > even known there was a review? We just need a way for being allerted = there is a > new review that we *might* be interested, or care to participate in = without being > on all the watch lists. There is 'secteam' on Phabricator. > And to add my hidden Blue Paint, we need to stop fearing the bike = shed, the project > seems to have stifled the communications process to the point it is = becoming a > closed door shop with everyone working in secret then dumping a commit = in once they > are done. Yes, bike sheds are a bit time consuming, but so is = duplicate work cause > you had no idea someone else was working in the same area (your LKM = suprize is > an excellent example). > We must stop working in vacuums and start to communicate, and if that = means we > have a few bike sheds... well.. paints on me (though I reserve the = blue for=20 > personal use!) Can't please everybody, but I'll add -security to the list next time. There is a fair bit of history that predates your return to the project; = me getting attention to folks prepared to do reviews is a sore point. I use = Phabricator because it works for me (I get reviews). I was largely ignored on the mailing = lists last time I had a big commit.=20 M --=20 Mark R V Murray From owner-svn-src-all@freebsd.org Sun Apr 16 16:17:49 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 69372D407B4; Sun, 16 Apr 2017 16:17:49 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 37F1419DC; Sun, 16 Apr 2017 16:17:49 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czmrz-0000Hq-Im; Sun, 16 Apr 2017 17:17:47 +0100 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Mark R V Murray In-Reply-To: Date: Sun, 16 Apr 2017 17:17:47 +0100 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: 7bit Message-Id: <87506759-98C6-443A-A61A-6BE0CF2D2B5F@FreeBSD.org> References: <201704160911.v3G9B3df023095@repo.freebsd.org> To: cem@freebsd.org X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:17:49 -0000 > On 16 Apr 2017, at 15:26, Conrad Meyer wrote: > * I believe you've taken the right approach. But somehow your import > of chacha should be reconciled with DES' import (i.e., keep only one > copy in the tree). > * I don't believe the chacha code being standard is an undue burden. > Especially balanced by kicking out RC4. This is the way I'd like to see things go. > Thanks for doing this work. You are most welcome! M -- Mark R V Murray From owner-svn-src-all@freebsd.org Sun Apr 16 16:36:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83328D40C6D for ; Sun, 16 Apr 2017 16:36:03 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 68689651 for ; Sun, 16 Apr 2017 16:36:02 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: d0981127-22c2-11e7-bfb5-0d159cd3c324 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound1.ore.mailhop.org (Halon) with ESMTPSA id d0981127-22c2-11e7-bfb5-0d159cd3c324; Sun, 16 Apr 2017 16:36:18 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id v3GGZxik004284; Sun, 16 Apr 2017 10:35:59 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1492360559.96207.1.camel@freebsd.org> Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Ian Lepore To: rgrimes@FreeBSD.org Cc: src-committers , svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Date: Sun, 16 Apr 2017 10:35:59 -0600 In-Reply-To: <201704161604.v3GG4aoq017437@pdx.rh.CN85.dnsmgr.net> References: <201704161604.v3GG4aoq017437@pdx.rh.CN85.dnsmgr.net> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 16:36:03 -0000 On Sun, 2017-04-16 at 09:04 -0700, Rodney W. Grimes wrote: > What watch list is this?  And do we have a watch list that is just "New Phabricator > created" so we can make just that incident go to some mailling list so people stop > getting caught off guard by commits that have been reviews that they wish they had > even known there was a review?  We just need a way for being allerted there is a > new review that we *might* be interested, or care to participate in without being > on all the watch lists. Sounds like you need to learn about the Herald feature of Phab and set yourself up some rules.  (The most basic rule would be "notify me about every new change put up for review", which seems like it would be a real spam generator, but at least one person uses such a rule.) -- Ian From owner-svn-src-all@freebsd.org Sun Apr 16 17:53:46 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 34D93D41517; Sun, 16 Apr 2017 17:53:46 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 04E90150E; Sun, 16 Apr 2017 17:53:45 +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 v3GHrjrH042570; Sun, 16 Apr 2017 17:53:45 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GHrj6v042569; Sun, 16 Apr 2017 17:53:45 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201704161753.v3GHrj6v042569@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 16 Apr 2017 17:53:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317033 - head/sys/arm/freescale/imx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 17:53:46 -0000 Author: ian Date: Sun Apr 16 17:53:44 2017 New Revision: 317033 URL: https://svnweb.freebsd.org/changeset/base/317033 Log: Convert probing to use an ofw_compat_data array, and add imx6ul to the list. Modified: head/sys/arm/freescale/imx/imx6_usbphy.c Modified: head/sys/arm/freescale/imx/imx6_usbphy.c ============================================================================== --- head/sys/arm/freescale/imx/imx6_usbphy.c Sun Apr 16 16:48:25 2017 (r317032) +++ head/sys/arm/freescale/imx/imx6_usbphy.c Sun Apr 16 17:53:44 2017 (r317033) @@ -68,6 +68,12 @@ struct usbphy_softc { u_int phy_num; }; +static struct ofw_compat_data compat_data[] = { + {"fsl,imx6q-usbphy", true}, + {"fsl,imx6ul-usbphy", true}, + {NULL, false} +}; + static int usbphy_detach(device_t dev) { @@ -167,7 +173,7 @@ usbphy_probe(device_t dev) if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (ofw_bus_is_compatible(dev, "fsl,imx6q-usbphy") == 0) + if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) return (ENXIO); device_set_desc(dev, "Freescale i.MX6 USB PHY"); From owner-svn-src-all@freebsd.org Sun Apr 16 19:12:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 400EBD41918; Sun, 16 Apr 2017 19:12:09 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 133FC1A83; Sun, 16 Apr 2017 19:12:09 +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 v3GJC8Xi073931; Sun, 16 Apr 2017 19:12:08 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GJC868073706; Sun, 16 Apr 2017 19:12:08 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704161912.v3GJC868073706@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sun, 16 Apr 2017 19:12:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317034 - in head/lib/libc: string tests/string X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 19:12:09 -0000 Author: bapt Date: Sun Apr 16 19:12:07 2017 New Revision: 317034 URL: https://svnweb.freebsd.org/changeset/base/317034 Log: Fix strcoll_l disagreeing with strxfrm by reworking the forward order case in wcscoll_l(). Illumos fixed this while grabbing back our patches: https://www.illumos.org/rb/r/402/ This does not 100% fix what postgresql folks reported as there is still a remaining issue: https://www.illumos.org/issues/7962, it improves the situation The initial issue was reported in postgresql mailing lists: https://www.postgresql.org/message-id/flat/111D0E27-A8F3-4A84-A4E0-B0FB703863DF@s24.com#111D0E27-A8F3-4A84-A4E0-B0FB703863DF@s24.com Submitted by: Yuri Pankov Obtained from: Illumos MFC after: 2 weeks Modified: head/lib/libc/string/wcscoll.c head/lib/libc/tests/string/wcscoll_test.c Modified: head/lib/libc/string/wcscoll.c ============================================================================== --- head/lib/libc/string/wcscoll.c Sun Apr 16 17:53:44 2017 (r317033) +++ head/lib/libc/string/wcscoll.c Sun Apr 16 19:12:07 2017 (r317034) @@ -1,5 +1,5 @@ /*- - * Copyright 2010 Nexenta Systems, Inc. All rights reserved. + * Copyright 2017 Nexenta Systems, Inc. * Copyright (c) 2002 Tim J. Robbins * All rights reserved. * @@ -42,22 +42,22 @@ __FBSDID("$FreeBSD$"); int wcscoll_l(const wchar_t *ws1, const wchar_t *ws2, locale_t locale) { - int len1, len2, pri1, pri2, ret; + int len1, len2, pri1, pri2; wchar_t *tr1 = NULL, *tr2 = NULL; int direc, pass; + int ret = wcscmp(ws1, ws2); FIX_LOCALE(locale); struct xlocale_collate *table = (struct xlocale_collate*)locale->components[XLC_COLLATE]; - if (table->__collate_load_error) - /* - * Locale has no special collating order or could not be - * loaded, do a fast binary comparison. - */ - return (wcscmp(ws1, ws2)); + if (table->__collate_load_error || ret == 0) + return (ret); - ret = 0; + if (*ws1 == 0 && *ws2 != 0) + return (-1); + if (*ws1 != 0 && *ws2 == 0) + return (1); /* * Once upon a time we had code to try to optimize this, but @@ -77,19 +77,19 @@ wcscoll_l(const wchar_t *ws1, const wcha const int32_t *st2 = NULL; const wchar_t *w1 = ws1; const wchar_t *w2 = ws2; - int check1, check2; /* special pass for UNDEFINED */ if (pass == table->info->directive_count) { - direc = DIRECTIVE_FORWARD | DIRECTIVE_UNDEFINED; + direc = DIRECTIVE_FORWARD; } else { direc = table->info->directive[pass]; } if (direc & DIRECTIVE_BACKWARD) { wchar_t *bp, *fp, c; + free(tr1); if ((tr1 = wcsdup(w1)) == NULL) - goto fail; + goto end; bp = tr1; fp = tr1 + wcslen(tr1) - 1; while (bp < fp) { @@ -97,8 +97,9 @@ wcscoll_l(const wchar_t *ws1, const wcha *bp++ = *fp; *fp-- = c; } + free(tr2); if ((tr2 = wcsdup(w2)) == NULL) - goto fail; + goto end; bp = tr2; fp = tr2 + wcslen(tr2) - 1; while (bp < fp) { @@ -111,6 +112,7 @@ wcscoll_l(const wchar_t *ws1, const wcha } if (direc & DIRECTIVE_POSITION) { + int check1, check2; while (*w1 && *w2) { pri1 = pri2 = 0; check1 = check2 = 1; @@ -120,7 +122,7 @@ wcscoll_l(const wchar_t *ws1, const wcha &pri1, pass, &st1); if (pri1 < 0) { errno = EINVAL; - goto fail; + goto end; } if (!pri1) { pri1 = COLLATE_MAX_PRIORITY; @@ -133,7 +135,7 @@ wcscoll_l(const wchar_t *ws1, const wcha &pri2, pass, &st2); if (pri2 < 0) { errno = EINVAL; - goto fail; + goto end; } if (!pri2) { pri2 = COLLATE_MAX_PRIORITY; @@ -149,58 +151,64 @@ wcscoll_l(const wchar_t *ws1, const wcha w1 += len1; w2 += len2; } + if (!*w1) { + if (*w2) { + ret = -(int)*w2; + goto end; + } + } else { + ret = *w1; + goto end; + } } else { - while (*w1 && *w2) { - pri1 = pri2 = 0; - check1 = check2 = 1; - while ((pri1 == pri2) && (check1 || check2)) { - while (check1 && *w1) { - _collate_lookup(table, w1, - &len1, &pri1, pass, &st1); - if (pri1 > 0) - break; - if (pri1 < 0) { - errno = EINVAL; - goto fail; - } - st1 = NULL; - w1 += 1; + int vpri1 = 0, vpri2 = 0; + while (*w1 || *w2 || st1 || st2) { + pri1 = 1; + while (*w1 || st1) { + _collate_lookup(table, w1, &len1, &pri1, + pass, &st1); + w1 += len1; + if (pri1 > 0) { + vpri1++; + break; } - check1 = (st1 != NULL); - while (check2 && *w2) { - _collate_lookup(table, w2, - &len2, &pri2, pass, &st2); - if (pri2 > 0) - break; - if (pri2 < 0) { - errno = EINVAL; - goto fail; - } - st2 = NULL; - w2 += 1; + + if (pri1 < 0) { + errno = EINVAL; + goto end; } - check2 = (st2 != NULL); - if (!pri1 || !pri2) + st1 = NULL; + } + pri2 = 1; + while (*w2 || st2) { + _collate_lookup(table, w2, &len2, &pri2, + pass, &st2); + w2 += len2; + if (pri2 > 0) { + vpri2++; break; + } + if (pri2 < 0) { + errno = EINVAL; + goto end; + } + st2 = NULL; } - if (!pri1 || !pri2) + if ((!pri1 || !pri2) && (vpri1 == vpri2)) break; if (pri1 != pri2) { ret = pri1 - pri2; goto end; } - w1 += len1; - w2 += len2; } - } - if (!*w1) { - if (*w2) { - ret = -(int)*w2; + if (vpri1 && !vpri2) { + ret = 1; + goto end; + } + if (!vpri1 && vpri2) { + ret = -1; goto end; } - } else { - ret = *w1; - goto end; } } ret = 0; @@ -210,10 +218,6 @@ end: free(tr2); return (ret); - -fail: - ret = wcscmp(ws1, ws2); - goto end; } int Modified: head/lib/libc/tests/string/wcscoll_test.c ============================================================================== --- head/lib/libc/tests/string/wcscoll_test.c Sun Apr 16 17:53:44 2017 (r317033) +++ head/lib/libc/tests/string/wcscoll_test.c Sun Apr 16 19:12:07 2017 (r317034) @@ -1,5 +1,7 @@ /*- * Copyright (c) 2016 Baptiste Daroussin + * Copyright 2016 Tom Lane + * Copyright 2017 Nexenta Systems, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -30,6 +32,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include @@ -55,9 +59,98 @@ ATF_TC_BODY(russian_collation, tc) "Bad collation, expected: '%ls' got '%ls'", res, c); } +#define NSTRINGS 2000 +#define MAXSTRLEN 20 +#define MAXXFRMLEN (MAXSTRLEN * 20) + +typedef struct { + char sval[MAXSTRLEN]; + char xval[MAXXFRMLEN]; +} cstr; + +ATF_TC_WITHOUT_HEAD(strcoll_vs_strxfrm); +ATF_TC_BODY(strcoll_vs_strxfrm, tc) +{ + cstr data[NSTRINGS]; + char *curloc; + int i, j; + + curloc = setlocale(LC_ALL, "en_US.UTF-8"); + ATF_CHECK_MSG(curloc != NULL, "Fail to set locale"); + + /* Ensure new random() values on every run */ + srandom((unsigned int) time(NULL)); + + /* Generate random UTF8 strings of length less than MAXSTRLEN bytes */ + for (i = 0; i < NSTRINGS; i++) { + char *p; + int len; + +again: + p = data[i].sval; + len = 1 + (random() % (MAXSTRLEN - 1)); + while (len > 0) { + int c; + /* + * Generate random printable char in ISO8859-1 range. + * Bias towards producing a lot of spaces. + */ + + if ((random() % 16) < 3) { + c = ' '; + } else { + do { + c = random() & 0xFF; + } while (!((c >= ' ' && c <= 127) || + (c >= 0xA0 && c <= 0xFF))); + } + + if (c <= 127) { + *p++ = c; + len--; + } else { + if (len < 2) + break; + /* Poor man's utf8-ification */ + *p++ = 0xC0 + (c >> 6); + len--; + *p++ = 0x80 + (c & 0x3F); + len--; + } + } + *p = '\0'; + /* strxfrm() each string as we produce it */ + errno = 0; + ATF_CHECK_MSG(strxfrm(data[i].xval, data[i].sval, + MAXXFRMLEN) < MAXXFRMLEN, "strxfrm() result for %d-length " + " string exceeded %d bytes", (int)strlen(data[i].sval), + MAXXFRMLEN); + + /* + * Amend strxfrm() failing on certain characters to be fixed and + * test later + */ + if (errno != 0) + goto again; + } + + for (i = 0; i < NSTRINGS; i++) { + for (j = 0; j < NSTRINGS; j++) { + int sr = strcoll(data[i].sval, data[j].sval); + int sx = strcmp(data[i].xval, data[j].xval); + + ATF_CHECK_MSG(!((sr * sx < 0) || + (sr * sx == 0 && sr + sx != 0)), + "%s: diff for \"%s\" and \"%s\"", + curloc, data[i].sval, data[j].sval); + } + } +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, russian_collation); + ATF_TP_ADD_TC(tp, strcoll_vs_strxfrm); return (atf_no_error()); } From owner-svn-src-all@freebsd.org Sun Apr 16 19:17:12 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55AA7D419CB; Sun, 16 Apr 2017 19:17:12 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3127C1DFF; Sun, 16 Apr 2017 19:17:12 +0000 (UTC) (envelope-from pkelsey@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GJHB8C074769; Sun, 16 Apr 2017 19:17:11 GMT (envelope-from pkelsey@FreeBSD.org) Received: (from pkelsey@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GJHAD9074759; Sun, 16 Apr 2017 19:17:10 GMT (envelope-from pkelsey@FreeBSD.org) Message-Id: <201704161917.v3GJHAD9074759@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pkelsey set sender to pkelsey@FreeBSD.org using -f From: Patrick Kelsey Date: Sun, 16 Apr 2017 19:17:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317035 - in head: contrib/traceroute sbin/route sbin/routed sys/net usr.bin/netstat usr.sbin/arp usr.sbin/ndp usr.sbin/rarpd usr.sbin/route6d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 19:17:12 -0000 Author: pkelsey Date: Sun Apr 16 19:17:10 2017 New Revision: 317035 URL: https://svnweb.freebsd.org/changeset/base/317035 Log: Fix userland tools that don't check the format of routing socket messages before accessing message fields that may not be present, removing dead/duplicate/misleading code along the way. Document the message format for each routing socket message in route.h. Fix a bug in usr.bin/netstat introduced in r287351 that resulted in pointer computation with essentially random 16-bit offsets and dereferencing of the results. Reviewed by: ae MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D10330 Modified: head/contrib/traceroute/findsaddr-socket.c head/sbin/route/route.c head/sbin/routed/table.c head/sys/net/route.h head/usr.bin/netstat/route.c head/usr.sbin/arp/arp.c head/usr.sbin/ndp/ndp.c head/usr.sbin/rarpd/rarpd.c head/usr.sbin/route6d/route6d.c Modified: head/contrib/traceroute/findsaddr-socket.c ============================================================================== --- head/contrib/traceroute/findsaddr-socket.c Sun Apr 16 19:12:07 2017 (r317034) +++ head/contrib/traceroute/findsaddr-socket.c Sun Apr 16 19:17:10 2017 (r317035) @@ -156,7 +156,8 @@ findsaddr(register const struct sockaddr return (errbuf); } - } while (rp->rtm_seq != seq || rp->rtm_pid != pid); + } while (rp->rtm_type != RTM_GET || rp->rtm_seq != seq || + rp->rtm_pid != pid); close(s); Modified: head/sbin/route/route.c ============================================================================== --- head/sbin/route/route.c Sun Apr 16 19:12:07 2017 (r317034) +++ head/sbin/route/route.c Sun Apr 16 19:17:10 2017 (r317035) @@ -1497,10 +1497,7 @@ rtmsg(int cmd, int flags, int fib) #define NEXTADDR(w, u) \ if (rtm_addrs & (w)) { \ - l = (((struct sockaddr *)&(u))->sa_len == 0) ? \ - sizeof(long) : \ - 1 + ((((struct sockaddr *)&(u))->sa_len - 1) \ - | (sizeof(long) - 1)); \ + l = SA_SIZE(&(u)); \ memmove(cp, (char *)&(u), l); \ cp += l; \ if (verbose) \ @@ -1564,7 +1561,8 @@ rtmsg(int cmd, int flags, int fib) do { l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg)); } while (l > 0 && stop_read == 0 && - (rtm.rtm_seq != rtm_seq || rtm.rtm_pid != pid)); + (rtm.rtm_type != RTM_GET || rtm.rtm_seq != rtm_seq || + rtm.rtm_pid != pid)); if (stop_read != 0) { warnx("read from routing socket timed out"); return (-1); @@ -1706,10 +1704,13 @@ print_rtmsg(struct rt_msghdr *rtm, size_ break; default: - printf("pid: %ld, seq %d, errno %d, flags:", - (long)rtm->rtm_pid, rtm->rtm_seq, rtm->rtm_errno); - printb(rtm->rtm_flags, routeflags); - pmsg_common(rtm, msglen); + if (rtm->rtm_type <= RTM_RESOLVE) { + printf("pid: %ld, seq %d, errno %d, flags:", + (long)rtm->rtm_pid, rtm->rtm_seq, rtm->rtm_errno); + printb(rtm->rtm_flags, routeflags); + pmsg_common(rtm, msglen); + } else + printf("type: %u, len: %zu\n", rtm->rtm_type, msglen); } return; Modified: head/sbin/routed/table.c ============================================================================== --- head/sbin/routed/table.c Sun Apr 16 19:12:07 2017 (r317034) +++ head/sbin/routed/table.c Sun Apr 16 19:17:10 2017 (r317035) @@ -1233,6 +1233,15 @@ read_rt(void) if (m.r.rtm.rtm_type <= RTM_CHANGE) strp += sprintf(strp," from pid %d",m.r.rtm.rtm_pid); + /* + * Only messages that use the struct rt_msghdr format are + * allowed beyond this point. + */ + if (m.r.rtm.rtm_type > RTM_RESOLVE) { + trace_act("ignore %s", str); + continue; + } + rt_xaddrs(&info, m.r.addrs, &m.r.addrs[RTAX_MAX], m.r.rtm.rtm_addrs); Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Sun Apr 16 19:12:07 2017 (r317034) +++ head/sys/net/route.h Sun Apr 16 19:17:10 2017 (r317035) @@ -265,25 +265,35 @@ struct rt_msghdr { /* * Message types. + * + * The format for each message is annotated below using the following + * identifiers: + * + * (1) struct rt_msghdr + * (2) struct ifa_msghdr + * (3) struct if_msghdr + * (4) struct ifma_msghdr + * (5) struct if_announcemsghdr + * */ -#define RTM_ADD 0x1 /* Add Route */ -#define RTM_DELETE 0x2 /* Delete Route */ -#define RTM_CHANGE 0x3 /* Change Metrics or flags */ -#define RTM_GET 0x4 /* Report Metrics */ -#define RTM_LOSING 0x5 /* Kernel Suspects Partitioning */ -#define RTM_REDIRECT 0x6 /* Told to use different route */ -#define RTM_MISS 0x7 /* Lookup failed on this address */ -#define RTM_LOCK 0x8 /* fix specified metrics */ +#define RTM_ADD 0x1 /* (1) Add Route */ +#define RTM_DELETE 0x2 /* (1) Delete Route */ +#define RTM_CHANGE 0x3 /* (1) Change Metrics or flags */ +#define RTM_GET 0x4 /* (1) Report Metrics */ +#define RTM_LOSING 0x5 /* (1) Kernel Suspects Partitioning */ +#define RTM_REDIRECT 0x6 /* (1) Told to use different route */ +#define RTM_MISS 0x7 /* (1) Lookup failed on this address */ +#define RTM_LOCK 0x8 /* (1) fix specified metrics */ /* 0x9 */ /* 0xa */ -#define RTM_RESOLVE 0xb /* req to resolve dst to LL addr */ -#define RTM_NEWADDR 0xc /* address being added to iface */ -#define RTM_DELADDR 0xd /* address being removed from iface */ -#define RTM_IFINFO 0xe /* iface going up/down etc. */ -#define RTM_NEWMADDR 0xf /* mcast group membership being added to if */ -#define RTM_DELMADDR 0x10 /* mcast group membership being deleted */ -#define RTM_IFANNOUNCE 0x11 /* iface arrival/departure */ -#define RTM_IEEE80211 0x12 /* IEEE80211 wireless event */ +#define RTM_RESOLVE 0xb /* (1) req to resolve dst to LL addr */ +#define RTM_NEWADDR 0xc /* (2) address being added to iface */ +#define RTM_DELADDR 0xd /* (2) address being removed from iface */ +#define RTM_IFINFO 0xe /* (3) iface going up/down etc. */ +#define RTM_NEWMADDR 0xf /* (4) mcast group membership being added to if */ +#define RTM_DELMADDR 0x10 /* (4) mcast group membership being deleted */ +#define RTM_IFANNOUNCE 0x11 /* (5) iface arrival/departure */ +#define RTM_IEEE80211 0x12 /* (5) IEEE80211 wireless event */ /* * Bitmask values for rtm_inits and rmx_locks. @@ -342,11 +352,10 @@ struct rt_addrinfo { * This macro returns the size of a struct sockaddr when passed * through a routing socket. Basically we round up sa_len to * a multiple of sizeof(long), with a minimum of sizeof(long). - * The check for a NULL pointer is just a convenience, probably never used. * The case sa_len == 0 should only apply to empty structures. */ #define SA_SIZE(sa) \ - ( (!(sa) || ((struct sockaddr *)(sa))->sa_len == 0) ? \ + ( (((struct sockaddr *)(sa))->sa_len == 0) ? \ sizeof(long) : \ 1 + ( (((struct sockaddr *)(sa))->sa_len - 1) | (sizeof(long) - 1) ) ) Modified: head/usr.bin/netstat/route.c ============================================================================== --- head/usr.bin/netstat/route.c Sun Apr 16 19:12:07 2017 (r317034) +++ head/usr.bin/netstat/route.c Sun Apr 16 19:17:10 2017 (r317035) @@ -360,9 +360,10 @@ p_rtentry_sysctl(const char *name, struc xo_open_instance(name); sa = (struct sockaddr *)(rtm + 1); for (i = 0; i < RTAX_MAX; i++) { - if (rtm->rtm_addrs & (1 << i)) + if (rtm->rtm_addrs & (1 << i)) { addr[i] = sa; - sa = (struct sockaddr *)((char *)sa + SA_SIZE(sa)); + sa = (struct sockaddr *)((char *)sa + SA_SIZE(sa)); + } } protrusion = p_sockaddr("destination", addr[RTAX_DST], Modified: head/usr.sbin/arp/arp.c ============================================================================== --- head/usr.sbin/arp/arp.c Sun Apr 16 19:12:07 2017 (r317034) +++ head/usr.sbin/arp/arp.c Sun Apr 16 19:17:10 2017 (r317035) @@ -404,7 +404,7 @@ set(int argc, char **argv) * the prefix route covering the local end of the * PPP link should be returned, on which ARP applies. */ - rtm = rtmsg(RTM_GET, dst, &sdl_m); + rtm = rtmsg(RTM_GET, dst, NULL); if (rtm == NULL) { xo_warn("%s", host); return (1); @@ -466,7 +466,6 @@ delete(char *host) struct sockaddr_in *addr, *dst; struct rt_msghdr *rtm; struct sockaddr_dl *sdl; - struct sockaddr_dl sdl_m; dst = getaddr(host); if (dst == NULL) @@ -477,17 +476,8 @@ delete(char *host) */ flags &= ~RTF_ANNOUNCE; - /* - * setup the data structure to notify the kernel - * it is the ARP entry the RTM_GET is interested - * in - */ - bzero(&sdl_m, sizeof(sdl_m)); - sdl_m.sdl_len = sizeof(sdl_m); - sdl_m.sdl_family = AF_LINK; - for (;;) { /* try twice */ - rtm = rtmsg(RTM_GET, dst, &sdl_m); + rtm = rtmsg(RTM_GET, dst, NULL); if (rtm == NULL) { xo_warn("%s", host); return (1); @@ -511,7 +501,7 @@ delete(char *host) } /* - * Regualar entry delete failed, now check if there + * Regular entry delete failed, now check if there * is a proxy-arp entry to remove. */ if (flags & RTF_ANNOUNCE) { @@ -815,7 +805,8 @@ doit: } do { l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg)); - } while (l > 0 && (rtm->rtm_seq != seq || rtm->rtm_pid != pid)); + } while (l > 0 && (rtm->rtm_type != cmd || rtm->rtm_seq != seq || + rtm->rtm_pid != pid)); if (l < 0) xo_warn("read from routing socket"); return (rtm); Modified: head/usr.sbin/ndp/ndp.c ============================================================================== --- head/usr.sbin/ndp/ndp.c Sun Apr 16 19:12:07 2017 (r317034) +++ head/usr.sbin/ndp/ndp.c Sun Apr 16 19:17:10 2017 (r317035) @@ -888,7 +888,8 @@ doit: } do { l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg)); - } while (l > 0 && (rtm->rtm_seq != seq || rtm->rtm_pid != pid)); + } while (l > 0 && (rtm->rtm_type != cmd || rtm->rtm_seq != seq || + rtm->rtm_pid != pid)); if (l < 0) (void) fprintf(stderr, "ndp: read from routing socket: %s\n", strerror(errno)); Modified: head/usr.sbin/rarpd/rarpd.c ============================================================================== --- head/usr.sbin/rarpd/rarpd.c Sun Apr 16 19:12:07 2017 (r317034) +++ head/usr.sbin/rarpd/rarpd.c Sun Apr 16 19:17:10 2017 (r317035) @@ -755,7 +755,8 @@ update_arptab(u_char *ep, in_addr_t ipad } do { cc = read(r, rt, sizeof(rtmsg)); - } while (cc > 0 && (rt->rtm_seq != seq || rt->rtm_pid != pid)); + } while (cc > 0 && (rt->rtm_type != RTM_GET || rt->rtm_seq != seq || + rt->rtm_pid != pid)); if (cc == -1) { logmsg(LOG_ERR, "rtmsg get read: %m"); close(r); @@ -803,7 +804,8 @@ update_arptab(u_char *ep, in_addr_t ipad } do { cc = read(r, rt, sizeof(rtmsg)); - } while (cc > 0 && (rt->rtm_seq != seq || rt->rtm_pid != pid)); + } while (cc > 0 && (rt->rtm_type != RTM_ADD || rt->rtm_seq != seq || + rt->rtm_pid != pid)); close(r); if (cc == -1) { logmsg(LOG_ERR, "rtmsg add read: %m"); Modified: head/usr.sbin/route6d/route6d.c ============================================================================== --- head/usr.sbin/route6d/route6d.c Sun Apr 16 19:12:07 2017 (r317034) +++ head/usr.sbin/route6d/route6d.c Sun Apr 16 19:17:10 2017 (r317035) @@ -1768,14 +1768,23 @@ rtrecv(void) break; default: rtm = (struct rt_msghdr *)(void *)p; - addrs = rtm->rtm_addrs; - q = (char *)(rtm + 1); if (rtm->rtm_version != RTM_VERSION) { trace(1, "unexpected rtmsg version %d " "(should be %d)\n", rtm->rtm_version, RTM_VERSION); continue; } + /* + * Only messages that use the struct rt_msghdr + * format are allowed beyond this point. + */ + if (rtm->rtm_type > RTM_RESOLVE) { + trace(1, "rtmsg type %d ignored\n", + rtm->rtm_type); + continue; + } + addrs = rtm->rtm_addrs; + q = (char *)(rtm + 1); if (rtm->rtm_pid == pid) { #if 0 trace(1, "rtmsg looped back to me, ignored\n"); @@ -2973,7 +2982,8 @@ getroute(struct netinfo6 *np, struct in6 exit(1); } rtm = (struct rt_msghdr *)(void *)buf; - } while (rtm->rtm_seq != myseq || rtm->rtm_pid != pid); + } while (rtm->rtm_type != RTM_GET || rtm->rtm_seq != myseq || + rtm->rtm_pid != pid); sin6 = (struct sockaddr_in6 *)(void *)&buf[sizeof(struct rt_msghdr)]; if (rtm->rtm_addrs & RTA_DST) { sin6 = (struct sockaddr_in6 *)(void *) From owner-svn-src-all@freebsd.org Sun Apr 16 19:23:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2F6BD41111; Sun, 16 Apr 2017 19:23:11 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B50796EA; Sun, 16 Apr 2017 19:23:11 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GJNAdA078635; Sun, 16 Apr 2017 19:23:10 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GJNAnf078634; Sun, 16 Apr 2017 19:23:10 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704161923.v3GJNAnf078634@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 16 Apr 2017 19:23:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317036 - head/lib/libjail X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 19:23:12 -0000 Author: pfg Date: Sun Apr 16 19:23:10 2017 New Revision: 317036 URL: https://svnweb.freebsd.org/changeset/base/317036 Log: libjail: make allocation in jailparam_all() somewhat more robust. Unsign some variables involved in allocation as they will never be negative anyways. Provide some bounds checking through reallocarray(3). This is all very unlikely to have any visible effect. Reviewed by: jamie MFC after: 3 weeks Modified: head/lib/libjail/jail.c Modified: head/lib/libjail/jail.c ============================================================================== --- head/lib/libjail/jail.c Sun Apr 16 19:17:10 2017 (r317035) +++ head/lib/libjail/jail.c Sun Apr 16 19:23:10 2017 (r317036) @@ -200,7 +200,7 @@ jailparam_all(struct jailparam **jpp) { struct jailparam *jp, *tjp; size_t mlen1, mlen2, buflen; - int njp, nlist; + unsigned njp, nlist; int mib1[CTL_MAXNAME], mib2[CTL_MAXNAME - 2]; char buf[MAXPATHLEN]; @@ -250,7 +250,7 @@ jailparam_all(struct jailparam **jpp) /* Add the parameter to the list */ if (njp >= nlist) { nlist *= 2; - tjp = realloc(jp, nlist * sizeof(*jp)); + tjp = reallocarray(jp, nlist, sizeof(*jp)); if (tjp == NULL) goto error; jp = tjp; @@ -259,7 +259,7 @@ jailparam_all(struct jailparam **jpp) goto error; mib1[1] = 2; } - jp = realloc(jp, njp * sizeof(*jp)); + jp = reallocarray(jp, njp, sizeof(*jp)); *jpp = jp; return (njp); From owner-svn-src-all@freebsd.org Sun Apr 16 19:27:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4BBDD4140D; Sun, 16 Apr 2017 19:27:22 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id B01CDA99; Sun, 16 Apr 2017 19:27:22 +0000 (UTC) (envelope-from des@des.no) Received: from desk.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 35462F5D1; Sun, 16 Apr 2017 19:26:02 +0000 (UTC) Received: by desk.des.no (Postfix, from userid 1001) id 27338422C; Sun, 16 Apr 2017 21:26:03 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Mark Murray Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys References: <201704160911.v3G9B3df023095@repo.freebsd.org> Date: Sun, 16 Apr 2017 21:26:03 +0200 In-Reply-To: <201704160911.v3G9B3df023095@repo.freebsd.org> (Mark Murray's message of "Sun, 16 Apr 2017 09:11:03 +0000 (UTC)") Message-ID: <86lgr09mt0.fsf@desk.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 19:27:23 -0000 Mark Murray writes: > Added: > head/sys/crypto/chacha20/chacha.c (contents, props changed) > head/sys/crypto/chacha20/chacha.h (contents, props changed) Really? You committed this code despite having been informed of its dubious legal status, and despite knowing full well that another implementation was already available? DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@freebsd.org Sun Apr 16 21:17:42 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CED85D4179F; Sun, 16 Apr 2017 21:17:42 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9EE1B8A1; Sun, 16 Apr 2017 21:17:42 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.88 (FreeBSD)) (envelope-from ) id 1czrY9-0000cp-Uy; Sun, 16 Apr 2017 22:17:40 +0100 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys From: Mark R V Murray In-Reply-To: <86lgr09mt0.fsf@desk.des.no> Date: Sun, 16 Apr 2017 22:17:37 +0100 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201704160911.v3G9B3df023095@repo.freebsd.org> <86lgr09mt0.fsf@desk.des.no> To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= X-Mailer: Apple Mail (2.3273) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 21:17:42 -0000 > On 16 Apr 2017, at 20:26, Dag-Erling Sm=C3=B8rgrav wrote: >=20 > Mark Murray writes: >> Added: >> head/sys/crypto/chacha20/chacha.c (contents, props changed) >> head/sys/crypto/chacha20/chacha.h (contents, props changed) >=20 > Really? You committed this code despite having been informed of its > dubious legal status, and despite knowing full well that another > implementation was already available? "Dubious legal status"? Please go and look at the chacha that OpenSSH = uses. You will find it strangely familiar. You informed me *that* you had written another implementation. You = didn't inform me *when* you were going to pull the trigger. The time between warning me and committing was a shade over 2 hours. The fact that 1) yours is optional (arc4random needs standard) 2) your = API is incompatible and 3) both code-sets can co-exist without conflict = means that there is no technical problem, except for the time taken adapt to = your API and bikeshed out the module "standard" vs "optional" status. Oh, and the time to retest everything. In the past you have made me wait *months* to make changes to my own = code. Your commit took 2 *hours* between first warning of commit and it = hitting the tree. You can't say you didn't know my commit was imminent. I had just gotten a green light from the SO a day or so before. Here's the timeline: 18th March: I open D10048 - a change that replaces RC4 with ChaCha as underlying algorithm for arc4random(9). I choose the OpenSSH copy of chacha.c. 21st March: A brief exchange of emails where DES' Chacha is announced as existing. No timeline for its committal is discussed. Fri 14th April, 2:58: SO Green-lights my commit after a few rounds of changes and discussion. Sat 14th April, 17:45: DES Adds himself to the reviewer list of D10048 for the first time and makes this comment "Please allow me some time to commit my Chacha20 implementation first so we can use that instead of the legally dubious version which is included in this patch. I hit a snag that I haven't had time to debug, but I'm hoping to have it done by Tuesday." Sat 14th April, 19:54: DES make this comment: "Turns out the snag was that I was loading the wrong version of the module. I have committed it now (r316982). If anyone is interested, I have a version that includes test vectors and runs self-tests when loaded, but I removed them from the final version as they are about six times larger than the actual code." DES - are you kidding me??! 2 hours 9 minutes warning? I already had a green light; I wan't watching Phabricator, I was prepping my commit! "Please allow me some time", then you drop your warning from 3 days to 2 hours! M --=20 Mark R V Murray From owner-svn-src-all@freebsd.org Sun Apr 16 21:42:45 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6971BD41F39; Sun, 16 Apr 2017 21:42:45 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2092814DE; Sun, 16 Apr 2017 21:42:45 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GLginL035614; Sun, 16 Apr 2017 21:42:44 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GLgin1035612; Sun, 16 Apr 2017 21:42:44 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201704162142.v3GLgin1035612@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sun, 16 Apr 2017 21:42:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317037 - in head/bin/sh: . tests/parser X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 21:42:45 -0000 Author: jilles Date: Sun Apr 16 21:42:43 2017 New Revision: 317037 URL: https://svnweb.freebsd.org/changeset/base/317037 Log: sh: Fix unalias -a while an alias is currently in use. It is a rare situation to modify aliases while an alias is currently in use, but this is handled for plain unalias. Handle it for unalias -a as well. Added: head/bin/sh/tests/parser/alias17.0 (contents, props changed) Modified: head/bin/sh/alias.c Modified: head/bin/sh/alias.c ============================================================================== --- head/bin/sh/alias.c Sun Apr 16 19:23:10 2017 (r317036) +++ head/bin/sh/alias.c Sun Apr 16 21:42:43 2017 (r317037) @@ -85,6 +85,14 @@ setalias(const char *name, const char *v INTON; } +static void +freealias(struct alias *ap) +{ + ckfree(ap->name); + ckfree(ap->val); + ckfree(ap); +} + static int unalias(const char *name) { @@ -106,9 +114,7 @@ unalias(const char *name) else { INTOFF; *app = ap->next; - ckfree(ap->name); - ckfree(ap->val); - ckfree(ap); + freealias(ap); INTON; } aliases--; @@ -122,19 +128,21 @@ unalias(const char *name) static void rmaliases(void) { - struct alias *ap, *tmp; + struct alias *ap, **app; int i; INTOFF; for (i = 0; i < ATABSIZE; i++) { - ap = atab[i]; - atab[i] = NULL; - while (ap) { - ckfree(ap->name); - ckfree(ap->val); - tmp = ap; - ap = ap->next; - ckfree(tmp); + app = &atab[i]; + while (*app) { + ap = *app; + if (ap->flag & ALIASINUSE) { + *ap->name = '\0'; + app = &(*app)->next; + } else { + *app = ap->next; + freealias(ap); + } } } aliases = 0; Added: head/bin/sh/tests/parser/alias17.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/bin/sh/tests/parser/alias17.0 Sun Apr 16 21:42:43 2017 (r317037) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +v=1 +alias a='unalias -a +v=2' +eval a +[ "$v" = 2 ] From owner-svn-src-all@freebsd.org Sun Apr 16 21:57:26 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A46CFD402B1; Sun, 16 Apr 2017 21:57:26 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 711D719C2; Sun, 16 Apr 2017 21:57:26 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GLvPdR039639; Sun, 16 Apr 2017 21:57:25 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GLvPPP039638; Sun, 16 Apr 2017 21:57:25 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201704162157.v3GLvPPP039638@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sun, 16 Apr 2017 21:57:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317038 - head/bin/sh/tests/parser X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 21:57:26 -0000 Author: jilles Date: Sun Apr 16 21:57:25 2017 New Revision: 317038 URL: https://svnweb.freebsd.org/changeset/base/317038 Log: sh: Link the new test to the build. Modified: head/bin/sh/tests/parser/Makefile Modified: head/bin/sh/tests/parser/Makefile ============================================================================== --- head/bin/sh/tests/parser/Makefile Sun Apr 16 21:42:43 2017 (r317037) +++ head/bin/sh/tests/parser/Makefile Sun Apr 16 21:57:25 2017 (r317038) @@ -23,6 +23,7 @@ ${PACKAGE}FILES+= alias13.0 ${PACKAGE}FILES+= alias14.0 ${PACKAGE}FILES+= alias15.0 alias15.0.stdout ${PACKAGE}FILES+= alias16.0 +${PACKAGE}FILES+= alias17.0 ${PACKAGE}FILES+= and-pipe-not.0 ${PACKAGE}FILES+= case1.0 ${PACKAGE}FILES+= case2.0 From owner-svn-src-all@freebsd.org Sun Apr 16 22:10:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DEBCD4050C; Sun, 16 Apr 2017 22:10:03 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 45B011E15; Sun, 16 Apr 2017 22:10:03 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3GMA2JV043793; Sun, 16 Apr 2017 22:10:02 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3GMA2mm043789; Sun, 16 Apr 2017 22:10:02 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201704162210.v3GMA2mm043789@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sun, 16 Apr 2017 22:10:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317039 - in head/bin/sh: . tests/parser X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 22:10:03 -0000 Author: jilles Date: Sun Apr 16 22:10:02 2017 New Revision: 317039 URL: https://svnweb.freebsd.org/changeset/base/317039 Log: sh: Fix use after free when resetting an in-use alias. The special case of modifying an existing alias does not work correctly if the alias is currently in use. Instead, handle this case by unaliasing the old alias (if any) and then creating a new alias. Added: head/bin/sh/tests/parser/alias18.0 (contents, props changed) Modified: head/bin/sh/alias.c head/bin/sh/tests/parser/Makefile Modified: head/bin/sh/alias.c ============================================================================== --- head/bin/sh/alias.c Sun Apr 16 21:57:25 2017 (r317038) +++ head/bin/sh/alias.c Sun Apr 16 22:10:02 2017 (r317039) @@ -63,17 +63,8 @@ setalias(const char *name, const char *v { struct alias *ap, **app; + unalias(name); app = hashalias(name); - for (ap = *app; ap; ap = ap->next) { - if (equal(name, ap->name)) { - INTOFF; - ckfree(ap->val); - ap->val = savestr(val); - INTON; - return; - } - } - /* not found */ INTOFF; ap = ckmalloc(sizeof (struct alias)); ap->name = savestr(name); Modified: head/bin/sh/tests/parser/Makefile ============================================================================== --- head/bin/sh/tests/parser/Makefile Sun Apr 16 21:57:25 2017 (r317038) +++ head/bin/sh/tests/parser/Makefile Sun Apr 16 22:10:02 2017 (r317039) @@ -24,6 +24,7 @@ ${PACKAGE}FILES+= alias14.0 ${PACKAGE}FILES+= alias15.0 alias15.0.stdout ${PACKAGE}FILES+= alias16.0 ${PACKAGE}FILES+= alias17.0 +${PACKAGE}FILES+= alias18.0 ${PACKAGE}FILES+= and-pipe-not.0 ${PACKAGE}FILES+= case1.0 ${PACKAGE}FILES+= case2.0 Added: head/bin/sh/tests/parser/alias18.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/bin/sh/tests/parser/alias18.0 Sun Apr 16 22:10:02 2017 (r317039) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +v=1 +alias a='alias a=v=2 +v=3 +a' +eval a +[ "$v" = 2 ] From owner-svn-src-all@freebsd.org Sun Apr 16 22:57:29 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2C58D4139C; Sun, 16 Apr 2017 22:57:29 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [192.108.105.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "StartCom Class 2 IV Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BACA515C7; Sun, 16 Apr 2017 22:57:29 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (bones.soaustin.net [192.108.105.22]) by mail.soaustin.net (Postfix) with ESMTPSA id 6F954EE0; Sun, 16 Apr 2017 17:57:22 -0500 (CDT) Date: Sun, 16 Apr 2017 17:57:21 -0500 From: Mark Linimon To: Ian Lepore Cc: rgrimes@FreeBSD.org, svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys Message-ID: <20170416225721.GB11983@lonesome.com> References: <201704161604.v3GG4aoq017437@pdx.rh.CN85.dnsmgr.net> <1492360559.96207.1.camel@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1492360559.96207.1.camel@freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 22:57:29 -0000 On Sun, Apr 16, 2017 at 10:35:59AM -0600, Ian Lepore wrote: > (The most basic rule would be "notify me about every new change put > up for review", which seems like it would be a real spam generator, > but at least one person uses such a rule.) I tried the latter once, as a test. I doubt many people will leave it on for long. I do find the feature very useful. A "For Dummies" writeup would have save me some time experimenting. mcl From owner-svn-src-all@freebsd.org Sun Apr 16 23:02:34 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8BB92D41608; Sun, 16 Apr 2017 23:02:34 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [192.108.105.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "StartCom Class 2 IV Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 05BD01A11; Sun, 16 Apr 2017 23:02:34 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (bones.soaustin.net [192.108.105.22]) by mail.soaustin.net (Postfix) with ESMTPSA id 3B9D3C0E; Sun, 16 Apr 2017 18:02:33 -0500 (CDT) Date: Sun, 16 Apr 2017 18:02:32 -0500 From: Mark Linimon To: Conrad Meyer Cc: "Rodney W. Grimes" , svn-src-head@freebsd.org, Baptiste Daroussin , src-committers , svn-src-all@freebsd.org Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd Message-ID: <20170416230232.GC11983@lonesome.com> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 23:02:34 -0000 On Sat, Apr 15, 2017 at 05:01:10PM -0700, Conrad Meyer wrote: > Can you tone down the condescension, Rod? Being rude doesn't help you > make your case. I'm going to have to +1 this. We're a huge community now. Comments that might be appropriate among a handful of people aren't as appropriate now. Add in all the different (human) languages and cultures, and we have a hard enough time commmunicating as it is. mcl From owner-svn-src-all@freebsd.org Sun Apr 16 23:42:10 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 639FDD41E75 for ; Sun, 16 Apr 2017 23:42:10 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x22a.google.com (mail-io0-x22a.google.com [IPv6:2607:f8b0:4001:c06::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2C450B86 for ; Sun, 16 Apr 2017 23:42:10 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x22a.google.com with SMTP id k87so116693128ioi.0 for ; Sun, 16 Apr 2017 16:42:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=kdWKAScu/OlSNFyYhZpJK60Qa/nKo9c/8aN2V74WNwM=; b=AtNi9Cyd5juWV1k1cu+XqA26UvQSE2VNQT3ioOZmni6TBXaxe6UHUo0qSywf/F54Xy kKW20nsI89nA9vVpHwxxYEem9xmomCqEyjUefGllbalESG6zMdkKfeBtLP5KPFMiY2an UihK2/6vkLskVKRmr4S99QVf1aMJVZW4ZrInnETZwUtdQP3RbGgqkOQbfT5/sSCPVu3S qBBsLpG6bXQLNIYNXOYuIUx8gX2VTCpsRwvmSaDYhG/XZHYXnikthS7Z5OrApl6sA9cv 1ut7fJbbRISZhBgKyyrArcxjpRWxHcMLZJCF54jD3mN1KyODEV9nPGfisQTyWzrwsLRn gX/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=kdWKAScu/OlSNFyYhZpJK60Qa/nKo9c/8aN2V74WNwM=; b=tzLi8Ix8CJl4h1NrYomZoMoV837ac2g9D/7PUWIaFP45UDdWJaVvslyzfqIlkIyjDd P+kxb/SrM9tTkOQdcyLpwPQbstt2H5qH6JQuvLKwVtHuSyymEsl4mjlVMi0INSz6C4JG Ovw1zq4K4dVcnewKNun7cv3nDF/lj9uwNSQNiM+adY5AVZy+iF7H4PH1eGrwsEyccH6k DAZvqZdieadykodYbNEAsa5pAhIn2km8cC1XWBD/DGHppP5VH992YggnrHtYC7h4rCUH CjMHHQwAuNGEhFglBHzvzltj7rkjpG3oWn4JQYe1LvbemhHT6ItgTM1LTbV3XnZq3SF4 rssQ== X-Gm-Message-State: AN3rC/7eS+tYqE82KJ7drtQupvZbGDmUnZ1Fgsgm3lO+VxcV9AZ7WUEX YBm3nFX5tlAAXDC7swfwuJuBWTrXeA== X-Received: by 10.36.44.14 with SMTP id i14mr7388699iti.103.1492386129513; Sun, 16 Apr 2017 16:42:09 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.146.69 with HTTP; Sun, 16 Apr 2017 16:42:09 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:88c0:1b6b:e9c9:dca7] In-Reply-To: <1492360559.96207.1.camel@freebsd.org> References: <201704161604.v3GG4aoq017437@pdx.rh.CN85.dnsmgr.net> <1492360559.96207.1.camel@freebsd.org> From: Warner Losh Date: Sun, 16 Apr 2017 17:42:09 -0600 X-Google-Sender-Auth: 4kCfnbdfohdNnbQVZtiS5JoVwUk Message-ID: Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys To: Ian Lepore Cc: rgrimes@freebsd.org, src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 23:42:10 -0000 On Sun, Apr 16, 2017 at 10:35 AM, Ian Lepore wrote: > On Sun, 2017-04-16 at 09:04 -0700, Rodney W. Grimes wrote: >> What watch list is this? And do we have a watch list that is just "New Phabricator >> created" so we can make just that incident go to some mailling list so people stop >> getting caught off guard by commits that have been reviews that they wish they had >> even known there was a review? We just need a way for being allerted there is a >> new review that we *might* be interested, or care to participate in without being >> on all the watch lists. > > Sounds like you need to learn about the Herald feature of Phab and set > yourself up some rules. (The most basic rule would be "notify me about > every new change put up for review", which seems like it would be a > real spam generator, but at least one person uses such a rule.) I'm not that crazy: just all src reviews :). And it's quite handy if you can quickly drop 'don't care' reviews while you're scanning through the spam :) Warner From owner-svn-src-all@freebsd.org Mon Apr 17 01:02:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3884ED32E8D; Mon, 17 Apr 2017 01:02:54 +0000 (UTC) (envelope-from mahrens@gmail.com) Received: from mail-vk0-x235.google.com (mail-vk0-x235.google.com [IPv6:2607:f8b0:400c:c05::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DF60D1928; Mon, 17 Apr 2017 01:02:53 +0000 (UTC) (envelope-from mahrens@gmail.com) Received: by mail-vk0-x235.google.com with SMTP id j127so48504336vkh.0; Sun, 16 Apr 2017 18:02:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=7fU2u2jl6tWKFVZ9Easz8hsmMNOxlY9te70plXg2xLI=; b=Io6uyfsKoLAUQRO5qIygvPMB+vxH+z8XnXpN/qKn9qIfe2E7rwxgZxVTvp3HXxZM+L z0iA7dPX92e6cNgS/iXxC7ad/818lVleWi0qtakqdoZ3ii3lk0I/4uYCcF6GnuLZhIrY 8UPGNuiVCGQ7VDoK/55vUWvrOJ3en2jGGkjvK7R6G3ULBfv68ZfcoA1RVJvl7UJayD/y oS+vtyxf7hVIpemLHE8zkok6NoXO+/bw7pWHmDGX0hQqJ4AmepbnaG9o+JzzqX6NgK1/ L1+JsZAucGc91xvMV6apKDbABUEEweuoTLj6kaQD1gb1nICkXfzlZST/Clw0juJtk8cT AVkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=7fU2u2jl6tWKFVZ9Easz8hsmMNOxlY9te70plXg2xLI=; b=IShvMHoo69CHqJMd54J1pEUxoLcP8DX9bwPyELp/bZTGHJidkyifS3SywgLSBAbkNN NDZKDO9XZX5WKfu209VkVA96EuCV+10bZzW9H9mEulQr9Y+aXcd9fyH7MPSlHUhAHXtx gZDgyVl8iBBuJYj5DkIs4fxPFx8MDlstZETAj4F8EbyfjPoRDdf+0OSt5lInlie7bJAJ FfJ4gvSqIXkbsKAGr55nI0zq4bCnOs/iz4jmTYGHvfXkI2yVTNEXiu+7MaRHhZuTyfI7 cIP7MCBFV8KkeSJZQSfCf6zQE+7rRS5aLllD06Jhn44ehEtF7zmmQIeZmOKOpXfexQs7 tI2g== X-Gm-Message-State: AN3rC/7xoDc108Nt2P4uPSWvBfaA/Sa9wN59zFxjAd4Pv3Odzm/HSe/C pjrn5c0p7UgpI/ksONrC1oqfD/FnXAqws58= X-Received: by 10.31.157.130 with SMTP id g124mr7235416vke.139.1492390972384; Sun, 16 Apr 2017 18:02:52 -0700 (PDT) MIME-Version: 1.0 Sender: mahrens@gmail.com Received: by 10.176.80.18 with HTTP; Sun, 16 Apr 2017 18:02:52 -0700 (PDT) In-Reply-To: <20170416073551.557czdcksdmmuz24@ivaldir.net> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> <20170416073551.557czdcksdmmuz24@ivaldir.net> From: Matthew Ahrens Date: Sun, 16 Apr 2017 18:02:52 -0700 X-Google-Sender-Auth: 5GBv-HAU3rbcsir5bccEU2ZrCjE Message-ID: Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd To: Baptiste Daroussin Cc: rgrimes@freebsd.org, "src-committers@freebsd.org" , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 01:02:54 -0000 On Sun, Apr 16, 2017 at 12:35 AM, Baptiste Daroussin wrote: > > zstandard is the successor to lz4, That's not my understanding. zstandard is an improvement in every respect over zlib (gzip), but lz4 is faster, especially at decompression[*]. If you have data to the contrary I'd be happy to be wrong, but AFAIK, lz4 will retain its usefulness for some time, at least for ZFS. there are attempts to integrate zstandard in > ZFS, Allan Jude is working on that, That's great, I look forward to it! --matt [*] According to the zstandard github page, lz4 is 1.5x faster at compression and 3x faster at decompression. https://github.com/facebook/zstd From owner-svn-src-all@freebsd.org Mon Apr 17 03:15:24 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63F56D4028A; Mon, 17 Apr 2017 03:15:24 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 2DA83892; Mon, 17 Apr 2017 03:15:23 +0000 (UTC) (envelope-from des@des.no) Received: from desk.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 49BA2FB15; Mon, 17 Apr 2017 03:15:17 +0000 (UTC) Received: by desk.des.no (Postfix, from userid 1001) id 1808B426A; Mon, 17 Apr 2017 05:15:18 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Mark R V Murray Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys References: <201704160911.v3G9B3df023095@repo.freebsd.org> <86lgr09mt0.fsf@desk.des.no> Date: Mon, 17 Apr 2017 05:15:17 +0200 In-Reply-To: (Mark R. V. Murray's message of "Sun, 16 Apr 2017 22:17:37 +0100") Message-ID: <86bmrvafne.fsf@desk.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 03:15:24 -0000 Mark R V Murray writes: > "Dubious legal status"? Please go and look at the chacha that OpenSSH use= s. > You will find it strangely familiar. I know exactly where that code comes from. It lacks a proper license. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@freebsd.org Mon Apr 17 04:35:15 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67714D41DC9; Mon, 17 Apr 2017 04:35:15 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 445D4195D; Mon, 17 Apr 2017 04:35:15 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from Xins-MacBook-Pro.local (ip-64-134-178-180.public.wayport.net [64.134.178.180]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id 784EA2E10E; Sun, 16 Apr 2017 21:35:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1492403715; x=1492418115; bh=aRJiT37hLvsYFVitlMiJC94pIHA6Fyb/eRtVJYOyf+s=; h=Cc:Subject:To:References:From:Date:In-Reply-To; b=A1Od69+ZTVJF/7xJOabbdYIoLE7/mV+DO4LBb4jwHzxelkaDpa28u5nXEH5XTCd1h UuSYJltxw2e3+MQyvG+6TzBPQ/lm1nbo/wNAxI+B4PnQJk11gPhBFs7pumVIM4U87p JJrRcl+2fq1xIjp9n38FYoCdya2xSU40Gs+ibPkU= Cc: d@delphij.net, src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys To: rgrimes@freebsd.org, Mark R V Murray References: <201704161230.v3GCUujl016578@pdx.rh.CN85.dnsmgr.net> From: Xin Li Message-ID: Date: Mon, 17 Apr 2017 00:35:10 -0400 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: <201704161230.v3GCUujl016578@pdx.rh.CN85.dnsmgr.net> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="dTuQLg0JkVfFFEBSOEmOpKLbQJRxxq7SF" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 04:35:15 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --dTuQLg0JkVfFFEBSOEmOpKLbQJRxxq7SF Content-Type: multipart/mixed; boundary="bwRDKMbUGeHxcAG2WQ4Tu8b8LqcgqABN1"; protected-headers="v1" From: Xin Li To: rgrimes@freebsd.org, Mark R V Murray Cc: d@delphij.net, src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys References: <201704161230.v3GCUujl016578@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201704161230.v3GCUujl016578@pdx.rh.CN85.dnsmgr.net> --bwRDKMbUGeHxcAG2WQ4Tu8b8LqcgqABN1 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 4/16/17 08:30, Rodney W. Grimes wrote: >> >>> On 16 Apr 2017, at 13:07, Rodney W. Grimes wrote: >>> >>>>> From replacing the rc4 algorithm with chacha20, this chalice has no= w >>>> become poisoned with the job of redesigning the entire structure of >>>> kernel random-number generation. >>>> >>>> This may take a while, and I'm already behind on RNG jobs. >>> >>> I do not see how this is a complete redesign of RNG, and if it is >>> such a heart ache to change algorithms in this code then it probably >>> should be redesigned? >> >> The RC4 algorithm is standard. Making the alogorithm pluggable means m= ore >> code, more testing and more time (time which I am rather short of). >=20 > I would rather see a proper implementation later, than a poor design > decision today. I don't see how not supporting pluggable algorithm for the kernel arc4andom() a poor design decision. We are supposed to make good algorithm choices, making it pluggable would only make the code much more bloated (to make the load/unload PRNG seeding right), less efficient (to allow caller to safely call the interfaces) for something that system administrators should never fiddle with. Cheers, --bwRDKMbUGeHxcAG2WQ4Tu8b8LqcgqABN1-- --dTuQLg0JkVfFFEBSOEmOpKLbQJRxxq7SF Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIcBAEBCgAGBQJY9EYBAAoJEJW2GBstM+ns4vUP/jj025mSLy1zEdkdJQcrRsSv 5mfbfk1u9JLD5aFl2o876hLebe6d5xUwRZWYHL0JUSTO6SpoWODp/Qs66A93ZGbg GL7gnX3JD7A9hd1U1f5sY6uGCm3wOc2Y26gZIBk2PaO8MEe2ulBnWnAuQ8EiYVlx l4dE1pkXltRJVwujllFGJIhYnCbrpwz0nSFlRcWz5skbA5ALuTEpEgfkG4qhb63i zmKouALnpuN+XtJMTJc6044+8BCHKNyP6oxfqKcNB4AV709TRIpa61uQh1BhyYSl 1ucbHYH0WsJmVTMaXLzSZ1tjkdwIlwbCLbauduSW25VruEWTUqRA+/QBcRgtKTcI 71uhiUK4RSv/g35FeKOVVYYaXDx38uEuJ1cvlY5217RUk4jpfyk+ytw/k2+5b6X3 hI3+05MEQAYgSJeWwtNVEd3QsR3WNLDD/zdQ0o39eq08Rms7KklfixDp08mYDTRT 8ljKeCwFvtMkGC3NzviCX81JC0YpfgNkIPYqpLPQODRqPk4vNMc2ga1fbmWl1fJm m4eeg5Q1P9E586tZYx0UcHeBkOWIXLX0d/6y3HZz1c9EpDOzwsPB8aksguSEXzLS MNVQ333/2I9bmSrTGheYng/9jkCVfe+v2DQ/gD7TM5FrQtz+KfvERoVX5iHloL/L Y925PzaPBdRG3BF9jZsm =v3CT -----END PGP SIGNATURE----- --dTuQLg0JkVfFFEBSOEmOpKLbQJRxxq7SF-- From owner-svn-src-all@freebsd.org Mon Apr 17 05:18:20 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 252C9D40EED; Mon, 17 Apr 2017 05:18:20 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.allbsd.org", Issuer "RapidSSL SHA256 CA - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A84E810CD; Mon, 17 Apr 2017 05:18:19 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail-d.allbsd.org (p2027-ipbf1605funabasi.chiba.ocn.ne.jp [123.225.191.27]) (authenticated bits=56) by mail.allbsd.org (8.15.2/8.15.2) with ESMTPSA id v3H5HkbG052733 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) (Client CN "/OU=GT07882699/OU=See+20www.rapidssl.com/resources/cps+20+28c+2915/OU=Domain+20Control+20Validated+20-+20RapidSSL+28R+29/CN=*.allbsd.org", Issuer "/C=US/O=GeoTrust+20Inc./CN=RapidSSL+20SHA256+20CA+20-+20G3"); Mon, 17 Apr 2017 14:18:05 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from alph.allbsd.org (alph.allbsd.org [192.168.0.10]) by mail-d.allbsd.org (8.15.2/8.15.2) with ESMTPS id v3H5GU1T064052 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 17 Apr 2017 14:16:30 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.allbsd.org (8.15.2/8.15.2) with ESMTPA id v3H5GSah064049; Mon, 17 Apr 2017 14:16:28 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Mon, 17 Apr 2017 14:16:06 +0900 (JST) Message-Id: <20170417.141606.1653550433426676222.hrs@allbsd.org> To: sobomax@freebsd.org Cc: ohartmann@walstatt.org, ler@lerctr.org, peter@wemm.org, src-committers@freebsd.org, svn-src-all@freebsd.org, hiren@freebsd.org, svn-src-head@freebsd.org, yaneurabeya@gmail.com Subject: Re: svn commit: r316874 - head/sys/kern From: Hiroki Sato In-Reply-To: References: <5B7F917E-EA2A-4DB4-B032-48BBBEDD7556@lerctr.org> <20170415174533.3dd6349a@thor.intern.walstatt.dynvpn.de> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.7 on Emacs 25.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart(Mon_Apr_17_14_16_06_2017_524)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.99 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender DNS name whitelisted, not delayed by milter-greylist-4.4.3 (mail.allbsd.org [133.31.130.32]); Mon, 17 Apr 2017 14:18:08 +0900 (JST) X-Spam-Status: No, score=-99.9 required=13.0 tests=CONTENT_TYPE_PRESENT, QENCPTR1,USER_IN_WHITELIST autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on gatekeeper.allbsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 05:18:20 -0000 ----Security_Multipart(Mon_Apr_17_14_16_06_2017_524)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Maxim Sobolev wrote in : so> I've committed another fix for the syslogd code in question which should so> hopefully make it functional again. Peter, please let me know if you still so> having any issues. Thanks! I am sorry for being late and thank you for fixing the breakage in the refactored code. I tried not to change the original code path but it seemed I added some bugs. I will double-check and clean up them. -- Hiroki ----Security_Multipart(Mon_Apr_17_14_16_06_2017_524)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEABECAAYFAlj0T5YACgkQTyzT2CeTzy02HgCgoPYSr8dJ5dzFkPBYcMEUVaLy upsAniLNZHi8kxsrPGeN9W9kscZSRlEy =y/A3 -----END PGP SIGNATURE----- ----Security_Multipart(Mon_Apr_17_14_16_06_2017_524)---- From owner-svn-src-all@freebsd.org Mon Apr 17 07:27:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D66FD42408; Mon, 17 Apr 2017 07:27:47 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0945ED36; Mon, 17 Apr 2017 07:27:46 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3H7Rkhr068864; Mon, 17 Apr 2017 07:27:46 GMT (envelope-from ganbold@FreeBSD.org) Received: (from ganbold@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3H7RkPx068863; Mon, 17 Apr 2017 07:27:46 GMT (envelope-from ganbold@FreeBSD.org) Message-Id: <201704170727.v3H7RkPx068863@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ganbold set sender to ganbold@FreeBSD.org using -f From: Ganbold Tsagaankhuu Date: Mon, 17 Apr 2017 07:27:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317040 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 07:27:47 -0000 Author: ganbold Date: Mon Apr 17 07:27:45 2017 New Revision: 317040 URL: https://svnweb.freebsd.org/changeset/base/317040 Log: Belatedly add myself to committers-src.dot file. Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot ============================================================================== --- head/share/misc/committers-src.dot Sun Apr 16 22:10:02 2017 (r317039) +++ head/share/misc/committers-src.dot Mon Apr 17 07:27:45 2017 (r317040) @@ -169,6 +169,7 @@ flz [label="Florent Thoumie\nflz@FreeBSD gabor [label="Gabor Kovesdan\ngabor@FreeBSD.org\n2010/02/02"] gad [label="Garance A. Drosehn\ngad@FreeBSD.org\n2000/10/27"] gallatin [label="Andrew Gallatin\ngallatin@FreeBSD.org\n1999/01/15"] +ganbold [label="Ganbold Tsagaankhuu\nganbold@FreeBSD.org\n2013/12/18"] gavin [label="Gavin Atkinson\ngavin@FreeBSD.org\n2009/12/07"] gibbs [label="Justin T. Gibbs\ngibbs@FreeBSD.org\n????/??/??"] gjb [label="Glen Barber\ngjb@FreeBSD.org\n2013/06/04"] @@ -772,6 +773,8 @@ sjg -> stevek sos -> marcel +stas -> ganbold + theraven -> phil thompsa -> weongyo From owner-svn-src-all@freebsd.org Mon Apr 17 09:00:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20B51D4183F; Mon, 17 Apr 2017 09:00:22 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D9748A5F; Mon, 17 Apr 2017 09:00:21 +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 v3H90LGH005619; Mon, 17 Apr 2017 09:00:21 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3H90K98005617; Mon, 17 Apr 2017 09:00:20 GMT (envelope-from np@FreeBSD.org) Message-Id: <201704170900.v3H90K98005617@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Mon, 17 Apr 2017 09:00:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317041 - head/sys/dev/cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 09:00:22 -0000 Author: np Date: Mon Apr 17 09:00:20 2017 New Revision: 317041 URL: https://svnweb.freebsd.org/changeset/base/317041 Log: cxgbe: Add tunables to control the number of LRO entries and the number of rx mbufs that should be presorted before LRO. There is no change in default behavior. MFC after: 1 week Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/adapter.h head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/adapter.h ============================================================================== --- head/sys/dev/cxgbe/adapter.h Mon Apr 17 07:27:45 2017 (r317040) +++ head/sys/dev/cxgbe/adapter.h Mon Apr 17 09:00:20 2017 (r317041) @@ -322,6 +322,7 @@ enum { IQ_HAS_FL = (1 << 1), /* iq associated with a freelist */ IQ_INTR = (1 << 2), /* iq takes direct interrupt */ IQ_LRO_ENABLED = (1 << 3), /* iq is an eth rxq with LRO enabled */ + IQ_ADJ_CREDIT = (1 << 4), /* hw is off by 1 credit for this iq */ /* iq state */ IQS_DISABLED = 0, Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Mon Apr 17 07:27:45 2017 (r317040) +++ head/sys/dev/cxgbe/t4_sge.c Mon Apr 17 09:00:20 2017 (r317041) @@ -157,6 +157,18 @@ TUNABLE_INT("hw.cxgbe.safest_rx_cluster" static int tscale = 1; TUNABLE_INT("hw.cxgbe.tscale", &tscale); +/* + * Number of LRO entries in the lro_ctrl structure per rx queue. + */ +static int lro_entries = TCP_LRO_ENTRIES; +TUNABLE_INT("hw.cxgbe.lro_entries", &lro_entries); + +/* + * This enables presorting of frames before they're fed into tcp_lro_rx. + */ +static int lro_mbufs = 0; +TUNABLE_INT("hw.cxgbe.lro_mbufs", &lro_mbufs); + struct txpkts { u_int wr_type; /* type 0 or type 1 */ u_int npkt; /* # of packets in this work request */ @@ -1380,6 +1392,13 @@ t4_vi_intr(void *arg) t4_intr(irq->rxq); } +static inline int +sort_before_lro(struct lro_ctrl *lro) +{ + + return (lro->lro_mbuf_max != 0); +} + /* * Deals with anything and everything on the given ingress queue. */ @@ -1399,6 +1418,7 @@ service_iq(struct sge_iq *iq, int budget STAILQ_HEAD(, sge_iq) iql = STAILQ_HEAD_INITIALIZER(iql); #if defined(INET) || defined(INET6) const struct timeval lro_timeout = {0, sc->lro_timeout}; + struct lro_ctrl *lro = &rxq->lro; #endif KASSERT(iq->state == IQS_BUSY, ("%s: iq %p not BUSY", __func__, iq)); @@ -1413,6 +1433,23 @@ service_iq(struct sge_iq *iq, int budget fl_hw_cidx = 0; /* to silence gcc warning */ } +#if defined(INET) || defined(INET6) + if (iq->flags & IQ_ADJ_CREDIT) { + MPASS(sort_before_lro(lro)); + iq->flags &= ~IQ_ADJ_CREDIT; + if ((d->rsp.u.type_gen & F_RSPD_GEN) != iq->gen) { + tcp_lro_flush_all(lro); + t4_write_reg(sc, sc->sge_gts_reg, V_CIDXINC(1) | + V_INGRESSQID((u32)iq->cntxt_id) | + V_SEINTARM(iq->intr_params)); + return (0); + } + ndescs = 1; + } +#else + MPASS((iq->flags & IQ_ADJ_CREDIT) == 0); +#endif + /* * We always come back and check the descriptor ring for new indirect * interrupts and other responses after running a single handler. @@ -1524,8 +1561,9 @@ service_iq(struct sge_iq *iq, int budget #if defined(INET) || defined(INET6) if (iq->flags & IQ_LRO_ENABLED && + !sort_before_lro(lro) && sc->lro_timeout != 0) { - tcp_lro_flush_inactive(&rxq->lro, + tcp_lro_flush_inactive(lro, &lro_timeout); } #endif @@ -1565,9 +1603,14 @@ process_iql: #if defined(INET) || defined(INET6) if (iq->flags & IQ_LRO_ENABLED) { - struct lro_ctrl *lro = &rxq->lro; - - tcp_lro_flush_all(lro); + if (ndescs > 0 && lro->lro_mbuf_count > 8) { + MPASS(sort_before_lro(lro)); + /* hold back one credit and don't flush LRO state */ + iq->flags |= IQ_ADJ_CREDIT; + ndescs--; + } else { + tcp_lro_flush_all(lro); + } } #endif @@ -1856,10 +1899,14 @@ t4_eth_rx(struct sge_iq *iq, const struc } #if defined(INET) || defined(INET6) - if (iq->flags & IQ_LRO_ENABLED && - tcp_lro_rx(lro, m0, 0) == 0) { - /* queued for LRO */ - } else + if (iq->flags & IQ_LRO_ENABLED) { + if (sort_before_lro(lro)) { + tcp_lro_queue_mbuf(lro, m0); + return (0); /* queued for sort, then LRO */ + } + if (tcp_lro_rx(lro, m0, 0) == 0) + return (0); /* queued for LRO */ + } #endif ifp->if_input(ifp, m0); @@ -3050,10 +3097,10 @@ alloc_rxq(struct vi_info *vi, struct sge FL_UNLOCK(&rxq->fl); #if defined(INET) || defined(INET6) - rc = tcp_lro_init(&rxq->lro); + rc = tcp_lro_init_args(&rxq->lro, vi->ifp, lro_entries, lro_mbufs); if (rc != 0) return (rc); - rxq->lro.ifp = vi->ifp; /* also indicates LRO init'ed */ + MPASS(rxq->lro.ifp == vi->ifp); /* also indicates LRO init'ed */ if (vi->ifp->if_capenable & IFCAP_LRO) rxq->iq.flags |= IQ_LRO_ENABLED; From owner-svn-src-all@freebsd.org Mon Apr 17 09:34:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E72E3D3F1E8; Mon, 17 Apr 2017 09:34:11 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A4F5BDEF; Mon, 17 Apr 2017 09:34:11 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3H9YAbf021517; Mon, 17 Apr 2017 09:34:10 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3H9Y9ni021507; Mon, 17 Apr 2017 09:34:09 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704170934.v3H9Y9ni021507@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 17 Apr 2017 09:34:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317042 - in stable/11/sys: net netpfil/ipfw X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 09:34:12 -0000 Author: ae Date: Mon Apr 17 09:34:09 2017 New Revision: 317042 URL: https://svnweb.freebsd.org/changeset/base/317042 Log: MFC r316461: Remove "IPFW static rules" rmlock. Make PFIL's lock global and use it for this purpose. This reduces the number of locks needed to acquire for each packet. Obtained from: Yandex LLC Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D10154 Modified: stable/11/sys/net/pfil.c stable/11/sys/net/pfil.h stable/11/sys/netpfil/ipfw/ip_fw2.c stable/11/sys/netpfil/ipfw/ip_fw_dynamic.c stable/11/sys/netpfil/ipfw/ip_fw_iface.c stable/11/sys/netpfil/ipfw/ip_fw_nat.c stable/11/sys/netpfil/ipfw/ip_fw_private.h stable/11/sys/netpfil/ipfw/ip_fw_sockopt.c stable/11/sys/netpfil/ipfw/ip_fw_table.c stable/11/sys/netpfil/ipfw/ip_fw_table_value.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/net/pfil.c ============================================================================== --- stable/11/sys/net/pfil.c Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/net/pfil.c Mon Apr 17 09:34:09 2017 (r317042) @@ -61,7 +61,6 @@ LIST_HEAD(pfilheadhead, pfil_head); VNET_DEFINE(struct pfilheadhead, pfil_head_list); #define V_pfil_head_list VNET(pfil_head_list) VNET_DEFINE(struct rmlock, pfil_lock); -#define V_pfil_lock VNET(pfil_lock) #define PFIL_LOCK_INIT_REAL(l, t) \ rm_init_flags(l, "PFil " t " rmlock", RM_RECURSE) Modified: stable/11/sys/net/pfil.h ============================================================================== --- stable/11/sys/net/pfil.h Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/net/pfil.h Mon Apr 17 09:34:09 2017 (r317042) @@ -38,6 +38,7 @@ #include #include #include +#include struct mbuf; struct ifnet; @@ -94,6 +95,9 @@ struct pfil_head { LIST_ENTRY(pfil_head) ph_list; }; +VNET_DECLARE(struct rmlock, pfil_lock); +#define V_pfil_lock VNET(pfil_lock) + /* Public functions for pfil hook management by packet filters. */ struct pfil_head *pfil_head_get(int, u_long); int pfil_add_hook(pfil_func_t, void *, int, struct pfil_head *); Modified: stable/11/sys/netpfil/ipfw/ip_fw2.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw2.c Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/netpfil/ipfw/ip_fw2.c Mon Apr 17 09:34:09 2017 (r317042) @@ -992,7 +992,6 @@ ipfw_chk(struct ip_fw_args *args) int is_ipv4 = 0; int done = 0; /* flag to exit the outer loop */ - IPFW_RLOCK_TRACKER; if (m->m_flags & M_SKIP_FIREWALL || (! V_ipfw_vnet_ready)) return (IP_FW_PASS); /* accept */ Modified: stable/11/sys/netpfil/ipfw/ip_fw_dynamic.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_dynamic.c Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/netpfil/ipfw/ip_fw_dynamic.c Mon Apr 17 09:34:09 2017 (r317042) @@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$"); #include /* for ETHERTYPE_IP */ #include #include +#include #include #include Modified: stable/11/sys/netpfil/ipfw/ip_fw_iface.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_iface.c Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/netpfil/ipfw/ip_fw_iface.c Mon Apr 17 09:34:09 2017 (r317042) @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: stable/11/sys/netpfil/ipfw/ip_fw_nat.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_nat.c Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/netpfil/ipfw/ip_fw_nat.c Mon Apr 17 09:34:09 2017 (r317042) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include Modified: stable/11/sys/netpfil/ipfw/ip_fw_private.h ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_private.h Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/netpfil/ipfw/ip_fw_private.h Mon Apr 17 09:34:09 2017 (r317042) @@ -272,8 +272,6 @@ struct ip_fw_chain { void **srvstate; /* runtime service mappings */ #if defined( __linux__ ) || defined( _WIN32 ) spinlock_t rwmtx; -#else - struct rmlock rwmtx; #endif int static_len; /* total len of static rules (v0) */ uint32_t gencnt; /* NAT generation count */ @@ -414,25 +412,23 @@ struct ipfw_ifc { #define IPFW_PF_RUNLOCK(p) IPFW_RUNLOCK(p) #else /* FreeBSD */ #define IPFW_LOCK_INIT(_chain) do { \ - rm_init_flags(&(_chain)->rwmtx, "IPFW static rules", RM_RECURSE); \ rw_init(&(_chain)->uh_lock, "IPFW UH lock"); \ } while (0) #define IPFW_LOCK_DESTROY(_chain) do { \ - rm_destroy(&(_chain)->rwmtx); \ rw_destroy(&(_chain)->uh_lock); \ } while (0) -#define IPFW_RLOCK_ASSERT(_chain) rm_assert(&(_chain)->rwmtx, RA_RLOCKED) -#define IPFW_WLOCK_ASSERT(_chain) rm_assert(&(_chain)->rwmtx, RA_WLOCKED) +#define IPFW_RLOCK_ASSERT(_chain) rm_assert(&V_pfil_lock, RA_RLOCKED) +#define IPFW_WLOCK_ASSERT(_chain) rm_assert(&V_pfil_lock, RA_WLOCKED) #define IPFW_RLOCK_TRACKER struct rm_priotracker _tracker -#define IPFW_RLOCK(p) rm_rlock(&(p)->rwmtx, &_tracker) -#define IPFW_RUNLOCK(p) rm_runlock(&(p)->rwmtx, &_tracker) -#define IPFW_WLOCK(p) rm_wlock(&(p)->rwmtx) -#define IPFW_WUNLOCK(p) rm_wunlock(&(p)->rwmtx) -#define IPFW_PF_RLOCK(p) IPFW_RLOCK(p) -#define IPFW_PF_RUNLOCK(p) IPFW_RUNLOCK(p) +#define IPFW_RLOCK(p) rm_rlock(&V_pfil_lock, &_tracker) +#define IPFW_RUNLOCK(p) rm_runlock(&V_pfil_lock, &_tracker) +#define IPFW_WLOCK(p) rm_wlock(&V_pfil_lock) +#define IPFW_WUNLOCK(p) rm_wunlock(&V_pfil_lock) +#define IPFW_PF_RLOCK(p) +#define IPFW_PF_RUNLOCK(p) #endif #define IPFW_UH_RLOCK_ASSERT(_chain) rw_assert(&(_chain)->uh_lock, RA_RLOCKED) Modified: stable/11/sys/netpfil/ipfw/ip_fw_sockopt.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_sockopt.c Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/netpfil/ipfw/ip_fw_sockopt.c Mon Apr 17 09:34:09 2017 (r317042) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/11/sys/netpfil/ipfw/ip_fw_table.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_table.c Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/netpfil/ipfw/ip_fw_table.c Mon Apr 17 09:34:09 2017 (r317042) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include /* ip_fw.h requires IFNAMSIZ */ +#include #include #include /* struct ipfw_rule_ref */ Modified: stable/11/sys/netpfil/ipfw/ip_fw_table_value.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_table_value.c Mon Apr 17 09:00:20 2017 (r317041) +++ stable/11/sys/netpfil/ipfw/ip_fw_table_value.c Mon Apr 17 09:34:09 2017 (r317042) @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include /* ip_fw.h requires IFNAMSIZ */ +#include #include #include /* struct ipfw_rule_ref */ From owner-svn-src-all@freebsd.org Mon Apr 17 09:36:37 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A654D3F444; Mon, 17 Apr 2017 09:36:37 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EB05BFDB; Mon, 17 Apr 2017 09:36:36 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3H9aavd021753; Mon, 17 Apr 2017 09:36:36 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3H9aZqw021749; Mon, 17 Apr 2017 09:36:35 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704170936.v3H9aZqw021749@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 17 Apr 2017 09:36: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: r317043 - in stable/11: sbin/ipfw sys/netinet sys/netpfil/ipfw X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 09:36:37 -0000 Author: ae Date: Mon Apr 17 09:36:35 2017 New Revision: 317043 URL: https://svnweb.freebsd.org/changeset/base/317043 Log: MFC r316434: Add O_EXTERNAL_DATA opcode support. This opcode can be used to attach some data to external action opcode. And unlike to O_EXTERNAL_INSTANCE opcode, this opcode does not require creating of named instance to pass configuration arguments to external action handler. The data is coming just next to O_EXTERNAL_ACTION opcode. The userlevel part currenly supports formatting for opcode with ipfw_insn size, by default it expects u16 numeric value in the arg1. Obtained from: Yandex LLC Sponsored by: Yandex LLC Modified: stable/11/sbin/ipfw/ipfw2.c stable/11/sys/netinet/ip_fw.h stable/11/sys/netpfil/ipfw/ip_fw_eaction.c stable/11/sys/netpfil/ipfw/ip_fw_sockopt.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/ipfw/ipfw2.c ============================================================================== --- stable/11/sbin/ipfw/ipfw2.c Mon Apr 17 09:34:09 2017 (r317042) +++ stable/11/sbin/ipfw/ipfw2.c Mon Apr 17 09:36:35 2017 (r317043) @@ -1642,6 +1642,22 @@ show_static_rule(struct cmdline_opts *co break; } + case O_EXTERNAL_DATA: { + if (has_eaction == NULL) + break; + /* + * Currently we support data formatting only for + * external data with datalen u16. For unknown data + * print its size in bytes. + */ + if (cmd->len == F_INSN_SIZE(ipfw_insn)) + bprintf(bp, " %u", cmd->arg1); + else + bprintf(bp, " %ubytes", + cmd->len * sizeof(uint32_t)); + break; + } + case O_SETDSCP: { const char *code; Modified: stable/11/sys/netinet/ip_fw.h ============================================================================== --- stable/11/sys/netinet/ip_fw.h Mon Apr 17 09:34:09 2017 (r317042) +++ stable/11/sys/netinet/ip_fw.h Mon Apr 17 09:36:35 2017 (r317043) @@ -281,6 +281,7 @@ enum ipfw_opcodes { /* arguments (4 byt O_EXTERNAL_ACTION, /* arg1=id of external action handler */ O_EXTERNAL_INSTANCE, /* arg1=id of eaction handler instance */ + O_EXTERNAL_DATA, /* variable length data */ O_LAST_OPCODE /* not an opcode! */ }; Modified: stable/11/sys/netpfil/ipfw/ip_fw_eaction.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_eaction.c Mon Apr 17 09:34:09 2017 (r317042) +++ stable/11/sys/netpfil/ipfw/ip_fw_eaction.c Mon Apr 17 09:36:35 2017 (r317043) @@ -1,6 +1,6 @@ /*- - * Copyright (c) 2016 Yandex LLC - * Copyright (c) 2016 Andrey V. Elsukov + * Copyright (c) 2016-2017 Yandex LLC + * Copyright (c) 2016-2017 Andrey V. Elsukov * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -57,7 +57,7 @@ __FBSDID("$FreeBSD$"); * rules. * Module should implement opcode handler with type ipfw_eaction_t. * This handler will be called by ipfw_chk() function when - * O_EXTERNAL_ACTION opcode will be matched. The handler must return + * O_EXTERNAL_ACTION opcode is matched. The handler must return * value used as return value in ipfw_chk(), i.e. IP_FW_PASS, * IP_FW_DENY (see ip_fw_private.h). * Also the last argument must be set by handler. If it is zero, @@ -69,9 +69,12 @@ __FBSDID("$FreeBSD$"); * This function will return eaction_id, that can be used by module. * * It is possible to pass some additional information to external - * action handler via the O_EXTERNAL_INSTANCE opcode. This opcode - * will be next after the O_EXTERNAL_ACTION opcode. cmd->arg1 will - * contain index of named object related to instance of external action. + * action handler using O_EXTERNAL_INSTANCE and O_EXTERNAL_DATA opcodes. + * Such opcodes should be next after the O_EXTERNAL_ACTION opcode. + * For the O_EXTERNAL_INSTANCE opcode the cmd->arg1 contains index of named + * object related to an instance of external action. + * For the O_EXTERNAL_DATA opcode the cmd contains the data that can be used + * by external action handler without needing to create named instance. * * In case when eaction module uses named instances, it should register * opcode rewriting routines for O_EXTERNAL_INSTANCE opcode. The @@ -284,11 +287,13 @@ reset_eaction_obj(struct ip_fw_chain *ch /* * Since named_object related to this instance will be * also destroyed, truncate the chain of opcodes to - * remove O_EXTERNAL_INSTANCE opcode. + * remove the rest of cmd chain just after O_EXTERNAL_ACTION + * opcode. */ if (rule->act_ofs < rule->cmd_len - 1) { - EACTION_DEBUG("truncate rule %d", rule->rulenum); - rule->cmd_len--; + EACTION_DEBUG("truncate rule %d: len %u -> %u", + rule->rulenum, rule->cmd_len, rule->act_ofs + 1); + rule->cmd_len = rule->act_ofs + 1; } } IPFW_WUNLOCK(ch); Modified: stable/11/sys/netpfil/ipfw/ip_fw_sockopt.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_sockopt.c Mon Apr 17 09:34:09 2017 (r317042) +++ stable/11/sys/netpfil/ipfw/ip_fw_sockopt.c Mon Apr 17 09:36:35 2017 (r317043) @@ -1737,11 +1737,16 @@ check_ipfw_rule_body(ipfw_insn *cmd, int return (EINVAL); } ci->object_opcodes++; - /* Do we have O_EXTERNAL_INSTANCE opcode? */ + /* + * Do we have O_EXTERNAL_INSTANCE or O_EXTERNAL_DATA + * opcode? + */ if (l != cmdlen) { l -= cmdlen; cmd += cmdlen; cmdlen = F_LEN(cmd); + if (cmd->opcode == O_EXTERNAL_DATA) + goto check_action; if (cmd->opcode != O_EXTERNAL_INSTANCE) { printf("ipfw: invalid opcode " "next to external action %u\n", @@ -2619,11 +2624,11 @@ unref_rule_objects(struct ip_fw_chain *c continue; no = rw->find_bykidx(ch, kidx); - KASSERT(no != NULL, ("table id %d not found", kidx)); + KASSERT(no != NULL, ("object id %d not found", kidx)); KASSERT(no->subtype == subtype, - ("wrong type %d (%d) for table id %d", + ("wrong type %d (%d) for object id %d", no->subtype, subtype, kidx)); - KASSERT(no->refcnt > 0, ("refcount for table %d is %d", + KASSERT(no->refcnt > 0, ("refcount for object %d is %d", kidx, no->refcnt)); if (no->refcnt == 1 && rw->destroy_object != NULL) From owner-svn-src-all@freebsd.org Mon Apr 17 09:38:16 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94CE0D3F543; Mon, 17 Apr 2017 09:38:16 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 63F341163; Mon, 17 Apr 2017 09:38:16 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3H9cFOu021869; Mon, 17 Apr 2017 09:38:15 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3H9cF0o021868; Mon, 17 Apr 2017 09:38:15 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704170938.v3H9cF0o021868@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 17 Apr 2017 09:38: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: r317044 - stable/11/sys/netpfil/ipfw X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 09:38:16 -0000 Author: ae Date: Mon Apr 17 09:38:15 2017 New Revision: 317044 URL: https://svnweb.freebsd.org/changeset/base/317044 Log: MFC r316433: Add the log formatting for an external action opcode. Obtained from: Yandex LLC Sponsored by: Yandex LLC Modified: stable/11/sys/netpfil/ipfw/ip_fw_log.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netpfil/ipfw/ip_fw_log.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_log.c Mon Apr 17 09:36:35 2017 (r317043) +++ stable/11/sys/netpfil/ipfw/ip_fw_log.c Mon Apr 17 09:38:15 2017 (r317044) @@ -264,6 +264,11 @@ ipfw_log(struct ip_fw_chain *chain, stru snprintf(SNPARGS(action2, 0), "Call %d", cmd->arg1); break; + case O_EXTERNAL_ACTION: + snprintf(SNPARGS(action2, 0), "Eaction %s", + ((struct named_object *)SRV_OBJECT(chain, + cmd->arg1))->name); + break; default: action = "UNKNOWN"; break; From owner-svn-src-all@freebsd.org Mon Apr 17 09:42:07 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67BE8D3F749; Mon, 17 Apr 2017 09:42:07 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 44F3815F7; Mon, 17 Apr 2017 09:42:07 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3H9g6EK025578; Mon, 17 Apr 2017 09:42:06 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3H9g5JQ025570; Mon, 17 Apr 2017 09:42:05 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704170942.v3H9g5JQ025570@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 17 Apr 2017 09:42: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: r317045 - in stable/11: sbin/ipfw sys/conf sys/modules sys/modules/ipfw_pmod sys/netpfil/ipfw/pmod X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 09:42:07 -0000 Author: ae Date: Mon Apr 17 09:42:05 2017 New Revision: 317045 URL: https://svnweb.freebsd.org/changeset/base/317045 Log: MFC r316435: Add ipfw_pmod kernel module. The module is designed for modification of a packets of any protocols. For now it implements only TCP MSS modification. It adds the external action handler for "tcp-setmss" action. A rule with tcp-setmss action does additional check for protocol and TCP flags. If SYN flag is present, it parses TCP options and modifies MSS option if its value is greater than configured value in the rule. Then it adjustes TCP checksum if needed. After handling the search continues with the next rule. Obtained from: Yandex LLC Relnotes: yes Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D10150 Added: stable/11/sys/modules/ipfw_pmod/ - copied from r316435, head/sys/modules/ipfw_pmod/ stable/11/sys/netpfil/ipfw/pmod/ - copied from r316435, head/sys/netpfil/ipfw/pmod/ Modified: stable/11/sbin/ipfw/ipfw.8 stable/11/sbin/ipfw/ipfw2.c stable/11/sbin/ipfw/ipfw2.h stable/11/sys/conf/NOTES stable/11/sys/conf/files stable/11/sys/conf/options stable/11/sys/modules/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/ipfw/ipfw.8 ============================================================================== --- stable/11/sbin/ipfw/ipfw.8 Mon Apr 17 09:38:15 2017 (r317044) +++ stable/11/sbin/ipfw/ipfw.8 Mon Apr 17 09:42:05 2017 (r317045) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 15, 2017 +.Dd April 3, 2017 .Dt IPFW 8 .Os .Sh NAME @@ -1118,6 +1118,20 @@ It is also possible to use the keyword with setdscp. If the tablearg value is not within the 0..64 range, lower 6 bits of supplied value are used. +.It Cm tcp-setmss Ar mss +Set the Maximum Segment Size (MSS) in the TCP segment to value +.Ar mss . +The kernel module +.Cm ipfw_pmod +should be loaded or kernel should have +.Cm options IPFIREWALL_PMOD +to be able use this action. +This command does not change a packet if original MSS value is lower than +specified value. +Both TCP over IPv4 and over IPv6 are supported. +Regardless of matched a packet or not by the +.Cm tcp-setmss +rule, the search continues with the next rule. .It Cm reass Queue and reassemble IP fragments. If the packet is not fragmented, counters are updated and Modified: stable/11/sbin/ipfw/ipfw2.c ============================================================================== --- stable/11/sbin/ipfw/ipfw2.c Mon Apr 17 09:38:15 2017 (r317044) +++ stable/11/sbin/ipfw/ipfw2.c Mon Apr 17 09:42:05 2017 (r317045) @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -238,6 +239,7 @@ static struct _s_x rule_eactions[] = { { "nat64lsn", TOK_NAT64LSN }, { "nat64stl", TOK_NAT64STL }, { "nptv6", TOK_NPTV6 }, + { "tcp-setmss", TOK_TCPSETMSS }, { NULL, 0 } /* terminator */ }; @@ -272,6 +274,7 @@ static struct _s_x rule_actions[] = { { "call", TOK_CALL }, { "return", TOK_RETURN }, { "eaction", TOK_EACTION }, + { "tcp-setmss", TOK_TCPSETMSS }, { NULL, 0 } /* terminator */ }; @@ -4007,6 +4010,26 @@ chkarg: fill_cmd(action, O_CALLRETURN, F_NOT, 0); break; + case TOK_TCPSETMSS: { + u_long mss; + uint16_t idx; + + idx = pack_object(tstate, "tcp-setmss", IPFW_TLV_EACTION); + if (idx == 0) + errx(EX_DATAERR, "pack_object failed"); + fill_cmd(action, O_EXTERNAL_ACTION, 0, idx); + NEED1("Missing MSS value"); + action = next_cmd(action, &ablen); + action->len = 1; + CHECK_ACTLEN; + mss = strtoul(*av, NULL, 10); + if (mss == 0 || mss > UINT16_MAX) + errx(EX_USAGE, "invalid MSS value %s", *av); + fill_cmd(action, O_EXTERNAL_DATA, 0, (uint16_t)mss); + av++; + break; + } + default: av--; if (match_token(rule_eactions, *av) == -1) Modified: stable/11/sbin/ipfw/ipfw2.h ============================================================================== --- stable/11/sbin/ipfw/ipfw2.h Mon Apr 17 09:38:15 2017 (r317044) +++ stable/11/sbin/ipfw/ipfw2.h Mon Apr 17 09:42:05 2017 (r317045) @@ -284,6 +284,8 @@ enum tokens { TOK_INTPREFIX, TOK_EXTPREFIX, TOK_PREFIXLEN, + + TOK_TCPSETMSS, }; /* Modified: stable/11/sys/conf/NOTES ============================================================================== --- stable/11/sys/conf/NOTES Mon Apr 17 09:38:15 2017 (r317044) +++ stable/11/sys/conf/NOTES Mon Apr 17 09:42:05 2017 (r317045) @@ -957,6 +957,9 @@ device lagg # # IPFIREWALL_NPTV6 adds support for in kernel NPTv6 in ipfw. # +# IPFIREWALL_PMOD adds support for protocols modification module. Currently +# it supports only TCP MSS modification. +# # IPSTEALTH enables code to support stealth forwarding (i.e., forwarding # packets without touching the TTL). This can be useful to hide firewalls # from traceroute and similar tools. Modified: stable/11/sys/conf/files ============================================================================== --- stable/11/sys/conf/files Mon Apr 17 09:38:15 2017 (r317044) +++ stable/11/sys/conf/files Mon Apr 17 09:42:05 2017 (r317045) @@ -4006,6 +4006,8 @@ netpfil/ipfw/nptv6/ip_fw_nptv6.c optiona ipfirewall_nptv6 netpfil/ipfw/nptv6/nptv6.c optional inet inet6 ipfirewall \ ipfirewall_nptv6 +netpfil/ipfw/pmod/ip_fw_pmod.c optional inet ipfirewall_pmod +netpfil/ipfw/pmod/tcpmod.c optional inet ipfirewall_pmod netpfil/pf/if_pflog.c optional pflog pf inet netpfil/pf/if_pfsync.c optional pfsync pf inet netpfil/pf/pf.c optional pf inet Modified: stable/11/sys/conf/options ============================================================================== --- stable/11/sys/conf/options Mon Apr 17 09:38:15 2017 (r317044) +++ stable/11/sys/conf/options Mon Apr 17 09:42:05 2017 (r317045) @@ -424,6 +424,7 @@ IPFIREWALL_NAT64_DIRECT_OUTPUT opt_ipfw. IPFIREWALL_NPTV6 opt_ipfw.h IPFIREWALL_VERBOSE opt_ipfw.h IPFIREWALL_VERBOSE_LIMIT opt_ipfw.h +IPFIREWALL_PMOD opt_ipfw.h IPSEC opt_ipsec.h IPSEC_DEBUG opt_ipsec.h IPSEC_SUPPORT opt_ipsec.h Modified: stable/11/sys/modules/Makefile ============================================================================== --- stable/11/sys/modules/Makefile Mon Apr 17 09:38:15 2017 (r317044) +++ stable/11/sys/modules/Makefile Mon Apr 17 09:42:05 2017 (r317045) @@ -176,6 +176,7 @@ SUBDIR= \ ipfw_nat \ ${_ipfw_nat64} \ ${_ipfw_nptv6} \ + ${_ipfw_pmod} \ ${_ipmi} \ ip6_mroute_mod \ ip_mroute_mod \ @@ -460,6 +461,7 @@ _toecore= toecore _if_enc= if_enc _if_gif= if_gif _if_gre= if_gre +_ipfw_pmod= ipfw_pmod .if ${MK_IPSEC_SUPPORT} != "no" _ipsec= ipsec _tcpmd5= tcp/tcpmd5 From owner-svn-src-all@freebsd.org Mon Apr 17 13:01:43 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C725CD41E13; Mon, 17 Apr 2017 13:01:43 +0000 (UTC) (envelope-from garga@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9766F783; Mon, 17 Apr 2017 13:01:43 +0000 (UTC) (envelope-from garga@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HD1gCP005443; Mon, 17 Apr 2017 13:01:42 GMT (envelope-from garga@FreeBSD.org) Received: (from garga@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HD1gds005440; Mon, 17 Apr 2017 13:01:42 GMT (envelope-from garga@FreeBSD.org) Message-Id: <201704171301.v3HD1gds005440@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: garga set sender to garga@FreeBSD.org using -f From: Renato Botelho Date: Mon, 17 Apr 2017 13:01:42 +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: r317048 - stable/11/usr.sbin/arp X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 13:01:43 -0000 Author: garga (ports committer) Date: Mon Apr 17 13:01:42 2017 New Revision: 317048 URL: https://svnweb.freebsd.org/changeset/base/317048 Log: MFC r316592: Introduce libxo support to arp(8) Reviewed by: wblock, gnn, allanjude, phil Approved by: allanjude Sponsored by: Rubicon Communications (Netgate) Differential Revision: https://reviews.freebsd.org/D9563 Modified: stable/11/usr.sbin/arp/Makefile stable/11/usr.sbin/arp/arp.8 stable/11/usr.sbin/arp/arp.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/arp/Makefile ============================================================================== --- stable/11/usr.sbin/arp/Makefile Mon Apr 17 12:42:58 2017 (r317047) +++ stable/11/usr.sbin/arp/Makefile Mon Apr 17 13:01:42 2017 (r317048) @@ -4,6 +4,8 @@ PROG= arp MAN= arp.4 arp.8 +LIBADD= xo + WARNS?= 3 .include Modified: stable/11/usr.sbin/arp/arp.8 ============================================================================== --- stable/11/usr.sbin/arp/arp.8 Mon Apr 17 12:42:58 2017 (r317047) +++ stable/11/usr.sbin/arp/arp.8 Mon Apr 17 13:01:42 2017 (r317048) @@ -28,7 +28,7 @@ .\" @(#)arp.8 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd January 31, 2013 +.Dd April 6, 2017 .Dt ARP 8 .Os .Sh NAME @@ -36,10 +36,12 @@ .Nd address resolution display and control .Sh SYNOPSIS .Nm +.Op Fl -libxo Ar options .Op Fl n .Op Fl i Ar interface .Ar hostname .Nm +.Op Fl -libxo Ar options .Op Fl n .Op Fl i Ar interface .Fl a @@ -77,6 +79,13 @@ using Internet dot notation. .Pp Available options: .Bl -tag -width indent +.It Fl -libxo +Generate output via +.Xr libxo 3 +in a selection of different human and machine readable formats. +See +.Xr xo_parse_args 3 +for details on command line arguments. .It Fl a The program displays or deletes all of the current .Tn ARP @@ -182,6 +191,8 @@ character will mark the rest of the line .El .Sh SEE ALSO .Xr inet 3 , +.Xr libxo 3 , +.Xr xo_parse_args 3 , .Xr arp 4 , .Xr ifconfig 8 , .Xr ndp 8 Modified: stable/11/usr.sbin/arp/arp.c ============================================================================== --- stable/11/usr.sbin/arp/arp.c Mon Apr 17 12:42:58 2017 (r317047) +++ stable/11/usr.sbin/arp/arp.c Mon Apr 17 13:01:42 2017 (r317048) @@ -78,6 +78,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include typedef void (action_fn)(struct sockaddr_dl *sdl, struct sockaddr_in *s_in, struct rt_msghdr *rtm); @@ -114,6 +115,8 @@ struct if_nameindex *ifnameindex; #define SETFUNC(f) { if (func) usage(); func = (f); } +#define ARP_XO_VERSION "1" + int main(int argc, char *argv[]) { @@ -121,6 +124,10 @@ main(int argc, char *argv[]) int rtn = 0; int aflag = 0; /* do it for all entries */ + argc = xo_parse_args(argc, argv); + if (argc < 0) + exit(1); + while ((ch = getopt(argc, argv, "andfsSi:")) != -1) switch(ch) { case 'a': @@ -155,12 +162,13 @@ main(int argc, char *argv[]) func = F_GET; if (rifname) { if (func != F_GET && !(func == F_DELETE && aflag)) - errx(1, "-i not applicable to this operation"); + xo_errx(1, "-i not applicable to this operation"); if (if_nametoindex(rifname) == 0) { if (errno == ENXIO) - errx(1, "interface %s does not exist", rifname); + xo_errx(1, "interface %s does not exist", + rifname); else - err(1, "if_nametoindex(%s)", rifname); + xo_err(1, "if_nametoindex(%s)", rifname); } } switch (func) { @@ -168,7 +176,16 @@ main(int argc, char *argv[]) if (aflag) { if (argc != 0) usage(); + + xo_set_version(ARP_XO_VERSION); + xo_open_container("arp"); + xo_open_list("arp-cache"); + search(0, print_entry); + + xo_close_list("arp-cache"); + xo_close_container("arp"); + xo_finish(); } else { if (argc != 1) usage(); @@ -218,7 +235,7 @@ file(char *name) char line[100], arg[5][50], *args[5], *p; if ((fp = fopen(name, "r")) == NULL) - err(1, "cannot open %s", name); + xo_err(1, "cannot open %s", name); args[0] = &arg[0][0]; args[1] = &arg[1][0]; args[2] = &arg[2][0]; @@ -234,7 +251,7 @@ file(char *name) i = sscanf(p, "%49s %49s %49s %49s %49s", arg[0], arg[1], arg[2], arg[3], arg[4]); if (i < 2) { - warnx("bad line: %s", line); + xo_warnx("bad line: %s", line); retval = 1; continue; } @@ -262,7 +279,7 @@ getaddr(char *host) reply.sin_addr.s_addr = inet_addr(host); if (reply.sin_addr.s_addr == INADDR_NONE) { if (!(hp = gethostbyname(host))) { - warnx("%s: %s", host, hstrerror(h_errno)); + xo_warnx("%s: %s", host, hstrerror(h_errno)); return (NULL); } bcopy((char *)hp->h_addr, (char *)&reply.sin_addr, @@ -327,7 +344,7 @@ set(int argc, char **argv) clock_gettime(CLOCK_MONOTONIC, &tp); if (sysctlbyname("net.link.ether.inet.max_age", &max_age, &len, NULL, 0) != 0) - err(1, "sysctlbyname"); + xo_err(1, "sysctlbyname"); expire_time = tp.tv_sec + max_age; } else if (strcmp(argv[0], "pub") == 0) { flags |= RTF_ANNOUNCE; @@ -343,18 +360,18 @@ set(int argc, char **argv) } } else if (strcmp(argv[0], "blackhole") == 0) { if (flags & RTF_REJECT) { - errx(1, "Choose one of blackhole or reject, " + xo_errx(1, "Choose one of blackhole or reject, " "not both."); } flags |= RTF_BLACKHOLE; } else if (strcmp(argv[0], "reject") == 0) { if (flags & RTF_BLACKHOLE) { - errx(1, "Choose one of blackhole or reject, " + xo_errx(1, "Choose one of blackhole or reject, " "not both."); } flags |= RTF_REJECT; } else { - warnx("Invalid parameter '%s'", argv[0]); + xo_warnx("Invalid parameter '%s'", argv[0]); usage(); } argv++; @@ -362,7 +379,7 @@ set(int argc, char **argv) ea = (struct ether_addr *)LLADDR(&sdl_m); if (doing_proxy && !strcmp(eaddr, "auto")) { if (!get_ether_addr(dst->sin_addr.s_addr, ea)) { - warnx("no interface found for %s", + xo_warnx("no interface found for %s", inet_ntoa(dst->sin_addr)); return (1); } @@ -371,7 +388,7 @@ set(int argc, char **argv) struct ether_addr *ea1 = ether_aton(eaddr); if (ea1 == NULL) { - warnx("invalid Ethernet address '%s'", eaddr); + xo_warnx("invalid Ethernet address '%s'", eaddr); return (1); } else { *ea = *ea1; @@ -389,7 +406,7 @@ set(int argc, char **argv) */ rtm = rtmsg(RTM_GET, dst, &sdl_m); if (rtm == NULL) { - warn("%s", host); + xo_warn("%s", host); return (1); } addr = (struct sockaddr_in *)(rtm + 1); @@ -398,7 +415,7 @@ set(int argc, char **argv) if ((sdl->sdl_family != AF_LINK) || (rtm->rtm_flags & RTF_GATEWAY) || !valid_type(sdl->sdl_type)) { - warnx("cannot intuit interface index and type for %s", host); + xo_warnx("cannot intuit interface index and type for %s", host); return (1); } sdl_m.sdl_type = sdl->sdl_type; @@ -413,19 +430,31 @@ static int get(char *host) { struct sockaddr_in *addr; + int found; addr = getaddr(host); if (addr == NULL) return (1); - if (0 == search(addr->sin_addr.s_addr, print_entry)) { - printf("%s (%s) -- no entry", + + xo_set_version(ARP_XO_VERSION); + xo_open_container("arp"); + xo_open_list("arp-cache"); + + found = search(addr->sin_addr.s_addr, print_entry); + + if (found == 0) { + xo_emit("{d:hostname/%s} ({d:ip-address/%s}) -- no entry", host, inet_ntoa(addr->sin_addr)); if (rifname) - printf(" on %s", rifname); - printf("\n"); - return (1); + xo_emit(" on {d:interface/%s}", rifname); + xo_emit("\n"); } - return (0); + + xo_close_list("arp-cache"); + xo_close_container("arp"); + xo_finish(); + + return (found == 0); } /* @@ -460,7 +489,7 @@ delete(char *host) for (;;) { /* try twice */ rtm = rtmsg(RTM_GET, dst, &sdl_m); if (rtm == NULL) { - warn("%s", host); + xo_warn("%s", host); return (1); } addr = (struct sockaddr_in *)(rtm + 1); @@ -486,7 +515,7 @@ delete(char *host) * is a proxy-arp entry to remove. */ if (flags & RTF_ANNOUNCE) { - warnx("delete: cannot locate %s", host); + xo_warnx("delete: cannot locate %s", host); return (1); } @@ -527,21 +556,21 @@ search(u_long addr, action_fn *action) mib[5] = 0; #endif if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0) - err(1, "route-sysctl-estimate"); + xo_err(1, "route-sysctl-estimate"); if (needed == 0) /* empty table */ return 0; buf = NULL; for (;;) { buf = reallocf(buf, needed); if (buf == NULL) - errx(1, "could not reallocate memory"); + xo_errx(1, "could not reallocate memory"); st = sysctl(mib, 6, buf, &needed, NULL, 0); if (st == 0 || errno != ENOMEM) break; needed += needed / 8; } if (st == -1) - err(1, "actual retrieval of routing table"); + xo_err(1, "actual retrieval of routing table"); lim = buf + needed; for (next = buf; next < lim; next += rtm->rtm_msglen) { rtm = (struct rt_msghdr *)next; @@ -577,7 +606,9 @@ print_entry(struct sockaddr_dl *sdl, if (ifnameindex == NULL) if ((ifnameindex = if_nameindex()) == NULL) - err(1, "cannot retrieve interface names"); + xo_err(1, "cannot retrieve interface names"); + + xo_open_instance("arp-cache"); if (nflag == 0) hp = gethostbyaddr((caddr_t)&(addr->sin_addr), @@ -591,82 +622,87 @@ print_entry(struct sockaddr_dl *sdl, if (h_errno == TRY_AGAIN) nflag = 1; } - printf("%s (%s) at ", host, inet_ntoa(addr->sin_addr)); + xo_emit("{:hostname/%s} ({:ip-address/%s}) at ", host, + inet_ntoa(addr->sin_addr)); if (sdl->sdl_alen) { if ((sdl->sdl_type == IFT_ETHER || sdl->sdl_type == IFT_L2VLAN || sdl->sdl_type == IFT_BRIDGE) && sdl->sdl_alen == ETHER_ADDR_LEN) - printf("%s", + xo_emit("{:mac-address/%s}", ether_ntoa((struct ether_addr *)LLADDR(sdl))); else { int n = sdl->sdl_nlen > 0 ? sdl->sdl_nlen + 1 : 0; - printf("%s", link_ntoa(sdl) + n); + xo_emit("{:mac-address/%s}", link_ntoa(sdl) + n); } } else - printf("(incomplete)"); + xo_emit("{d:/(incomplete)}{en:incomplete/true}"); for (p = ifnameindex; p && ifnameindex->if_index && ifnameindex->if_name; p++) { if (p->if_index == sdl->sdl_index) { - printf(" on %s", p->if_name); + xo_emit(" on {:interface/%s}", p->if_name); break; } } if (rtm->rtm_rmx.rmx_expire == 0) - printf(" permanent"); + xo_emit("{d:/ permanent}{en:permanent/true}"); else { static struct timespec tp; if (tp.tv_sec == 0) clock_gettime(CLOCK_MONOTONIC, &tp); if ((expire_time = rtm->rtm_rmx.rmx_expire - tp.tv_sec) > 0) - printf(" expires in %d seconds", (int)expire_time); + xo_emit(" expires in {:expires/%d} seconds", + (int)expire_time); else - printf(" expired"); + xo_emit("{d:/ expired}{en:expired/true}"); } + if (rtm->rtm_flags & RTF_ANNOUNCE) - printf(" published"); + xo_emit("{d:/ published}{en:published/true}"); + switch(sdl->sdl_type) { case IFT_ETHER: - printf(" [ethernet]"); + xo_emit(" [{:type/ethernet}]"); break; case IFT_ISO88025: - printf(" [token-ring]"); + xo_emit(" [{:type/token-ring}]"); trld = SDL_ISO88025(sdl); if (trld->trld_rcf != 0) { - printf(" rt=%x", ntohs(trld->trld_rcf)); + xo_emit(" rt=%x", ntohs(trld->trld_rcf)); for (seg = 0; seg < ((TR_RCF_RIFLEN(trld->trld_rcf) - 2 ) / 2); seg++) - printf(":%x", ntohs(*(trld->trld_route[seg]))); + xo_emit(":%x", ntohs(*(trld->trld_route[seg]))); } break; case IFT_FDDI: - printf(" [fddi]"); + xo_emit(" [{:type/fddi}]"); break; case IFT_ATM: - printf(" [atm]"); + xo_emit(" [{:type/atm}]"); break; case IFT_L2VLAN: - printf(" [vlan]"); + xo_emit(" [{:type/vlan}]"); break; case IFT_IEEE1394: - printf(" [firewire]"); + xo_emit(" [{:type/firewire}]"); break; case IFT_BRIDGE: - printf(" [bridge]"); + xo_emit(" [{:type/bridge}]"); break; case IFT_INFINIBAND: - printf(" [infiniband]"); + xo_emit(" [{:type/infiniband}]"); break; default: break; } - printf("\n"); + xo_emit("\n"); + xo_close_instance("arp-cache"); } /* @@ -720,7 +756,7 @@ rtmsg(int cmd, struct sockaddr_in *dst, if (s < 0) { /* first time: open socket, get pid */ s = socket(PF_ROUTE, SOCK_RAW, 0); if (s < 0) - err(1, "socket"); + xo_err(1, "socket"); pid = getpid(); } bzero(&so_mask, sizeof(so_mask)); @@ -740,7 +776,7 @@ rtmsg(int cmd, struct sockaddr_in *dst, switch (cmd) { default: - errx(1, "internal wrong cmd"); + xo_errx(1, "internal wrong cmd"); case RTM_ADD: rtm->rtm_addrs |= RTA_GATEWAY; rtm->rtm_rmx.rmx_expire = expire_time; @@ -773,7 +809,7 @@ doit: rtm->rtm_type = cmd; if ((rlen = write(s, (char *)&m_rtmsg, l)) < 0) { if (errno != ESRCH || cmd != RTM_DELETE) { - warn("writing to routing socket"); + xo_warn("writing to routing socket"); return (NULL); } } @@ -781,7 +817,7 @@ doit: l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg)); } while (l > 0 && (rtm->rtm_seq != seq || rtm->rtm_pid != pid)); if (l < 0) - warn("read from routing socket"); + xo_warn("read from routing socket"); return (rtm); } @@ -805,12 +841,12 @@ get_ether_addr(in_addr_t ipaddr, struct sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) - err(1, "socket"); + xo_err(1, "socket"); ifc.ifc_len = sizeof(ifs); ifc.ifc_req = ifs; if (ioctl(sock, SIOCGIFCONF, &ifc) < 0) { - warnx("ioctl(SIOCGIFCONF)"); + xo_warnx("ioctl(SIOCGIFCONF)"); goto done; } From owner-svn-src-all@freebsd.org Mon Apr 17 13:14:20 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1D1CD41674; Mon, 17 Apr 2017 13:14:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 60172EE; Mon, 17 Apr 2017 13:14:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HDEJ7R011985; Mon, 17 Apr 2017 13:14:19 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HDEI7K011979; Mon, 17 Apr 2017 13:14:18 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704171314.v3HDEI7K011979@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 13:14:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317049 - head/usr.bin/grep X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 13:14:20 -0000 Author: emaste Date: Mon Apr 17 13:14:18 2017 New Revision: 317049 URL: https://svnweb.freebsd.org/changeset/base/317049 Log: bsdgrep: add -z/--null-data support -z treats input and output data as sequences of lines terminated by a zero byte instead of a newline. This brings it more in line with GNU grep and brings us closer to passing the current tests with BSD grep. Submitted by: Kyle Evans Reviewed by: cem Relnotes: Yes Differential Revision: https://reviews.freebsd.org/D10101 Modified: head/usr.bin/grep/file.c head/usr.bin/grep/grep.1 head/usr.bin/grep/grep.c head/usr.bin/grep/grep.h head/usr.bin/grep/util.c Modified: head/usr.bin/grep/file.c ============================================================================== --- head/usr.bin/grep/file.c Mon Apr 17 13:01:42 2017 (r317048) +++ head/usr.bin/grep/file.c Mon Apr 17 13:14:18 2017 (r317049) @@ -197,7 +197,7 @@ grep_fgetln(struct file *f, size_t *lenp } /* Look for a newline in the remaining part of the buffer */ - if ((p = memchr(bufpos, '\n', bufrem)) != NULL) { + if ((p = memchr(bufpos, fileeol, bufrem)) != NULL) { ++p; /* advance over newline */ ret = bufpos; len = p - bufpos; @@ -219,7 +219,7 @@ grep_fgetln(struct file *f, size_t *lenp if (bufrem == 0) /* EOF: return partial line */ break; - if ((p = memchr(bufpos, '\n', bufrem)) == NULL && + if ((p = memchr(bufpos, fileeol, bufrem)) == NULL && filebehave != FILE_MMAP) continue; if (p == NULL) { @@ -322,7 +322,8 @@ grep_open(const char *path) goto error2; /* Check for binary stuff, if necessary */ - if (binbehave != BINFILE_TEXT && memchr(bufpos, '\0', bufrem) != NULL) + if (binbehave != BINFILE_TEXT && fileeol != '\0' && + memchr(bufpos, '\0', bufrem) != NULL) f->binary = true; return (f); Modified: head/usr.bin/grep/grep.1 ============================================================================== --- head/usr.bin/grep/grep.1 Mon Apr 17 13:01:42 2017 (r317048) +++ head/usr.bin/grep/grep.1 Mon Apr 17 13:14:18 2017 (r317049) @@ -30,7 +30,7 @@ .\" .\" @(#)grep.1 8.3 (Berkeley) 4/18/94 .\" -.Dd July 28, 2010 +.Dd April 17, 2017 .Dt GREP 1 .Os .Sh NAME @@ -40,7 +40,7 @@ .Sh SYNOPSIS .Nm grep .Bk -words -.Op Fl abcdDEFGHhIiJLlmnOopqRSsUVvwxZ +.Op Fl abcdDEFGHhIiJLlmnOopqRSsUVvwxZz .Op Fl A Ar num .Op Fl B Ar num .Op Fl C Ns Op Ar num @@ -378,7 +378,10 @@ expression are considered to be matching Equivalent to .Fl i . Obsoleted. -.It Fl Z , Fl z , Fl Fl decompress +.It Fl z , Fl Fl null-data +Treat input and output data as sequences of lines terminated by a +zero-byte instead of a newline. +.It Fl Z , Fl Fl decompress Force .Nm grep to behave as Modified: head/usr.bin/grep/grep.c ============================================================================== --- head/usr.bin/grep/grep.c Mon Apr 17 13:01:42 2017 (r317048) +++ head/usr.bin/grep/grep.c Mon Apr 17 13:14:18 2017 (r317049) @@ -66,7 +66,7 @@ const char *errstr[] = { /* 1*/ "(standard input)", /* 2*/ "cannot read bzip2 compressed file", /* 3*/ "unknown %s option", -/* 4*/ "usage: %s [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZ] [-A num] [-B num] [-C[num]]\n", +/* 4*/ "usage: %s [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZz] [-A num] [-B num] [-C[num]]\n", /* 5*/ "\t[-e pattern] [-f file] [--binary-files=value] [--color=when]\n", /* 6*/ "\t[--context[=num]] [--directories=action] [--label] [--line-buffered]\n", /* 7*/ "\t[--null] [pattern] [file ...]\n", @@ -109,6 +109,7 @@ bool lflag; /* -l: only show names of bool mflag; /* -m x: stop reading the files after x matches */ long long mcount; /* count for -m */ long long mlimit; /* requested value for -m */ +char fileeol; /* indicator for eol */ bool nflag; /* -n: show line numbers in front of matching lines */ bool oflag; /* -o: print only matching part */ bool qflag; /* -q: quiet mode (don't output anything) */ @@ -165,7 +166,7 @@ usage(void) exit(2); } -static const char *optstr = "0123456789A:B:C:D:EFGHIJMLOPSRUVZabcd:e:f:hilm:nopqrsuvwxXy"; +static const char *optstr = "0123456789A:B:C:D:EFGHIJMLOPSRUVZabcd:e:f:hilm:nopqrsuvwxXyz"; static const struct option long_options[] = { @@ -215,6 +216,7 @@ static const struct option long_options[ {"word-regexp", no_argument, NULL, 'w'}, {"line-regexp", no_argument, NULL, 'x'}, {"xz", no_argument, NULL, 'X'}, + {"null-data", no_argument, NULL, 'z'}, {"decompress", no_argument, NULL, 'Z'}, {NULL, no_argument, NULL, 0} }; @@ -384,6 +386,7 @@ main(int argc, char *argv[]) newarg = 1; prevoptind = 1; needpattern = 1; + fileeol = '\n'; eopts = getenv("GREP_OPTIONS"); @@ -605,6 +608,9 @@ main(int argc, char *argv[]) case 'X': filebehave = FILE_XZ; break; + case 'z': + fileeol = '\0'; + break; case 'Z': filebehave = FILE_GZIP; break; Modified: head/usr.bin/grep/grep.h ============================================================================== --- head/usr.bin/grep/grep.h Mon Apr 17 13:01:42 2017 (r317048) +++ head/usr.bin/grep/grep.h Mon Apr 17 13:14:18 2017 (r317049) @@ -116,6 +116,7 @@ extern bool dexclude, dinclude, fexclud extern unsigned long long Aflag, Bflag; extern long long mcount; extern long long mlimit; +extern char fileeol; extern char *label; extern const char *color; extern int binbehave, devbehave, dirbehave, filebehave, grepbehave, linkbehave; Modified: head/usr.bin/grep/util.c ============================================================================== --- head/usr.bin/grep/util.c Mon Apr 17 13:01:42 2017 (r317048) +++ head/usr.bin/grep/util.c Mon Apr 17 13:14:18 2017 (r317049) @@ -221,7 +221,7 @@ procfile(const char *fn) else break; } - if (ln.len > 0 && ln.dat[ln.len - 1] == '\n') + if (ln.len > 0 && ln.dat[ln.len - 1] == fileeol) --ln.len; ln.line_no++; @@ -530,6 +530,6 @@ printline(struct str *line, int sep, reg } } else { fwrite(line->dat, line->len, 1, stdout); - putchar('\n'); + putchar(fileeol); } } From owner-svn-src-all@freebsd.org Mon Apr 17 13:22:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8EA98D4196A; Mon, 17 Apr 2017 13:22:41 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4BC2A8DB; Mon, 17 Apr 2017 13:22:41 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HDMedZ015975; Mon, 17 Apr 2017 13:22:40 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HDMeZE015971; Mon, 17 Apr 2017 13:22:40 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704171322.v3HDMeZE015971@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 13:22:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317050 - in head/usr.bin/grep: . tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 13:22:41 -0000 Author: emaste Date: Mon Apr 17 13:22:39 2017 New Revision: 317050 URL: https://svnweb.freebsd.org/changeset/base/317050 Log: bsdgrep: for -r, use the working directory if none specified This is more sensible than the previous behaviour of grepping stdin, and matches newer GNU grep behaviour. PR: 216307 Submitted by: Kyle Evans Reviewed by: cem, emaste, ngie Relnotes: Yes Differential Revision: https://reviews.freebsd.org/ Added: head/usr.bin/grep/tests/grep_freebsd_test.sh (contents, props changed) Modified: head/usr.bin/grep/grep.c head/usr.bin/grep/tests/Makefile head/usr.bin/grep/util.c Modified: head/usr.bin/grep/grep.c ============================================================================== --- head/usr.bin/grep/grep.c Mon Apr 17 13:14:18 2017 (r317049) +++ head/usr.bin/grep/grep.c Mon Apr 17 13:22:39 2017 (r317050) @@ -738,7 +738,7 @@ main(int argc, char *argv[]) if ((aargc == 0 || aargc == 1) && !Hflag) hflag = true; - if (aargc == 0) + if (aargc == 0 && dirbehave != DIR_RECURSE) exit(!procfile("-")); if (dirbehave == DIR_RECURSE) Modified: head/usr.bin/grep/tests/Makefile ============================================================================== --- head/usr.bin/grep/tests/Makefile Mon Apr 17 13:14:18 2017 (r317049) +++ head/usr.bin/grep/tests/Makefile Mon Apr 17 13:22:39 2017 (r317050) @@ -2,6 +2,7 @@ PACKAGE= tests +ATF_TESTS_SH+= grep_freebsd_test NETBSD_ATF_TESTS_SH= grep_test ${PACKAGE}FILES+= d_basic.out Added: head/usr.bin/grep/tests/grep_freebsd_test.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/grep/tests/grep_freebsd_test.sh Mon Apr 17 13:22:39 2017 (r317050) @@ -0,0 +1,55 @@ +# +# Copyright (c) 2017 Kyle Evans +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# $FreeBSD$ + +atf_test_case grep_r_implied +grep_r_implied_body() +{ + (cd "$(atf_get_srcdir)" && grep -r -e "test" < /dev/null) || + atf_skip "Implied working directory is not supported with your version of grep(1)" + (cd "$(atf_get_srcdir)" && grep -r --exclude="*.out" -e "test" .) > d_grep_r_implied.out + + atf_check -s exit:0 -x \ + "(cd $(atf_get_srcdir) && grep -r --exclude=\"*.out\" -e \"test\") | diff d_grep_r_implied.out -" +} + +atf_test_case rgrep +rgrep_head() +{ + atf_set "require.progs" "rgrep" +} +rgrep_body() +{ + grep -r --exclude="*.out" -e "test" "$(atf_get_srcdir)" > d_grep_r_implied.out + + atf_check -o file:d_grep_r_implied.out rgrep --exclude="*.out" -e "test" "$(atf_get_srcdir)" +} + +atf_init_test_cases() +{ + atf_add_test_case grep_r_implied + atf_add_test_case rgrep +} Modified: head/usr.bin/grep/util.c ============================================================================== --- head/usr.bin/grep/util.c Mon Apr 17 13:14:18 2017 (r317049) +++ head/usr.bin/grep/util.c Mon Apr 17 13:22:39 2017 (r317050) @@ -111,6 +111,7 @@ grep_tree(char **argv) FTSENT *p; int c, fts_flags; bool ok; + const char *wd[] = { ".", NULL }; c = fts_flags = 0; @@ -128,7 +129,9 @@ grep_tree(char **argv) fts_flags |= FTS_NOSTAT | FTS_NOCHDIR; - if (!(fts = fts_open(argv, fts_flags, NULL))) + fts = fts_open((argv[0] == NULL) ? + __DECONST(char * const *, wd) : argv, fts_flags, NULL); + if (fts == NULL) err(2, "fts_open"); while ((p = fts_read(fts)) != NULL) { switch (p->fts_info) { From owner-svn-src-all@freebsd.org Mon Apr 17 13:36:31 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 857BFD41EFC; Mon, 17 Apr 2017 13:36:31 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3F02F77; Mon, 17 Apr 2017 13:36:31 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HDaU4h019983; Mon, 17 Apr 2017 13:36:30 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HDaUKx019982; Mon, 17 Apr 2017 13:36:30 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704171336.v3HDaUKx019982@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 13:36:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317051 - head/usr.bin/grep X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 13:36:31 -0000 Author: emaste Date: Mon Apr 17 13:36:30 2017 New Revision: 317051 URL: https://svnweb.freebsd.org/changeset/base/317051 Log: bsdgrep: remove output separators between overlapping segments Make bsdgrep more sensitive to context overlaps. If it's printing context that either overlaps or is immediately adjacent to another bit of context, don't print a separator. - Non-overlapping segments no longer have two separators between them - Overlapping segments no longer have separators between them with overlapping sections repeated Submitted by: Kyle Evans Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D10105 Modified: head/usr.bin/grep/util.c Modified: head/usr.bin/grep/util.c ============================================================================== --- head/usr.bin/grep/util.c Mon Apr 17 13:22:39 2017 (r317050) +++ head/usr.bin/grep/util.c Mon Apr 17 13:36:30 2017 (r317051) @@ -55,6 +55,9 @@ __FBSDID("$FreeBSD$"); static int linesqueued; static int procline(struct str *l, int); +static int lasta; +static bool ctxover; + bool file_matching(const char *fname) { @@ -212,8 +215,10 @@ procfile(const char *fn) strcpy(ln.file, fn); ln.line_no = 0; ln.len = 0; + ctxover = false; linesqueued = 0; tail = 0; + lasta = 0; ln.off = -1; for (c = 0; c == 0 || !(lflag || qflag); ) { @@ -235,10 +240,24 @@ procfile(const char *fn) free(f); return (0); } - /* Process the file line-by-line */ + + /* Process the file line-by-line, enqueue non-matching lines */ if ((t = procline(&ln, f->binary)) == 0 && Bflag > 0) { - enqueue(&ln); - linesqueued++; + /* Except don't enqueue lines that appear in -A ctx */ + if (ln.line_no == 0 || lasta != ln.line_no) { + /* queue is maxed to Bflag number of lines */ + enqueue(&ln); + linesqueued++; + ctxover = false; + } else { + /* + * Indicate to procline() that we have ctx + * overlap and make sure queue is empty. + */ + if (!ctxover) + clearqueue(); + ctxover = true; + } } c += t; if (mflag && mcount <= 0) @@ -396,17 +415,19 @@ procline(struct str *l, int nottext) /* Dealing with the context */ if ((tail || c) && !cflag && !qflag && !lflag && !Lflag) { if (c) { - if (!first && !prev && !tail && Aflag) + if (!first && !prev && !tail && (Bflag || Aflag) && + !ctxover) printf("--\n"); tail = Aflag; if (Bflag > 0) { - if (!first && !prev) - printf("--\n"); printqueue(); + ctxover = false; } linesqueued = 0; printline(l, ':', matches, m); } else { + /* Print -A lines following matches */ + lasta = l->line_no; printline(l, '-', matches, m); tail--; } From owner-svn-src-all@freebsd.org Mon Apr 17 13:40:10 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 03224D41FB7; Mon, 17 Apr 2017 13:40:10 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x229.google.com (mail-io0-x229.google.com [IPv6:2607:f8b0:4001:c06::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D2A611FC; Mon, 17 Apr 2017 13:40:09 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x229.google.com with SMTP id o22so29771087iod.3; Mon, 17 Apr 2017 06:40:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=sV+UlxVvNwaBELl50Swv9PqH6ZoKYShpq5ukUOa4SuM=; b=oD7n8ttcL1z3t1q9yl41uqURxjZjXBFY4DDcdbxu+3D4/r7JyqntlYqam1MqfBmf/P t6qo9LkAbNzUupn7rAWTmcOwECFoEJMsakDzCqjn7m85GrgTlHxsDhpESbcCjau8Ul9I tvv1tqrt3ff9r3iP+tUZjO6NJKtKXgBcchDJxlH7u2y+ZWjLgwTS1x78iQAbgp527KTm 20ta8Q8ddCqMPBGDfF0OUJrI8ErRXiblKbfSsILznH9QxibldFUDUq7nUUpSIREXpvCF Vg2tno+QK8o3Mr+8PzBtL//7D6lbrngyPbg8gYYyCwYqHCZ+mjLFyzYb3u2pCzQYrZhM vBeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=sV+UlxVvNwaBELl50Swv9PqH6ZoKYShpq5ukUOa4SuM=; b=aprKUxW6rLKihnChvZV8NLXqWusIEZoQCum+cGEv9Bnz+QmCBdIvN3MWxes+HaL6Ut qsZ0H5KCi0lhBaUJnTDxRYjnoAr3zZqQE/ozcEJzS0vB0R5TTXRzNPRZMCV4BjAcsw6q Ut9MnmPDcpfpt2MSw8pd/zwHzyLnhejYcW6qB9db6kztQVqv57xmFpmDU90iqN6iuY+s JDJmG5o15d9qy0hTnYAA7L98zzoh8bKCsNwR69GAY7z8gbtAMUh7ezWtWN4dbslrxcgR fPOC0rDOFQlcx2oorIwrp9FZIBppeBZdwKKR9IGU4YU9drSGL46zT0DJsbQPAAER30s4 3vdw== X-Gm-Message-State: AN3rC/6nTJb4eJ45MDqU7YEG+dlHN6+dvbnDUBjoWI2zvVTLaetalhUl iR/m2Dl9GGwKKdCM7P/cVBpsS6rVgoPD X-Received: by 10.36.35.129 with SMTP id u123mr8587156itu.105.1492436408965; Mon, 17 Apr 2017 06:40:08 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.30.136 with HTTP; Mon, 17 Apr 2017 06:39:48 -0700 (PDT) In-Reply-To: <201704171322.v3HDMeZE015971@repo.freebsd.org> References: <201704171322.v3HDMeZE015971@repo.freebsd.org> From: Ed Maste Date: Mon, 17 Apr 2017 09:39:48 -0400 X-Google-Sender-Auth: 6SgtQCcWhnAjDF-5FiAb2hiQqRo Message-ID: Subject: Re: svn commit: r317050 - in head/usr.bin/grep: . tests To: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 13:40:10 -0000 On 17 April 2017 at 09:22, Ed Maste wrote: > Author: emaste > Date: Mon Apr 17 13:22:39 2017 > New Revision: 317050 > URL: https://svnweb.freebsd.org/changeset/base/317050 > > Log: > bsdgrep: for -r, use the working directory if none specified Oops, Differential Revision: https://reviews.freebsd.org/D10108 From owner-svn-src-all@freebsd.org Mon Apr 17 14:59:56 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BD780D4161F; Mon, 17 Apr 2017 14:59:56 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 703EFD0F; Mon, 17 Apr 2017 14:59:56 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HExtZd054219; Mon, 17 Apr 2017 14:59:55 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HExtnZ054217; Mon, 17 Apr 2017 14:59:55 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704171459.v3HExtnZ054217@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 14:59:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317052 - in head: contrib/netbsd-tests/usr.bin/grep usr.bin/grep X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 14:59:56 -0000 Author: emaste Date: Mon Apr 17 14:59:55 2017 New Revision: 317052 URL: https://svnweb.freebsd.org/changeset/base/317052 Log: bsdgrep: fix zero-length matches without the -o flag r316477 broke zero-length matches when not using the -o flag, by skipping over them entirely. Add a regression test so that it doesn't break again in the future. Submitted by: Kyle Evans Reviewed by: cem emaste ngie Differential Revision: https://reviews.freebsd.org/D10333 Modified: head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh head/usr.bin/grep/util.c Modified: head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh ============================================================================== --- head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Mon Apr 17 13:36:30 2017 (r317051) +++ head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Mon Apr 17 14:59:55 2017 (r317052) @@ -377,6 +377,20 @@ egrep_empty_invalid_body() { atf_check -s exit:1 egrep '{' /dev/null } + +atf_test_case zerolen +zerolen_head() +{ + atf_set "descr" "Check for successful zero-length matches with ^$" +} +zerolen_body() +{ + printf "Eggs\n\nCheese" > test1 + + atf_check -o inline:"\n" grep -e "^$" test1 + + atf_check -o inline:"Eggs\nCheese\n" grep -v -e "^$" test1 +} # End FreeBSD atf_init_test_cases() @@ -404,5 +418,6 @@ atf_init_test_cases() atf_add_test_case f_file_empty atf_add_test_case escmap atf_add_test_case egrep_empty_invalid + atf_add_test_case zerolen # End FreeBSD } Modified: head/usr.bin/grep/util.c ============================================================================== --- head/usr.bin/grep/util.c Mon Apr 17 13:36:30 2017 (r317051) +++ head/usr.bin/grep/util.c Mon Apr 17 14:59:55 2017 (r317052) @@ -352,9 +352,6 @@ procline(struct str *l, int nottext) if (r == 0) { lastmatches++; lastmatch = pmatch; - /* Skip over zero-length matches */ - if (pmatch.rm_so == pmatch.rm_eo) - continue; if (m == 0) c++; @@ -532,6 +529,9 @@ printline(struct str *line, int sep, reg /* --color and -o */ if ((oflag || color) && m > 0) { for (i = 0; i < m; i++) { + /* Don't output zero length matches */ + if (matches[i].rm_so == matches[i].rm_eo) + continue; if (!oflag) fwrite(line->dat + a, matches[i].rm_so - a, 1, stdout); From owner-svn-src-all@freebsd.org Mon Apr 17 16:51:05 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1784D41AAE; Mon, 17 Apr 2017 16:51:05 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BCB7E1A3D; Mon, 17 Apr 2017 16:51:05 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HGp4nT003466; Mon, 17 Apr 2017 16:51:04 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HGp40c003460; Mon, 17 Apr 2017 16:51:04 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704171651.v3HGp40c003460@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 17 Apr 2017 16:51:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317053 - in head/sys: compat/linuxkpi/common/src contrib/vchiq/interface/vchiq_arm dev/xen/gntdev dev/xen/privcmd kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 16:51:06 -0000 Author: glebius Date: Mon Apr 17 16:51:04 2017 New Revision: 317053 URL: https://svnweb.freebsd.org/changeset/base/317053 Log: Remove unneeded include of vm_phys.h. Modified: head/sys/compat/linuxkpi/common/src/linux_page.c head/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c head/sys/dev/xen/gntdev/gntdev.c head/sys/dev/xen/privcmd/privcmd.c head/sys/kern/kern_cpuset.c head/sys/kern/kern_numa.c Modified: head/sys/compat/linuxkpi/common/src/linux_page.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_page.c Mon Apr 17 14:59:55 2017 (r317052) +++ head/sys/compat/linuxkpi/common/src/linux_page.c Mon Apr 17 16:51:04 2017 (r317053) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: head/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c ============================================================================== --- head/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c Mon Apr 17 14:59:55 2017 (r317052) +++ head/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c Mon Apr 17 16:51:04 2017 (r317053) @@ -45,7 +45,6 @@ #include #include #include -#include #include #include Modified: head/sys/dev/xen/gntdev/gntdev.c ============================================================================== --- head/sys/dev/xen/gntdev/gntdev.c Mon Apr 17 14:59:55 2017 (r317052) +++ head/sys/dev/xen/gntdev/gntdev.c Mon Apr 17 16:51:04 2017 (r317053) @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include Modified: head/sys/dev/xen/privcmd/privcmd.c ============================================================================== --- head/sys/dev/xen/privcmd/privcmd.c Mon Apr 17 14:59:55 2017 (r317052) +++ head/sys/dev/xen/privcmd/privcmd.c Mon Apr 17 16:51:04 2017 (r317053) @@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include Modified: head/sys/kern/kern_cpuset.c ============================================================================== --- head/sys/kern/kern_cpuset.c Mon Apr 17 14:59:55 2017 (r317052) +++ head/sys/kern/kern_cpuset.c Mon Apr 17 16:51:04 2017 (r317053) @@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #ifdef DDB #include Modified: head/sys/kern/kern_numa.c ============================================================================== --- head/sys/kern/kern_numa.c Mon Apr 17 14:59:55 2017 (r317052) +++ head/sys/kern/kern_numa.c Mon Apr 17 16:51:04 2017 (r317053) @@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include int From owner-svn-src-all@freebsd.org Mon Apr 17 16:59:20 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 422C2D41E6E; Mon, 17 Apr 2017 16:59:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 198A11FE8; Mon, 17 Apr 2017 16:59:20 +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 v3HGxJZP006652; Mon, 17 Apr 2017 16:59:19 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HGxJ8m006651; Mon, 17 Apr 2017 16:59:19 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201704171659.v3HGxJ8m006651@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 17 Apr 2017 16:59:19 +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: r317054 - stable/11/sys/vm X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 16:59:20 -0000 Author: markj Date: Mon Apr 17 16:59:18 2017 New Revision: 317054 URL: https://svnweb.freebsd.org/changeset/base/317054 Log: MFC r316686, r316687, r316689 Fix a race between vm_map_wire() and vm_map_protect(). Modified: stable/11/sys/vm/vm_map.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/vm/vm_map.c ============================================================================== --- stable/11/sys/vm/vm_map.c Mon Apr 17 16:51:04 2017 (r317053) +++ stable/11/sys/vm/vm_map.c Mon Apr 17 16:59:18 2017 (r317054) @@ -1655,6 +1655,8 @@ _vm_map_clip_start(vm_map_t map, vm_map_ vm_map_entry_t new_entry; VM_MAP_ASSERT_LOCKED(map); + KASSERT(entry->end > start && entry->start < start, + ("_vm_map_clip_start: invalid clip of entry %p", entry)); /* * Split off the front portion -- note that we must insert the new @@ -1739,6 +1741,8 @@ _vm_map_clip_end(vm_map_t map, vm_map_en vm_map_entry_t new_entry; VM_MAP_ASSERT_LOCKED(map); + KASSERT(entry->start < end && entry->end > end, + ("_vm_map_clip_end: invalid clip of entry %p", entry)); /* * If there is no object backing this entry, we might as well create @@ -1963,6 +1967,14 @@ vm_map_protect(vm_map_t map, vm_offset_t vm_map_lock(map); + /* + * Ensure that we are not concurrently wiring pages. vm_map_wire() may + * need to fault pages into the map and will drop the map lock while + * doing so, and the VM object may end up in an inconsistent state if we + * update the protection on the map entry in between faults. + */ + vm_map_wait_busy(map); + VM_MAP_RANGE_CHECK(map, start, end); if (vm_map_lookup_entry(map, start, &entry)) { @@ -1974,8 +1986,8 @@ vm_map_protect(vm_map_t map, vm_offset_t /* * Make a first pass to check for protection violations. */ - current = entry; - while ((current != &map->header) && (current->start < end)) { + for (current = entry; current != &map->header && current->start < end; + current = current->next) { if (current->eflags & MAP_ENTRY_IS_SUB_MAP) { vm_map_unlock(map); return (KERN_INVALID_ARGUMENT); @@ -1984,17 +1996,15 @@ vm_map_protect(vm_map_t map, vm_offset_t vm_map_unlock(map); return (KERN_PROTECTION_FAILURE); } - current = current->next; } - /* * Do an accounting pass for private read-only mappings that * now will do cow due to allowed write (e.g. debugger sets * breakpoint on text segment) */ - for (current = entry; (current != &map->header) && - (current->start < end); current = current->next) { + for (current = entry; current != &map->header && current->start < end; + current = current->next) { vm_map_clip_end(map, current, end); @@ -2047,8 +2057,8 @@ vm_map_protect(vm_map_t map, vm_offset_t * Go back and fix up protections. [Note that clipping is not * necessary the second time.] */ - current = entry; - while ((current != &map->header) && (current->start < end)) { + for (current = entry; current != &map->header && current->start < end; + current = current->next) { old_prot = current->protection; if (set_max) @@ -2082,7 +2092,6 @@ vm_map_protect(vm_map_t map, vm_offset_t #undef MASK } vm_map_simplify_entry(map, current); - current = current->next; } vm_map_unlock(map); return (KERN_SUCCESS); From owner-svn-src-all@freebsd.org Mon Apr 17 17:07:05 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59340D42111; Mon, 17 Apr 2017 17:07:05 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 22B8D960; Mon, 17 Apr 2017 17:07:05 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HH74B7010705; Mon, 17 Apr 2017 17:07:04 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HH70TM010666; Mon, 17 Apr 2017 17:07:00 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704171707.v3HH70TM010666@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 17 Apr 2017 17:07:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317055 - in head/sys: amd64/amd64 arm/arm arm64/arm64 cddl/compat/opensolaris/kern cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs compat/linuxkpi/common/include... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 17:07:05 -0000 Author: glebius Date: Mon Apr 17 17:07:00 2017 New Revision: 317055 URL: https://svnweb.freebsd.org/changeset/base/317055 Log: All these files need sys/vmmeter.h, but now they got it implicitly included via sys/pcpu.h. Modified: head/sys/amd64/amd64/efirt.c head/sys/amd64/amd64/minidump_machdep.c head/sys/amd64/amd64/uma_machdep.c head/sys/arm/arm/intr.c head/sys/arm/arm/machdep.c head/sys/arm/arm/trap-v4.c head/sys/arm/arm/trap-v6.c head/sys/arm/arm/undefined.c head/sys/arm64/arm64/minidump_machdep.c head/sys/arm64/arm64/uma_machdep.c head/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c head/sys/cddl/compat/opensolaris/sys/kmem.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c head/sys/compat/linuxkpi/common/include/linux/page.h head/sys/dev/drm/drmP.h head/sys/dev/drm2/drmP.h head/sys/fs/msdosfs/msdosfs_denode.c head/sys/fs/msdosfs/msdosfs_vnops.c head/sys/kern/kern_mib.c head/sys/kern/kern_thread.c head/sys/kern/subr_intr.c head/sys/kern/subr_syscall.c head/sys/mips/include/intr_machdep.h head/sys/mips/mips/minidump_machdep.c head/sys/mips/mips/uma_machdep.c head/sys/ofed/drivers/infiniband/core/umem.c head/sys/powerpc/powerpc/uma_machdep.c head/sys/sparc64/sparc64/intr_machdep.c head/sys/sparc64/sparc64/machdep.c head/sys/sparc64/sparc64/mem.c head/sys/ufs/ffs/ffs_balloc.c head/sys/ufs/ffs/ffs_vfsops.c head/sys/vm/device_pager.c head/sys/vm/memguard.c head/sys/vm/sg_pager.c head/sys/vm/vm_reserv.c head/sys/x86/x86/intr_machdep.c head/sys/x86/xen/xenpv.c Modified: head/sys/amd64/amd64/efirt.c ============================================================================== --- head/sys/amd64/amd64/efirt.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/amd64/amd64/efirt.c Mon Apr 17 17:07:00 2017 (r317055) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/amd64/amd64/minidump_machdep.c ============================================================================== --- head/sys/amd64/amd64/minidump_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/amd64/amd64/minidump_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/amd64/amd64/uma_machdep.c ============================================================================== --- head/sys/amd64/amd64/uma_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/amd64/amd64/uma_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/arm/arm/intr.c ============================================================================== --- head/sys/arm/arm/intr.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/arm/arm/intr.c Mon Apr 17 17:07:00 2017 (r317055) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/arm/arm/machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/arm/arm/trap-v4.c ============================================================================== --- head/sys/arm/arm/trap-v4.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/arm/arm/trap-v4.c Mon Apr 17 17:07:00 2017 (r317055) @@ -87,6 +87,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/arm/arm/trap-v6.c ============================================================================== --- head/sys/arm/arm/trap-v6.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/arm/arm/trap-v6.c Mon Apr 17 17:07:00 2017 (r317055) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #ifdef KTRACE #include #include Modified: head/sys/arm/arm/undefined.c ============================================================================== --- head/sys/arm/arm/undefined.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/arm/arm/undefined.c Mon Apr 17 17:07:00 2017 (r317055) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #ifdef KDB #include #endif Modified: head/sys/arm64/arm64/minidump_machdep.c ============================================================================== --- head/sys/arm64/arm64/minidump_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/arm64/arm64/minidump_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/arm64/arm64/uma_machdep.c ============================================================================== --- head/sys/arm64/arm64/uma_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/arm64/arm64/uma_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c Mon Apr 17 17:07:00 2017 (r317055) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/cddl/compat/opensolaris/sys/kmem.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/kmem.h Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/cddl/compat/opensolaris/sys/kmem.h Mon Apr 17 17:07:00 2017 (r317055) @@ -33,6 +33,7 @@ #include #include #include +#include #include #include Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon Apr 17 17:07:00 2017 (r317055) @@ -73,6 +73,7 @@ #include #include #include +#include #include /* Modified: head/sys/compat/linuxkpi/common/include/linux/page.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/page.h Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/compat/linuxkpi/common/include/linux/page.h Mon Apr 17 17:07:00 2017 (r317055) @@ -34,6 +34,7 @@ #include #include +#include #include #include Modified: head/sys/dev/drm/drmP.h ============================================================================== --- head/sys/dev/drm/drmP.h Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/dev/drm/drmP.h Mon Apr 17 17:07:00 2017 (r317055) @@ -65,6 +65,7 @@ struct drm_file; #include #include #include +#include #include #include #include Modified: head/sys/dev/drm2/drmP.h ============================================================================== --- head/sys/dev/drm2/drmP.h Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/dev/drm2/drmP.h Mon Apr 17 17:07:00 2017 (r317055) @@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/fs/msdosfs/msdosfs_denode.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_denode.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/fs/msdosfs/msdosfs_denode.c Mon Apr 17 17:07:00 2017 (r317055) @@ -55,6 +55,7 @@ #include #include #include +#include #include #include Modified: head/sys/fs/msdosfs/msdosfs_vnops.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_vnops.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/fs/msdosfs/msdosfs_vnops.c Mon Apr 17 17:07:00 2017 (r317055) @@ -64,6 +64,7 @@ #include #include #include +#include #include #include Modified: head/sys/kern/kern_mib.c ============================================================================== --- head/sys/kern/kern_mib.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/kern/kern_mib.c Mon Apr 17 17:07:00 2017 (r317055) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/kern/kern_thread.c Mon Apr 17 17:07:00 2017 (r317055) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #ifdef HWPMC_HOOKS #include Modified: head/sys/kern/subr_intr.c ============================================================================== --- head/sys/kern/subr_intr.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/kern/subr_intr.c Mon Apr 17 17:07:00 2017 (r317055) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #ifdef HWPMC_HOOKS #include #endif Modified: head/sys/kern/subr_syscall.c ============================================================================== --- head/sys/kern/subr_syscall.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/kern/subr_syscall.c Mon Apr 17 17:07:00 2017 (r317055) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include Modified: head/sys/mips/include/intr_machdep.h ============================================================================== --- head/sys/mips/include/intr_machdep.h Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/mips/include/intr_machdep.h Mon Apr 17 17:07:00 2017 (r317055) @@ -29,6 +29,7 @@ #ifndef _MACHINE_INTR_MACHDEP_H_ #define _MACHINE_INTR_MACHDEP_H_ +#include #include #if defined(CPU_RMI) || defined(CPU_NLM) Modified: head/sys/mips/mips/minidump_machdep.c ============================================================================== --- head/sys/mips/mips/minidump_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/mips/mips/minidump_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/mips/mips/uma_machdep.c ============================================================================== --- head/sys/mips/mips/uma_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/mips/mips/uma_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/ofed/drivers/infiniband/core/umem.c ============================================================================== --- head/sys/ofed/drivers/infiniband/core/umem.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/ofed/drivers/infiniband/core/umem.c Mon Apr 17 17:07:00 2017 (r317055) @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include "uverbs.h" Modified: head/sys/powerpc/powerpc/uma_machdep.c ============================================================================== --- head/sys/powerpc/powerpc/uma_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/powerpc/powerpc/uma_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/sparc64/sparc64/intr_machdep.c ============================================================================== --- head/sys/sparc64/sparc64/intr_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/sparc64/sparc64/intr_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -73,6 +73,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/sparc64/sparc64/machdep.c ============================================================================== --- head/sys/sparc64/sparc64/machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/sparc64/sparc64/machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -73,6 +73,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include Modified: head/sys/sparc64/sparc64/mem.c ============================================================================== --- head/sys/sparc64/sparc64/mem.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/sparc64/sparc64/mem.c Mon Apr 17 17:07:00 2017 (r317055) @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/ufs/ffs/ffs_balloc.c ============================================================================== --- head/sys/ufs/ffs/ffs_balloc.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/ufs/ffs/ffs_balloc.c Mon Apr 17 17:07:00 2017 (r317055) @@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/ufs/ffs/ffs_vfsops.c Mon Apr 17 17:07:00 2017 (r317055) @@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include Modified: head/sys/vm/device_pager.c ============================================================================== --- head/sys/vm/device_pager.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/vm/device_pager.c Mon Apr 17 17:07:00 2017 (r317055) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/vm/memguard.c ============================================================================== --- head/sys/vm/memguard.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/vm/memguard.c Mon Apr 17 17:07:00 2017 (r317055) @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/vm/sg_pager.c ============================================================================== --- head/sys/vm/sg_pager.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/vm/sg_pager.c Mon Apr 17 17:07:00 2017 (r317055) @@ -38,6 +38,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include + #include #include #include Modified: head/sys/vm/vm_reserv.c ============================================================================== --- head/sys/vm/vm_reserv.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/vm/vm_reserv.c Mon Apr 17 17:07:00 2017 (r317055) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/x86/x86/intr_machdep.c ============================================================================== --- head/sys/x86/x86/intr_machdep.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/x86/x86/intr_machdep.c Mon Apr 17 17:07:00 2017 (r317055) @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include Modified: head/sys/x86/xen/xenpv.c ============================================================================== --- head/sys/x86/xen/xenpv.c Mon Apr 17 16:59:18 2017 (r317054) +++ head/sys/x86/xen/xenpv.c Mon Apr 17 17:07:00 2017 (r317055) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include From owner-svn-src-all@freebsd.org Mon Apr 17 17:07:52 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D887D4219E; Mon, 17 Apr 2017 17:07:52 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5D22DAB4; Mon, 17 Apr 2017 17:07:52 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HH7pEo010775; Mon, 17 Apr 2017 17:07:51 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HH7pck010774; Mon, 17 Apr 2017 17:07:51 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704171707.v3HH7pck010774@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 17 Apr 2017 17:07:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317056 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 17:07:52 -0000 Author: glebius Date: Mon Apr 17 17:07:51 2017 New Revision: 317056 URL: https://svnweb.freebsd.org/changeset/base/317056 Log: Typo! Modified: head/sys/kern/subr_syscall.c Modified: head/sys/kern/subr_syscall.c ============================================================================== --- head/sys/kern/subr_syscall.c Mon Apr 17 17:07:00 2017 (r317055) +++ head/sys/kern/subr_syscall.c Mon Apr 17 17:07:51 2017 (r317056) @@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include #ifdef KTRACE #include #include From owner-svn-src-all@freebsd.org Mon Apr 17 17:18:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 12D49D425F1; Mon, 17 Apr 2017 17:18:09 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D8A9A242; Mon, 17 Apr 2017 17:18:08 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HHI898014863; Mon, 17 Apr 2017 17:18:08 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HHI7K9014861; Mon, 17 Apr 2017 17:18:07 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704171718.v3HHI7K9014861@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 17 Apr 2017 17:18:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317057 - in head/sys: amd64/amd64 i386/i386 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 17:18:09 -0000 Author: glebius Date: Mon Apr 17 17:18:07 2017 New Revision: 317057 URL: https://svnweb.freebsd.org/changeset/base/317057 Log: Remove unused assembly symbols pointing to vmmeter. Modified: head/sys/amd64/amd64/genassym.c head/sys/i386/i386/genassym.c Modified: head/sys/amd64/amd64/genassym.c ============================================================================== --- head/sys/amd64/amd64/genassym.c Mon Apr 17 17:07:51 2017 (r317056) +++ head/sys/amd64/amd64/genassym.c Mon Apr 17 17:18:07 2017 (r317057) @@ -90,9 +90,6 @@ ASSYM(TDF_NEEDRESCHED, TDF_NEEDRESCHED); ASSYM(TDP_CALLCHAIN, TDP_CALLCHAIN); ASSYM(TDP_KTHREAD, TDP_KTHREAD); -ASSYM(V_TRAP, offsetof(struct vmmeter, v_trap)); -ASSYM(V_SYSCALL, offsetof(struct vmmeter, v_syscall)); -ASSYM(V_INTR, offsetof(struct vmmeter, v_intr)); ASSYM(PAGE_SIZE, PAGE_SIZE); ASSYM(NPTEPG, NPTEPG); ASSYM(NPDEPG, NPDEPG); Modified: head/sys/i386/i386/genassym.c ============================================================================== --- head/sys/i386/i386/genassym.c Mon Apr 17 17:07:51 2017 (r317056) +++ head/sys/i386/i386/genassym.c Mon Apr 17 17:18:07 2017 (r317057) @@ -98,9 +98,6 @@ ASSYM(MD_LDT, offsetof(struct mdproc, md ASSYM(TDF_ASTPENDING, TDF_ASTPENDING); ASSYM(TDF_NEEDRESCHED, TDF_NEEDRESCHED); -ASSYM(V_TRAP, offsetof(struct vmmeter, v_trap)); -ASSYM(V_SYSCALL, offsetof(struct vmmeter, v_syscall)); -ASSYM(V_INTR, offsetof(struct vmmeter, v_intr)); ASSYM(TD0_KSTACK_PAGES, TD0_KSTACK_PAGES); ASSYM(PAGE_SIZE, PAGE_SIZE); ASSYM(NPTEPG, NPTEPG); From owner-svn-src-all@freebsd.org Mon Apr 17 17:18:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF9D1D42659; Mon, 17 Apr 2017 17:18:50 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 67DB13E4; Mon, 17 Apr 2017 17:18:50 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HHInTt014932; Mon, 17 Apr 2017 17:18:49 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HHIncs014931; Mon, 17 Apr 2017 17:18:49 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704171718.v3HHIncs014931@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 17:18:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317058 - head/usr.bin/dtc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 17:18:50 -0000 Author: emaste Date: Mon Apr 17 17:18:49 2017 New Revision: 317058 URL: https://svnweb.freebsd.org/changeset/base/317058 Log: dtc: remove unused (since r306806) string.hh Deleted: head/usr.bin/dtc/string.hh From owner-svn-src-all@freebsd.org Mon Apr 17 17:20:49 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9A25AD42732; Mon, 17 Apr 2017 17:20:49 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 698BC813; Mon, 17 Apr 2017 17:20:49 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HHKmT4015079; Mon, 17 Apr 2017 17:20:48 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HHKmli015077; Mon, 17 Apr 2017 17:20:48 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704171720.v3HHKmli015077@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 17 Apr 2017 17:20:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317059 - in head/sys/fs: ext2fs fuse X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 17:20:49 -0000 Author: glebius Date: Mon Apr 17 17:20:48 2017 New Revision: 317059 URL: https://svnweb.freebsd.org/changeset/base/317059 Log: Two more files missed in r317055: these files need sys/vmmeter.h, but now they got it implicitly included via sys/pcpu.h. Modified: head/sys/fs/ext2fs/ext2_vnops.c head/sys/fs/fuse/fuse_vnops.c Modified: head/sys/fs/ext2fs/ext2_vnops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vnops.c Mon Apr 17 17:18:49 2017 (r317058) +++ head/sys/fs/ext2fs/ext2_vnops.c Mon Apr 17 17:20:48 2017 (r317059) @@ -65,6 +65,7 @@ #include #include #include +#include #include #include Modified: head/sys/fs/fuse/fuse_vnops.c ============================================================================== --- head/sys/fs/fuse/fuse_vnops.c Mon Apr 17 17:18:49 2017 (r317058) +++ head/sys/fs/fuse/fuse_vnops.c Mon Apr 17 17:20:48 2017 (r317059) @@ -82,6 +82,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include From owner-svn-src-all@freebsd.org Mon Apr 17 17:23:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2CAAD429BC; Mon, 17 Apr 2017 17:23:21 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B74B1D39; Mon, 17 Apr 2017 17:23:21 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HHNKrM018844; Mon, 17 Apr 2017 17:23:20 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HHNKqM018836; Mon, 17 Apr 2017 17:23:20 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704171723.v3HHNKqM018836@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 17:23:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317060 - head/usr.bin/dtc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 17:23:22 -0000 Author: emaste Date: Mon Apr 17 17:23:19 2017 New Revision: 317060 URL: https://svnweb.freebsd.org/changeset/base/317060 Log: dtc: update to upstream 227d6a3 - Report missing includes at the correct location. - Add initial support for the -@ option emitting a symbol table. - Add support for running tests with and without -@ - Add support for generating __fixups__ and __local_fixups__ - Attach the to-string transform to the node path. Modified: head/usr.bin/dtc/checking.cc head/usr.bin/dtc/dtb.hh head/usr.bin/dtc/dtc.1 head/usr.bin/dtc/dtc.cc head/usr.bin/dtc/fdt.cc head/usr.bin/dtc/fdt.hh head/usr.bin/dtc/input_buffer.cc head/usr.bin/dtc/string.cc Modified: head/usr.bin/dtc/checking.cc ============================================================================== --- head/usr.bin/dtc/checking.cc Mon Apr 17 17:20:48 2017 (r317059) +++ head/usr.bin/dtc/checking.cc Mon Apr 17 17:23:19 2017 (r317060) @@ -97,16 +97,16 @@ namespace } if (found_size && found_address) { - break; + break; } } if (!found_address) { - report_error("Missing #address-cells property"); + report_error("Missing #address-cells property"); } if (!found_size) { - report_error("Missing #size-cells property"); + report_error("Missing #size-cells property"); } return found_address && found_size; } Modified: head/usr.bin/dtc/dtb.hh ============================================================================== --- head/usr.bin/dtc/dtb.hh Mon Apr 17 17:20:48 2017 (r317059) +++ head/usr.bin/dtc/dtb.hh Mon Apr 17 17:23:19 2017 (r317060) @@ -189,17 +189,17 @@ class binary_writer : public output_writ * The binary format does not support labels, so this method * does nothing. */ - virtual void write_label(const std::string &) {} + void write_label(const std::string &) override {} /** * Comments are ignored by the binary writer. */ - virtual void write_comment(const std::string&) {} - virtual void write_string(const std::string &name); - virtual void write_data(uint8_t v); - virtual void write_data(uint32_t v); - virtual void write_data(uint64_t v); - virtual void write_to_file(int fd); - virtual uint32_t size(); + void write_comment(const std::string&) override {} + void write_string(const std::string &name) override; + void write_data(uint8_t v) override; + void write_data(uint32_t v) override; + void write_data(uint64_t v) override; + void write_to_file(int fd) override; + uint32_t size() override; }; /** * Assembly writer. This class is responsible for writing the output in an @@ -234,7 +234,7 @@ class asm_writer : public output_writer /** * Write a string to the output. */ - void write_string(const std::string &c); + void write_string(const std::string &c) override; /** * Writes the string, starting on a new line. */ @@ -246,13 +246,13 @@ class asm_writer : public output_writer void write_byte(uint8_t b); public: asm_writer() : byte_count(0), bytes_written(0) {} - virtual void write_label(const std::string &name); - virtual void write_comment(const std::string &name); - virtual void write_data(uint8_t v); - virtual void write_data(uint32_t v); - virtual void write_data(uint64_t v); - virtual void write_to_file(int fd); - virtual uint32_t size(); + void write_label(const std::string &name) override; + void write_comment(const std::string &name) override; + void write_data(uint8_t v) override; + void write_data(uint32_t v) override; + void write_data(uint64_t v) override; + void write_to_file(int fd) override; + uint32_t size() override; }; /** Modified: head/usr.bin/dtc/dtc.1 ============================================================================== --- head/usr.bin/dtc/dtc.1 Mon Apr 17 17:20:48 2017 (r317059) +++ head/usr.bin/dtc/dtc.1 Mon Apr 17 17:23:19 2017 (r317060) @@ -38,7 +38,7 @@ .Nd device tree compiler .Sh SYNOPSIS .Nm -.Op Fl fhsv +.Op Fl @fhsv .Op Fl b Ar boot_cpu_id .Op Fl d Ar dependency_file .Op Fl E Ar [no-]checker_name @@ -84,6 +84,8 @@ Enable or disable a specified checker. The argument is the name of the checker. The full list of checkers is given in .Sx CHECKERS . +.It Fl @ +Emit a __symbols__ node to allow plugins to be loaded. .It Fl f Force the tool to attempt to generate the output, even if the input had errors. .It Fl h Modified: head/usr.bin/dtc/dtc.cc ============================================================================== --- head/usr.bin/dtc/dtc.cc Mon Apr 17 17:20:48 2017 (r317059) +++ head/usr.bin/dtc/dtc.cc Mon Apr 17 17:23:19 2017 (r317060) @@ -54,7 +54,7 @@ int version_major = 0; /** * The current minor version of the tool. */ -int version_minor = 4; +int version_minor = 5; /** * The current patch level of the tool. */ @@ -63,7 +63,7 @@ int version_patch = 0; static void usage(const string &argv0) { fprintf(stderr, "Usage:\n" - "\t%s\t[-fhsv] [-b boot_cpu_id] [-d dependency_file]" + "\t%s\t[-fhsv@] [-b boot_cpu_id] [-d dependency_file]" "[-E [no-]checker_name]\n" "\t\t[-H phandle_format] [-I input_format]" "[-O output_format]\n" @@ -101,7 +101,7 @@ main(int argc, char **argv) clock_t c0 = clock(); class device_tree tree; fdt::checking::check_manager checks; - const char *options = "hqI:O:o:V:d:R:S:p:b:fi:svH:W:E:DP:"; + const char *options = "@hqI:O:o:V:d:R:S:p:b:fi:svH:W:E:DP:"; // Don't forget to update the man page if any more options are added. while ((ch = getopt(argc, argv, options)) != -1) @@ -114,6 +114,9 @@ main(int argc, char **argv) case 'v': version(argv[0]); return EXIT_SUCCESS; + case '@': + tree.write_symbols = true; + break; case 'I': { string arg(optarg); Modified: head/usr.bin/dtc/fdt.cc ============================================================================== --- head/usr.bin/dtc/fdt.cc Mon Apr 17 17:20:48 2017 (r317059) +++ head/usr.bin/dtc/fdt.cc Mon Apr 17 17:23:19 2017 (r317060) @@ -169,6 +169,16 @@ property_value::resolve_type() type = BINARY; } +size_t +property_value::size() +{ + if (!byte_data.empty()) + { + return byte_data.size(); + } + return string_data.size() + 1; +} + void property_value::write_as_string(FILE *file) { @@ -286,7 +296,6 @@ property::parse_cells(text_input_buffer return; } input.next_token(); - bool isPath = false; string referenced; if (!input.consume('{')) { @@ -296,7 +305,6 @@ property::parse_cells(text_input_buffer { referenced = input.parse_to('}'); input.consume('}'); - isPath = true; } if (referenced.empty()) { @@ -655,6 +663,21 @@ property::write_dts(FILE *file, int inde fputs(";\n", file); } +size_t +property::offset_of_value(property_value &val) +{ + size_t off = 0; + for (auto &v : values) + { + if (&v == &val) + { + return off; + } + off += v.size(); + } + return -1; +} + string node::parse_name(text_input_buffer &input, bool &is_property, const char *error) { @@ -764,6 +787,21 @@ node::node(input_buffer &structs, input_ return; } + +node::node(const string &n, + const std::vector &p) + : name(n) +{ + props.insert(props.begin(), p.begin(), p.end()); +} + +node_ptr node::create_special_node(const string &name, + const std::vector &props) +{ + node_ptr n(new node(name, props)); + return n; +} + node::node(text_input_buffer &input, string &&n, std::unordered_set &&l, @@ -1123,7 +1161,6 @@ device_tree::collect_names_recursive(nod { collect_names_recursive(c, path); } - path.pop_back(); // Now we collect the phandles and properties that reference // other nodes. for (auto &p : n->properties()) @@ -1132,7 +1169,7 @@ device_tree::collect_names_recursive(nod { if (v.is_phandle()) { - phandles.push_back(&v); + fixups.push_back({path, p, v}); } if (v.is_cross_reference()) { @@ -1154,6 +1191,7 @@ device_tree::collect_names_recursive(nod } } } + path.pop_back(); } void @@ -1163,7 +1201,7 @@ device_tree::collect_names() node_names.clear(); node_paths.clear(); cross_references.clear(); - phandles.clear(); + fixups.clear(); collect_names_recursive(root, p); } @@ -1191,37 +1229,38 @@ device_tree::resolve_cross_references() } } } - std::unordered_set phandle_set; - for (auto &i : phandles) + std::unordered_map phandle_set; + for (auto &i : fixups) { - phandle_set.insert(i); + phandle_set.insert({&i.val, i}); } - std::vector sorted_phandles; + std::vector> sorted_phandles; root->visit([&](node &n) { for (auto &p : n.properties()) { for (auto &v : *p) { - if (phandle_set.count(&v)) + auto i = phandle_set.find(&v); + if (i != phandle_set.end()) { - sorted_phandles.push_back(&v); + sorted_phandles.push_back(i->second); } } } }); - assert(sorted_phandles.size() == phandles.size()); + assert(sorted_phandles.size() == fixups.size()); uint32_t phandle = 1; for (auto &i : sorted_phandles) { - string target_name = i->string_data; + string target_name = i.get().val.string_data; node *target = nullptr; string possible; // If the node name is a path, then look it up by following the path, // otherwise jump directly to the named node. if (target_name[0] == '/') { - std::string path; + string path; target = root.get(); std::istringstream ss(target_name); string path_element; @@ -1276,13 +1315,21 @@ device_tree::resolve_cross_references() } if (target == nullptr) { - fprintf(stderr, "Failed to find node with label: %s\n", target_name.c_str()); - if (possible != string()) + if (is_plugin) { - fprintf(stderr, "Possible intended match: %s\n", possible.c_str()); + unresolved_fixups.push_back(i); + continue; + } + else + { + fprintf(stderr, "Failed to find node with label: %s\n", target_name.c_str()); + if (possible != string()) + { + fprintf(stderr, "Possible intended match: %s\n", possible.c_str()); + } + valid = 0; + return; } - valid = 0; - return; } // If there is an existing phandle, use it property_ptr p = target->get_property("phandle"); @@ -1322,8 +1369,8 @@ device_tree::resolve_cross_references() target->add_property(p); } } - p->begin()->push_to_buffer(i->byte_data); - assert(i->byte_data.size() == 4); + p->begin()->push_to_buffer(i.get().val.byte_data); + assert(i.get().val.byte_data.size() == 4); } } @@ -1340,6 +1387,10 @@ device_tree::parse_file(text_input_buffe read_header = true; } input.next_token(); + if (input.consume("/plugin/;")) + { + is_plugin = true; + } input.next_token(); if (!read_header) { @@ -1567,6 +1618,30 @@ device_tree::parse_dtb(const string &fn, valid = (root != 0); } +string +device_tree::node_path::to_string() const +{ + string path; + auto p = begin(); + auto pe = end(); + if ((p == pe) || (p+1 == pe)) + { + return string("/"); + } + // Skip the first name in the path. It's always "", and implicitly / + for (++p ; p!=pe ; ++p) + { + path += '/'; + path += p->first; + if (!(p->second.empty())) + { + path += '@'; + path += p->second; + } + } + return path; +} + void device_tree::parse_dts(const string &fn, FILE *depfile) { @@ -1631,6 +1706,85 @@ device_tree::parse_dts(const string &fn, } collect_names(); resolve_cross_references(); + if (write_symbols) + { + std::vector symbols; + // Create a symbol table. Each label in this device tree may be + // referenced by other plugins, so we create a __symbols__ node inside + // the root that contains mappings (properties) from label names to + // paths. + for (auto &s : node_paths) + { + property_value v; + v.string_data = s.second.to_string(); + v.type = property_value::STRING; + string name = s.first; + auto prop = std::make_shared(std::move(name)); + prop->add_value(v); + symbols.push_back(prop); + } + root->add_child(node::create_special_node("__symbols__", symbols)); + // If this is a plugin, then we also need to create two extra nodes. + // Internal phandles will need to be renumbered to avoid conflicts with + // already-loaded nodes and external references will need to be + // resolved. + if (is_plugin) + { + // Create the fixups entry. This is of the form: + // {target} = {path}:{property name}:{offset} + auto create_fixup_entry = [&](fixup &i, string target) + { + string value = i.path.to_string(); + value += ':'; + value += i.prop->get_key(); + value += ':'; + value += std::to_string(i.prop->offset_of_value(i.val)); + property_value v; + v.string_data = value; + v.type = property_value::STRING; + auto prop = std::make_shared(std::move(target)); + prop->add_value(v); + return prop; + }; + // If we have any unresolved phandle references in this plugin, + // then we must update them to 0xdeadbeef and leave a property in + // the /__fixups__ node whose key is the label and whose value is + // as described above. + if (!unresolved_fixups.empty()) + { + symbols.clear(); + for (auto &i : unresolved_fixups) + { + auto &val = i.get().val; + symbols.push_back(create_fixup_entry(i, val.string_data)); + val.byte_data.push_back(0xde); + val.byte_data.push_back(0xad); + val.byte_data.push_back(0xbe); + val.byte_data.push_back(0xef); + val.type = property_value::BINARY; + } + root->add_child(node::create_special_node("__fixups__", symbols)); + } + symbols.clear(); + // If we have any resolved phandle references in this plugin, then + // we must leave a property in the /__local_fixups__ node whose key + // is 'fixup' and whose value is as described above. + for (auto &i : fixups) + { + if (!i.val.is_phandle()) + { + continue; + } + symbols.push_back(create_fixup_entry(i, "fixup")); + } + // We've iterated over all fixups, but only emit the + // __local_fixups__ if we found some that were resolved internally. + if (!symbols.empty()) + { + root->add_child(node::create_special_node("__local_fixups__", symbols)); + } + } + } } bool device_tree::parse_define(const char *def) @@ -1653,7 +1807,7 @@ bool device_tree::parse_define(const cha text_input_buffer in(std::move(raw), std::unordered_set(), std::vector(), - std::string(), + string(), nullptr); property_ptr p = property::parse(in, std::move(name_copy), string_set(), false); if (p) Modified: head/usr.bin/dtc/fdt.hh ============================================================================== --- head/usr.bin/dtc/fdt.hh Mon Apr 17 17:20:48 2017 (r317059) +++ head/usr.bin/dtc/fdt.hh Mon Apr 17 17:23:19 2017 (r317060) @@ -211,6 +211,10 @@ struct property_value * false otherwise. */ bool try_to_merge(property_value &other); + /** + * Returns the size (in bytes) of this property value. + */ + size_t size(); private: /** * Returns whether the value is of the specified type. If the type of @@ -380,6 +384,10 @@ class property * applicable way that it can determine. */ void write_dts(FILE *file, int indent); + /** + * Returns the byte offset of the specified property value. + */ + size_t offset_of_value(property_value &val); }; /** @@ -479,6 +487,10 @@ class node std::string &&a, define_map*); /** + * Creates a special node with the specified name and properties. + */ + node(const std::string &n, const std::vector &p); + /** * Comparison function for properties, used when sorting the properties * vector. Orders the properties based on their names. */ @@ -579,6 +591,11 @@ class node */ static node_ptr parse_dtb(input_buffer &structs, input_buffer &strings); /** + * Construct a new special node from a name and set of properties. + */ + static node_ptr create_special_node(const std::string &name, + const std::vector &props); + /** * Returns a property corresponding to the specified key, or 0 if this * node does not contain a property of that name. */ @@ -591,6 +608,13 @@ class node props.push_back(p); } /** + * Adds a new child to this node. + */ + inline void add_child(node_ptr &&n) + { + children.push_back(std::move(n)); + } + /** * Merges a node into this one. Any properties present in both are * overridden, any properties present in only one are preserved. */ @@ -626,7 +650,14 @@ class device_tree * Type used for node paths. A node path is sequence of names and unit * addresses. */ - typedef std::vector > node_path; + class node_path : public std::vector> + { + public: + /** + * Converts this to a string representation. + */ + std::string to_string() const; + }; /** * Name that we should use for phandle nodes. */ @@ -681,11 +712,34 @@ class device_tree */ std::vector cross_references; /** + * The location of something requiring a fixup entry. + */ + struct fixup + { + /** + * The path to the node. + */ + node_path path; + /** + * The property containing the reference. + */ + property_ptr prop; + /** + * The property value that contains the reference. + */ + property_value &val; + }; + /** * A collection of property values that refer to phandles. These will * be replaced by the value of the phandle property in their * destination. */ - std::vector phandles; + std::vector fixups; + /** + * The locations of all of the values that are supposed to become phandle + * references, but refer to things outside of this file. + */ + std::vector> unresolved_fixups; /** * The names of nodes that target phandles. */ @@ -733,6 +787,10 @@ class device_tree */ uint32_t blob_padding; /** + * Is this tree a plugin? + */ + bool is_plugin; + /** * Visit all of the nodes recursively, and if they have labels then add * them to the node_paths and node_names vectors so that they can be * used in resolving cross references. Also collects phandle @@ -772,6 +830,11 @@ class device_tree void write(int fd); public: /** + * Should we write the __symbols__ node (to allow overlays to be linked + * against this blob)? + */ + bool write_symbols = false; + /** * Returns the node referenced by the property. If this is a tree that * is in source form, then we have a string that we can use to index * the cross_references array and so we can just look that up. Modified: head/usr.bin/dtc/input_buffer.cc ============================================================================== --- head/usr.bin/dtc/input_buffer.cc Mon Apr 17 17:20:48 2017 (r317059) +++ head/usr.bin/dtc/input_buffer.cc Mon Apr 17 17:23:19 2017 (r317060) @@ -102,7 +102,7 @@ struct stream_input_buffer : public dtc: stream_input_buffer(); }; -mmap_input_buffer::mmap_input_buffer(int fd, std::string &&filename) +mmap_input_buffer::mmap_input_buffer(int fd, string &&filename) : input_buffer(0, 0), fn(filename) { struct stat sb; @@ -216,6 +216,7 @@ text_input_buffer::handle_include() parse_error("Expected quoted filename"); return; } + auto loc = location(); string file = parse_to('"'); consume('"'); if (!reallyInclude) @@ -243,7 +244,7 @@ text_input_buffer::handle_include() } if (!include_buffer) { - parse_error("Unable to locate input file"); + loc.report_error("Unable to locate input file"); return; } input_stack.push(std::move(include_buffer)); @@ -1214,7 +1215,7 @@ input_buffer::buffer_for_file(const stri close(source); return 0; } - std::unique_ptr b(new mmap_input_buffer(source, std::string(path))); + std::unique_ptr b(new mmap_input_buffer(source, string(path))); close(source); return b; } Modified: head/usr.bin/dtc/string.cc ============================================================================== --- head/usr.bin/dtc/string.cc Mon Apr 17 17:20:48 2017 (r317059) +++ head/usr.bin/dtc/string.cc Mon Apr 17 17:23:19 2017 (r317060) @@ -31,6 +31,7 @@ */ #include +#include #include #include #include @@ -121,28 +122,28 @@ push_string(byte_buffer &buffer, const s } } -std::string dirname(const string &s) +namespace { +string +dirbasename(std::function fn, const string &s) { if (s == string()) { return string(); } - char *str = strdup(s.c_str()); - string dn(::dirname(str)); - free(str); + std::unique_ptr str = {strdup(s.c_str()), free}; + string dn(fn(str.get())); return dn; } +} -std::string basename(const string &s) +string dirname(const string &s) { - if (s == string()) - { - return string(); - } - char *str = strdup(s.c_str()); - string bn(::basename(str)); - free(str); - return bn; + return dirbasename(::dirname, s); +} + +string basename(const string &s) +{ + return dirbasename(::basename, s); } } // namespace dtc From owner-svn-src-all@freebsd.org Mon Apr 17 17:34:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21621D42C2E; Mon, 17 Apr 2017 17:34:54 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B309A1468; Mon, 17 Apr 2017 17:34:53 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HHYq5n022998; Mon, 17 Apr 2017 17:34:52 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HHYlf5022945; Mon, 17 Apr 2017 17:34:47 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704171734.v3HHYlf5022945@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 17 Apr 2017 17:34:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317061 - in head: libexec/rpc.rstatd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/arm64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linprocfs... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 17:34:54 -0000 Author: glebius Date: Mon Apr 17 17:34:47 2017 New Revision: 317061 URL: https://svnweb.freebsd.org/changeset/base/317061 Log: - Remove 'struct vmmeter' from 'struct pcpu', leaving only global vmmeter in place. To do per-cpu stats, convert all fields that previously were maintained in the vmmeters that sit in pcpus to counter(9). - Since some vmmeter stats may be touched at very early stages of boot, before we have set up UMA and we can do counter_u64_alloc(), provide an early counter mechanism: o Leave one spare uint64_t in struct pcpu, named pc_early_dummy_counter. o Point counter(9) fields of vmmeter to pcpu[0].pc_early_dummy_counter, so that at early stages of boot, before counters are allocated we already point to a counter that can be safely written to. o For sparc64 that required a whole dummy pcpu[MAXCPU] array. Further related changes: - Don't include vmmeter.h into pcpu.h. - vm.stats.vm.v_swappgsout and vm.stats.vm.v_swappgsin changed to 64-bit, to match kernel representation. - struct vmmeter hidden under _KERNEL, and only vmstat(1) is an exclusion. This is based on benno@'s 4-year old patch: https://lists.freebsd.org/pipermail/freebsd-arch/2013-July/014471.html Reviewed by: kib, gallatin, marius, lidl Differential Revision: https://reviews.freebsd.org/D10156 Modified: head/libexec/rpc.rstatd/rstat_proc.c head/sys/amd64/amd64/trap.c head/sys/amd64/include/atomic.h head/sys/amd64/include/counter.h head/sys/amd64/include/pcpu.h head/sys/arm/arm/intr.c head/sys/arm/arm/trap-v4.c head/sys/arm/arm/trap-v6.c head/sys/arm/arm/undefined.c head/sys/arm/include/counter.h head/sys/arm/include/pcpu.h head/sys/arm64/include/counter.h head/sys/arm64/include/pcpu.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c head/sys/compat/linprocfs/linprocfs.c head/sys/fs/fuse/fuse_vnops.c head/sys/fs/nfsclient/nfs_clbio.c head/sys/fs/smbfs/smbfs_io.c head/sys/i386/i386/trap.c head/sys/i386/include/atomic.h head/sys/i386/include/counter.h head/sys/i386/include/pcpu.h head/sys/kern/kern_fork.c head/sys/kern/kern_intr.c head/sys/kern/kern_synch.c head/sys/kern/kern_thread.c head/sys/kern/subr_intr.c head/sys/kern/subr_syscall.c head/sys/kern/subr_trap.c head/sys/kern/vfs_bio.c head/sys/mips/include/counter.h head/sys/mips/include/intr_machdep.h head/sys/mips/include/pcpu.h head/sys/powerpc/include/counter.h head/sys/powerpc/include/pcpu.h head/sys/powerpc/powerpc/trap.c head/sys/sparc64/include/counter.h head/sys/sparc64/include/pcpu.h head/sys/sparc64/sparc64/exception.S head/sys/sparc64/sparc64/genassym.c head/sys/sparc64/sparc64/intr_machdep.c head/sys/sparc64/sparc64/machdep.c head/sys/sparc64/sparc64/trap.c head/sys/sys/pcpu.h head/sys/sys/vmmeter.h head/sys/vm/swap_pager.c head/sys/vm/vm_fault.c head/sys/vm/vm_meter.c head/sys/vm/vm_object.c head/sys/vm/vm_page.c head/sys/vm/vm_pageout.c head/sys/vm/vnode_pager.c head/sys/x86/acpica/srat.c head/sys/x86/x86/intr_machdep.c head/usr.bin/top/machine.c head/usr.bin/vmstat/vmstat.c Modified: head/libexec/rpc.rstatd/rstat_proc.c ============================================================================== --- head/libexec/rpc.rstatd/rstat_proc.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/libexec/rpc.rstatd/rstat_proc.c Mon Apr 17 17:34:47 2017 (r317061) @@ -170,6 +170,7 @@ updatestat(void) struct timeval tm, btm; int mib[6]; size_t len; + uint64_t val; int ifcount; #ifdef DEBUG @@ -229,11 +230,12 @@ updatestat(void) #endif #define FETCH_CNT(stat, cnt) do { \ - len = sizeof((stat)); \ - if (sysctlbyname("vm.stats." #cnt , &(stat), &len, 0, 0) < 0) { \ - syslog(LOG_ERR, "sysctl(vm.stats." #cnt "): %m"); \ + len = sizeof(uint64_t); \ + if (sysctlbyname("vm.stats." #cnt , &val, &len, NULL, 0) < 0) { \ + syslog(LOG_ERR, "sysctl(vm.stats." #cnt "): %m"); \ exit(1); \ } \ + stat = val; \ } while (0) FETCH_CNT(stats_all.s1.v_pgpgin, vm.v_vnodepgsin); Modified: head/sys/amd64/amd64/trap.c ============================================================================== --- head/sys/amd64/amd64/trap.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/amd64/amd64/trap.c Mon Apr 17 17:34:47 2017 (r317061) @@ -176,7 +176,7 @@ trap(struct trapframe *frame) register_t addr = 0; ksiginfo_t ksi; - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); type = frame->tf_trapno; #ifdef SMP Modified: head/sys/amd64/include/atomic.h ============================================================================== --- head/sys/amd64/include/atomic.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/amd64/include/atomic.h Mon Apr 17 17:34:47 2017 (r317061) @@ -348,7 +348,7 @@ atomic_testandclear_long(volatile u_long * avoid a dependency on sys/pcpu.h in machine/atomic.h consumers. * An assertion in amd64/vm_machdep.c ensures that the value is correct. */ -#define OFFSETOF_MONITORBUF 0x180 +#define OFFSETOF_MONITORBUF 0x100 #if defined(SMP) static __inline void Modified: head/sys/amd64/include/counter.h ============================================================================== --- head/sys/amd64/include/counter.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/amd64/include/counter.h Mon Apr 17 17:34:47 2017 (r317061) @@ -31,7 +31,9 @@ #include -extern struct pcpu __pcpu[1]; +extern struct pcpu __pcpu[]; + +#define EARLY_COUNTER &__pcpu[0].pc_early_dummy_counter #define counter_enter() do {} while (0) #define counter_exit() do {} while (0) Modified: head/sys/amd64/include/pcpu.h ============================================================================== --- head/sys/amd64/include/pcpu.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/amd64/include/pcpu.h Mon Apr 17 17:34:47 2017 (r317061) @@ -66,7 +66,7 @@ uint32_t pc_pcid_next; \ uint32_t pc_pcid_gen; \ uint32_t pc_smp_tlb_done; /* TLB op acknowledgement */ \ - char __pad[145] /* be divisor of PAGE_SIZE \ + char __pad[384] /* be divisor of PAGE_SIZE \ after cache alignment */ #define PC_DBREG_CMD_NONE 0 Modified: head/sys/arm/arm/intr.c ============================================================================== --- head/sys/arm/arm/intr.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/arm/arm/intr.c Mon Apr 17 17:34:47 2017 (r317061) @@ -185,7 +185,7 @@ intr_irq_handler(struct trapframe *frame struct intr_event *event; int i; - PCPU_INC(cnt.v_intr); + VM_CNT_INC(v_intr); i = -1; while ((i = arm_get_next_irq(i)) != -1) { intrcnt[i]++; Modified: head/sys/arm/arm/trap-v4.c ============================================================================== --- head/sys/arm/arm/trap-v4.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/arm/arm/trap-v4.c Mon Apr 17 17:34:47 2017 (r317061) @@ -204,7 +204,7 @@ abort_handler(struct trapframe *tf, int td = curthread; p = td->td_proc; - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); /* Data abort came from user mode? */ user = TRAP_USERMODE(tf); @@ -615,7 +615,7 @@ prefetch_abort_handler(struct trapframe td = curthread; p = td->td_proc; - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); if (TRAP_USERMODE(tf)) { td->td_frame = tf; Modified: head/sys/arm/arm/trap-v6.c ============================================================================== --- head/sys/arm/arm/trap-v6.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/arm/arm/trap-v6.c Mon Apr 17 17:34:47 2017 (r317061) @@ -291,7 +291,7 @@ abort_handler(struct trapframe *tf, int void *onfault; #endif - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); td = curthread; fsr = (prefetch) ? cp15_ifsr_get(): cp15_dfsr_get(); Modified: head/sys/arm/arm/undefined.c ============================================================================== --- head/sys/arm/arm/undefined.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/arm/arm/undefined.c Mon Apr 17 17:34:47 2017 (r317061) @@ -201,7 +201,7 @@ undefinedinstruction(struct trapframe *f if (__predict_true(frame->tf_spsr & PSR_F) == 0) enable_interrupts(PSR_F); - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); fault_pc = frame->tf_pc; Modified: head/sys/arm/include/counter.h ============================================================================== --- head/sys/arm/include/counter.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/arm/include/counter.h Mon Apr 17 17:34:47 2017 (r317061) @@ -32,6 +32,10 @@ #include #include +extern struct pcpu __pcpu[]; + +#define EARLY_COUNTER &__pcpu[0].pc_early_dummy_counter + #define counter_enter() do {} while (0) #define counter_exit() do {} while (0) Modified: head/sys/arm/include/pcpu.h ============================================================================== --- head/sys/arm/include/pcpu.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/arm/include/pcpu.h Mon Apr 17 17:34:47 2017 (r317061) @@ -57,10 +57,10 @@ struct vmspace; void *pc_qmap_pte2p; \ unsigned int pc_dbreg[32]; \ int pc_dbreg_cmd; \ - char __pad[27] + char __pad[155] #else #define PCPU_MD_FIELDS \ - char __pad[157] + char __pad[93] #endif #ifdef _KERNEL Modified: head/sys/arm64/include/counter.h ============================================================================== --- head/sys/arm64/include/counter.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/arm64/include/counter.h Mon Apr 17 17:34:47 2017 (r317061) @@ -32,6 +32,10 @@ #include #include +extern struct pcpu __pcpu[]; + +#define EARLY_COUNTER &__pcpu[0].pc_early_dummy_counter + #define counter_enter() do {} while (0) #define counter_exit() do {} while (0) Modified: head/sys/arm64/include/pcpu.h ============================================================================== --- head/sys/arm64/include/pcpu.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/arm64/include/pcpu.h Mon Apr 17 17:34:47 2017 (r317061) @@ -39,7 +39,7 @@ u_int pc_acpi_id; /* ACPI CPU id */ \ u_int pc_midr; /* stored MIDR value */ \ uint64_t pc_clock; \ - char __pad[113] + char __pad[241] #ifdef _KERNEL Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon Apr 17 17:34:47 2017 (r317061) @@ -4575,8 +4575,8 @@ zfs_getpages(struct vnode *vp, vm_page_t return (zfs_vm_pagerret_bad); } - PCPU_INC(cnt.v_vnodein); - PCPU_ADD(cnt.v_vnodepgsin, count); + VM_CNT_INC(v_vnodein); + VM_CNT_ADD(v_vnodepgsin, count); lsize = PAGE_SIZE; if (IDX_TO_OFF(mlast->pindex) + lsize > object->un_pager.vnp.vnp_size) @@ -4758,8 +4758,8 @@ zfs_putpages(struct vnode *vp, vm_page_t vm_page_undirty(ma[i]); } zfs_vmobject_wunlock(object); - PCPU_INC(cnt.v_vnodeout); - PCPU_ADD(cnt.v_vnodepgsout, ncount); + VM_CNT_INC(v_vnodeout); + VM_CNT_ADD(v_vnodepgsout, ncount); } dmu_tx_commit(tx); Modified: head/sys/compat/linprocfs/linprocfs.c ============================================================================== --- head/sys/compat/linprocfs/linprocfs.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/compat/linprocfs/linprocfs.c Mon Apr 17 17:34:47 2017 (r317061) @@ -425,17 +425,17 @@ linprocfs_dostat(PFS_FILL_ARGS) } sbuf_printf(sb, "disk 0 0 0 0\n" - "page %u %u\n" - "swap %u %u\n" - "intr %u\n" - "ctxt %u\n" + "page %ju %ju\n" + "swap %ju %ju\n" + "intr %ju\n" + "ctxt %ju\n" "btime %lld\n", - vm_cnt.v_vnodepgsin, - vm_cnt.v_vnodepgsout, - vm_cnt.v_swappgsin, - vm_cnt.v_swappgsout, - vm_cnt.v_intr, - vm_cnt.v_swtch, + (uintmax_t)VM_CNT_FETCH(v_vnodepgsin), + (uintmax_t)VM_CNT_FETCH(v_vnodepgsout), + (uintmax_t)VM_CNT_FETCH(v_swappgsin), + (uintmax_t)VM_CNT_FETCH(v_swappgsout), + (uintmax_t)VM_CNT_FETCH(v_intr), + (uintmax_t)VM_CNT_FETCH(v_swtch), (long long)boottime.tv_sec); return (0); } Modified: head/sys/fs/fuse/fuse_vnops.c ============================================================================== --- head/sys/fs/fuse/fuse_vnops.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/fs/fuse/fuse_vnops.c Mon Apr 17 17:34:47 2017 (r317061) @@ -1793,8 +1793,8 @@ fuse_vnop_getpages(struct vop_getpages_a kva = (vm_offset_t)bp->b_data; pmap_qenter(kva, pages, npages); - PCPU_INC(cnt.v_vnodein); - PCPU_ADD(cnt.v_vnodepgsin, npages); + VM_CNT_INC(v_vnodein); + VM_CNT_ADD(v_vnodepgsin, npages); count = npages << PAGE_SHIFT; iov.iov_base = (caddr_t)kva; @@ -1927,8 +1927,8 @@ fuse_vnop_putpages(struct vop_putpages_a kva = (vm_offset_t)bp->b_data; pmap_qenter(kva, pages, npages); - PCPU_INC(cnt.v_vnodeout); - PCPU_ADD(cnt.v_vnodepgsout, count); + VM_CNT_INC(v_vnodeout); + VM_CNT_ADD(v_vnodepgsout, count); iov.iov_base = (caddr_t)kva; iov.iov_len = count; Modified: head/sys/fs/nfsclient/nfs_clbio.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clbio.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/fs/nfsclient/nfs_clbio.c Mon Apr 17 17:34:47 2017 (r317061) @@ -184,8 +184,8 @@ ncl_getpages(struct vop_getpages_args *a kva = (vm_offset_t) bp->b_data; pmap_qenter(kva, pages, npages); - PCPU_INC(cnt.v_vnodein); - PCPU_ADD(cnt.v_vnodepgsin, npages); + VM_CNT_INC(v_vnodein); + VM_CNT_ADD(v_vnodepgsin, npages); count = npages << PAGE_SHIFT; iov.iov_base = (caddr_t) kva; @@ -320,8 +320,8 @@ ncl_putpages(struct vop_putpages_args *a } mtx_unlock(&np->n_mtx); - PCPU_INC(cnt.v_vnodeout); - PCPU_ADD(cnt.v_vnodepgsout, count); + VM_CNT_INC(v_vnodeout); + VM_CNT_ADD(v_vnodepgsout, count); iov.iov_base = unmapped_buf; iov.iov_len = count; Modified: head/sys/fs/smbfs/smbfs_io.c ============================================================================== --- head/sys/fs/smbfs/smbfs_io.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/fs/smbfs/smbfs_io.c Mon Apr 17 17:34:47 2017 (r317061) @@ -470,8 +470,8 @@ smbfs_getpages(ap) kva = (vm_offset_t) bp->b_data; pmap_qenter(kva, pages, npages); - PCPU_INC(cnt.v_vnodein); - PCPU_ADD(cnt.v_vnodepgsin, npages); + VM_CNT_INC(v_vnodein); + VM_CNT_ADD(v_vnodepgsin, npages); count = npages << PAGE_SHIFT; iov.iov_base = (caddr_t) kva; @@ -595,8 +595,8 @@ smbfs_putpages(ap) kva = (vm_offset_t) bp->b_data; pmap_qenter(kva, pages, npages); - PCPU_INC(cnt.v_vnodeout); - PCPU_ADD(cnt.v_vnodepgsout, count); + VM_CNT_INC(v_vnodeout); + VM_CNT_ADD(v_vnodepgsout, count); iov.iov_base = (caddr_t) kva; iov.iov_len = count; Modified: head/sys/i386/i386/trap.c ============================================================================== --- head/sys/i386/i386/trap.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/i386/i386/trap.c Mon Apr 17 17:34:47 2017 (r317061) @@ -192,7 +192,7 @@ trap(struct trapframe *frame) static int lastalert = 0; #endif - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); type = frame->tf_trapno; #ifdef SMP Modified: head/sys/i386/include/atomic.h ============================================================================== --- head/sys/i386/include/atomic.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/i386/include/atomic.h Mon Apr 17 17:34:47 2017 (r317061) @@ -45,7 +45,7 @@ * avoid a dependency on sys/pcpu.h in machine/atomic.h consumers. * An assertion in i386/vm_machdep.c ensures that the value is correct. */ -#define __OFFSETOF_MONITORBUF 0x180 +#define __OFFSETOF_MONITORBUF 0x80 static __inline void __mbk(void) Modified: head/sys/i386/include/counter.h ============================================================================== --- head/sys/i386/include/counter.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/i386/include/counter.h Mon Apr 17 17:34:47 2017 (r317061) @@ -36,6 +36,10 @@ #include #include +extern struct pcpu __pcpu[]; + +#define EARLY_COUNTER &__pcpu[0].pc_early_dummy_counter + #define counter_enter() do { \ if ((cpu_feature & CPUID_CX8) == 0) \ critical_enter(); \ @@ -46,8 +50,6 @@ critical_exit(); \ } while (0) -extern struct pcpu __pcpu[MAXCPU]; - static inline void counter_64_inc_8b(uint64_t *p, int64_t inc) { Modified: head/sys/i386/include/pcpu.h ============================================================================== --- head/sys/i386/include/pcpu.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/i386/include/pcpu.h Mon Apr 17 17:34:47 2017 (r317061) @@ -68,7 +68,7 @@ caddr_t pc_cmap_addr2; \ vm_offset_t pc_qmap_addr; /* KVA for temporary mappings */\ uint32_t pc_smp_tlb_done; /* TLB op acknowledgement */ \ - char __pad[189] + char __pad[445] #ifdef _KERNEL Modified: head/sys/kern/kern_fork.c ============================================================================== --- head/sys/kern/kern_fork.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/kern/kern_fork.c Mon Apr 17 17:34:47 2017 (r317061) @@ -664,20 +664,20 @@ do_fork(struct thread *td, struct fork_r vm_forkproc(td, p2, td2, vm2, fr->fr_flags); if (fr->fr_flags == (RFFDG | RFPROC)) { - PCPU_INC(cnt.v_forks); - PCPU_ADD(cnt.v_forkpages, p2->p_vmspace->vm_dsize + + VM_CNT_INC(v_forks); + VM_CNT_ADD(v_forkpages, p2->p_vmspace->vm_dsize + p2->p_vmspace->vm_ssize); } else if (fr->fr_flags == (RFFDG | RFPROC | RFPPWAIT | RFMEM)) { - PCPU_INC(cnt.v_vforks); - PCPU_ADD(cnt.v_vforkpages, p2->p_vmspace->vm_dsize + + VM_CNT_INC(v_vforks); + VM_CNT_ADD(v_vforkpages, p2->p_vmspace->vm_dsize + p2->p_vmspace->vm_ssize); } else if (p1 == &proc0) { - PCPU_INC(cnt.v_kthreads); - PCPU_ADD(cnt.v_kthreadpages, p2->p_vmspace->vm_dsize + + VM_CNT_INC(v_kthreads); + VM_CNT_ADD(v_kthreadpages, p2->p_vmspace->vm_dsize + p2->p_vmspace->vm_ssize); } else { - PCPU_INC(cnt.v_rforks); - PCPU_ADD(cnt.v_rforkpages, p2->p_vmspace->vm_dsize + + VM_CNT_INC(v_rforks); + VM_CNT_ADD(v_rforkpages, p2->p_vmspace->vm_dsize + p2->p_vmspace->vm_ssize); } Modified: head/sys/kern/kern_intr.c ============================================================================== --- head/sys/kern/kern_intr.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/kern/kern_intr.c Mon Apr 17 17:34:47 2017 (r317061) @@ -1156,7 +1156,7 @@ swi_sched(void *cookie, int flags) ih->ih_need = 1; if (!(flags & SWI_DELAY)) { - PCPU_INC(cnt.v_soft); + VM_CNT_INC(v_soft); #ifdef INTR_FILTER error = intr_event_schedule_thread(ie, ie->ie_thread); #else Modified: head/sys/kern/kern_synch.c ============================================================================== --- head/sys/kern/kern_synch.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/kern/kern_synch.c Mon Apr 17 17:34:47 2017 (r317061) @@ -426,7 +426,7 @@ mi_switch(int flags, struct thread *newt td->td_incruntime += runtime; PCPU_SET(switchtime, new_switchtime); td->td_generation++; /* bump preempt-detect counter */ - PCPU_INC(cnt.v_swtch); + VM_CNT_INC(v_swtch); PCPU_SET(switchticks, ticks); CTR4(KTR_PROC, "mi_switch: old thread %ld (td_sched %p, pid %ld, %s)", td->td_tid, td_get_sched(td), td->td_proc->p_pid, td->td_name); Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/kern/kern_thread.c Mon Apr 17 17:34:47 2017 (r317061) @@ -546,7 +546,7 @@ thread_exit(void) td->td_incruntime += runtime; PCPU_SET(switchtime, new_switchtime); PCPU_SET(switchticks, ticks); - PCPU_INC(cnt.v_swtch); + VM_CNT_INC(v_swtch); /* Save our resource usage in our process. */ td->td_ru.ru_nvcsw++; Modified: head/sys/kern/subr_intr.c ============================================================================== --- head/sys/kern/subr_intr.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/kern/subr_intr.c Mon Apr 17 17:34:47 2017 (r317061) @@ -292,7 +292,7 @@ intr_irq_handler(struct trapframe *tf) KASSERT(irq_root_filter != NULL, ("%s: no filter", __func__)); - PCPU_INC(cnt.v_intr); + VM_CNT_INC(v_intr); critical_enter(); td = curthread; oldframe = td->td_intr_frame; Modified: head/sys/kern/subr_syscall.c ============================================================================== --- head/sys/kern/subr_syscall.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/kern/subr_syscall.c Mon Apr 17 17:34:47 2017 (r317061) @@ -58,7 +58,7 @@ syscallenter(struct thread *td, struct s struct proc *p; int error, traced; - PCPU_INC(cnt.v_syscall); + VM_CNT_INC(v_syscall); p = td->td_proc; td->td_pticks = 0; Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/kern/subr_trap.c Mon Apr 17 17:34:47 2017 (r317061) @@ -234,7 +234,7 @@ ast(struct trapframe *framep) td->td_flags &= ~(TDF_ASTPENDING | TDF_NEEDSIGCHK | TDF_NEEDSUSPCHK | TDF_NEEDRESCHED | TDF_ALRMPEND | TDF_PROFPEND | TDF_MACPEND); thread_unlock(td); - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); if (td->td_cowgen != p->p_cowgen) thread_cow_update(td); Modified: head/sys/kern/vfs_bio.c ============================================================================== --- head/sys/kern/vfs_bio.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/kern/vfs_bio.c Mon Apr 17 17:34:47 2017 (r317061) @@ -4769,8 +4769,8 @@ vfs_bio_getpages(struct vnode *vp, vm_pa pgsin += pgsin_a; if (rahead != NULL) *rahead = pgsin_a; - PCPU_INC(cnt.v_vnodein); - PCPU_ADD(cnt.v_vnodepgsin, pgsin); + VM_CNT_INC(v_vnodein); + VM_CNT_ADD(v_vnodepgsin, pgsin); br_flags = (mp != NULL && (mp->mnt_kern_flag & MNTK_UNMAPPED_BUFS) != 0) ? GB_UNMAPPED : 0; Modified: head/sys/mips/include/counter.h ============================================================================== --- head/sys/mips/include/counter.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/mips/include/counter.h Mon Apr 17 17:34:47 2017 (r317061) @@ -34,6 +34,8 @@ #include #endif +#define EARLY_COUNTER &((struct pcpu *)pcpu_space)->pc_early_dummy_counter + #define counter_enter() critical_enter() #define counter_exit() critical_exit() Modified: head/sys/mips/include/intr_machdep.h ============================================================================== --- head/sys/mips/include/intr_machdep.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/mips/include/intr_machdep.h Mon Apr 17 17:34:47 2017 (r317061) @@ -71,6 +71,6 @@ mips_intrcnt_inc(mips_intrcnt_t counter) { if (counter) atomic_add_long(counter, 1); - PCPU_INC(cnt.v_intr); + VM_CNT_INC(v_intr); } #endif /* !_MACHINE_INTR_MACHDEP_H_ */ Modified: head/sys/mips/include/pcpu.h ============================================================================== --- head/sys/mips/include/pcpu.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/mips/include/pcpu.h Mon Apr 17 17:34:47 2017 (r317061) @@ -45,11 +45,11 @@ #ifdef __mips_n64 #define PCPU_MD_MIPS64_FIELDS \ PCPU_MD_COMMON_FIELDS \ - char __pad[53] + char __pad[245] #else #define PCPU_MD_MIPS32_FIELDS \ PCPU_MD_COMMON_FIELDS \ - char __pad[189] + char __pad[125] #endif #ifdef __mips_n64 Modified: head/sys/powerpc/include/counter.h ============================================================================== --- head/sys/powerpc/include/counter.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/powerpc/include/counter.h Mon Apr 17 17:34:47 2017 (r317061) @@ -34,6 +34,10 @@ #include #endif +extern struct pcpu __pcpu[]; + +#define EARLY_COUNTER &__pcpu[0].pc_early_dummy_counter + #ifdef __powerpc64__ #define counter_enter() do {} while (0) @@ -79,8 +83,6 @@ counter_u64_zero_inline(counter_u64_t c) #define counter_u64_add_protected(c, i) counter_u64_add(c, i) -extern struct pcpu __pcpu[MAXCPU]; - static inline void counter_u64_add(counter_u64_t c, int64_t inc) { Modified: head/sys/powerpc/include/pcpu.h ============================================================================== --- head/sys/powerpc/include/pcpu.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/powerpc/include/pcpu.h Mon Apr 17 17:34:47 2017 (r317061) @@ -57,7 +57,7 @@ struct pvo_entry; vm_offset_t pc_qmap_addr; \ struct pvo_entry *pc_qmap_pvo; \ struct mtx pc_qmap_lock; \ - /* char __pad[0] */ + char __pad[128] #define PCPU_MD_AIM64_FIELDS \ struct slb pc_slb[64]; \ @@ -67,7 +67,7 @@ struct pvo_entry; vm_offset_t pc_qmap_addr; \ struct pvo_entry *pc_qmap_pvo; \ struct mtx pc_qmap_lock; \ - char __pad[1121 - sizeof(struct mtx)] + char __pad[1345] #ifdef __powerpc64__ #define PCPU_MD_AIM_FIELDS PCPU_MD_AIM64_FIELDS @@ -81,9 +81,9 @@ struct pvo_entry; #define BOOKE_TLBSAVE_LEN (BOOKE_TLB_SAVELEN * BOOKE_TLB_MAXNEST) #ifdef __powerpc64__ -#define BOOKE_PCPU_PAD 773 +#define BOOKE_PCPU_PAD 901 #else -#define BOOKE_PCPU_PAD 173 +#define BOOKE_PCPU_PAD 429 #endif #define PCPU_MD_BOOKE_FIELDS \ register_t pc_booke_critsave[BOOKE_CRITSAVE_LEN]; \ Modified: head/sys/powerpc/powerpc/trap.c ============================================================================== --- head/sys/powerpc/powerpc/trap.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/powerpc/powerpc/trap.c Mon Apr 17 17:34:47 2017 (r317061) @@ -171,7 +171,7 @@ trap(struct trapframe *frame) u_int ucode; ksiginfo_t ksi; - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); td = curthread; p = td->td_proc; Modified: head/sys/sparc64/include/counter.h ============================================================================== --- head/sys/sparc64/include/counter.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sparc64/include/counter.h Mon Apr 17 17:34:47 2017 (r317061) @@ -34,6 +34,9 @@ #include #endif +extern struct pcpu dummy_pcpu[]; +#define EARLY_COUNTER &dummy_pcpu[0].pc_early_dummy_counter + #define counter_enter() critical_enter() #define counter_exit() critical_exit() Modified: head/sys/sparc64/include/pcpu.h ============================================================================== --- head/sys/sparc64/include/pcpu.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sparc64/include/pcpu.h Mon Apr 17 17:34:47 2017 (r317061) @@ -62,7 +62,7 @@ struct pmap; u_int pc_tlb_ctx; \ u_int pc_tlb_ctx_max; \ u_int pc_tlb_ctx_min; \ - char __pad[397] + char __pad[653] #ifdef _KERNEL Modified: head/sys/sparc64/sparc64/exception.S ============================================================================== --- head/sys/sparc64/sparc64/exception.S Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sparc64/sparc64/exception.S Mon Apr 17 17:34:47 2017 (r317061) @@ -2476,9 +2476,8 @@ ENTRY(tl0_intr) inc %l1 stx %l1, [%l0] - lduw [PCPU(CNT) + V_INTR], %l0 - inc %l0 - stw %l0, [PCPU(CNT) + V_INTR] + call counter_intr_inc + nop ba,a %xcc, tl0_ret nop @@ -2989,11 +2988,8 @@ ENTRY(tl1_intr) add %l5, %l4, %l4 ldx [%l4], %l5 inc %l5 - stx %l5, [%l4] - - lduw [PCPU(CNT) + V_INTR], %l4 - inc %l4 - stw %l4, [PCPU(CNT) + V_INTR] + call counter_intr_inc + stx %l5, [%l4] ldx [%sp + SPOFF + CCFSZ + TF_Y], %l4 Modified: head/sys/sparc64/sparc64/genassym.c ============================================================================== --- head/sys/sparc64/sparc64/genassym.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sparc64/sparc64/genassym.c Mon Apr 17 17:34:47 2017 (r317061) @@ -134,7 +134,6 @@ ASSYM(PC_CPUID, offsetof(struct pcpu, pc ASSYM(PC_IRHEAD, offsetof(struct pcpu, pc_irhead)); ASSYM(PC_IRTAIL, offsetof(struct pcpu, pc_irtail)); ASSYM(PC_IRFREE, offsetof(struct pcpu, pc_irfree)); -ASSYM(PC_CNT, offsetof(struct pcpu, pc_cnt)); ASSYM(PC_SIZEOF, sizeof(struct pcpu)); ASSYM(PC_CACHE, offsetof(struct pcpu, pc_cache)); Modified: head/sys/sparc64/sparc64/intr_machdep.c ============================================================================== --- head/sys/sparc64/sparc64/intr_machdep.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sparc64/sparc64/intr_machdep.c Mon Apr 17 17:34:47 2017 (r317061) @@ -123,6 +123,7 @@ static void intr_stray_level(struct trap static void intr_stray_vector(void *); static int intrcnt_setname(const char *, int); static void intrcnt_updatename(int, const char *, int); +void counter_intr_inc(void); static void intrcnt_updatename(int vec, const char *name, int ispil) @@ -451,6 +452,19 @@ intr_describe(int vec, void *ih, const c return (error); } +/* + * Do VM_CNT_INC(intr), being in the interrupt context already. This is + * called from assembly. + * To avoid counter_enter() and appropriate assertion, unwrap VM_CNT_INC() + * and hardcode the actual increment. + */ +void +counter_intr_inc(void) +{ + + *(uint64_t *)zpcpu_get(vm_cnt.v_intr) += 1; +} + #ifdef SMP /* * Support for balancing interrupt sources across CPUs. For now we just Modified: head/sys/sparc64/sparc64/machdep.c ============================================================================== --- head/sys/sparc64/sparc64/machdep.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sparc64/sparc64/machdep.c Mon Apr 17 17:34:47 2017 (r317061) @@ -126,6 +126,7 @@ long realmem; void *dpcpu0; char pcpu0[PCPU_PAGES * PAGE_SIZE]; +struct pcpu dummy_pcpu[MAXCPU]; struct trapframe frame0; vm_offset_t kstack0; Modified: head/sys/sparc64/sparc64/trap.c ============================================================================== --- head/sys/sparc64/sparc64/trap.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sparc64/sparc64/trap.c Mon Apr 17 17:34:47 2017 (r317061) @@ -267,7 +267,7 @@ trap(struct trapframe *tf) trap_msg[tf->tf_type & ~T_KERNEL], (TRAPF_USERMODE(tf) ? "user" : "kernel"), rdpr(pil)); - PCPU_INC(cnt.v_trap); + VM_CNT_INC(v_trap); if ((tf->tf_tstate & TSTATE_PRIV) == 0) { KASSERT(td != NULL, ("trap: curthread NULL")); Modified: head/sys/sys/pcpu.h ============================================================================== --- head/sys/sys/pcpu.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sys/pcpu.h Mon Apr 17 17:34:47 2017 (r317061) @@ -43,7 +43,6 @@ #include #include #include -#include #include #include @@ -158,7 +157,6 @@ struct pcpu { u_int pc_cpuid; /* This cpu number */ STAILQ_ENTRY(pcpu) pc_allcpu; struct lock_list_entry *pc_spinlocks; - struct vmmeter pc_cnt; /* VM stats counters */ long pc_cp_time[CPUSTATES]; /* statclock ticks */ struct device *pc_device; void *pc_netisr; /* netisr SWI cookie */ @@ -166,6 +164,7 @@ struct pcpu { int pc_domain; /* Memory domain. */ struct rm_queue pc_rm_queue; /* rmlock list of trackers */ uintptr_t pc_dynamic; /* Dynamic per-cpu data area */ + uint64_t pc_early_dummy_counter; /* Startup time counter(9) */ /* * Keep MD fields last, so that CPU-specific variations on a Modified: head/sys/sys/vmmeter.h ============================================================================== --- head/sys/sys/vmmeter.h Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/sys/vmmeter.h Mon Apr 17 17:34:47 2017 (r317061) @@ -39,50 +39,84 @@ */ #define MAXSLP 20 +/* Systemwide totals computed every five seconds. */ +struct vmtotal { + int16_t t_rq; /* length of the run queue */ + int16_t t_dw; /* jobs in ``disk wait'' (neg priority) */ + int16_t t_pw; /* jobs in page wait */ + int16_t t_sl; /* jobs sleeping in core */ + int16_t t_sw; /* swapped out runnable/short block jobs */ + int32_t t_vm; /* total virtual memory */ + int32_t t_avm; /* active virtual memory */ + int32_t t_rm; /* total real memory in use */ + int32_t t_arm; /* active real memory */ + int32_t t_vmshr; /* shared virtual memory */ + int32_t t_avmshr; /* active shared virtual memory */ + int32_t t_rmshr; /* shared real memory */ + int32_t t_armshr; /* active shared real memory */ + int32_t t_free; /* free memory pages */ +}; + +#if defined(_KERNEL) || defined(_WANT_VMMETER) +#include + /* * System wide statistics counters. * Locking: * a - locked by atomic operations * c - constant after initialization * f - locked by vm_page_queue_free_mtx - * p - locked by being in the PCPU and atomicity respect to interrupts + * p - uses counter(9) * q - changes are synchronized by the corresponding vm_pagequeue lock */ struct vmmeter { /* * General system activity. */ - u_int v_swtch; /* (p) context switches */ - u_int v_trap; /* (p) calls to trap */ - u_int v_syscall; /* (p) calls to syscall() */ - u_int v_intr; /* (p) device interrupts */ - u_int v_soft; /* (p) software interrupts */ + counter_u64_t v_swtch; /* (p) context switches */ + counter_u64_t v_trap; /* (p) calls to trap */ + counter_u64_t v_syscall; /* (p) calls to syscall() */ + counter_u64_t v_intr; /* (p) device interrupts */ + counter_u64_t v_soft; /* (p) software interrupts */ /* * Virtual memory activity. */ - u_int v_vm_faults; /* (p) address memory faults */ - u_int v_io_faults; /* (p) page faults requiring I/O */ - u_int v_cow_faults; /* (p) copy-on-writes faults */ - u_int v_cow_optim; /* (p) optimized copy-on-writes faults */ - u_int v_zfod; /* (p) pages zero filled on demand */ - u_int v_ozfod; /* (p) optimized zero fill pages */ - u_int v_swapin; /* (p) swap pager pageins */ - u_int v_swapout; /* (p) swap pager pageouts */ - u_int v_swappgsin; /* (p) swap pager pages paged in */ - u_int v_swappgsout; /* (p) swap pager pages paged out */ - u_int v_vnodein; /* (p) vnode pager pageins */ - u_int v_vnodeout; /* (p) vnode pager pageouts */ - u_int v_vnodepgsin; /* (p) vnode_pager pages paged in */ - u_int v_vnodepgsout; /* (p) vnode pager pages paged out */ - u_int v_intrans; /* (p) intransit blocking page faults */ - u_int v_reactivated; /* (p) pages reactivated by the pagedaemon */ - u_int v_pdwakeups; /* (p) times daemon has awaken from sleep */ - u_int v_pdpages; /* (p) pages analyzed by daemon */ - u_int v_pdshortfalls; /* (p) page reclamation shortfalls */ - - u_int v_dfree; /* (p) pages freed by daemon */ - u_int v_pfree; /* (p) pages freed by exiting processes */ - u_int v_tfree; /* (p) total pages freed */ + counter_u64_t v_vm_faults; /* (p) address memory faults */ + counter_u64_t v_io_faults; /* (p) page faults requiring I/O */ + counter_u64_t v_cow_faults; /* (p) copy-on-writes faults */ + counter_u64_t v_cow_optim; /* (p) optimized COW faults */ + counter_u64_t v_zfod; /* (p) pages zero filled on demand */ + counter_u64_t v_ozfod; /* (p) optimized zero fill pages */ + counter_u64_t v_swapin; /* (p) swap pager pageins */ + counter_u64_t v_swapout; /* (p) swap pager pageouts */ + counter_u64_t v_swappgsin; /* (p) swap pager pages paged in */ + counter_u64_t v_swappgsout; /* (p) swap pager pages paged out */ + counter_u64_t v_vnodein; /* (p) vnode pager pageins */ + counter_u64_t v_vnodeout; /* (p) vnode pager pageouts */ + counter_u64_t v_vnodepgsin; /* (p) vnode_pager pages paged in */ + counter_u64_t v_vnodepgsout; /* (p) vnode pager pages paged out */ + counter_u64_t v_intrans; /* (p) intransit blocking page faults */ + counter_u64_t v_reactivated; /* (p) reactivated by the pagedaemon */ + counter_u64_t v_pdwakeups; /* (p) times daemon has awaken */ + counter_u64_t v_pdpages; /* (p) pages analyzed by daemon */ + counter_u64_t v_pdshortfalls; /* (p) page reclamation shortfalls */ + + counter_u64_t v_dfree; /* (p) pages freed by daemon */ + counter_u64_t v_pfree; /* (p) pages freed by processes */ + counter_u64_t v_tfree; /* (p) total pages freed */ + /* + * Fork/vfork/rfork activity. + */ + counter_u64_t v_forks; /* (p) fork() calls */ + counter_u64_t v_vforks; /* (p) vfork() calls */ + counter_u64_t v_rforks; /* (p) rfork() calls */ + counter_u64_t v_kthreads; /* (p) fork() calls by kernel */ + counter_u64_t v_forkpages; /* (p) pages affected by fork() */ + counter_u64_t v_vforkpages; /* (p) pages affected by vfork() */ + counter_u64_t v_rforkpages; /* (p) pages affected by rfork() */ + counter_u64_t v_kthreadpages; /* (p) ... and by kernel fork() */ +#define VM_METER_NCOUNTERS \ + (offsetof(struct vmmeter, v_page_size) / sizeof(counter_u64_t)) /* * Distribution of page usages. */ @@ -100,24 +134,18 @@ struct vmmeter { u_int v_pageout_free_min; /* (c) min pages reserved for kernel */ u_int v_interrupt_free_min; /* (c) reserved pages for int code */ u_int v_free_severe; /* (c) severe page depletion point */ - /* - * Fork/vfork/rfork activity. - */ - u_int v_forks; /* (p) fork() calls */ - u_int v_vforks; /* (p) vfork() calls */ - u_int v_rforks; /* (p) rfork() calls */ - u_int v_kthreads; /* (p) fork() calls by kernel */ - u_int v_forkpages; /* (p) VM pages affected by fork() */ - u_int v_vforkpages; /* (p) VM pages affected by vfork() */ - u_int v_rforkpages; /* (p) VM pages affected by rfork() */ - u_int v_kthreadpages; /* (p) VM pages affected by fork() by kernel */ }; +#endif /* _KERNEL || _WANT_VMMETER */ + #ifdef _KERNEL extern struct vmmeter vm_cnt; - extern u_int vm_pageout_wakeup_thresh; +#define VM_CNT_ADD(var, x) counter_u64_add(vm_cnt.var, x) +#define VM_CNT_INC(var) VM_CNT_ADD(var, 1) +#define VM_CNT_FETCH(var) counter_u64_fetch(vm_cnt.var) + /* * Return TRUE if we are under our severe low-free-pages threshold * @@ -189,33 +217,5 @@ vm_laundry_target(void) return (vm_paging_target()); } - -/* - * Obtain the value of a per-CPU counter. - */ -#define VM_METER_PCPU_CNT(member) \ - vm_meter_cnt(__offsetof(struct vmmeter, member)) - -u_int vm_meter_cnt(size_t); - -#endif - -/* systemwide totals computed every five seconds */ -struct vmtotal { - int16_t t_rq; /* length of the run queue */ - int16_t t_dw; /* jobs in ``disk wait'' (neg priority) */ - int16_t t_pw; /* jobs in page wait */ - int16_t t_sl; /* jobs sleeping in core */ - int16_t t_sw; /* swapped out runnable/short block jobs */ - int32_t t_vm; /* total virtual memory */ - int32_t t_avm; /* active virtual memory */ - int32_t t_rm; /* total real memory in use */ - int32_t t_arm; /* active real memory */ - int32_t t_vmshr; /* shared virtual memory */ - int32_t t_avmshr; /* active shared virtual memory */ - int32_t t_rmshr; /* shared real memory */ - int32_t t_armshr; /* active shared real memory */ - int32_t t_free; /* free memory pages */ -}; - -#endif +#endif /* _KERNEL */ +#endif /* _SYS_VMMETER_H_ */ Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/vm/swap_pager.c Mon Apr 17 17:34:47 2017 (r317061) @@ -1180,8 +1180,8 @@ swap_pager_getpages(vm_object_t object, bp->b_pgbefore = rbehind != NULL ? *rbehind : 0; bp->b_pgafter = rahead != NULL ? *rahead : 0; - PCPU_INC(cnt.v_swapin); - PCPU_ADD(cnt.v_swappgsin, count); + VM_CNT_INC(v_swapin); + VM_CNT_ADD(v_swappgsin, count); /* * perform the I/O. NOTE!!! bp cannot be considered valid after @@ -1205,7 +1205,7 @@ swap_pager_getpages(vm_object_t object, VM_OBJECT_WLOCK(object); while ((m[0]->oflags & VPO_SWAPINPROG) != 0) { m[0]->oflags |= VPO_SWAPSLEEP; - PCPU_INC(cnt.v_intrans); + VM_CNT_INC(v_intrans); if (VM_OBJECT_SLEEP(object, &object->paging_in_progress, PSWP, "swread", hz * 20)) { printf( @@ -1393,8 +1393,8 @@ swap_pager_putpages(vm_object_t object, bp->b_dirtyoff = 0; bp->b_dirtyend = bp->b_bcount; - PCPU_INC(cnt.v_swapout); - PCPU_ADD(cnt.v_swappgsout, bp->b_npages); + VM_CNT_INC(v_swapout); + VM_CNT_ADD(v_swappgsout, bp->b_npages); /* * We unconditionally set rtvals[] to VM_PAGER_PEND so that we Modified: head/sys/vm/vm_fault.c ============================================================================== --- head/sys/vm/vm_fault.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/vm/vm_fault.c Mon Apr 17 17:34:47 2017 (r317061) @@ -497,7 +497,7 @@ vm_fault_hold(vm_map_t map, vm_offset_t boolean_t wired; /* Passed by reference. */ bool dead, growstack, hardfault, is_first_object_locked; - PCPU_INC(cnt.v_vm_faults); + VM_CNT_INC(v_vm_faults); fs.vp = NULL; faultcount = 0; nera = -1; @@ -673,7 +673,7 @@ RetryFault:; } vm_object_pip_wakeup(fs.object); VM_OBJECT_WUNLOCK(fs.object); - PCPU_INC(cnt.v_intrans); + VM_CNT_INC(v_intrans); vm_object_deallocate(fs.first_object); goto RetryFault; } @@ -999,9 +999,9 @@ readrest: if ((fs.m->flags & PG_ZERO) == 0) { pmap_zero_page(fs.m); } else { - PCPU_INC(cnt.v_ozfod); + VM_CNT_INC(v_ozfod); } - PCPU_INC(cnt.v_zfod); + VM_CNT_INC(v_zfod); fs.m->valid = VM_PAGE_BITS_ALL; /* Don't try to prefault neighboring pages. */ faultcount = 1; @@ -1095,7 +1095,7 @@ readrest: vm_page_xbusy(fs.m); fs.first_m = fs.m; fs.m = NULL; - PCPU_INC(cnt.v_cow_optim); + VM_CNT_INC(v_cow_optim); } else { /* * Oh, well, lets copy it. @@ -1131,7 +1131,7 @@ readrest: fs.m = fs.first_m; if (!is_first_object_locked) VM_OBJECT_WLOCK(fs.object); - PCPU_INC(cnt.v_cow_faults); + VM_CNT_INC(v_cow_faults); curthread->td_cow++; } else { prot &= ~VM_PROT_WRITE; @@ -1246,7 +1246,7 @@ readrest: */ unlock_and_deallocate(&fs); if (hardfault) { - PCPU_INC(cnt.v_io_faults); + VM_CNT_INC(v_io_faults); curthread->td_ru.ru_majflt++; #ifdef RACCT if (racct_enable && fs.object->type == OBJT_VNODE) { Modified: head/sys/vm/vm_meter.c ============================================================================== --- head/sys/vm/vm_meter.c Mon Apr 17 17:23:19 2017 (r317060) +++ head/sys/vm/vm_meter.c Mon Apr 17 17:34:47 2017 (r317061) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -55,7 +56,52 @@ __FBSDID("$FreeBSD$"); #include #include -struct vmmeter vm_cnt; +struct vmmeter vm_cnt = { + .v_swtch = EARLY_COUNTER, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 17 18:55:57 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 19A5AD42E6C; Mon, 17 Apr 2017 18:55:57 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E67851266; Mon, 17 Apr 2017 18:55:56 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HItu88056568; Mon, 17 Apr 2017 18:55:56 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HIttBD056481; Mon, 17 Apr 2017 18:55:55 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201704171855.v3HIttBD056481@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Mon, 17 Apr 2017 18:55:55 +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: r317062 - in stable/11: usr.bin/uuencode usr.bin/vmstat usr.bin/w usr.sbin/acpi/acpidump usr.sbin/boot0cfg usr.sbin/bsnmpd/modules/snmp_hostres usr.sbin/camdd usr.sbin/ctld usr.sbin/iscsid X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 18:55:57 -0000 Author: araujo Date: Mon Apr 17 18:55:54 2017 New Revision: 317062 URL: https://svnweb.freebsd.org/changeset/base/317062 Log: MFC r314987-r314989, r314993-r314994, r315046-r315049, r315102 r314987: Use nitems() from sys/param.h. Reviewed by: asomers MFC after: 3 weeks. Differential Revision: https://reviews.freebsd.org/D9944 r314988: Use nitems() from sys/param.h. Reviewed by: ume MFC after: 3 weeks. Differential Revision: https://reviews.freebsd.org/D9938 r314989: Use nitems() from sys/param.h and also remove the cast. Reviewed by: markj MFC after: 3 weeks. Differential Revision: https://reviews.freebsd.org/D9937 r314993: Use nitems() from sys/param.h. Reviewed by: ngie MFC after: 3 weeks. Differential Revision: https://reviews.freebsd.org/D9936 r314994: Use nitems() from sys/param.h. Reviewed by: ngie MFC after: 3 weeks. Differential Revision: https://reviews.freebsd.org/D9940 r315046: Use nitems() from sys/param.h Reviewed by: jhb MFC after: 3 weeks. Differential Revision: https://reviews.freebsd.org/D9941 r315047: Use nitems() from sys/param.h. Reviewed by: np MFC after: 3 weeks. Differential Revision: https://reviews.freebsd.org/D9945 r315048: Use nitems() from sys/param.h. MFC after: 3 weeks. r315049: Bring back the cast removed in my previous commit to allow us build vmstat with WARNS 2. This cast was first introduced at r87690. Reported by: bde, pfg and ngie MFC after: 3 weeks. r315102: Use nitems() from sys/param.h. Reviewed by: ngie Differential Revision: https://reviews.freebsd.org/D9943 Modified: stable/11/usr.bin/uuencode/uuencode.c stable/11/usr.bin/vmstat/vmstat.c stable/11/usr.bin/w/w.c stable/11/usr.sbin/acpi/acpidump/acpi.c stable/11/usr.sbin/boot0cfg/boot0cfg.c stable/11/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c stable/11/usr.sbin/camdd/camdd.c stable/11/usr.sbin/ctld/kernel.c stable/11/usr.sbin/iscsid/iscsid.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/uuencode/uuencode.c ============================================================================== --- stable/11/usr.bin/uuencode/uuencode.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.bin/uuencode/uuencode.c Mon Apr 17 18:55:54 2017 (r317062) @@ -160,7 +160,7 @@ base64_encode(void) fprintf(output, "begin-base64 %o %s\n", mode, *av); while ((n = fread(buf, 1, sizeof(buf), stdin))) { ++sequence; - rv = b64_ntop(buf, n, buf2, (sizeof(buf2) / sizeof(buf2[0]))); + rv = b64_ntop(buf, n, buf2, nitems(buf2)); if (rv == -1) errx(1, "b64_ntop: error encoding base64"); fprintf(output, "%s%s", buf2, (sequence % GROUPS) ? "" : "\n"); Modified: stable/11/usr.bin/vmstat/vmstat.c ============================================================================== --- stable/11/usr.bin/vmstat/vmstat.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.bin/vmstat/vmstat.c Mon Apr 17 18:55:54 2017 (r317062) @@ -288,17 +288,13 @@ retry_nlist: namelist[X_SUM].n_name = "_cnt"; goto retry_nlist; } - for (c = 0; - c < (int)(sizeof(namelist)/sizeof(namelist[0])); - c++) + for (c = 0; c < (int)(nitems(namelist)); c++) if (namelist[c].n_type == 0) bufsize += strlen(namelist[c].n_name) + 1; bufsize += len + 1; buf = bp = alloca(bufsize); - for (c = 0; - c < (int)(sizeof(namelist)/sizeof(namelist[0])); - c++) + for (c = 0; c < (int)(nitems(namelist)); c++) if (namelist[c].n_type == 0) { xo_error(" %s", namelist[c].n_name); Modified: stable/11/usr.bin/w/w.c ============================================================================== --- stable/11/usr.bin/w/w.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.bin/w/w.c Mon Apr 17 18:55:54 2017 (r317062) @@ -516,7 +516,7 @@ pr_header(time_t *nowp, int nusers) /* * Print 1, 5, and 15 minute load averages. */ - if (getloadavg(avenrun, sizeof(avenrun) / sizeof(avenrun[0])) == -1) + if (getloadavg(avenrun, nitems(avenrun)) == -1) xo_emit(", no load average information available\n"); else { static const char *format[] = { @@ -525,7 +525,7 @@ pr_header(time_t *nowp, int nusers) " {:load-average-15/%.2f}", }; xo_emit(", load averages:"); - for (i = 0; i < (int)(sizeof(avenrun) / sizeof(avenrun[0])); i++) { + for (i = 0; i < (int)(nitems(avenrun)); i++) { if (use_comma && i > 0) xo_emit(","); xo_emit(format[i], avenrun[i]); Modified: stable/11/usr.sbin/acpi/acpidump/acpi.c ============================================================================== --- stable/11/usr.sbin/acpi/acpidump/acpi.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.sbin/acpi/acpidump/acpi.c Mon Apr 17 18:55:54 2017 (r317062) @@ -394,7 +394,7 @@ acpi_print_madt(ACPI_SUBTABLE_HEADER *mp ACPI_MADT_LOCAL_X2APIC *x2apic; ACPI_MADT_LOCAL_X2APIC_NMI *x2apic_nmi; - if (mp->Type < sizeof(apic_types) / sizeof(apic_types[0])) + if (mp->Type < nitems(apic_types)) printf("\tType=%s\n", apic_types[mp->Type]); else printf("\tType=%d (unknown)\n", mp->Type); @@ -444,8 +444,7 @@ acpi_print_madt(ACPI_SUBTABLE_HEADER *mp break; case ACPI_MADT_TYPE_INTERRUPT_SOURCE: isrc = (ACPI_MADT_INTERRUPT_SOURCE *)mp; - if (isrc->Type < sizeof(platform_int_types) / - sizeof(platform_int_types[0])) + if (isrc->Type < nitems(platform_int_types)) printf("\tType=%s\n", platform_int_types[isrc->Type]); else printf("\tType=%d (unknown)\n", isrc->Type); @@ -1020,7 +1019,7 @@ acpi_print_srat(ACPI_SUBTABLE_HEADER *sr ACPI_SRAT_CPU_AFFINITY *cpu; ACPI_SRAT_X2APIC_CPU_AFFINITY *x2apic; - if (srat->Type < sizeof(srat_types) / sizeof(srat_types[0])) + if (srat->Type < nitems(srat_types)) printf("\tType=%s\n", srat_types[srat->Type]); else printf("\tType=%d (unknown)\n", srat->Type); Modified: stable/11/usr.sbin/boot0cfg/boot0cfg.c ============================================================================== --- stable/11/usr.sbin/boot0cfg/boot0cfg.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.sbin/boot0cfg/boot0cfg.c Mon Apr 17 18:55:54 2017 (r317062) @@ -88,7 +88,7 @@ static const struct { {"update", 1}, {"setdrv", 0} }; -static const int nopt = sizeof(opttbl) / sizeof(opttbl[0]); +static const int nopt = nitems(opttbl); static const char fmt0[] = "# flag start chs type" " end chs offset size\n"; Modified: stable/11/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c ============================================================================== --- stable/11/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c Mon Apr 17 18:55:54 2017 (r317062) @@ -143,7 +143,7 @@ static const struct { { "hpfs", &OIDX_hrFSHPFS_c }, { "smbfs", &OIDX_hrFSOther_c }, }; -#define N_FS_TYPE_MAP (sizeof(fs_type_map) / sizeof(fs_type_map[0])) +#define N_FS_TYPE_MAP nitems(fs_type_map) /** * Create an entry into the FS table and an entry in the map (if needed). Modified: stable/11/usr.sbin/camdd/camdd.c ============================================================================== --- stable/11/usr.sbin/camdd/camdd.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.sbin/camdd/camdd.c Mon Apr 17 18:55:54 2017 (r317062) @@ -1004,8 +1004,7 @@ camdd_probe_tape(int fd, char *filename, goto bailout; } - for (i = 0; i < sizeof(req_status_items) / - sizeof(req_status_items[0]); i++) { + for (i = 0; i < nitems(req_status_items); i++) { char *name; name = __DECONST(char *, req_status_items[i].name); Modified: stable/11/usr.sbin/ctld/kernel.c ============================================================================== --- stable/11/usr.sbin/ctld/kernel.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.sbin/ctld/kernel.c Mon Apr 17 18:55:54 2017 (r317062) @@ -1259,8 +1259,8 @@ kernel_capsicate(void) if (error != 0 && errno != ENOSYS) log_err(1, "cap_rights_limit"); - error = cap_ioctls_limit(ctl_fd, cmds, - sizeof(cmds) / sizeof(cmds[0])); + error = cap_ioctls_limit(ctl_fd, cmds, nitems(cmds)); + if (error != 0 && errno != ENOSYS) log_err(1, "cap_ioctls_limit"); Modified: stable/11/usr.sbin/iscsid/iscsid.c ============================================================================== --- stable/11/usr.sbin/iscsid/iscsid.c Mon Apr 17 17:34:47 2017 (r317061) +++ stable/11/usr.sbin/iscsid/iscsid.c Mon Apr 17 18:55:54 2017 (r317062) @@ -326,8 +326,8 @@ capsicate(struct connection *conn) if (error != 0 && errno != ENOSYS) log_err(1, "cap_rights_limit"); - error = cap_ioctls_limit(conn->conn_iscsi_fd, cmds, - sizeof(cmds) / sizeof(cmds[0])); + error = cap_ioctls_limit(conn->conn_iscsi_fd, cmds, nitems(cmds)); + if (error != 0 && errno != ENOSYS) log_err(1, "cap_ioctls_limit"); From owner-svn-src-all@freebsd.org Mon Apr 17 18:57:27 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D87CD41139; Mon, 17 Apr 2017 18:57:27 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5D73815C0; Mon, 17 Apr 2017 18:57:27 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HIvQ6W056712; Mon, 17 Apr 2017 18:57:26 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HIvQuO056710; Mon, 17 Apr 2017 18:57:26 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704171857.v3HIvQuO056710@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 18:57:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317063 - in head/sys: arm64/include compat/linprocfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 18:57:27 -0000 Author: emaste Date: Mon Apr 17 18:57:26 2017 New Revision: 317063 URL: https://svnweb.freebsd.org/changeset/base/317063 Log: Remove trailing whitespace from r317061 Modified: head/sys/arm64/include/counter.h head/sys/compat/linprocfs/linprocfs.c Modified: head/sys/arm64/include/counter.h ============================================================================== --- head/sys/arm64/include/counter.h Mon Apr 17 18:55:54 2017 (r317062) +++ head/sys/arm64/include/counter.h Mon Apr 17 18:57:26 2017 (r317063) @@ -33,7 +33,7 @@ #include extern struct pcpu __pcpu[]; - + #define EARLY_COUNTER &__pcpu[0].pc_early_dummy_counter #define counter_enter() do {} while (0) Modified: head/sys/compat/linprocfs/linprocfs.c ============================================================================== --- head/sys/compat/linprocfs/linprocfs.c Mon Apr 17 18:55:54 2017 (r317062) +++ head/sys/compat/linprocfs/linprocfs.c Mon Apr 17 18:57:26 2017 (r317063) @@ -434,7 +434,7 @@ linprocfs_dostat(PFS_FILL_ARGS) (uintmax_t)VM_CNT_FETCH(v_vnodepgsout), (uintmax_t)VM_CNT_FETCH(v_swappgsin), (uintmax_t)VM_CNT_FETCH(v_swappgsout), - (uintmax_t)VM_CNT_FETCH(v_intr), + (uintmax_t)VM_CNT_FETCH(v_intr), (uintmax_t)VM_CNT_FETCH(v_swtch), (long long)boottime.tv_sec); return (0); From owner-svn-src-all@freebsd.org Mon Apr 17 19:03:32 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76770D41425; Mon, 17 Apr 2017 19:03:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2FD2C1C41; Mon, 17 Apr 2017 19:03:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HJ3VaR060624; Mon, 17 Apr 2017 19:03:31 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HJ3VNA060623; Mon, 17 Apr 2017 19:03:31 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704171903.v3HJ3VNA060623@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 17 Apr 2017 19:03:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317064 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 19:03:32 -0000 Author: mav Date: Mon Apr 17 19:03:31 2017 New Revision: 317064 URL: https://svnweb.freebsd.org/changeset/base/317064 Log: Optimize pathologic case of telldir() for Samba. When application reads large directory, calling telldir() for each entry, like Samba does, it creates exponential performance drop as number of entries reach tenths to hundreds of thousands. It is caused by full search through the internal list, that never finds matches in that scenario, but creates O(n^2) delays. This patch optimizes that search, limiting it to entries of the same buffer, turning time closer to O(n) in case of linear directory scan. PR: 218622 Reviewed by: jhb, jilles MFC after: 2 weeks Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D10408 Modified: head/lib/libc/gen/telldir.c Modified: head/lib/libc/gen/telldir.c ============================================================================== --- head/lib/libc/gen/telldir.c Mon Apr 17 18:57:26 2017 (r317063) +++ head/lib/libc/gen/telldir.c Mon Apr 17 19:03:31 2017 (r317064) @@ -52,15 +52,22 @@ __FBSDID("$FreeBSD$"); long telldir(DIR *dirp) { - struct ddloc *lp; + struct ddloc *lp, *flp; long idx; if (__isthreaded) _pthread_mutex_lock(&dirp->dd_lock); + flp = NULL; LIST_FOREACH(lp, &dirp->dd_td->td_locq, loc_lqe) { - if (lp->loc_seek == dirp->dd_seek && - lp->loc_loc == dirp->dd_loc) + if (lp->loc_seek == dirp->dd_seek) { + if (flp == NULL) + flp = lp; + if (lp->loc_loc == dirp->dd_loc) + break; + } else if (flp != NULL) { + lp = NULL; break; + } } if (lp == NULL) { lp = malloc(sizeof(struct ddloc)); @@ -72,7 +79,10 @@ telldir(DIR *dirp) lp->loc_index = dirp->dd_td->td_loccnt++; lp->loc_seek = dirp->dd_seek; lp->loc_loc = dirp->dd_loc; - LIST_INSERT_HEAD(&dirp->dd_td->td_locq, lp, loc_lqe); + if (flp != NULL) + LIST_INSERT_BEFORE(flp, lp, loc_lqe); + else + LIST_INSERT_HEAD(&dirp->dd_td->td_locq, lp, loc_lqe); } idx = lp->loc_index; if (__isthreaded) From owner-svn-src-all@freebsd.org Mon Apr 17 19:08:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73891D414FF; Mon, 17 Apr 2017 19:08:50 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 45D7E1E46; Mon, 17 Apr 2017 19:08:50 +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 v3HJ8nvk060856; Mon, 17 Apr 2017 19:08:49 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HJ8nO6060855; Mon, 17 Apr 2017 19:08:49 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704171908.v3HJ8nO6060855@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 17 Apr 2017 19:08:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317065 - stable/11/share/misc X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 19:08:50 -0000 Author: bapt Date: Mon Apr 17 19:08:49 2017 New Revision: 317065 URL: https://svnweb.freebsd.org/changeset/base/317065 Log: MFC r316956: Update pci_vendors to 2017.04.03 Modified: stable/11/share/misc/pci_vendors Directory Properties: stable/11/ (props changed) Modified: stable/11/share/misc/pci_vendors ============================================================================== --- stable/11/share/misc/pci_vendors Mon Apr 17 19:03:31 2017 (r317064) +++ stable/11/share/misc/pci_vendors Mon Apr 17 19:08:49 2017 (r317065) @@ -3,8 +3,8 @@ # # List of PCI ID's # -# Version: 2017.03.16 -# Date: 2017-03-16 03:15:01 +# Version: 2017.04.03 +# Date: 2017-04-03 03:15:02 # # Maintained by Albert Pool, Martin Mares, and other volunteers from # the PCI ID Project at http://pci-ids.ucw.cz/. @@ -10674,7 +10674,7 @@ 1430 GM206GL [Quadro M2000] 1431 GM206GL [Tesla M4] 1436 GM206GLM [Quadro M2200 Mobile] - 15f0 GP100GL + 15f0 GP100GL [Quadro GP100] 15f1 GP100GL 15f7 GP100GL [Tesla P100 PCIe 12GB] 15f8 GP100GL [Tesla P100 PCIe 16GB] @@ -10707,7 +10707,7 @@ 1ba0 GP104M [GeForce GTX 1080 Mobile] 1ba1 GP104M [GeForce GTX 1070 Mobile] 1bb0 GP104GL [Quadro P5000] - 1bb1 GP104GL + 1bb1 GP104GL [Quadro P4000] 1bb3 GP104GL [Tesla P4] 1bb4 GP104GL 1bb6 GP104GLM [Quadro P5000 Mobile] @@ -10720,7 +10720,7 @@ 1c02 GP106 [GeForce GTX 1060 3GB] 1c03 GP106 [GeForce GTX 1060 6GB] 1c20 GP106M [GeForce GTX 1060 Mobile] - 1c30 GP106GL + 1c30 GP106GL [Quadro P2000] 1c35 GP106 1c60 GP106M [GeForce GTX 1060 Mobile] 1c61 GP106M [GeForce GTX 1050 Ti Mobile] @@ -10735,6 +10735,9 @@ 1ca7 GP107GL 1ca8 GP107GL 1caa GP107GL + 1cb1 GP107GL [Quardo P1000] + 1cb2 GP107GL [Quardo P600] + 1cb3 GP107GL [Quardo P400] 1d01 GP108 1d81 GV100 10df Emulex Corporation @@ -16467,7 +16470,7 @@ 1028 1fc2 Express Flash NVMe PM1725 1.6TB SFF 1028 1fc4 Express Flash NVMe PM1725 1.6TB AIC a822 NVMe SSD Controller 172Xa - 1028 1fd9 Express Flash NVMe PM1725a 800GB SFF + 1028 1fd9 Express Flash PM1725a 800GB SFF 1028 1fda Express Flash PM1725a 1.6TB SFF 1028 1fdb Express Flash PM1725a 3.2TB SFF 1028 1fdc Express Flash PM1725a 6.4TB SFF @@ -20300,6 +20303,7 @@ 1b79 Absolute Analysis 1b85 OCZ Technology Group, Inc. 1041 RevoDrive 3 X2 PCI-Express SSD 240 GB (Marvell Controller) + 6018 RD400/400A SSD 8788 RevoDrive Hybrid 1b94 Signatec / Dynamic Signals Corp e400 PX14400 Dual Xilinx Virtex5 based Digitizer @@ -23094,6 +23098,7 @@ 8086 0000 Ethernet Converged Network Adapter X710-T 8086 0001 Ethernet Converged Network Adapter X710-T4 8086 0002 Ethernet Converged Network Adapter X710-T4 + 8086 0003 Ethernet Converged Network Adapter X710-T 8086 1003 Ethernet Converged Network Adapter X710-T 158a Ethernet Controller XXV710 for 25GbE backplane 158b Ethernet Controller XXV710 for 25GbE SFP28 @@ -27004,7 +27009,7 @@ 1001 8086 mPCI 3B Europe ZZE 1002 8086 mPCI 3B Japan ZZJ 1003 8086 mPCI 3B High-Band ZZH - 1351 103c Compaq NC6220 + 103c 1351 Compaq nc6220 4224 PRO/Wireless 2915ABG [Calexico2] Network Connection 4227 PRO/Wireless 3945ABG [Golan] Network Connection 8086 1010 ThinkPad R60e @@ -27127,6 +27132,7 @@ 5845 QEMU NVM Express Controller 1af4 1100 QEMU Virtual Machine 5902 HD Graphics 610 + 5912 HD Graphics 630 5a84 Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller 5a88 Celeron N3350/Pentium N4200/Atom E3900 Series Imaging Unit 5a98 Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster From owner-svn-src-all@freebsd.org Mon Apr 17 19:10:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 52555D415B3; Mon, 17 Apr 2017 19:10:13 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2DB5B1FB1; Mon, 17 Apr 2017 19:10:13 +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 v3HJACFf060999; Mon, 17 Apr 2017 19:10:12 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HJACof060998; Mon, 17 Apr 2017 19:10:12 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704171910.v3HJACof060998@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 17 Apr 2017 19:10:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317066 - stable/10/share/misc X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 19:10:13 -0000 Author: bapt Date: Mon Apr 17 19:10:12 2017 New Revision: 317066 URL: https://svnweb.freebsd.org/changeset/base/317066 Log: MFC r316956: Update pci_vendors to 2017.04.03 Modified: stable/10/share/misc/pci_vendors Directory Properties: stable/10/ (props changed) Modified: stable/10/share/misc/pci_vendors ============================================================================== --- stable/10/share/misc/pci_vendors Mon Apr 17 19:08:49 2017 (r317065) +++ stable/10/share/misc/pci_vendors Mon Apr 17 19:10:12 2017 (r317066) @@ -3,8 +3,8 @@ # # List of PCI ID's # -# Version: 2017.03.16 -# Date: 2017-03-16 03:15:01 +# Version: 2017.04.03 +# Date: 2017-04-03 03:15:02 # # Maintained by Albert Pool, Martin Mares, and other volunteers from # the PCI ID Project at http://pci-ids.ucw.cz/. @@ -10674,7 +10674,7 @@ 1430 GM206GL [Quadro M2000] 1431 GM206GL [Tesla M4] 1436 GM206GLM [Quadro M2200 Mobile] - 15f0 GP100GL + 15f0 GP100GL [Quadro GP100] 15f1 GP100GL 15f7 GP100GL [Tesla P100 PCIe 12GB] 15f8 GP100GL [Tesla P100 PCIe 16GB] @@ -10707,7 +10707,7 @@ 1ba0 GP104M [GeForce GTX 1080 Mobile] 1ba1 GP104M [GeForce GTX 1070 Mobile] 1bb0 GP104GL [Quadro P5000] - 1bb1 GP104GL + 1bb1 GP104GL [Quadro P4000] 1bb3 GP104GL [Tesla P4] 1bb4 GP104GL 1bb6 GP104GLM [Quadro P5000 Mobile] @@ -10720,7 +10720,7 @@ 1c02 GP106 [GeForce GTX 1060 3GB] 1c03 GP106 [GeForce GTX 1060 6GB] 1c20 GP106M [GeForce GTX 1060 Mobile] - 1c30 GP106GL + 1c30 GP106GL [Quadro P2000] 1c35 GP106 1c60 GP106M [GeForce GTX 1060 Mobile] 1c61 GP106M [GeForce GTX 1050 Ti Mobile] @@ -10735,6 +10735,9 @@ 1ca7 GP107GL 1ca8 GP107GL 1caa GP107GL + 1cb1 GP107GL [Quardo P1000] + 1cb2 GP107GL [Quardo P600] + 1cb3 GP107GL [Quardo P400] 1d01 GP108 1d81 GV100 10df Emulex Corporation @@ -16467,7 +16470,7 @@ 1028 1fc2 Express Flash NVMe PM1725 1.6TB SFF 1028 1fc4 Express Flash NVMe PM1725 1.6TB AIC a822 NVMe SSD Controller 172Xa - 1028 1fd9 Express Flash NVMe PM1725a 800GB SFF + 1028 1fd9 Express Flash PM1725a 800GB SFF 1028 1fda Express Flash PM1725a 1.6TB SFF 1028 1fdb Express Flash PM1725a 3.2TB SFF 1028 1fdc Express Flash PM1725a 6.4TB SFF @@ -20300,6 +20303,7 @@ 1b79 Absolute Analysis 1b85 OCZ Technology Group, Inc. 1041 RevoDrive 3 X2 PCI-Express SSD 240 GB (Marvell Controller) + 6018 RD400/400A SSD 8788 RevoDrive Hybrid 1b94 Signatec / Dynamic Signals Corp e400 PX14400 Dual Xilinx Virtex5 based Digitizer @@ -23094,6 +23098,7 @@ 8086 0000 Ethernet Converged Network Adapter X710-T 8086 0001 Ethernet Converged Network Adapter X710-T4 8086 0002 Ethernet Converged Network Adapter X710-T4 + 8086 0003 Ethernet Converged Network Adapter X710-T 8086 1003 Ethernet Converged Network Adapter X710-T 158a Ethernet Controller XXV710 for 25GbE backplane 158b Ethernet Controller XXV710 for 25GbE SFP28 @@ -27004,7 +27009,7 @@ 1001 8086 mPCI 3B Europe ZZE 1002 8086 mPCI 3B Japan ZZJ 1003 8086 mPCI 3B High-Band ZZH - 1351 103c Compaq NC6220 + 103c 1351 Compaq nc6220 4224 PRO/Wireless 2915ABG [Calexico2] Network Connection 4227 PRO/Wireless 3945ABG [Golan] Network Connection 8086 1010 ThinkPad R60e @@ -27127,6 +27132,7 @@ 5845 QEMU NVM Express Controller 1af4 1100 QEMU Virtual Machine 5902 HD Graphics 610 + 5912 HD Graphics 630 5a84 Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller 5a88 Celeron N3350/Pentium N4200/Atom E3900 Series Imaging Unit 5a98 Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster From owner-svn-src-all@freebsd.org Mon Apr 17 20:13:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5B6DD42C26; Mon, 17 Apr 2017 20:13:22 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 818EEF23; Mon, 17 Apr 2017 20:13:22 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HKDL6j089736; Mon, 17 Apr 2017 20:13:21 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HKDLrr089727; Mon, 17 Apr 2017 20:13:21 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201704172013.v3HKDLrr089727@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Mon, 17 Apr 2017 20:13:21 +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: r317067 - in stable/11: sys/netinet6 tests/sys/netinet X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 20:13:22 -0000 Author: asomers Date: Mon Apr 17 20:13:20 2017 New Revision: 317067 URL: https://svnweb.freebsd.org/changeset/base/317067 Log: MFC r313025, r313395, r314113, r314442, r315458, r315656 r313025: Add tests for multi-fib IPv6 routing PR: 196361 Submitted by: jhujhiti@adjectivism.org Reported by: Jason Healy MFC after: 4 weeks Sponsored by: Spectra Logic Corp r313395: Add fibs_test:udp_dontroute6, another IPv6 multi-FIB test PR: 196361 MFC after: 3 weeks Sponsored by: Spectra Logic Corp r314113: Remove tests/sys/netinet/fibs_tests's dependency on net/socat Instead of bridging two tap interfaces with socat, just use an epair pair. MFC after: 3 weeks Sponsored by: Spectra Logic Corp r314442: Add an ATF test for IPv6 SLAAC with multiple fibs Tests that an interface can get a SLAAC address and that it inserts its routes into the correct fib. Does not test anything to do with NDP. PR: 196361 Reviewed by: Erick Turnquist MFC after: 3 weeks Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D9776 r315458: Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 sys/netinet6/icmp6.c Use the interface's FIB for source address selection in ICMPv6 error responses. sys/netinet6/in6.c In in6_newaddrmsg, announce arrival of local addresses on the interface's FIB only. In in6_lltable_rtcheck, use a per-fib ND6 cache instead of a single cache. sys/netinet6/in6_src.c In in6_selectsrc, use the caller's fib instead of the default fib. In in6_selectsrc_socket, remove a superfluous check. sys/netinet6/nd6.c In nd6_lle_event, use the interface's fib for routing socket messages. In nd6_is_new_addr_neighbor, check all FIBs when trying to determine whether an address is a neighbor. Also, simplify the code for point to point interfaces. sys/netinet6/nd6.h sys/netinet6/nd6.c sys/netinet6/nd6_rtr.c Make defrouter_select fib-aware, and make all of its callers pass in the interface fib. sys/netinet6/nd6_nbr.c When inputting a Neighbor Solicitation packet, consider the interface fib instead of the default fib for DAD. Output NS and Neighbor Advertisement packets on the correct fib. sys/netinet6/nd6_rtr.c Allow installing the same host route on different interfaces in different FIBs. If rt_add_addr_allfibs=0, only install or delete the prefix route on the interface fib. tests/sys/netinet/fibs_test.sh Clear some expected failures, but add a skip for the newly revealed BUG217871. PR: 196361 Submitted by: Erick Turnquist Reported by: Jason Healy Reviewed by: asomers MFC after: 3 weeks Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D9451 r315656: Fix back-to-back runs of sys/netinet/fibs_test;slaac_on_nondefault_fib6 This test was failing if run twice because rtadvd takes too long to die. The rtadvd process from the first run was still running when the second run created its interfaces. The solution is to use SIGKILL during the cleanup instead of SIGTERM so rtadvd will die faster. While I'm here, randomize the addresses used for the test, which makes bugs like this easier to spot, and fix the cleanup order to be the opposite of the setup order PR: 217871 MFC after: 18 days X-MFC-With: 315458 Sponsored by: Spectra Logic Corp Modified: stable/11/sys/netinet6/icmp6.c stable/11/sys/netinet6/in6.c stable/11/sys/netinet6/in6_src.c stable/11/sys/netinet6/nd6.c stable/11/sys/netinet6/nd6.h stable/11/sys/netinet6/nd6_nbr.c stable/11/sys/netinet6/nd6_rtr.c stable/11/tests/sys/netinet/fibs_test.sh stable/11/tests/sys/netinet/udp_dontroute.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet6/icmp6.c ============================================================================== --- stable/11/sys/netinet6/icmp6.c Mon Apr 17 19:10:12 2017 (r317066) +++ stable/11/sys/netinet6/icmp6.c Mon Apr 17 20:13:20 2017 (r317067) @@ -2147,7 +2147,7 @@ icmp6_reflect(struct mbuf *m, size_t off * source address of the erroneous packet. */ in6_splitscope(&ip6->ip6_src, &dst6, &scopeid); - error = in6_selectsrc_addr(RT_DEFAULT_FIB, &dst6, + error = in6_selectsrc_addr(M_GETFIB(m), &dst6, scopeid, NULL, &src6, &hlim); if (error) { @@ -2289,7 +2289,7 @@ icmp6_redirect_input(struct mbuf *m, int uint32_t scopeid; in6_splitscope(&reddst6, &kdst, &scopeid); - if (fib6_lookup_nh_basic(RT_DEFAULT_FIB, &kdst, scopeid, 0, 0,&nh6)==0){ + if (fib6_lookup_nh_basic(ifp->if_fib, &kdst, scopeid, 0, 0,&nh6)==0){ if ((nh6.nh_flags & NHF_GATEWAY) == 0) { nd6log((LOG_ERR, "ICMP6 redirect rejected; no route " Modified: stable/11/sys/netinet6/in6.c ============================================================================== --- stable/11/sys/netinet6/in6.c Mon Apr 17 19:10:12 2017 (r317066) +++ stable/11/sys/netinet6/in6.c Mon Apr 17 20:13:20 2017 (r317067) @@ -159,6 +159,7 @@ in6_newaddrmsg(struct in6_ifaddr *ia, in struct sockaddr_dl gateway; struct sockaddr_in6 mask, addr; struct rtentry rt; + int fibnum; /* * initialize for rtmsg generation @@ -176,8 +177,9 @@ in6_newaddrmsg(struct in6_ifaddr *ia, in rt.rt_flags = RTF_HOST | RTF_STATIC; if (cmd == RTM_ADD) rt.rt_flags |= RTF_UP; - /* Announce arrival of local address to all FIBs. */ - rt_newaddrmsg(cmd, &ia->ia_ifa, 0, &rt); + fibnum = V_rt_add_addr_allfibs ? RT_ALL_FIBS : ia62ifa(ia)->ifa_ifp->if_fib; + /* Announce arrival of local address to this FIB. */ + rt_newaddrmsg_fib(cmd, &ia->ia_ifa, 0, &rt, fibnum); } int @@ -2115,15 +2117,15 @@ in6_lltable_rtcheck(struct ifnet *ifp, uint32_t scopeid; int error; char ip6buf[INET6_ADDRSTRLEN]; + int fibnum; KASSERT(l3addr->sa_family == AF_INET6, ("sin_family %d", l3addr->sa_family)); - /* Our local addresses are always only installed on the default FIB. */ - sin6 = (const struct sockaddr_in6 *)l3addr; in6_splitscope(&sin6->sin6_addr, &dst, &scopeid); - error = fib6_lookup_nh_basic(RT_DEFAULT_FIB, &dst, scopeid, 0, 0, &nh6); + fibnum = V_rt_add_addr_allfibs ? RT_DEFAULT_FIB : ifp->if_fib; + error = fib6_lookup_nh_basic(fibnum, &dst, scopeid, 0, 0, &nh6); if (error != 0 || (nh6.nh_flags & NHF_GATEWAY) || nh6.nh_ifp != ifp) { struct ifaddr *ifa; /* Modified: stable/11/sys/netinet6/in6_src.c ============================================================================== --- stable/11/sys/netinet6/in6_src.c Mon Apr 17 19:10:12 2017 (r317066) +++ stable/11/sys/netinet6/in6_src.c Mon Apr 17 20:13:20 2017 (r317067) @@ -297,7 +297,7 @@ in6_selectsrc(uint32_t fibnum, struct so */ /* get the outgoing interface */ if ((error = in6_selectif(dstsock, opts, mopts, &ifp, oifp, - (inp != NULL) ? inp->inp_inc.inc_fibnum : RT_DEFAULT_FIB)) != 0) + (inp != NULL) ? inp->inp_inc.inc_fibnum : fibnum)) != 0) return (error); #ifdef DIAGNOSTIC @@ -563,7 +563,7 @@ in6_selectsrc_socket(struct sockaddr_in6 uint32_t fibnum; int error; - fibnum = (inp != NULL) ? inp->inp_inc.inc_fibnum : RT_DEFAULT_FIB; + fibnum = inp->inp_inc.inc_fibnum; retifp = NULL; error = in6_selectsrc(fibnum, dstsock, opts, inp, cred, &retifp, srcp); Modified: stable/11/sys/netinet6/nd6.c ============================================================================== --- stable/11/sys/netinet6/nd6.c Mon Apr 17 19:10:12 2017 (r317066) +++ stable/11/sys/netinet6/nd6.c Mon Apr 17 20:13:20 2017 (r317067) @@ -157,6 +157,7 @@ nd6_lle_event(void *arg __unused, struct struct sockaddr_dl gw; struct ifnet *ifp; int type; + int fibnum; LLE_WLOCK_ASSERT(lle); @@ -194,8 +195,9 @@ nd6_lle_event(void *arg __unused, struct rtinfo.rti_info[RTAX_DST] = (struct sockaddr *)&dst; rtinfo.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&gw; rtinfo.rti_addrs = RTA_DST | RTA_GATEWAY; + fibnum = V_rt_add_addr_allfibs ? RT_ALL_FIBS : ifp->if_fib; rt_missmsg_fib(type, &rtinfo, RTF_HOST | RTF_LLDATA | ( - type == RTM_ADD ? RTF_UP: 0), 0, RT_DEFAULT_FIB); + type == RTM_ADD ? RTF_UP: 0), 0, fibnum); } /* @@ -1200,7 +1202,7 @@ nd6_purge(struct ifnet *ifp) if (ND_IFINFO(ifp)->flags & ND6_IFF_ACCEPT_RTADV) { /* Refresh default router list. */ - defrouter_select(); + defrouter_select_fib(ifp->if_fib); } } @@ -1253,7 +1255,7 @@ static int nd6_is_new_addr_neighbor(const struct sockaddr_in6 *addr, struct ifnet *ifp) { struct nd_prefix *pr; - struct ifaddr *dstaddr; + struct ifaddr *ifa; struct rt_addrinfo info; struct sockaddr_in6 rt_key; const struct sockaddr *dst6; @@ -1287,9 +1289,6 @@ nd6_is_new_addr_neighbor(const struct so bzero(&info, sizeof(info)); info.rti_info[RTAX_DST] = (struct sockaddr *)&rt_key; - /* Always use the default FIB here. XXME - why? */ - fibnum = RT_DEFAULT_FIB; - /* * If the address matches one of our addresses, * it should be a neighbor. @@ -1303,19 +1302,31 @@ restart: continue; if ((pr->ndpr_stateflags & NDPRF_ONLINK) == 0) { - /* Always use the default FIB here. */ dst6 = (const struct sockaddr *)&pr->ndpr_prefix; - genid = V_nd6_list_genid; - ND6_RUNLOCK(); - - /* Restore length field before retrying lookup */ - rt_key.sin6_len = sizeof(rt_key); - error = rib_lookup_info(fibnum, dst6, 0, 0, &info); + /* + * We only need to check all FIBs if add_addr_allfibs + * is unset. If set, checking any FIB will suffice. + */ + fibnum = V_rt_add_addr_allfibs ? rt_numfibs - 1 : 0; + for (; fibnum < rt_numfibs; fibnum++) { + genid = V_nd6_list_genid; + ND6_RUNLOCK(); - ND6_RLOCK(); - if (genid != V_nd6_list_genid) - goto restart; + /* + * Restore length field before + * retrying lookup + */ + rt_key.sin6_len = sizeof(rt_key); + error = rib_lookup_info(fibnum, dst6, 0, 0, + &info); + + ND6_RLOCK(); + if (genid != V_nd6_list_genid) + goto restart; + if (error == 0) + break; + } if (error != 0) continue; @@ -1346,13 +1357,18 @@ restart: * If the address is assigned on the node of the other side of * a p2p interface, the address should be a neighbor. */ - dstaddr = ifa_ifwithdstaddr((const struct sockaddr *)addr, RT_ALL_FIBS); - if (dstaddr != NULL) { - if (dstaddr->ifa_ifp == ifp) { - ifa_free(dstaddr); - return (1); + if (ifp->if_flags & IFF_POINTOPOINT) { + IF_ADDR_RLOCK(ifp); + TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + if (ifa->ifa_addr->sa_family != addr->sin6_family) + continue; + if (ifa->ifa_dstaddr != NULL && + sa_equal(addr, ifa->ifa_dstaddr)) { + IF_ADDR_RUNLOCK(ifp); + return 1; + } } - ifa_free(dstaddr); + IF_ADDR_RUNLOCK(ifp); } /* @@ -1485,7 +1501,7 @@ nd6_free(struct llentry **lnp, int gc) /* * We need to unlock to avoid a LOR with rt6_flush() with the * rnh and for the calls to pfxlist_onlink_check() and - * defrouter_select() in the block further down for calls + * defrouter_select_fib() in the block further down for calls * into nd6_lookup(). We still hold a ref. */ LLE_WUNLOCK(ln); @@ -1500,7 +1516,7 @@ nd6_free(struct llentry **lnp, int gc) if (dr) { /* - * Since defrouter_select() does not affect the + * Since defrouter_select_fib() does not affect the * on-link determination and MIP6 needs the check * before the default router selection, we perform * the check now. @@ -1510,7 +1526,7 @@ nd6_free(struct llentry **lnp, int gc) /* * Refresh default router list. */ - defrouter_select(); + defrouter_select_fib(dr->ifp->if_fib); } /* @@ -2104,11 +2120,11 @@ nd6_cache_lladdr(struct ifnet *ifp, stru * Question: can we restrict the first condition to the "is_newentry" * case? * XXX: when we hear an RA from a new router with the link-layer - * address option, defrouter_select() is called twice, since + * address option, defrouter_select_fib() is called twice, since * defrtrlist_update called the function as well. However, I believe * we can compromise the overhead, since it only happens the first * time. - * XXX: although defrouter_select() should not have a bad effect + * XXX: although defrouter_select_fib() should not have a bad effect * for those are not autoconfigured hosts, we explicitly avoid such * cases for safety. */ @@ -2117,7 +2133,7 @@ nd6_cache_lladdr(struct ifnet *ifp, stru /* * guaranteed recursion */ - defrouter_select(); + defrouter_select_fib(ifp->if_fib); } } Modified: stable/11/sys/netinet6/nd6.h ============================================================================== --- stable/11/sys/netinet6/nd6.h Mon Apr 17 19:10:12 2017 (r317066) +++ stable/11/sys/netinet6/nd6.h Mon Apr 17 20:13:20 2017 (r317067) @@ -469,6 +469,7 @@ void nd6_dad_stop(struct ifaddr *); void nd6_rs_input(struct mbuf *, int, int); void nd6_ra_input(struct mbuf *, int, int); void defrouter_reset(void); +void defrouter_select_fib(int fibnum); void defrouter_select(void); void defrouter_ref(struct nd_defrouter *); void defrouter_rele(struct nd_defrouter *); Modified: stable/11/sys/netinet6/nd6_nbr.c ============================================================================== --- stable/11/sys/netinet6/nd6_nbr.c Mon Apr 17 19:10:12 2017 (r317066) +++ stable/11/sys/netinet6/nd6_nbr.c Mon Apr 17 20:13:20 2017 (r317067) @@ -262,8 +262,7 @@ nd6_ns_input(struct mbuf *m, int off, in bzero(&info, sizeof(info)); info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&rt_gateway; - /* Always use the default FIB. */ - if (rib_lookup_info(RT_DEFAULT_FIB, (struct sockaddr *)&dst6, + if (rib_lookup_info(ifp->if_fib, (struct sockaddr *)&dst6, 0, 0, &info) == 0) { if ((info.rti_flags & RTF_ANNOUNCE) != 0 && rt_gateway.sdl_family == AF_LINK) { @@ -485,7 +484,7 @@ nd6_ns_output_fib(struct ifnet *ifp, con uint32_t scopeid; in6_splitscope(&ip6->ip6_dst, &dst6, &scopeid); - error = in6_selectsrc_addr(RT_DEFAULT_FIB, &dst6, + error = in6_selectsrc_addr(fibnum, &dst6, scopeid, ifp, &src6, NULL); if (error) { char ip6buf[INET6_ADDRSTRLEN]; @@ -982,7 +981,7 @@ nd6_na_output_fib(struct ifnet *ifp, con * Select a source whose scope is the same as that of the dest. */ in6_splitscope(&daddr6, &dst6, &scopeid); - error = in6_selectsrc_addr(RT_DEFAULT_FIB, &dst6, + error = in6_selectsrc_addr(fibnum, &dst6, scopeid, ifp, &src6, NULL); if (error) { char ip6buf[INET6_ADDRSTRLEN]; Modified: stable/11/sys/netinet6/nd6_rtr.c ============================================================================== --- stable/11/sys/netinet6/nd6_rtr.c Mon Apr 17 19:10:12 2017 (r317066) +++ stable/11/sys/netinet6/nd6_rtr.c Mon Apr 17 20:13:20 2017 (r317067) @@ -500,7 +500,7 @@ defrouter_addreq(struct nd_defrouter *ne error = in6_rtrequest(RTM_ADD, (struct sockaddr *)&def, (struct sockaddr *)&gate, (struct sockaddr *)&mask, - RTF_GATEWAY, &newrt, RT_DEFAULT_FIB); + RTF_GATEWAY, &newrt, new->ifp->if_fib); if (newrt) { nd6_rtmsg(RTM_ADD, newrt); /* tell user process */ RTFREE(newrt); @@ -551,8 +551,8 @@ defrouter_rele(struct nd_defrouter *dr) /* * Remove the default route for a given router. - * This is just a subroutine function for defrouter_select(), and should - * not be called from anywhere else. + * This is just a subroutine function for defrouter_select_fib(), and + * should not be called from anywhere else. */ static void defrouter_delreq(struct nd_defrouter *dr) @@ -571,7 +571,7 @@ defrouter_delreq(struct nd_defrouter *dr in6_rtrequest(RTM_DELETE, (struct sockaddr *)&def, (struct sockaddr *)&gate, - (struct sockaddr *)&mask, RTF_GATEWAY, &oldrt, RT_DEFAULT_FIB); + (struct sockaddr *)&mask, RTF_GATEWAY, &oldrt, dr->ifp->if_fib); if (oldrt) { nd6_rtmsg(RTM_DELETE, oldrt); RTFREE(oldrt); @@ -698,11 +698,11 @@ defrouter_del(struct nd_defrouter *dr) /* * If the router is the primary one, choose a new one. - * Note that defrouter_select() will remove the current gateway - * from the routing table. + * Note that defrouter_select_fib() will remove the current + * gateway from the routing table. */ if (deldr) - defrouter_select(); + defrouter_select_fib(deldr->ifp->if_fib); /* * Release the list reference. @@ -730,13 +730,23 @@ defrouter_del(struct nd_defrouter *dr) * even when the multipath routing is available, because we're not sure about * the benefits for stub hosts comparing to the risk of making the code * complicated and the possibility of introducing bugs. + * + * We maintain a single list of routers for multiple FIBs, only considering one + * at a time based on the receiving interface's FIB. If @fibnum is RT_ALL_FIBS, + * we do the whole thing multiple times. */ void -defrouter_select(void) +defrouter_select_fib(int fibnum) { struct nd_defrouter *dr, *selected_dr, *installed_dr; struct llentry *ln = NULL; + if (fibnum == RT_ALL_FIBS) { + for (fibnum = 0; fibnum < rt_numfibs; fibnum++) { + defrouter_select_fib(fibnum); + } + } + ND6_RLOCK(); /* * Let's handle easy case (3) first: @@ -755,7 +765,7 @@ defrouter_select(void) selected_dr = installed_dr = NULL; TAILQ_FOREACH(dr, &V_nd_defrouter, dr_entry) { IF_AFDATA_RLOCK(dr->ifp); - if (selected_dr == NULL && + if (selected_dr == NULL && dr->ifp->if_fib == fibnum && (ln = nd6_lookup(&dr->rtaddr, 0, dr->ifp)) && ND6_IS_LLINFO_PROBREACH(ln)) { selected_dr = dr; @@ -767,14 +777,17 @@ defrouter_select(void) ln = NULL; } - if (dr->installed) { + if (dr->installed && dr->ifp->if_fib == fibnum) { if (installed_dr == NULL) { installed_dr = dr; defrouter_ref(installed_dr); } else { - /* this should not happen. warn for diagnosis. */ - log(LOG_ERR, - "defrouter_select: more than one router is installed\n"); + /* + * this should not happen. + * warn for diagnosis. + */ + log(LOG_ERR, "defrouter_select_fib: more than " + "one router is installed\n"); } } } @@ -789,14 +802,24 @@ defrouter_select(void) if (selected_dr == NULL) { if (installed_dr == NULL || TAILQ_NEXT(installed_dr, dr_entry) == NULL) - selected_dr = TAILQ_FIRST(&V_nd_defrouter); + dr = TAILQ_FIRST(&V_nd_defrouter); else - selected_dr = TAILQ_NEXT(installed_dr, dr_entry); - defrouter_ref(selected_dr); + dr = TAILQ_NEXT(installed_dr, dr_entry); + + /* Ensure we select a router for this FIB. */ + TAILQ_FOREACH_FROM(dr, &V_nd_defrouter, dr_entry) { + if (dr->ifp->if_fib == fibnum) { + selected_dr = dr; + defrouter_ref(selected_dr); + break; + } + } } else if (installed_dr != NULL) { IF_AFDATA_RLOCK(installed_dr->ifp); - if ((ln = nd6_lookup(&installed_dr->rtaddr, 0, installed_dr->ifp)) && + if ((ln = nd6_lookup(&installed_dr->rtaddr, 0, + installed_dr->ifp)) && ND6_IS_LLINFO_PROBREACH(ln) && + installed_dr->ifp->if_fib == fibnum && rtpref(selected_dr) <= rtpref(installed_dr)) { defrouter_rele(selected_dr); selected_dr = installed_dr; @@ -808,18 +831,30 @@ defrouter_select(void) ND6_RUNLOCK(); /* - * If the selected router is different than the installed one, - * remove the installed router and install the selected one. - * Note that the selected router is never NULL here. + * If we selected a router for this FIB and it's different + * than the installed one, remove the installed router and + * install the selected one in its place. */ if (installed_dr != selected_dr) { if (installed_dr != NULL) { defrouter_delreq(installed_dr); defrouter_rele(installed_dr); } - defrouter_addreq(selected_dr); + if (selected_dr != NULL) + defrouter_addreq(selected_dr); } - defrouter_rele(selected_dr); + if (selected_dr != NULL) + defrouter_rele(selected_dr); +} + +/* + * Maintain old KPI for default router selection. + * If unspecified, we can re-select routers for all FIBs. + */ +void +defrouter_select(void) +{ + defrouter_select_fib(RT_ALL_FIBS); } /* @@ -942,7 +977,7 @@ restart: V_nd6_list_genid++; ND6_WUNLOCK(); - defrouter_select(); + defrouter_select_fib(new->ifp->if_fib); return (n); } @@ -1731,7 +1766,7 @@ nd6_prefix_onlink_rtrequest(struct nd_pr struct rtentry *rt; struct sockaddr_in6 mask6; u_long rtflags; - int error, a_failure, fibnum; + int error, a_failure, fibnum, maxfib; /* * in6_ifinit() sets nd6_rtrequest to ifa_rtrequest for all ifaddrs. @@ -1742,8 +1777,15 @@ nd6_prefix_onlink_rtrequest(struct nd_pr mask6.sin6_addr = pr->ndpr_mask; rtflags = (ifa->ifa_flags & ~IFA_RTSELF) | RTF_UP; + if(V_rt_add_addr_allfibs) { + fibnum = 0; + maxfib = rt_numfibs; + } else { + fibnum = ifa->ifa_ifp->if_fib; + maxfib = fibnum + 1; + } a_failure = 0; - for (fibnum = 0; fibnum < rt_numfibs; fibnum++) { + for (; fibnum < maxfib; fibnum++) { rt = NULL; error = in6_rtrequest(RTM_ADD, @@ -1831,6 +1873,10 @@ nd6_prefix_onlink(struct nd_prefix *pr) if ((opr->ndpr_stateflags & NDPRF_ONLINK) == 0) continue; + if (!V_rt_add_addr_allfibs && + opr->ndpr_ifp->if_fib != pr->ndpr_ifp->if_fib) + continue; + if (opr->ndpr_plen == pr->ndpr_plen && in6_are_prefix_equal(&pr->ndpr_prefix.sin6_addr, &opr->ndpr_prefix.sin6_addr, pr->ndpr_plen)) { @@ -1891,7 +1937,7 @@ nd6_prefix_offlink(struct nd_prefix *pr) struct rtentry *rt; char ip6buf[INET6_ADDRSTRLEN]; uint64_t genid; - int fibnum, a_failure; + int fibnum, maxfib, a_failure; ND6_ONLINK_LOCK_ASSERT(); ND6_UNLOCK_ASSERT(); @@ -1909,8 +1955,16 @@ nd6_prefix_offlink(struct nd_prefix *pr) mask6.sin6_len = sizeof(sa6); bcopy(&pr->ndpr_mask, &mask6.sin6_addr, sizeof(struct in6_addr)); + if (V_rt_add_addr_allfibs) { + fibnum = 0; + maxfib = rt_numfibs; + } else { + fibnum = ifp->if_fib; + maxfib = fibnum + 1; + } + a_failure = 0; - for (fibnum = 0; fibnum < rt_numfibs; fibnum++) { + for (; fibnum < maxfib; fibnum++) { rt = NULL; error = in6_rtrequest(RTM_DELETE, (struct sockaddr *)&sa6, NULL, (struct sockaddr *)&mask6, 0, &rt, fibnum); Modified: stable/11/tests/sys/netinet/fibs_test.sh ============================================================================== --- stable/11/tests/sys/netinet/fibs_test.sh Mon Apr 17 19:10:12 2017 (r317066) +++ stable/11/tests/sys/netinet/fibs_test.sh Mon Apr 17 20:13:20 2017 (r317067) @@ -39,8 +39,7 @@ # arpresolve only checked the default route. # # Outline: -# Create two tap(4) interfaces -# Simulate a crossover cable between them by using net/socat +# Create two connected epair(4) interfaces # Use nping (from security/nmap) to send an ICMP echo request from one # interface to the other, spoofing the source IP. The source IP must be # spoofed, or else it will already have an entry in the arp table. @@ -51,7 +50,7 @@ arpresolve_checks_interface_fib_head() atf_set "descr" "arpresolve should check the interface fib, not the default fib, for routes" atf_set "require.user" "root" atf_set "require.config" "fibs" - atf_set "require.progs" "socat nping" + atf_set "require.progs" "nping" } arpresolve_checks_interface_fib_body() { @@ -74,19 +73,13 @@ arpresolve_checks_interface_fib_body() fi get_fibs 2 - # Configure TAP interfaces - setup_tap "$FIB0" ${ADDR0} ${MASK0} - TAP0=$TAP - setup_tap "$FIB1" ${ADDR1} ${MASK1} - TAP1=$TAP - - # Simulate a crossover cable - socat /dev/${TAP0} /dev/${TAP1} & - SOCAT_PID=$! - echo ${SOCAT_PID} >> "processes_to_kill" + # Configure epair interfaces + get_epair + setup_iface "$EPAIRA" "$FIB0" inet ${ADDR0} ${MASK0} + setup_iface "$EPAIRB" "$FIB1" inet ${ADDR1} ${MASK1} # Send an ICMP echo request with a spoofed source IP - setfib 2 nping -c 1 -e ${TAP0} -S ${SPOOF_ADDR} \ + setfib "$FIB0" nping -c 1 -e ${EPAIRA} -S ${SPOOF_ADDR} \ --source-mac ${SPOOF_MAC} --icmp --icmp-type "echo-request" \ --icmp-code 0 --icmp-id 0xdead --icmp-seq 1 --data 0xbeef \ ${ADDR1} @@ -94,17 +87,11 @@ arpresolve_checks_interface_fib_body() # characteristic error message dmesg | grep "llinfo.*${SPOOF_ADDR}" # Check that the ARP entry exists - atf_check -o match:"${SPOOF_ADDR}.*expires" setfib 3 arp ${SPOOF_ADDR} + atf_check -o match:"${SPOOF_ADDR}.*expires" setfib "$FIB1" arp ${SPOOF_ADDR} } arpresolve_checks_interface_fib_cleanup() { - if [ -f processes_to_kill ]; then - for pid in $(cat processes_to_kill); do - kill "${pid}" - done - rm -f processes_to_kill - fi - cleanup_tap + cleanup_ifaces } @@ -112,7 +99,7 @@ arpresolve_checks_interface_fib_cleanup( atf_test_case loopback_and_network_routes_on_nondefault_fib cleanup loopback_and_network_routes_on_nondefault_fib_head() { - atf_set "descr" "When creating and deleting loopback routes, use the interface's fib" + atf_set "descr" "When creating and deleting loopback IPv4 routes, use the interface's fib" atf_set "require.user" "root" atf_set "require.config" "fibs" } @@ -132,7 +119,7 @@ loopback_and_network_routes_on_nondefaul get_fibs 1 # Configure a TAP interface - setup_tap ${FIB0} ${ADDR} ${MASK} + setup_tap ${FIB0} inet ${ADDR} ${MASK} # Check whether the host route exists in only the correct FIB setfib ${FIB0} netstat -rn -f inet | grep -q "^${ADDR}.*UHS.*lo0" @@ -156,14 +143,71 @@ loopback_and_network_routes_on_nondefaul setfib 0 netstat -rn -f inet | \ grep -q "^${SUBNET}/${MASK}.*${TAPD}" if [ 0 -eq $? ]; then - setfib ${FIB0} netstat -rn -f inet + setfib 0 netstat -rn -f inet atf_fail "Network route appeared in the wrong FIB" fi } loopback_and_network_routes_on_nondefault_fib_cleanup() { - cleanup_tap + cleanup_ifaces +} + +atf_test_case loopback_and_network_routes_on_nondefault_fib_inet6 cleanup +loopback_and_network_routes_on_nondefault_fib_inet6_head() +{ + atf_set "descr" "When creating and deleting loopback IPv6 routes, use the interface's fib" + atf_set "require.user" "root" + atf_set "require.config" "fibs" +} + +loopback_and_network_routes_on_nondefault_fib_inet6_body() +{ + # Configure the TAP interface to use a nonrouteable RFC3849 + # address and a non-default fib + ADDR="2001:db8::2" + SUBNET="2001:db8::" + MASK="64" + + # Check system configuration + if [ 0 != `sysctl -n net.add_addr_allfibs` ]; then + atf_skip "This test requires net.add_addr_allfibs=0" + fi + get_fibs 1 + + # Configure a TAP interface + setup_tap ${FIB0} inet6 ${ADDR} ${MASK} + + # Check whether the host route exists in only the correct FIB + setfib ${FIB0} netstat -rn -f inet6 | grep -q "^${ADDR}.*UHS.*lo0" + if [ 0 -ne $? ]; then + setfib ${FIB0} netstat -rn -f inet6 + atf_fail "Host route did not appear in the correct FIB" + fi + setfib 0 netstat -rn -f inet6 | grep -q "^${ADDR}.*UHS.*lo0" + if [ 0 -eq $? ]; then + setfib 0 netstat -rn -f inet6 + atf_fail "Host route appeared in the wrong FIB" + fi + + # Check whether the network route exists in only the correct FIB + setfib ${FIB0} netstat -rn -f inet6 | \ + grep -q "^${SUBNET}/${MASK}.*${TAPD}" + if [ 0 -ne $? ]; then + setfib ${FIB0} netstat -rn -f inet6 + atf_fail "Network route did not appear in the correct FIB" + fi + setfib 0 netstat -rn -f inet6 | \ + grep -q "^${SUBNET}/${MASK}.*${TAPD}" + if [ 0 -eq $? ]; then + setfib 0 netstat -rn -f inet6 + atf_fail "Network route appeared in the wrong FIB" + fi +} + +loopback_and_network_routes_on_nondefault_fib_inet6_cleanup() +{ + cleanup_ifaces } @@ -171,7 +215,7 @@ loopback_and_network_routes_on_nondefaul atf_test_case default_route_with_multiple_fibs_on_same_subnet cleanup default_route_with_multiple_fibs_on_same_subnet_head() { - atf_set "descr" "Multiple interfaces on the same subnet but with different fibs can both have default routes" + atf_set "descr" "Multiple interfaces on the same subnet but with different fibs can both have default IPv4 routes" atf_set "require.user" "root" atf_set "require.config" "fibs" } @@ -193,9 +237,9 @@ default_route_with_multiple_fibs_on_same get_fibs 2 # Configure TAP interfaces - setup_tap "$FIB0" ${ADDR0} ${MASK} + setup_tap "$FIB0" inet ${ADDR0} ${MASK} TAP0=$TAP - setup_tap "$FIB1" ${ADDR1} ${MASK} + setup_tap "$FIB1" inet ${ADDR1} ${MASK} TAP1=$TAP # Attempt to add default routes @@ -212,7 +256,54 @@ default_route_with_multiple_fibs_on_same default_route_with_multiple_fibs_on_same_subnet_cleanup() { - cleanup_tap + cleanup_ifaces +} + +atf_test_case default_route_with_multiple_fibs_on_same_subnet_inet6 cleanup +default_route_with_multiple_fibs_on_same_subnet_inet6_head() +{ + atf_set "descr" "Multiple interfaces on the same subnet but with different fibs can both have default IPv6 routes" + atf_set "require.user" "root" + atf_set "require.config" "fibs" +} + +default_route_with_multiple_fibs_on_same_subnet_inet6_body() +{ + # Configure the TAP interfaces to use nonrouteable RFC3849 + # addresses and non-default FIBs + ADDR0="2001:db8::2" + ADDR1="2001:db8::3" + GATEWAY="2001:db8::1" + SUBNET="2001:db8::" + MASK="64" + + # Check system configuration + if [ 0 != `sysctl -n net.add_addr_allfibs` ]; then + atf_skip "This test requires net.add_addr_allfibs=0" + fi + get_fibs 2 + + # Configure TAP interfaces + setup_tap "$FIB0" inet6 ${ADDR0} ${MASK} + TAP0=$TAP + setup_tap "$FIB1" inet6 ${ADDR1} ${MASK} + TAP1=$TAP + + # Attempt to add default routes + setfib ${FIB0} route -6 add default ${GATEWAY} + setfib ${FIB1} route -6 add default ${GATEWAY} + + # Verify that the default route exists for both fibs, with their + # respective interfaces. + atf_check -o match:"^default.*${TAP0}$" \ + setfib ${FIB0} netstat -rn -f inet6 + atf_check -o match:"^default.*${TAP1}$" \ + setfib ${FIB1} netstat -rn -f inet6 +} + +default_route_with_multiple_fibs_on_same_subnet_inet6_cleanup() +{ + cleanup_ifaces } @@ -223,7 +314,7 @@ default_route_with_multiple_fibs_on_same atf_test_case same_ip_multiple_ifaces_fib0 cleanup same_ip_multiple_ifaces_fib0_head() { - atf_set "descr" "Can remove an IP alias from an interface when the same IP is also assigned to another interface." + atf_set "descr" "Can remove an IPv4 alias from an interface when the same IPv4 is also assigned to another interface." atf_set "require.user" "root" atf_set "require.config" "fibs" } @@ -237,22 +328,22 @@ same_ip_multiple_ifaces_fib0_body() # of net.add_addr_allfibs # Setup the interfaces, then remove one alias. It should not panic. - setup_tap 0 ${ADDR} ${MASK0} + setup_tap 0 inet ${ADDR} ${MASK0} TAP0=${TAP} - setup_tap 0 ${ADDR} ${MASK1} + setup_tap 0 inet ${ADDR} ${MASK1} TAP1=${TAP} ifconfig ${TAP1} -alias ${ADDR} # Do it again, in the opposite order. It should not panic. - setup_tap 0 ${ADDR} ${MASK0} + setup_tap 0 inet ${ADDR} ${MASK0} TAP0=${TAP} - setup_tap 0 ${ADDR} ${MASK1} + setup_tap 0 inet ${ADDR} ${MASK1} TAP1=${TAP} ifconfig ${TAP0} -alias ${ADDR} } same_ip_multiple_ifaces_fib0_cleanup() { - cleanup_tap + cleanup_ifaces } # Regression test for PR kern/189088 @@ -266,7 +357,7 @@ same_ip_multiple_ifaces_fib0_cleanup() atf_test_case same_ip_multiple_ifaces cleanup same_ip_multiple_ifaces_head() { - atf_set "descr" "Can remove an IP alias from an interface when the same IP is also assigned to another interface, on non-default FIBs." + atf_set "descr" "Can remove an IPv4 alias from an interface when the same address is also assigned to another interface, on non-default FIBs." atf_set "require.user" "root" atf_set "require.config" "fibs" } @@ -282,18 +373,18 @@ same_ip_multiple_ifaces_body() get_fibs 2 # Setup the interfaces, then remove one alias. It should not panic. - setup_tap ${FIB0} ${ADDR} ${MASK0} + setup_tap ${FIB0} inet ${ADDR} ${MASK0} TAP0=${TAP} - setup_tap ${FIB1} ${ADDR} ${MASK1} + setup_tap ${FIB1} inet ${ADDR} ${MASK1} TAP1=${TAP} ifconfig ${TAP1} -alias ${ADDR} atf_check -o not-match:"^${ADDR}[[:space:]]" \ setfib ${FIB1} netstat -rn -f inet # Do it again, in the opposite order. It should not panic. - setup_tap ${FIB0} ${ADDR} ${MASK0} + setup_tap ${FIB0} inet ${ADDR} ${MASK0} TAP0=${TAP} - setup_tap ${FIB1} ${ADDR} ${MASK1} + setup_tap ${FIB1} inet ${ADDR} ${MASK1} TAP1=${TAP} ifconfig ${TAP0} -alias ${ADDR} atf_check -o not-match:"^${ADDR}[[:space:]]" \ @@ -303,16 +394,145 @@ same_ip_multiple_ifaces_cleanup() { # Due to PR kern/189088, we must destroy the interfaces in LIFO order # in order for the routes to be correctly cleaned up. - for TAPD in `tail -r "tap_devices_to_cleanup"`; do + for TAPD in `tail -r "ifaces_to_cleanup"`; do + echo ifconfig ${TAPD} destroy ifconfig ${TAPD} destroy done } +atf_test_case same_ip_multiple_ifaces_inet6 cleanup +same_ip_multiple_ifaces_inet6_head() +{ + atf_set "descr" "Can remove an IPv6 alias from an interface when the same address is also assigned to another interface, on non-default FIBs." + atf_set "require.user" "root" + atf_set "require.config" "fibs" +} +same_ip_multiple_ifaces_inet6_body() +{ + ADDR="2001:db8::2" + MASK0="64" + MASK1="128" + + # Unlike most of the tests in this file, this is applicable regardless + # of net.add_addr_allfibs + get_fibs 2 + + # Setup the interfaces, then remove one alias. It should not panic. + setup_tap ${FIB0} inet6 ${ADDR} ${MASK0} + TAP0=${TAP} + setup_tap ${FIB1} inet6 ${ADDR} ${MASK1} + TAP1=${TAP} + atf_check -s exit:0 ifconfig ${TAP1} inet6 ${ADDR} -alias + atf_check -o not-match:"^${ADDR}[[:space:]]" \ + setfib ${FIB1} netstat -rn -f inet6 + ifconfig ${TAP1} destroy + ifconfig ${TAP0} destroy + + # Do it again, in the opposite order. It should not panic. + setup_tap ${FIB0} inet6 ${ADDR} ${MASK0} + TAP0=${TAP} + setup_tap ${FIB1} inet6 ${ADDR} ${MASK1} + TAP1=${TAP} + atf_check -s exit:0 ifconfig ${TAP0} inet6 ${ADDR} -alias + atf_check -o not-match:"^${ADDR}[[:space:]]" \ + setfib ${FIB0} netstat -rn -f inet6 +} +same_ip_multiple_ifaces_inet6_cleanup() +{ + cleanup_ifaces +} + +atf_test_case slaac_on_nondefault_fib6 cleanup +slaac_on_nondefault_fib6_head() +{ + atf_set "descr" "SLAAC correctly installs routes on non-default FIBs" + atf_set "require.user" "root" + atf_set "require.config" "fibs" "allow_sysctl_side_effects" +} +slaac_on_nondefault_fib6_body() +{ + # Configure the epair interfaces to use nonrouteable RFC3849 + # addresses and non-default FIBs + PREFIX="2001:db8:$(printf "%x" `jot -r 1 0 65535`):$(printf "%x" `jot -r 1 0 65535`)" + ADDR="$PREFIX::2" + GATEWAY="$PREFIX::1" + SUBNET="$PREFIX:" + MASK="64" + + # Check system configuration + if [ 0 != `sysctl -n net.add_addr_allfibs` ]; then + atf_skip "This test requires net.add_addr_allfibs=0" + fi + get_fibs 2 + + sysctl -n "net.inet6.ip6.rfc6204w3" >> "rfc6204w3.state" + sysctl -n "net.inet6.ip6.forwarding" >> "forwarding.state" + # Enable forwarding so the kernel will send RAs + sysctl net.inet6.ip6.forwarding=1 + # Enable RFC6204W3 mode so the kernel will enable default router + # selection while also forwarding packets + sysctl net.inet6.ip6.rfc6204w3=1 + + # Configure epair interfaces + get_epair + setup_iface "$EPAIRA" "$FIB0" inet6 ${ADDR} ${MASK} + echo setfib $FIB1 ifconfig "$EPAIRB" inet6 -ifdisabled accept_rtadv fib $FIB1 up + setfib $FIB1 ifconfig "$EPAIRB" inet6 -ifdisabled accept_rtadv fib $FIB1 up + rtadvd -p rtadvd.pid -C rtadvd.sock -c /dev/null "$EPAIRA" + rtsol "$EPAIRB" + + # Check SLAAC address + atf_check -o match:"inet6 ${SUBNET}.*prefixlen ${MASK}.*autoconf" \ + ifconfig "$EPAIRB" + # Check local route + atf_check -o match:"${SUBNET}.*\.*lo0" \ + netstat -rnf inet6 -F $FIB1 + # Check subnet route + atf_check -o match:"${SUBNET}:/${MASK}.*\.*$EPAIRB" \ + netstat -rnf inet6 -F $FIB1 + # Check default route + atf_check -o match:"default.*\.*$EPAIRB" \ + netstat -rnf inet6 -F $FIB1 + + # Check that none of the above routes appeared on other routes + for fib in $( seq 0 $(($(sysctl -n net.fibs) - 1))); do + if [ "$fib" = "$FIB1" -o "$fib" = "$FIB0" ]; then + continue + fi + atf_check -o not-match:"${SUBNET}.*\.*lo0" \ + netstat -rnf inet6 -F $fib + atf_check -o not-match:"${SUBNET}:/${MASK}.*\.*$EPAIRB" \ + netstat -rnf inet6 -F $fib + atf_check -o not-match:"default.*\.*$EPAIRB" \ + netstat -rnf inet6 -F $fib + done +} +slaac_on_nondefault_fib6_cleanup() +{ + if [ -f "rtadvd.pid" ]; then + # rtadvd can take a long time to shutdown. Use SIGKILL to kill + # it right away. The downside to using SIGKILL is that it + # won't send final RAs to all interfaces, but we don't care + # because we're about to destroy its interface anyway. + pkill -kill -F rtadvd.pid + rm -f rtadvd.pid + fi + cleanup_ifaces + if [ -f "forwarding.state" ] ; then + sysctl "net.inet6.ip6.forwarding"=`cat "forwarding.state"` + rm "forwarding.state" + fi + if [ -f "rfc6204w3.state" ] ; then + sysctl "net.inet6.ip6.rfc6204w3"=`cat "rfc6204w3.state"` + rm "rfc6204w3.state" + fi +} + # Regression test for kern/187550 atf_test_case subnet_route_with_multiple_fibs_on_same_subnet cleanup subnet_route_with_multiple_fibs_on_same_subnet_head() { - atf_set "descr" "Multiple FIBs can have subnet routes for the same subnet" + atf_set "descr" "Multiple FIBs can have IPv4 subnet routes for the same subnet" atf_set "require.user" "root" atf_set "require.config" "fibs" } @@ -333,8 +553,8 @@ subnet_route_with_multiple_fibs_on_same_ get_fibs 2 # Configure TAP interfaces - setup_tap "$FIB0" ${ADDR0} ${MASK} - setup_tap "$FIB1" ${ADDR1} ${MASK} + setup_tap "$FIB0" inet ${ADDR0} ${MASK} + setup_tap "$FIB1" inet ${ADDR1} ${MASK} # Check that a subnet route exists on both fibs atf_check -o ignore setfib "$FIB0" route get $ADDR1 @@ -343,7 +563,44 @@ subnet_route_with_multiple_fibs_on_same_ subnet_route_with_multiple_fibs_on_same_subnet_cleanup() { - cleanup_tap + cleanup_ifaces +} + +atf_test_case subnet_route_with_multiple_fibs_on_same_subnet_inet6 cleanup +subnet_route_with_multiple_fibs_on_same_subnet_inet6_head() *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 17 21:46:55 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7B9ACD422BD; Mon, 17 Apr 2017 21:46:55 +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 mx1.freebsd.org (Postfix) with ESMTPS id 3DF451E4D; Mon, 17 Apr 2017 21:46:55 +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 v3HLksPo026631; Mon, 17 Apr 2017 21:46:54 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HLksSw026630; Mon, 17 Apr 2017 21:46:54 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201704172146.v3HLksSw026630@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 17 Apr 2017 21:46:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317069 - head/sys/i386/i386 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 21:46:55 -0000 Author: jkim Date: Mon Apr 17 21:46:54 2017 New Revision: 317069 URL: https://svnweb.freebsd.org/changeset/base/317069 Log: Reduce diff with amd64 version. Modified: head/sys/i386/i386/bpf_jit_machdep.c Modified: head/sys/i386/i386/bpf_jit_machdep.c ============================================================================== --- head/sys/i386/i386/bpf_jit_machdep.c Mon Apr 17 20:14:32 2017 (r317068) +++ head/sys/i386/i386/bpf_jit_machdep.c Mon Apr 17 21:46:54 2017 (r317069) @@ -37,9 +37,9 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include +#include #include #else #include From owner-svn-src-all@freebsd.org Mon Apr 17 21:51:28 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2654FD423A9; Mon, 17 Apr 2017 21:51:28 +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 mx1.freebsd.org (Postfix) with ESMTPS id DF19C1D8; Mon, 17 Apr 2017 21:51:27 +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 v3HLpR0K029602; Mon, 17 Apr 2017 21:51:27 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HLpQ2c029599; Mon, 17 Apr 2017 21:51:26 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201704172151.v3HLpQ2c029599@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 17 Apr 2017 21:51:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317070 - in head/sys: amd64/amd64 i386/i386 net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 21:51:28 -0000 Author: jkim Date: Mon Apr 17 21:51:26 2017 New Revision: 317070 URL: https://svnweb.freebsd.org/changeset/base/317070 Log: Move declarations for a machine-dependent function to the header file. Modified: head/sys/amd64/amd64/bpf_jit_machdep.c head/sys/i386/i386/bpf_jit_machdep.c head/sys/net/bpf_jitter.h Modified: head/sys/amd64/amd64/bpf_jit_machdep.c ============================================================================== --- head/sys/amd64/amd64/bpf_jit_machdep.c Mon Apr 17 21:46:54 2017 (r317069) +++ head/sys/amd64/amd64/bpf_jit_machdep.c Mon Apr 17 21:51:26 2017 (r317070) @@ -55,8 +55,6 @@ __FBSDID("$FreeBSD$"); #include -bpf_filter_func bpf_jit_compile(struct bpf_insn *, u_int, size_t *); - /* * Emit routine to update the jump table. */ Modified: head/sys/i386/i386/bpf_jit_machdep.c ============================================================================== --- head/sys/i386/i386/bpf_jit_machdep.c Mon Apr 17 21:46:54 2017 (r317069) +++ head/sys/i386/i386/bpf_jit_machdep.c Mon Apr 17 21:51:26 2017 (r317070) @@ -55,8 +55,6 @@ __FBSDID("$FreeBSD$"); #include -bpf_filter_func bpf_jit_compile(struct bpf_insn *, u_int, size_t *); - /* * Emit routine to update the jump table. */ Modified: head/sys/net/bpf_jitter.h ============================================================================== --- head/sys/net/bpf_jitter.h Mon Apr 17 21:46:54 2017 (r317069) +++ head/sys/net/bpf_jitter.h Mon Apr 17 21:51:26 2017 (r317070) @@ -80,4 +80,11 @@ bpf_jit_filter *bpf_jitter(struct bpf_in */ void bpf_destroy_jit_filter(bpf_jit_filter *filter); +/* + * Declarations for machine-dependent functions. + */ +struct bpf_insn; + +bpf_filter_func bpf_jit_compile(struct bpf_insn *, u_int, size_t *); + #endif /* _NET_BPF_JITTER_H_ */ From owner-svn-src-all@freebsd.org Mon Apr 17 21:57:24 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BFC87D425B1; Mon, 17 Apr 2017 21:57:24 +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 mx1.freebsd.org (Postfix) with ESMTPS id 8F5F2692; Mon, 17 Apr 2017 21:57:24 +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 v3HLvNFI030589; Mon, 17 Apr 2017 21:57:23 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HLvNIL030588; Mon, 17 Apr 2017 21:57:23 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201704172157.v3HLvNIL030588@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 17 Apr 2017 21:57:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317071 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 21:57:24 -0000 Author: jkim Date: Mon Apr 17 21:57:23 2017 New Revision: 317071 URL: https://svnweb.freebsd.org/changeset/base/317071 Log: Remove an unnecessary declaration missed in the previous commit. Modified: head/sys/net/bpf_jitter.c Modified: head/sys/net/bpf_jitter.c ============================================================================== --- head/sys/net/bpf_jitter.c Mon Apr 17 21:51:26 2017 (r317070) +++ head/sys/net/bpf_jitter.c Mon Apr 17 21:57:23 2017 (r317071) @@ -50,8 +50,6 @@ __FBSDID("$FreeBSD$"); #include #include -bpf_filter_func bpf_jit_compile(struct bpf_insn *, u_int, size_t *); - static u_int bpf_jit_accept_all(u_char *, u_int, u_int); #ifdef _KERNEL From owner-svn-src-all@freebsd.org Mon Apr 17 22:02:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09E74D42794; Mon, 17 Apr 2017 22:02:11 +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 mx1.freebsd.org (Postfix) with ESMTPS id D56FBAD2; Mon, 17 Apr 2017 22:02:10 +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 v3HM2AoF034520; Mon, 17 Apr 2017 22:02:10 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HM29oU034516; Mon, 17 Apr 2017 22:02:09 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201704172202.v3HM29oU034516@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 17 Apr 2017 22:02:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317072 - in head/sys: amd64/amd64 i386/i386 net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 22:02:11 -0000 Author: jkim Date: Mon Apr 17 22:02:09 2017 New Revision: 317072 URL: https://svnweb.freebsd.org/changeset/base/317072 Log: Use kmem_malloc() instead of malloc(9) for the native amd64 filter. r316767 broke the BPF JIT compiler for amd64 because malloc()'d space is no longer executable. Discussed with: kib, alc Modified: head/sys/amd64/amd64/bpf_jit_machdep.c head/sys/i386/i386/bpf_jit_machdep.c head/sys/net/bpf_jitter.c head/sys/net/bpf_jitter.h Modified: head/sys/amd64/amd64/bpf_jit_machdep.c ============================================================================== --- head/sys/amd64/amd64/bpf_jit_machdep.c Mon Apr 17 21:57:23 2017 (r317071) +++ head/sys/amd64/amd64/bpf_jit_machdep.c Mon Apr 17 22:02:09 2017 (r317072) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2016 Jung-uk Kim + * Copyright (C) 2005-2017 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,10 +37,14 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include +#include + #include +#include +#include +#include #else #include #include @@ -599,7 +603,11 @@ bpf_jit_compile(struct bpf_insn *prog, u *size = stream.cur_ip; #ifdef _KERNEL - stream.ibuf = malloc(*size, M_BPFJIT, M_NOWAIT); + /* + * We cannot use malloc(9) because DMAP is mapped as NX. + */ + stream.ibuf = (void *)kmem_malloc(kernel_arena, *size, + M_NOWAIT); if (stream.ibuf == NULL) break; #else @@ -648,3 +656,14 @@ bpf_jit_compile(struct bpf_insn *prog, u return ((bpf_filter_func)(void *)stream.ibuf); } + +void +bpf_jit_free(void *func, size_t size) +{ + +#ifdef _KERNEL + kmem_free(kernel_arena, (vm_offset_t)func, size); +#else + munmap(func, size); +#endif +} Modified: head/sys/i386/i386/bpf_jit_machdep.c ============================================================================== --- head/sys/i386/i386/bpf_jit_machdep.c Mon Apr 17 21:57:23 2017 (r317071) +++ head/sys/i386/i386/bpf_jit_machdep.c Mon Apr 17 22:02:09 2017 (r317072) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2016 Jung-uk Kim + * Copyright (C) 2005-2017 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,9 +37,10 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include +#include + #include #else #include @@ -678,3 +679,14 @@ bpf_jit_compile(struct bpf_insn *prog, u return ((bpf_filter_func)(void *)stream.ibuf); } + +void +bpf_jit_free(void *func, size_t size) +{ + +#ifdef _KERNEL + free(func, M_BPFJIT); +#else + munmap(func, size); +#endif +} Modified: head/sys/net/bpf_jitter.c ============================================================================== --- head/sys/net/bpf_jitter.c Mon Apr 17 21:57:23 2017 (r317071) +++ head/sys/net/bpf_jitter.c Mon Apr 17 22:02:09 2017 (r317072) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2009 Jung-uk Kim + * Copyright (C) 2005-2017 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -99,13 +99,11 @@ void bpf_destroy_jit_filter(bpf_jit_filter *filter) { -#ifdef _KERNEL if (filter->func != bpf_jit_accept_all) - free(filter->func, M_BPFJIT); + bpf_jit_free(filter->func, filter->size); +#ifdef _KERNEL free(filter, M_BPFJIT); #else - if (filter->func != bpf_jit_accept_all) - munmap(filter->func, filter->size); free(filter); #endif } Modified: head/sys/net/bpf_jitter.h ============================================================================== --- head/sys/net/bpf_jitter.h Mon Apr 17 21:57:23 2017 (r317071) +++ head/sys/net/bpf_jitter.h Mon Apr 17 22:02:09 2017 (r317072) @@ -86,5 +86,6 @@ void bpf_destroy_jit_filter(bpf_jit_fil struct bpf_insn; bpf_filter_func bpf_jit_compile(struct bpf_insn *, u_int, size_t *); +void bpf_jit_free(void *, size_t); #endif /* _NET_BPF_JITTER_H_ */ From owner-svn-src-all@freebsd.org Mon Apr 17 23:14:30 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0FBE8D428B2; Mon, 17 Apr 2017 23:14:30 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A67AE961; Mon, 17 Apr 2017 23:14:29 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HNESp4062864; Mon, 17 Apr 2017 23:14:28 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HNERp9062845; Mon, 17 Apr 2017 23:14:27 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704172314.v3HNERp9062845@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 23:14:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317073 - in vendor/elftoolchain/dist: addr2line ar common cxxfilt elfcopy elfdump libdwarf libelf libelftc nm readelf strings test/ar/plugin test/cxxfilt test/cxxfilt/ts test/cxxfilt/t... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 23:14:30 -0000 Author: emaste Date: Mon Apr 17 23:14:26 2017 New Revision: 317073 URL: https://svnweb.freebsd.org/changeset/base/317073 Log: Import ELF Tool Chain snapshot at r3520 From http://svn.code.sf.net/p/elftoolchain/code/ Added: vendor/elftoolchain/dist/ar/os.FreeBSD.mk (contents, props changed) vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk (contents, props changed) vendor/elftoolchain/dist/test/ar/plugin/os.FreeBSD.mk (contents, props changed) vendor/elftoolchain/dist/test/cxxfilt/ts/regression/ vendor/elftoolchain/dist/test/cxxfilt/ts/regression/Makefile (contents, props changed) vendor/elftoolchain/dist/test/cxxfilt/ts/regression/tclist Modified: vendor/elftoolchain/dist/addr2line/addr2line.c vendor/elftoolchain/dist/common/elfdefinitions.h vendor/elftoolchain/dist/cxxfilt/cxxfilt.c vendor/elftoolchain/dist/elfcopy/main.c vendor/elftoolchain/dist/elfcopy/pe.c vendor/elftoolchain/dist/elfcopy/symbols.c vendor/elftoolchain/dist/elfdump/elfdump.c vendor/elftoolchain/dist/libdwarf/dwarf.h vendor/elftoolchain/dist/libdwarf/dwarf_attrval.c vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3 vendor/elftoolchain/dist/libdwarf/dwarf_dump.c vendor/elftoolchain/dist/libelf/gelf_newehdr.3 vendor/elftoolchain/dist/libelf/gelf_newphdr.3 vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3 vendor/elftoolchain/dist/libelftc/libelftc_bfdtarget.c vendor/elftoolchain/dist/libelftc/libelftc_dem_arm.c vendor/elftoolchain/dist/libelftc/libelftc_dem_gnu2.c vendor/elftoolchain/dist/libelftc/libelftc_dem_gnu3.c vendor/elftoolchain/dist/nm/nm.c vendor/elftoolchain/dist/readelf/readelf.c vendor/elftoolchain/dist/strings/strings.c vendor/elftoolchain/dist/test/cxxfilt/tet_scen vendor/elftoolchain/dist/test/cxxfilt/ts/Makefile Modified: vendor/elftoolchain/dist/addr2line/addr2line.c ============================================================================== --- vendor/elftoolchain/dist/addr2line/addr2line.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/addr2line/addr2line.c Mon Apr 17 23:14:26 2017 (r317073) @@ -40,7 +40,7 @@ #include "uthash.h" #include "_elftc.h" -ELFTC_VCSID("$Id: addr2line.c 3446 2016-05-03 01:31:17Z emaste $"); +ELFTC_VCSID("$Id: addr2line.c 3499 2016-11-25 16:06:29Z emaste $"); struct Func { char *name; @@ -720,11 +720,11 @@ main(int argc, char **argv) if (argc > 0) for (i = 0; i < argc; i++) translate(dbg, e, argv[i]); - else - while (fgets(line, sizeof(line), stdin) != NULL) { + else { + setvbuf(stdout, NULL, _IOLBF, 0); + while (fgets(line, sizeof(line), stdin) != NULL) translate(dbg, e, line); - fflush(stdout); - } + } dwarf_finish(dbg, &de); Added: vendor/elftoolchain/dist/ar/os.FreeBSD.mk ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/elftoolchain/dist/ar/os.FreeBSD.mk Mon Apr 17 23:14:26 2017 (r317073) @@ -0,0 +1,2 @@ +DPADD+= ${LIBBZ2} +LDADD+= -lbz2 Modified: vendor/elftoolchain/dist/common/elfdefinitions.h ============================================================================== --- vendor/elftoolchain/dist/common/elfdefinitions.h Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/common/elfdefinitions.h Mon Apr 17 23:14:26 2017 (r317073) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: elfdefinitions.h 3485 2016-08-18 13:38:52Z emaste $ + * $Id: elfdefinitions.h 3515 2017-01-24 22:04:22Z emaste $ */ /* @@ -153,6 +153,8 @@ _ELF_DEFINE_DT(DT_SUNW_FILTER, 0x60 "offset of string naming standard filtees") \ _ELF_DEFINE_DT(DT_SUNW_CAP, 0x60000010UL, \ "address of hardware capabilities section") \ +_ELF_DEFINE_DT(DT_SUNW_ASLR, 0x60000023UL, \ + "Address Space Layout Randomization flag") \ _ELF_DEFINE_DT(DT_HIOS, 0x6FFFF000UL, \ "end of OS-specific types") \ _ELF_DEFINE_DT(DT_VALRNGLO, 0x6FFFFD00UL, \ @@ -919,6 +921,12 @@ _ELF_DEFINE_PT(PT_GNU_STACK, 0x6474E "Stack flags") \ _ELF_DEFINE_PT(PT_GNU_RELRO, 0x6474E552UL, \ "Segment becomes read-only after relocation") \ +_ELF_DEFINE_PT(PT_OPENBSD_RANDOMIZE,0x65A3DBE6UL, \ + "Segment filled with random data") \ +_ELF_DEFINE_PT(PT_OPENBSD_WXNEEDED, 0x65A3DBE7UL, \ + "Program violates W^X") \ +_ELF_DEFINE_PT(PT_OPENBSD_BOOTDATA, 0x65A41BE6UL, \ + "Boot data") \ _ELF_DEFINE_PT(PT_SUNWBSS, 0x6FFFFFFAUL, \ "A Solaris .SUNW_bss section") \ _ELF_DEFINE_PT(PT_SUNWSTACK, 0x6FFFFFFBUL, \ Modified: vendor/elftoolchain/dist/cxxfilt/cxxfilt.c ============================================================================== --- vendor/elftoolchain/dist/cxxfilt/cxxfilt.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/cxxfilt/cxxfilt.c Mon Apr 17 23:14:26 2017 (r317073) @@ -35,7 +35,7 @@ #include "_elftc.h" -ELFTC_VCSID("$Id: cxxfilt.c 3454 2016-05-07 17:11:05Z kaiwang27 $"); +ELFTC_VCSID("$Id: cxxfilt.c 3499 2016-11-25 16:06:29Z emaste $"); #define STRBUFSZ 8192 @@ -175,6 +175,7 @@ main(int argc, char **argv) } else { p = 0; for (;;) { + setvbuf(stdout, NULL, _IOLBF, 0); c = fgetc(stdin); if (c == EOF || !(isalnum(c) || strchr(".$_", c))) { if (p > 0) { Modified: vendor/elftoolchain/dist/elfcopy/main.c ============================================================================== --- vendor/elftoolchain/dist/elfcopy/main.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/elfcopy/main.c Mon Apr 17 23:14:26 2017 (r317073) @@ -39,7 +39,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: main.c 3446 2016-05-03 01:31:17Z emaste $"); +ELFTC_VCSID("$Id: main.c 3520 2017-04-17 01:47:52Z kaiwang27 $"); enum options { @@ -285,6 +285,7 @@ create_elf(struct elfcopy *ecp) size_t ishnum; ecp->flags |= SYMTAB_INTACT; + ecp->flags &= ~SYMTAB_EXIST; /* Create EHDR. */ if (gelf_getehdr(ecp->ein, &ieh) == NULL) @@ -499,6 +500,10 @@ free_elf(struct elfcopy *ecp) } } + ecp->symtab = NULL; + ecp->strtab = NULL; + ecp->shstrtab = NULL; + if (ecp->secndx != NULL) { free(ecp->secndx); ecp->secndx = NULL; Added: vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk Mon Apr 17 23:14:26 2017 (r317073) @@ -0,0 +1,4 @@ +.if !defined(LIBELF_AR) +DPADD+= ${LIBBZ2} +LDADD+= -lbz2 +.endif Modified: vendor/elftoolchain/dist/elfcopy/pe.c ============================================================================== --- vendor/elftoolchain/dist/elfcopy/pe.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/elfcopy/pe.c Mon Apr 17 23:14:26 2017 (r317073) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: pe.c 3490 2016-08-31 00:12:22Z emaste $"); +ELFTC_VCSID("$Id: pe.c 3508 2016-12-27 06:19:39Z kaiwang27 $"); /* Convert ELF object to Portable Executable (PE). */ void @@ -70,7 +70,7 @@ create_pe(struct elfcopy *ecp, int ifd, errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", elf_errmsg(-1)); - if (elf_getshstrndx(ecp->ein, &indx) == 0) + if (elf_getshstrndx(e, &indx) == 0) errx(EXIT_FAILURE, "elf_getshstrndx() failed: %s", elf_errmsg(-1)); @@ -124,7 +124,7 @@ create_pe(struct elfcopy *ecp, int ifd, (void) elf_errno(); continue; } - if ((name = elf_strptr(ecp->ein, indx, sh.sh_name)) == + if ((name = elf_strptr(e, indx, sh.sh_name)) == NULL) { warnx("elf_strptr() failed: %s", elf_errmsg(-1)); (void) elf_errno(); @@ -210,12 +210,14 @@ create_pe(struct elfcopy *ecp, int ifd, } pb->pb_align = 1; pb->pb_off = 0; - pb->pb_size = roundup(sh.sh_size, poh.oh_filealign); - if ((pb->pb_buf = calloc(1, pb->pb_size)) == NULL) { - warn("calloc failed"); - continue; + if (sh.sh_type != SHT_NOBITS) { + pb->pb_size = roundup(sh.sh_size, poh.oh_filealign); + if ((pb->pb_buf = calloc(1, pb->pb_size)) == NULL) { + warn("calloc failed"); + continue; + } + memcpy(pb->pb_buf, d->d_buf, sh.sh_size); } - memcpy(pb->pb_buf, d->d_buf, sh.sh_size); } elferr = elf_errno(); if (elferr != 0) Modified: vendor/elftoolchain/dist/elfcopy/symbols.c ============================================================================== --- vendor/elftoolchain/dist/elfcopy/symbols.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/elfcopy/symbols.c Mon Apr 17 23:14:26 2017 (r317073) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: symbols.c 3446 2016-05-03 01:31:17Z emaste $"); +ELFTC_VCSID("$Id: symbols.c 3520 2017-04-17 01:47:52Z kaiwang27 $"); /* Symbol table buffer structure. */ struct symbuf { @@ -670,6 +670,8 @@ create_symtab(struct elfcopy *ecp) sy = ecp->symtab; st = ecp->strtab; + assert(sy != NULL && st != NULL); + /* * Set section index map for .symtab and .strtab. We need to set * these map because otherwise symbols which refer to .symtab and Modified: vendor/elftoolchain/dist/elfdump/elfdump.c ============================================================================== --- vendor/elftoolchain/dist/elfdump/elfdump.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/elfdump/elfdump.c Mon Apr 17 23:14:26 2017 (r317073) @@ -50,7 +50,7 @@ #include "_elftc.h" -ELFTC_VCSID("$Id: elfdump.c 3482 2016-08-02 18:47:00Z emaste $"); +ELFTC_VCSID("$Id: elfdump.c 3497 2016-10-17 20:57:22Z emaste $"); #if defined(ELFTC_NEED_ELF_NOTE_DEFINITION) #include "native-elf-format.h" @@ -223,9 +223,9 @@ d_tags(uint64_t tag) case 0x6ffffff0: return "DT_GNU_VERSYM"; /* 0x70000000 - 0x7fffffff processor-specific semantics */ case 0x70000000: return "DT_IA_64_PLT_RESERVE"; - case 0x7ffffffd: return "DT_SUNW_AUXILIARY"; - case 0x7ffffffe: return "DT_SUNW_USED"; - case 0x7fffffff: return "DT_SUNW_FILTER"; + case DT_AUXILIARY: return "DT_AUXILIARY"; + case DT_USED: return "DT_USED"; + case DT_FILTER: return "DT_FILTER"; } snprintf(unknown_buf, sizeof(unknown_buf), Modified: vendor/elftoolchain/dist/libdwarf/dwarf.h ============================================================================== --- vendor/elftoolchain/dist/libdwarf/dwarf.h Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libdwarf/dwarf.h Mon Apr 17 23:14:26 2017 (r317073) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: dwarf.h 3052 2014-05-26 20:36:24Z kaiwang27 $ + * $Id: dwarf.h 3494 2016-09-20 17:16:13Z emaste $ */ #ifndef _DWARF_H_ @@ -208,6 +208,25 @@ #define DW_AT_lo_user 0x2000 #define DW_AT_hi_user 0x3fff +/* SGI/MIPS extensions. */ +#define DW_AT_MIPS_fde 0x2001 +#define DW_AT_MIPS_loop_begin 0x2002 +#define DW_AT_MIPS_tail_loop_begin 0x2003 +#define DW_AT_MIPS_epilog_begin 0x2004 +#define DW_AT_MIPS_loop_unroll_factor 0x2005 +#define DW_AT_MIPS_software_pipeline_depth 0x2006 +#define DW_AT_MIPS_linkage_name 0x2007 +#define DW_AT_MIPS_stride 0x2008 +#define DW_AT_MIPS_abstract_name 0x2009 +#define DW_AT_MIPS_clone_origin 0x200a +#define DW_AT_MIPS_has_inlines 0x200b +#define DW_AT_MIPS_stride_byte 0x200c +#define DW_AT_MIPS_stride_elem 0x200d +#define DW_AT_MIPS_ptr_dopetype 0x200e +#define DW_AT_MIPS_allocatable_dopetype 0x200f +#define DW_AT_MIPS_assumed_shape_dopetype 0x2010 +#define DW_AT_MIPS_assumed_size 0x2011 + /* GNU extensions. */ #define DW_AT_sf_names 0x2101 #define DW_AT_src_info 0x2102 @@ -234,6 +253,21 @@ #define DW_AT_GNU_all_call_sites 0x2117 #define DW_AT_GNU_all_source_call_sites 0x2118 +/* Apple extensions. */ +#define DW_AT_APPLE_optimized 0x3fe1 +#define DW_AT_APPLE_flags 0x3fe2 +#define DW_AT_APPLE_isa 0x3fe3 +#define DW_AT_APPLE_block 0x3fe4 +#define DW_AT_APPLE_major_runtime_vers 0x3fe5 +#define DW_AT_APPLE_runtime_class 0x3fe6 +#define DW_AT_APPLE_omit_frame_ptr 0x3fe7 +#define DW_AT_APPLE_property_name 0x3fe8 +#define DW_AT_APPLE_property_getter 0x3fe9 +#define DW_AT_APPLE_property_setter 0x3fea +#define DW_AT_APPLE_property_attribute 0x3feb +#define DW_AT_APPLE_objc_complete_type 0x3fec +#define DW_AT_APPLE_property 0x3fed + #define DW_FORM_addr 0x01 #define DW_FORM_block2 0x03 #define DW_FORM_block4 0x04 @@ -490,6 +524,7 @@ #define DW_LANG_UPC 0x0012 #define DW_LANG_D 0x0013 #define DW_LANG_lo_user 0x8000 +#define DW_LANG_Mips_Assembler 0x8001 #define DW_LANG_hi_user 0xffff #define DW_ID_case_sensitive 0x00 Modified: vendor/elftoolchain/dist/libdwarf/dwarf_attrval.c ============================================================================== --- vendor/elftoolchain/dist/libdwarf/dwarf_attrval.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libdwarf/dwarf_attrval.c Mon Apr 17 23:14:26 2017 (r317073) @@ -26,7 +26,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: dwarf_attrval.c 3159 2015-02-15 21:43:27Z emaste $"); +ELFTC_VCSID("$Id: dwarf_attrval.c 3509 2016-12-29 03:58:41Z emaste $"); int dwarf_attrval_flag(Dwarf_Die die, Dwarf_Half attr, Dwarf_Bool *valp, Dwarf_Error *err) @@ -145,6 +145,7 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dw Dwarf_Die die1; Dwarf_Unsigned val; Dwarf_Debug dbg; + int first; dbg = die != NULL ? die->die_dbg : NULL; @@ -155,14 +156,16 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dw *valp = 0; - if ((at = _dwarf_attr_find(die, attr)) == NULL && attr != DW_AT_type) { - DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - die1 = NULL; - if (at == NULL && - (at = _dwarf_attr_find(die, DW_AT_abstract_origin)) != NULL) { + for (;;) { + if ((at = _dwarf_attr_find(die, attr)) != NULL || + attr != DW_AT_type) + break; + if ((at = _dwarf_attr_find(die, DW_AT_abstract_origin)) == + NULL && + (at = _dwarf_attr_find(die, DW_AT_specification)) == NULL) + break; + switch (at->at_form) { case DW_FORM_ref1: case DW_FORM_ref2: @@ -170,13 +173,15 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dw case DW_FORM_ref8: case DW_FORM_ref_udata: val = at->u[0].u64; - if ((die1 = _dwarf_die_find(die, val)) == NULL || - (at = _dwarf_attr_find(die1, attr)) == NULL) { - if (die1 != NULL) - dwarf_dealloc(dbg, die1, DW_DLA_DIE); + first = (die1 == NULL); + die1 = _dwarf_die_find(die, val); + if (!first) + dwarf_dealloc(dbg, die, DW_DLA_DIE); + if (die1 == NULL) { DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); return (DW_DLV_NO_ENTRY); } + die = die1; break; default: DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD); @@ -184,6 +189,11 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dw } } + if (at == NULL) { + DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); + return (DW_DLV_NO_ENTRY); + } + switch (at->at_form) { case DW_FORM_addr: case DW_FORM_data1: Modified: vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3 ============================================================================== --- vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3 Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3 Mon Apr 17 23:14:26 2017 (r317073) @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: dwarf_attrval_signed.3 2980 2014-01-21 20:15:54Z kaiwang27 $ +.\" $Id: dwarf_attrval_signed.3 3509 2016-12-29 03:58:41Z emaste $ .\" -.Dd January 18, 2014 +.Dd December 26, 2016 .Os .Dt DWARF_ATTRVAL_SIGNED 3 .Sh NAME @@ -168,17 +168,22 @@ or .Pp If the attribute named by argument .Ar attr -is not present in the debugging information entry referenced by -argument +is +.Dv DW_AT_type +and is not present in the debugging information entry referenced by argument .Ar die , and if a .Dv DW_AT_abstract_origin +or +.Dv DW_AT_specification attribute is present in the debugging information entry, function .Fn dwarf_attrval_unsigned will search for the named attribute in the debugging information entry referenced by the .Dv DW_AT_abstract_origin +or +.Dv DW_AT_specification attribute. .Sh RETURN VALUES On success, these functions returns Modified: vendor/elftoolchain/dist/libdwarf/dwarf_dump.c ============================================================================== --- vendor/elftoolchain/dist/libdwarf/dwarf_dump.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libdwarf/dwarf_dump.c Mon Apr 17 23:14:26 2017 (r317073) @@ -27,7 +27,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: dwarf_dump.c 3052 2014-05-26 20:36:24Z kaiwang27 $"); +ELFTC_VCSID("$Id: dwarf_dump.c 3494 2016-09-20 17:16:13Z emaste $"); int dwarf_get_ACCESS_name(unsigned access, const char **s) @@ -262,6 +262,40 @@ dwarf_get_AT_name(unsigned attr, const c *s = "DW_AT_body_begin"; break; case DW_AT_body_end: *s = "DW_AT_body_end"; break; + case DW_AT_MIPS_fde: + *s = "DW_AT_MIPS_fde"; break; + case DW_AT_MIPS_loop_begin: + *s = "DW_AT_MIPS_loop_begin"; break; + case DW_AT_MIPS_tail_loop_begin: + *s = "DW_AT_MIPS_tail_loop_begin"; break; + case DW_AT_MIPS_epilog_begin: + *s = "DW_AT_MIPS_epilog_begin"; break; + case DW_AT_MIPS_loop_unroll_factor: + *s = "DW_AT_MIPS_loop_unroll_factor"; break; + case DW_AT_MIPS_software_pipeline_depth: + *s = "DW_AT_MIPS_software_pipeline_depth"; break; + case DW_AT_MIPS_linkage_name: + *s = "DW_AT_MIPS_linkage_name"; break; + case DW_AT_MIPS_stride: + *s = "DW_AT_MIPS_stride"; break; + case DW_AT_MIPS_abstract_name: + *s = "DW_AT_MIPS_abstract_name"; break; + case DW_AT_MIPS_clone_origin: + *s = "DW_AT_MIPS_clone_origin"; break; + case DW_AT_MIPS_has_inlines: + *s = "DW_AT_MIPS_has_inlines"; break; + case DW_AT_MIPS_stride_byte: + *s = "DW_AT_MIPS_stride_byte"; break; + case DW_AT_MIPS_stride_elem: + *s = "DW_AT_MIPS_stride_elem"; break; + case DW_AT_MIPS_ptr_dopetype: + *s = "DW_AT_MIPS_ptr_dopetype"; break; + case DW_AT_MIPS_allocatable_dopetype: + *s = "DW_AT_MIPS_allocatable_dopetype"; break; + case DW_AT_MIPS_assumed_shape_dopetype: + *s = "DW_AT_MIPS_assumed_shape_dopetype"; break; + case DW_AT_MIPS_assumed_size: + *s = "DW_AT_MIPS_assumed_size"; break; case DW_AT_GNU_vector: *s = "DW_AT_GNU_vector"; break; case DW_AT_GNU_guarded_by: @@ -298,6 +332,32 @@ dwarf_get_AT_name(unsigned attr, const c *s = "DW_AT_GNU_all_call_sites"; break; case DW_AT_GNU_all_source_call_sites: *s = "DW_AT_GNU_all_source_call_sites"; break; + case DW_AT_APPLE_optimized: + *s = "DW_AT_APPLE_optimized"; break; + case DW_AT_APPLE_flags: + *s = "DW_AT_APPLE_flags"; break; + case DW_AT_APPLE_isa: + *s = "DW_AT_APPLE_isa"; break; + case DW_AT_APPLE_block: + *s = "DW_AT_APPLE_block"; break; + case DW_AT_APPLE_major_runtime_vers: + *s = "DW_AT_APPLE_major_runtime_vers"; break; + case DW_AT_APPLE_runtime_class: + *s = "DW_AT_APPLE_runtime_class"; break; + case DW_AT_APPLE_omit_frame_ptr: + *s = "DW_AT_APPLE_omit_frame_ptr"; break; + case DW_AT_APPLE_property_name: + *s = "DW_AT_APPLE_property_name"; break; + case DW_AT_APPLE_property_getter: + *s = "DW_AT_APPLE_property_getter"; break; + case DW_AT_APPLE_property_setter: + *s = "DW_AT_APPLE_property_setter"; break; + case DW_AT_APPLE_property_attribute: + *s = "DW_AT_APPLE_property_attribute"; break; + case DW_AT_APPLE_objc_complete_type: + *s = "DW_AT_APPLE_objc_complete_type"; break; + case DW_AT_APPLE_property: + *s = "DW_AT_APPLE_property"; break; default: return (DW_DLV_NO_ENTRY); } @@ -730,6 +790,8 @@ dwarf_get_LANG_name(unsigned lang, const *s = "DW_LANG_D"; break; case DW_LANG_lo_user: *s = "DW_LANG_lo_user"; break; + case DW_LANG_Mips_Assembler: + *s = "DW_LANG_Mips_Assembler"; break; case DW_LANG_hi_user: *s = "DW_LANG_hi_user"; break; default: Modified: vendor/elftoolchain/dist/libelf/gelf_newehdr.3 ============================================================================== --- vendor/elftoolchain/dist/libelf/gelf_newehdr.3 Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libelf/gelf_newehdr.3 Mon Apr 17 23:14:26 2017 (r317073) @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: gelf_newehdr.3 189 2008-07-20 10:38:08Z jkoshy $ +.\" $Id: gelf_newehdr.3 3500 2016-12-04 11:08:44Z jkoshy $ .\" .Dd October 22, 2007 .Os @@ -127,6 +127,15 @@ flag on ELF descriptor .Sh RETURN VALUES These functions return a pointer to a translated header descriptor if successful, or NULL on failure. +.Sh COMPATIBILITY +The +.Fn gelf_newehdr +function uses a type of +.Ft "void *" +for its returned value. +This differs from some other implementations of the ELF(3) API, which use an +.Ft "unsigned long" +return type. .Sh ERRORS These functions can fail with the following errors: .Bl -tag -width "[ELF_E_RESOURCE]" Modified: vendor/elftoolchain/dist/libelf/gelf_newphdr.3 ============================================================================== --- vendor/elftoolchain/dist/libelf/gelf_newphdr.3 Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libelf/gelf_newphdr.3 Mon Apr 17 23:14:26 2017 (r317073) @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: gelf_newphdr.3 189 2008-07-20 10:38:08Z jkoshy $ +.\" $Id: gelf_newphdr.3 3500 2016-12-04 11:08:44Z jkoshy $ .\" .Dd October 22, 2007 .Os @@ -97,6 +97,15 @@ will no longer be valid. .Sh RETURN VALUES The functions a valid pointer if successful, or NULL in case an error was encountered. +.Sh COMPATIBILITY +The +.Fn gelf_newphdr +function uses a type of +.Ft "void *" +for its returned value. +This differs from some other implementations of the ELF(3) API, which use an +.Ft "unsigned long" +return type. .Sh ERRORS These functions may fail with the following errors: .Bl -tag -width "[ELF_E_RESOURCE]" Modified: vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3 ============================================================================== --- vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3 Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3 Mon Apr 17 23:14:26 2017 (r317073) @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: elftc_bfd_find_target.3 3488 2016-08-24 18:15:57Z emaste $ +.\" $Id: elftc_bfd_find_target.3 3516 2017-02-10 02:33:08Z emaste $ .\" .Dd November 30, 2011 .Os @@ -74,6 +74,7 @@ Known descriptor names and their propert .It Li elf32-littlearm Ta ELF Ta LSB Ta 32 .It Li elf32-littlemips Ta ELF Ta LSB Ta 32 .It Li elf32-powerpc Ta ELF Ta MSB Ta 32 +.It Li elf32-powerpc-freebsd Ta ELF Ta MSB Ta 32 .It Li elf32-powerpcle Ta ELF Ta LSB Ta 32 .It Li elf32-sh Ta ELF Ta MSB Ta 32 .It Li elf32-shl Ta ELF Ta LSB Ta 32 @@ -82,6 +83,8 @@ Known descriptor names and their propert .It Li elf32-shbig-linux Ta ELF Ta MSB Ta 32 .It Li elf32-shl-linux Ta ELF Ta LSB Ta 32 .It Li elf32-sparc Ta ELF Ta MSB Ta 32 +.It Li elf32-tradbigmips Ta ELF Ta MSB Ta 32 +.It Li elf32-tradlittlemips Ta ELF Ta LSB Ta 32 .It Li elf64-alpha Ta ELF Ta LSB Ta 64 .It Li elf64-alpha-freebsd Ta ELF Ta LSB Ta 64 .It Li elf64-big Ta ELF Ta MSB Ta 64 @@ -92,6 +95,7 @@ Known descriptor names and their propert .It Li elf64-littleaarch64 Ta ELF Ta LSB Ta 64 .It Li elf64-littlemips Ta ELF Ta LSB Ta 64 .It Li elf64-powerpc Ta ELF Ta MSB Ta 64 +.It Li elf64-powerpc-freebsd Ta ELF Ta MSB Ta 64 .It Li elf64-powerpcle Ta ELF Ta LSB Ta 64 .It Li elf64-sh64 Ta ELF Ta MSB Ta 64 .It Li elf64-sh64l Ta ELF Ta LSB Ta 64 @@ -101,6 +105,8 @@ Known descriptor names and their propert .It Li elf64-sh64-linux Ta ELF Ta LSB Ta 64 .It Li elf64-sparc Ta ELF Ta MSB Ta 64 .It Li elf64-sparc-freebsd Ta ELF Ta MSB Ta 64 +.It Li elf64-tradbigmips Ta ELF Ta MSB Ta 64 +.It Li elf64-tradlittlemips Ta ELF Ta LSB Ta 64 .It Li elf64-x86-64 Ta ELF Ta LSB Ta 64 .It Li elf64-x86-64-freebsd Ta ELF Ta LSB Ta 64 .It Li ihex Ta IHEX Ta - Ta - Modified: vendor/elftoolchain/dist/libelftc/libelftc_bfdtarget.c ============================================================================== --- vendor/elftoolchain/dist/libelftc/libelftc_bfdtarget.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libelftc/libelftc_bfdtarget.c Mon Apr 17 23:14:26 2017 (r317073) @@ -30,7 +30,7 @@ #include "_libelftc.h" -ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3488 2016-08-24 18:15:57Z emaste $"); +ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3516 2017-02-10 02:33:08Z emaste $"); struct _Elftc_Bfd_Target _libelftc_targets[] = { @@ -127,6 +127,15 @@ struct _Elftc_Bfd_Target _libelftc_targe }, { + .bt_name = "elf32-powerpc-freebsd", + .bt_type = ETF_ELF, + .bt_byteorder = ELFDATA2MSB, + .bt_elfclass = ELFCLASS32, + .bt_machine = EM_PPC, + .bt_osabi = ELFOSABI_FREEBSD, + }, + + { .bt_name = "elf32-powerpcle", .bt_type = ETF_ELF, .bt_byteorder = ELFDATA2LSB, @@ -195,6 +204,22 @@ struct _Elftc_Bfd_Target _libelftc_targe }, { + .bt_name = "elf32-tradbigmips", + .bt_type = ETF_ELF, + .bt_byteorder = ELFDATA2MSB, + .bt_elfclass = ELFCLASS32, + .bt_machine = EM_MIPS, + }, + + { + .bt_name = "elf32-tradlittlemips", + .bt_type = ETF_ELF, + .bt_byteorder = ELFDATA2LSB, + .bt_elfclass = ELFCLASS32, + .bt_machine = EM_MIPS, + }, + + { .bt_name = "elf64-alpha", .bt_type = ETF_ELF, .bt_byteorder = ELFDATA2LSB, @@ -274,6 +299,15 @@ struct _Elftc_Bfd_Target _libelftc_targe }, { + .bt_name = "elf64-powerpc-freebsd", + .bt_type = ETF_ELF, + .bt_byteorder = ELFDATA2MSB, + .bt_elfclass = ELFCLASS64, + .bt_machine = EM_PPC64, + .bt_osabi = ELFOSABI_FREEBSD, + }, + + { .bt_name = "elf64-powerpcle", .bt_type = ETF_ELF, .bt_byteorder = ELFDATA2LSB, @@ -351,6 +385,22 @@ struct _Elftc_Bfd_Target _libelftc_targe }, { + .bt_name = "elf64-tradbigmips", + .bt_type = ETF_ELF, + .bt_byteorder = ELFDATA2MSB, + .bt_elfclass = ELFCLASS64, + .bt_machine = EM_MIPS, + }, + + { + .bt_name = "elf64-tradlittlemips", + .bt_type = ETF_ELF, + .bt_byteorder = ELFDATA2LSB, + .bt_elfclass = ELFCLASS64, + .bt_machine = EM_MIPS, + }, + + { .bt_name = "elf64-x86-64", .bt_type = ETF_ELF, .bt_byteorder = ELFDATA2LSB, Modified: vendor/elftoolchain/dist/libelftc/libelftc_dem_arm.c ============================================================================== --- vendor/elftoolchain/dist/libelftc/libelftc_dem_arm.c Mon Apr 17 22:02:09 2017 (r317072) +++ vendor/elftoolchain/dist/libelftc/libelftc_dem_arm.c Mon Apr 17 23:14:26 2017 (r317073) @@ -37,7 +37,7 @@ #include "_libelftc.h" -ELFTC_VCSID("$Id: libelftc_dem_arm.c 3447 2016-05-03 13:32:23Z emaste $"); +ELFTC_VCSID("$Id: libelftc_dem_arm.c 3513 2016-12-29 07:04:22Z kaiwang27 $"); /** * @file cpp_demangle_arm.c @@ -68,6 +68,7 @@ struct demangle_data { }; #define SIMPLE_HASH(x,y) (64 * x + y) +#define VEC_PUSH_STR(d,s) vector_str_push((d), (s), strlen((s))) #define CPP_DEMANGLE_ARM_TRY 128 static void dest_cstring(struct cstring *); @@ -137,7 +138,7 @@ cpp_demangle_ARM(const char *org) ++d.p; /* start argument types */ - if (vector_str_push(&d.vec, "(", 1) == false) + if (VEC_PUSH_STR(&d.vec, "(") == false) goto clean; for (;;) { @@ -169,21 +170,21 @@ cpp_demangle_ARM(const char *org) goto clean; if (d.ptr == true) { - if (vector_str_push(&d.vec, "*", 1) == false) + if (VEC_PUSH_STR(&d.vec, "*") == false) goto clean; d.ptr = false; } if (d.ref == true) { - if (vector_str_push(&d.vec, "&", 1) == false) + if (VEC_PUSH_STR(&d.vec, "&") == false) goto clean; d.ref = false; } if (d.cnst == true) { - if (vector_str_push(&d.vec, " const", 6) == false) + if (VEC_PUSH_STR(&d.vec, " const") == false) goto clean; d.cnst = false; @@ -210,7 +211,7 @@ cpp_demangle_ARM(const char *org) free(arg); - if (vector_str_push(&d.vec, ", ", 2) == false) + if (VEC_PUSH_STR(&d.vec, ", ") == false) goto clean; if (++try > CPP_DEMANGLE_ARM_TRY) @@ -218,7 +219,7 @@ cpp_demangle_ARM(const char *org) } /* end argument types */ - if (vector_str_push(&d.vec, ")", 1) == false) + if (VEC_PUSH_STR(&d.vec, ")") == false) goto clean; flat: @@ -323,11 +324,10 @@ push_CTDT(const char *s, size_t l, struc return (false); assert(v->size > 1); - if (vector_str_push(v, v->container[v->size - 2], - strlen(v->container[v->size - 2])) == false) + if (VEC_PUSH_STR(v, v->container[v->size - 2]) == false) return (false); - if (vector_str_push(v, "()", 2) == false) + if (VEC_PUSH_STR(v, "()") == false) return (false); return (true); @@ -429,7 +429,7 @@ read_func(struct demangle_data *d) if (read_class(d) == false) return (false); - if (vector_str_push(&d->vec, "::", 2) == false) + if (VEC_PUSH_STR(&d->vec, "::") == false) return (false); } @@ -486,7 +486,7 @@ read_func_name(struct demangle_data *d) if (read_qual_name(d) == false) goto clean; - if (vector_str_push(&d->vec, "::", 2) == false) + if (VEC_PUSH_STR(&d->vec, "::") == false) goto clean; if (vector_str_push(&d->vec, op_name, len) == false) @@ -508,7 +508,7 @@ read_func_name(struct demangle_data *d) if (read_class(d) == false) goto clean; - if (vector_str_push(&d->vec, "::", 2) == false) + if (VEC_PUSH_STR(&d->vec, "::") == false) goto clean; if (vector_str_push(&d->vec, op_name, len) == false) @@ -553,7 +553,7 @@ read_func_ptr(struct demangle_data *d) } if (fptr.ptr == true) { - if (vector_str_push(&fptr.vec, "*", 1) == false) { + if (VEC_PUSH_STR(&fptr.vec, "*") == false) { dest_demangle_data(&fptr); return (false); @@ -563,7 +563,7 @@ read_func_ptr(struct demangle_data *d) } if (fptr.ref == true) { - if (vector_str_push(&fptr.vec, "&", 1) == false) { + if (VEC_PUSH_STR(&fptr.vec, "&") == false) { dest_demangle_data(&fptr); return (false); @@ -573,7 +573,7 @@ read_func_ptr(struct demangle_data *d) } if (fptr.cnst == true) { - if (vector_str_push(&fptr.vec, " const", 6) == false) { + if (VEC_PUSH_STR(&fptr.vec, " const") == false) { dest_demangle_data(&fptr); return (false); @@ -585,7 +585,7 @@ read_func_ptr(struct demangle_data *d) if (*fptr.p == '_') break; - if (vector_str_push(&fptr.vec, ", ", 2) == false) { + if (VEC_PUSH_STR(&fptr.vec, ", ") == false) { dest_demangle_data(&fptr); return (false); @@ -636,7 +636,7 @@ read_func_ptr(struct demangle_data *d) free(rtn_type); - if (vector_str_push(&d->vec, " (*)(", 5) == false) { + if (VEC_PUSH_STR(&d->vec, " (*)(") == false) { free(arg_type); return (false); @@ -650,7 +650,7 @@ read_func_ptr(struct demangle_data *d) free(arg_type); - return (vector_str_push(&d->vec, ")", 1)); + return (VEC_PUSH_STR(&d->vec, ")")); } static bool @@ -689,7 +689,7 @@ read_memptr(struct demangle_data *d) if (vector_str_push(&d->vec, mptr_str, len) == false) goto clean; - if (vector_str_push(&d->vec, "::*", 3) == false) + if (VEC_PUSH_STR(&d->vec, "::*") == false) goto clean; rtn = true; @@ -712,108 +712,102 @@ read_op(struct demangle_data *d) switch (SIMPLE_HASH(*(d->p), *(d->p+1))) { case SIMPLE_HASH('m', 'l') : d->p += 2; - return (vector_str_push(&d->vec, "operator*", 9)); + return (VEC_PUSH_STR(&d->vec, "operator*")); case SIMPLE_HASH('d', 'v') : d->p += 2; - return (vector_str_push(&d->vec, "operator/", 9)); + return (VEC_PUSH_STR(&d->vec, "operator/")); case SIMPLE_HASH('m', 'd') : d->p += 2; - return (vector_str_push(&d->vec, "operator%", 9)); + return (VEC_PUSH_STR(&d->vec, "operator%")); case SIMPLE_HASH('p', 'l') : d->p += 2; - return (vector_str_push(&d->vec, "operator+", 9)); + return (VEC_PUSH_STR(&d->vec, "operator+")); case SIMPLE_HASH('m', 'i') : d->p += 2; - return (vector_str_push(&d->vec, "operator-", 9)); + return (VEC_PUSH_STR(&d->vec, "operator-")); case SIMPLE_HASH('l', 's') : d->p += 2; - return (vector_str_push(&d->vec, "operator<<", 10)); + return (VEC_PUSH_STR(&d->vec, "operator<<")); case SIMPLE_HASH('r', 's') : d->p += 2; - return (vector_str_push(&d->vec, "operator>>", 10)); + return (VEC_PUSH_STR(&d->vec, "operator>>")); case SIMPLE_HASH('e', 'q') : d->p += 2; - return (vector_str_push(&d->vec, "operator==", 10)); + return (VEC_PUSH_STR(&d->vec, "operator==")); case SIMPLE_HASH('n', 'e') : d->p += 2; - return (vector_str_push(&d->vec, "operator!=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator!=")); case SIMPLE_HASH('l', 't') : d->p += 2; - return (vector_str_push(&d->vec, "operator<", 9)); + return (VEC_PUSH_STR(&d->vec, "operator<")); case SIMPLE_HASH('g', 't') : d->p += 2; - return (vector_str_push(&d->vec, "operator>", 9)); + return (VEC_PUSH_STR(&d->vec, "operator>")); case SIMPLE_HASH('l', 'e') : d->p += 2; - return (vector_str_push(&d->vec, "operator<=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator<=")); case SIMPLE_HASH('g', 'e') : d->p += 2; - return (vector_str_push(&d->vec, "operator>=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator>=")); case SIMPLE_HASH('a', 'd') : d->p += 2; if (*d->p == 'v') { ++d->p; - return (vector_str_push(&d->vec, "operator/=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator/=")); } else - return (vector_str_push(&d->vec, "operator&", 9)); + return (VEC_PUSH_STR(&d->vec, "operator&")); case SIMPLE_HASH('o', 'r') : d->p += 2; - return (vector_str_push(&d->vec, "operator|", 9)); + return (VEC_PUSH_STR(&d->vec, "operator|")); case SIMPLE_HASH('e', 'r') : d->p += 2; - return (vector_str_push(&d->vec, "operator^", 9)); + return (VEC_PUSH_STR(&d->vec, "operator^")); case SIMPLE_HASH('a', 'a') : d->p += 2; if (*d->p == 'd') { ++d->p; - return (vector_str_push(&d->vec, "operator&=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator&=")); } else - return (vector_str_push(&d->vec, "operator&&", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator&&")); case SIMPLE_HASH('o', 'o') : d->p += 2; - return (vector_str_push(&d->vec, "operator||", 10)); + return (VEC_PUSH_STR(&d->vec, "operator||")); case SIMPLE_HASH('n', 't') : d->p += 2; - return (vector_str_push(&d->vec, "operator!", 9)); + return (VEC_PUSH_STR(&d->vec, "operator!")); case SIMPLE_HASH('c', 'o') : d->p += 2; - return (vector_str_push(&d->vec, "operator~", 9)); + return (VEC_PUSH_STR(&d->vec, "operator~")); case SIMPLE_HASH('p', 'p') : d->p += 2; - return (vector_str_push(&d->vec, "operator++", 10)); + return (VEC_PUSH_STR(&d->vec, "operator++")); case SIMPLE_HASH('m', 'm') : d->p += 2; - return (vector_str_push(&d->vec, "operator--", 10)); + return (VEC_PUSH_STR(&d->vec, "operator--")); case SIMPLE_HASH('a', 's') : d->p += 2; - return (vector_str_push(&d->vec, "operator=", 9)); + return (VEC_PUSH_STR(&d->vec, "operator=")); case SIMPLE_HASH('r', 'f') : d->p += 2; - return (vector_str_push(&d->vec, "operator->", 10)); + return (VEC_PUSH_STR(&d->vec, "operator->")); case SIMPLE_HASH('a', 'p') : /* apl */ if (*(d->p + 2) != 'l') return (false); d->p += 3; - return (vector_str_push(&d->vec, "operator+=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator+=")); case SIMPLE_HASH('a', 'm') : d->p += 2; if (*d->p == 'i') { ++d->p; - return (vector_str_push(&d->vec, "operator-=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator-=")); } else if (*d->p == 'u') { ++d->p; - return (vector_str_push(&d->vec, "operator*=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator*=")); } else if (*d->p == 'd') { ++d->p; - return (vector_str_push(&d->vec, "operator%=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator%=")); } return (false); @@ -823,40 +817,40 @@ read_op(struct demangle_data *d) return (false); d->p += 3; - return (vector_str_push(&d->vec, "operator<<=", 11)); + return (VEC_PUSH_STR(&d->vec, "operator<<=")); case SIMPLE_HASH('a', 'r') : /* ars */ if (*(d->p + 2) != 's') *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 17 23:30:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 928F1D42B20; Mon, 17 Apr 2017 23:30:22 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4799EE43; Mon, 17 Apr 2017 23:30:22 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HNULSp067282; Mon, 17 Apr 2017 23:30:21 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HNULUK067281; Mon, 17 Apr 2017 23:30:21 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704172330.v3HNULUK067281@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 23:30:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317074 - vendor/elftoolchain/elftoolchain-r3520 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 23:30:22 -0000 Author: emaste Date: Mon Apr 17 23:30:21 2017 New Revision: 317074 URL: https://svnweb.freebsd.org/changeset/base/317074 Log: Tag ELF Tool Chain r3520 Added: vendor/elftoolchain/elftoolchain-r3520/ - copied from r317073, vendor/elftoolchain/dist/ From owner-svn-src-all@freebsd.org Mon Apr 17 23:56:51 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7B38D4233F; Mon, 17 Apr 2017 23:56:51 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 573F61C30; Mon, 17 Apr 2017 23:56:51 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HNuoHA079311; Mon, 17 Apr 2017 23:56:50 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HNumwh079291; Mon, 17 Apr 2017 23:56:48 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704172356.v3HNumwh079291@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 23:56:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317075 - in head/contrib/elftoolchain: addr2line ar common cxxfilt elfcopy elfdump libdwarf libelf libelftc nm readelf strings X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 23:56:51 -0000 Author: emaste Date: Mon Apr 17 23:56:48 2017 New Revision: 317075 URL: https://svnweb.freebsd.org/changeset/base/317075 Log: Update ELF Tool Chain to upstream r3520 Highlights of changes between r3490 and r3520: - Improve C++ demangling - Improve compatibility with Binutils tools wrt. error messages - Handle additional types/sections/etc. in readelf and elfdump - addr2line, cxxfilt: use setvbuf to set line buffering for filter use PR: 218395 MFC after: 2 weeks Relnotes: Yes Sponsored by: The FreeBSD Foundation Added: head/contrib/elftoolchain/ar/os.FreeBSD.mk - copied unchanged from r317073, vendor/elftoolchain/dist/ar/os.FreeBSD.mk head/contrib/elftoolchain/elfcopy/os.FreeBSD.mk - copied unchanged from r317073, vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk Modified: head/contrib/elftoolchain/addr2line/addr2line.c head/contrib/elftoolchain/common/elfdefinitions.h head/contrib/elftoolchain/cxxfilt/cxxfilt.c head/contrib/elftoolchain/elfcopy/main.c head/contrib/elftoolchain/elfcopy/pe.c head/contrib/elftoolchain/elfcopy/symbols.c head/contrib/elftoolchain/elfdump/elfdump.c head/contrib/elftoolchain/libdwarf/dwarf.h head/contrib/elftoolchain/libdwarf/dwarf_attrval.c head/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 head/contrib/elftoolchain/libdwarf/dwarf_dump.c head/contrib/elftoolchain/libelf/gelf_newehdr.3 head/contrib/elftoolchain/libelf/gelf_newphdr.3 head/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 head/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c head/contrib/elftoolchain/libelftc/libelftc_dem_arm.c head/contrib/elftoolchain/libelftc/libelftc_dem_gnu2.c head/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c head/contrib/elftoolchain/nm/nm.c head/contrib/elftoolchain/readelf/readelf.c head/contrib/elftoolchain/strings/strings.c Directory Properties: head/contrib/elftoolchain/ (props changed) head/contrib/elftoolchain/ar/ (props changed) head/contrib/elftoolchain/elfdump/ (props changed) Modified: head/contrib/elftoolchain/addr2line/addr2line.c ============================================================================== --- head/contrib/elftoolchain/addr2line/addr2line.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/addr2line/addr2line.c Mon Apr 17 23:56:48 2017 (r317075) @@ -40,7 +40,7 @@ #include "uthash.h" #include "_elftc.h" -ELFTC_VCSID("$Id: addr2line.c 3446 2016-05-03 01:31:17Z emaste $"); +ELFTC_VCSID("$Id: addr2line.c 3499 2016-11-25 16:06:29Z emaste $"); struct Func { char *name; @@ -720,11 +720,11 @@ main(int argc, char **argv) if (argc > 0) for (i = 0; i < argc; i++) translate(dbg, e, argv[i]); - else - while (fgets(line, sizeof(line), stdin) != NULL) { + else { + setvbuf(stdout, NULL, _IOLBF, 0); + while (fgets(line, sizeof(line), stdin) != NULL) translate(dbg, e, line); - fflush(stdout); - } + } dwarf_finish(dbg, &de); Copied: head/contrib/elftoolchain/ar/os.FreeBSD.mk (from r317073, vendor/elftoolchain/dist/ar/os.FreeBSD.mk) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/elftoolchain/ar/os.FreeBSD.mk Mon Apr 17 23:56:48 2017 (r317075, copy of r317073, vendor/elftoolchain/dist/ar/os.FreeBSD.mk) @@ -0,0 +1,2 @@ +DPADD+= ${LIBBZ2} +LDADD+= -lbz2 Modified: head/contrib/elftoolchain/common/elfdefinitions.h ============================================================================== --- head/contrib/elftoolchain/common/elfdefinitions.h Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/common/elfdefinitions.h Mon Apr 17 23:56:48 2017 (r317075) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: elfdefinitions.h 3485 2016-08-18 13:38:52Z emaste $ + * $Id: elfdefinitions.h 3515 2017-01-24 22:04:22Z emaste $ */ /* @@ -153,6 +153,8 @@ _ELF_DEFINE_DT(DT_SUNW_FILTER, 0x60 "offset of string naming standard filtees") \ _ELF_DEFINE_DT(DT_SUNW_CAP, 0x60000010UL, \ "address of hardware capabilities section") \ +_ELF_DEFINE_DT(DT_SUNW_ASLR, 0x60000023UL, \ + "Address Space Layout Randomization flag") \ _ELF_DEFINE_DT(DT_HIOS, 0x6FFFF000UL, \ "end of OS-specific types") \ _ELF_DEFINE_DT(DT_VALRNGLO, 0x6FFFFD00UL, \ @@ -919,6 +921,12 @@ _ELF_DEFINE_PT(PT_GNU_STACK, 0x6474E "Stack flags") \ _ELF_DEFINE_PT(PT_GNU_RELRO, 0x6474E552UL, \ "Segment becomes read-only after relocation") \ +_ELF_DEFINE_PT(PT_OPENBSD_RANDOMIZE,0x65A3DBE6UL, \ + "Segment filled with random data") \ +_ELF_DEFINE_PT(PT_OPENBSD_WXNEEDED, 0x65A3DBE7UL, \ + "Program violates W^X") \ +_ELF_DEFINE_PT(PT_OPENBSD_BOOTDATA, 0x65A41BE6UL, \ + "Boot data") \ _ELF_DEFINE_PT(PT_SUNWBSS, 0x6FFFFFFAUL, \ "A Solaris .SUNW_bss section") \ _ELF_DEFINE_PT(PT_SUNWSTACK, 0x6FFFFFFBUL, \ Modified: head/contrib/elftoolchain/cxxfilt/cxxfilt.c ============================================================================== --- head/contrib/elftoolchain/cxxfilt/cxxfilt.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/cxxfilt/cxxfilt.c Mon Apr 17 23:56:48 2017 (r317075) @@ -35,7 +35,7 @@ #include "_elftc.h" -ELFTC_VCSID("$Id: cxxfilt.c 3454 2016-05-07 17:11:05Z kaiwang27 $"); +ELFTC_VCSID("$Id: cxxfilt.c 3499 2016-11-25 16:06:29Z emaste $"); #define STRBUFSZ 8192 @@ -175,6 +175,7 @@ main(int argc, char **argv) } else { p = 0; for (;;) { + setvbuf(stdout, NULL, _IOLBF, 0); c = fgetc(stdin); if (c == EOF || !(isalnum(c) || strchr(".$_", c))) { if (p > 0) { Modified: head/contrib/elftoolchain/elfcopy/main.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/main.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/elfcopy/main.c Mon Apr 17 23:56:48 2017 (r317075) @@ -39,7 +39,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: main.c 3446 2016-05-03 01:31:17Z emaste $"); +ELFTC_VCSID("$Id: main.c 3520 2017-04-17 01:47:52Z kaiwang27 $"); enum options { @@ -285,6 +285,7 @@ create_elf(struct elfcopy *ecp) size_t ishnum; ecp->flags |= SYMTAB_INTACT; + ecp->flags &= ~SYMTAB_EXIST; /* Create EHDR. */ if (gelf_getehdr(ecp->ein, &ieh) == NULL) @@ -499,6 +500,10 @@ free_elf(struct elfcopy *ecp) } } + ecp->symtab = NULL; + ecp->strtab = NULL; + ecp->shstrtab = NULL; + if (ecp->secndx != NULL) { free(ecp->secndx); ecp->secndx = NULL; Copied: head/contrib/elftoolchain/elfcopy/os.FreeBSD.mk (from r317073, vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/elftoolchain/elfcopy/os.FreeBSD.mk Mon Apr 17 23:56:48 2017 (r317075, copy of r317073, vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk) @@ -0,0 +1,4 @@ +.if !defined(LIBELF_AR) +DPADD+= ${LIBBZ2} +LDADD+= -lbz2 +.endif Modified: head/contrib/elftoolchain/elfcopy/pe.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/pe.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/elfcopy/pe.c Mon Apr 17 23:56:48 2017 (r317075) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: pe.c 3490 2016-08-31 00:12:22Z emaste $"); +ELFTC_VCSID("$Id: pe.c 3508 2016-12-27 06:19:39Z kaiwang27 $"); /* Convert ELF object to Portable Executable (PE). */ void Modified: head/contrib/elftoolchain/elfcopy/symbols.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/symbols.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/elfcopy/symbols.c Mon Apr 17 23:56:48 2017 (r317075) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: symbols.c 3446 2016-05-03 01:31:17Z emaste $"); +ELFTC_VCSID("$Id: symbols.c 3520 2017-04-17 01:47:52Z kaiwang27 $"); /* Backwards compatibility for systems with older ELF definitions. */ #ifndef STB_GNU_UNIQUE @@ -676,6 +676,8 @@ create_symtab(struct elfcopy *ecp) sy = ecp->symtab; st = ecp->strtab; + assert(sy != NULL && st != NULL); + /* * Set section index map for .symtab and .strtab. We need to set * these map because otherwise symbols which refer to .symtab and Modified: head/contrib/elftoolchain/elfdump/elfdump.c ============================================================================== --- head/contrib/elftoolchain/elfdump/elfdump.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/elfdump/elfdump.c Mon Apr 17 23:56:48 2017 (r317075) @@ -50,7 +50,7 @@ #include "_elftc.h" -ELFTC_VCSID("$Id: elfdump.c 3482 2016-08-02 18:47:00Z emaste $"); +ELFTC_VCSID("$Id: elfdump.c 3497 2016-10-17 20:57:22Z emaste $"); #if defined(ELFTC_NEED_ELF_NOTE_DEFINITION) #include "native-elf-format.h" @@ -223,9 +223,9 @@ d_tags(uint64_t tag) case 0x6ffffff0: return "DT_GNU_VERSYM"; /* 0x70000000 - 0x7fffffff processor-specific semantics */ case 0x70000000: return "DT_IA_64_PLT_RESERVE"; - case 0x7ffffffd: return "DT_SUNW_AUXILIARY"; - case 0x7ffffffe: return "DT_SUNW_USED"; - case 0x7fffffff: return "DT_SUNW_FILTER"; + case DT_AUXILIARY: return "DT_AUXILIARY"; + case DT_USED: return "DT_USED"; + case DT_FILTER: return "DT_FILTER"; } snprintf(unknown_buf, sizeof(unknown_buf), Modified: head/contrib/elftoolchain/libdwarf/dwarf.h ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf.h Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libdwarf/dwarf.h Mon Apr 17 23:56:48 2017 (r317075) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: dwarf.h 3052 2014-05-26 20:36:24Z kaiwang27 $ + * $Id: dwarf.h 3494 2016-09-20 17:16:13Z emaste $ */ #ifndef _DWARF_H_ @@ -208,6 +208,25 @@ #define DW_AT_lo_user 0x2000 #define DW_AT_hi_user 0x3fff +/* SGI/MIPS extensions. */ +#define DW_AT_MIPS_fde 0x2001 +#define DW_AT_MIPS_loop_begin 0x2002 +#define DW_AT_MIPS_tail_loop_begin 0x2003 +#define DW_AT_MIPS_epilog_begin 0x2004 +#define DW_AT_MIPS_loop_unroll_factor 0x2005 +#define DW_AT_MIPS_software_pipeline_depth 0x2006 +#define DW_AT_MIPS_linkage_name 0x2007 +#define DW_AT_MIPS_stride 0x2008 +#define DW_AT_MIPS_abstract_name 0x2009 +#define DW_AT_MIPS_clone_origin 0x200a +#define DW_AT_MIPS_has_inlines 0x200b +#define DW_AT_MIPS_stride_byte 0x200c +#define DW_AT_MIPS_stride_elem 0x200d +#define DW_AT_MIPS_ptr_dopetype 0x200e +#define DW_AT_MIPS_allocatable_dopetype 0x200f +#define DW_AT_MIPS_assumed_shape_dopetype 0x2010 +#define DW_AT_MIPS_assumed_size 0x2011 + /* GNU extensions. */ #define DW_AT_sf_names 0x2101 #define DW_AT_src_info 0x2102 @@ -505,6 +524,7 @@ #define DW_LANG_UPC 0x0012 #define DW_LANG_D 0x0013 #define DW_LANG_lo_user 0x8000 +#define DW_LANG_Mips_Assembler 0x8001 #define DW_LANG_hi_user 0xffff #define DW_ID_case_sensitive 0x00 Modified: head/contrib/elftoolchain/libdwarf/dwarf_attrval.c ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf_attrval.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libdwarf/dwarf_attrval.c Mon Apr 17 23:56:48 2017 (r317075) @@ -26,7 +26,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: dwarf_attrval.c 3159 2015-02-15 21:43:27Z emaste $"); +ELFTC_VCSID("$Id: dwarf_attrval.c 3509 2016-12-29 03:58:41Z emaste $"); int dwarf_attrval_flag(Dwarf_Die die, Dwarf_Half attr, Dwarf_Bool *valp, Dwarf_Error *err) Modified: head/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 Mon Apr 17 23:56:48 2017 (r317075) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: dwarf_attrval_signed.3 2980 2014-01-21 20:15:54Z kaiwang27 $ +.\" $Id: dwarf_attrval_signed.3 3509 2016-12-29 03:58:41Z emaste $ .\" .Dd December 26, 2016 .Os Modified: head/contrib/elftoolchain/libdwarf/dwarf_dump.c ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf_dump.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libdwarf/dwarf_dump.c Mon Apr 17 23:56:48 2017 (r317075) @@ -27,7 +27,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: dwarf_dump.c 3052 2014-05-26 20:36:24Z kaiwang27 $"); +ELFTC_VCSID("$Id: dwarf_dump.c 3494 2016-09-20 17:16:13Z emaste $"); int dwarf_get_ACCESS_name(unsigned access, const char **s) @@ -262,6 +262,40 @@ dwarf_get_AT_name(unsigned attr, const c *s = "DW_AT_body_begin"; break; case DW_AT_body_end: *s = "DW_AT_body_end"; break; + case DW_AT_MIPS_fde: + *s = "DW_AT_MIPS_fde"; break; + case DW_AT_MIPS_loop_begin: + *s = "DW_AT_MIPS_loop_begin"; break; + case DW_AT_MIPS_tail_loop_begin: + *s = "DW_AT_MIPS_tail_loop_begin"; break; + case DW_AT_MIPS_epilog_begin: + *s = "DW_AT_MIPS_epilog_begin"; break; + case DW_AT_MIPS_loop_unroll_factor: + *s = "DW_AT_MIPS_loop_unroll_factor"; break; + case DW_AT_MIPS_software_pipeline_depth: + *s = "DW_AT_MIPS_software_pipeline_depth"; break; + case DW_AT_MIPS_linkage_name: + *s = "DW_AT_MIPS_linkage_name"; break; + case DW_AT_MIPS_stride: + *s = "DW_AT_MIPS_stride"; break; + case DW_AT_MIPS_abstract_name: + *s = "DW_AT_MIPS_abstract_name"; break; + case DW_AT_MIPS_clone_origin: + *s = "DW_AT_MIPS_clone_origin"; break; + case DW_AT_MIPS_has_inlines: + *s = "DW_AT_MIPS_has_inlines"; break; + case DW_AT_MIPS_stride_byte: + *s = "DW_AT_MIPS_stride_byte"; break; + case DW_AT_MIPS_stride_elem: + *s = "DW_AT_MIPS_stride_elem"; break; + case DW_AT_MIPS_ptr_dopetype: + *s = "DW_AT_MIPS_ptr_dopetype"; break; + case DW_AT_MIPS_allocatable_dopetype: + *s = "DW_AT_MIPS_allocatable_dopetype"; break; + case DW_AT_MIPS_assumed_shape_dopetype: + *s = "DW_AT_MIPS_assumed_shape_dopetype"; break; + case DW_AT_MIPS_assumed_size: + *s = "DW_AT_MIPS_assumed_size"; break; case DW_AT_GNU_vector: *s = "DW_AT_GNU_vector"; break; case DW_AT_GNU_guarded_by: @@ -756,6 +790,8 @@ dwarf_get_LANG_name(unsigned lang, const *s = "DW_LANG_D"; break; case DW_LANG_lo_user: *s = "DW_LANG_lo_user"; break; + case DW_LANG_Mips_Assembler: + *s = "DW_LANG_Mips_Assembler"; break; case DW_LANG_hi_user: *s = "DW_LANG_hi_user"; break; default: Modified: head/contrib/elftoolchain/libelf/gelf_newehdr.3 ============================================================================== --- head/contrib/elftoolchain/libelf/gelf_newehdr.3 Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libelf/gelf_newehdr.3 Mon Apr 17 23:56:48 2017 (r317075) @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: gelf_newehdr.3 189 2008-07-20 10:38:08Z jkoshy $ +.\" $Id: gelf_newehdr.3 3500 2016-12-04 11:08:44Z jkoshy $ .\" .Dd October 22, 2007 .Os @@ -127,6 +127,15 @@ flag on ELF descriptor .Sh RETURN VALUES These functions return a pointer to a translated header descriptor if successful, or NULL on failure. +.Sh COMPATIBILITY +The +.Fn gelf_newehdr +function uses a type of +.Ft "void *" +for its returned value. +This differs from some other implementations of the ELF(3) API, which use an +.Ft "unsigned long" +return type. .Sh ERRORS These functions can fail with the following errors: .Bl -tag -width "[ELF_E_RESOURCE]" Modified: head/contrib/elftoolchain/libelf/gelf_newphdr.3 ============================================================================== --- head/contrib/elftoolchain/libelf/gelf_newphdr.3 Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libelf/gelf_newphdr.3 Mon Apr 17 23:56:48 2017 (r317075) @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: gelf_newphdr.3 189 2008-07-20 10:38:08Z jkoshy $ +.\" $Id: gelf_newphdr.3 3500 2016-12-04 11:08:44Z jkoshy $ .\" .Dd October 22, 2007 .Os @@ -97,6 +97,15 @@ will no longer be valid. .Sh RETURN VALUES The functions a valid pointer if successful, or NULL in case an error was encountered. +.Sh COMPATIBILITY +The +.Fn gelf_newphdr +function uses a type of +.Ft "void *" +for its returned value. +This differs from some other implementations of the ELF(3) API, which use an +.Ft "unsigned long" +return type. .Sh ERRORS These functions may fail with the following errors: .Bl -tag -width "[ELF_E_RESOURCE]" Modified: head/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 ============================================================================== --- head/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 Mon Apr 17 23:56:48 2017 (r317075) @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: elftc_bfd_find_target.3 3488 2016-08-24 18:15:57Z emaste $ +.\" $Id: elftc_bfd_find_target.3 3516 2017-02-10 02:33:08Z emaste $ .\" .Dd November 30, 2011 .Os @@ -74,6 +74,7 @@ Known descriptor names and their propert .It Li elf32-littlearm Ta ELF Ta LSB Ta 32 .It Li elf32-littlemips Ta ELF Ta LSB Ta 32 .It Li elf32-powerpc Ta ELF Ta MSB Ta 32 +.It Li elf32-powerpc-freebsd Ta ELF Ta MSB Ta 32 .It Li elf32-powerpcle Ta ELF Ta LSB Ta 32 .It Li elf32-sh Ta ELF Ta MSB Ta 32 .It Li elf32-shl Ta ELF Ta LSB Ta 32 @@ -94,6 +95,7 @@ Known descriptor names and their propert .It Li elf64-littleaarch64 Ta ELF Ta LSB Ta 64 .It Li elf64-littlemips Ta ELF Ta LSB Ta 64 .It Li elf64-powerpc Ta ELF Ta MSB Ta 64 +.It Li elf64-powerpc-freebsd Ta ELF Ta MSB Ta 64 .It Li elf64-powerpcle Ta ELF Ta LSB Ta 64 .It Li elf64-sh64 Ta ELF Ta MSB Ta 64 .It Li elf64-sh64l Ta ELF Ta LSB Ta 64 Modified: head/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c ============================================================================== --- head/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c Mon Apr 17 23:56:48 2017 (r317075) @@ -30,7 +30,7 @@ #include "_libelftc.h" -ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3488 2016-08-24 18:15:57Z emaste $"); +ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3516 2017-02-10 02:33:08Z emaste $"); struct _Elftc_Bfd_Target _libelftc_targets[] = { Modified: head/contrib/elftoolchain/libelftc/libelftc_dem_arm.c ============================================================================== --- head/contrib/elftoolchain/libelftc/libelftc_dem_arm.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libelftc/libelftc_dem_arm.c Mon Apr 17 23:56:48 2017 (r317075) @@ -37,7 +37,7 @@ #include "_libelftc.h" -ELFTC_VCSID("$Id: libelftc_dem_arm.c 3447 2016-05-03 13:32:23Z emaste $"); +ELFTC_VCSID("$Id: libelftc_dem_arm.c 3513 2016-12-29 07:04:22Z kaiwang27 $"); /** * @file cpp_demangle_arm.c @@ -68,6 +68,7 @@ struct demangle_data { }; #define SIMPLE_HASH(x,y) (64 * x + y) +#define VEC_PUSH_STR(d,s) vector_str_push((d), (s), strlen((s))) #define CPP_DEMANGLE_ARM_TRY 128 static void dest_cstring(struct cstring *); @@ -137,7 +138,7 @@ cpp_demangle_ARM(const char *org) ++d.p; /* start argument types */ - if (vector_str_push(&d.vec, "(", 1) == false) + if (VEC_PUSH_STR(&d.vec, "(") == false) goto clean; for (;;) { @@ -169,21 +170,21 @@ cpp_demangle_ARM(const char *org) goto clean; if (d.ptr == true) { - if (vector_str_push(&d.vec, "*", 1) == false) + if (VEC_PUSH_STR(&d.vec, "*") == false) goto clean; d.ptr = false; } if (d.ref == true) { - if (vector_str_push(&d.vec, "&", 1) == false) + if (VEC_PUSH_STR(&d.vec, "&") == false) goto clean; d.ref = false; } if (d.cnst == true) { - if (vector_str_push(&d.vec, " const", 6) == false) + if (VEC_PUSH_STR(&d.vec, " const") == false) goto clean; d.cnst = false; @@ -210,7 +211,7 @@ cpp_demangle_ARM(const char *org) free(arg); - if (vector_str_push(&d.vec, ", ", 2) == false) + if (VEC_PUSH_STR(&d.vec, ", ") == false) goto clean; if (++try > CPP_DEMANGLE_ARM_TRY) @@ -218,7 +219,7 @@ cpp_demangle_ARM(const char *org) } /* end argument types */ - if (vector_str_push(&d.vec, ")", 1) == false) + if (VEC_PUSH_STR(&d.vec, ")") == false) goto clean; flat: @@ -323,11 +324,10 @@ push_CTDT(const char *s, size_t l, struc return (false); assert(v->size > 1); - if (vector_str_push(v, v->container[v->size - 2], - strlen(v->container[v->size - 2])) == false) + if (VEC_PUSH_STR(v, v->container[v->size - 2]) == false) return (false); - if (vector_str_push(v, "()", 2) == false) + if (VEC_PUSH_STR(v, "()") == false) return (false); return (true); @@ -429,7 +429,7 @@ read_func(struct demangle_data *d) if (read_class(d) == false) return (false); - if (vector_str_push(&d->vec, "::", 2) == false) + if (VEC_PUSH_STR(&d->vec, "::") == false) return (false); } @@ -486,7 +486,7 @@ read_func_name(struct demangle_data *d) if (read_qual_name(d) == false) goto clean; - if (vector_str_push(&d->vec, "::", 2) == false) + if (VEC_PUSH_STR(&d->vec, "::") == false) goto clean; if (vector_str_push(&d->vec, op_name, len) == false) @@ -508,7 +508,7 @@ read_func_name(struct demangle_data *d) if (read_class(d) == false) goto clean; - if (vector_str_push(&d->vec, "::", 2) == false) + if (VEC_PUSH_STR(&d->vec, "::") == false) goto clean; if (vector_str_push(&d->vec, op_name, len) == false) @@ -553,7 +553,7 @@ read_func_ptr(struct demangle_data *d) } if (fptr.ptr == true) { - if (vector_str_push(&fptr.vec, "*", 1) == false) { + if (VEC_PUSH_STR(&fptr.vec, "*") == false) { dest_demangle_data(&fptr); return (false); @@ -563,7 +563,7 @@ read_func_ptr(struct demangle_data *d) } if (fptr.ref == true) { - if (vector_str_push(&fptr.vec, "&", 1) == false) { + if (VEC_PUSH_STR(&fptr.vec, "&") == false) { dest_demangle_data(&fptr); return (false); @@ -573,7 +573,7 @@ read_func_ptr(struct demangle_data *d) } if (fptr.cnst == true) { - if (vector_str_push(&fptr.vec, " const", 6) == false) { + if (VEC_PUSH_STR(&fptr.vec, " const") == false) { dest_demangle_data(&fptr); return (false); @@ -585,7 +585,7 @@ read_func_ptr(struct demangle_data *d) if (*fptr.p == '_') break; - if (vector_str_push(&fptr.vec, ", ", 2) == false) { + if (VEC_PUSH_STR(&fptr.vec, ", ") == false) { dest_demangle_data(&fptr); return (false); @@ -636,7 +636,7 @@ read_func_ptr(struct demangle_data *d) free(rtn_type); - if (vector_str_push(&d->vec, " (*)(", 5) == false) { + if (VEC_PUSH_STR(&d->vec, " (*)(") == false) { free(arg_type); return (false); @@ -650,7 +650,7 @@ read_func_ptr(struct demangle_data *d) free(arg_type); - return (vector_str_push(&d->vec, ")", 1)); + return (VEC_PUSH_STR(&d->vec, ")")); } static bool @@ -689,7 +689,7 @@ read_memptr(struct demangle_data *d) if (vector_str_push(&d->vec, mptr_str, len) == false) goto clean; - if (vector_str_push(&d->vec, "::*", 3) == false) + if (VEC_PUSH_STR(&d->vec, "::*") == false) goto clean; rtn = true; @@ -712,108 +712,102 @@ read_op(struct demangle_data *d) switch (SIMPLE_HASH(*(d->p), *(d->p+1))) { case SIMPLE_HASH('m', 'l') : d->p += 2; - return (vector_str_push(&d->vec, "operator*", 9)); + return (VEC_PUSH_STR(&d->vec, "operator*")); case SIMPLE_HASH('d', 'v') : d->p += 2; - return (vector_str_push(&d->vec, "operator/", 9)); + return (VEC_PUSH_STR(&d->vec, "operator/")); case SIMPLE_HASH('m', 'd') : d->p += 2; - return (vector_str_push(&d->vec, "operator%", 9)); + return (VEC_PUSH_STR(&d->vec, "operator%")); case SIMPLE_HASH('p', 'l') : d->p += 2; - return (vector_str_push(&d->vec, "operator+", 9)); + return (VEC_PUSH_STR(&d->vec, "operator+")); case SIMPLE_HASH('m', 'i') : d->p += 2; - return (vector_str_push(&d->vec, "operator-", 9)); + return (VEC_PUSH_STR(&d->vec, "operator-")); case SIMPLE_HASH('l', 's') : d->p += 2; - return (vector_str_push(&d->vec, "operator<<", 10)); + return (VEC_PUSH_STR(&d->vec, "operator<<")); case SIMPLE_HASH('r', 's') : d->p += 2; - return (vector_str_push(&d->vec, "operator>>", 10)); + return (VEC_PUSH_STR(&d->vec, "operator>>")); case SIMPLE_HASH('e', 'q') : d->p += 2; - return (vector_str_push(&d->vec, "operator==", 10)); + return (VEC_PUSH_STR(&d->vec, "operator==")); case SIMPLE_HASH('n', 'e') : d->p += 2; - return (vector_str_push(&d->vec, "operator!=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator!=")); case SIMPLE_HASH('l', 't') : d->p += 2; - return (vector_str_push(&d->vec, "operator<", 9)); + return (VEC_PUSH_STR(&d->vec, "operator<")); case SIMPLE_HASH('g', 't') : d->p += 2; - return (vector_str_push(&d->vec, "operator>", 9)); + return (VEC_PUSH_STR(&d->vec, "operator>")); case SIMPLE_HASH('l', 'e') : d->p += 2; - return (vector_str_push(&d->vec, "operator<=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator<=")); case SIMPLE_HASH('g', 'e') : d->p += 2; - return (vector_str_push(&d->vec, "operator>=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator>=")); case SIMPLE_HASH('a', 'd') : d->p += 2; if (*d->p == 'v') { ++d->p; - return (vector_str_push(&d->vec, "operator/=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator/=")); } else - return (vector_str_push(&d->vec, "operator&", 9)); + return (VEC_PUSH_STR(&d->vec, "operator&")); case SIMPLE_HASH('o', 'r') : d->p += 2; - return (vector_str_push(&d->vec, "operator|", 9)); + return (VEC_PUSH_STR(&d->vec, "operator|")); case SIMPLE_HASH('e', 'r') : d->p += 2; - return (vector_str_push(&d->vec, "operator^", 9)); + return (VEC_PUSH_STR(&d->vec, "operator^")); case SIMPLE_HASH('a', 'a') : d->p += 2; if (*d->p == 'd') { ++d->p; - return (vector_str_push(&d->vec, "operator&=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator&=")); } else - return (vector_str_push(&d->vec, "operator&&", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator&&")); case SIMPLE_HASH('o', 'o') : d->p += 2; - return (vector_str_push(&d->vec, "operator||", 10)); + return (VEC_PUSH_STR(&d->vec, "operator||")); case SIMPLE_HASH('n', 't') : d->p += 2; - return (vector_str_push(&d->vec, "operator!", 9)); + return (VEC_PUSH_STR(&d->vec, "operator!")); case SIMPLE_HASH('c', 'o') : d->p += 2; - return (vector_str_push(&d->vec, "operator~", 9)); + return (VEC_PUSH_STR(&d->vec, "operator~")); case SIMPLE_HASH('p', 'p') : d->p += 2; - return (vector_str_push(&d->vec, "operator++", 10)); + return (VEC_PUSH_STR(&d->vec, "operator++")); case SIMPLE_HASH('m', 'm') : d->p += 2; - return (vector_str_push(&d->vec, "operator--", 10)); + return (VEC_PUSH_STR(&d->vec, "operator--")); case SIMPLE_HASH('a', 's') : d->p += 2; - return (vector_str_push(&d->vec, "operator=", 9)); + return (VEC_PUSH_STR(&d->vec, "operator=")); case SIMPLE_HASH('r', 'f') : d->p += 2; - return (vector_str_push(&d->vec, "operator->", 10)); + return (VEC_PUSH_STR(&d->vec, "operator->")); case SIMPLE_HASH('a', 'p') : /* apl */ if (*(d->p + 2) != 'l') return (false); d->p += 3; - return (vector_str_push(&d->vec, "operator+=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator+=")); case SIMPLE_HASH('a', 'm') : d->p += 2; if (*d->p == 'i') { ++d->p; - return (vector_str_push(&d->vec, "operator-=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator-=")); } else if (*d->p == 'u') { ++d->p; - return (vector_str_push(&d->vec, "operator*=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator*=")); } else if (*d->p == 'd') { ++d->p; - return (vector_str_push(&d->vec, "operator%=", - 10)); + return (VEC_PUSH_STR(&d->vec, "operator%=")); } return (false); @@ -823,40 +817,40 @@ read_op(struct demangle_data *d) return (false); d->p += 3; - return (vector_str_push(&d->vec, "operator<<=", 11)); + return (VEC_PUSH_STR(&d->vec, "operator<<=")); case SIMPLE_HASH('a', 'r') : /* ars */ if (*(d->p + 2) != 's') return (false); d->p += 3; - return (vector_str_push(&d->vec, "operator>>=", 11)); + return (VEC_PUSH_STR(&d->vec, "operator>>=")); case SIMPLE_HASH('a', 'o') : /* aor */ if (*(d->p + 2) != 'r') return (false); d->p += 3; - return (vector_str_push(&d->vec, "operator|=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator|=")); case SIMPLE_HASH('a', 'e') : /* aer */ if (*(d->p + 2) != 'r') return (false); d->p += 3; - return (vector_str_push(&d->vec, "operator^=", 10)); + return (VEC_PUSH_STR(&d->vec, "operator^=")); case SIMPLE_HASH('c', 'm') : d->p += 2; - return (vector_str_push(&d->vec, "operator,", 9)); + return (VEC_PUSH_STR(&d->vec, "operator,")); case SIMPLE_HASH('r', 'm') : d->p += 2; - return (vector_str_push(&d->vec, "operator->*", 11)); + return (VEC_PUSH_STR(&d->vec, "operator->*")); case SIMPLE_HASH('c', 'l') : d->p += 2; - return (vector_str_push(&d->vec, "()", 2)); + return (VEC_PUSH_STR(&d->vec, "()")); case SIMPLE_HASH('v', 'c') : d->p += 2; - return (vector_str_push(&d->vec, "[]", 2)); + return (VEC_PUSH_STR(&d->vec, "[]")); case SIMPLE_HASH('c', 't') : d->p += 4; d->type = ENCODE_OP_CT; @@ -883,11 +877,10 @@ read_op(struct demangle_data *d) return (false); case SIMPLE_HASH('n', 'w') : d->p += 2; - return (vector_str_push(&d->vec, "operator new()", 14)); + return (VEC_PUSH_STR(&d->vec, "operator new()")); case SIMPLE_HASH('d', 'l') : d->p += 2; - return (vector_str_push(&d->vec, "operator delete()", - 17)); + return (VEC_PUSH_STR(&d->vec, "operator delete()")); case SIMPLE_HASH('o', 'p') : /* __op__ */ d->p += 2; @@ -962,13 +955,13 @@ read_op_user(struct demangle_data *d) if (vector_str_push(&d->vec, from_str, from_len) == false) goto clean; - if (vector_str_push(&d->vec, "::operator ", 11) == false) + if (VEC_PUSH_STR(&d->vec, "::operator ") == false) return (false); if (vector_str_push(&d->vec, to_str, to_len) == false) goto clean; - rtn = vector_str_push(&d->vec, "()", 2); + rtn = VEC_PUSH_STR(&d->vec, "()"); clean: free(to_str); free(from_str); @@ -1000,7 +993,7 @@ read_qual_name(struct demangle_data *d) if (read_class(d) == false) return (false); - if (vector_str_push(&d->vec, "::", 2) == false) + if (VEC_PUSH_STR(&d->vec, "::") == false) return (false); } @@ -1029,12 +1022,10 @@ read_subst(struct demangle_data *d) d->p = str; - if (vector_str_push(&d->vec, d->arg.container[idx - 1], - strlen(d->arg.container[idx - 1])) == false) + if (VEC_PUSH_STR(&d->vec, d->arg.container[idx - 1]) == false) return (-1); - if (vector_str_push(&d->arg, d->arg.container[idx - 1], - strlen(d->arg.container[idx - 1])) == false) + if (VEC_PUSH_STR(&d->arg, d->arg.container[idx - 1]) == false) return (-1); if (*d->p == '\0') @@ -1073,16 +1064,14 @@ read_subst_iter(struct demangle_data *d) d->p = str; for (i = 0; i < repeat ; ++i) { - if (vector_str_push(&d->vec, d->arg.container[idx - 1], - strlen(d->arg.container[idx - 1])) == false) + if (VEC_PUSH_STR(&d->vec, d->arg.container[idx - 1]) == false) return (-1); - if (vector_str_push(&d->arg, d->arg.container[idx - 1], - strlen(d->arg.container[idx - 1])) == false) + if (VEC_PUSH_STR(&d->arg, d->arg.container[idx - 1]) == false) return (-1); if (i != repeat - 1 && - vector_str_push(&d->vec, ", ", 2) == false) + VEC_PUSH_STR(&d->vec, ", ") == false) return (-1); } @@ -1108,7 +1097,7 @@ read_type(struct demangle_data *d) case 'U' : ++d->p; - if (vector_str_push(&d->vec, "unsigned ", 9) == false) + if (VEC_PUSH_STR(&d->vec, "unsigned ") == false) return (false); break; @@ -1118,7 +1107,7 @@ read_type(struct demangle_data *d) if (*d->p == 'P') d->cnst = true; else { - if (vector_str_push(&d->vec, "const ", 6) == + if (VEC_PUSH_STR(&d->vec, "const ") == false) return (false); } @@ -1127,14 +1116,14 @@ read_type(struct demangle_data *d) case 'V' : ++d->p; - if (vector_str_push(&d->vec, "volatile ", 9) == false) + if (VEC_PUSH_STR(&d->vec, "volatile ") == false) return (false); break; case 'S' : ++d->p; - if (vector_str_push(&d->vec, "signed ", 7) == false) + if (VEC_PUSH_STR(&d->vec, "signed ") == false) return (false); break; @@ -1185,39 +1174,39 @@ read_type(struct demangle_data *d) case 'v' : ++d->p; - return (vector_str_push(&d->vec, "void", 4)); + return (VEC_PUSH_STR(&d->vec, "void")); case 'c' : ++d->p; - return (vector_str_push(&d->vec, "char", 4)); + return (VEC_PUSH_STR(&d->vec, "char")); case 's' : ++d->p; - return (vector_str_push(&d->vec, "short", 5)); + return (VEC_PUSH_STR(&d->vec, "short")); case 'i' : ++d->p; - return (vector_str_push(&d->vec, "int", 3)); + return (VEC_PUSH_STR(&d->vec, "int")); case 'l' : ++d->p; - return (vector_str_push(&d->vec, "long", 4)); + return (VEC_PUSH_STR(&d->vec, "long")); case 'f' : ++d->p; - return (vector_str_push(&d->vec, "float", 5)); + return (VEC_PUSH_STR(&d->vec, "float")); case 'd': ++d->p; - return (vector_str_push(&d->vec, "double", 6)); + return (VEC_PUSH_STR(&d->vec, "double")); case 'r': ++d->p; - return (vector_str_push(&d->vec, "long double", 11)); + return (VEC_PUSH_STR(&d->vec, "long double")); case 'e': ++d->p; - return (vector_str_push(&d->vec, "...", 3)); + return (VEC_PUSH_STR(&d->vec, "...")); default: return (false); }; Modified: head/contrib/elftoolchain/libelftc/libelftc_dem_gnu2.c ============================================================================== --- head/contrib/elftoolchain/libelftc/libelftc_dem_gnu2.c Mon Apr 17 23:30:21 2017 (r317074) +++ head/contrib/elftoolchain/libelftc/libelftc_dem_gnu2.c Mon Apr 17 23:56:48 2017 (r317075) @@ -37,7 +37,7 @@ #include "_libelftc.h" -ELFTC_VCSID("$Id: libelftc_dem_gnu2.c 3447 2016-05-03 13:32:23Z emaste $"); +ELFTC_VCSID("$Id: libelftc_dem_gnu2.c 3513 2016-12-29 07:04:22Z kaiwang27 $"); /** * @file cpp_demangle_gnu2.c @@ -66,6 +66,7 @@ struct demangle_data { }; #define SIMPLE_HASH(x,y) (64 * x + y) +#define VEC_PUSH_STR(d,s) vector_str_push((d), (s), strlen((s))) #define CPP_DEMANGLE_GNU2_TRY 128 static void dest_cstring(struct cstring *); @@ -126,7 +127,7 @@ cpp_demangle_gnu2(const char *org) if (push_CTDT("::~", 3, &d.vec) == false) goto clean; - if (vector_str_push(&d.vec, "(void)", 6) == false) + if (VEC_PUSH_STR(&d.vec, "(void)") == false) goto clean; goto flat; @@ -141,7 +142,7 @@ cpp_demangle_gnu2(const char *org) ++d.p; else if (*d.p == '\0') { if (d.class_name == true) { - if (vector_str_push(&d.vec, "(void)", 6) == false) + if (VEC_PUSH_STR(&d.vec, "(void)") == false) goto clean; goto flat; @@ -150,7 +151,7 @@ cpp_demangle_gnu2(const char *org) } /* start argument types */ - if (vector_str_push(&d.vec, "(", 1) == false) + if (VEC_PUSH_STR(&d.vec, "(") == false) goto clean; for (;;) { @@ -182,21 +183,21 @@ cpp_demangle_gnu2(const char *org) goto clean; if (d.ptr == true) { - if (vector_str_push(&d.vec, "*", 1) == false) + if (VEC_PUSH_STR(&d.vec, "*") == false) goto clean; d.ptr = false; } if (d.ref == true) { - if (vector_str_push(&d.vec, "&", 1) == false) + if (VEC_PUSH_STR(&d.vec, "&") == false) goto clean; d.ref = false; } if (d.cnst == true) { - if (vector_str_push(&d.vec, " const", 6) == false) + if (VEC_PUSH_STR(&d.vec, " const") == false) goto clean; d.cnst = false; @@ -223,7 +224,7 @@ cpp_demangle_gnu2(const char *org) free(arg); - if (vector_str_push(&d.vec, ", ", 2) == false) + if (VEC_PUSH_STR(&d.vec, ", ") == false) goto clean; if (++try > CPP_DEMANGLE_GNU2_TRY) @@ -231,10 +232,10 @@ cpp_demangle_gnu2(const char *org) } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Apr 17 23:57:44 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 36337D425E7; Mon, 17 Apr 2017 23:57:44 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 069761D86; Mon, 17 Apr 2017 23:57:43 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3HNvh7Y079399; Mon, 17 Apr 2017 23:57:43 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3HNvhrm079398; Mon, 17 Apr 2017 23:57:43 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704172357.v3HNvhrm079398@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 17 Apr 2017 23:57:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317076 - head/lib/libelftc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 23:57:44 -0000 Author: emaste Date: Mon Apr 17 23:57:42 2017 New Revision: 317076 URL: https://svnweb.freebsd.org/changeset/base/317076 Log: libelftc: bump version number for r317075 Modified: head/lib/libelftc/elftc_version.c Modified: head/lib/libelftc/elftc_version.c ============================================================================== --- head/lib/libelftc/elftc_version.c Mon Apr 17 23:56:48 2017 (r317075) +++ head/lib/libelftc/elftc_version.c Mon Apr 17 23:57:42 2017 (r317076) @@ -6,5 +6,5 @@ const char * elftc_version(void) { - return "elftoolchain r3490M"; + return "elftoolchain r3520M"; } From owner-svn-src-all@freebsd.org Tue Apr 18 03:40:38 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 224F6D432E8; Tue, 18 Apr 2017 03:40:38 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E6A966D2; Tue, 18 Apr 2017 03:40:37 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3I3ebDT069925; Tue, 18 Apr 2017 03:40:37 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3I3eb5L069924; Tue, 18 Apr 2017 03:40:37 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201704180340.v3I3eb5L069924@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 18 Apr 2017 03:40:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317077 - head/etc/rc.d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 03:40:38 -0000 Author: jhibbits Date: Tue Apr 18 03:40:36 2017 New Revision: 317077 URL: https://svnweb.freebsd.org/changeset/base/317077 Log: Add 32-bit caching to ldconfig script for powerpc64 Reported by: ian@ Modified: head/etc/rc.d/ldconfig Modified: head/etc/rc.d/ldconfig ============================================================================== --- head/etc/rc.d/ldconfig Mon Apr 17 23:57:42 2017 (r317076) +++ head/etc/rc.d/ldconfig Tue Apr 18 03:40:36 2017 (r317077) @@ -41,7 +41,7 @@ ldconfig_start() ${ldconfig} -elf ${_ins} ${_LDC} case `sysctl -n hw.machine_arch` in - amd64) + amd64|powerpc64) for i in ${ldconfig_local32_dirs}; do if [ -d "${i}" ]; then _files=`find ${i} -type f` From owner-svn-src-all@freebsd.org Tue Apr 18 06:58:05 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5406D43E5E; Tue, 18 Apr 2017 06:58:05 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 85619844; Tue, 18 Apr 2017 06:58:05 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3I6w4F0050232; Tue, 18 Apr 2017 06:58:04 GMT (envelope-from ganbold@FreeBSD.org) Received: (from ganbold@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3I6w4Ak050231; Tue, 18 Apr 2017 06:58:04 GMT (envelope-from ganbold@FreeBSD.org) Message-Id: <201704180658.v3I6w4Ak050231@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ganbold set sender to ganbold@FreeBSD.org using -f From: Ganbold Tsagaankhuu Date: Tue, 18 Apr 2017 06:58:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317078 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 06:58:05 -0000 Author: ganbold Date: Tue Apr 18 06:58:04 2017 New Revision: 317078 URL: https://svnweb.freebsd.org/changeset/base/317078 Log: Remove function declaration that doesn't exist. Modified: head/sys/arm/allwinner/a10_gpio.h Modified: head/sys/arm/allwinner/a10_gpio.h ============================================================================== --- head/sys/arm/allwinner/a10_gpio.h Tue Apr 18 03:40:36 2017 (r317077) +++ head/sys/arm/allwinner/a10_gpio.h Tue Apr 18 06:58:04 2017 (r317078) @@ -32,6 +32,4 @@ #define A10_GPIO_FUNC_MII 2 #define A10_GPIO_FUNC_RGMII 5 -int a10_gpio_ethernet_activate(uint32_t); - #endif From owner-svn-src-all@freebsd.org Tue Apr 18 07:02:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E130ED4305B; Tue, 18 Apr 2017 07:02:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 938FFC65; Tue, 18 Apr 2017 07:02:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3I72CTo053932; Tue, 18 Apr 2017 07:02:12 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3I72CjH053930; Tue, 18 Apr 2017 07:02:12 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704180702.v3I72CjH053930@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Apr 2017 07:02:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317079 - head/contrib/llvm/lib/Target/X86 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 07:02:14 -0000 Author: dim Date: Tue Apr 18 07:02:12 2017 New Revision: 317079 URL: https://svnweb.freebsd.org/changeset/base/317079 Log: Pull in r300429 from upstream llvm trunk (by Benjamin Kramer): [X86] Remove special handling for 16 bit for A asm constraints. Our 16 bit support is assembler-only + the terrible hack that is .code16gcc. Simply using 32 bit registers does the right thing for the latter. Fixes PR32681. This fixes some cases of assembling 16 bit code (i.e. SeaBIOS) that uses the 'A' inline asm constraint, after r316989. MFC after: 3 days X-MFC-With: r316989 Modified: head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td Modified: head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp ============================================================================== --- head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Tue Apr 18 06:58:04 2017 (r317078) +++ head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Tue Apr 18 07:02:12 2017 (r317079) @@ -34722,14 +34722,11 @@ X86TargetLowering::getRegForInlineAsmCon if (Subtarget.is64Bit()) { Res.first = X86::RAX; Res.second = &X86::GR64_ADRegClass; - } else if (Subtarget.is32Bit()) { + } else { + assert((Subtarget.is32Bit() || Subtarget.is16Bit()) && + "Expecting 64, 32 or 16 bit subtarget"); Res.first = X86::EAX; Res.second = &X86::GR32_ADRegClass; - } else if (Subtarget.is16Bit()) { - Res.first = X86::AX; - Res.second = &X86::GR16_ADRegClass; - } else { - llvm_unreachable("Expecting 64, 32 or 16 bit subtarget"); } return Res; } Modified: head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td ============================================================================== --- head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td Tue Apr 18 06:58:04 2017 (r317078) +++ head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td Tue Apr 18 07:02:12 2017 (r317079) @@ -438,7 +438,6 @@ def LOW32_ADDR_ACCESS_RBP : RegisterClas (add LOW32_ADDR_ACCESS, RBP)>; // A class to support the 'A' assembler constraint: [ER]AX then [ER]DX. -def GR16_AD : RegisterClass<"X86", [i16], 16, (add AX, DX)>; def GR32_AD : RegisterClass<"X86", [i32], 32, (add EAX, EDX)>; def GR64_AD : RegisterClass<"X86", [i64], 64, (add RAX, RDX)>; From owner-svn-src-all@freebsd.org Tue Apr 18 08:04:17 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B4C6D43A63; Tue, 18 Apr 2017 08:04: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 mx1.freebsd.org (Postfix) with ESMTPS id 388AB7FD; Tue, 18 Apr 2017 08:04: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 v3I84GgW078402; Tue, 18 Apr 2017 08:04:16 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3I84GdG078399; Tue, 18 Apr 2017 08:04:16 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704180804.v3I84GdG078399@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 18 Apr 2017 08:04:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317080 - head/sys/dev/ahci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 08:04:17 -0000 Author: mav Date: Tue Apr 18 08:04:15 2017 New Revision: 317080 URL: https://svnweb.freebsd.org/changeset/base/317080 Log: Block FPDMA TRIM for ASMedia HBAs. Experiments show FPDMA TRIM command timeouts on ASMedia HBAs, while the same SSDs working fine on Intel HBAs. MFC after: 2 weeks Modified: head/sys/dev/ahci/ahci.c head/sys/dev/ahci/ahci.h head/sys/dev/ahci/ahci_pci.c Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Tue Apr 18 07:02:12 2017 (r317079) +++ head/sys/dev/ahci/ahci.c Tue Apr 18 08:04:15 2017 (r317080) @@ -2692,7 +2692,9 @@ ahciaction(struct cam_sim *sim, union cc if (ch->caps & AHCI_CAP_SPM) cpi->hba_inquiry |= PI_SATAPM; cpi->target_sprt = 0; - cpi->hba_misc = PIM_SEQSCAN | PIM_UNMAPPED | PIM_ATA_EXT; + cpi->hba_misc = PIM_SEQSCAN | PIM_UNMAPPED; + if ((ch->quirks & AHCI_Q_NOAUX) == 0) + cpi->hba_misc |= PIM_ATA_EXT; cpi->hba_eng_cnt = 0; if (ch->caps & AHCI_CAP_SPM) cpi->max_target = 15; Modified: head/sys/dev/ahci/ahci.h ============================================================================== --- head/sys/dev/ahci/ahci.h Tue Apr 18 07:02:12 2017 (r317079) +++ head/sys/dev/ahci/ahci.h Tue Apr 18 08:04:15 2017 (r317080) @@ -600,6 +600,7 @@ enum ahci_err_type { #define AHCI_Q_NOMSIX 0x00100000 #define AHCI_Q_MRVL_SR_DEL 0x00200000 #define AHCI_Q_NOCCS 0x00400000 +#define AHCI_Q_NOAUX 0x00800000 #define AHCI_Q_BIT_STRING \ "\020" \ @@ -625,7 +626,8 @@ enum ahci_err_type { "\024RESTORE_CAP" \ "\025NOMSIX" \ "\026MRVL_SR_DEL" \ - "\027NOCCS" + "\027NOCCS" \ + "\030NOAUX" int ahci_attach(device_t dev); int ahci_detach(device_t dev); Modified: head/sys/dev/ahci/ahci_pci.c ============================================================================== --- head/sys/dev/ahci/ahci_pci.c Tue Apr 18 07:02:12 2017 (r317079) +++ head/sys/dev/ahci/ahci_pci.c Tue Apr 18 08:04:15 2017 (r317080) @@ -73,15 +73,15 @@ static const struct { {0x78021022, 0x00, "AMD Hudson-2", 0}, {0x78031022, 0x00, "AMD Hudson-2", 0}, {0x78041022, 0x00, "AMD Hudson-2", 0}, - {0x06011b21, 0x00, "ASMedia ASM1060", AHCI_Q_NOCCS}, - {0x06021b21, 0x00, "ASMedia ASM1060", AHCI_Q_NOCCS}, - {0x06111b21, 0x00, "ASMedia ASM1061", AHCI_Q_NOCCS}, - {0x06121b21, 0x00, "ASMedia ASM1062", AHCI_Q_NOCCS}, - {0x06201b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS}, - {0x06211b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS}, - {0x06221b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS}, - {0x06241b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS}, - {0x06251b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS}, + {0x06011b21, 0x00, "ASMedia ASM1060", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x06021b21, 0x00, "ASMedia ASM1060", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x06111b21, 0x00, "ASMedia ASM1061", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x06121b21, 0x00, "ASMedia ASM1062", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x06201b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x06211b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x06221b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x06241b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x06251b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, {0x26528086, 0x00, "Intel ICH6", AHCI_Q_NOFORCE}, {0x26538086, 0x00, "Intel ICH6M", AHCI_Q_NOFORCE}, {0x26818086, 0x00, "Intel ESB2", 0}, From owner-svn-src-all@freebsd.org Tue Apr 18 09:17:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6D30CD4390A; Tue, 18 Apr 2017 09:17:21 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2F226E0; Tue, 18 Apr 2017 09:17:21 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3I9HKvn007031; Tue, 18 Apr 2017 09:17:20 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3I9HKNF007030; Tue, 18 Apr 2017 09:17:20 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704180917.v3I9HKNF007030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Tue, 18 Apr 2017 09:17:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317081 - stable/11/sys/net X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 09:17:21 -0000 Author: ae Date: Tue Apr 18 09:17:20 2017 New Revision: 317081 URL: https://svnweb.freebsd.org/changeset/base/317081 Log: MFC r316716: Inherit IPv6 checksum offloading flags to vlan interfaces. if_vlan(4) interfaces inherit IPv4 checksum offloading flags from the parent when VLAN_HWCSUM and VLAN_HWTAGGING flags are present on the parent interface. Do the same for IPv6 checksum offloading flags. Reported by: Harry Schmalzbauer Reviewed by: np, gnn Differential Revision: https://reviews.freebsd.org/D10356 Modified: stable/11/sys/net/if_vlan.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/net/if_vlan.c ============================================================================== --- stable/11/sys/net/if_vlan.c Tue Apr 18 08:04:15 2017 (r317080) +++ stable/11/sys/net/if_vlan.c Tue Apr 18 09:17:20 2017 (r317081) @@ -1547,13 +1547,16 @@ vlan_capabilities(struct ifvlan *ifv) * offloading requires hardware VLAN tagging. */ if (p->if_capabilities & IFCAP_VLAN_HWCSUM) - ifp->if_capabilities = p->if_capabilities & IFCAP_HWCSUM; + ifp->if_capabilities = + p->if_capabilities & (IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6); if (p->if_capenable & IFCAP_VLAN_HWCSUM && p->if_capenable & IFCAP_VLAN_HWTAGGING) { - ifp->if_capenable = p->if_capenable & IFCAP_HWCSUM; + ifp->if_capenable = + p->if_capenable & (IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6); ifp->if_hwassist = p->if_hwassist & (CSUM_IP | CSUM_TCP | - CSUM_UDP | CSUM_SCTP); + CSUM_UDP | CSUM_SCTP | CSUM_TCP_IPV6 | CSUM_UDP_IPV6 | + CSUM_SCTP_IPV6); } else { ifp->if_capenable = 0; ifp->if_hwassist = 0; From owner-svn-src-all@freebsd.org Tue Apr 18 09:22:07 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6EC7D43C25; Tue, 18 Apr 2017 09:22:07 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 86B0881D; Tue, 18 Apr 2017 09:22:07 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3I9M6JT010766; Tue, 18 Apr 2017 09:22:06 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3I9M6sh010765; Tue, 18 Apr 2017 09:22:06 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704180922.v3I9M6sh010765@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Tue, 18 Apr 2017 09:22:06 +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: r317082 - stable/10/sys/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 09:22:07 -0000 Author: ae Date: Tue Apr 18 09:22:06 2017 New Revision: 317082 URL: https://svnweb.freebsd.org/changeset/base/317082 Log: MFC r316716: Inherit IPv6 checksum offloading flags to vlan interfaces. if_vlan(4) interfaces inherit IPv4 checksum offloading flags from the parent when VLAN_HWCSUM and VLAN_HWTAGGING flags are present on the parent interface. Do the same for IPv6 checksum offloading flags. Reported by: Harry Schmalzbauer Reviewed by: np, gnn Differential Revision: https://reviews.freebsd.org/D10356 Modified: stable/10/sys/net/if_vlan.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/net/if_vlan.c ============================================================================== --- stable/10/sys/net/if_vlan.c Tue Apr 18 09:17:20 2017 (r317081) +++ stable/10/sys/net/if_vlan.c Tue Apr 18 09:22:06 2017 (r317082) @@ -1494,13 +1494,16 @@ vlan_capabilities(struct ifvlan *ifv) * offloading requires hardware VLAN tagging. */ if (p->if_capabilities & IFCAP_VLAN_HWCSUM) - ifp->if_capabilities = p->if_capabilities & IFCAP_HWCSUM; + ifp->if_capabilities = + p->if_capabilities & (IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6); if (p->if_capenable & IFCAP_VLAN_HWCSUM && p->if_capenable & IFCAP_VLAN_HWTAGGING) { - ifp->if_capenable = p->if_capenable & IFCAP_HWCSUM; + ifp->if_capenable = + p->if_capenable & (IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6); ifp->if_hwassist = p->if_hwassist & (CSUM_IP | CSUM_TCP | - CSUM_UDP | CSUM_SCTP | CSUM_FRAGMENT); + CSUM_UDP | CSUM_SCTP | CSUM_TCP_IPV6 | CSUM_UDP_IPV6 | + CSUM_SCTP_IPV6); } else { ifp->if_capenable = 0; ifp->if_hwassist = 0; From owner-svn-src-all@freebsd.org Tue Apr 18 09:27:28 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 69DE5D43D58; Tue, 18 Apr 2017 09:27:28 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 21034A60; Tue, 18 Apr 2017 09:27:28 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3I9RRHS010998; Tue, 18 Apr 2017 09:27:27 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3I9RRpK010996; Tue, 18 Apr 2017 09:27:27 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704180927.v3I9RRpK010996@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Tue, 18 Apr 2017 09:27:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317083 - stable/11/sys/netinet X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 09:27:28 -0000 Author: ae Date: Tue Apr 18 09:27:26 2017 New Revision: 317083 URL: https://svnweb.freebsd.org/changeset/base/317083 Log: MFC r316715: Make sysctl identifiers for direct netisr queue unique. Introduce IPCTL_INTRDQMAXLEN and IPCTL_INTRDQDROPS macros for this purpose. Reviewed by: gnn Differential Revision: https://reviews.freebsd.org/D10358 Modified: stable/11/sys/netinet/in.h stable/11/sys/netinet/ip_input.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet/in.h ============================================================================== --- stable/11/sys/netinet/in.h Tue Apr 18 09:22:06 2017 (r317082) +++ stable/11/sys/netinet/in.h Tue Apr 18 09:27:26 2017 (r317083) @@ -631,6 +631,8 @@ int getsourcefilter(int, uint32_t, struc #define IPCTL_FASTFORWARDING 14 /* use fast IP forwarding code */ /* 15, unused, was: IPCTL_KEEPFAITH */ #define IPCTL_GIF_TTL 16 /* default TTL for gif encap packet */ +#define IPCTL_INTRDQMAXLEN 17 /* max length of direct netisr queue */ +#define IPCTL_INTRDQDROPS 18 /* number of direct netisr q drops */ #endif /* __BSD_VISIBLE */ Modified: stable/11/sys/netinet/ip_input.c ============================================================================== --- stable/11/sys/netinet/ip_input.c Tue Apr 18 09:22:06 2017 (r317082) +++ stable/11/sys/netinet/ip_input.c Tue Apr 18 09:27:26 2017 (r317083) @@ -266,9 +266,9 @@ sysctl_netinet_intr_direct_queue_maxlen( return (EINVAL); return (netisr_setqlimit(&ip_direct_nh, qlimit)); } -SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQMAXLEN, intr_direct_queue_maxlen, - CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_netinet_intr_direct_queue_maxlen, "I", - "Maximum size of the IP direct input queue"); +SYSCTL_PROC(_net_inet_ip, IPCTL_INTRDQMAXLEN, intr_direct_queue_maxlen, + CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_netinet_intr_direct_queue_maxlen, + "I", "Maximum size of the IP direct input queue"); static int sysctl_netinet_intr_direct_queue_drops(SYSCTL_HANDLER_ARGS) @@ -287,7 +287,7 @@ sysctl_netinet_intr_direct_queue_drops(S return (0); } -SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQDROPS, intr_direct_queue_drops, +SYSCTL_PROC(_net_inet_ip, IPCTL_INTRDQDROPS, intr_direct_queue_drops, CTLTYPE_INT|CTLFLAG_RD, 0, 0, sysctl_netinet_intr_direct_queue_drops, "I", "Number of packets dropped from the IP direct input queue"); #endif /* RSS */ From owner-svn-src-all@freebsd.org Tue Apr 18 10:20:43 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7076FD4489C; Tue, 18 Apr 2017 10:20:43 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D8DFCCC; Tue, 18 Apr 2017 10:20:43 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IAKghT032198; Tue, 18 Apr 2017 10:20:42 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IAKgno032197; Tue, 18 Apr 2017 10:20:42 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201704181020.v3IAKgno032197@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 18 Apr 2017 10:20:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317084 - head/sys/arm/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 10:20:43 -0000 Author: zbb Date: Tue Apr 18 10:20:42 2017 New Revision: 317084 URL: https://svnweb.freebsd.org/changeset/base/317084 Log: Reduce kmem_arena maximum size for Armada38x VM_KMEM_SIZE_MAX allows to limit kmem arena size. In our case this was necessary, as decreasing size of kmem_arena leaves more space for kernel_arena. kernel_arena is pool used for contigmalloc (in effect, DMA) allocations, which failed on Armada38x. This resulted in 'no memory errors' (e.g. USB_ERR_NOMEM errors) and failure of whole system. The need for greater size of kernel_arena probably comes from more peripherals making use of busdma. Value used as upper limit is half of the default value (0x1399a000). Submitted by: Wojciech Macek Obtained from: Semihalf Sponsored by: Stormshield Differential revision: https://reviews.freebsd.org/D10216 Modified: head/sys/arm/conf/ARMADA38X Modified: head/sys/arm/conf/ARMADA38X ============================================================================== --- head/sys/arm/conf/ARMADA38X Tue Apr 18 09:27:26 2017 (r317083) +++ head/sys/arm/conf/ARMADA38X Tue Apr 18 10:20:42 2017 (r317084) @@ -21,6 +21,8 @@ options ROOTDEVNAME=\"/dev/da0s1a\" options SCHED_ULE # ULE scheduler options SMP +options VM_KMEM_SIZE_MAX=0x9CCD000 + # Pseudo devices device random device pty From owner-svn-src-all@freebsd.org Tue Apr 18 10:26:00 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE89BD449AA; Tue, 18 Apr 2017 10:26:00 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9BA9A27F; Tue, 18 Apr 2017 10:26:00 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IAPxtF035424; Tue, 18 Apr 2017 10:25:59 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IAPxpG035422; Tue, 18 Apr 2017 10:25:59 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201704181025.v3IAPxpG035422@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 18 Apr 2017 10:25:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317085 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 10:26:00 -0000 Author: zbb Date: Tue Apr 18 10:25:59 2017 New Revision: 317085 URL: https://svnweb.freebsd.org/changeset/base/317085 Log: Increase number of L2 tables required for kernel bootstrap Memory space reserved for pmap_kernel_l2dtable_kva and pmap_kernel_l2ptp_kva has not been taken into account in original code. All the memory reserved from kernel space by pmap_alloc_specials() function called in pmap_bootstrap() should be mapped initially by initarm(). To create initial mapping initarm() function reserves proper number of l2 page tables. However the number of the l2 page tables does not take into account memory for: pmap_kernel_l2ptp_kva, pmap_kernel_l2dtable_kva, crashdumpmap, etc. Submitted by: Grzegorz Bernacki Obtained from: Semihalf Sponsored by: Stormshield Reviewed by: meloun-miracle-cz Differential revision: https://reviews.freebsd.org/D10217 Modified: head/sys/arm/arm/machdep.c Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Tue Apr 18 10:20:42 2017 (r317084) +++ head/sys/arm/arm/machdep.c Tue Apr 18 10:25:59 2017 (r317085) @@ -814,9 +814,10 @@ initarm(struct arm_boot_params *abp) /* * Add one table for end of kernel map, one for stacks, msgbuf and - * L1 and L2 tables map and one for vectors map. + * L1 and L2 tables map, one for vectors map and two for + * l2 structures from pmap_bootstrap. */ - l2size += 3; + l2size += 5; /* Make it divisible by 4 */ l2size = (l2size + 3) & ~3; From owner-svn-src-all@freebsd.org Tue Apr 18 10:32:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7DE70D44D22; Tue, 18 Apr 2017 10:32:22 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 590C6CFB; Tue, 18 Apr 2017 10:32:22 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IAWLjX039601; Tue, 18 Apr 2017 10:32:21 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IAWLip039599; Tue, 18 Apr 2017 10:32:21 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201704181032.v3IAWLip039599@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 18 Apr 2017 10:32:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317086 - head/sys/arm/mv/armada38x X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 10:32:22 -0000 Author: zbb Date: Tue Apr 18 10:32:21 2017 New Revision: 317086 URL: https://svnweb.freebsd.org/changeset/base/317086 Log: Add PL310 platform initialization for Armada 38x Introduce machine-dependent part of the arm/pl310 driver for Armada 38x SoCs. Add prefetch and power savings configuration. Submitted by: Obtained from: Stormshield Sponsored by: Stormshield Differential revision: https://reviews.freebsd.org/D10220 Added: head/sys/arm/mv/armada38x/armada38x_pl310.c (contents, props changed) Modified: head/sys/arm/mv/armada38x/files.armada38x Added: head/sys/arm/mv/armada38x/armada38x_pl310.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/mv/armada38x/armada38x_pl310.c Tue Apr 18 10:32:21 2017 (r317086) @@ -0,0 +1,74 @@ +/*- + * Copyright (c) 2017 Stormshield. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * The machine-dependent part of the arm/pl310 driver for Armada 38x SoCs. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +void +platform_pl310_init(struct pl310_softc *sc) +{ + uint32_t reg; + + /* + * Enable power saving modes: + * - Dynamic Gating stops the clock when the controller is idle. + */ + reg = pl310_read4(sc, PL310_POWER_CTRL); + reg |= POWER_CTRL_ENABLE_GATING; + pl310_write4(sc, PL310_POWER_CTRL, reg); + + pl310_write4(sc, PL310_PREFETCH_CTRL, PREFETCH_CTRL_DL | + PREFETCH_CTRL_DATA_PREFETCH | PREFETCH_CTRL_INCR_DL | + PREFETCH_CTRL_DL_ON_WRAP); +} + +void +platform_pl310_write_ctrl(struct pl310_softc *sc, uint32_t val) +{ + + pl310_write4(sc, PL310_CTRL, val); +} + +void +platform_pl310_write_debug(struct pl310_softc *sc, uint32_t val) +{ + + pl310_write4(sc, PL310_DEBUG_CTRL, val); +} Modified: head/sys/arm/mv/armada38x/files.armada38x ============================================================================== --- head/sys/arm/mv/armada38x/files.armada38x Tue Apr 18 10:25:59 2017 (r317085) +++ head/sys/arm/mv/armada38x/files.armada38x Tue Apr 18 10:32:21 2017 (r317086) @@ -7,3 +7,4 @@ arm/mv/armada38x/armada38x.c standard arm/mv/armada38x/armada38x_mp.c optional smp arm/mv/armada38x/pmsu.c standard arm/mv/armada38x/rtc.c standard +arm/mv/armada38x/armada38x_pl310.c optional pl310 From owner-svn-src-all@freebsd.org Tue Apr 18 10:34:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D97E1D44E11; Tue, 18 Apr 2017 10:34:11 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A6C53106F; Tue, 18 Apr 2017 10:34:11 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IAYAhZ039936; Tue, 18 Apr 2017 10:34:10 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IAYAdV039935; Tue, 18 Apr 2017 10:34:10 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201704181034.v3IAYAdV039935@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 18 Apr 2017 10:34:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317087 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 10:34:12 -0000 Author: zbb Date: Tue Apr 18 10:34:10 2017 New Revision: 317087 URL: https://svnweb.freebsd.org/changeset/base/317087 Log: Execute PL310_ERRATA_727915 only for related revisions Part of PL310 erratum 727915 in pl310_wbinv_range() was executed uncoditionally for all possible controllers' revisions. This patch adds appropriate condition, since extra operations are required only for revisions between r2p0 and r3p0. Submitted by: Marcin Wojtas Obtained from: Semihalf Sponsored by: Stormshield Reviewed by: meloun-miracle-cz Differential revision: https://reviews.freebsd.org/D10221 Modified: head/sys/arm/arm/pl310.c Modified: head/sys/arm/arm/pl310.c ============================================================================== --- head/sys/arm/arm/pl310.c Tue Apr 18 10:32:21 2017 (r317086) +++ head/sys/arm/arm/pl310.c Tue Apr 18 10:34:10 2017 (r317087) @@ -272,7 +272,9 @@ pl310_wbinv_range(vm_paddr_t start, vm_s #ifdef PL310_ERRATA_727915 - platform_pl310_write_debug(pl310_softc, 3); + if (pl310_softc->sc_rtl_revision >= CACHE_ID_RELEASE_r2p0 && + pl310_softc->sc_rtl_revision < CACHE_ID_RELEASE_r3p1) + platform_pl310_write_debug(pl310_softc, 3); #endif while (size > 0) { #ifdef PL310_ERRATA_588369 @@ -293,7 +295,9 @@ pl310_wbinv_range(vm_paddr_t start, vm_s size -= g_l2cache_line_size; } #ifdef PL310_ERRATA_727915 - platform_pl310_write_debug(pl310_softc, 0); + if (pl310_softc->sc_rtl_revision >= CACHE_ID_RELEASE_r2p0 && + pl310_softc->sc_rtl_revision < CACHE_ID_RELEASE_r3p1) + platform_pl310_write_debug(pl310_softc, 0); #endif pl310_cache_sync(); From owner-svn-src-all@freebsd.org Tue Apr 18 10:35:31 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 860EBD44E89; Tue, 18 Apr 2017 10:35:31 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5694E1239; Tue, 18 Apr 2017 10:35:31 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IAZUsl040033; Tue, 18 Apr 2017 10:35:30 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IAZU6u040032; Tue, 18 Apr 2017 10:35:30 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201704181035.v3IAZU6u040032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 18 Apr 2017 10:35:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317088 - head/sys/arm/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 10:35:31 -0000 Author: zbb Date: Tue Apr 18 10:35:30 2017 New Revision: 317088 URL: https://svnweb.freebsd.org/changeset/base/317088 Log: Add PL310 device in ARMADA38X config Submitted by: Arnaud Ysmal Obtained from: Stormshield Sponsored by: Stormshield Differential revision: https://reviews.freebsd.org/D10222 Modified: head/sys/arm/conf/ARMADA38X Modified: head/sys/arm/conf/ARMADA38X ============================================================================== --- head/sys/arm/conf/ARMADA38X Tue Apr 18 10:34:10 2017 (r317087) +++ head/sys/arm/conf/ARMADA38X Tue Apr 18 10:35:30 2017 (r317088) @@ -75,6 +75,9 @@ device cesa device crypto device cryptodev +# L2 Cache +device pl310 + #FDT options FDT options FDT_DTB_STATIC From owner-svn-src-all@freebsd.org Tue Apr 18 10:37:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DBEDD44EEC; Tue, 18 Apr 2017 10:37:09 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1FF7513CE; Tue, 18 Apr 2017 10:37:09 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IAb8Sl040128; Tue, 18 Apr 2017 10:37:08 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IAb8V2040127; Tue, 18 Apr 2017 10:37:08 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201704181037.v3IAb8V2040127@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 18 Apr 2017 10:37:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317089 - head/sys/arm/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 10:37:09 -0000 Author: zbb Date: Tue Apr 18 10:37:08 2017 New Revision: 317089 URL: https://svnweb.freebsd.org/changeset/base/317089 Log: Fix bit assignment in PL310_POWER_CTRL Align to ARM specification: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0246f/BEIEHICF.html Submitted by: Marcin Wojtas Obtained from: Semihalf Sponsored by: Stormshield Reviewed by: meloun-miracle-cz Differential revision: https://reviews.freebsd.org/D10223 Modified: head/sys/arm/include/pl310.h Modified: head/sys/arm/include/pl310.h ============================================================================== --- head/sys/arm/include/pl310.h Tue Apr 18 10:35:30 2017 (r317088) +++ head/sys/arm/include/pl310.h Tue Apr 18 10:37:08 2017 (r317089) @@ -134,8 +134,8 @@ #define PREFETCH_CTRL_INSTR_PREFETCH (1 << 29) #define PREFETCH_CTRL_DL (1 << 30) #define PL310_POWER_CTRL 0xF80 -#define POWER_CTRL_ENABLE_GATING (1 << 0) -#define POWER_CTRL_ENABLE_STANDBY (1 << 1) +#define POWER_CTRL_ENABLE_GATING (1 << 1) +#define POWER_CTRL_ENABLE_STANDBY (1 << 0) struct intr_config_hook; From owner-svn-src-all@freebsd.org Tue Apr 18 10:39:15 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D7ADED44F6D; Tue, 18 Apr 2017 10:39:15 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B316015CB; Tue, 18 Apr 2017 10:39:15 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IAdE1K040245; Tue, 18 Apr 2017 10:39:14 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IAdElp040242; Tue, 18 Apr 2017 10:39:14 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201704181039.v3IAdElp040242@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Tue, 18 Apr 2017 10:39:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317090 - in head/sys/arm/mv: . armada38x X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 10:39:15 -0000 Author: zbb Date: Tue Apr 18 10:39:14 2017 New Revision: 317090 URL: https://svnweb.freebsd.org/changeset/base/317090 Log: Optimize Armada38x low-level MBUS settings Add early init handler, which comprises various internal bus optimisations for Armada 38x SoC's. Magic values used due to undocumented registers. Submitted by: Marcin Wojtas , Arnaud Ysmal Obtained from: Semihalf, Stormshield Sponsored by: Stormshield Differential revision: https://reviews.freebsd.org/D10219 Modified: head/sys/arm/mv/armada38x/armada38x.c head/sys/arm/mv/mv_machdep.c head/sys/arm/mv/mvreg.h Modified: head/sys/arm/mv/armada38x/armada38x.c ============================================================================== --- head/sys/arm/mv/armada38x/armada38x.c Tue Apr 18 10:37:08 2017 (r317089) +++ head/sys/arm/mv/armada38x/armada38x.c Tue Apr 18 10:39:14 2017 (r317090) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); int armada38x_open_bootrom_win(void); int armada38x_scu_enable(void); int armada38x_win_set_iosync_barrier(void); +int armada38x_mbus_optimization(void); uint32_t get_tclk(void) @@ -115,6 +116,50 @@ armada38x_open_bootrom_win(void) } int +armada38x_mbus_optimization(void) +{ + bus_space_handle_t vaddr_iowind; + int rv; + + rv = bus_space_map(fdtbus_bs_tag, (bus_addr_t)MV_MBUS_CTRL_BASE, + MV_MBUS_CTRL_REGS_LEN, 0, &vaddr_iowind); + if (rv != 0) + return (rv); + + /* + * MBUS Units Priority Control Register - Prioritize XOR, + * PCIe and GbEs (ID=4,6,3,7,8) DRAM access + * GbE is High and others are Medium. + */ + bus_space_write_4(fdtbus_bs_tag, vaddr_iowind, 0, 0x19180); + + /* + * Fabric Units Priority Control Register - + * Prioritize CPUs requests. + */ + bus_space_write_4(fdtbus_bs_tag, vaddr_iowind, 0x4, 0x3000A); + + /* + * MBUS Units Prefetch Control Register - + * Pre-fetch enable for all IO masters. + */ + bus_space_write_4(fdtbus_bs_tag, vaddr_iowind, 0x8, 0xFFFF); + + /* + * Fabric Units Prefetch Control Register - + * Enable the CPUs Instruction and Data prefetch. + */ + bus_space_write_4(fdtbus_bs_tag, vaddr_iowind, 0xc, 0x303); + + bus_space_barrier(fdtbus_bs_tag, vaddr_iowind, 0, MV_MBUS_CTRL_REGS_LEN, + BUS_SPACE_BARRIER_WRITE); + + bus_space_unmap(fdtbus_bs_tag, vaddr_iowind, MV_MBUS_CTRL_REGS_LEN); + + return (rv); +} + +int armada38x_scu_enable(void) { bus_space_handle_t vaddr_scu; Modified: head/sys/arm/mv/mv_machdep.c ============================================================================== --- head/sys/arm/mv/mv_machdep.c Tue Apr 18 10:37:08 2017 (r317089) +++ head/sys/arm/mv/mv_machdep.c Tue Apr 18 10:39:14 2017 (r317090) @@ -77,6 +77,7 @@ void armadaxp_l2_init(void); int armada38x_win_set_iosync_barrier(void); int armada38x_scu_enable(void); int armada38x_open_bootrom_win(void); +int armada38x_mbus_optimization(void); #endif #define MPP_PIN_MAX 68 @@ -259,6 +260,8 @@ platform_late_init(void) /* Set IO Sync Barrier bit for all Mbus devices */ if (armada38x_win_set_iosync_barrier() != 0) printf("WARNING: could not map CPU Subsystem registers\n"); + if (armada38x_mbus_optimization() != 0) + printf("WARNING: could not enable mbus optimization\n"); if (armada38x_scu_enable() != 0) printf("WARNING: could not enable SCU\n"); #ifdef SMP Modified: head/sys/arm/mv/mvreg.h ============================================================================== --- head/sys/arm/mv/mvreg.h Tue Apr 18 10:37:08 2017 (r317089) +++ head/sys/arm/mv/mvreg.h Tue Apr 18 10:39:14 2017 (r317090) @@ -447,4 +447,9 @@ #define CPU_RESET_ASSERT 0x1 #endif +#if defined(SOC_MV_ARMADA38X) +#define MV_MBUS_CTRL_BASE (MV_BASE + 0x20420) +#define MV_MBUS_CTRL_REGS_LEN 0x10 +#endif + #endif /* _MVREG_H_ */ From owner-svn-src-all@freebsd.org Tue Apr 18 12:41:17 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F61DD42292; Tue, 18 Apr 2017 12:41:17 +0000 (UTC) (envelope-from decui@microsoft.com) Received: from APC01-HK2-obe.outbound.protection.outlook.com (mail-hk2apc01on0133.outbound.protection.outlook.com [104.47.124.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B0D603B4; Tue, 18 Apr 2017 12:41:15 +0000 (UTC) (envelope-from decui@microsoft.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=tfuZLnZJaSC/Xb6tOYgaDMMf6RYomWx8ZsnfoPe7B64=; b=LL5QP7iO0GhTXhfSPiJISCHHZR8zY18YWxxfd5TVZ/IKE9a6bh4TEX7bTFLqidmUTakqHrewFvURYrszq7FAmGg+sl1Gx/9+96AFL6xRbXvaAnCg40T2/hYS5kMiZkxaSS6y/A21ZWpAoHxYASBoutKdwWTEb1V+6sVJV/xAznU= Received: from HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM (10.170.151.145) by HK2P15301MB0002.APCP153.PROD.OUTLOOK.COM (10.170.151.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.1; Tue, 18 Apr 2017 12:41:09 +0000 Received: from HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM ([10.170.151.145]) by HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM ([10.170.151.145]) with mapi id 15.01.1061.000; Tue, 18 Apr 2017 12:41:09 +0000 From: Dexuan Cui To: Konstantin Belousov , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" CC: Sepherosa Ziehau , Hongjiang Zhang Subject: RE: svn commit: r316767 - head/sys/amd64/amd64 Thread-Topic: svn commit: r316767 - head/sys/amd64/amd64 Thread-Index: AQHStG2iSg+v8T4ZWE2jvrgFLfQZk6HLFDPw Date: Tue, 18 Apr 2017 12:41:09 +0000 Message-ID: References: <201704131549.v3DFnt9I004050@repo.freebsd.org> In-Reply-To: <201704131549.v3DFnt9I004050@repo.freebsd.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: FreeBSD.org; dkim=none (message not signed) header.d=none;FreeBSD.org; dmarc=none action=none header.from=microsoft.com; x-originating-ip: [167.220.255.20] x-microsoft-exchange-diagnostics: 1; HK2P15301MB0002; 7:4GhIlL3Qh3pTjHsUAei9Ttarff0AczGjd38IDladTG9GuoyJGIPDfwoHrA5I7DrRGBJYtgxyAj9J3teBTy7ZL1rV1TkdMSgCp0rs3zbzvaGcD4amB9kaEW7WzPsnvR/HxxT2LSefgLyfqDLC76UhZUTKsmZuSPveoEM4nV5Wo2JmIGJvafX0ChFL9PyHQV8hmDMFPb5GZWEBFUg1peWCZCSwSscJUdpjNRGdJfroAza/e3/E8eaVfSDKjctXnWBexz9thdtjV0VD6YbpetZLEgs2lHNPni4n5fm+DZe0xobd7FMq2lcEdJ7QJ97l8AS8xeItiwFekviDDCtACn+rSO9Jx6N/Ag71t8ZOKYeiB5o= x-ms-office365-filtering-correlation-id: caffda02-1912-434d-9346-08d4865830c5 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(48565401081)(201703131423075)(201703031133081)(201702281549075); SRVR:HK2P15301MB0002; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(6055026)(61426038)(61427038)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:HK2P15301MB0002; BCL:0; PCL:0; RULEID:; SRVR:HK2P15301MB0002; x-forefront-prvs: 028166BF91 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39450400003)(39860400002)(39410400002)(39850400002)(39400400002)(39840400002)(6506006)(107886003)(38730400002)(55016002)(4326008)(77096006)(74316002)(6436002)(66066001)(3846002)(9686003)(54356999)(76176999)(50986999)(6246003)(53936002)(25786009)(8676002)(5660300001)(81166006)(8936002)(7696004)(6116002)(229853002)(2900100001)(450100002)(305945005)(2950100002)(102836003)(7736002)(86362001)(10290500002)(5005710100001)(10090500001)(2201001)(8990500004)(33656002)(3280700002)(3660700001)(2906002)(122556002)(2501003)(189998001); DIR:OUT; SFP:1102; SCL:1; SRVR:HK2P15301MB0002; H:HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM; FPR:; SPF:None; MLV:sfv; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2017 12:41:09.4507 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2P15301MB0002 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 12:41:17 -0000 > From: owner-svn-src-head@freebsd.org [mailto:owner-svn-src- > head@freebsd.org] On Behalf Of Konstantin Belousov > Sent: Thursday, April 13, 2017 23:50 >=20 > Author: kib > Date: Thu Apr 13 15:49:55 2017 > New Revision: 316767 > URL: >=20 > Log: > Map DMAP as nx. >=20 > Demotions preserve PG_NX, so it is enough to set nx bit for initial > lowest-level paging entries. >=20 > Modified: > head/sys/amd64/amd64/pmap.c =20 Hi kib, Unluckily this patch breaks Hyper-V VM: In dev/hyperv/vmbus/hyperv.c: hypercall_create() we allocate one page and pass its physical address to the hypervisor, which initializes the page with executable code. Later in dev/hyperv/vmbus/hyperv.c: hypercall_post_message(), we "call" the executable code in the above page. Now with NX, the "call" gets a fault and as a result FreeBSD VM can't boot on Hyper-V. It looks memory allocated by bus_dmamem_alloc() and malloc() is not executable now. What else can we use? I guess we can only use contigmalloc() or kmem_malloc() to get a page that can be executable and use vtophys() to get its physical address? Looking forward to your suggestion! Thanks! -- Dexuan From owner-svn-src-all@freebsd.org Tue Apr 18 13:46:02 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5407D441DE; Tue, 18 Apr 2017 13:46:02 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5D466362; Tue, 18 Apr 2017 13:46:02 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id v3IDjuxI026851 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 18 Apr 2017 16:45:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua v3IDjuxI026851 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id v3IDjurb026849; Tue, 18 Apr 2017 16:45:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 18 Apr 2017 16:45:56 +0300 From: Konstantin Belousov To: Dexuan Cui Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" , Sepherosa Ziehau , Hongjiang Zhang Subject: Re: svn commit: r316767 - head/sys/amd64/amd64 Message-ID: <20170418134556.GY1788@kib.kiev.ua> References: <201704131549.v3DFnt9I004050@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.8.0 (2017-02-23) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 13:46:03 -0000 On Tue, Apr 18, 2017 at 12:41:09PM +0000, Dexuan Cui wrote: > > From: owner-svn-src-head@freebsd.org [mailto:owner-svn-src- > > head@freebsd.org] On Behalf Of Konstantin Belousov > > Sent: Thursday, April 13, 2017 23:50 > > > > Author: kib > > Date: Thu Apr 13 15:49:55 2017 > > New Revision: 316767 > > URL: > > > > Log: > > Map DMAP as nx. > > > > Demotions preserve PG_NX, so it is enough to set nx bit for initial > > lowest-level paging entries. > > > > Modified: > > head/sys/amd64/amd64/pmap.c > > Hi kib, > Unluckily this patch breaks Hyper-V VM: > > In dev/hyperv/vmbus/hyperv.c: hypercall_create() we allocate one > page and pass its physical address to the hypervisor, which initializes > the page with executable code. > > Later in dev/hyperv/vmbus/hyperv.c: hypercall_post_message(), we > "call" the executable code in the above page. > > Now with NX, the "call" gets a fault and as a result FreeBSD VM > can't boot on Hyper-V. > > It looks memory allocated by bus_dmamem_alloc() and malloc() > is not executable now. > > What else can we use? > I guess we can only use contigmalloc() or kmem_malloc() to > get a page that can be executable and use vtophys() to get its > physical address? Yes, the kmem_malloc() is considered to be a suitable substitution for regular malloc(9) if the executable mapping is needed. See r317072 for a similar fix for the same issue. From owner-svn-src-all@freebsd.org Tue Apr 18 15:36:14 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9FAB8D4435E; Tue, 18 Apr 2017 15:36:14 +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 mx1.freebsd.org (Postfix) with ESMTPS id 71D3C64A; Tue, 18 Apr 2017 15:36:14 +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 v3IFaD6r062434; Tue, 18 Apr 2017 15:36:13 GMT (envelope-from pluknet@FreeBSD.org) Received: (from pluknet@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IFaDtD062433; Tue, 18 Apr 2017 15:36:13 GMT (envelope-from pluknet@FreeBSD.org) Message-Id: <201704181536.v3IFaDtD062433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pluknet set sender to pluknet@FreeBSD.org using -f From: Sergey Kandaurov Date: Tue, 18 Apr 2017 15:36:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317091 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 15:36:14 -0000 Author: pluknet Date: Tue Apr 18 15:36:13 2017 New Revision: 317091 URL: https://svnweb.freebsd.org/changeset/base/317091 Log: Document kevent EVFILT_EMPTY. Reviewed by: hiren X-MFC with: r312277 Modified: head/lib/libc/sys/kqueue.2 Modified: head/lib/libc/sys/kqueue.2 ============================================================================== --- head/lib/libc/sys/kqueue.2 Tue Apr 18 10:39:14 2017 (r317090) +++ head/lib/libc/sys/kqueue.2 Tue Apr 18 15:36:13 2017 (r317091) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2017 +.Dd April 18, 2017 .Dt KQUEUE 2 .Os .Sh NAME @@ -332,6 +332,9 @@ For sockets, the low water mark and sock identical to the .Dv EVFILT_READ case. +.It Dv EVFILT_EMPTY +Takes a descriptor as the identifier, and returns whenever +there is no remaining data in the write buffer. .It Dv EVFILT_AIO The sigevent portion of the AIO request is filled in, with .Va sigev_notify_kqueue From owner-svn-src-all@freebsd.org Tue Apr 18 15:43:48 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4014D4465B; Tue, 18 Apr 2017 15:43:48 +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 mx1.freebsd.org (Postfix) with ESMTPS id 5A7E7C1D; Tue, 18 Apr 2017 15:43:48 +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 v3IFhlQ3066344; Tue, 18 Apr 2017 15:43:47 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IFhlkQ066343; Tue, 18 Apr 2017 15:43:47 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <201704181543.v3IFhlkQ066343@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Tue, 18 Apr 2017 15:43:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317092 - head/sys/boot/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 15:43:48 -0000 Author: tsoome Date: Tue Apr 18 15:43:47 2017 New Revision: 317092 URL: https://svnweb.freebsd.org/changeset/base/317092 Log: loader: zfs reader vdev_probe should check for minimum device size The smallest device we can have in the pool is 64MB, since we are trying to walk all four labels to find the most up to date uberblock, this limit will also give us good method to check if we even should attempt to probe. Enforcing the check also will make sure we are not getting wrapped while calculating the label offset. Also, after label check, we should verify if we actually got any UB or not. PR: 218473 Reported by: Masachika ISHIZUKA Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D10381 Modified: head/sys/boot/zfs/zfsimpl.c Modified: head/sys/boot/zfs/zfsimpl.c ============================================================================== --- head/sys/boot/zfs/zfsimpl.c Tue Apr 18 15:36:13 2017 (r317091) +++ head/sys/boot/zfs/zfsimpl.c Tue Apr 18 15:43:47 2017 (r317092) @@ -929,7 +929,7 @@ vdev_probe(vdev_phys_read_t *_read, void { vdev_t vtmp; vdev_phys_t *vdev_label = (vdev_phys_t *) zap_scratch; - vdev_phys_t *tmp_label = zfs_alloc(sizeof(vdev_phys_t)); + vdev_phys_t *tmp_label; spa_t *spa; vdev_t *vdev, *top_vdev, *pool_vdev; off_t off; @@ -957,6 +957,12 @@ vdev_probe(vdev_phys_read_t *_read, void psize = P2ALIGN(ldi_get_size(read_priv), (uint64_t)sizeof (vdev_label_t)); + /* Test for minimum pool size. */ + if (psize < SPA_MINDEVSIZE) + return (EIO); + + tmp_label = zfs_alloc(sizeof(vdev_phys_t)); + for (l = 0; l < VDEV_LABELS; l++) { off = vdev_label_offset(psize, l, offsetof(vdev_label_t, vl_vdev_phys)); @@ -988,6 +994,9 @@ vdev_probe(vdev_phys_read_t *_read, void zfs_free(tmp_label, sizeof (vdev_phys_t)); + if (best_txg == 0) + return (EIO); + if (vdev_label->vp_nvlist[0] != NV_ENCODE_XDR) return (EIO); From owner-svn-src-all@freebsd.org Tue Apr 18 16:17:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50397D43340; Tue, 18 Apr 2017 16:17:39 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1FD83238; Tue, 18 Apr 2017 16:17:39 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IGHcHA078812; Tue, 18 Apr 2017 16:17:38 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IGHcpl078811; Tue, 18 Apr 2017 16:17:38 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201704181617.v3IGHcpl078811@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Tue, 18 Apr 2017 16:17:38 +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: r317093 - stable/10/tests/sys/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 16:17:39 -0000 Author: asomers Date: Tue Apr 18 16:17:38 2017 New Revision: 317093 URL: https://svnweb.freebsd.org/changeset/base/317093 Log: MFC r285117 Make cleanup routines idempotent cleanup routines can be executed at any point during the execution of the body, including even before the body has done any real work. In those cases, cleanup routines should be careful to not raise spurious errors so as to not "override" the actual result of the test case. This is just general good coding style but is not a problem in practice for these specific tests. (The way I discovered the issue, though, was due to a regression I introduced in Kyua itself while refactoring some internals.) MFC after: 1 week Modified: stable/10/tests/sys/netinet/fibs_test.sh Directory Properties: stable/10/ (props changed) Modified: stable/10/tests/sys/netinet/fibs_test.sh ============================================================================== --- stable/10/tests/sys/netinet/fibs_test.sh Tue Apr 18 15:43:47 2017 (r317092) +++ stable/10/tests/sys/netinet/fibs_test.sh Tue Apr 18 16:17:38 2017 (r317093) @@ -98,9 +98,12 @@ arpresolve_checks_interface_fib_body() } arpresolve_checks_interface_fib_cleanup() { - for PID in `cat "processes_to_kill"`; do - kill $PID - done + if [ -f processes_to_kill ]; then + for pid in $(cat processes_to_kill); do + kill "${pid}" + done + rm -f processes_to_kill + fi cleanup_tap } @@ -477,8 +480,10 @@ setup_tap() cleanup_tap() { - for TAPD in `cat "tap_devices_to_cleanup"`; do - ifconfig ${TAPD} destroy - done - rm "tap_devices_to_cleanup" + if [ -f tap_devices_to_cleanup ]; then + for tap_device in $(cat tap_devices_to_cleanup); do + ifconfig "${tap_device}" destroy + done + rm -f tap_devices_to_cleanup + fi } From owner-svn-src-all@freebsd.org Tue Apr 18 16:27:49 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 46E4ED43784; Tue, 18 Apr 2017 16:27:49 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 19149B26; Tue, 18 Apr 2017 16:27:49 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IGRmgH082878; Tue, 18 Apr 2017 16:27:48 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IGRmNN082877; Tue, 18 Apr 2017 16:27:48 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201704181627.v3IGRmNN082877@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 18 Apr 2017 16:27:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317094 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 16:27:49 -0000 Author: jhb Date: Tue Apr 18 16:27:48 2017 New Revision: 317094 URL: https://svnweb.freebsd.org/changeset/base/317094 Log: Disable in-tree GDB by default on x86, mips, and powerpc. GDB in ports contains all of the functionality as GDB in base (including kgdb) for these platforms along with additional functionality. In-tree GDB remains enabled on ARM and sparc64. GDB in ports does not currently support kernel debugging on arm, and ports GDB for sparc64 has not been tested (though it does include sparc64 support). Reviewed by: bdrewery, emaste, imp Relnotes: yes Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D10399 Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Tue Apr 18 16:17:38 2017 (r317093) +++ head/share/mk/src.opts.mk Tue Apr 18 16:27:48 2017 (r317094) @@ -41,7 +41,7 @@ ____: # that haven't been converted over. # -# These options are used by src the builds +# These options are used by the src builds __DEFAULT_YES_OPTIONS = \ ACCT \ @@ -96,7 +96,6 @@ __DEFAULT_YES_OPTIONS = \ FTP \ GAMES \ GCOV \ - GDB \ GNU \ GNU_DIFF \ GNU_GREP \ @@ -263,6 +262,14 @@ __DEFAULT_NO_OPTIONS+=LLDB .if ${__T} == "arm" || ${__T} == "armeb" BROKEN_OPTIONS+=LLDB .endif +# GDB in base is generally less functional than GDB in ports. Ports GDB +# does not yet contain kernel support for arm, and sparc64 kernel support +# has not been tested. +.if ${__T:Marm*} != "" || ${__T} == "sparc64" +__DEFAULT_YES_OPTIONS+=GDB +.else +__DEFAULT_NO_OPTIONS+=GDB +.endif # Only doing soft float API stuff on armv6 .if ${__T} != "armv6" BROKEN_OPTIONS+=LIBSOFT From owner-svn-src-all@freebsd.org Tue Apr 18 17:05:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E4DBD44820; Tue, 18 Apr 2017 17:05:54 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1E4D31A60; Tue, 18 Apr 2017 17:05:54 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1d0W17-0003lk-BC; Tue, 18 Apr 2017 19:30:13 +0300 Date: Tue, 18 Apr 2017 19:30:13 +0300 From: Slawa Olhovchenkov To: John Baldwin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317094 - head/share/mk Message-ID: <20170418163013.GB83631@zxy.spb.ru> References: <201704181627.v3IGRmNN082877@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201704181627.v3IGRmNN082877@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 17:05:54 -0000 On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: > Author: jhb > Date: Tue Apr 18 16:27:48 2017 > New Revision: 317094 > URL: https://svnweb.freebsd.org/changeset/base/317094 > > Log: > Disable in-tree GDB by default on x86, mips, and powerpc. > > GDB in ports contains all of the functionality as GDB in base > (including kgdb) for these platforms along with additional > functionality. In-tree GDB remains enabled on ARM and sparc64. > GDB in ports does not currently support kernel debugging on arm, > and ports GDB for sparc64 has not been tested (though it does > include sparc64 support). > > Reviewed by: bdrewery, emaste, imp > Relnotes: yes > Sponsored by: DARPA / AFRL > Differential Revision: https://reviews.freebsd.org/D10399 Generating core.txt now complety broken? From owner-svn-src-all@freebsd.org Tue Apr 18 17:20:05 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 391CDD44F5F; Tue, 18 Apr 2017 17:20:05 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D97AC914; Tue, 18 Apr 2017 17:20:04 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IHK4t6003310; Tue, 18 Apr 2017 17:20:04 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IHK3mJ003306; Tue, 18 Apr 2017 17:20:03 GMT (envelope-from br@FreeBSD.org) Message-Id: <201704181720.v3IHK3mJ003306@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Tue, 18 Apr 2017 17:20:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317095 - in head/sys: boot/fdt/dts/mips mips/beri mips/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 17:20:05 -0000 Author: br Date: Tue Apr 18 17:20:03 2017 New Revision: 317095 URL: https://svnweb.freebsd.org/changeset/base/317095 Log: Switch BERI Programmable Interrupt Controller to INTRNG. Sponsored by: DARPA, AFRL Deleted: head/sys/mips/beri/beri_simplebus.c head/sys/mips/beri/fdt_ic_if.m Modified: head/sys/boot/fdt/dts/mips/beri-netfpga.dts head/sys/boot/fdt/dts/mips/beri-sim.dts head/sys/boot/fdt/dts/mips/beripad-de4.dts head/sys/boot/fdt/dts/mips/beripad-sockit.dts head/sys/mips/beri/beri_pic.c head/sys/mips/beri/files.beri head/sys/mips/conf/std.BERI Modified: head/sys/boot/fdt/dts/mips/beri-netfpga.dts ============================================================================== --- head/sys/boot/fdt/dts/mips/beri-netfpga.dts Tue Apr 18 16:27:48 2017 (r317094) +++ head/sys/boot/fdt/dts/mips/beri-netfpga.dts Tue Apr 18 17:20:03 2017 (r317095) @@ -87,30 +87,35 @@ reg = <0x0 0x0FFFFFFF>; // ~256M at 0x0 }; + cpuintc: cpuintc@0 { + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-controller; + compatible = "mti,cpu-interrupt-controller"; + }; + + beripic: beripic@7f804000 { + compatible = "sri-cambridge,beri-pic"; + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + reg = <0x7f804000 0x400 + 0x7f806000 0x10 + 0x7f806080 0x10 + 0x7f806100 0x10>; + interrupts = < 2 3 4 5 6 >; + hard-interrupt-sources = <64>; + soft-interrupt-sources = <64>; + interrupt-parent = <&cpuintc>; + }; + soc { #address-cells = <1>; #size-cells = <1>; #interrupt-cells = <1>; - /* - * Declare mips,mips4k since BERI doesn't (yet) have a PIC, so - * we use mips4k coprocessor 0 interrupt management directly. - */ compatible = "simple-bus", "mips,mips4k"; - - beripic: beripic@7f804000 { - compatible = "sri-cambridge,beri-pic"; - interrupt-controller; - #address-cells = <0>; - #interrupt-cells = <1>; - reg = <0x7f804000 0x400 - 0x7f806000 0x10 - 0x7f806080 0x10 - 0x7f806100 0x10>; - interrupts = <0 1 2 3 4>; - hard-interrupt-sources = <64>; - soft-interrupt-sources = <64>; - }; + ranges; serial0: serial@7f000000 { compatible = "altera,jtag_uart-11_0"; Modified: head/sys/boot/fdt/dts/mips/beri-sim.dts ============================================================================== --- head/sys/boot/fdt/dts/mips/beri-sim.dts Tue Apr 18 16:27:48 2017 (r317094) +++ head/sys/boot/fdt/dts/mips/beri-sim.dts Tue Apr 18 17:20:03 2017 (r317095) @@ -85,30 +85,35 @@ reg = <0x0 0x4000000>; // 64M at 0x0 }; + cpuintc: cpuintc@0 { + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-controller; + compatible = "mti,cpu-interrupt-controller"; + }; + + beripic0: beripic@7f804000 { + compatible = "sri-cambridge,beri-pic"; + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + reg = <0x7f804000 0x400 + 0x7f806000 0x10 + 0x7f806080 0x10 + 0x7f806100 0x10>; + interrupts = < 2 3 4 5 6 >; + hard-interrupt-sources = <64>; + soft-interrupt-sources = <64>; + interrupt-parent = <&cpuintc>; + }; + soc { #address-cells = <1>; #size-cells = <1>; #interrupt-cells = <1>; - /* - * Declare mips,mips4k since BERI doesn't (yet) have a PIC, so - * we use mips4k coprocessor 0 interrupt management directly. - */ compatible = "simple-bus", "mips,mips4k"; - - beripic0: beripic@7f804000 { - compatible = "sri-cambridge,beri-pic"; - interrupt-controller; - #address-cells = <0>; - #interrupt-cells = <1>; - reg = <0x7f804000 0x400 - 0x7f806000 0x10 - 0x7f806080 0x10 - 0x7f806100 0x10>; - interrupts = <0 1 2 3 4>; - hard-interrupt-sources = <64>; - soft-interrupt-sources = <64>; - }; + ranges; serial@7f000000 { compatible = "altera,jtag_uart-11_0"; Modified: head/sys/boot/fdt/dts/mips/beripad-de4.dts ============================================================================== --- head/sys/boot/fdt/dts/mips/beripad-de4.dts Tue Apr 18 16:27:48 2017 (r317094) +++ head/sys/boot/fdt/dts/mips/beripad-de4.dts Tue Apr 18 17:20:03 2017 (r317095) @@ -85,30 +85,35 @@ reg = <0x0 0x40000000>; // 1G at 0x0 }; + cpuintc: cpuintc@0 { + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-controller; + compatible = "mti,cpu-interrupt-controller"; + }; + + beripic0: beripic@7f804000 { + compatible = "sri-cambridge,beri-pic"; + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + reg = <0x7f804000 0x400 + 0x7f806000 0x10 + 0x7f806080 0x10 + 0x7f806100 0x10>; + interrupts = < 2 3 4 5 6 >; + hard-interrupt-sources = <64>; + soft-interrupt-sources = <64>; + interrupt-parent = <&cpuintc>; + }; + soc { #address-cells = <1>; #size-cells = <1>; #interrupt-cells = <1>; - /* - * Declare mips,mips4k since BERI doesn't (yet) have a PIC, so - * we use mips4k coprocessor 0 interrupt management directly. - */ compatible = "simple-bus", "mips,mips4k"; - - beripic0: beripic@7f804000 { - compatible = "sri-cambridge,beri-pic"; - interrupt-controller; - #address-cells = <0>; - #interrupt-cells = <1>; - reg = <0x7f804000 0x400 - 0x7f806000 0x10 - 0x7f806080 0x10 - 0x7f806100 0x10>; - interrupts = <0 1 2 3 4>; - hard-interrupt-sources = <64>; - soft-interrupt-sources = <64>; - }; + ranges; serial@7f002100 { compatible = "ns16550"; Modified: head/sys/boot/fdt/dts/mips/beripad-sockit.dts ============================================================================== --- head/sys/boot/fdt/dts/mips/beripad-sockit.dts Tue Apr 18 16:27:48 2017 (r317094) +++ head/sys/boot/fdt/dts/mips/beripad-sockit.dts Tue Apr 18 17:20:03 2017 (r317095) @@ -83,30 +83,35 @@ reg = <0x0 0x10000000>; /* 256MB at 0x0 */ }; + cpuintc: cpuintc@0 { + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-controller; + compatible = "mti,cpu-interrupt-controller"; + }; + + beripic0: beripic@7f804000 { + compatible = "sri-cambridge,beri-pic"; + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + reg = <0x0 0x7f804000 0x0 0x400 + 0x0 0x7f806000 0x0 0x10 + 0x0 0x7f806080 0x0 0x10 + 0x0 0x7f806100 0x0 0x10>; + interrupts = < 2 3 4 5 6 >; + hard-interrupt-sources = <64>; + soft-interrupt-sources = <64>; + interrupt-parent = <&cpuintc>; + }; + soc { #address-cells = <2>; #size-cells = <2>; #interrupt-cells = <1>; - /* - * Declare mips,mips4k since BERI doesn't (yet) have a PIC, so - * we use mips4k coprocessor 0 interrupt management directly. - */ compatible = "simple-bus", "mips,mips4k"; - - beripic0: beripic@7f804000 { - compatible = "sri-cambridge,beri-pic"; - interrupt-controller; - #address-cells = <0>; - #interrupt-cells = <1>; - reg = <0x0 0x7f804000 0x0 0x400 - 0x0 0x7f806000 0x0 0x10 - 0x0 0x7f806080 0x0 0x10 - 0x0 0x7f806100 0x0 0x10>; - interrupts = <0 1 2 3 4>; - hard-interrupt-sources = <64>; - soft-interrupt-sources = <64>; - }; + ranges; pio0: pio@7f020000 { compatible = "altr,pio"; Modified: head/sys/mips/beri/beri_pic.c ============================================================================== --- head/sys/mips/beri/beri_pic.c Tue Apr 18 16:27:48 2017 (r317094) +++ head/sys/mips/beri/beri_pic.c Tue Apr 18 17:20:03 2017 (r317095) @@ -1,4 +1,5 @@ /*- + * Copyright (c) 2017 Ruslan Bukin * Copyright (c) 2013 SRI International * All rights reserved. * @@ -28,6 +29,8 @@ * SUCH DAMAGE. */ +#include "opt_platform.h" + #include __FBSDID("$FreeBSD$"); @@ -37,221 +40,118 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include -#include +#include +#ifdef SMP +#include +#endif + +#include +#include #include #include -#include +#include "pic_if.h" -#include "fdt_ic_if.h" +#define BP_NUM_HARD_IRQS 5 +#define BP_NUM_IRQS 32 +/* We use hard irqs 15-31 as soft */ +#define BP_FIRST_SOFT 16 + +#define BP_CFG_IRQ_S 0 +#define BP_CFG_IRQ_M (0xf << BP_CFG_IRQ_S) +#define BP_CFG_TID_S 8 +#define BP_CFG_TID_M (0x7FFFFF << BP_CFG_TID_S) +#define BP_CFG_ENABLE (1 << 31) + +enum { + BP_CFG, + BP_IP_READ, + BP_IP_SET, + BP_IP_CLEAR +}; struct beripic_softc; -static uint64_t bp_read_cfg(struct beripic_softc *, int); -static void bp_write_cfg(struct beripic_softc *, int, uint64_t); -static void bp_detach_resources(device_t); -static char *bp_strconfig(uint64_t, char *, size_t); -static void bp_config_source(device_t, int, int, u_long, u_long); -#ifdef __mips__ -static void bp_set_counter_name(device_t, device_t, int); -#endif - -static int beripic_fdt_probe(device_t); -static int beripic_fdt_attach(device_t); - -static int beripic_activate_intr(device_t, struct resource *); -static struct resource * - beripic_alloc_intr(device_t, device_t, int *, u_long, u_int); -static int beripic_config_intr(device_t, int, enum intr_trigger, - enum intr_polarity); -static int beripic_release_intr(device_t, struct resource *); -static int beripic_setup_intr(device_t, device_t, struct resource *, - int, driver_filter_t *, driver_intr_t *, void *, void **); -static int beripic_teardown_intr(device_t, device_t, struct resource *, - void *); - -static int beripic_filter(void *); -static void beripic_intr(void *); - -#define BP_MAX_HARD_IRQS 6 -#define BP_FIRST_SOFT 64 - -struct beripic_softc { - device_t bp_dev; - struct resource *bp_cfg_res; - struct resource *bp_read_res; - struct resource *bp_set_res; - struct resource *bp_clear_res; - int bp_cfg_rid; - int bp_read_rid; - int bp_set_rid; - int bp_clear_rid; - bus_space_tag_t bp_cfg_bst; - bus_space_tag_t bp_read_bst; - bus_space_tag_t bp_set_bst; - bus_space_tag_t bp_clear_bst; - bus_space_handle_t bp_cfg_bsh; - bus_space_handle_t bp_read_bsh; - bus_space_handle_t bp_set_bsh; - bus_space_handle_t bp_clear_bsh; - - struct resource *bp_irqs[BP_MAX_HARD_IRQS]; - int bp_irq_rids[BP_MAX_HARD_IRQS]; - int bp_nirqs; - int bp_next_irq; - int bp_next_tid; - - int bp_nthreads; - - int bp_nhard; - int bp_nsoft; - int bp_nsrcs; - struct rman bp_src_rman; - -#ifdef __mips__ - mips_intrcnt_t *bp_counters; -#endif - - struct mtx bp_cfgmtx; +struct beri_pic_isrc { + struct intr_irqsrc isrc; + u_int irq; + uint32_t mips_hard_irq; }; -struct beripic_intr_arg { - driver_filter_t *filter; - driver_intr_t *intr; - void *arg; - struct resource *irq; -#ifdef __mips__ - mips_intrcnt_t counter; -#endif +struct hirq { + uint32_t irq; + struct beripic_softc *sc; }; -struct beripic_cookie { - struct beripic_intr_arg *bpia; - struct resource *hirq; - void *cookie; +struct beripic_softc { + device_t dev; + uint32_t nirqs; + struct beri_pic_isrc irqs[BP_NUM_IRQS]; + struct resource *res[4 + BP_NUM_HARD_IRQS]; + void *ih[BP_NUM_HARD_IRQS]; + struct hirq hirq[BP_NUM_HARD_IRQS]; + uint8_t mips_hard_irq_idx; }; -#define BP_CFG_MASK_E 0x80000000ull -#define BP_CFG_SHIFT_E 31 -#define BP_CFG_MASK_TID 0x7FFFFF00ull /* Depends on CPU */ -#define BP_CFG_SHIFT_TID 8 -#define BP_CFG_MASK_IRQ 0x0000000Full -#define BP_CFG_SHIFT_IRQ 0 -#define BP_CFG_VALID (BP_CFG_MASK_E|BP_CFG_MASK_TID|BP_CFG_MASK_IRQ) -#define BP_CFG_RESERVED ~BP_CFG_VALID - -#define BP_CFG_ENABLED(cfg) (((cfg) & BP_CFG_MASK_E) >> BP_CFG_SHIFT_E) -#define BP_CFG_TID(cfg) (((cfg) & BP_CFG_MASK_TID) >> BP_CFG_SHIFT_TID) -#define BP_CFG_IRQ(cfg) (((cfg) & BP_CFG_MASK_IRQ) >> BP_CFG_SHIFT_IRQ) - -MALLOC_DEFINE(M_BERIPIC, "beripic", "beripic memory"); - -static uint64_t -bp_read_cfg(struct beripic_softc *sc, int irq) -{ - - KASSERT((irq >= 0 && irq < sc->bp_nsrcs), - ("IRQ of of range %d (0-%d)", irq, sc->bp_nsrcs - 1)); - return (bus_space_read_8(sc->bp_cfg_bst, sc->bp_cfg_bsh, irq * 8)); -} - -static void -bp_write_cfg(struct beripic_softc *sc, int irq, uint64_t config) -{ - - KASSERT((irq >= 0 && irq < sc->bp_nsrcs), - ("IRQ of of range %d (0-%d)", irq, sc->bp_nsrcs - 1)); - bus_space_write_8(sc->bp_cfg_bst, sc->bp_cfg_bsh, irq * 8, config); -} +static struct resource_spec beri_pic_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE }, + { SYS_RES_MEMORY, 1, RF_ACTIVE }, + { SYS_RES_MEMORY, 2, RF_ACTIVE }, + { SYS_RES_MEMORY, 3, RF_ACTIVE }, + { SYS_RES_IRQ, 0, RF_ACTIVE }, + { SYS_RES_IRQ, 1, RF_ACTIVE }, + { SYS_RES_IRQ, 2, RF_ACTIVE }, + { SYS_RES_IRQ, 3, RF_ACTIVE }, + { SYS_RES_IRQ, 4, RF_ACTIVE }, + { -1, 0 } +}; -static void -bp_detach_resources(device_t dev) +static int +beri_pic_intr(void *arg) { struct beripic_softc *sc; + struct intr_irqsrc *isrc; + struct hirq *h; + uint64_t intr; + uint64_t reg; int i; - sc = device_get_softc(dev); + h = arg; + sc = h->sc; - if (sc->bp_cfg_res != NULL) { - bus_release_resource(dev, SYS_RES_MEMORY, sc->bp_cfg_rid, - sc->bp_cfg_res); - sc->bp_cfg_res = NULL; - } - if (sc->bp_read_res != NULL) { - bus_release_resource(dev, SYS_RES_MEMORY, sc->bp_read_rid, - sc->bp_read_res); - sc->bp_read_res = NULL; - } - if (sc->bp_set_res != NULL) { - bus_release_resource(dev, SYS_RES_MEMORY, sc->bp_set_rid, - sc->bp_set_res); - sc->bp_set_res = NULL; - } - if (sc->bp_clear_res != NULL) { - bus_release_resource(dev, SYS_RES_MEMORY, sc->bp_clear_rid, - sc->bp_clear_res); - sc->bp_clear_res = NULL; - } - for (i = sc->bp_nirqs - 1; i >= 0; i--) { - bus_release_resource(dev, SYS_RES_IRQ, sc->bp_irq_rids[i], - sc->bp_irqs[i]); - } - sc->bp_nirqs = 0; -} + intr = bus_read_8(sc->res[BP_IP_READ], 0); + while ((i = fls(intr)) != 0) { + i--; + intr &= ~(1u << i); -static char * -bp_strconfig(uint64_t config, char *configstr, size_t len) -{ - - if (snprintf(configstr, len, "%s tid: %llu hardintr %llu", - BP_CFG_ENABLED(config) ? "enabled" : "disabled", - BP_CFG_TID(config), BP_CFG_IRQ(config)) > len - 1) - return (NULL); - return (configstr); -} + isrc = &sc->irqs[i].isrc; -static void -bp_config_source(device_t ic, int src, int enable, u_long tid, u_long irq) -{ - struct beripic_softc *sc; - uint64_t config; - - sc = device_get_softc(ic); - - config = 0; - config |= enable << BP_CFG_SHIFT_E; - config |= tid << BP_CFG_SHIFT_TID; - config |= irq << BP_CFG_SHIFT_IRQ; - - bp_write_cfg(sc, src, config); -} + reg = bus_read_8(sc->res[BP_CFG], i * 8); + if ((reg & BP_CFG_IRQ_M) != h->irq) { + continue; + } + if ((reg & (BP_CFG_ENABLE)) == 0) { + continue; + } -#ifdef __mips__ -static void -bp_set_counter_name(device_t ic, device_t child, int src) -{ - struct beripic_softc *sc; - char name[MAXCOMLEN + 1]; + if (intr_isrc_dispatch(isrc, curthread->td_intr_frame) != 0) { + device_printf(sc->dev, "Stray interrupt %u detected\n", i); + } - sc = device_get_softc(ic); + bus_write_8(sc->res[BP_IP_CLEAR], 0, (1 << i)); + } - if (snprintf(name, sizeof(name), "bp%dsrc%d%s%s%s", - device_get_unit(ic), src, src < sc->bp_nhard ? "" : "s", - child == NULL ? "" : " ", - child == NULL ? " " : device_get_nameunit(child)) >= sizeof(name)) - name[sizeof(name) - 2] = '+'; - - mips_intrcnt_setname(sc->bp_counters[src], name); + return (FILTER_HANDLED); } -#endif static int -beripic_fdt_probe(device_t dev) +beripic_probe(device_t dev) { if (!ofw_bus_status_okay(dev)) @@ -261,443 +161,208 @@ beripic_fdt_probe(device_t dev) return (ENXIO); device_set_desc(dev, "BERI Programmable Interrupt Controller"); + return (BUS_PROBE_DEFAULT); } static int -beripic_fdt_attach(device_t dev) +beripic_attach(device_t dev) { - char configstr[64]; struct beripic_softc *sc; - struct fdt_ic *fic; - pcell_t nhard, nsoft; - phandle_t ph; - int error, i, src; - uint64_t config; + struct beri_pic_isrc *pic_isrc; + const char *name; + struct intr_irqsrc *isrc; + intptr_t xref; + uint32_t unit; + int err; + int i; sc = device_get_softc(dev); - sc->bp_dev = dev; - - mtx_init(&sc->bp_cfgmtx, "beripic config lock", NULL, MTX_DEF); + sc->dev = dev; - /* - * FDT lists CONFIG, IP_READ, IP_SET, and IP_CLEAR registers as - * seperate memory regions in that order. - */ - sc->bp_cfg_rid = 0; - sc->bp_cfg_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, - &sc->bp_cfg_rid, RF_ACTIVE); - if (sc->bp_cfg_res == NULL) { - device_printf(dev, "failed to map config memory"); - error = ENXIO; - goto err; - } - if (bootverbose) - device_printf(sc->bp_dev, "config region at mem %p-%p\n", - (void *)rman_get_start(sc->bp_cfg_res), - (void *)(rman_get_start(sc->bp_cfg_res) + - rman_get_size(sc->bp_cfg_res))); - - sc->bp_read_rid = 1; - sc->bp_read_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, - &sc->bp_read_rid, RF_ACTIVE); - if (sc->bp_read_res == NULL) { - device_printf(dev, "failed to map IP read memory"); - error = ENXIO; - goto err; - } - if (bootverbose) - device_printf(sc->bp_dev, "IP read region at mem %p-%p\n", - (void *)rman_get_start(sc->bp_read_res), - (void *)(rman_get_start(sc->bp_read_res) + - rman_get_size(sc->bp_read_res))); - - sc->bp_set_rid = 2; - sc->bp_set_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, - &sc->bp_set_rid, RF_ACTIVE); - if (sc->bp_set_res == NULL) { - device_printf(dev, "failed to map IP read memory"); - error = ENXIO; - goto err; - } - if (bootverbose) - device_printf(sc->bp_dev, "IP set region at mem %p-%p\n", - (void *)rman_get_start(sc->bp_set_res), - (void *)(rman_get_start(sc->bp_set_res) + - rman_get_size(sc->bp_set_res))); - - sc->bp_clear_rid = 3; - sc->bp_clear_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, - &sc->bp_clear_rid, RF_ACTIVE); - if (sc->bp_clear_res == NULL) { - device_printf(dev, "failed to map IP read memory"); - error = ENXIO; - goto err; - } - if (bootverbose) - device_printf(sc->bp_dev, "IP clear region at mem %p-%p\n", - (void *)rman_get_start(sc->bp_clear_res), - (void *)(rman_get_start(sc->bp_clear_res) + - rman_get_size(sc->bp_clear_res))); - - i = 0; - for (i = 0; i < BP_MAX_HARD_IRQS; i++) { - sc->bp_irq_rids[i] = i; - sc->bp_irqs[i] = bus_alloc_resource_any(dev, SYS_RES_IRQ, - &sc->bp_irq_rids[i], RF_ACTIVE | RF_SHAREABLE); - if (sc->bp_irqs[i] == NULL) - break; - } - if (i == 0) { - device_printf(dev, "failed to allocate any parent IRQs!"); - error = ENXIO; - goto err; + if (bus_alloc_resources(dev, beri_pic_spec, sc->res)) { + device_printf(dev, "could not allocate resources\n"); + return (ENXIO); } - sc->bp_nirqs = i; - - ph = ofw_bus_gen_get_node(device_get_parent(dev), dev); -#ifndef SMP - sc->bp_nthreads = 1; -#else - sc->bp_nthreads = 1; - /* XXX: get nthreads from cpu(s) somehow */ -#endif + xref = OF_xref_from_node(ofw_bus_get_node(dev)); + name = device_get_nameunit(dev); + unit = device_get_unit(dev); + sc->nirqs = BP_NUM_IRQS; + + for (i = 0; i < sc->nirqs; i++) { + sc->irqs[i].irq = i; + isrc = &sc->irqs[i].isrc; + + /* Assign mips hard irq number. */ + pic_isrc = (struct beri_pic_isrc *)isrc; + pic_isrc->mips_hard_irq = sc->mips_hard_irq_idx++; + /* Last IRQ is used for IPIs. */ + if (sc->mips_hard_irq_idx >= (BP_NUM_HARD_IRQS - 1)) { + sc->mips_hard_irq_idx = 0; + } - if (OF_getprop(ph, "hard-interrupt-sources", &nhard, sizeof(nhard)) - <= 0) { - device_printf(dev, "failed to get number of hard sources"); - error = ENXIO; - goto err; - } - if (OF_getprop(ph, "soft-interrupt-sources", &nsoft, sizeof(nsoft)) - <= 0) { - device_printf(dev, "failed to get number of soft sources"); - error = ENXIO; - goto err; + err = intr_isrc_register(isrc, sc->dev, + 0, "pic%d,%d", unit, i); + bus_write_8(sc->res[BP_CFG], i * 8, 0); } - sc->bp_nhard = nhard; - sc->bp_nsoft = nsoft; - sc->bp_nsrcs = sc->bp_nhard + sc->bp_nsoft; - /* XXX: should deal with gap between hard and soft */ - KASSERT(sc->bp_nhard <= BP_FIRST_SOFT, - ("too many hard sources")); - KASSERT(rman_get_size(sc->bp_cfg_res) / 8 == sc->bp_nsrcs, - ("config space size does not match sources")); - KASSERT(sc->bp_nhard % 64 == 0, - ("Non-multiple of 64 intr counts not supported")); - KASSERT(sc->bp_nsoft % 64 == 0, - ("Non-multiple of 64 intr counts not supported")); - if (bootverbose) - device_printf(dev, "%d hard and %d soft sources\n", - sc->bp_nhard, sc->bp_nsoft); - -#ifdef __mips__ - sc->bp_counters = malloc(sizeof(*sc->bp_counters) * sc->bp_nsrcs, - M_BERIPIC, M_WAITOK|M_ZERO); - for (i = 0; i < sc->bp_nsrcs; i++) { - sc->bp_counters[i] = mips_intrcnt_create(""); - bp_set_counter_name(dev, NULL, i); - } -#endif - - sc->bp_src_rman.rm_start = 0; - sc->bp_src_rman.rm_end = sc->bp_nsrcs - 1; - sc->bp_src_rman.rm_type = RMAN_ARRAY; - sc->bp_src_rman.rm_descr = "Interrupt source"; - if (rman_init(&(sc->bp_src_rman)) != 0 || - rman_manage_region(&(sc->bp_src_rman), 0, sc->bp_nsrcs - 1) != 0) { - device_printf(dev, "Failed to set up sources rman"); - error = ENXIO; - goto err; + /* + * Now, when everything is initialized, it's right time to + * register interrupt controller to interrupt framefork. + */ + if (intr_pic_register(dev, xref) == NULL) { + device_printf(dev, "could not register PIC\n"); + return (ENXIO); } - sc->bp_cfg_bst = rman_get_bustag(sc->bp_cfg_res); - sc->bp_cfg_bsh = rman_get_bushandle(sc->bp_cfg_res); - sc->bp_read_bst = rman_get_bustag(sc->bp_read_res); - sc->bp_read_bsh = rman_get_bushandle(sc->bp_read_res); - sc->bp_set_bst = rman_get_bustag(sc->bp_set_res); - sc->bp_set_bsh = rman_get_bushandle(sc->bp_set_res); - sc->bp_clear_bst = rman_get_bustag(sc->bp_clear_res); - sc->bp_clear_bsh = rman_get_bushandle(sc->bp_clear_res); - - for (src = 0; src < sc->bp_nsrcs; src++) { - config = bp_read_cfg(sc, src); - if (config == 0) - continue; - - if (bootverbose) { - device_printf(dev, "initial config: src %d: %s\n", src, - bp_strconfig(config, configstr, sizeof(configstr))); - if (config & BP_CFG_RESERVED) - device_printf(dev, - "reserved bits not 0: 0x%016jx\n", - (uintmax_t) config); + /* Last IRQ is used for IPIs. */ + for (i = 0; i < (BP_NUM_HARD_IRQS - 1); i++) { + sc->hirq[i].sc = sc; + sc->hirq[i].irq = i; + if (bus_setup_intr(dev, sc->res[4+i], INTR_TYPE_CLK, + beri_pic_intr, NULL, &sc->hirq[i], sc->ih[i])) { + device_printf(dev, "could not setup irq handler\n"); + intr_pic_deregister(dev, xref); + return (ENXIO); } - - bp_config_source(dev, src, 0, 0, 0); } - fic = malloc(sizeof(*fic), M_BERIPIC, M_WAITOK|M_ZERO); - fic->iph = ph; - fic->dev = dev; - SLIST_INSERT_HEAD(&fdt_ic_list_head, fic, fdt_ics); - return (0); -err: - bp_detach_resources(dev); - - return (error); } -static struct resource * -beripic_alloc_intr(device_t ic, device_t child, int *rid, u_long irq, - u_int flags) +static void +beri_pic_enable_intr(device_t dev, struct intr_irqsrc *isrc) { + struct beri_pic_isrc *pic_isrc; struct beripic_softc *sc; - struct resource *rv; - - sc = device_get_softc(ic); + uint64_t reg; - rv = rman_reserve_resource(&(sc->bp_src_rman), irq, irq, 1, flags, - child); - if (rv == NULL) - printf("%s: could not reserve source interrupt for %s\n", - __func__, device_get_nameunit(child)); - rman_set_rid(rv, *rid); - - if ((flags & RF_ACTIVE) && - beripic_activate_intr(ic, rv) != 0) { - printf("%s: could not activate interrupt\n", __func__); - rman_release_resource(rv); - return (NULL); - } - - return (rv); -} - -static int -beripic_release_intr(device_t ic, struct resource *r) -{ - - return (rman_release_resource(r)); -} - -static int -beripic_activate_intr(device_t ic, struct resource *r) -{ - - return (rman_activate_resource(r)); -} + sc = device_get_softc(dev); + pic_isrc = (struct beri_pic_isrc *)isrc; -static int -beripic_deactivate_intr(device_t ic, struct resource *r) -{ - - return (rman_deactivate_resource(r)); + reg = BP_CFG_ENABLE; + reg |= (pic_isrc->mips_hard_irq << BP_CFG_IRQ_S); + bus_write_8(sc->res[BP_CFG], pic_isrc->irq * 8, reg); } -static int -beripic_config_intr(device_t dev, int irq, enum intr_trigger trig, - enum intr_polarity pol) +static void +beri_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc) { + struct beri_pic_isrc *pic_isrc; + struct beripic_softc *sc; + uint64_t reg; - if (trig != INTR_TRIGGER_CONFORM || pol != INTR_POLARITY_CONFORM) - return (EINVAL); + sc = device_get_softc(dev); + pic_isrc = (struct beri_pic_isrc *)isrc; - return (0); + reg = bus_read_8(sc->res[BP_CFG], pic_isrc->irq * 8); + reg &= ~BP_CFG_ENABLE; + bus_write_8(sc->res[BP_CFG], pic_isrc->irq * 8, reg); } static int -beripic_setup_intr(device_t ic, device_t child, struct resource *irq, - int flags, driver_filter_t *filter, driver_intr_t *intr, void *arg, - void **cookiep) +beri_pic_map_intr(device_t dev, struct intr_map_data *data, + struct intr_irqsrc **isrcp) { struct beripic_softc *sc; - struct beripic_intr_arg *bpia; - struct beripic_cookie *bpc; - int error; - u_long hirq, src, tid; - - sc = device_get_softc(ic); - - src = rman_get_start(irq); - - KASSERT(src < sc->bp_nsrcs, ("source (%lu) out of range 0-%d", - src, sc->bp_nsrcs - 1)); - - bpia = malloc(sizeof(*bpia), M_BERIPIC, M_WAITOK|M_ZERO); - bpia->filter = filter; - bpia->intr = intr; - bpia->arg = arg; - bpia->irq = irq; -#ifdef __mips__ - bpia->counter = sc->bp_counters[src]; - bp_set_counter_name(ic, child, src); -#endif + struct intr_map_data_fdt *daf; + uint32_t irq; - bpc = malloc(sizeof(*bpc), M_BERIPIC, M_WAITOK|M_ZERO); - bpc->bpia = bpia; - - mtx_lock(&(sc->bp_cfgmtx)); - bpc->hirq = sc->bp_irqs[sc->bp_next_irq]; - hirq = rman_get_start(bpc->hirq); - tid = sc->bp_next_tid; - - error = BUS_SETUP_INTR(device_get_parent(ic), ic, bpc->hirq, flags, - beripic_filter, intr == NULL ? NULL : beripic_intr, bpia, - &(bpc->cookie)); - if (error != 0) - goto err; + sc = device_get_softc(dev); + daf = (struct intr_map_data_fdt *)data; -#ifdef NOTYET -#ifdef SMP - /* XXX: bind ithread to cpu */ - sc->bp_next_tid++; - if (sc->bp_next_tid >= sc->bp_nthreads) - sc->bp_next_tid = 0; -#endif -#endif - if (sc->bp_next_tid == 0) { - sc->bp_next_irq++; - if (sc->bp_next_irq >= sc->bp_nirqs) - sc->bp_next_irq = 0; - } - mtx_unlock(&(sc->bp_cfgmtx)); + if (data == NULL || data->type != INTR_MAP_DATA_FDT || + daf->ncells != 1 || daf->cells[0] >= sc->nirqs) + return (EINVAL); - *cookiep = bpc; + irq = daf->cells[0]; - bp_config_source(ic, rman_get_start(irq), 1, tid, hirq); + *isrcp = &sc->irqs[irq].isrc; return (0); -err: - free(bpc, M_BERIPIC); - free(bpia, M_BERIPIC); - - return (error); } -static int -beripic_teardown_intr(device_t dev, device_t child, struct resource *irq, - void *cookie) +static void +beri_pic_post_ithread(device_t dev, struct intr_irqsrc *isrc) { - struct beripic_cookie *bpc; - int error; - - bpc = cookie; - - bp_config_source(dev, rman_get_start(irq), 0, 0, 0); - - free(bpc->bpia, M_BERIPIC); - - error = BUS_TEARDOWN_INTR(device_get_parent(dev), dev, bpc->hirq, - bpc->cookie); - - free(bpc, M_BERIPIC); - return (error); -} - -static int -beripic_filter(void *arg) -{ - struct beripic_intr_arg *bpic; - - bpic = arg; - -#ifdef __mips__ - mips_intrcnt_inc(bpic->counter); -#endif - - /* XXX: Add a check that our source is high */ - - if (bpic->filter == NULL) - return (FILTER_SCHEDULE_THREAD); - - return (bpic->filter(bpic->arg)); + beri_pic_enable_intr(dev, isrc); } static void -beripic_intr(void *arg) +beri_pic_pre_ithread(device_t dev, struct intr_irqsrc *isrc) { - struct beripic_intr_arg *bpic; - - bpic = arg; - - KASSERT(bpic->intr != NULL, - ("%s installed, but no child intr", __func__)); - bpic->intr(bpic->arg); + beri_pic_disable_intr(dev, isrc); } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Apr 18 18:07:56 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83288D4430E; Tue, 18 Apr 2017 18:07:56 +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 mx1.freebsd.org (Postfix) with ESMTPS id 5DF8A8F2; Tue, 18 Apr 2017 18:07:56 +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 v3II7tei023544; Tue, 18 Apr 2017 18:07:55 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3II7sJ4023532; Tue, 18 Apr 2017 18:07:54 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <201704181807.v3II7sJ4023532@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Tue, 18 Apr 2017 18:07:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317097 - in head/sys/boot: common efi/libefi i386/libi386 mips/beri/loader powerpc/ps3 uboot/lib usb/storage userboot/userboot X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 18:07:56 -0000 Author: tsoome Date: Tue Apr 18 18:07:54 2017 New Revision: 317097 URL: https://svnweb.freebsd.org/changeset/base/317097 Log: loader: F_READ/F_WRITE should be checked against masked flag The work to make it possible to avoid bcache via using F_NORA modifier did miss the fact that not all loader platforms are using the bcache, and so it is possible the modifier is not cleared, as bcache strategy function is not used. For fix, we make sure the checks are dont with masked flag. This patch does fix boot for platforms which do not use bcache. Reported by: emaste Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D10422 Modified: head/sys/boot/common/md.c head/sys/boot/efi/libefi/efipart.c head/sys/boot/i386/libi386/bioscd.c head/sys/boot/i386/libi386/biosdisk.c head/sys/boot/mips/beri/loader/beri_disk_cfi.c head/sys/boot/mips/beri/loader/beri_disk_sdcard.c head/sys/boot/powerpc/ps3/ps3cdrom.c head/sys/boot/powerpc/ps3/ps3disk.c head/sys/boot/uboot/lib/disk.c head/sys/boot/usb/storage/umass_loader.c head/sys/boot/userboot/userboot/userboot_disk.c Modified: head/sys/boot/common/md.c ============================================================================== --- head/sys/boot/common/md.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/common/md.c Tue Apr 18 18:07:54 2017 (r317097) @@ -106,7 +106,7 @@ md_strategy(void *devdata, int rw, daddr if (rsize != NULL) *rsize = size; - switch (rw) { + switch (rw & F_MASK) { case F_READ: bcopy(md_image.start + ofs, buf, size); return (0); Modified: head/sys/boot/efi/libefi/efipart.c ============================================================================== --- head/sys/boot/efi/libefi/efipart.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/efi/libefi/efipart.c Tue Apr 18 18:07:54 2017 (r317097) @@ -819,7 +819,7 @@ efipart_readwrite(EFI_BLOCK_IO *blkio, i if ((blk + nblks - 1) > blkio->Media->LastBlock) return (EIO); - switch (rw) { + switch (rw & F_MASK) { case F_READ: status = blkio->ReadBlocks(blkio, blkio->Media->MediaId, blk, nblks * blkio->Media->BlockSize, buf); Modified: head/sys/boot/i386/libi386/bioscd.c ============================================================================== --- head/sys/boot/i386/libi386/bioscd.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/i386/libi386/bioscd.c Tue Apr 18 18:07:54 2017 (r317097) @@ -268,7 +268,7 @@ bc_realstrategy(void *devdata, int rw, d return (EINVAL); #endif - if (rw != F_READ) + if ((rw & F_MASK) != F_READ) return(EROFS); dev = (struct i386_devdesc *)devdata; unit = dev->d_unit; Modified: head/sys/boot/i386/libi386/biosdisk.c ============================================================================== --- head/sys/boot/i386/libi386/biosdisk.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/i386/libi386/biosdisk.c Tue Apr 18 18:07:54 2017 (r317097) @@ -618,7 +618,7 @@ bd_realstrategy(void *devdata, int rw, d DEBUG("short read %d", blks); } - switch(rw){ + switch (rw & F_MASK) { case F_READ: DEBUG("read %d from %lld to %p", blks, dblk, buf); Modified: head/sys/boot/mips/beri/loader/beri_disk_cfi.c ============================================================================== --- head/sys/boot/mips/beri/loader/beri_disk_cfi.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/mips/beri/loader/beri_disk_cfi.c Tue Apr 18 18:07:54 2017 (r317097) @@ -73,6 +73,7 @@ beri_cfi_disk_strategy(void *devdata, in { int error; + flag &= F_MASK; if (flag == F_WRITE) return (EROFS); if (flag != F_READ) Modified: head/sys/boot/mips/beri/loader/beri_disk_sdcard.c ============================================================================== --- head/sys/boot/mips/beri/loader/beri_disk_sdcard.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/mips/beri/loader/beri_disk_sdcard.c Tue Apr 18 18:07:54 2017 (r317097) @@ -73,6 +73,7 @@ beri_sdcard_disk_strategy(void *devdata, { int error; + flag &= F_MASK; if (flag == F_WRITE) return (EROFS); if (flag != F_READ) Modified: head/sys/boot/powerpc/ps3/ps3cdrom.c ============================================================================== --- head/sys/boot/powerpc/ps3/ps3cdrom.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/powerpc/ps3/ps3cdrom.c Tue Apr 18 18:07:54 2017 (r317097) @@ -83,6 +83,7 @@ static int ps3cdrom_strategy(void *devda DEBUG("d_unit=%u dblk=%llu size=%u", dev->d_unit, dblk, size); + flag &= F_MASK; if (flag != F_READ) { dev_printf(dev, "write operation is not supported!"); return EROFS; Modified: head/sys/boot/powerpc/ps3/ps3disk.c ============================================================================== --- head/sys/boot/powerpc/ps3/ps3disk.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/powerpc/ps3/ps3disk.c Tue Apr 18 18:07:54 2017 (r317097) @@ -115,6 +115,7 @@ static int ps3disk_strategy(void *devdat struct open_dev *od = (struct open_dev *) dev->d_disk.data; int err; + flag &= F_MASK; if (flag != F_READ) { dev_printf(dev, "write operation is not supported!\n"); return EROFS; Modified: head/sys/boot/uboot/lib/disk.c ============================================================================== --- head/sys/boot/uboot/lib/disk.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/uboot/lib/disk.c Tue Apr 18 18:07:54 2017 (r317097) @@ -149,6 +149,7 @@ stor_strategy(void *devdata, int rw, dad daddr_t bcount; int err; + rw &= F_MASK; if (rw != F_READ) { stor_printf("write attempt, operation not supported!\n"); return (EROFS); Modified: head/sys/boot/usb/storage/umass_loader.c ============================================================================== --- head/sys/boot/usb/storage/umass_loader.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/usb/storage/umass_loader.c Tue Apr 18 18:07:54 2017 (r317097) @@ -92,6 +92,7 @@ umass_disk_strategy(void *devdata, int f if (rsizep != NULL) *rsizep = 0; + flag &= F_MASK; if (flag == F_WRITE) { if (usb_msc_write_10(umass_uaa.device, 0, dblk, size >> 9, buf) != 0) return (EINVAL); Modified: head/sys/boot/userboot/userboot/userboot_disk.c ============================================================================== --- head/sys/boot/userboot/userboot/userboot_disk.c Tue Apr 18 17:39:20 2017 (r317096) +++ head/sys/boot/userboot/userboot/userboot_disk.c Tue Apr 18 18:07:54 2017 (r317097) @@ -211,6 +211,7 @@ userdisk_realstrategy(void *devdata, int size_t resid; int rc; + rw &= F_MASK; if (rw == F_WRITE) return (EROFS); if (rw != F_READ) From owner-svn-src-all@freebsd.org Tue Apr 18 18:19:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08A8FD44838 for ; Tue, 18 Apr 2017 18:19:03 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E0D01130E for ; Tue, 18 Apr 2017 18:19:02 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: 868047c8-2463-11e7-bfb5-0d159cd3c324 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound1.ore.mailhop.org (Halon) with ESMTPSA id 868047c8-2463-11e7-bfb5-0d159cd3c324; Tue, 18 Apr 2017 18:19:14 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id v3IIIstG009242; Tue, 18 Apr 2017 12:18:54 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1492539534.96207.33.camel@freebsd.org> Subject: Re: svn commit: r317097 - in head/sys/boot: common efi/libefi i386/libi386 mips/beri/loader powerpc/ps3 uboot/lib usb/storage userboot/userboot From: Ian Lepore To: Toomas Soome , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Tue, 18 Apr 2017 12:18:54 -0600 In-Reply-To: <201704181807.v3II7sJ4023532@repo.freebsd.org> References: <201704181807.v3II7sJ4023532@repo.freebsd.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 18:19:03 -0000 On Tue, 2017-04-18 at 18:07 +0000, Toomas Soome wrote: > Author: tsoome > Date: Tue Apr 18 18:07:54 2017 > New Revision: 317097 > URL: https://svnweb.freebsd.org/changeset/base/317097 > > Log: >   loader: F_READ/F_WRITE should be checked against masked flag >    >   The work to make it possible to avoid bcache via using F_NORA > modifier did >   miss the fact that not all loader platforms are using the bcache, > and so >   it is possible the modifier is not cleared, as bcache strategy > function is >   not used. >    >   For fix, we make sure the checks are dont with masked flag. >    >   This patch does fix boot for platforms which do not use bcache. >    >   Reported by: emaste >   Reviewed by: emaste >   Differential Revision: https://reviews.freebsd.org/D10422 > Now the boot fails on arm with: Found U-Boot device: disk   Checking unit=0 slice= partition=...disk0: real size != size -- Ian > Modified: >   head/sys/boot/common/md.c >   head/sys/boot/efi/libefi/efipart.c >   head/sys/boot/i386/libi386/bioscd.c >   head/sys/boot/i386/libi386/biosdisk.c >   head/sys/boot/mips/beri/loader/beri_disk_cfi.c >   head/sys/boot/mips/beri/loader/beri_disk_sdcard.c >   head/sys/boot/powerpc/ps3/ps3cdrom.c >   head/sys/boot/powerpc/ps3/ps3disk.c >   head/sys/boot/uboot/lib/disk.c >   head/sys/boot/usb/storage/umass_loader.c >   head/sys/boot/userboot/userboot/userboot_disk.c > > Modified: head/sys/boot/common/md.c > ===================================================================== > ========= > --- head/sys/boot/common/md.c Tue Apr 18 17:39:20 2017 > (r317096) > +++ head/sys/boot/common/md.c Tue Apr 18 18:07:54 2017 > (r317097) > @@ -106,7 +106,7 @@ md_strategy(void *devdata, int rw, daddr >   if (rsize != NULL) >   *rsize = size; >   > - switch (rw) { > + switch (rw & F_MASK) { >   case F_READ: >   bcopy(md_image.start + ofs, buf, size); >   return (0); > > Modified: head/sys/boot/efi/libefi/efipart.c > ===================================================================== > ========= > --- head/sys/boot/efi/libefi/efipart.c Tue Apr 18 17:39:20 > 2017 (r317096) > +++ head/sys/boot/efi/libefi/efipart.c Tue Apr 18 18:07:54 > 2017 (r317097) > @@ -819,7 +819,7 @@ efipart_readwrite(EFI_BLOCK_IO *blkio, i >   if ((blk + nblks - 1) > blkio->Media->LastBlock) >   return (EIO); >   > - switch (rw) { > + switch (rw & F_MASK) { >   case F_READ: >   status = blkio->ReadBlocks(blkio, blkio->Media- > >MediaId, blk, >       nblks * blkio->Media->BlockSize, buf); > > Modified: head/sys/boot/i386/libi386/bioscd.c > ===================================================================== > ========= > --- head/sys/boot/i386/libi386/bioscd.c Tue Apr 18 17:39:20 > 2017 (r317096) > +++ head/sys/boot/i386/libi386/bioscd.c Tue Apr 18 18:07:54 > 2017 (r317097) > @@ -268,7 +268,7 @@ bc_realstrategy(void *devdata, int rw, d >   return (EINVAL); >  #endif >   > - if (rw != F_READ) > + if ((rw & F_MASK) != F_READ) >   return(EROFS); >   dev = (struct i386_devdesc *)devdata; >   unit = dev->d_unit; > > Modified: head/sys/boot/i386/libi386/biosdisk.c > ===================================================================== > ========= > --- head/sys/boot/i386/libi386/biosdisk.c Tue Apr 18 17:39:20 > 2017 (r317096) > +++ head/sys/boot/i386/libi386/biosdisk.c Tue Apr 18 18:07:54 > 2017 (r317097) > @@ -618,7 +618,7 @@ bd_realstrategy(void *devdata, int rw, d >   DEBUG("short read %d", blks); >      } >   > -    switch(rw){ > +    switch (rw & F_MASK) { >      case F_READ: >   DEBUG("read %d from %lld to %p", blks, dblk, buf); >   > > Modified: head/sys/boot/mips/beri/loader/beri_disk_cfi.c > ===================================================================== > ========= > --- head/sys/boot/mips/beri/loader/beri_disk_cfi.c Tue Apr 18 > 17:39:20 2017 (r317096) > +++ head/sys/boot/mips/beri/loader/beri_disk_cfi.c Tue Apr 18 > 18:07:54 2017 (r317097) > @@ -73,6 +73,7 @@ beri_cfi_disk_strategy(void *devdata, in >  { >   int error; >   > + flag &= F_MASK; >   if (flag == F_WRITE) >   return (EROFS); >   if (flag != F_READ) > > Modified: head/sys/boot/mips/beri/loader/beri_disk_sdcard.c > ===================================================================== > ========= > --- head/sys/boot/mips/beri/loader/beri_disk_sdcard.c Tue Apr > 18 17:39:20 2017 (r317096) > +++ head/sys/boot/mips/beri/loader/beri_disk_sdcard.c Tue Apr > 18 18:07:54 2017 (r317097) > @@ -73,6 +73,7 @@ beri_sdcard_disk_strategy(void *devdata, >  { >   int error; >   > + flag &= F_MASK; >   if (flag == F_WRITE) >   return (EROFS); >   if (flag != F_READ) > > Modified: head/sys/boot/powerpc/ps3/ps3cdrom.c > ===================================================================== > ========= > --- head/sys/boot/powerpc/ps3/ps3cdrom.c Tue Apr 18 17:39:20 > 2017 (r317096) > +++ head/sys/boot/powerpc/ps3/ps3cdrom.c Tue Apr 18 18:07:54 > 2017 (r317097) > @@ -83,6 +83,7 @@ static int ps3cdrom_strategy(void *devda >   >   DEBUG("d_unit=%u dblk=%llu size=%u", dev->d_unit, dblk, > size); >   > + flag &= F_MASK; >   if (flag != F_READ) { >   dev_printf(dev, "write operation is not > supported!"); >   return EROFS; > > Modified: head/sys/boot/powerpc/ps3/ps3disk.c > ===================================================================== > ========= > --- head/sys/boot/powerpc/ps3/ps3disk.c Tue Apr 18 17:39:20 > 2017 (r317096) > +++ head/sys/boot/powerpc/ps3/ps3disk.c Tue Apr 18 18:07:54 > 2017 (r317097) > @@ -115,6 +115,7 @@ static int ps3disk_strategy(void *devdat >   struct open_dev *od = (struct open_dev *) dev->d_disk.data; >   int err; >   > + flag &= F_MASK; >   if (flag != F_READ) { >   dev_printf(dev, "write operation is not > supported!\n"); >   return EROFS; > > Modified: head/sys/boot/uboot/lib/disk.c > ===================================================================== > ========= > --- head/sys/boot/uboot/lib/disk.c Tue Apr 18 17:39:20 2017 > (r317096) > +++ head/sys/boot/uboot/lib/disk.c Tue Apr 18 18:07:54 2017 > (r317097) > @@ -149,6 +149,7 @@ stor_strategy(void *devdata, int rw, dad >   daddr_t bcount; >   int err; >   > + rw &= F_MASK; >   if (rw != F_READ) { >   stor_printf("write attempt, operation not > supported!\n"); >   return (EROFS); > > Modified: head/sys/boot/usb/storage/umass_loader.c > ===================================================================== > ========= > --- head/sys/boot/usb/storage/umass_loader.c Tue Apr 18 > 17:39:20 2017 (r317096) > +++ head/sys/boot/usb/storage/umass_loader.c Tue Apr 18 > 18:07:54 2017 (r317097) > @@ -92,6 +92,7 @@ umass_disk_strategy(void *devdata, int f >   if (rsizep != NULL) >   *rsizep = 0; >   > + flag &= F_MASK; >   if (flag == F_WRITE) { >   if (usb_msc_write_10(umass_uaa.device, 0, dblk, size > >> 9, buf) != 0) >   return (EINVAL); > > Modified: head/sys/boot/userboot/userboot/userboot_disk.c > ===================================================================== > ========= > --- head/sys/boot/userboot/userboot/userboot_disk.c Tue Apr 18 > 17:39:20 2017 (r317096) > +++ head/sys/boot/userboot/userboot/userboot_disk.c Tue Apr 18 > 18:07:54 2017 (r317097) > @@ -211,6 +211,7 @@ userdisk_realstrategy(void *devdata, int >   size_t resid; >   int rc; >   > + rw &= F_MASK; >   if (rw == F_WRITE) >   return (EROFS); >   if (rw != F_READ) > From owner-svn-src-all@freebsd.org Tue Apr 18 19:02:18 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 71D86D44A44; Tue, 18 Apr 2017 19:02:18 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-yb0-x22e.google.com (mail-yb0-x22e.google.com [IPv6:2607:f8b0:4002:c09::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 292BD88C; Tue, 18 Apr 2017 19:02:18 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-yb0-x22e.google.com with SMTP id m133so554633ybb.1; Tue, 18 Apr 2017 12:02:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=GnGlPZcrMm+F02SY/FGNf6lf+CAyXtp4PmG3kiL998U=; b=N+oP8l/dcqORy5+9kbeDfngxCMe/N8R/5PIOMEhyEZ/7alz25JA0UQyKYvGLGegdY8 uOqjl9oSbEuWtPBnWLmOkVnWlbBZ/fcX45itB9oGwABWodSYVda0XTsO6JWNkvhDnimH UP3w/kR+r8fWDQRLB9nESFgTdVskPQZYjOmjVZywoPoK2AB/FxqV4p/7L/JP74iETkDO TKU5u2xZsmMrGxloVK898GzRnvKG8ENx/4XGPmXeY8bt0iuZZOi5YB4O45J97kUYLMG3 JbhHbzF+RJwl1rc4PlSxO9pcKfkyH8OcGfzaAraTwk9QlAW32WsrBz79CRRlYKya2Q1S LCBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=GnGlPZcrMm+F02SY/FGNf6lf+CAyXtp4PmG3kiL998U=; b=YQmJmRjE8x5ofWVUV68KP34WovAqONquxqYGBI96ogWYYKzCVIH7ymDCYlWntxGwLV Vm+ZRy7WMHTnlbyqkey0oCNukT7ynFf1Bfn/eR/C6dywOL7T6aQqD0ueNe0T4n8upioa UuBSGGXYU3UMgv6r1Y4rTNFmy6RlGSgOVVmesfMz6CISD9ugB9bd4+wfbWguiHQ9Y4nK 3Vew5K4VEEitgGUwhdboNcpbCq2c5dy7E5y5vQWbDVSdztrEJPSOohyurrE2ssv5BjfR k1TRukYcbM7M/BiUx1Ie6CFBHu+sdnw8jyUv7wLQRJPzOdmXHMwDW7Phy9kdubNqe4ly tRhg== X-Gm-Message-State: AN3rC/4oT8Fn3C8D+MmPy6GZOZFbSEq1qqOMGSYpw3VfVFjFaEUUlXKE U1lPeMMAJc1xsTbMDPIW5ArIcbJvWA== X-Received: by 10.37.234.72 with SMTP id o8mr19957951ybe.34.1492542137031; Tue, 18 Apr 2017 12:02:17 -0700 (PDT) MIME-Version: 1.0 Sender: asomers@gmail.com Received: by 10.129.20.214 with HTTP; Tue, 18 Apr 2017 12:02:16 -0700 (PDT) In-Reply-To: <201610312309.u9VN9qGk027956@repo.freebsd.org> References: <201610312309.u9VN9qGk027956@repo.freebsd.org> From: Alan Somers Date: Tue, 18 Apr 2017 13:02:16 -0600 X-Google-Sender-Auth: kHPheU1Axr3_hEUfritvNI0WM9s Message-ID: Subject: Re: svn commit: r308155 - in head/sys: amd64/conf cam cam/scsi conf dev/mps geom geom/part kern sys vm To: "Conrad E. Meyer" Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:02:18 -0000 On Mon, Oct 31, 2016 at 5:09 PM, Conrad E. Meyer wrote: > Author: cem > Date: Mon Oct 31 23:09:52 2016 > New Revision: 308155 > URL: https://svnweb.freebsd.org/changeset/base/308155 > > Log: > Add BUF_TRACKING and FULL_BUF_TRACKING buffer debugging > > Upstream the BUF_TRACKING and FULL_BUF_TRACKING buffer debugging code. > This can be handy in tracking down what code touched hung bios and bufs > last. The full history is especially useful, but adds enough bloat that > it shouldn't be enabled in release builds. > > Function names (or arbitrary string constants) are tracked in a > fixed-size ring in bufs. Bios gain a pointer to the upper buf for > tracking. SCSI CCBs gain a pointer to the upper bio for tracking. > > Reviewed by: markj > Sponsored by: Dell EMC Isilon > Differential Revision: https://reviews.freebsd.org/D8366 > > Modified: > head/sys/amd64/conf/GENERIC > head/sys/amd64/conf/GENERIC-NODEBUG > head/sys/cam/cam_ccb.h > head/sys/cam/cam_periph.c > head/sys/cam/cam_xpt.c > head/sys/cam/scsi/scsi_da.c > head/sys/conf/options > head/sys/dev/mps/mps_sas.c > head/sys/geom/geom_dev.c > head/sys/geom/geom_disk.c > head/sys/geom/geom_io.c > head/sys/geom/geom_subr.c > head/sys/geom/geom_vfs.c > head/sys/geom/part/g_part.c > head/sys/kern/vfs_bio.c > head/sys/kern/vfs_cluster.c > head/sys/sys/bio.h > head/sys/sys/buf.h > head/sys/vm/vm_pager.c This change is causing panics when I try to create a zpool on an SSD. The SSD is obviously having problems; it fails UNMAP commands with ILLEGAL REQUEST, and then fails WRITE SAME with a timeout. The offending line is the biotrack call in scsi_da.c at line 4172; bp is apparently null. Could you please review this change and ensure that biotrack is appropriately guarded? -Alan From owner-svn-src-all@freebsd.org Tue Apr 18 19:15:24 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC852D44FA0; Tue, 18 Apr 2017 19:15:24 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 81B1E171; Tue, 18 Apr 2017 19:15:24 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-wm0-f47.google.com with SMTP id r190so11643635wme.1; Tue, 18 Apr 2017 12:15:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=y5khROLhd0BWHV2RSWuODWTQux+975iig3YwGcfKvpo=; b=DaGgUGjhcKVtDVSejrcVyK9JSM9N7r1JUrnfrtKdbkcD97rtJvqyjQxmnblBIUPD5B zHIKA9gJvGXm41ywhuHBfM0jQozjHcibG84Jw3O902Er8UBcXXsTxu15nWIe9UegCcYr uRYtxkIO3tcUCeOAC3raVDTeYeCydxowm+/y7fZniFGPS0IFPwpQtgx77Q+OLxPNuQxY 3dRD01KCuFQDkNAH7N/gYK7VRSr1T4TZWX5UOcjPDXUh/NmmDmvE7BlXTONPKJWaEaiX 7I/GDB0Gb1yE8wMx53PH4bbJjPgtKNVWOKlAnIpSb0/x0JOBKabAC80jiaLwoccNn38p 2XlQ== X-Gm-Message-State: AN3rC/7+JW+epPcUFLvKxOVTmiYOCm35q0WluKgNWP/bdIjGUXNkJcq6 tGUPb0ECVIzCnVC64T0= X-Received: by 10.28.209.204 with SMTP id i195mr14890499wmg.113.1492542922048; Tue, 18 Apr 2017 12:15:22 -0700 (PDT) Received: from mail-wr0-f177.google.com (mail-wr0-f177.google.com. [209.85.128.177]) by smtp.gmail.com with ESMTPSA id m83sm16198001wmc.7.2017.04.18.12.15.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Apr 2017 12:15:21 -0700 (PDT) Received: by mail-wr0-f177.google.com with SMTP id z109so1497359wrb.1; Tue, 18 Apr 2017 12:15:21 -0700 (PDT) X-Received: by 10.223.160.214 with SMTP id n22mr26036844wrn.198.1492542921770; Tue, 18 Apr 2017 12:15:21 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.80.169.4 with HTTP; Tue, 18 Apr 2017 12:15:21 -0700 (PDT) In-Reply-To: References: <201610312309.u9VN9qGk027956@repo.freebsd.org> From: Conrad Meyer Date: Tue, 18 Apr 2017 12:15:21 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r308155 - in head/sys: amd64/conf cam cam/scsi conf dev/mps geom geom/part kern sys vm To: Alan Somers Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:15:25 -0000 Hi Alan, On Tue, Apr 18, 2017 at 12:02 PM, Alan Somers wrote: > This change is causing panics when I try to create a zpool on an SSD. > > ... (reordered slightly) > > The > offending line is the biotrack call in scsi_da.c at line 4172; bp is > apparently null. Could you please review this change and ensure that > biotrack is appropriately guarded? If it is valid for bp to be NULL in that path, then of course a NULL guard needs to be added. I'm a little confused on why or if it is valid for bp to be NULL in that path. You are the only one who has reported this since October of last year. Is it possible some other issue is now resulting in a NULL bp? > The SSD is obviously having problems; it fails UNMAP commands with > ILLEGAL REQUEST, and then fails WRITE SAME with a timeout. Well, that could definitely explain a weird error case. Still, shouldn't the CCB keep the bp associated through CCB completion? Thanks, Conrad From owner-svn-src-all@freebsd.org Tue Apr 18 19:16:04 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC41DD42024; Tue, 18 Apr 2017 19:16:04 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x229.google.com (mail-io0-x229.google.com [IPv6:2607:f8b0:4001:c06::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B207E32C; Tue, 18 Apr 2017 19:16:04 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x229.google.com with SMTP id r16so7669250ioi.2; Tue, 18 Apr 2017 12:16:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=TarwUcLL3AlapwXD5iphAidPLfBXHZH+n1DKIpnVJPA=; b=tqoWbX+8Jo8NCtr1PIlIHXDfFHV9W53IY11wQdy0AAw0uNtfbEDw/gou8TsuW3joc+ 0XKpv24SPpspAzLeb566ZEZ6mkHP6yds8aCx4uFxDl2oRYCq6WHx6ZW05LPIp9Dyc3xM rN0RrtL48bCI0HiHIMTT9YRMLBz97SGVAL8NOPGTfjyDOYDzu8VC/aw6PqPfoeMRS+tH 14WDnX/L75GcT85avBAsX2J0oey1KUsaFVpHSrWynaXUXWMD4IqFUtUtuNszcgSkMOO3 9TZ7kMkK864Z7W5rc/KtQl0ZZLLtOPgllJAOmrCxYNCm64XJVOiEWUFhc906PDTflTBd SZ5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=TarwUcLL3AlapwXD5iphAidPLfBXHZH+n1DKIpnVJPA=; b=lzOMofQ60YbY5F0wAcPLKRmRZRZFt0+1LcpwYhGdv88444qEcyLfAU4A6I4go3sukB 2DLzExebwGVQIaQZ5bIec5LUOwkSXQm5gZjXLK0po0H6+9nE84LHeRanii48hlWcA9Wr 7j8SsER3mkSWQNSAhX5pavDaJHmSi9RJvyoyXx6nAP/delfJfOncJo/ZXmWyUf93LsA/ Q8k/KSqYWP+Dl/PFCjiUNuBvFOI3mSzcuhltUJkAtyWQB+zpKqId2JoAmxqpa3OQa/Dx 18CnfLDBf1K9iX2mOOLc9CFxszEoit8yIU0NeQUel0eIqdhuaBEPdR9bSqe5DEvggOZN g8Yg== X-Gm-Message-State: AN3rC/7w/2h+kQC2l5na0febni6+HY7tYlrglTIYmtQE+H7FZ450L2xx VdfTmemKB+3YGSmHzP3bhj4tsfwsBdYX X-Received: by 10.107.191.2 with SMTP id p2mr17219769iof.172.1492542963944; Tue, 18 Apr 2017 12:16:03 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.30.136 with HTTP; Tue, 18 Apr 2017 12:15:43 -0700 (PDT) In-Reply-To: <1492539534.96207.33.camel@freebsd.org> References: <201704181807.v3II7sJ4023532@repo.freebsd.org> <1492539534.96207.33.camel@freebsd.org> From: Ed Maste Date: Tue, 18 Apr 2017 15:15:43 -0400 X-Google-Sender-Auth: G06Vt1oAYm32Yepyky10H9rIPQI Message-ID: Subject: Re: svn commit: r317097 - in head/sys/boot: common efi/libefi i386/libi386 mips/beri/loader powerpc/ps3 uboot/lib usb/storage userboot/userboot To: Ian Lepore Cc: Toomas Soome , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:16:05 -0000 On 18 April 2017 at 14:18, Ian Lepore wrote: > > Now the boot fails on arm with: > > Found U-Boot device: disk > Checking unit=0 slice= partition=...disk0: real size != size Hrmph. My BeagleBone Black booted with this change (and D10421). I built ubldr.bin with the changes, and copied it to the 20170413 BEAGLEBONE snapshot image. From owner-svn-src-all@freebsd.org Tue Apr 18 19:28:46 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B5DDD425B5 for ; Tue, 18 Apr 2017 19:28:46 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1a.eu.mailhop.org (outbound1a.eu.mailhop.org [52.58.109.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 26BC7CC0 for ; Tue, 18 Apr 2017 19:28:45 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: 39d10ecf-246d-11e7-b96e-2378c10e3beb X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound1.eu.mailhop.org (Halon) with ESMTPSA id 39d10ecf-246d-11e7-b96e-2378c10e3beb; Tue, 18 Apr 2017 19:28:41 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id v3IJSaA4009361; Tue, 18 Apr 2017 13:28:36 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1492543716.96207.42.camel@freebsd.org> Subject: Re: svn commit: r317097 - in head/sys/boot: common efi/libefi i386/libi386 mips/beri/loader powerpc/ps3 uboot/lib usb/storage userboot/userboot From: Ian Lepore To: Ed Maste Cc: Toomas Soome , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Date: Tue, 18 Apr 2017 13:28:36 -0600 In-Reply-To: References: <201704181807.v3II7sJ4023532@repo.freebsd.org> <1492539534.96207.33.camel@freebsd.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:28:46 -0000 On Tue, 2017-04-18 at 15:15 -0400, Ed Maste wrote: > On 18 April 2017 at 14:18, Ian Lepore wrote: > > > > > > Now the boot fails on arm with: > > > > Found U-Boot device: disk > >   Checking unit=0 slice= partition=...disk0: real size > > != size > Hrmph. My BeagleBone Black booted with this change (and D10421). I > built ubldr.bin with the changes, and copied it to the 20170413 > BEAGLEBONE snapshot image. > Yep, adding D10421 fixes it for me too. -- Ian From owner-svn-src-all@freebsd.org Tue Apr 18 19:31:55 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 092F7D427D6 for ; Tue, 18 Apr 2017 19:31:55 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x236.google.com (mail-it0-x236.google.com [IPv6:2607:f8b0:4001:c0b::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C6D08F37 for ; Tue, 18 Apr 2017 19:31:54 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x236.google.com with SMTP id a140so1059887ita.0 for ; Tue, 18 Apr 2017 12:31:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=dBG2HVQIhaB/OYwdkfY7z4N+52GdfizX0COHF9r07Mk=; b=diP2UE93u0l31TGaFlU1XYnpQ+mo0cuUH8rc3lmx929LOM7I1tTZ8Om1yVAVs6UyTV IuMmY2c7qIT02TjetVwVyH3u2ygRuKOM/4eTOEyG4zRAwh34sPNp3apOVt7RG75tOBfm kDv+Bv+RoycRPOI4T901EE4CAGNt84xz4IPm8fZsLyO1Clx13/46F7A+/tj2riYjTrSu pK5F8txTSDNmXrfpZNFSMPtn06EDVPqi/OP01Et/qOnlmimShTTSekVgHemQI3tPNY2e GMcPD77nkNrRORcDh/Ukx4zz5veNxYC+Uli8e8iTXa4Ho3/hBlZYOcESKZaWyw8W16c+ AvXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=dBG2HVQIhaB/OYwdkfY7z4N+52GdfizX0COHF9r07Mk=; b=DRSOWCHbZloWoyIpsr+W7tNqC52M9latks4uNr95L8UwgXTMmcf0MBaUbV8w59apvY Fg1eIxzvKExP4I9waeWYqhl3/mAXsthv5ZmDH0qyVCHyBt5UpwIIwSCvmXuAdqYhdMiD pZQxpZxnF/yKiDVS8hsZmCtxAON6+pijoYilLaxV65OoIJbj2wSuMrzVpGEJ0uWEpEys Mguan7jm0ciEaM/U8hXSEMCvuu3jCPVULHtqrxHZQ+3AzT0586+etd8Tj4ls2CEP5rHA En08twX6nKtraPAE5HFn3T+D3DnGGbVw09kl72j4wg7W8KQlfqA3ZIaaho+/4VcQlP8g lZ7Q== X-Gm-Message-State: AN3rC/6c1mTCLP+ybCS5N4zEOmpNjO2IARw+1JonPMcy3/KvLlz23zE5 KJigYjJiwwmxcdM0+QeG0Oxmd8Vsnw== X-Received: by 10.36.31.200 with SMTP id d191mr15375104itd.85.1492543913942; Tue, 18 Apr 2017 12:31:53 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.146.69 with HTTP; Tue, 18 Apr 2017 12:31:53 -0700 (PDT) X-Originating-IP: [2607:fb10:7021:1::fb3e] In-Reply-To: References: <201610312309.u9VN9qGk027956@repo.freebsd.org> From: Warner Losh Date: Tue, 18 Apr 2017 13:31:53 -0600 X-Google-Sender-Auth: 9Ju4leGsU1RYOi9HJB1pb9r5I1I Message-ID: Subject: Re: svn commit: r308155 - in head/sys: amd64/conf cam cam/scsi conf dev/mps geom geom/part kern sys vm To: "Conrad E. Meyer" Cc: Alan Somers , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:31:55 -0000 On Tue, Apr 18, 2017 at 1:15 PM, Conrad Meyer wrote: > Hi Alan, > > On Tue, Apr 18, 2017 at 12:02 PM, Alan Somers wrote: >> This change is causing panics when I try to create a zpool on an SSD. >> >> ... (reordered slightly) >> >> The >> offending line is the biotrack call in scsi_da.c at line 4172; bp is >> apparently null. Could you please review this change and ensure that >> biotrack is appropriately guarded? > > If it is valid for bp to be NULL in that path, then of course a NULL > guard needs to be added. > > I'm a little confused on why or if it is valid for bp to be NULL in > that path. You are the only one who has reported this since October > of last year. Is it possible some other issue is now resulting in a > NULL bp? > >> The SSD is obviously having problems; it fails UNMAP commands with >> ILLEGAL REQUEST, and then fails WRITE SAME with a timeout. > > Well, that could definitely explain a weird error case. Still, > shouldn't the CCB keep the bp associated through CCB completion? The NULL test is needed. We keep a list of TRIM BIOs that we collapse down into one CCB. We'll have already completed it and set bp to NULL in that case, so we need to test at the end of the loop to see if bp is NULL or not. We only have to collapse TRIMs occasionally, which may explain the rarity of the crash. Warner From owner-svn-src-all@freebsd.org Tue Apr 18 19:36:59 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DD5ED42AC0; Tue, 18 Apr 2017 19:36: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 mx1.freebsd.org (Postfix) with ESMTPS id 5FA2C159C; Tue, 18 Apr 2017 19:36: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 v3IJawO2060672; Tue, 18 Apr 2017 19:36:58 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IJawY6060671; Tue, 18 Apr 2017 19:36:58 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <201704181936.v3IJawY6060671@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Tue, 18 Apr 2017 19:36:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317099 - head/sys/boot/uboot/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:36:59 -0000 Author: tsoome Date: Tue Apr 18 19:36:58 2017 New Revision: 317099 URL: https://svnweb.freebsd.org/changeset/base/317099 Log: loader: uboot disk ioctl should call disk_ioctl As the uboot disk interface is using common/disk.c API, we also should use disk_ioctl() call, this will give us chance to read partition sizes and have feature parity with UEFI and BIOS implementations. This does also fix arm boot issue on some systems, reported/tested by Ian, thanks. Reported by: ian Reviewed by: ian Differential Revision: https://reviews.freebsd.org/D10421 Modified: head/sys/boot/uboot/lib/disk.c Modified: head/sys/boot/uboot/lib/disk.c ============================================================================== --- head/sys/boot/uboot/lib/disk.c Tue Apr 18 19:15:06 2017 (r317098) +++ head/sys/boot/uboot/lib/disk.c Tue Apr 18 19:36:58 2017 (r317099) @@ -275,8 +275,13 @@ static int stor_ioctl(struct open_file *f, u_long cmd, void *data) { struct disk_devdesc *dev; + int rc; dev = (struct disk_devdesc *)f->f_devdata; + rc = disk_ioctl(dev, cmd, data); + if (rc != ENOTTY) + return (rc); + switch (cmd) { case DIOCGSECTORSIZE: *(u_int *)data = SI(dev).bsize; From owner-svn-src-all@freebsd.org Tue Apr 18 19:44:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81C74D444A6; Tue, 18 Apr 2017 19:44:35 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 525561246; Tue, 18 Apr 2017 19:44:35 +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 v3IJiYsV066884; Tue, 18 Apr 2017 19:44:34 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IJiYEN066883; Tue, 18 Apr 2017 19:44:34 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201704181944.v3IJiYEN066883@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 18 Apr 2017 19:44:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317100 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:44:35 -0000 Author: gjb Date: Tue Apr 18 19:44:34 2017 New Revision: 317100 URL: https://svnweb.freebsd.org/changeset/base/317100 Log: Use relative symlink for 'latest' to allow repo to work after being moved. Submitted by: woodsb02 MFC after: 3 days PR: 217197 Sponsored by: The FreeBSD Foundation Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Tue Apr 18 19:36:58 2017 (r317099) +++ head/Makefile.inc1 Tue Apr 18 19:44:34 2017 (r317100) @@ -1522,8 +1522,8 @@ sign-packages: _pkgbootstrap .PHONY -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ ${PKGSIGNKEY} ; \ - ln -s ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ - ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest + cd ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI); \ + ln -s ${PKG_VERSION} latest # # From owner-svn-src-all@freebsd.org Tue Apr 18 19:54:05 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7529BD448AA; Tue, 18 Apr 2017 19:54:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C17F1AC1; Tue, 18 Apr 2017 19:54:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IJs4l1070887; Tue, 18 Apr 2017 19:54:04 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IJs49I070886; Tue, 18 Apr 2017 19:54:04 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201704181954.v3IJs49I070886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 18 Apr 2017 19:54:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317101 - head/share/man/man5 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:54:05 -0000 Author: jhb Date: Tue Apr 18 19:54:04 2017 New Revision: 317101 URL: https://svnweb.freebsd.org/changeset/base/317101 Log: Regenerate to note that GDB is now off by default on most platforms. Note that this commit also adds the default riscv settings for all options since riscv was added to 'make targets' since the last time this was generated. Reminded by: emaste Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Tue Apr 18 19:44:34 2017 (r317100) +++ head/share/man/man5/src.conf.5 Tue Apr 18 19:54:04 2017 (r317101) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" $FreeBSD$ -.Dd April 10, 2017 +.Dd April 18, 2017 .Dt SRC.CONF 5 .Os .Sh NAME @@ -150,7 +150,7 @@ of the normal system build. The resulting system cannot build programs from source. .Pp This is a default setting on -arm64/aarch64. +arm64/aarch64, riscv/riscv64 and riscv/riscv64sf. When set, it enforces these options: .Pp .Bl -item -compact @@ -172,7 +172,7 @@ toolchain is provided. .Ef .Pp This is a default setting on -arm64/aarch64. +arm64/aarch64, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_BINUTILS_BOOTSTRAP Set build binutils (as, ld, objcopy and objdump) as part of the bootstrap process. @@ -302,7 +302,7 @@ When set, it enforces these options: Set to not build the Clang C/C++ compiler during the regular phase of the build. .Pp This is a default setting on -sparc64/sparc64. +riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. When set, it enforces these options: .Pp .Bl -item -compact @@ -323,7 +323,7 @@ To be able to build the system, either g enabled unless an alternate compiler is provided via XCC. .Pp This is a default setting on -mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_CLANG_BOOTSTRAP Set to build the Clang C/C++ compiler during the bootstrap phase of the build. .Pp @@ -336,7 +336,7 @@ Set to avoid building the ARCMigrate, Re the Clang C/C++ compiler. .Pp This is a default setting on -sparc64/sparc64. +riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_CLANG_FULL Set to build the ARCMigrate, Rewriter and StaticAnalyzer components of the Clang C/C++ compiler. @@ -351,7 +351,7 @@ and .Pa /usr/bin/cpp . .Pp This is a default setting on -mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_CLANG_IS_CC Set to install the Clang C/C++ compiler as .Pa /usr/bin/cc , @@ -427,7 +427,7 @@ Set to not build .Xr cxgbetool 8 .Pp This is a default setting on -arm/arm, arm/armeb, arm/armv6, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc and powerpc/powerpcspe. +arm/arm, arm/armeb, arm/armv6, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpcspe, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_CXGBETOOL Set to build .Xr cxgbetool 8 @@ -442,6 +442,9 @@ It will also prevent building of .Xr gperf 1 and .Xr devd 8 . +.Pp +This is a default setting on +riscv/riscv64 and riscv/riscv64sf. When set, it enforces these options: .Pp .Bl -item -compact @@ -598,7 +601,7 @@ and .Xr efivar 8 . .Pp This is a default setting on -mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_EFI Set to build .Xr efivar 3 @@ -662,7 +665,7 @@ Set to not build games. Set to not build and install gcc and g++ as part of the normal build process. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64 and i386/i386. +amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_GCC Set to build and install gcc and g++. .Pp @@ -675,7 +678,7 @@ unless an alternative compiler is provid XCC. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64 and i386/i386. +amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_GCC_BOOTSTRAP Set to build gcc and g++ as part of the bootstrap process. .Pp @@ -690,13 +693,13 @@ Set to not build .Xr gdb 1 . .Pp This is a default setting on -arm64/aarch64. +amd64/amd64, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_GDB Set to build .Xr gdb 1 . .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +arm/arm, arm/armeb, arm/armv6 and sparc64/sparc64. .It Va WITHOUT_GNU Set to not build contributed GNU software as a part of the base system. This option can be useful if the system built must not contain any code @@ -715,7 +718,7 @@ Do not build the GNU C++ stack (g++, lib This is the default on platforms where clang is the system compiler. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64 and i386/i386. +amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_GNUCXX Build the GNU C++ stack (g++, libstdc++). This is the default on platforms where gcc is the system compiler. @@ -749,6 +752,9 @@ and .Xr vgrind 1 . You should consider installing the textproc/groff port to not break .Xr man 1 . +.Pp +This is a default setting on +riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_GSSAPI Set to not build libgssapi. .It Va WITHOUT_HAST @@ -930,7 +936,7 @@ library. Set to not build LLVM's lld linker. .Pp This is a default setting on -mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. When set, it enforces these options: .Pp .Bl -item -compact @@ -946,7 +952,7 @@ amd64/amd64, arm/arm, arm/armeb, arm/arm Set to not build the LLDB debugger. .Pp This is a default setting on -arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_LLDB Set to build the LLDB debugger. .Pp @@ -959,7 +965,7 @@ To be able to build the system, either B enabled unless an alternate linker is provided via XLD. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +amd64/amd64, arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_LLD_BOOTSTRAP Set to build the LLD linker during the bootstrap phase of the build. .Pp @@ -969,7 +975,7 @@ arm64/aarch64. Set to use GNU binutils ld as the system linker, instead of LLVM's LLD. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +amd64/amd64, arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_LLD_IS_LD Set to use LLVM's LLD as the system linker, instead of GNU binutils ld. .Pp @@ -992,7 +998,7 @@ arm/arm, arm/armeb, arm/armv6, mips/mips Set to use LLVM's libunwind stack unwinder (instead of GCC's unwinder). .Pp This is a default setting on -amd64/amd64, arm64/aarch64 and i386/i386. +amd64/amd64, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_LOCALES Set to not build localization files; see .Xr locale 1 . @@ -1232,6 +1238,9 @@ Set to not build and related programs. .It Va WITHOUT_PROFILE Set to avoid compiling profiled libraries. +.Pp +This is a default setting on +riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_QUOTAS Set to not build .Xr quota 1 @@ -1319,7 +1328,7 @@ mips/mipsel, mips/mips, mips/mips64el, m Set to build world with propolice stack smashing protection. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_STAGING Enable staging of files to a stage tree. This can be best thought of as auto-install to @@ -1403,7 +1412,7 @@ and options control those. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +amd64/amd64, arm/arm, arm/armeb, arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITHOUT_TALK Set to not build or install .Xr talk 1 @@ -1431,6 +1440,9 @@ See .Xr tests 7 for more details. This also disables the build of all test-related dependencies, including ATF. +.Pp +This is a default setting on +riscv/riscv64 and riscv/riscv64sf. When set, it enforces these options: .Pp .Bl -item -compact @@ -1441,6 +1453,9 @@ When set, it enforces these options: .El .It Va WITHOUT_TESTS_SUPPORT Set to disables the build of all test-related dependencies, including ATF. +.Pp +This is a default setting on +riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_TEXTPROC Set to not build programs used for text processing. From owner-svn-src-all@freebsd.org Tue Apr 18 19:58:37 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 31013D44C89; Tue, 18 Apr 2017 19:58:37 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-yb0-x233.google.com (mail-yb0-x233.google.com [IPv6:2607:f8b0:4002:c09::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E2A1A1FB4; Tue, 18 Apr 2017 19:58:36 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-yb0-x233.google.com with SMTP id s22so898552ybe.3; Tue, 18 Apr 2017 12:58:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=lpknUgpP3l6FQMxhyRaZMtujjwHEuPDoItk497Exv9c=; b=aFD6fEWYs50J05Pr+z6V0sm3nsS93zfx0Y/s9BAcEU+rmLrgETpgvs9+lhjrZxVfgz poadnFbLs7GOKCiFttzCJbjm0pccGhj9KlQY6QED3ittdR+tOi+F0B11S3q74n4eTBGf uEfkARO12f7uJMHHWp6t5M0MIOiCq+ViccseJk2HXQuTF7wyS1u5QufnXDfvhuLgbNdZ GvnbWUfgi53RvtuKiew1D5/frlBtkrMZXKwox9bj+082Ki10nQY6FkHhlHcNTSAKfFnR A54SJhukpLKEk10ivLD54kaqagsX61iFP4WGr8BinRYqvNR58L6e09gmmYDZh6OlX6Fw Z3AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=lpknUgpP3l6FQMxhyRaZMtujjwHEuPDoItk497Exv9c=; b=jli8d+IwsPm2QAtNNlT9ssWnioIy2xLho+F5AMUpH+oge7vCyk8bU9bMtFlEsTH2kH z1gT+AIuoH6VkEfH17QBXrfJaY84yRKwXGYZLyM4bC9SOekoPSW99W3UAbRVQfLnFL4k RdLHxmCzYI7tB6iJr1c6Fdlw78d89jeo/wEC4bZiInCrlhP8o+nFjkj65UzjqgzNPCfO gf/kEJNZl+ld8vz9YRECsCEbNjV2pAdI+21jbyRvK22afVh6Gt5E38XfN9KgedtLxAEG Oy7JTiZr+y+FTicUrlTGQGRyOvC9jqC78K65ErpviexAmztDVa4vuv6+mR1MYMCyouix 31lA== X-Gm-Message-State: AN3rC/5j9UVi9vz6lmZ4QOYhyZOSUHGlxW//bGJfDcbMTPnX2Avv2oPT Q7AAQvJSoGdxUvi66kXJvD8edz6KXg== X-Received: by 10.37.234.72 with SMTP id o8mr20128670ybe.34.1492545515777; Tue, 18 Apr 2017 12:58:35 -0700 (PDT) MIME-Version: 1.0 Sender: asomers@gmail.com Received: by 10.129.20.214 with HTTP; Tue, 18 Apr 2017 12:58:35 -0700 (PDT) In-Reply-To: <201704171734.v3HHYlf5022945@repo.freebsd.org> References: <201704171734.v3HHYlf5022945@repo.freebsd.org> From: Alan Somers Date: Tue, 18 Apr 2017 13:58:35 -0600 X-Google-Sender-Auth: Lx3jDKG8zQPwIAM5U5c8b-EjZvM Message-ID: Subject: Re: svn commit: r317061 - in head: libexec/rpc.rstatd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/arm64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linprocfs... To: Gleb Smirnoff Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 19:58:37 -0000 On Mon, Apr 17, 2017 at 11:34 AM, Gleb Smirnoff wrote: > Author: glebius > Date: Mon Apr 17 17:34:47 2017 > New Revision: 317061 > URL: https://svnweb.freebsd.org/changeset/base/317061 > > Log: > - Remove 'struct vmmeter' from 'struct pcpu', leaving only global vmmeter > in place. To do per-cpu stats, convert all fields that previously were > maintained in the vmmeters that sit in pcpus to counter(9). > - Since some vmmeter stats may be touched at very early stages of boot, > before we have set up UMA and we can do counter_u64_alloc(), provide an > early counter mechanism: > o Leave one spare uint64_t in struct pcpu, named pc_early_dummy_counter. > o Point counter(9) fields of vmmeter to pcpu[0].pc_early_dummy_counter, > so that at early stages of boot, before counters are allocated we already > point to a counter that can be safely written to. > o For sparc64 that required a whole dummy pcpu[MAXCPU] array. > > Further related changes: > - Don't include vmmeter.h into pcpu.h. > - vm.stats.vm.v_swappgsout and vm.stats.vm.v_swappgsin changed to 64-bit, > to match kernel representation. > - struct vmmeter hidden under _KERNEL, and only vmstat(1) is an exclusion. > > This is based on benno@'s 4-year old patch: > https://lists.freebsd.org/pipermail/freebsd-arch/2013-July/014471.html > > Reviewed by: kib, gallatin, marius, lidl > Differential Revision: https://reviews.freebsd.org/D10156 > > Modified: > head/libexec/rpc.rstatd/rstat_proc.c > head/sys/amd64/amd64/trap.c > head/sys/amd64/include/atomic.h > head/sys/amd64/include/counter.h > head/sys/amd64/include/pcpu.h > head/sys/arm/arm/intr.c > head/sys/arm/arm/trap-v4.c > head/sys/arm/arm/trap-v6.c > head/sys/arm/arm/undefined.c > head/sys/arm/include/counter.h > head/sys/arm/include/pcpu.h > head/sys/arm64/include/counter.h > head/sys/arm64/include/pcpu.h > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c > head/sys/compat/linprocfs/linprocfs.c > head/sys/fs/fuse/fuse_vnops.c > head/sys/fs/nfsclient/nfs_clbio.c > head/sys/fs/smbfs/smbfs_io.c > head/sys/i386/i386/trap.c > head/sys/i386/include/atomic.h > head/sys/i386/include/counter.h > head/sys/i386/include/pcpu.h > head/sys/kern/kern_fork.c > head/sys/kern/kern_intr.c > head/sys/kern/kern_synch.c > head/sys/kern/kern_thread.c > head/sys/kern/subr_intr.c > head/sys/kern/subr_syscall.c > head/sys/kern/subr_trap.c > head/sys/kern/vfs_bio.c > head/sys/mips/include/counter.h > head/sys/mips/include/intr_machdep.h > head/sys/mips/include/pcpu.h > head/sys/powerpc/include/counter.h > head/sys/powerpc/include/pcpu.h > head/sys/powerpc/powerpc/trap.c > head/sys/sparc64/include/counter.h > head/sys/sparc64/include/pcpu.h > head/sys/sparc64/sparc64/exception.S > head/sys/sparc64/sparc64/genassym.c > head/sys/sparc64/sparc64/intr_machdep.c > head/sys/sparc64/sparc64/machdep.c > head/sys/sparc64/sparc64/trap.c > head/sys/sys/pcpu.h > head/sys/sys/vmmeter.h > head/sys/vm/swap_pager.c > head/sys/vm/vm_fault.c > head/sys/vm/vm_meter.c > head/sys/vm/vm_object.c > head/sys/vm/vm_page.c > head/sys/vm/vm_pageout.c > head/sys/vm/vnode_pager.c > head/sys/x86/acpica/srat.c > head/sys/x86/x86/intr_machdep.c > head/usr.bin/top/machine.c > head/usr.bin/vmstat/vmstat.c This change broke backwards compatibility with old top binaries. When I use a kernel at version 317094 but a top from 14-April, I get the error "top: sysctl(vm.stats.vm.v_swappgsin...) failed: Cannot allocate memory". I get the same error when running top from an 11.0-RELEASE jail. Can you please add backward compatibility shims? -Alan From owner-svn-src-all@freebsd.org Tue Apr 18 20:05:52 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59BA8D44099; Tue, 18 Apr 2017 20:05:52 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2A698811; Tue, 18 Apr 2017 20:05:52 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=Content-transfer-encoding:Content-type:Mime-version:In-Reply-To: References:Message-ID:CC:To:From:Subject:Date:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=VMs5fDnENkFwCREX8o86ZcmQ+GZ9JYY9oE5uvo5xys0=; b=HXM5E+BqYuWMlgPbSrsIvZz7ao pMnatnenQwAjrCrl52Up7bdagDQQDMAUrOzpHj80T1DLqGYetx0pCLOMSfIaGsqjlWUs2Eq4yVsEH 0/ShZJNyLooEl/vyUASaIoUpaTTv0tg+QdZQlsCQo9gOA8IrvhbO9y7mdPNFyilxbRKw=; Received: from [198.61.62.18] (port=1418 helo=[10.11.226.101]) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89 (FreeBSD)) (envelope-from ) id 1d0ZNn-000Gem-3M; Tue, 18 Apr 2017 15:05:51 -0500 User-Agent: Microsoft-MacOutlook/f.21.0.170409 Date: Tue, 18 Apr 2017 15:05:17 -0500 Subject: Re: svn commit: r317061 - in head: libexec/rpc.rstatd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/arm64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linprocfs... From: Larry Rosenman To: Alan Somers , Gleb Smirnoff CC: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Message-ID: Thread-Topic: svn commit: r317061 - in head: libexec/rpc.rstatd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/arm64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linprocfs... References: <201704171734.v3HHYlf5022945@repo.freebsd.org> In-Reply-To: Mime-version: 1.0 Content-type: text/plain; charset="UTF-8" Content-transfer-encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 20:05:52 -0000 On 4/18/17, 2:58 PM, "Alan Somers" wrote: On Mon, Apr 17, 2017 at 11:34 AM, Gleb Smirnoff wrote: > Author: glebius > Date: Mon Apr 17 17:34:47 2017 > New Revision: 317061 > URL: https://svnweb.freebsd.org/changeset/base/317061 > > Log: > - Remove 'struct vmmeter' from 'struct pcpu', leaving only global vmmeter > in place. To do per-cpu stats, convert all fields that previously were > maintained in the vmmeters that sit in pcpus to counter(9). > - Since some vmmeter stats may be touched at very early stages of boot, > before we have set up UMA and we can do counter_u64_alloc(), provide an > early counter mechanism: > o Leave one spare uint64_t in struct pcpu, named pc_early_dummy_counter. > o Point counter(9) fields of vmmeter to pcpu[0].pc_early_dummy_counter, > so that at early stages of boot, before counters are allocated we already > point to a counter that can be safely written to. > o For sparc64 that required a whole dummy pcpu[MAXCPU] array. > > Further related changes: > - Don't include vmmeter.h into pcpu.h. > - vm.stats.vm.v_swappgsout and vm.stats.vm.v_swappgsin changed to 64-bit, > to match kernel representation. > - struct vmmeter hidden under _KERNEL, and only vmstat(1) is an exclusion. > > This is based on benno@'s 4-year old patch: > https://lists.freebsd.org/pipermail/freebsd-arch/2013-July/014471.html > > Reviewed by: kib, gallatin, marius, lidl > Differential Revision: https://reviews.freebsd.org/D10156 > This change broke backwards compatibility with old top binaries. When I use a kernel at version 317094 but a top from 14-April, I get the error "top: sysctl(vm.stats.vm.v_swappgsin...) failed: Cannot allocate memory". I get the same error when running top from an 11.0-RELEASE jail. Can you please add backward compatibility shims? -Alan It also broke emulators/virtualbox-ose-kmod From owner-svn-src-all@freebsd.org Tue Apr 18 20:07:24 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6254BD442AA; Tue, 18 Apr 2017 20:07:24 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 27F0FA2E; Tue, 18 Apr 2017 20:07:23 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IK7Mlo075156; Tue, 18 Apr 2017 20:07:22 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IK7Mq7075155; Tue, 18 Apr 2017 20:07:22 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201704182007.v3IK7Mq7075155@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 18 Apr 2017 20:07:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317102 - head/sys/netpfil/pf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 20:07:24 -0000 Author: kp Date: Tue Apr 18 20:07:21 2017 New Revision: 317102 URL: https://svnweb.freebsd.org/changeset/base/317102 Log: pf: Also clear limit counters The "pfctl -F info" command didn't clear the limit counters ( as shown in the "pfctl -vsi" output). Submitted by: Max Modified: head/sys/netpfil/pf/pf_ioctl.c Modified: head/sys/netpfil/pf/pf_ioctl.c ============================================================================== --- head/sys/netpfil/pf/pf_ioctl.c Tue Apr 18 19:54:04 2017 (r317101) +++ head/sys/netpfil/pf/pf_ioctl.c Tue Apr 18 20:07:21 2017 (r317102) @@ -1852,6 +1852,8 @@ DIOCGETSTATES_full: counter_u64_zero(V_pf_status.fcounters[i]); for (int i = 0; i < SCNT_MAX; i++) counter_u64_zero(V_pf_status.scounters[i]); + for (int i = 0; i < LCNT_MAX; i++) + counter_u64_zero(V_pf_status.lcounters[i]); V_pf_status.since = time_second; if (*V_pf_status.ifname) pfi_update_status(V_pf_status.ifname, NULL); From owner-svn-src-all@freebsd.org Tue Apr 18 20:10:51 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBDE2D444EC; Tue, 18 Apr 2017 20:10:51 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) by mx1.freebsd.org (Postfix) with ESMTP id 045BBC95; Tue, 18 Apr 2017 20:10:50 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r317061 - in head: libexec/rpc.rstatd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/arm64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linprocfs... To: Larry Rosenman , Alan Somers , Gleb Smirnoff Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" References: <201704171734.v3HHYlf5022945@repo.freebsd.org> From: Jung-uk Kim Message-ID: Date: Tue, 18 Apr 2017 16:10:45 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="qAedvP919HHrE21Rbe7xcsRUUWgCqpORB" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 20:10:52 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --qAedvP919HHrE21Rbe7xcsRUUWgCqpORB Content-Type: multipart/mixed; boundary="uXAjQ36dFWv0KCKdvQmrTdt09c1v2uqFt"; protected-headers="v1" From: Jung-uk Kim To: Larry Rosenman , Alan Somers , Gleb Smirnoff Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Message-ID: Subject: Re: svn commit: r317061 - in head: libexec/rpc.rstatd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/arm64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linprocfs... References: <201704171734.v3HHYlf5022945@repo.freebsd.org> In-Reply-To: --uXAjQ36dFWv0KCKdvQmrTdt09c1v2uqFt Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: quoted-printable On 04/18/2017 16:05, Larry Rosenman wrote: > On 4/18/17, 2:58 PM, "Alan Somers" wrote: >=20 > On Mon, Apr 17, 2017 at 11:34 AM, Gleb Smirnoff wrote: > > Author: glebius > > Date: Mon Apr 17 17:34:47 2017 > > New Revision: 317061 > > URL: https://svnweb.freebsd.org/changeset/base/317061 > > > > Log: > > - Remove 'struct vmmeter' from 'struct pcpu', leaving only glob= al vmmeter > > in place. To do per-cpu stats, convert all fields that previ= ously were > > maintained in the vmmeters that sit in pcpus to counter(9). > > - Since some vmmeter stats may be touched at very early stages = of boot, > > before we have set up UMA and we can do counter_u64_alloc(), = provide an > > early counter mechanism: > > o Leave one spare uint64_t in struct pcpu, named pc_early_dum= my_counter. > > o Point counter(9) fields of vmmeter to pcpu[0].pc_early_dumm= y_counter, > > so that at early stages of boot, before counters are alloca= ted we already > > point to a counter that can be safely written to. > > o For sparc64 that required a whole dummy pcpu[MAXCPU] array.= > > > > Further related changes: > > - Don't include vmmeter.h into pcpu.h. > > - vm.stats.vm.v_swappgsout and vm.stats.vm.v_swappgsin changed = to 64-bit, > > to match kernel representation. > > - struct vmmeter hidden under _KERNEL, and only vmstat(1) is an= exclusion. > > > > This is based on benno@'s 4-year old patch: > > https://lists.freebsd.org/pipermail/freebsd-arch/2013-July/0144= 71.html > > > > Reviewed by: kib, gallatin, marius, lidl > > Differential Revision: https://reviews.freebsd.org/D1015= 6 > > > This change broke backwards compatibility with old top binaries. When > I use a kernel at version 317094 but a top from 14-April, I get the= > error "top: sysctl(vm.stats.vm.v_swappgsin...) failed: Cannot alloc= ate > memory". I get the same error when running top from an 11.0-RELEAS= E > jail. Can you please add backward compatibility shims? > =20 > -Alan > It also broke emulators/virtualbox-ose-kmod True but it is not a big deal. A patch will be committed with VirtualBox 5.1.20 soon. Jung-uk Kim --uXAjQ36dFWv0KCKdvQmrTdt09c1v2uqFt-- --qAedvP919HHrE21Rbe7xcsRUUWgCqpORB Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEl1bqgKaRyqfWXu/CfJ+WJvzb8UYFAlj2csoACgkQfJ+WJvzb 8UY3/Af8C7KB2038a0aFtZtpjXLFayP2TCXxYyqhgsld2HubTr47xSH5tDpJabS6 KVgXqfbcp/sibIgTq/m+AXUAZ9m2ntjToGI+7H7NsuCTTY4yzH+Arc2Z1RGRlfox rmH5QIreEZRh26ykeQ4Ee9u1tn/sMdrmL4KydN4fR4V3L7rm4Rx11ZUjBksCn6+d jU/zHovGs6KPE+zTj6tO0wrgRCu6KXvI0GlYRtJ5UH6xytnOgEdWRngSGSUIg8BW vWSb+DPN8NsrwhRdXq7PhupwmizKv/TBYKeppLHWbW778OAUx5HTRoaftmg15e0R OUKezAFFvy0F4+ZQzlYmmx2624CY/A== =36S3 -----END PGP SIGNATURE----- --qAedvP919HHrE21Rbe7xcsRUUWgCqpORB-- From owner-svn-src-all@freebsd.org Tue Apr 18 21:05:06 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F94BD44576; Tue, 18 Apr 2017 21:05:06 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4FFD3C7; Tue, 18 Apr 2017 21:05:06 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3IL55GH099546; Tue, 18 Apr 2017 21:05:05 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3IL559C099545; Tue, 18 Apr 2017 21:05:05 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201704182105.v3IL559C099545@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Tue, 18 Apr 2017 21:05:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317104 - head/sys/cam/scsi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 21:05:06 -0000 Author: cem Date: Tue Apr 18 21:05:05 2017 New Revision: 317104 URL: https://svnweb.freebsd.org/changeset/base/317104 Log: da(4): Fix a TRIM regression introduced in r308155 According to Warner, multiple TRIM BIOs are collapsed into a single CCB with NULL bp. It is invalid to biotrack() NULL, and results in a fault. So, don't do that. Reported by: asomers@ Sponsored by: Dell EMC Isilon Modified: head/sys/cam/scsi/scsi_da.c Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Tue Apr 18 20:31:02 2017 (r317103) +++ head/sys/cam/scsi/scsi_da.c Tue Apr 18 21:05:05 2017 (r317104) @@ -4169,7 +4169,8 @@ dadone(struct cam_periph *periph, union } } - biotrack(bp, __func__); + if (bp != NULL) + biotrack(bp, __func__); LIST_REMOVE(&done_ccb->ccb_h, periph_links.le); if (LIST_EMPTY(&softc->pending_ccbs)) softc->flags |= DA_FLAG_WAS_OTAG; From owner-svn-src-all@freebsd.org Tue Apr 18 22:19:46 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E39A8D4408F; Tue, 18 Apr 2017 22:19:46 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C3D6C1051; Tue, 18 Apr 2017 22:19:46 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 1E17410A82D; Tue, 18 Apr 2017 18:19:45 -0400 (EDT) From: John Baldwin To: Slawa Olhovchenkov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317094 - head/share/mk Date: Tue, 18 Apr 2017 12:45:25 -0700 Message-ID: <8690993.EKcl9tcFpB@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <20170418163013.GB83631@zxy.spb.ru> References: <201704181627.v3IGRmNN082877@repo.freebsd.org> <20170418163013.GB83631@zxy.spb.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Tue, 18 Apr 2017 18:19:45 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 22:19:47 -0000 On Tuesday, April 18, 2017 07:30:13 PM Slawa Olhovchenkov wrote: > On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: > > > Author: jhb > > Date: Tue Apr 18 16:27:48 2017 > > New Revision: 317094 > > URL: https://svnweb.freebsd.org/changeset/base/317094 > > > > Log: > > Disable in-tree GDB by default on x86, mips, and powerpc. > > > > GDB in ports contains all of the functionality as GDB in base > > (including kgdb) for these platforms along with additional > > functionality. In-tree GDB remains enabled on ARM and sparc64. > > GDB in ports does not currently support kernel debugging on arm, > > and ports GDB for sparc64 has not been tested (though it does > > include sparc64 support). > > > > Reviewed by: bdrewery, emaste, imp > > Relnotes: yes > > Sponsored by: DARPA / AFRL > > Differential Revision: https://reviews.freebsd.org/D10399 > > Generating core.txt now complety broken? No. crashinfo has supported gdb from ports for quite a while now. If you 'pkg install gdb' crashinfo defaults to using the ports gdb over the base one already. -- John Baldwin From owner-svn-src-all@freebsd.org Tue Apr 18 22:28:40 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15B3ED44607; Tue, 18 Apr 2017 22:28:40 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CD532182B; Tue, 18 Apr 2017 22:28:39 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1d0bbx-000AZc-9j; Wed, 19 Apr 2017 01:28:37 +0300 Date: Wed, 19 Apr 2017 01:28:37 +0300 From: Slawa Olhovchenkov To: John Baldwin Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r317094 - head/share/mk Message-ID: <20170418222837.GC83631@zxy.spb.ru> References: <201704181627.v3IGRmNN082877@repo.freebsd.org> <20170418163013.GB83631@zxy.spb.ru> <8690993.EKcl9tcFpB@ralph.baldwin.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8690993.EKcl9tcFpB@ralph.baldwin.cx> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 22:28:40 -0000 On Tue, Apr 18, 2017 at 12:45:25PM -0700, John Baldwin wrote: > On Tuesday, April 18, 2017 07:30:13 PM Slawa Olhovchenkov wrote: > > On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: > > > > > Author: jhb > > > Date: Tue Apr 18 16:27:48 2017 > > > New Revision: 317094 > > > URL: https://svnweb.freebsd.org/changeset/base/317094 > > > > > > Log: > > > Disable in-tree GDB by default on x86, mips, and powerpc. > > > > > > GDB in ports contains all of the functionality as GDB in base > > > (including kgdb) for these platforms along with additional > > > functionality. In-tree GDB remains enabled on ARM and sparc64. > > > GDB in ports does not currently support kernel debugging on arm, > > > and ports GDB for sparc64 has not been tested (though it does > > > include sparc64 support). > > > > > > Reviewed by: bdrewery, emaste, imp > > > Relnotes: yes > > > Sponsored by: DARPA / AFRL > > > Differential Revision: https://reviews.freebsd.org/D10399 > > > > Generating core.txt now complety broken? > > No. crashinfo has supported gdb from ports for quite a while now. > If you 'pkg install gdb' crashinfo defaults to using the ports gdb over > the base one already. I am about clean install, w/o ports. Also, how to generate core.txt after crash, reboot and install gdb from ports? (port instaled after crash) From owner-svn-src-all@freebsd.org Tue Apr 18 23:59:17 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1F74ED45CB4; Tue, 18 Apr 2017 23:59:17 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E3F541F2; Tue, 18 Apr 2017 23:59:16 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3INxGcq070388; Tue, 18 Apr 2017 23:59:16 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3INxGQF070387; Tue, 18 Apr 2017 23:59:16 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201704182359.v3INxGQF070387@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Tue, 18 Apr 2017 23:59:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317106 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 23:59:17 -0000 Author: sjg Date: Tue Apr 18 23:59:15 2017 New Revision: 317106 URL: https://svnweb.freebsd.org/changeset/base/317106 Log: If MAKEOBJDIRPREFIX is a prefix match for .CURDIR, then __objdir is .CURDIR Reviewed by: bdrewery Modified: head/share/mk/auto.obj.mk Modified: head/share/mk/auto.obj.mk ============================================================================== --- head/share/mk/auto.obj.mk Tue Apr 18 21:21:31 2017 (r317105) +++ head/share/mk/auto.obj.mk Tue Apr 18 23:59:15 2017 (r317106) @@ -42,6 +42,10 @@ MKOBJDIRS= auto # Use __objdir here so it is easier to tweak without impacting # the logic. .if !empty(MAKEOBJDIRPREFIX) +.if ${.CURDIR:M${MAKEOBJDIRPREFIX}/*} != "" +# we are already in obj tree! +__objdir?= ${.CURDIR} +.endif __objdir?= ${MAKEOBJDIRPREFIX}${.CURDIR} .endif __objdir?= ${MAKEOBJDIR:Uobj} From owner-svn-src-all@freebsd.org Wed Apr 19 00:12:37 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A589D43138; Wed, 19 Apr 2017 00:12:37 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 17AFBD88; Wed, 19 Apr 2017 00:12:37 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (unknown [127.0.1.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id 35715138C; Wed, 19 Apr 2017 00:12:36 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 054935829; Wed, 19 Apr 2017 00:12:34 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id x0dxp3-OkY_D; Wed, 19 Apr 2017 00:12:31 +0000 (UTC) Subject: Re: svn commit: r317106 - head/share/mk DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com B8CE65824 To: "Simon J. Gerraty" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201704182359.v3INxGQF070387@repo.freebsd.org> From: Bryan Drewery Openpgp: id=F9173CB2C3AAEA7A5C8A1F0935D771BB6E4697CF; url=http://www.shatow.net/bryan/bryan2.asc Organization: FreeBSD Message-ID: Date: Tue, 18 Apr 2017 17:12:30 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <201704182359.v3INxGQF070387@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Kgt3bLkE2sqLfp9KaWr9vRgFWnRoWfOFl" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 00:12:37 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --Kgt3bLkE2sqLfp9KaWr9vRgFWnRoWfOFl Content-Type: multipart/mixed; boundary="loChCidBQ8BR4U1eqJtWgPMvJ4PuVxQpn"; protected-headers="v1" From: Bryan Drewery To: "Simon J. Gerraty" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r317106 - head/share/mk References: <201704182359.v3INxGQF070387@repo.freebsd.org> In-Reply-To: <201704182359.v3INxGQF070387@repo.freebsd.org> --loChCidBQ8BR4U1eqJtWgPMvJ4PuVxQpn Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 4/18/2017 4:59 PM, Simon J. Gerraty wrote: > Author: sjg > Date: Tue Apr 18 23:59:15 2017 > New Revision: 317106 > URL: https://svnweb.freebsd.org/changeset/base/317106 >=20 > Log: > If MAKEOBJDIRPREFIX is a prefix match for .CURDIR, then __objdir is .= CURDIR > =20 Thanks! --=20 Regards, Bryan Drewery --loChCidBQ8BR4U1eqJtWgPMvJ4PuVxQpn-- --Kgt3bLkE2sqLfp9KaWr9vRgFWnRoWfOFl Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJY9qtuAAoJEDXXcbtuRpfPFeYH/2uBVsQyTqgx4bAQ1f/PXO/d 6SOze1Lu6ufpN2qk4v5hjO6v7CaX1q6PaqbJMwfxVzHQwuw0qHUtPI258phXzfD2 GK/e1+QZBQOGBFVaCAS8o08ZA90PCmkLrJCu7RklCDjkUwfz58yHqI5Dm7b8l0VA rKVDhoN2w5DImcqH0Qz8rzGtJaMZsKaYIFz4mnY+ziJNCXZhDYHGHYvjBrzN4dvl SbY7vfxl/IVzQLVp4IwE/EaZEfam4xPvyHAZV216/g+kloDwhCL2LV3BELgKkVb0 SGgPdHNr2Fbmd1JP6gRO/9c9uXVnN2ycSWF2TAzOwY5/1KqjPcF0ed8eOD9dMsU= =huYQ -----END PGP SIGNATURE----- --Kgt3bLkE2sqLfp9KaWr9vRgFWnRoWfOFl-- From owner-svn-src-all@freebsd.org Wed Apr 19 02:39:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06A11D44CCB; Wed, 19 Apr 2017 02:39:50 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B00BAE7A; Wed, 19 Apr 2017 02:39:49 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J2dmA4034648; Wed, 19 Apr 2017 02:39:48 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J2dmcI034647; Wed, 19 Apr 2017 02:39:48 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201704190239.v3J2dmcI034647@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 19 Apr 2017 02:39:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317107 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 02:39:50 -0000 Author: sephe Date: Wed Apr 19 02:39:48 2017 New Revision: 317107 URL: https://svnweb.freebsd.org/changeset/base/317107 Log: hyperv: Use kmem_malloc for hypercall memory due to NX bit change. Reported by: dexuan@ MFC after: now Sponsored by: Microsoft Modified: head/sys/dev/hyperv/vmbus/hyperv.c Modified: head/sys/dev/hyperv/vmbus/hyperv.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hyperv.c Tue Apr 18 23:59:15 2017 (r317106) +++ head/sys/dev/hyperv/vmbus/hyperv.c Wed Apr 19 02:39:48 2017 (r317107) @@ -34,9 +34,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include +#include +#include +#include +#include + #include #include #include @@ -64,7 +70,7 @@ __FBSDID("$FreeBSD$"); struct hypercall_ctx { void *hc_addr; - struct hyperv_dma hc_dma; + vm_paddr_t hc_paddr; }; static u_int hyperv_get_timecount(struct timecounter *); @@ -255,8 +261,8 @@ SYSINIT(hyperv_initialize, SI_SUB_HYPERV static void hypercall_memfree(void) { - hyperv_dmamem_free(&hypercall_context.hc_dma, - hypercall_context.hc_addr); + kmem_free(kernel_arena, (vm_offset_t)hypercall_context.hc_addr, + PAGE_SIZE); hypercall_context.hc_addr = NULL; } @@ -268,14 +274,15 @@ hypercall_create(void *arg __unused) if (vm_guest != VM_GUEST_HV) return; - hypercall_context.hc_addr = hyperv_dmamem_alloc(NULL, PAGE_SIZE, 0, - PAGE_SIZE, &hypercall_context.hc_dma, BUS_DMA_WAITOK); - if (hypercall_context.hc_addr == NULL) { - printf("hyperv: Hypercall page allocation failed\n"); - /* Can't perform any Hyper-V specific actions */ - vm_guest = VM_GUEST_VM; - return; - } + /* + * NOTE: + * - busdma(9), i.e. hyperv_dmamem APIs, can _not_ be used due to + * the NX bit. + * - Assume kmem_malloc() returns properly aligned memory. + */ + hypercall_context.hc_addr = (void *)kmem_malloc(kernel_arena, PAGE_SIZE, + M_WAITOK); + hypercall_context.hc_paddr = vtophys(hypercall_context.hc_addr); /* Get the 'reserved' bits, which requires preservation. */ hc_orig = rdmsr(MSR_HV_HYPERCALL); @@ -285,7 +292,7 @@ hypercall_create(void *arg __unused) * * NOTE: 'reserved' bits MUST be preserved. */ - hc = ((hypercall_context.hc_dma.hv_paddr >> PAGE_SHIFT) << + hc = ((hypercall_context.hc_paddr >> PAGE_SHIFT) << MSR_HV_HYPERCALL_PGSHIFT) | (hc_orig & MSR_HV_HYPERCALL_RSVD_MASK) | MSR_HV_HYPERCALL_ENABLE; From owner-svn-src-all@freebsd.org Wed Apr 19 02:48:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7FBD4D450CB; Wed, 19 Apr 2017 02:48:39 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4120C6EC; Wed, 19 Apr 2017 02:48:39 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J2mctf038557; Wed, 19 Apr 2017 02:48:38 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J2mcvV038556; Wed, 19 Apr 2017 02:48:38 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201704190248.v3J2mcvV038556@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 19 Apr 2017 02:48:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317108 - stable/11/sys/dev/hyperv/vmbus X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 02:48:39 -0000 Author: sephe Date: Wed Apr 19 02:48:38 2017 New Revision: 317108 URL: https://svnweb.freebsd.org/changeset/base/317108 Log: MFC 317107 hyperv: Use kmem_malloc for hypercall memory due to NX bit change. Reported by: dexuan@ Sponsored by: Microsoft Modified: stable/11/sys/dev/hyperv/vmbus/hyperv.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/hyperv/vmbus/hyperv.c ============================================================================== --- stable/11/sys/dev/hyperv/vmbus/hyperv.c Wed Apr 19 02:39:48 2017 (r317107) +++ stable/11/sys/dev/hyperv/vmbus/hyperv.c Wed Apr 19 02:48:38 2017 (r317108) @@ -34,9 +34,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include +#include +#include +#include +#include + #include #include #include @@ -64,7 +70,7 @@ __FBSDID("$FreeBSD$"); struct hypercall_ctx { void *hc_addr; - struct hyperv_dma hc_dma; + vm_paddr_t hc_paddr; }; static u_int hyperv_get_timecount(struct timecounter *); @@ -255,8 +261,8 @@ SYSINIT(hyperv_initialize, SI_SUB_HYPERV static void hypercall_memfree(void) { - hyperv_dmamem_free(&hypercall_context.hc_dma, - hypercall_context.hc_addr); + kmem_free(kernel_arena, (vm_offset_t)hypercall_context.hc_addr, + PAGE_SIZE); hypercall_context.hc_addr = NULL; } @@ -268,14 +274,15 @@ hypercall_create(void *arg __unused) if (vm_guest != VM_GUEST_HV) return; - hypercall_context.hc_addr = hyperv_dmamem_alloc(NULL, PAGE_SIZE, 0, - PAGE_SIZE, &hypercall_context.hc_dma, BUS_DMA_WAITOK); - if (hypercall_context.hc_addr == NULL) { - printf("hyperv: Hypercall page allocation failed\n"); - /* Can't perform any Hyper-V specific actions */ - vm_guest = VM_GUEST_VM; - return; - } + /* + * NOTE: + * - busdma(9), i.e. hyperv_dmamem APIs, can _not_ be used due to + * the NX bit. + * - Assume kmem_malloc() returns properly aligned memory. + */ + hypercall_context.hc_addr = (void *)kmem_malloc(kernel_arena, PAGE_SIZE, + M_WAITOK); + hypercall_context.hc_paddr = vtophys(hypercall_context.hc_addr); /* Get the 'reserved' bits, which requires preservation. */ hc_orig = rdmsr(MSR_HV_HYPERCALL); @@ -285,7 +292,7 @@ hypercall_create(void *arg __unused) * * NOTE: 'reserved' bits MUST be preserved. */ - hc = ((hypercall_context.hc_dma.hv_paddr >> PAGE_SHIFT) << + hc = ((hypercall_context.hc_paddr >> PAGE_SHIFT) << MSR_HV_HYPERCALL_PGSHIFT) | (hc_orig & MSR_HV_HYPERCALL_RSVD_MASK) | MSR_HV_HYPERCALL_ENABLE; From owner-svn-src-all@freebsd.org Wed Apr 19 02:52:56 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB804D45294; Wed, 19 Apr 2017 02:52:56 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95923B5F; Wed, 19 Apr 2017 02:52:56 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J2qtso042749; Wed, 19 Apr 2017 02:52:55 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J2qtuk042745; Wed, 19 Apr 2017 02:52:55 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190252.v3J2qtuk042745@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 02:52:55 +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: r317109 - stable/11/sys/dev/qlxgbe X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 02:52:56 -0000 Author: davidcs Date: Wed Apr 19 02:52:55 2017 New Revision: 317109 URL: https://svnweb.freebsd.org/changeset/base/317109 Log: MFC r316309 Add support for optional Soft LRO Modified: stable/11/sys/dev/qlxgbe/ql_hw.c stable/11/sys/dev/qlxgbe/ql_hw.h stable/11/sys/dev/qlxgbe/ql_isr.c stable/11/sys/dev/qlxgbe/ql_os.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/qlxgbe/ql_hw.c ============================================================================== --- stable/11/sys/dev/qlxgbe/ql_hw.c Wed Apr 19 02:48:38 2017 (r317108) +++ stable/11/sys/dev/qlxgbe/ql_hw.c Wed Apr 19 02:52:55 2017 (r317109) @@ -440,6 +440,17 @@ ql_hw_add_sysctls(qla_host_t *ha) OID_AUTO, "enable_9kb", CTLFLAG_RW, &ha->hw.enable_9kb, ha->hw.enable_9kb, "Enable 9Kbyte Buffers when MTU = 9000"); + ha->hw.enable_hw_lro = 1; + + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "enable_hw_lro", CTLFLAG_RW, &ha->hw.enable_hw_lro, + ha->hw.enable_hw_lro, "Enable Hardware LRO; Default is true \n" + "\t 1 : Hardware LRO if LRO is enabled\n" + "\t 0 : Software LRO if LRO is enabled\n" + "\t Any change requires ifconfig down/up to take effect\n" + "\t Note that LRO may be turned off/on via ifconfig\n"); + ha->hw.mdump_active = 0; SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), @@ -2255,6 +2266,83 @@ qla_config_rss_ind_table(qla_host_t *ha) return (0); } +static int +qla_config_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + + bzero(lro, sizeof(struct lro_ctrl)); + +#if (__FreeBSD_version >= 1100101) + if (tcp_lro_init_args(lro, ha->ifp, 0, NUM_RX_DESCRIPTORS)) { + device_printf(ha->pci_dev, + "%s: tcp_lro_init_args [%d] failed\n", + __func__, i); + return (-1); + } +#else + if (tcp_lro_init(lro)) { + device_printf(ha->pci_dev, + "%s: tcp_lro_init [%d] failed\n", + __func__, i); + return (-1); + } +#endif /* #if (__FreeBSD_version >= 1100101) */ + + lro->ifp = ha->ifp; + } + + QL_DPRINT2(ha, (ha->pci_dev, "%s: LRO initialized\n", __func__)); + return (0); +} + +static void +qla_drain_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + +#if (__FreeBSD_version >= 1100101) + tcp_lro_flush_all(lro); +#else + struct lro_entry *queued; + + while ((!SLIST_EMPTY(&lro->lro_active))) { + queued = SLIST_FIRST(&lro->lro_active); + SLIST_REMOVE_HEAD(&lro->lro_active, next); + tcp_lro_flush(lro, queued); + } +#endif /* #if (__FreeBSD_version >= 1100101) */ + } + + return; +} + +static void +qla_free_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + tcp_lro_free(lro); + } + + return; +} + + /* * Name: ql_del_hw_if * Function: Destroys the hardware specific entities corresponding to an @@ -2287,6 +2375,11 @@ ql_del_hw_if(qla_host_t *ha) ha->hw.flags.init_intr_cnxt = 0; } + if (ha->hw.enable_soft_lro) { + qla_drain_soft_lro(ha); + qla_free_soft_lro(ha); + } + return; } @@ -2309,7 +2402,6 @@ qla_confirm_9kb_enable(qla_host_t *ha) return; } - /* * Name: ql_init_hw_if * Function: Creates the hardware specific entities corresponding to an @@ -2416,8 +2508,19 @@ ql_init_hw_if(qla_host_t *ha) if (qla_link_event_req(ha, ha->hw.rcv_cntxt_id)) return (-1); - if (qla_config_fw_lro(ha, ha->hw.rcv_cntxt_id)) - return (-1); + if (ha->ifp->if_capenable & IFCAP_LRO) { + if (ha->hw.enable_hw_lro) { + ha->hw.enable_soft_lro = 0; + + if (qla_config_fw_lro(ha, ha->hw.rcv_cntxt_id)) + return (-1); + } else { + ha->hw.enable_soft_lro = 1; + + if (qla_config_soft_lro(ha)) + return (-1); + } + } if (qla_init_nic_func(ha)) return (-1); Modified: stable/11/sys/dev/qlxgbe/ql_hw.h ============================================================================== --- stable/11/sys/dev/qlxgbe/ql_hw.h Wed Apr 19 02:48:38 2017 (r317108) +++ stable/11/sys/dev/qlxgbe/ql_hw.h Wed Apr 19 02:52:55 2017 (r317109) @@ -1674,6 +1674,8 @@ typedef struct _qla_hw { uint32_t max_tx_segs; uint32_t min_lro_pkt_size; + uint32_t enable_hw_lro; + uint32_t enable_soft_lro; uint32_t enable_9kb; uint32_t user_pri_nic; Modified: stable/11/sys/dev/qlxgbe/ql_isr.c ============================================================================== --- stable/11/sys/dev/qlxgbe/ql_isr.c Wed Apr 19 02:48:38 2017 (r317108) +++ stable/11/sys/dev/qlxgbe/ql_isr.c Wed Apr 19 02:52:55 2017 (r317109) @@ -68,6 +68,9 @@ qla_rx_intr(qla_host_t *ha, qla_sgl_rcv_ uint32_t i, rem_len = 0; uint32_t r_idx = 0; qla_rx_ring_t *rx_ring; + struct lro_ctrl *lro; + + lro = &ha->hw.sds[sds_idx].lro; if (ha->hw.num_rds_rings > 1) r_idx = sds_idx; @@ -166,7 +169,22 @@ qla_rx_intr(qla_host_t *ha, qla_sgl_rcv_ M_HASHTYPE_SET(mpf, M_HASHTYPE_NONE); #endif /* #if __FreeBSD_version >= 1100000 */ - (*ifp->if_input)(ifp, mpf); + if (ha->hw.enable_soft_lro) { + +#if (__FreeBSD_version >= 1100101) + + tcp_lro_queue_mbuf(lro, mpf); + +#else + if (tcp_lro_rx(lro, mpf, 0)) + (*ifp->if_input)(ifp, mpf); + +#endif /* #if (__FreeBSD_version >= 1100101) */ + + + } else { + (*ifp->if_input)(ifp, mpf); + } if (sdsp->rx_free > ha->std_replenish) qla_replenish_normal_rx(ha, sdsp, r_idx); @@ -707,6 +725,28 @@ ql_rcv_isr(qla_host_t *ha, uint32_t sds_ } } + if (ha->hw.enable_soft_lro) { + struct lro_ctrl *lro; + + lro = &ha->hw.sds[sds_idx].lro; + +#if (__FreeBSD_version >= 1100101) + + tcp_lro_flush_all(lro); + +#else + struct lro_entry *queued; + + while ((!SLIST_EMPTY(&lro->lro_active))) { + queued = SLIST_FIRST(&lro->lro_active); + SLIST_REMOVE_HEAD(&lro->lro_active, next); + tcp_lro_flush(lro, queued); + } + +#endif /* #if (__FreeBSD_version >= 1100101) */ + + } + if (ha->flags.stop_rcv) goto ql_rcv_isr_exit; Modified: stable/11/sys/dev/qlxgbe/ql_os.c ============================================================================== --- stable/11/sys/dev/qlxgbe/ql_os.c Wed Apr 19 02:48:38 2017 (r317108) +++ stable/11/sys/dev/qlxgbe/ql_os.c Wed Apr 19 02:52:55 2017 (r317109) @@ -1072,6 +1072,8 @@ qla_ioctl(struct ifnet *ifp, u_long cmd, ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; if (mask & IFCAP_VLAN_HWTSO) ifp->if_capenable ^= IFCAP_VLAN_HWTSO; + if (mask & IFCAP_LRO) + ifp->if_capenable ^= IFCAP_LRO; if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) qla_init(ha); @@ -1497,7 +1499,6 @@ qla_qflush(struct ifnet *ifp) return; } - static void qla_stop(qla_host_t *ha) { From owner-svn-src-all@freebsd.org Wed Apr 19 02:55:01 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C05BD45323; Wed, 19 Apr 2017 02:55:01 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DF606CCA; Wed, 19 Apr 2017 02:55:00 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J2t0YD042892; Wed, 19 Apr 2017 02:55:00 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J2t0iK042885; Wed, 19 Apr 2017 02:55:00 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190255.v3J2t0iK042885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 02:55:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317110 - stable/11/share/man/man4 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 02:55:01 -0000 Author: davidcs Date: Wed Apr 19 02:54:59 2017 New Revision: 317110 URL: https://svnweb.freebsd.org/changeset/base/317110 Log: MFC r316310 Update man page for commit r316309 "Add support for optional Soft LRO". The driver provides the ability to select either HW or Software LRO, when LRO is enabled (default HW LRO). Modified: stable/11/share/man/man4/qlxgbe.4 Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/qlxgbe.4 ============================================================================== --- stable/11/share/man/man4/qlxgbe.4 Wed Apr 19 02:52:55 2017 (r317109) +++ stable/11/share/man/man4/qlxgbe.4 Wed Apr 19 02:54:59 2017 (r317110) @@ -52,7 +52,8 @@ driver supports IPv4 checksum offload, TCP and UDP checksum offload for both IPv4 and IPv6, Large Segment Offload for both IPv4 and IPv6, Jumbo frames, VLAN Tag, and -Receive Side scaling. +Receive Side scaling, ability to select either HW or Software LRO, +when LRO is enabled (default HW LRO). For further hardware information, see .Pa http://www.qlogic.com/ . .Sh HARDWARE From owner-svn-src-all@freebsd.org Wed Apr 19 02:58:15 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D762ED453C2; Wed, 19 Apr 2017 02:58:15 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B4382E27; Wed, 19 Apr 2017 02:58:15 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J2wEIk043077; Wed, 19 Apr 2017 02:58:14 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J2wEDC043073; Wed, 19 Apr 2017 02:58:14 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190258.v3J2wEDC043073@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 02:58:14 +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: r317111 - stable/10/sys/dev/qlxgbe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 02:58:15 -0000 Author: davidcs Date: Wed Apr 19 02:58:14 2017 New Revision: 317111 URL: https://svnweb.freebsd.org/changeset/base/317111 Log: MFC r316309 Add support for optional Soft LRO Modified: stable/10/sys/dev/qlxgbe/ql_hw.c stable/10/sys/dev/qlxgbe/ql_hw.h stable/10/sys/dev/qlxgbe/ql_isr.c stable/10/sys/dev/qlxgbe/ql_os.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/qlxgbe/ql_hw.c ============================================================================== --- stable/10/sys/dev/qlxgbe/ql_hw.c Wed Apr 19 02:54:59 2017 (r317110) +++ stable/10/sys/dev/qlxgbe/ql_hw.c Wed Apr 19 02:58:14 2017 (r317111) @@ -440,6 +440,17 @@ ql_hw_add_sysctls(qla_host_t *ha) OID_AUTO, "enable_9kb", CTLFLAG_RW, &ha->hw.enable_9kb, ha->hw.enable_9kb, "Enable 9Kbyte Buffers when MTU = 9000"); + ha->hw.enable_hw_lro = 1; + + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "enable_hw_lro", CTLFLAG_RW, &ha->hw.enable_hw_lro, + ha->hw.enable_hw_lro, "Enable Hardware LRO; Default is true \n" + "\t 1 : Hardware LRO if LRO is enabled\n" + "\t 0 : Software LRO if LRO is enabled\n" + "\t Any change requires ifconfig down/up to take effect\n" + "\t Note that LRO may be turned off/on via ifconfig\n"); + ha->hw.mdump_active = 0; SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), @@ -2255,6 +2266,83 @@ qla_config_rss_ind_table(qla_host_t *ha) return (0); } +static int +qla_config_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + + bzero(lro, sizeof(struct lro_ctrl)); + +#if (__FreeBSD_version >= 1100101) + if (tcp_lro_init_args(lro, ha->ifp, 0, NUM_RX_DESCRIPTORS)) { + device_printf(ha->pci_dev, + "%s: tcp_lro_init_args [%d] failed\n", + __func__, i); + return (-1); + } +#else + if (tcp_lro_init(lro)) { + device_printf(ha->pci_dev, + "%s: tcp_lro_init [%d] failed\n", + __func__, i); + return (-1); + } +#endif /* #if (__FreeBSD_version >= 1100101) */ + + lro->ifp = ha->ifp; + } + + QL_DPRINT2(ha, (ha->pci_dev, "%s: LRO initialized\n", __func__)); + return (0); +} + +static void +qla_drain_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + +#if (__FreeBSD_version >= 1100101) + tcp_lro_flush_all(lro); +#else + struct lro_entry *queued; + + while ((!SLIST_EMPTY(&lro->lro_active))) { + queued = SLIST_FIRST(&lro->lro_active); + SLIST_REMOVE_HEAD(&lro->lro_active, next); + tcp_lro_flush(lro, queued); + } +#endif /* #if (__FreeBSD_version >= 1100101) */ + } + + return; +} + +static void +qla_free_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + tcp_lro_free(lro); + } + + return; +} + + /* * Name: ql_del_hw_if * Function: Destroys the hardware specific entities corresponding to an @@ -2287,6 +2375,11 @@ ql_del_hw_if(qla_host_t *ha) ha->hw.flags.init_intr_cnxt = 0; } + if (ha->hw.enable_soft_lro) { + qla_drain_soft_lro(ha); + qla_free_soft_lro(ha); + } + return; } @@ -2309,7 +2402,6 @@ qla_confirm_9kb_enable(qla_host_t *ha) return; } - /* * Name: ql_init_hw_if * Function: Creates the hardware specific entities corresponding to an @@ -2416,8 +2508,19 @@ ql_init_hw_if(qla_host_t *ha) if (qla_link_event_req(ha, ha->hw.rcv_cntxt_id)) return (-1); - if (qla_config_fw_lro(ha, ha->hw.rcv_cntxt_id)) - return (-1); + if (ha->ifp->if_capenable & IFCAP_LRO) { + if (ha->hw.enable_hw_lro) { + ha->hw.enable_soft_lro = 0; + + if (qla_config_fw_lro(ha, ha->hw.rcv_cntxt_id)) + return (-1); + } else { + ha->hw.enable_soft_lro = 1; + + if (qla_config_soft_lro(ha)) + return (-1); + } + } if (qla_init_nic_func(ha)) return (-1); Modified: stable/10/sys/dev/qlxgbe/ql_hw.h ============================================================================== --- stable/10/sys/dev/qlxgbe/ql_hw.h Wed Apr 19 02:54:59 2017 (r317110) +++ stable/10/sys/dev/qlxgbe/ql_hw.h Wed Apr 19 02:58:14 2017 (r317111) @@ -1674,6 +1674,8 @@ typedef struct _qla_hw { uint32_t max_tx_segs; uint32_t min_lro_pkt_size; + uint32_t enable_hw_lro; + uint32_t enable_soft_lro; uint32_t enable_9kb; uint32_t user_pri_nic; Modified: stable/10/sys/dev/qlxgbe/ql_isr.c ============================================================================== --- stable/10/sys/dev/qlxgbe/ql_isr.c Wed Apr 19 02:54:59 2017 (r317110) +++ stable/10/sys/dev/qlxgbe/ql_isr.c Wed Apr 19 02:58:14 2017 (r317111) @@ -68,6 +68,9 @@ qla_rx_intr(qla_host_t *ha, qla_sgl_rcv_ uint32_t i, rem_len = 0; uint32_t r_idx = 0; qla_rx_ring_t *rx_ring; + struct lro_ctrl *lro; + + lro = &ha->hw.sds[sds_idx].lro; if (ha->hw.num_rds_rings > 1) r_idx = sds_idx; @@ -166,7 +169,22 @@ qla_rx_intr(qla_host_t *ha, qla_sgl_rcv_ M_HASHTYPE_SET(mpf, M_HASHTYPE_NONE); #endif /* #if __FreeBSD_version >= 1100000 */ - (*ifp->if_input)(ifp, mpf); + if (ha->hw.enable_soft_lro) { + +#if (__FreeBSD_version >= 1100101) + + tcp_lro_queue_mbuf(lro, mpf); + +#else + if (tcp_lro_rx(lro, mpf, 0)) + (*ifp->if_input)(ifp, mpf); + +#endif /* #if (__FreeBSD_version >= 1100101) */ + + + } else { + (*ifp->if_input)(ifp, mpf); + } if (sdsp->rx_free > ha->std_replenish) qla_replenish_normal_rx(ha, sdsp, r_idx); @@ -708,6 +726,28 @@ ql_rcv_isr(qla_host_t *ha, uint32_t sds_ } } + if (ha->hw.enable_soft_lro) { + struct lro_ctrl *lro; + + lro = &ha->hw.sds[sds_idx].lro; + +#if (__FreeBSD_version >= 1100101) + + tcp_lro_flush_all(lro); + +#else + struct lro_entry *queued; + + while ((!SLIST_EMPTY(&lro->lro_active))) { + queued = SLIST_FIRST(&lro->lro_active); + SLIST_REMOVE_HEAD(&lro->lro_active, next); + tcp_lro_flush(lro, queued); + } + +#endif /* #if (__FreeBSD_version >= 1100101) */ + + } + if (ha->flags.stop_rcv) goto ql_rcv_isr_exit; Modified: stable/10/sys/dev/qlxgbe/ql_os.c ============================================================================== --- stable/10/sys/dev/qlxgbe/ql_os.c Wed Apr 19 02:54:59 2017 (r317110) +++ stable/10/sys/dev/qlxgbe/ql_os.c Wed Apr 19 02:58:14 2017 (r317111) @@ -1077,6 +1077,8 @@ qla_ioctl(struct ifnet *ifp, u_long cmd, ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; if (mask & IFCAP_VLAN_HWTSO) ifp->if_capenable ^= IFCAP_VLAN_HWTSO; + if (mask & IFCAP_LRO) + ifp->if_capenable ^= IFCAP_LRO; if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) qla_init(ha); @@ -1502,7 +1504,6 @@ qla_qflush(struct ifnet *ifp) return; } - static void qla_stop(qla_host_t *ha) { From owner-svn-src-all@freebsd.org Wed Apr 19 02:59:28 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2925CD4546B; Wed, 19 Apr 2017 02:59:28 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E9CBFFE1; Wed, 19 Apr 2017 02:59:27 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J2xRAb043182; Wed, 19 Apr 2017 02:59:27 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J2xQbN043181; Wed, 19 Apr 2017 02:59:26 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190259.v3J2xQbN043181@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 02:59:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317112 - stable/10/share/man/man4 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 02:59:28 -0000 Author: davidcs Date: Wed Apr 19 02:59:26 2017 New Revision: 317112 URL: https://svnweb.freebsd.org/changeset/base/317112 Log: MFC r316310 Update man page for commit r316309 "Add support for optional Soft LRO". The driver provides the ability to select either HW or Software LRO, when LRO is enabled (default HW LRO). Modified: stable/10/share/man/man4/qlxgbe.4 Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/qlxgbe.4 ============================================================================== --- stable/10/share/man/man4/qlxgbe.4 Wed Apr 19 02:58:14 2017 (r317111) +++ stable/10/share/man/man4/qlxgbe.4 Wed Apr 19 02:59:26 2017 (r317112) @@ -52,7 +52,8 @@ driver supports IPv4 checksum offload, TCP and UDP checksum offload for both IPv4 and IPv6, Large Segment Offload for both IPv4 and IPv6, Jumbo frames, VLAN Tag, and -Receive Side scaling. +Receive Side scaling, ability to select either HW or Software LRO, +when LRO is enabled (default HW LRO). For further hardware information, see .Pa http://www.qlogic.com/ . .Sh HARDWARE From owner-svn-src-all@freebsd.org Wed Apr 19 03:02:25 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B343D456FD; Wed, 19 Apr 2017 03:02:25 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E9A906E7; Wed, 19 Apr 2017 03:02:24 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J32OcV047426; Wed, 19 Apr 2017 03:02:24 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J32Nbq047421; Wed, 19 Apr 2017 03:02:23 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190302.v3J32Nbq047421@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 03:02:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r317113 - stable/9/sys/dev/qlxgbe X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:02:25 -0000 Author: davidcs Date: Wed Apr 19 03:02:23 2017 New Revision: 317113 URL: https://svnweb.freebsd.org/changeset/base/317113 Log: MFC r316309 Add support for optional Soft LRO Modified: stable/9/sys/dev/qlxgbe/ql_hw.c stable/9/sys/dev/qlxgbe/ql_hw.h stable/9/sys/dev/qlxgbe/ql_isr.c stable/9/sys/dev/qlxgbe/ql_os.c Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) Modified: stable/9/sys/dev/qlxgbe/ql_hw.c ============================================================================== --- stable/9/sys/dev/qlxgbe/ql_hw.c Wed Apr 19 02:59:26 2017 (r317112) +++ stable/9/sys/dev/qlxgbe/ql_hw.c Wed Apr 19 03:02:23 2017 (r317113) @@ -440,6 +440,17 @@ ql_hw_add_sysctls(qla_host_t *ha) OID_AUTO, "enable_9kb", CTLFLAG_RW, &ha->hw.enable_9kb, ha->hw.enable_9kb, "Enable 9Kbyte Buffers when MTU = 9000"); + ha->hw.enable_hw_lro = 1; + + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "enable_hw_lro", CTLFLAG_RW, &ha->hw.enable_hw_lro, + ha->hw.enable_hw_lro, "Enable Hardware LRO; Default is true \n" + "\t 1 : Hardware LRO if LRO is enabled\n" + "\t 0 : Software LRO if LRO is enabled\n" + "\t Any change requires ifconfig down/up to take effect\n" + "\t Note that LRO may be turned off/on via ifconfig\n"); + ha->hw.mdump_active = 0; SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), @@ -2255,6 +2266,83 @@ qla_config_rss_ind_table(qla_host_t *ha) return (0); } +static int +qla_config_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + + bzero(lro, sizeof(struct lro_ctrl)); + +#if (__FreeBSD_version >= 1100101) + if (tcp_lro_init_args(lro, ha->ifp, 0, NUM_RX_DESCRIPTORS)) { + device_printf(ha->pci_dev, + "%s: tcp_lro_init_args [%d] failed\n", + __func__, i); + return (-1); + } +#else + if (tcp_lro_init(lro)) { + device_printf(ha->pci_dev, + "%s: tcp_lro_init [%d] failed\n", + __func__, i); + return (-1); + } +#endif /* #if (__FreeBSD_version >= 1100101) */ + + lro->ifp = ha->ifp; + } + + QL_DPRINT2(ha, (ha->pci_dev, "%s: LRO initialized\n", __func__)); + return (0); +} + +static void +qla_drain_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + +#if (__FreeBSD_version >= 1100101) + tcp_lro_flush_all(lro); +#else + struct lro_entry *queued; + + while ((!SLIST_EMPTY(&lro->lro_active))) { + queued = SLIST_FIRST(&lro->lro_active); + SLIST_REMOVE_HEAD(&lro->lro_active, next); + tcp_lro_flush(lro, queued); + } +#endif /* #if (__FreeBSD_version >= 1100101) */ + } + + return; +} + +static void +qla_free_soft_lro(qla_host_t *ha) +{ + int i; + qla_hw_t *hw = &ha->hw; + struct lro_ctrl *lro; + + for (i = 0; i < hw->num_sds_rings; i++) { + lro = &hw->sds[i].lro; + tcp_lro_free(lro); + } + + return; +} + + /* * Name: ql_del_hw_if * Function: Destroys the hardware specific entities corresponding to an @@ -2287,6 +2375,11 @@ ql_del_hw_if(qla_host_t *ha) ha->hw.flags.init_intr_cnxt = 0; } + if (ha->hw.enable_soft_lro) { + qla_drain_soft_lro(ha); + qla_free_soft_lro(ha); + } + return; } @@ -2309,7 +2402,6 @@ qla_confirm_9kb_enable(qla_host_t *ha) return; } - /* * Name: ql_init_hw_if * Function: Creates the hardware specific entities corresponding to an @@ -2416,8 +2508,19 @@ ql_init_hw_if(qla_host_t *ha) if (qla_link_event_req(ha, ha->hw.rcv_cntxt_id)) return (-1); - if (qla_config_fw_lro(ha, ha->hw.rcv_cntxt_id)) - return (-1); + if (ha->ifp->if_capenable & IFCAP_LRO) { + if (ha->hw.enable_hw_lro) { + ha->hw.enable_soft_lro = 0; + + if (qla_config_fw_lro(ha, ha->hw.rcv_cntxt_id)) + return (-1); + } else { + ha->hw.enable_soft_lro = 1; + + if (qla_config_soft_lro(ha)) + return (-1); + } + } if (qla_init_nic_func(ha)) return (-1); Modified: stable/9/sys/dev/qlxgbe/ql_hw.h ============================================================================== --- stable/9/sys/dev/qlxgbe/ql_hw.h Wed Apr 19 02:59:26 2017 (r317112) +++ stable/9/sys/dev/qlxgbe/ql_hw.h Wed Apr 19 03:02:23 2017 (r317113) @@ -1674,6 +1674,8 @@ typedef struct _qla_hw { uint32_t max_tx_segs; uint32_t min_lro_pkt_size; + uint32_t enable_hw_lro; + uint32_t enable_soft_lro; uint32_t enable_9kb; uint32_t user_pri_nic; Modified: stable/9/sys/dev/qlxgbe/ql_isr.c ============================================================================== --- stable/9/sys/dev/qlxgbe/ql_isr.c Wed Apr 19 02:59:26 2017 (r317112) +++ stable/9/sys/dev/qlxgbe/ql_isr.c Wed Apr 19 03:02:23 2017 (r317113) @@ -68,6 +68,9 @@ qla_rx_intr(qla_host_t *ha, qla_sgl_rcv_ uint32_t i, rem_len = 0; uint32_t r_idx = 0; qla_rx_ring_t *rx_ring; + struct lro_ctrl *lro; + + lro = &ha->hw.sds[sds_idx].lro; if (ha->hw.num_rds_rings > 1) r_idx = sds_idx; @@ -161,7 +164,22 @@ qla_rx_intr(qla_host_t *ha, qla_sgl_rcv_ mpf->m_pkthdr.flowid = sgc->rss_hash; mpf->m_flags |= M_FLOWID; - (*ifp->if_input)(ifp, mpf); + if (ha->hw.enable_soft_lro) { + +#if (__FreeBSD_version >= 1100101) + + tcp_lro_queue_mbuf(lro, mpf); + +#else + if (tcp_lro_rx(lro, mpf, 0)) + (*ifp->if_input)(ifp, mpf); + +#endif /* #if (__FreeBSD_version >= 1100101) */ + + + } else { + (*ifp->if_input)(ifp, mpf); + } if (sdsp->rx_free > ha->std_replenish) qla_replenish_normal_rx(ha, sdsp, r_idx); @@ -703,6 +721,28 @@ ql_rcv_isr(qla_host_t *ha, uint32_t sds_ } } + if (ha->hw.enable_soft_lro) { + struct lro_ctrl *lro; + + lro = &ha->hw.sds[sds_idx].lro; + +#if (__FreeBSD_version >= 1100101) + + tcp_lro_flush_all(lro); + +#else + struct lro_entry *queued; + + while ((!SLIST_EMPTY(&lro->lro_active))) { + queued = SLIST_FIRST(&lro->lro_active); + SLIST_REMOVE_HEAD(&lro->lro_active, next); + tcp_lro_flush(lro, queued); + } + +#endif /* #if (__FreeBSD_version >= 1100101) */ + + } + if (ha->flags.stop_rcv) goto ql_rcv_isr_exit; Modified: stable/9/sys/dev/qlxgbe/ql_os.c ============================================================================== --- stable/9/sys/dev/qlxgbe/ql_os.c Wed Apr 19 02:59:26 2017 (r317112) +++ stable/9/sys/dev/qlxgbe/ql_os.c Wed Apr 19 03:02:23 2017 (r317113) @@ -1077,6 +1077,8 @@ qla_ioctl(struct ifnet *ifp, u_long cmd, ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; if (mask & IFCAP_VLAN_HWTSO) ifp->if_capenable ^= IFCAP_VLAN_HWTSO; + if (mask & IFCAP_LRO) + ifp->if_capenable ^= IFCAP_LRO; if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) qla_init(ha); @@ -1518,7 +1520,6 @@ qla_qflush(struct ifnet *ifp) return; } - static void qla_stop(qla_host_t *ha) { From owner-svn-src-all@freebsd.org Wed Apr 19 03:03:48 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39A02D45777; Wed, 19 Apr 2017 03:03:48 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0B0AD8BF; Wed, 19 Apr 2017 03:03:47 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J33lYe047523; Wed, 19 Apr 2017 03:03:47 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J33luw047522; Wed, 19 Apr 2017 03:03:47 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190303.v3J33luw047522@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 03:03:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r317114 - stable/9/share/man/man4 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:03:48 -0000 Author: davidcs Date: Wed Apr 19 03:03:46 2017 New Revision: 317114 URL: https://svnweb.freebsd.org/changeset/base/317114 Log: MFC r316310 Update man page for commit r316309 "Add support for optional Soft LRO". The driver provides the ability to select either HW or Software LRO, when LRO is enabled (default HW LRO). Modified: stable/9/share/man/man4/qlxgbe.4 Directory Properties: stable/9/ (props changed) stable/9/share/ (props changed) stable/9/share/man/ (props changed) stable/9/share/man/man4/ (props changed) Modified: stable/9/share/man/man4/qlxgbe.4 ============================================================================== --- stable/9/share/man/man4/qlxgbe.4 Wed Apr 19 03:02:23 2017 (r317113) +++ stable/9/share/man/man4/qlxgbe.4 Wed Apr 19 03:03:46 2017 (r317114) @@ -52,7 +52,8 @@ driver supports IPv4 checksum offload, TCP and UDP checksum offload for both IPv4 and IPv6, Large Segment Offload for both IPv4 and IPv6, Jumbo frames, VLAN Tag, and -Receive Side scaling. +Receive Side scaling, ability to select either HW or Software LRO, +when LRO is enabled (default HW LRO). For further hardware information, see .Pa http://www.qlogic.com/ . .Sh HARDWARE From owner-svn-src-all@freebsd.org Wed Apr 19 03:06:29 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 37645D45980; Wed, 19 Apr 2017 03:06:29 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DE0EFB18; Wed, 19 Apr 2017 03:06:28 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J36S48047774; Wed, 19 Apr 2017 03:06:28 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J36SCF047773; Wed, 19 Apr 2017 03:06:28 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201704190306.v3J36SCF047773@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 19 Apr 2017 03:06:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317115 - stable/10/sys/dev/hyperv/vmbus X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:06:29 -0000 Author: sephe Date: Wed Apr 19 03:06:27 2017 New Revision: 317115 URL: https://svnweb.freebsd.org/changeset/base/317115 Log: MFC 317107 hyperv: Use kmem_malloc for hypercall memory due to NX bit change. Reported by: dexuan@ Sponsored by: Microsoft Modified: stable/10/sys/dev/hyperv/vmbus/hyperv.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/hyperv/vmbus/hyperv.c ============================================================================== --- stable/10/sys/dev/hyperv/vmbus/hyperv.c Wed Apr 19 03:03:46 2017 (r317114) +++ stable/10/sys/dev/hyperv/vmbus/hyperv.c Wed Apr 19 03:06:27 2017 (r317115) @@ -34,9 +34,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include +#include +#include +#include +#include + #include #include #include @@ -64,7 +70,7 @@ __FBSDID("$FreeBSD$"); struct hypercall_ctx { void *hc_addr; - struct hyperv_dma hc_dma; + vm_paddr_t hc_paddr; }; static u_int hyperv_get_timecount(struct timecounter *); @@ -255,8 +261,8 @@ SYSINIT(hyperv_initialize, SI_SUB_HYPERV static void hypercall_memfree(void) { - hyperv_dmamem_free(&hypercall_context.hc_dma, - hypercall_context.hc_addr); + kmem_free(kernel_arena, (vm_offset_t)hypercall_context.hc_addr, + PAGE_SIZE); hypercall_context.hc_addr = NULL; } @@ -268,14 +274,15 @@ hypercall_create(void *arg __unused) if (vm_guest != VM_GUEST_HV) return; - hypercall_context.hc_addr = hyperv_dmamem_alloc(NULL, PAGE_SIZE, 0, - PAGE_SIZE, &hypercall_context.hc_dma, BUS_DMA_WAITOK); - if (hypercall_context.hc_addr == NULL) { - printf("hyperv: Hypercall page allocation failed\n"); - /* Can't perform any Hyper-V specific actions */ - vm_guest = VM_GUEST_VM; - return; - } + /* + * NOTE: + * - busdma(9), i.e. hyperv_dmamem APIs, can _not_ be used due to + * the NX bit. + * - Assume kmem_malloc() returns properly aligned memory. + */ + hypercall_context.hc_addr = (void *)kmem_malloc(kernel_arena, PAGE_SIZE, + M_WAITOK); + hypercall_context.hc_paddr = vtophys(hypercall_context.hc_addr); /* Get the 'reserved' bits, which requires preservation. */ hc_orig = rdmsr(MSR_HV_HYPERCALL); @@ -285,7 +292,7 @@ hypercall_create(void *arg __unused) * * NOTE: 'reserved' bits MUST be preserved. */ - hc = ((hypercall_context.hc_dma.hv_paddr >> PAGE_SHIFT) << + hc = ((hypercall_context.hc_paddr >> PAGE_SHIFT) << MSR_HV_HYPERCALL_PGSHIFT) | (hc_orig & MSR_HV_HYPERCALL_RSVD_MASK) | MSR_HV_HYPERCALL_ENABLE; From owner-svn-src-all@freebsd.org Wed Apr 19 03:09:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55FF3D45AF6; Wed, 19 Apr 2017 03:09:22 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 310EBD1E; Wed, 19 Apr 2017 03:09:22 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J39LfY047919; Wed, 19 Apr 2017 03:09:21 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J39KFa047915; Wed, 19 Apr 2017 03:09:20 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190309.v3J39KFa047915@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 03:09:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317116 - in stable/11: share/man/man4 sys/conf sys/dev/qlnx sys/modules sys/modules/qlnx X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:09:22 -0000 Author: davidcs Date: Wed Apr 19 03:09:20 2017 New Revision: 317116 URL: https://svnweb.freebsd.org/changeset/base/317116 Log: MFC r316485 Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's. Qlogic 45000 Series Adapters Added: stable/11/share/man/man4/qlnxe.4 - copied unchanged from r316485, head/share/man/man4/qlnxe.4 stable/11/sys/dev/qlnx/ - copied from r316485, head/sys/dev/qlnx/ stable/11/sys/modules/qlnx/ - copied from r316485, head/sys/modules/qlnx/ Modified: stable/11/share/man/man4/Makefile stable/11/sys/conf/files.amd64 stable/11/sys/modules/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/Makefile ============================================================================== --- stable/11/share/man/man4/Makefile Wed Apr 19 03:06:27 2017 (r317115) +++ stable/11/share/man/man4/Makefile Wed Apr 19 03:09:20 2017 (r317116) @@ -429,6 +429,7 @@ MAN= aac.4 \ ${_qlxge.4} \ ${_qlxgb.4} \ ${_qlxgbe.4} \ + ${_qlnxe.4} \ ral.4 \ random.4 \ rc.4 \ @@ -853,11 +854,13 @@ _ntb_transport.4=ntb_transport.4 _qlxge.4= qlxge.4 _qlxgb.4= qlxgb.4 _qlxgbe.4= qlxgbe.4 +_qlnxe.4= qlnxe.4 _sfxge.4= sfxge.4 MLINKS+=qlxge.4 if_qlxge.4 MLINKS+=qlxgb.4 if_qlxgb.4 MLINKS+=qlxgbe.4 if_qlxgbe.4 +MLINKS+=qlnxe.4 if_qlnxe.4 MLINKS+=sfxge.4 if_sfxge.4 .if ${MK_BHYVE} != "no" Copied: stable/11/share/man/man4/qlnxe.4 (from r316485, head/share/man/man4/qlnxe.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/share/man/man4/qlnxe.4 Wed Apr 19 03:09:20 2017 (r317116, copy of r316485, head/share/man/man4/qlnxe.4) @@ -0,0 +1,90 @@ +.\"- +.\" Copyright (c) 2017 Cavium Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 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$ +.\" +.Dd March 24, 2017 +.Dt QLNXE 4 +.Os +.Sh NAME +.Nm qlnxe +.Nd "Cavium 25/40/100 Gigabit Ethernet & CNA Adapter Driver" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device qlnxe" +.Ed +.Pp +To load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_qlnxe_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver supports IPv4 checksum offload, +TCP and UDP checksum offload for both IPv4 and IPv6, +Large Segment Offload for both IPv4 and IPv6, +Jumbo frames, VLAN Tag, Receive Side scaling, HW and Soft LRO. +For further hardware information, see +.Pa http://www.qlogic.com/ . +.Sh HARDWARE +The +.Nm +driver supports 25/40/100 Gigabit Ethernet & CNA Adapter based on the following +chipsets: +.Pp +.Bl -bullet -compact +.It +QLogic 45000 series +.El +.Sh SUPPORT +For support questions please contact your Cavium approved reseller or +Cavium Technical Support at +.Pa http://support.qlogic.com , +or by E-mail at +.Aq Mt support@qlogic.com . +.Sh SEE ALSO +.Xr altq 4 , +.Xr arp 4 , +.Xr netintro 4 , +.Xr ng_ether 4 , +.Xr ifconfig 8 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 12.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An David C Somayajulu +at Cavium Inc. Modified: stable/11/sys/conf/files.amd64 ============================================================================== --- stable/11/sys/conf/files.amd64 Wed Apr 19 03:06:27 2017 (r317115) +++ stable/11/sys/conf/files.amd64 Wed Apr 19 03:09:20 2017 (r317116) @@ -354,6 +354,20 @@ dev/qlxgbe/ql_isr.c optional qlxgbe pci dev/qlxgbe/ql_misc.c optional qlxgbe pci dev/qlxgbe/ql_os.c optional qlxgbe pci dev/qlxgbe/ql_reset.c optional qlxgbe pci +dev/qlnx/qlnxe/ecore_cxt.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_dbg_fw_funcs.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_dcbx.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_dev.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_hw.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_init_fw_funcs.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_init_ops.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_int.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_l2.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_mcp.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_sp_commands.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_spq.c optional qlnxe pci +dev/qlnx/qlnxe/qlnx_ioctl.c optional qlnxe pci +dev/qlnx/qlnxe/qlnx_os.c optional qlnxe pci dev/sfxge/common/ef10_ev.c optional sfxge pci dev/sfxge/common/ef10_filter.c optional sfxge pci dev/sfxge/common/ef10_intr.c optional sfxge pci Modified: stable/11/sys/modules/Makefile ============================================================================== --- stable/11/sys/modules/Makefile Wed Apr 19 03:06:27 2017 (r317115) +++ stable/11/sys/modules/Makefile Wed Apr 19 03:09:20 2017 (r317116) @@ -316,6 +316,7 @@ SUBDIR= \ ${_qlxge} \ ${_qlxgb} \ ${_qlxgbe} \ + ${_qlnx} \ ral \ ${_ralfw} \ ${_random_fortuna} \ @@ -709,6 +710,7 @@ _pms= pms _qlxge= qlxge _qlxgb= qlxgb _qlxgbe= qlxgbe +_qlnx= qlnx _sfxge= sfxge .if ${MK_BHYVE} != "no" || defined(ALL_MODULES) From owner-svn-src-all@freebsd.org Wed Apr 19 03:14:00 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15F67D45DBD; Wed, 19 Apr 2017 03:14:00 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E55E311FF; Wed, 19 Apr 2017 03:13:59 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J3DxlY051727; Wed, 19 Apr 2017 03:13:59 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J3Dw04051725; Wed, 19 Apr 2017 03:13:58 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190313.v3J3Dw04051725@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 03:13:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317117 - stable/11/sys/dev/qlnx/qlnxe X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:14:00 -0000 Author: davidcs Date: Wed Apr 19 03:13:58 2017 New Revision: 317117 URL: https://svnweb.freebsd.org/changeset/base/317117 Log: MFC r316720 Fix defects reported by Coverity 1. Deadcode in ecore_init_cache_line_size(), qlnx_ioctl() and qlnx_clean_filters() 2. ARRAY_VS_SINGLETON issue in qlnx_remove_all_mcast_mac() and qlnx_update_rx_prod() Modified: stable/11/sys/dev/qlnx/qlnxe/bcm_osal.h stable/11/sys/dev/qlnx/qlnxe/qlnx_os.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/qlnx/qlnxe/bcm_osal.h ============================================================================== --- stable/11/sys/dev/qlnx/qlnxe/bcm_osal.h Wed Apr 19 03:09:20 2017 (r317116) +++ stable/11/sys/dev/qlnx/qlnxe/bcm_osal.h Wed Apr 19 03:13:58 2017 (r317117) @@ -144,7 +144,14 @@ rounddown_pow_of_two(unsigned long x) #define OSAL_CPU_TO_LE16(val) htole16(val) #define OSAL_LE16_TO_CPU(val) le16toh(val) -#define OSAL_CACHE_LINE_SIZE CACHE_LINE_SIZE +static __inline uint32_t +qlnx_get_cache_line_size(void) +{ + return (CACHE_LINE_SIZE); +} + +#define OSAL_CACHE_LINE_SIZE qlnx_get_cache_line_size() + #define OSAL_BE32 uint32_t #define dma_addr_t bus_addr_t #define osal_size_t size_t Modified: stable/11/sys/dev/qlnx/qlnxe/qlnx_os.c ============================================================================== --- stable/11/sys/dev/qlnx/qlnxe/qlnx_os.c Wed Apr 19 03:09:20 2017 (r317116) +++ stable/11/sys/dev/qlnx/qlnxe/qlnx_os.c Wed Apr 19 03:13:58 2017 (r317117) @@ -2167,9 +2167,6 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd } QLNX_UNLOCK(ha); - - if (ret) - ret = EINVAL; } break; @@ -5910,25 +5907,26 @@ qlnx_update_rx_prod(struct ecore_hwfn *p uint16_t bd_prod; uint16_t cqe_prod; - struct eth_rx_prod_data rx_prods = {0}; + union { + struct eth_rx_prod_data rx_prod_data; + uint32_t data32; + } rx_prods; bd_prod = ecore_chain_get_prod_idx(&rxq->rx_bd_ring); cqe_prod = ecore_chain_get_prod_idx(&rxq->rx_comp_ring); /* Update producers */ - rx_prods.bd_prod = htole16(bd_prod); - rx_prods.cqe_prod = htole16(cqe_prod); + rx_prods.rx_prod_data.bd_prod = htole16(bd_prod); + rx_prods.rx_prod_data.cqe_prod = htole16(cqe_prod); /* Make sure that the BD and SGE data is updated before updating the * producers since FW might read the BD/SGE right after the producer * is updated. */ wmb(); - //bus_barrier(ha->pci_reg, 0, 0, BUS_SPACE_BARRIER_READ); - //bus_barrier(ha->pci_dbells, 0, 0, BUS_SPACE_BARRIER_READ); internal_ram_wr(p_hwfn, rxq->hw_rxq_prod_addr, - sizeof(rx_prods), (u32 *)&rx_prods); + sizeof(rx_prods), &rx_prods.data32); /* mmiowb is needed to synchronize doorbell writes from more than one * processor. It guarantees that the write arrives to the device before @@ -6342,9 +6340,8 @@ qlnx_remove_all_mcast_mac(qlnx_host_t *h ha->mcast[i].addr[2] || ha->mcast[i].addr[3] || ha->mcast[i].addr[4] || ha->mcast[i].addr[5]) { - memcpy(&mcast->mac[0], &ha->mcast[i].addr[0], ETH_ALEN); + memcpy(&mcast->mac[i], &ha->mcast[i].addr[0], ETH_ALEN); mcast->num_mc_addrs++; - mcast++; } } mcast = &ha->ecore_mcast; @@ -6363,7 +6360,7 @@ qlnx_clean_filters(qlnx_host_t *ha) int rc = 0; /* Remove all unicast macs */ - qlnx_remove_all_ucast_mac(ha); + rc = qlnx_remove_all_ucast_mac(ha); if (rc) return rc; From owner-svn-src-all@freebsd.org Wed Apr 19 03:18:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15E72D45E5D; Wed, 19 Apr 2017 03:18:13 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DB978140F; Wed, 19 Apr 2017 03:18:12 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J3ICTW051927; Wed, 19 Apr 2017 03:18:12 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J3ICgB051926; Wed, 19 Apr 2017 03:18:12 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190318.v3J3ICgB051926@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 03:18: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: r317118 - stable/11/sys/dev/qlnx/qlnxe X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:18:13 -0000 Author: davidcs Date: Wed Apr 19 03:18:11 2017 New Revision: 317118 URL: https://svnweb.freebsd.org/changeset/base/317118 Log: MFC r316747 Fix rss_ind_table entry for num_funcs > 1 Modified: stable/11/sys/dev/qlnx/qlnxe/qlnx_os.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/qlnx/qlnxe/qlnx_os.c ============================================================================== --- stable/11/sys/dev/qlnx/qlnxe/qlnx_os.c Wed Apr 19 03:13:58 2017 (r317117) +++ stable/11/sys/dev/qlnx/qlnxe/qlnx_os.c Wed Apr 19 03:18:11 2017 (r317118) @@ -5840,7 +5840,7 @@ qlnx_update_vport(struct ecore_dev *cdev ha->num_rss; fp = &ha->fp_array[fp_index]; - rss->rss_ind_table[i] = fp->rxq->handle; + rss->rss_ind_table[j] = fp->rxq->handle; } for (j = 0; j < ECORE_RSS_IND_TABLE_SIZE;) { From owner-svn-src-all@freebsd.org Wed Apr 19 03:30:38 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D32BAD44153; Wed, 19 Apr 2017 03:30:38 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 89C451A8E; Wed, 19 Apr 2017 03:30:38 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J3UbRo056244; Wed, 19 Apr 2017 03:30:37 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J3Ub4c056242; Wed, 19 Apr 2017 03:30:37 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201704190330.v3J3Ub4c056242@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 19 Apr 2017 03:30: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: r317119 - in stable/11/sys: conf dev/hyperv/input X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:30:38 -0000 Author: sephe Date: Wed Apr 19 03:30:37 2017 New Revision: 317119 URL: https://svnweb.freebsd.org/changeset/base/317119 Log: MFC 316515,316812 316515 hyperv/kbd: Add support for synthetic keyboard. Synthetic keyboard is the only supported keyboard on GEN2 Hyper-V. Submitted by: Hongjiang Zhang Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D10196 316812 hyperv/kbd: Remove unnecessary assignment. Reported by: PVS Sponsored by: Microsoft Added: stable/11/sys/dev/hyperv/input/ - copied from r316515, head/sys/dev/hyperv/input/ Modified: stable/11/sys/conf/files.amd64 stable/11/sys/dev/hyperv/input/hv_kbdc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files.amd64 ============================================================================== --- stable/11/sys/conf/files.amd64 Wed Apr 19 03:18:11 2017 (r317118) +++ stable/11/sys/conf/files.amd64 Wed Apr 19 03:30:37 2017 (r317119) @@ -293,6 +293,8 @@ dev/hwpmc/hwpmc_uncore.c optional hwpmc dev/hwpmc/hwpmc_piv.c optional hwpmc dev/hwpmc/hwpmc_tsc.c optional hwpmc dev/hwpmc/hwpmc_x86.c optional hwpmc +dev/hyperv/input/hv_kbd.c optional hyperv +dev/hyperv/input/hv_kbdc.c optional hyperv dev/hyperv/pcib/vmbus_pcib.c optional hyperv pci dev/hyperv/netvsc/hn_nvs.c optional hyperv dev/hyperv/netvsc/hn_rndis.c optional hyperv Modified: stable/11/sys/dev/hyperv/input/hv_kbdc.c ============================================================================== --- head/sys/dev/hyperv/input/hv_kbdc.c Wed Apr 5 05:01:23 2017 (r316515) +++ stable/11/sys/dev/hyperv/input/hv_kbdc.c Wed Apr 19 03:30:37 2017 (r317119) @@ -298,7 +298,6 @@ hv_kbd_read_channel(struct vmbus_channel int ret = 0; hv_kbd_sc *sc = (hv_kbd_sc*)context; - channel = vmbus_get_channel(sc->dev); buf = sc->buf; buflen = sc->buflen; for (;;) { From owner-svn-src-all@freebsd.org Wed Apr 19 03:37:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 56B6ED443A6; Wed, 19 Apr 2017 03:37:13 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 337A81FA2; Wed, 19 Apr 2017 03:37:13 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J3bCOO060290; Wed, 19 Apr 2017 03:37:12 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J3bCoo060287; Wed, 19 Apr 2017 03:37:12 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190337.v3J3bCoo060287@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 03:37:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317120 - in stable/10: share/man/man4 sys/conf sys/dev/qlnx sys/modules sys/modules/qlnx X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:37:13 -0000 Author: davidcs Date: Wed Apr 19 03:37:11 2017 New Revision: 317120 URL: https://svnweb.freebsd.org/changeset/base/317120 Log: MFC r316485 Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's. Qlogic 45000 Series Adapters Added: stable/10/share/man/man4/qlnxe.4 - copied unchanged from r316485, head/share/man/man4/qlnxe.4 stable/10/sys/dev/qlnx/ - copied from r316485, head/sys/dev/qlnx/ stable/10/sys/modules/qlnx/ - copied from r316485, head/sys/modules/qlnx/ Modified: stable/10/share/man/man4/Makefile stable/10/sys/conf/files.amd64 stable/10/sys/modules/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/Makefile ============================================================================== --- stable/10/share/man/man4/Makefile Wed Apr 19 03:30:37 2017 (r317119) +++ stable/10/share/man/man4/Makefile Wed Apr 19 03:37:11 2017 (r317120) @@ -405,6 +405,7 @@ MAN= aac.4 \ ${_qlxge.4} \ ${_qlxgb.4} \ ${_qlxgbe.4} \ + ${_qlnxe.4} \ ral.4 \ random.4 \ rc.4 \ @@ -827,11 +828,13 @@ _ntb_transport.4=ntb_transport.4 _qlxge.4= qlxge.4 _qlxgb.4= qlxgb.4 _qlxgbe.4= qlxgbe.4 +_qlnxe.4= qlnxe.4 _sfxge.4= sfxge.4 MLINKS+=qlxge.4 if_qlxge.4 MLINKS+=qlxgb.4 if_qlxgb.4 MLINKS+=qlxgbe.4 if_qlxgbe.4 +MLINKS+=qlnxe.4 if_qlnxe.4 MLINKS+=sfxge.4 if_sfxge.4 .if ${MK_BHYVE} != "no" Copied: stable/10/share/man/man4/qlnxe.4 (from r316485, head/share/man/man4/qlnxe.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/share/man/man4/qlnxe.4 Wed Apr 19 03:37:11 2017 (r317120, copy of r316485, head/share/man/man4/qlnxe.4) @@ -0,0 +1,90 @@ +.\"- +.\" Copyright (c) 2017 Cavium Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 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$ +.\" +.Dd March 24, 2017 +.Dt QLNXE 4 +.Os +.Sh NAME +.Nm qlnxe +.Nd "Cavium 25/40/100 Gigabit Ethernet & CNA Adapter Driver" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device qlnxe" +.Ed +.Pp +To load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_qlnxe_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver supports IPv4 checksum offload, +TCP and UDP checksum offload for both IPv4 and IPv6, +Large Segment Offload for both IPv4 and IPv6, +Jumbo frames, VLAN Tag, Receive Side scaling, HW and Soft LRO. +For further hardware information, see +.Pa http://www.qlogic.com/ . +.Sh HARDWARE +The +.Nm +driver supports 25/40/100 Gigabit Ethernet & CNA Adapter based on the following +chipsets: +.Pp +.Bl -bullet -compact +.It +QLogic 45000 series +.El +.Sh SUPPORT +For support questions please contact your Cavium approved reseller or +Cavium Technical Support at +.Pa http://support.qlogic.com , +or by E-mail at +.Aq Mt support@qlogic.com . +.Sh SEE ALSO +.Xr altq 4 , +.Xr arp 4 , +.Xr netintro 4 , +.Xr ng_ether 4 , +.Xr ifconfig 8 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 12.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An David C Somayajulu +at Cavium Inc. Modified: stable/10/sys/conf/files.amd64 ============================================================================== --- stable/10/sys/conf/files.amd64 Wed Apr 19 03:30:37 2017 (r317119) +++ stable/10/sys/conf/files.amd64 Wed Apr 19 03:37:11 2017 (r317120) @@ -323,6 +323,20 @@ dev/qlxgbe/ql_isr.c optional qlxgbe pci dev/qlxgbe/ql_misc.c optional qlxgbe pci dev/qlxgbe/ql_os.c optional qlxgbe pci dev/qlxgbe/ql_reset.c optional qlxgbe pci +dev/qlnx/qlnxe/ecore_cxt.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_dbg_fw_funcs.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_dcbx.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_dev.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_hw.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_init_fw_funcs.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_init_ops.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_int.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_l2.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_mcp.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_sp_commands.c optional qlnxe pci +dev/qlnx/qlnxe/ecore_spq.c optional qlnxe pci +dev/qlnx/qlnxe/qlnx_ioctl.c optional qlnxe pci +dev/qlnx/qlnxe/qlnx_os.c optional qlnxe pci dev/sfxge/common/ef10_ev.c optional sfxge pci dev/sfxge/common/ef10_filter.c optional sfxge pci dev/sfxge/common/ef10_intr.c optional sfxge pci Modified: stable/10/sys/modules/Makefile ============================================================================== --- stable/10/sys/modules/Makefile Wed Apr 19 03:30:37 2017 (r317119) +++ stable/10/sys/modules/Makefile Wed Apr 19 03:37:11 2017 (r317120) @@ -295,6 +295,7 @@ SUBDIR= \ ${_qlxge} \ ${_qlxgb} \ ${_qlxgbe} \ + ${_qlnx} \ ral \ ${_ralfw} \ ${_random} \ @@ -788,6 +789,7 @@ _pms= pms _qlxge= qlxge _qlxgb= qlxgb _qlxgbe= qlxgbe +_qlnx= qlnx _rdma= rdma _s3= s3 _safe= safe From owner-svn-src-all@freebsd.org Wed Apr 19 03:39:51 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C153D44526; Wed, 19 Apr 2017 03:39:51 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6BBB0285; Wed, 19 Apr 2017 03:39:51 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J3doij060449; Wed, 19 Apr 2017 03:39:50 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J3do7t060447; Wed, 19 Apr 2017 03:39:50 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201704190339.v3J3do7t060447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 19 Apr 2017 03:39: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: r317121 - in stable/11/sys/dev/hyperv: storvsc utilities X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:39:51 -0000 Author: sephe Date: Wed Apr 19 03:39:50 2017 New Revision: 317121 URL: https://svnweb.freebsd.org/changeset/base/317121 Log: MFC 316813,316815 316813 hyperv/storvsc: Use ULL for 64bits value shift. Reported by: PVS Sponsored by: Microsoft 316815 hyperv/kvp: Remove always false condition. Reported by: PVS Sponsored by: Microsoft Modified: stable/11/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c stable/11/sys/dev/hyperv/utilities/hv_kvp.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- stable/11/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Apr 19 03:37:11 2017 (r317120) +++ stable/11/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Apr 19 03:39:50 2017 (r317121) @@ -1771,7 +1771,7 @@ storvsc_check_bounce_buffer_sgl(bus_dma_ } pre_aligned = TRUE; } else { - tmp_bits |= 1 << i; + tmp_bits |= 1ULL << i; if (!pre_aligned) { if (phys_addr != vtophys(sgl[i-1].ds_addr + sgl[i-1].ds_len)) { Modified: stable/11/sys/dev/hyperv/utilities/hv_kvp.c ============================================================================== --- stable/11/sys/dev/hyperv/utilities/hv_kvp.c Wed Apr 19 03:37:11 2017 (r317120) +++ stable/11/sys/dev/hyperv/utilities/hv_kvp.c Wed Apr 19 03:39:50 2017 (r317121) @@ -516,7 +516,7 @@ hv_kvp_convert_usermsg_to_hostmsg(struct /* Use values by string */ host_exchg_data->value_type = HV_REG_SZ; - if ((hkey_len < 0) || (hvalue_len < 0)) + if (hvalue_len < 0) return (EINVAL); return (0); From owner-svn-src-all@freebsd.org Wed Apr 19 03:41:20 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C5FEED445B2; Wed, 19 Apr 2017 03:41:20 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A16E46C5; Wed, 19 Apr 2017 03:41:20 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J3fJnO061322; Wed, 19 Apr 2017 03:41:19 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J3fJVV061320; Wed, 19 Apr 2017 03:41:19 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190341.v3J3fJVV061320@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 03:41:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317122 - stable/10/sys/dev/qlnx/qlnxe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:41:20 -0000 Author: davidcs Date: Wed Apr 19 03:41:19 2017 New Revision: 317122 URL: https://svnweb.freebsd.org/changeset/base/317122 Log: MFC r316720 Fix defects reported by Coverity 1. Deadcode in ecore_init_cache_line_size(), qlnx_ioctl() and qlnx_clean_filters() 2. ARRAY_VS_SINGLETON issue in qlnx_remove_all_mcast_mac() and qlnx_update_rx_prod() Modified: stable/10/sys/dev/qlnx/qlnxe/bcm_osal.h stable/10/sys/dev/qlnx/qlnxe/qlnx_os.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/qlnx/qlnxe/bcm_osal.h ============================================================================== --- stable/10/sys/dev/qlnx/qlnxe/bcm_osal.h Wed Apr 19 03:39:50 2017 (r317121) +++ stable/10/sys/dev/qlnx/qlnxe/bcm_osal.h Wed Apr 19 03:41:19 2017 (r317122) @@ -144,7 +144,14 @@ rounddown_pow_of_two(unsigned long x) #define OSAL_CPU_TO_LE16(val) htole16(val) #define OSAL_LE16_TO_CPU(val) le16toh(val) -#define OSAL_CACHE_LINE_SIZE CACHE_LINE_SIZE +static __inline uint32_t +qlnx_get_cache_line_size(void) +{ + return (CACHE_LINE_SIZE); +} + +#define OSAL_CACHE_LINE_SIZE qlnx_get_cache_line_size() + #define OSAL_BE32 uint32_t #define dma_addr_t bus_addr_t #define osal_size_t size_t Modified: stable/10/sys/dev/qlnx/qlnxe/qlnx_os.c ============================================================================== --- stable/10/sys/dev/qlnx/qlnxe/qlnx_os.c Wed Apr 19 03:39:50 2017 (r317121) +++ stable/10/sys/dev/qlnx/qlnxe/qlnx_os.c Wed Apr 19 03:41:19 2017 (r317122) @@ -2167,9 +2167,6 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd } QLNX_UNLOCK(ha); - - if (ret) - ret = EINVAL; } break; @@ -5910,25 +5907,26 @@ qlnx_update_rx_prod(struct ecore_hwfn *p uint16_t bd_prod; uint16_t cqe_prod; - struct eth_rx_prod_data rx_prods = {0}; + union { + struct eth_rx_prod_data rx_prod_data; + uint32_t data32; + } rx_prods; bd_prod = ecore_chain_get_prod_idx(&rxq->rx_bd_ring); cqe_prod = ecore_chain_get_prod_idx(&rxq->rx_comp_ring); /* Update producers */ - rx_prods.bd_prod = htole16(bd_prod); - rx_prods.cqe_prod = htole16(cqe_prod); + rx_prods.rx_prod_data.bd_prod = htole16(bd_prod); + rx_prods.rx_prod_data.cqe_prod = htole16(cqe_prod); /* Make sure that the BD and SGE data is updated before updating the * producers since FW might read the BD/SGE right after the producer * is updated. */ wmb(); - //bus_barrier(ha->pci_reg, 0, 0, BUS_SPACE_BARRIER_READ); - //bus_barrier(ha->pci_dbells, 0, 0, BUS_SPACE_BARRIER_READ); internal_ram_wr(p_hwfn, rxq->hw_rxq_prod_addr, - sizeof(rx_prods), (u32 *)&rx_prods); + sizeof(rx_prods), &rx_prods.data32); /* mmiowb is needed to synchronize doorbell writes from more than one * processor. It guarantees that the write arrives to the device before @@ -6342,9 +6340,8 @@ qlnx_remove_all_mcast_mac(qlnx_host_t *h ha->mcast[i].addr[2] || ha->mcast[i].addr[3] || ha->mcast[i].addr[4] || ha->mcast[i].addr[5]) { - memcpy(&mcast->mac[0], &ha->mcast[i].addr[0], ETH_ALEN); + memcpy(&mcast->mac[i], &ha->mcast[i].addr[0], ETH_ALEN); mcast->num_mc_addrs++; - mcast++; } } mcast = &ha->ecore_mcast; @@ -6363,7 +6360,7 @@ qlnx_clean_filters(qlnx_host_t *ha) int rc = 0; /* Remove all unicast macs */ - qlnx_remove_all_ucast_mac(ha); + rc = qlnx_remove_all_ucast_mac(ha); if (rc) return rc; From owner-svn-src-all@freebsd.org Wed Apr 19 03:43:25 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE402D447DB; Wed, 19 Apr 2017 03:43:25 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7DF9DA89; Wed, 19 Apr 2017 03:43:25 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J3hOBN064221; Wed, 19 Apr 2017 03:43:24 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J3hO9N064220; Wed, 19 Apr 2017 03:43:24 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704190343.v3J3hO9N064220@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 19 Apr 2017 03:43:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317123 - stable/10/sys/dev/qlnx/qlnxe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:43:25 -0000 Author: davidcs Date: Wed Apr 19 03:43:24 2017 New Revision: 317123 URL: https://svnweb.freebsd.org/changeset/base/317123 Log: MFC r316747 Fix rss_ind_table entry for num_funcs > 1 Modified: stable/10/sys/dev/qlnx/qlnxe/qlnx_os.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/qlnx/qlnxe/qlnx_os.c ============================================================================== --- stable/10/sys/dev/qlnx/qlnxe/qlnx_os.c Wed Apr 19 03:41:19 2017 (r317122) +++ stable/10/sys/dev/qlnx/qlnxe/qlnx_os.c Wed Apr 19 03:43:24 2017 (r317123) @@ -5840,7 +5840,7 @@ qlnx_update_vport(struct ecore_dev *cdev ha->num_rss; fp = &ha->fp_array[fp_index]; - rss->rss_ind_table[i] = fp->rxq->handle; + rss->rss_ind_table[j] = fp->rxq->handle; } for (j = 0; j < ECORE_RSS_IND_TABLE_SIZE;) { From owner-svn-src-all@freebsd.org Wed Apr 19 03:50:07 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F738D44A3B; Wed, 19 Apr 2017 03:50:07 +0000 (UTC) (envelope-from decui@microsoft.com) Received: from APC01-PU1-obe.outbound.protection.outlook.com (mail-pu1apc01on0110.outbound.protection.outlook.com [104.47.126.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A98BBD4C; Wed, 19 Apr 2017 03:50:06 +0000 (UTC) (envelope-from decui@microsoft.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=fmf04cXQ62OzGpX2CR9B5515Q17eEdjszQV/C2Dh058=; b=LKF6xtSpjyESPFSLueDoV3sclTq+V1J03ZUxRSD/nNOqMv3hT4jqH7KB4e2T3BXVyF9lQ0tu4jkufFcxuyJyD7ceiRxYVn4k4UpeSqMWvIrk0Hr9gWwc12cJ7aIEhT3pdIDh3Pi5EsQNDzkpRdIAU3AGAl+UBp2tw92YMRfZmHY= Received: from HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM (10.170.151.145) by HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM (10.170.151.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.1; Wed, 19 Apr 2017 03:49:51 +0000 Received: from HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM ([10.170.151.145]) by HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM ([10.170.151.145]) with mapi id 15.01.1061.003; Wed, 19 Apr 2017 03:49:51 +0000 From: Dexuan Cui To: Konstantin Belousov CC: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" , Sepherosa Ziehau , Hongjiang Zhang Subject: RE: svn commit: r316767 - head/sys/amd64/amd64 Thread-Topic: svn commit: r316767 - head/sys/amd64/amd64 Thread-Index: AQHStG2iSg+v8T4ZWE2jvrgFLfQZk6HLFDPwgAAXJgCAAAC2YA== Date: Wed, 19 Apr 2017 03:49:50 +0000 Message-ID: References: <201704131549.v3DFnt9I004050@repo.freebsd.org> <20170418134556.GY1788@kib.kiev.ua> In-Reply-To: <20170418134556.GY1788@kib.kiev.ua> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=microsoft.com; x-originating-ip: [167.220.255.48] x-microsoft-exchange-diagnostics: 1; HK2P15301MB0003; 7:O6GznFTfn2ObwluVmF/QfDzFjUisOya3MZZ/gSYLTf+78wyn9Lw+I+8rRbqCJQtog5BMqHT1TIZaQfesZlekKno7NVEktICIIfMMnKYoDo79vNQ5TaFng+26TnXZKGluDOtFoFmrSKEsneqmnNostv8DWX8xgxJ5PEvB6LAxtBOf/dyYpbZ5nI203avmesaFygfEQtd5ul+Xx0yz9WHeDCnY917l9KpxOkp90r8WNmTUXoLcl/EbNX/SL8SP5xK7T83bpxCN8I8VOZVKnTPyfQ/YzzGcyhQcfrLB6Gdm37HN9iZu6O8DAzc8Nc5brF5qU1xnWpOCFQ996baKqtBE/8uM6O+85/asrgO6SIMA+Xw= x-ms-office365-filtering-correlation-id: 9f10021f-9f2d-44b1-06f7-08d486d72247 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(48565401081)(201703131423075)(201703031133081)(201702281549075); SRVR:HK2P15301MB0003; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(6055026)(61426038)(61427038)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148); SRVR:HK2P15301MB0003; BCL:0; PCL:0; RULEID:; SRVR:HK2P15301MB0003; x-forefront-prvs: 028256169F x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39840400002)(39450400003)(39860400002)(39850400002)(39410400002)(39400400002)(8990500004)(305945005)(3280700002)(74316002)(6436002)(2906002)(7696004)(86362001)(76176999)(8676002)(7736002)(81166006)(54356999)(6506006)(50986999)(86612001)(3846002)(53936002)(102836003)(6116002)(77096006)(3660700001)(1411001)(110136004)(107886003)(38730400002)(229853002)(39060400002)(2900100001)(66066001)(6246003)(122556002)(33656002)(10090500001)(189998001)(55016002)(54906002)(5005710100001)(10290500002)(4326008)(9686003)(6916009)(25786009)(2950100002)(8936002)(5660300001); DIR:OUT; SFP:1102; SCL:1; SRVR:HK2P15301MB0003; H:HK2P15301MB0003.APCP153.PROD.OUTLOOK.COM; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2017 03:49:50.9917 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2P15301MB0003 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:50:07 -0000 > From: Konstantin Belousov > > It looks memory allocated by bus_dmamem_alloc() and malloc() > > is not executable now. > > > > What else can we use? > > I guess we can only use contigmalloc() or kmem_malloc() to > > get a page that can be executable and use vtophys() to get its > > physical address? > Yes, the kmem_malloc() is considered to be a suitable substitution for > regular malloc(9) if the executable mapping is needed. See r317072 > for a similar fix for the same issue. Thanks, kib! We have fixed Hyper-V drivers with kmem_malloc(). Thanks, -- Dexuan From owner-svn-src-all@freebsd.org Wed Apr 19 04:10:02 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5001D44F3E; Wed, 19 Apr 2017 04:10:02 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail108.syd.optusnet.com.au (mail108.syd.optusnet.com.au [211.29.132.59]) by mx1.freebsd.org (Postfix) with ESMTP id 919FE926; Wed, 19 Apr 2017 04:10:02 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c122-106-153-191.carlnfd1.nsw.optusnet.com.au [122.106.153.191]) by mail108.syd.optusnet.com.au (Postfix) with ESMTPS id AF7A41A5E5E; Wed, 19 Apr 2017 14:09:59 +1000 (AEST) Date: Wed, 19 Apr 2017 14:09:58 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Alan Somers cc: Gleb Smirnoff , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r317061 - in head: libexec/rpc.rstatd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/arm64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linprocfs... In-Reply-To: Message-ID: <20170419130428.J956@besplex.bde.org> References: <201704171734.v3HHYlf5022945@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=KeqiiUQD c=1 sm=1 tr=0 a=Tj3pCpwHnMupdyZSltBt7Q==:117 a=Tj3pCpwHnMupdyZSltBt7Q==:17 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=4wcEti7meZBUi9NaIXUA:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 04:10:03 -0000 On Tue, 18 Apr 2017, Alan Somers wrote: > On Mon, Apr 17, 2017 at 11:34 AM, Gleb Smirnoff wrote: Please trim quotes. [... 5 lines of quotes trimmed] >> Log: >> - Remove 'struct vmmeter' from 'struct pcpu', leaving only global vmmeter >> in place. To do per-cpu stats, convert all fields that previously were >> maintained in the vmmeters that sit in pcpus to counter(9). [... 21 lines of quotes trimmed] [... more than 50 lines of quotes trimmed] >> head/usr.bin/top/machine.c >> head/usr.bin/vmstat/vmstat.c The previous 2 lines turn out to be relevant. I missed the update to vmstat and checked a wrong version in my bug report described below I checked an updated top, but the change seemed too small to help. systat was not updated. > This change broke backwards compatibility with old top binaries. When > I use a kernel at version 317094 but a top from 14-April, I get the > error "top: sysctl(vm.stats.vm.v_swappgsin...) failed: Cannot allocate > memory". I get the same error when running top from an 11.0-RELEASE > jail. Can you please add backward compatibility shims? I sent a much longer (30 times longer) bug report to the author of the bug. Most or all statistics utilities that use vmmeter are broken. vmstat is too broken to even notice the bug -- it silently ignores the error, an has type errors which prevent other errors which it doesn't ignore. The result is silently truncating to 32 bits, like a quick fix would do intentionally. systat -v detects the errors but prints warning messages to the status line where they overwrite each other so make the problem look smaller than it is. The result is unsilently truncating to 32 bits. I've never seen any backwards compatibility shims added for sysctls. None should be needed, but there are few or no utilities other than sysctl(8) which use sysctl(3) in a portable way. Utilities tend to hard-code types and thus break when the types are expanded or shrunk. Especially broken ones like vmstat even ignore the error for their size being too small. There is no error for the size being too small, so callers must check if the size returned is the size supplied. vmstat is too broken to check this too. systat -v does check. Note that using the types in the system header is a form of hard-coding. This gives binaries that only work when run on the same system as the headers. Using the "any" type is best done using a smart wrapper or perhaps a smarter sysctl(3), and many utilities already have dumb wrappers. The one in vmstat() shows how not to do it: X static int X mysysctl(const char *name, void *oldp, size_t *oldlenp, X void *newp, size_t newlen) X { X int error; X X error = sysctlbyname(name, oldp, oldlenp, newp, newlen); X if (error != 0 && errno != ENOMEM) X xo_err(1, "sysctl(%s)", name); X return (error); X } ENOMEM here means that our variable is too small. It is not easy to expand correctly, but it is easy to check if it is small enough to cause a problem. Something like: // Zero-extend in case our variable is larger than the // system's. We only support unsigned variables. bzero(oldp, *oldlenp); // Don't use our garbage new* variables. All calls are // read-only since we are a stats utility, and this wrapper // doesn't support writing. if (sysctlbyname(name, oldp, oldlenp, NULL, 0) == 0) return (0) u_char buf[640 * 1024]; // should be enough for anyint size_t buflen; size_t off; buflen = sizeof(buf); error = sysctlbyname(name, buf, buflen, NULL, 0); if (error != 0) xo_err(1, "sysctl(%s)", name); for (off = *oldlenp; buf < bufsize; off++) { // Check for zero-extension. // This version only supports unsigned types. if (buf[off] != 0) { errno = EOVERFLOW; #ifdef CALLERS_PROBLEM // sysctl(3) should always have done this // too. That is, return EOVERFLOW instead // of ENOMEM when the result is too large // to fit, and don't return an error if // it does fit. return (-1); #else // Now a useful error message. xo_err(1, "sysctl(%s)", name); #endif } } Then expand sizes in the caller if necessary. u_int would work in most cases, and so would u_char for small and boolean variables. CALLERS_PROBLEM allows use of small types when only differences are needed, as for some cases in vmstat. uintmax_t would work in more cases. But it is still a form of hard-coding -- it will break when the system uintmax_t is increased to {128, 256, 512, ...} bits while the user uintmax_t remains uint64_t, and the extra bits are actually used. 64-bit types rarely overflow, but if the system type is larger then 64 bytes was not enough for anyint. The bugs in vmstat now go in the other direction. It now hard-codes uint64_t instead of u_int for the expanded types. Its missing error handling is now a more serious problem. When run on an old kernel, sysctl() returns 32 bits into the 64-bit variables and the error is not detected. Perhaps the variables are initially zero so this is not a problem, but the zeroing should be more intentional. It is very easy to add to the sysctl wrapper, as above. Bruce From owner-svn-src-all@freebsd.org Wed Apr 19 04:58:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0EF11D45A6C; Wed, 19 Apr 2017 04:58:21 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf0-x244.google.com (mail-pf0-x244.google.com [IPv6:2607:f8b0:400e:c00::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D0E6FCA; Wed, 19 Apr 2017 04:58:20 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf0-x244.google.com with SMTP id c198so2033737pfc.0; Tue, 18 Apr 2017 21:58:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=ZjdTEGhKPaclhRqiYLx6CYx1FePLNjPpXONCqNEuDLk=; b=igZzo2dboSSERefD8dLf3NnGgfUVYxPwNux95qJ8zU5FlCWHA7XAoHO9JcbseJ41ak ETQ/OEckQKNENaIDE4Qh4/6alILx8SzHbasO45ztb4aU3S4diU8mYQST2gkJ/N2JyEU9 GEQ1s4oXvQtpyqEvLmiK4QwlBWoNULfw9jOqcUtLj4HR2yqlZQy1gTIO8gIljTjEQ5Gl KO0iUiYHf9//A8rZB4RyGCBIzNgmX1ZqhxPW7TmbzE1FOfXA07h3opDbwFk29vKpX9cp 40jrB4EYipUuCWv0WTtzl8+eQea4H1IRNLi10oUdukWLSuQDCr2yYr9eBQvvzcisBckQ nXiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=ZjdTEGhKPaclhRqiYLx6CYx1FePLNjPpXONCqNEuDLk=; b=XypaAoz3DvXIeIZOR0HRYCiwV7e9+g5KyE+chbzIIOTc9v00//rIhHmhtu72AQgCEy KTMpzFOhpcl+cd/YnFt5XQ6XJzSMNhOTGUD56e7Y3EZzdcvsjkmy4noShyX29viXh7RH ne0TehsFOhNLfxdhd5xa2xIfXC8AtBOqpA8xvv0D4x2AuhfZIYWB/WdjjzEnQe2HeJNm 5FvPJYVoHPnhgwC1Mu/zzk0CKdErLqFGW0+1HziwFCw2BkVBToH08FHPCBaRVq3Qne8Y jLk0xsGLRp8NfA8EQHdaS7R3KyCAlwXPCStIK9qNbu4f/IW0Fvo5RH9ZWkiSra6xNszL 9LJQ== X-Gm-Message-State: AN3rC/5n4zG8pCRB1OLO60iqAUZnbSaDQgLuBwJQS4IEXOw5aLr/rxpo M0031NXVrmWgOUz28LSP5Q== X-Received: by 10.99.140.67 with SMTP id q3mr1104588pgn.210.1492577900243; Tue, 18 Apr 2017 21:58:20 -0700 (PDT) Received: from ?IPv6:2607:fb90:837b:f5b8:d0dc:fd2b:3c38:9525? ([2607:fb90:837b:f5b8:d0dc:fd2b:3c38:9525]) by smtp.gmail.com with ESMTPSA id r73sm1449956pfa.65.2017.04.18.21.58.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Apr 2017 21:58:19 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r317106 - head/share/mk From: Ngie Cooper X-Mailer: iPhone Mail (14E304) In-Reply-To: <201704182359.v3INxGQF070387@repo.freebsd.org> Date: Tue, 18 Apr 2017 21:58:18 -0700 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <3C0031CD-B9D5-4B6C-A6CE-7D08843D714A@gmail.com> References: <201704182359.v3INxGQF070387@repo.freebsd.org> To: "Simon J. Gerraty" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 04:58:21 -0000 > On Apr 18, 2017, at 16:59, Simon J. Gerraty wrote: >=20 > Author: sjg > Date: Tue Apr 18 23:59:15 2017 > New Revision: 317106 > URL: https://svnweb.freebsd.org/changeset/base/317106 >=20 > Log: > If MAKEOBJDIRPREFIX is a prefix match for .CURDIR, then __objdir is .CURD= IR >=20 > Reviewed by: bdrewery Thank you!! -Ngie= From owner-svn-src-all@freebsd.org Wed Apr 19 05:19:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23B2FD4500C; Wed, 19 Apr 2017 05:19:35 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CF478D6B; Wed, 19 Apr 2017 05:19:34 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J5JXCC001044; Wed, 19 Apr 2017 05:19:33 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J5JXYZ001042; Wed, 19 Apr 2017 05:19:33 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201704190519.v3J5JXYZ001042@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 19 Apr 2017 05:19: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: r317124 - in stable/10/sys: conf dev/hyperv/input X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 05:19:35 -0000 Author: sephe Date: Wed Apr 19 05:19:33 2017 New Revision: 317124 URL: https://svnweb.freebsd.org/changeset/base/317124 Log: MFC 316515,316812 316515 hyperv/kbd: Add support for synthetic keyboard. Synthetic keyboard is the only supported keyboard on GEN2 Hyper-V. Submitted by: Hongjiang Zhang Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D10196 316812 hyperv/kbd: Remove unnecessary assignment. Reported by: PVS Sponsored by: Microsoft Added: stable/10/sys/dev/hyperv/input/ - copied from r316515, head/sys/dev/hyperv/input/ Modified: stable/10/sys/conf/files.amd64 stable/10/sys/dev/hyperv/input/hv_kbdc.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/conf/files.amd64 ============================================================================== --- stable/10/sys/conf/files.amd64 Wed Apr 19 03:43:24 2017 (r317123) +++ stable/10/sys/conf/files.amd64 Wed Apr 19 05:19:33 2017 (r317124) @@ -261,6 +261,8 @@ dev/hwpmc/hwpmc_uncore.c optional hwpmc dev/hwpmc/hwpmc_piv.c optional hwpmc dev/hwpmc/hwpmc_tsc.c optional hwpmc dev/hwpmc/hwpmc_x86.c optional hwpmc +dev/hyperv/input/hv_kbd.c optional hyperv +dev/hyperv/input/hv_kbdc.c optional hyperv dev/hyperv/pcib/vmbus_pcib.c optional hyperv pci dev/hyperv/netvsc/hn_nvs.c optional hyperv dev/hyperv/netvsc/hn_rndis.c optional hyperv Modified: stable/10/sys/dev/hyperv/input/hv_kbdc.c ============================================================================== --- head/sys/dev/hyperv/input/hv_kbdc.c Wed Apr 5 05:01:23 2017 (r316515) +++ stable/10/sys/dev/hyperv/input/hv_kbdc.c Wed Apr 19 05:19:33 2017 (r317124) @@ -298,7 +298,6 @@ hv_kbd_read_channel(struct vmbus_channel int ret = 0; hv_kbd_sc *sc = (hv_kbd_sc*)context; - channel = vmbus_get_channel(sc->dev); buf = sc->buf; buflen = sc->buflen; for (;;) { From owner-svn-src-all@freebsd.org Wed Apr 19 05:28:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F163AD451F5; Wed, 19 Apr 2017 05:28:22 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B393611FD; Wed, 19 Apr 2017 05:28:22 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J5SLt9005207; Wed, 19 Apr 2017 05:28:21 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J5SLGs005205; Wed, 19 Apr 2017 05:28:21 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201704190528.v3J5SLGs005205@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 19 Apr 2017 05:28:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317125 - in stable/10/sys/dev/hyperv: storvsc utilities X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 05:28:23 -0000 Author: sephe Date: Wed Apr 19 05:28:21 2017 New Revision: 317125 URL: https://svnweb.freebsd.org/changeset/base/317125 Log: MFC 316813,316815 316813 hyperv/storvsc: Use ULL for 64bits value shift. Reported by: PVS Sponsored by: Microsoft 316815 hyperv/kvp: Remove always false condition. Reported by: PVS Sponsored by: Microsoft Modified: stable/10/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c stable/10/sys/dev/hyperv/utilities/hv_kvp.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- stable/10/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Apr 19 05:19:33 2017 (r317124) +++ stable/10/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Apr 19 05:28:21 2017 (r317125) @@ -1771,7 +1771,7 @@ storvsc_check_bounce_buffer_sgl(bus_dma_ } pre_aligned = TRUE; } else { - tmp_bits |= 1 << i; + tmp_bits |= 1ULL << i; if (!pre_aligned) { if (phys_addr != vtophys(sgl[i-1].ds_addr + sgl[i-1].ds_len)) { Modified: stable/10/sys/dev/hyperv/utilities/hv_kvp.c ============================================================================== --- stable/10/sys/dev/hyperv/utilities/hv_kvp.c Wed Apr 19 05:19:33 2017 (r317124) +++ stable/10/sys/dev/hyperv/utilities/hv_kvp.c Wed Apr 19 05:28:21 2017 (r317125) @@ -516,7 +516,7 @@ hv_kvp_convert_usermsg_to_hostmsg(struct /* Use values by string */ host_exchg_data->value_type = HV_REG_SZ; - if ((hkey_len < 0) || (hvalue_len < 0)) + if (hvalue_len < 0) return (EINVAL); return (0); From owner-svn-src-all@freebsd.org Wed Apr 19 05:59:01 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC0C6D45EB2; Wed, 19 Apr 2017 05:59:01 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6AD6932B; Wed, 19 Apr 2017 05:59:01 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3J5x0IA017172; Wed, 19 Apr 2017 05:59:00 GMT (envelope-from ganbold@FreeBSD.org) Received: (from ganbold@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3J5x0Nv017171; Wed, 19 Apr 2017 05:59:00 GMT (envelope-from ganbold@FreeBSD.org) Message-Id: <201704190559.v3J5x0Nv017171@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ganbold set sender to ganbold@FreeBSD.org using -f From: Ganbold Tsagaankhuu Date: Wed, 19 Apr 2017 05:59:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317126 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 05:59:01 -0000 Author: ganbold Date: Wed Apr 19 05:59:00 2017 New Revision: 317126 URL: https://svnweb.freebsd.org/changeset/base/317126 Log: Use hwreset_get_by_ofw_idx() function instead, since there is no reset-names dts property defined for IR in case of H3 SoC. That way IR works on H3 SoC based board. Tested on Orangepi mini 2 board. Modified: head/sys/arm/allwinner/aw_cir.c Modified: head/sys/arm/allwinner/aw_cir.c ============================================================================== --- head/sys/arm/allwinner/aw_cir.c Wed Apr 19 05:28:21 2017 (r317125) +++ head/sys/arm/allwinner/aw_cir.c Wed Apr 19 05:59:00 2017 (r317126) @@ -419,7 +419,7 @@ aw_ir_attach(device_t dev) } /* De-assert reset */ - if (hwreset_get_by_ofw_name(dev, 0, "apb", &rst_apb) == 0) { + if (hwreset_get_by_ofw_idx(dev, 0, 0, &rst_apb) == 0) { err = hwreset_deassert(rst_apb); if (err != 0) { device_printf(dev, "cannot de-assert reset\n"); From owner-svn-src-all@freebsd.org Wed Apr 19 10:54:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C46C8D4477C; Wed, 19 Apr 2017 10:54:09 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 938921BD3; Wed, 19 Apr 2017 10:54:09 +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 v3JAs8hh039867; Wed, 19 Apr 2017 10:54:08 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JAs8Nh039866; Wed, 19 Apr 2017 10:54:08 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704191054.v3JAs8Nh039866@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 19 Apr 2017 10:54: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: r317130 - stable/11/lib/libc/gen X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 10:54:09 -0000 Author: kib Date: Wed Apr 19 10:54:08 2017 New Revision: 317130 URL: https://svnweb.freebsd.org/changeset/base/317130 Log: MFC r316739: Fix reporting of _SC_SEM_NSEMS_MAX and _SC_SEM_VALUE_MAX. Modified: stable/11/lib/libc/gen/sysconf.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/gen/sysconf.c ============================================================================== --- stable/11/lib/libc/gen/sysconf.c Wed Apr 19 09:07:04 2017 (r317129) +++ stable/11/lib/libc/gen/sysconf.c Wed Apr 19 10:54:08 2017 (r317130) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include /* we just need the limits */ +#include #include #include #include "un-namespace.h" @@ -299,13 +300,9 @@ do_NAME_MAX: mib[1] = CTL_P1003_1B_RTSIG_MAX; goto yesno; case _SC_SEM_NSEMS_MAX: - mib[0] = CTL_P1003_1B; - mib[1] = CTL_P1003_1B_SEM_NSEMS_MAX; - goto yesno; + return (-1); case _SC_SEM_VALUE_MAX: - mib[0] = CTL_P1003_1B; - mib[1] = CTL_P1003_1B_SEM_VALUE_MAX; - goto yesno; + return (SEM_VALUE_MAX); case _SC_SIGQUEUE_MAX: mib[0] = CTL_P1003_1B; mib[1] = CTL_P1003_1B_SIGQUEUE_MAX; From owner-svn-src-all@freebsd.org Wed Apr 19 10:57:58 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4E113D44978; Wed, 19 Apr 2017 10:57:58 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1FBF11DBA; Wed, 19 Apr 2017 10:57:58 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JAvvTr040085; Wed, 19 Apr 2017 10:57:57 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JAvvpY040084; Wed, 19 Apr 2017 10:57:57 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704191057.v3JAvvpY040084@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 19 Apr 2017 10:57: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: r317131 - stable/10/lib/libc/gen X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 10:57:58 -0000 Author: kib Date: Wed Apr 19 10:57:57 2017 New Revision: 317131 URL: https://svnweb.freebsd.org/changeset/base/317131 Log: MFC r316739: Fix reporting of _SC_SEM_NSEMS_MAX and _SC_SEM_VALUE_MAX. Modified: stable/10/lib/libc/gen/sysconf.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/gen/sysconf.c ============================================================================== --- stable/10/lib/libc/gen/sysconf.c Wed Apr 19 10:54:08 2017 (r317130) +++ stable/10/lib/libc/gen/sysconf.c Wed Apr 19 10:57:57 2017 (r317131) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include #include /* we just need the limits */ +#include #include #include @@ -298,13 +299,9 @@ do_NAME_MAX: mib[1] = CTL_P1003_1B_RTSIG_MAX; goto yesno; case _SC_SEM_NSEMS_MAX: - mib[0] = CTL_P1003_1B; - mib[1] = CTL_P1003_1B_SEM_NSEMS_MAX; - goto yesno; + return (-1); case _SC_SEM_VALUE_MAX: - mib[0] = CTL_P1003_1B; - mib[1] = CTL_P1003_1B_SEM_VALUE_MAX; - goto yesno; + return (SEM_VALUE_MAX); case _SC_SIGQUEUE_MAX: mib[0] = CTL_P1003_1B; mib[1] = CTL_P1003_1B_SIGQUEUE_MAX; From owner-svn-src-all@freebsd.org Wed Apr 19 11:10:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B33F2D44E38; Wed, 19 Apr 2017 11:10:03 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8E7C6936; Wed, 19 Apr 2017 11:10:03 +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 v3JBA2MK044734; Wed, 19 Apr 2017 11:10:02 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JBA29O044732; Wed, 19 Apr 2017 11:10:02 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704191110.v3JBA29O044732@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 19 Apr 2017 11:10:02 +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: r317132 - stable/11/sys/fs/nfsclient X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 11:10:03 -0000 Author: kib Date: Wed Apr 19 11:10:02 2017 New Revision: 317132 URL: https://svnweb.freebsd.org/changeset/base/317132 Log: MFC r316529: Handle possible vnode reclamation after ncl_vinvalbuf() call. Modified: stable/11/sys/fs/nfsclient/nfs_clbio.c stable/11/sys/fs/nfsclient/nfs_clvnops.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/nfsclient/nfs_clbio.c ============================================================================== --- stable/11/sys/fs/nfsclient/nfs_clbio.c Wed Apr 19 10:57:57 2017 (r317131) +++ stable/11/sys/fs/nfsclient/nfs_clbio.c Wed Apr 19 11:10:02 2017 (r317132) @@ -394,8 +394,8 @@ nfs_bioread_check_cons(struct vnode *vp, */ old_lock = ncl_upgrade_vnlock(vp); if (vp->v_iflag & VI_DOOMED) { - ncl_downgrade_vnlock(vp, old_lock); - return (EBADF); + error = EBADF; + goto out; } mtx_lock(&np->n_mtx); @@ -406,7 +406,9 @@ nfs_bioread_check_cons(struct vnode *vp, panic("nfs: bioread, not dir"); ncl_invaldir(vp); error = ncl_vinvalbuf(vp, V_SAVE, td, 1); - if (error) + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + error = EBADF; + if (error != 0) goto out; } np->n_attrstamp = 0; @@ -429,7 +431,9 @@ nfs_bioread_check_cons(struct vnode *vp, if (vp->v_type == VDIR) ncl_invaldir(vp); error = ncl_vinvalbuf(vp, V_SAVE, td, 1); - if (error) + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + error = EBADF; + if (error != 0) goto out; mtx_lock(&np->n_mtx); np->n_mtime = vattr.va_mtime; @@ -439,7 +443,7 @@ nfs_bioread_check_cons(struct vnode *vp, } out: ncl_downgrade_vnlock(vp, old_lock); - return error; + return (error); } /* @@ -623,6 +627,9 @@ ncl_bioread(struct vnode *vp, struct uio while (error == NFSERR_BAD_COOKIE) { ncl_invaldir(vp); error = ncl_vinvalbuf(vp, 0, td, 1); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + return (EBADF); + /* * Yuck! The directory has been modified on the * server. The only way to get the block is by @@ -943,8 +950,11 @@ ncl_write(struct vop_write_args *ap) #endif np->n_attrstamp = 0; KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(vp); - error = ncl_vinvalbuf(vp, V_SAVE, td, 1); - if (error) + error = ncl_vinvalbuf(vp, V_SAVE | ((ioflag & + IO_VMIO) != 0 ? V_VMIO : 0), td, 1); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + error = EBADF; + if (error != 0) return (error); } else mtx_unlock(&np->n_mtx); @@ -1023,8 +1033,12 @@ ncl_write(struct vop_write_args *ap) if (wouldcommit > nmp->nm_wcommitsize) { np->n_attrstamp = 0; KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(vp); - error = ncl_vinvalbuf(vp, V_SAVE, td, 1); - if (error) + error = ncl_vinvalbuf(vp, V_SAVE | ((ioflag & + IO_VMIO) != 0 ? V_VMIO : 0), td, 1); + if (error == 0 && + (vp->v_iflag & VI_DOOMED) != 0) + error = EBADF; + if (error != 0) return (error); wouldcommit = biosize; } Modified: stable/11/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- stable/11/sys/fs/nfsclient/nfs_clvnops.c Wed Apr 19 10:57:57 2017 (r317131) +++ stable/11/sys/fs/nfsclient/nfs_clvnops.c Wed Apr 19 11:10:02 2017 (r317132) @@ -520,6 +520,8 @@ nfs_open(struct vop_open_args *ap) if (np->n_flag & NMODIFIED) { mtx_unlock(&np->n_mtx); error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + return (EBADF); if (error == EINTR || error == EIO) { if (NFS_ISV4(vp)) (void) nfsrpc_close(vp, 0, ap->a_td); @@ -556,6 +558,8 @@ nfs_open(struct vop_open_args *ap) np->n_direofoffset = 0; mtx_unlock(&np->n_mtx); error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + return (EBADF); if (error == EINTR || error == EIO) { if (NFS_ISV4(vp)) (void) nfsrpc_close(vp, 0, ap->a_td); @@ -576,6 +580,8 @@ nfs_open(struct vop_open_args *ap) if (np->n_directio_opens == 0) { mtx_unlock(&np->n_mtx); error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + return (EBADF); if (error) { if (NFS_ISV4(vp)) (void) nfsrpc_close(vp, 0, ap->a_td); @@ -714,8 +720,11 @@ nfs_close(struct vop_close_args *ap) * np->n_flag &= ~NMODIFIED; */ } - } else - error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); + } else { + error = ncl_vinvalbuf(vp, V_SAVE, ap->a_td, 1); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + return (EBADF); + } mtx_lock(&np->n_mtx); } /* @@ -931,13 +940,13 @@ nfs_setattr(struct vop_setattr_args *ap) if (np->n_flag & NMODIFIED) { tsize = np->n_size; mtx_unlock(&np->n_mtx); - if (vap->va_size == 0) - error = ncl_vinvalbuf(vp, 0, td, 1); - else - error = ncl_vinvalbuf(vp, V_SAVE, td, 1); - if (error) { - vnode_pager_setsize(vp, tsize); - return (error); + error = ncl_vinvalbuf(vp, vap->va_size == 0 ? + 0 : V_SAVE, td, 1); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + error = EBADF; + if (error != 0) { + vnode_pager_setsize(vp, tsize); + return (error); } /* * Call nfscl_delegmodtime() to set the modify time @@ -961,8 +970,10 @@ nfs_setattr(struct vop_setattr_args *ap) if ((vap->va_mtime.tv_sec != VNOVAL || vap->va_atime.tv_sec != VNOVAL) && (np->n_flag & NMODIFIED) && vp->v_type == VREG) { mtx_unlock(&np->n_mtx); - if ((error = ncl_vinvalbuf(vp, V_SAVE, td, 1)) != 0 && - (error == EINTR || error == EIO)) + error = ncl_vinvalbuf(vp, V_SAVE, td, 1); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + return (EBADF); + if (error == EINTR || error == EIO) return (error); } else mtx_unlock(&np->n_mtx); @@ -1665,8 +1676,10 @@ nfs_remove(struct vop_remove_args *ap) * unnecessary delayed writes later. */ error = ncl_vinvalbuf(vp, 0, cnp->cn_thread, 1); - /* Do the rpc */ - if (error != EINTR && error != EIO) + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + error = EBADF; + else if (error != EINTR && error != EIO) + /* Do the rpc */ error = nfs_removerpc(dvp, vp, cnp->cn_nameptr, cnp->cn_namelen, cnp->cn_cred, cnp->cn_thread); /* @@ -3055,6 +3068,10 @@ nfs_advlock(struct vop_advlock_args *ap) if ((np->n_flag & NMODIFIED) || ret || np->n_change != va.va_filerev) { (void) ncl_vinvalbuf(vp, V_SAVE, td, 1); + if ((vp->v_iflag & VI_DOOMED) != 0) { + NFSVOPUNLOCK(vp, 0); + return (EBADF); + } np->n_attrstamp = 0; KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(vp); ret = VOP_GETATTR(vp, &va, cred); From owner-svn-src-all@freebsd.org Wed Apr 19 11:11:52 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0736D44EC4; Wed, 19 Apr 2017 11:11:52 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 923FDCB3; Wed, 19 Apr 2017 11:11:52 +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 v3JBBpps048357; Wed, 19 Apr 2017 11:11:51 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JBBp00048356; Wed, 19 Apr 2017 11:11:51 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704191111.v3JBBp00048356@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 19 Apr 2017 11:11:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317133 - stable/11/sys/fs/nfsclient X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 11:11:52 -0000 Author: kib Date: Wed Apr 19 11:11:51 2017 New Revision: 317133 URL: https://svnweb.freebsd.org/changeset/base/317133 Log: MFC r316531: Handle nfs IO_ASYNC write requests asynchronously. Modified: stable/11/sys/fs/nfsclient/nfs_clbio.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/nfsclient/nfs_clbio.c ============================================================================== --- stable/11/sys/fs/nfsclient/nfs_clbio.c Wed Apr 19 11:10:02 2017 (r317132) +++ stable/11/sys/fs/nfsclient/nfs_clbio.c Wed Apr 19 11:11:51 2017 (r317133) @@ -1275,7 +1275,7 @@ again: error = error1; break; } - } else if ((n + on) == biosize) { + } else if ((n + on) == biosize || (ioflag & IO_ASYNC) != 0) { bp->b_flags |= B_ASYNC; (void) ncl_writebp(bp, 0, NULL); } else { From owner-svn-src-all@freebsd.org Wed Apr 19 11:13:33 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4D38D450AC; Wed, 19 Apr 2017 11:13:33 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7DC2EEC3; Wed, 19 Apr 2017 11:13:33 +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 v3JBDW4Y048467; Wed, 19 Apr 2017 11:13:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JBDWcK048466; Wed, 19 Apr 2017 11:13:32 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704191113.v3JBDWcK048466@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 19 Apr 2017 11:13:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317134 - stable/11/sys/fs/nfsclient X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 11:13:33 -0000 Author: kib Date: Wed Apr 19 11:13:32 2017 New Revision: 317134 URL: https://svnweb.freebsd.org/changeset/base/317134 Log: MFC r316532: Make nfs pageout coherent with the dirty state of the buffers. Modified: stable/11/sys/fs/nfsclient/nfs_clbio.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/nfsclient/nfs_clbio.c ============================================================================== --- stable/11/sys/fs/nfsclient/nfs_clbio.c Wed Apr 19 11:11:51 2017 (r317133) +++ stable/11/sys/fs/nfsclient/nfs_clbio.c Wed Apr 19 11:13:32 2017 (r317134) @@ -266,9 +266,7 @@ ncl_putpages(struct vop_putpages_args *a { struct uio uio; struct iovec iov; - vm_offset_t kva; - struct buf *bp; - int iomode, must_commit, i, error, npages, count; + int i, error, npages, count; off_t offset; int *rtvals; struct vnode *vp; @@ -322,44 +320,26 @@ ncl_putpages(struct vop_putpages_args *a } mtx_unlock(&np->n_mtx); - /* - * We use only the kva address for the buffer, but this is extremely - * convenient and fast. - */ - bp = getpbuf(&ncl_pbuf_freecnt); - - kva = (vm_offset_t) bp->b_data; - pmap_qenter(kva, pages, npages); PCPU_INC(cnt.v_vnodeout); PCPU_ADD(cnt.v_vnodepgsout, count); - iov.iov_base = (caddr_t) kva; + iov.iov_base = unmapped_buf; iov.iov_len = count; uio.uio_iov = &iov; uio.uio_iovcnt = 1; uio.uio_offset = offset; uio.uio_resid = count; - uio.uio_segflg = UIO_SYSSPACE; + uio.uio_segflg = UIO_NOCOPY; uio.uio_rw = UIO_WRITE; uio.uio_td = td; - if ((ap->a_sync & VM_PAGER_PUT_SYNC) == 0) - iomode = NFSWRITE_UNSTABLE; - else - iomode = NFSWRITE_FILESYNC; - - error = ncl_writerpc(vp, &uio, cred, &iomode, &must_commit, 0); + error = VOP_WRITE(vp, &uio, vnode_pager_putpages_ioflags(ap->a_sync), + cred); crfree(cred); - pmap_qremove(kva, npages); - relpbuf(bp, &ncl_pbuf_freecnt); - - if (error == 0 || !nfs_keep_dirty_on_error) { + if (error == 0 || !nfs_keep_dirty_on_error) vnode_pager_undirty_pages(pages, rtvals, count - uio.uio_resid); - if (must_commit) - ncl_clearcommit(vp->v_mount); - } - return rtvals[0]; + return (rtvals[0]); } /* @@ -1385,7 +1365,8 @@ ncl_vinvalbuf(struct vnode *vp, int flag /* * Now, flush as required. */ - if ((flags & V_SAVE) && (vp->v_bufobj.bo_object != NULL)) { + if ((flags & (V_SAVE | V_VMIO)) == V_SAVE && + vp->v_bufobj.bo_object != NULL) { VM_OBJECT_WLOCK(vp->v_bufobj.bo_object); vm_object_page_clean(vp->v_bufobj.bo_object, 0, 0, OBJPC_SYNC); VM_OBJECT_WUNLOCK(vp->v_bufobj.bo_object); From owner-svn-src-all@freebsd.org Wed Apr 19 11:38:08 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C05FFD45EFF; Wed, 19 Apr 2017 11: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 mx1.freebsd.org (Postfix) with ESMTPS id 8CDBD19D4; Wed, 19 Apr 2017 11: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 v3JBc7NN056616; Wed, 19 Apr 2017 11:38:07 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JBc7Up056615; Wed, 19 Apr 2017 11:38:07 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201704191138.v3JBc7Up056615@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 19 Apr 2017 11:38:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317135 - head/sys/compat/linuxkpi/common/src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 11:38:08 -0000 Author: hselasky Date: Wed Apr 19 11:38:07 2017 New Revision: 317135 URL: https://svnweb.freebsd.org/changeset/base/317135 Log: Zero number of CPUs should be translated into the default number of CPUs when allocating a LinuxKPI workqueue. This also ensures that the created taskqueue always have a non-zero number of worker threads. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/src/linux_work.c Modified: head/sys/compat/linuxkpi/common/src/linux_work.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_work.c Wed Apr 19 11:13:32 2017 (r317134) +++ head/sys/compat/linuxkpi/common/src/linux_work.c Wed Apr 19 11:38:07 2017 (r317135) @@ -57,6 +57,8 @@ struct workqueue_struct *system_long_wq; struct workqueue_struct *system_unbound_wq; struct workqueue_struct *system_power_efficient_wq; +static int linux_default_wq_cpus = 4; + static void linux_delayed_work_timer_fn(void *); /* @@ -497,6 +499,12 @@ linux_create_workqueue_common(const char { struct workqueue_struct *wq; + /* + * If zero CPUs are specified use the default number of CPUs: + */ + if (cpus == 0) + cpus = linux_default_wq_cpus; + wq = kmalloc(sizeof(*wq), M_WAITOK | M_ZERO); wq->taskqueue = taskqueue_create(name, M_WAITOK, taskqueue_thread_enqueue, &wq->taskqueue); @@ -537,6 +545,9 @@ linux_work_init(void *arg) if (max_wq_cpus < 4) max_wq_cpus = 4; + /* set default number of CPUs */ + linux_default_wq_cpus = max_wq_cpus; + linux_system_short_wq = alloc_workqueue("linuxkpi_short_wq", 0, max_wq_cpus); linux_system_long_wq = alloc_workqueue("linuxkpi_long_wq", 0, max_wq_cpus); From owner-svn-src-all@freebsd.org Wed Apr 19 12:26:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D1C0D45FB2; Wed, 19 Apr 2017 12:26:22 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 09A711BE7; Wed, 19 Apr 2017 12:26:22 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id EE71F1FE022; Wed, 19 Apr 2017 14:26:18 +0200 (CEST) Subject: Re: svn commit: r316811 - head/sys/contrib/ipfilter/netinet To: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201704140513.v3E5Dp7v039091@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <45d50d78-239a-8d9a-286f-310513c3b8a4@selasky.org> Date: Wed, 19 Apr 2017 14:24:29 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <201704140513.v3E5Dp7v039091@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 12:26:22 -0000 On 04/14/17 07:13, Cy Schubert wrote: > Author: cy > Date: Fri Apr 14 05:13:50 2017 > New Revision: 316811 > URL: https://svnweb.freebsd.org/changeset/base/316811 > > Log: > Add missing free()'s after calls to randomize(). > > PR: NetBSD PR/50559 > Obtained from: Netbsd radix_ipf.c r1.6 > MFC after: 1 week > > Modified: > head/sys/contrib/ipfilter/netinet/radix_ipf.c > > Modified: head/sys/contrib/ipfilter/netinet/radix_ipf.c > ============================================================================== > --- head/sys/contrib/ipfilter/netinet/radix_ipf.c Fri Apr 14 05:12:01 2017 (r316810) > +++ head/sys/contrib/ipfilter/netinet/radix_ipf.c Fri Apr 14 05:13:50 2017 (r316811) > @@ -38,7 +38,7 @@ static void buildnodes __P((addrfamily_t > static ipf_rdx_node_t *ipf_rx_find_addr __P((ipf_rdx_node_t *, u_32_t *)); > static ipf_rdx_node_t *ipf_rx_lookup __P((ipf_rdx_head_t *, addrfamily_t *, > addrfamily_t *)); > -static ipf_rdx_node_t *ipf_rx_match __P((ipf_rdx_head_t *, addrfamily_t *)); > +/* $NetBSD: radix_ipf.c,v 1.6 2015/12/15 12:30:34 christos Exp $ */ > > /* > * Foreword. > @@ -1509,6 +1509,8 @@ random_add(rnh) > add_addr(rnh, i, order[i]); > checktree(rnh); > } > + > + free(order); > } > > > @@ -1526,5 +1528,7 @@ random_delete(rnh) > delete_addr(rnh, i); > checktree(rnh); > } > + > + free(order); > } > #endif /* RDX_DEBUG */ > > I'm seeing this compilation warning: freebsd/sys/contrib/ipfilter/netinet/radix_ipf.c:184: warning: function declaration isn't a prototype [-Wstrict-prototypes] *** [radix_ipf.o] Error code 1 --HPS From owner-svn-src-all@freebsd.org Wed Apr 19 12:33:57 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 44646D4454E; Wed, 19 Apr 2017 12:33:57 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0746E398; Wed, 19 Apr 2017 12:33:57 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 4ABAE1FE022; Wed, 19 Apr 2017 14:33:55 +0200 (CEST) Subject: Re: svn commit: r316811 - head/sys/contrib/ipfilter/netinet To: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201704140513.v3E5Dp7v039091@repo.freebsd.org> <45d50d78-239a-8d9a-286f-310513c3b8a4@selasky.org> From: Hans Petter Selasky Message-ID: Date: Wed, 19 Apr 2017 14:32:05 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <45d50d78-239a-8d9a-286f-310513c3b8a4@selasky.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 12:33:57 -0000 On 04/19/17 14:24, Hans Petter Selasky wrote: > -static ipf_rdx_node_t *ipf_rx_match __P((ipf_rdx_head_t *, addrfamily_t ^^^ was removal of this prototype intended? > *)); > +/* $NetBSD: radix_ipf.c,v 1.6 2015/12/15 12:30:34 christos Exp $ */ --HPS From owner-svn-src-all@freebsd.org Wed Apr 19 12:39:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04837D448D1; Wed, 19 Apr 2017 12:39:47 +0000 (UTC) (envelope-from n_hibma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AED4BA45; Wed, 19 Apr 2017 12:39:46 +0000 (UTC) (envelope-from n_hibma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JCdjm5080807; Wed, 19 Apr 2017 12:39:45 GMT (envelope-from n_hibma@FreeBSD.org) Received: (from n_hibma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JCdjCJ080806; Wed, 19 Apr 2017 12:39:45 GMT (envelope-from n_hibma@FreeBSD.org) Message-Id: <201704191239.v3JCdjCJ080806@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: n_hibma set sender to n_hibma@FreeBSD.org using -f From: Nick Hibma Date: Wed, 19 Apr 2017 12:39:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317136 - head/tools/tools/nanobsd/embedded X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 12:39:47 -0000 Author: n_hibma Date: Wed Apr 19 12:39:45 2017 New Revision: 317136 URL: https://svnweb.freebsd.org/changeset/base/317136 Log: A test was moved but without the definition of $d. The test however always succeeds because 'test -d' always returns true. Also some speling fixes. Modified: head/tools/tools/nanobsd/embedded/common Modified: head/tools/tools/nanobsd/embedded/common ============================================================================== --- head/tools/tools/nanobsd/embedded/common Wed Apr 19 11:38:07 2017 (r317135) +++ head/tools/tools/nanobsd/embedded/common Wed Apr 19 12:39:45 2017 (r317136) @@ -65,7 +65,7 @@ # Long Term # o common tooling for creating images for odd-ball platforms # o support for boot loaders other than uboot in the image -# or via special insturctions +# or via special instructions # o No pony support. Sadly, you cannot have a pony. # @@ -343,8 +343,8 @@ die( ) { # Automatically include the packaging port here so it is always first so it # builds the port and adds the package so we can add other packages. #XXX Doesn't work for cross build, so punting until I can integreate qemu-static -#XXX or poudere, both of which require priv'd execution. Or qemu-system, which -#XXX is super, super slow. +#XXX or poudriere, both of which require priv'd execution. Or qemu-system, +#XXX which is super, super slow. #add_port ports-mgmt/pkg #add_port security/sudo #add_port ftp/curl @@ -480,6 +480,7 @@ dos_boot_part ( ) ( ) if [ -n "$NANO_BOOT_PKG" ]; then + local d=/usr/local/share/u-boot/${NANO_BOOT_PKG} if [ ! -d ${d} ]; then echo ${NANO_BOOT_PKG} not installed. Sadly, it must be. exit 1 @@ -492,7 +493,7 @@ if [ -n "$NANO_BOOT_PKG" ]; then fi product_custom ( ) ( - # not quie ready to tweak these in nopriv build + # not quite ready to tweak these in nopriv build if [ -z ${NANO_NOPRIV_BUILD} ]; then # Last second tweaks -- generally not needed chown -R root:wheel ${NANO_WORLDDIR}/root From owner-svn-src-all@freebsd.org Wed Apr 19 13:03:31 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AEC5D453D1; Wed, 19 Apr 2017 13:03:31 +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 mx1.freebsd.org (Postfix) with ESMTPS id 2F76818E1; Wed, 19 Apr 2017 13:03:31 +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 v3JD3UVv093316; Wed, 19 Apr 2017 13:03:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JD3UZV093313; Wed, 19 Apr 2017 13:03:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201704191303.v3JD3UZV093313@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 19 Apr 2017 13:03:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317137 - in head/sys/compat/linuxkpi/common: include/linux src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 13:03:31 -0000 Author: hselasky Date: Wed Apr 19 13:03:29 2017 New Revision: 317137 URL: https://svnweb.freebsd.org/changeset/base/317137 Log: Fix problem regarding priority inversion when using the concurrency kit, CK, in the LinuxKPI. When threads are pinned to a CPU core or when there is only one CPU, it can happen that a higher priority thread can call the CK synchronize function while a lower priority thread holds the read lock. Because the CK's synchronize is a simple wait loop this can lead to a deadlock situation. To solve this problem use the recently introduced CK's wait callback function. When detecting a CK blocking condition figure out the lowest priority among the blockers and update the calling thread's priority and yield. If another CPU core is holding the read lock, pin the thread to the blocked CPU core and update the priority. The calling threads priority and CPU bindings are restored before return. If a thread holding a CK read lock is detected to be sleeping, pause() will be used instead of yield(). MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/sched.h head/sys/compat/linuxkpi/common/include/linux/srcu.h head/sys/compat/linuxkpi/common/src/linux_rcu.c Modified: head/sys/compat/linuxkpi/common/include/linux/sched.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/sched.h Wed Apr 19 12:39:45 2017 (r317136) +++ head/sys/compat/linuxkpi/common/include/linux/sched.h Wed Apr 19 13:03:29 2017 (r317137) @@ -37,7 +37,7 @@ #include #include -#include +#include #include #include #include @@ -72,6 +72,8 @@ struct task_struct { unsigned bsd_ioctl_len; struct completion parked; struct completion exited; + TAILQ_ENTRY(task_struct) rcu_entry; + int rcu_recurse; }; #define current ({ \ Modified: head/sys/compat/linuxkpi/common/include/linux/srcu.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/srcu.h Wed Apr 19 12:39:45 2017 (r317136) +++ head/sys/compat/linuxkpi/common/include/linux/srcu.h Wed Apr 19 13:03:29 2017 (r317137) @@ -29,9 +29,7 @@ #ifndef _LINUX_SRCU_H_ #define _LINUX_SRCU_H_ -struct srcu_epoch_record; struct srcu_struct { - struct srcu_epoch_record *ss_epoch_record; }; #define srcu_dereference(ptr,srcu) ((__typeof(*(ptr)) *)(ptr)) Modified: head/sys/compat/linuxkpi/common/src/linux_rcu.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_rcu.c Wed Apr 19 12:39:45 2017 (r317136) +++ head/sys/compat/linuxkpi/common/src/linux_rcu.c Wed Apr 19 13:03:29 2017 (r317137) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include @@ -45,26 +46,34 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include -struct callback_head; -struct writer_epoch_record { - ck_epoch_record_t epoch_record; - struct mtx head_lock; - struct mtx sync_lock; - struct task task; - STAILQ_HEAD(, callback_head) head; -} __aligned(CACHE_LINE_SIZE); +/* + * By defining CONFIG_NO_RCU_SKIP LinuxKPI RCU locks and asserts will + * not be skipped during panic(). + */ +#ifdef CONFIG_NO_RCU_SKIP +#define RCU_SKIP(void) 0 +#else +#define RCU_SKIP(void) unlikely(SCHEDULER_STOPPED() || kdb_active) +#endif struct callback_head { STAILQ_ENTRY(callback_head) entry; rcu_callback_t func; }; -struct srcu_epoch_record { +struct linux_epoch_head { + STAILQ_HEAD(, callback_head) cb_head; + struct mtx lock; + struct task task; +} __aligned(CACHE_LINE_SIZE); + +struct linux_epoch_record { ck_epoch_record_t epoch_record; - struct mtx read_lock; - struct mtx sync_lock; -}; + TAILQ_HEAD(, task_struct) ts_head; + int cpuid; +} __aligned(CACHE_LINE_SIZE); /* * Verify that "struct rcu_head" is big enough to hold "struct @@ -72,57 +81,42 @@ struct srcu_epoch_record { * compile flags for including ck_epoch.h to all clients of the * LinuxKPI. */ -CTASSERT(sizeof(struct rcu_head) >= sizeof(struct callback_head)); +CTASSERT(sizeof(struct rcu_head) == sizeof(struct callback_head)); /* * Verify that "epoch_record" is at beginning of "struct - * writer_epoch_record": + * linux_epoch_record": */ -CTASSERT(offsetof(struct writer_epoch_record, epoch_record) == 0); - -/* - * Verify that "epoch_record" is at beginning of "struct - * srcu_epoch_record": - */ -CTASSERT(offsetof(struct srcu_epoch_record, epoch_record) == 0); +CTASSERT(offsetof(struct linux_epoch_record, epoch_record) == 0); static ck_epoch_t linux_epoch; -static MALLOC_DEFINE(M_LRCU, "lrcu", "Linux RCU"); -static DPCPU_DEFINE(ck_epoch_record_t *, linux_reader_epoch_record); -static DPCPU_DEFINE(struct writer_epoch_record *, linux_writer_epoch_record); +static struct linux_epoch_head linux_epoch_head; +static DPCPU_DEFINE(struct linux_epoch_record, linux_epoch_record); static void linux_rcu_cleaner_func(void *, int); static void linux_rcu_runtime_init(void *arg __unused) { + struct linux_epoch_head *head; int i; ck_epoch_init(&linux_epoch); - /* setup reader records */ - CPU_FOREACH(i) { - ck_epoch_record_t *record; - - record = malloc(sizeof(*record), M_LRCU, M_WAITOK | M_ZERO); - ck_epoch_register(&linux_epoch, record, NULL); + head = &linux_epoch_head; - DPCPU_ID_SET(i, linux_reader_epoch_record, record); - } + mtx_init(&head->lock, "LRCU-HEAD", NULL, MTX_DEF); + TASK_INIT(&head->task, 0, linux_rcu_cleaner_func, NULL); + STAILQ_INIT(&head->cb_head); - /* setup writer records */ CPU_FOREACH(i) { - struct writer_epoch_record *record; + struct linux_epoch_record *record; - record = malloc(sizeof(*record), M_LRCU, M_WAITOK | M_ZERO); + record = &DPCPU_ID_GET(i, linux_epoch_record); + record->cpuid = i; ck_epoch_register(&linux_epoch, &record->epoch_record, NULL); - mtx_init(&record->head_lock, "LRCU-HEAD", NULL, MTX_DEF); - mtx_init(&record->sync_lock, "LRCU-SYNC", NULL, MTX_DEF); - TASK_INIT(&record->task, 0, linux_rcu_cleaner_func, record); - STAILQ_INIT(&record->head); - - DPCPU_ID_SET(i, linux_writer_epoch_record, record); + TAILQ_INIT(&record->ts_head); } } SYSINIT(linux_rcu_runtime, SI_SUB_LOCK, SI_ORDER_SECOND, linux_rcu_runtime_init, NULL); @@ -130,91 +124,40 @@ SYSINIT(linux_rcu_runtime, SI_SUB_LOCK, static void linux_rcu_runtime_uninit(void *arg __unused) { - ck_stack_entry_t *cursor; - ck_stack_entry_t *next; - int i; + struct linux_epoch_head *head; - /* make sure all callbacks have been called */ - linux_rcu_barrier(); + head = &linux_epoch_head; - /* destroy all writer record mutexes */ - CPU_FOREACH(i) { - struct writer_epoch_record *record; - - record = DPCPU_ID_GET(i, linux_writer_epoch_record); - - mtx_destroy(&record->head_lock); - mtx_destroy(&record->sync_lock); - } - - /* free all registered reader and writer records */ - CK_STACK_FOREACH_SAFE(&linux_epoch.records, cursor, next) { - ck_epoch_record_t *record; - - record = container_of(cursor, - struct ck_epoch_record, record_next); - free(record, M_LRCU); - } + /* destroy head lock */ + mtx_destroy(&head->lock); } SYSUNINIT(linux_rcu_runtime, SI_SUB_LOCK, SI_ORDER_SECOND, linux_rcu_runtime_uninit, NULL); -static inline struct srcu_epoch_record * -linux_srcu_get_record(void) -{ - struct srcu_epoch_record *record; - - WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, - "linux_srcu_get_record() might sleep"); - - /* - * NOTE: The only records that are unregistered and can be - * recycled are srcu_epoch_records. - */ - record = (struct srcu_epoch_record *)ck_epoch_recycle(&linux_epoch, NULL); - if (__predict_true(record != NULL)) - return (record); - - record = malloc(sizeof(*record), M_LRCU, M_WAITOK | M_ZERO); - mtx_init(&record->read_lock, "SRCU-READ", NULL, MTX_DEF | MTX_NOWITNESS); - mtx_init(&record->sync_lock, "SRCU-SYNC", NULL, MTX_DEF | MTX_NOWITNESS); - ck_epoch_register(&linux_epoch, &record->epoch_record, NULL); - - return (record); -} - -static inline void -linux_rcu_synchronize_sub(struct writer_epoch_record *record) -{ - - /* protect access to epoch_record */ - mtx_lock(&record->sync_lock); - ck_epoch_synchronize(&record->epoch_record); - mtx_unlock(&record->sync_lock); -} - static void -linux_rcu_cleaner_func(void *context, int pending __unused) +linux_rcu_cleaner_func(void *context __unused, int pending __unused) { - struct writer_epoch_record *record; + struct linux_epoch_head *head; struct callback_head *rcu; - STAILQ_HEAD(, callback_head) head; + STAILQ_HEAD(, callback_head) tmp_head; + + linux_set_current(curthread); - record = context; + head = &linux_epoch_head; /* move current callbacks into own queue */ - mtx_lock(&record->head_lock); - STAILQ_INIT(&head); - STAILQ_CONCAT(&head, &record->head); - mtx_unlock(&record->head_lock); + mtx_lock(&head->lock); + STAILQ_INIT(&tmp_head); + STAILQ_CONCAT(&tmp_head, &head->cb_head); + mtx_unlock(&head->lock); /* synchronize */ - linux_rcu_synchronize_sub(record); + linux_synchronize_rcu(); /* dispatch all callbacks, if any */ - while ((rcu = STAILQ_FIRST(&head)) != NULL) { + while ((rcu = STAILQ_FIRST(&tmp_head)) != NULL) { uintptr_t offset; - STAILQ_REMOVE_HEAD(&head, entry); + STAILQ_REMOVE_HEAD(&tmp_head, entry); offset = (uintptr_t)rcu->func; @@ -228,148 +171,217 @@ linux_rcu_cleaner_func(void *context, in void linux_rcu_read_lock(void) { - ck_epoch_record_t *record; + struct linux_epoch_record *record; + struct task_struct *ts; + + if (RCU_SKIP()) + return; /* * Pin thread to current CPU so that the unlock code gets the - * same per-CPU reader epoch record: + * same per-CPU epoch record: */ sched_pin(); - record = DPCPU_GET(linux_reader_epoch_record); + record = &DPCPU_GET(linux_epoch_record); + ts = current; /* * Use a critical section to prevent recursion inside * ck_epoch_begin(). Else this function supports recursion. */ critical_enter(); - ck_epoch_begin(record, NULL); + ck_epoch_begin(&record->epoch_record, NULL); + ts->rcu_recurse++; + if (ts->rcu_recurse == 1) + TAILQ_INSERT_TAIL(&record->ts_head, ts, rcu_entry); critical_exit(); } void linux_rcu_read_unlock(void) { - ck_epoch_record_t *record; + struct linux_epoch_record *record; + struct task_struct *ts; + + if (RCU_SKIP()) + return; - record = DPCPU_GET(linux_reader_epoch_record); + record = &DPCPU_GET(linux_epoch_record); + ts = current; /* * Use a critical section to prevent recursion inside * ck_epoch_end(). Else this function supports recursion. */ critical_enter(); - ck_epoch_end(record, NULL); + ck_epoch_end(&record->epoch_record, NULL); + ts->rcu_recurse--; + if (ts->rcu_recurse == 0) + TAILQ_REMOVE(&record->ts_head, ts, rcu_entry); critical_exit(); sched_unpin(); } +static void +linux_synchronize_rcu_cb(ck_epoch_t *epoch __unused, ck_epoch_record_t *epoch_record, void *arg __unused) +{ + struct linux_epoch_record *record = + container_of(epoch_record, struct linux_epoch_record, epoch_record); + struct thread *td = curthread; + struct task_struct *ts; + + /* check if blocked on the current CPU */ + if (record->cpuid == PCPU_GET(cpuid)) { + bool is_sleeping = 0; + u_char prio = 0; + u_char old_prio; + + /* + * Find the lowest priority or sleeping thread which + * is blocking synchronization on this CPU core. All + * the threads in the queue are CPU-pinned and cannot + * go anywhere while the current thread is locked. + */ + TAILQ_FOREACH(ts, &record->ts_head, rcu_entry) { + if (ts->task_thread->td_priority > prio) + prio = ts->task_thread->td_priority; + is_sleeping |= (ts->task_thread->td_inhibitors != 0); + } + + if (is_sleeping) { + thread_unlock(td); + pause("W", 1); + thread_lock(td); + } else { + old_prio = td->td_priority; + /* set new thread priority */ + sched_prio(td, prio); + /* task switch */ + mi_switch(SW_VOL | SWT_RELINQUISH, NULL); + /* restore thread priority */ + sched_prio(td, old_prio); + } + } else { + /* + * To avoid spinning move execution to the other CPU + * which is blocking synchronization. Set highest + * thread priority so that code gets run. The thread + * priority will be restored later. + */ + sched_prio(td, 0); + sched_bind(td, record->cpuid); + } +} + void linux_synchronize_rcu(void) { - linux_rcu_synchronize_sub(DPCPU_GET(linux_writer_epoch_record)); + struct thread *td; + int was_bound; + int old_cpu; + int old_pinned; + + if (RCU_SKIP()) + return; + + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, + "linux_synchronize_rcu() can sleep"); + + td = curthread; + + DROP_GIANT(); + + /* + * Synchronizing RCU might change the CPU core this function + * is running on. Save current values: + */ + thread_lock(td); + + old_cpu = PCPU_GET(cpuid); + old_pinned = td->td_pinned; + td->td_pinned = 0; + was_bound = sched_is_bound(td); + sched_bind(td, old_cpu); + + ck_epoch_synchronize_wait(&linux_epoch, + &linux_synchronize_rcu_cb, NULL); + + /* restore CPU binding, if any */ + if (was_bound != 0) { + sched_bind(td, old_cpu); + } else { + /* get thread back to initial CPU, if any */ + if (old_pinned != 0) + sched_bind(td, old_cpu); + sched_unbind(td); + } + /* restore pinned after bind */ + td->td_pinned = old_pinned; + thread_unlock(td); + + PICKUP_GIANT(); } void linux_rcu_barrier(void) { - int i; - - CPU_FOREACH(i) { - struct writer_epoch_record *record; + struct linux_epoch_head *head; - record = DPCPU_ID_GET(i, linux_writer_epoch_record); + linux_synchronize_rcu(); - linux_rcu_synchronize_sub(record); + head = &linux_epoch_head; - /* wait for callbacks to complete */ - taskqueue_drain(taskqueue_fast, &record->task); - } + /* wait for callbacks to complete */ + taskqueue_drain(taskqueue_fast, &head->task); } void linux_call_rcu(struct rcu_head *context, rcu_callback_t func) { struct callback_head *rcu = (struct callback_head *)context; - struct writer_epoch_record *record; - - record = DPCPU_GET(linux_writer_epoch_record); + struct linux_epoch_head *head = &linux_epoch_head; - mtx_lock(&record->head_lock); + mtx_lock(&head->lock); rcu->func = func; - STAILQ_INSERT_TAIL(&record->head, rcu, entry); - taskqueue_enqueue(taskqueue_fast, &record->task); - mtx_unlock(&record->head_lock); + STAILQ_INSERT_TAIL(&head->cb_head, rcu, entry); + taskqueue_enqueue(taskqueue_fast, &head->task); + mtx_unlock(&head->lock); } int init_srcu_struct(struct srcu_struct *srcu) { - struct srcu_epoch_record *record; - - record = linux_srcu_get_record(); - srcu->ss_epoch_record = record; return (0); } void cleanup_srcu_struct(struct srcu_struct *srcu) { - struct srcu_epoch_record *record; - - record = srcu->ss_epoch_record; - srcu->ss_epoch_record = NULL; - - ck_epoch_unregister(&record->epoch_record); } int srcu_read_lock(struct srcu_struct *srcu) { - struct srcu_epoch_record *record; - - record = srcu->ss_epoch_record; - - mtx_lock(&record->read_lock); - ck_epoch_begin(&record->epoch_record, NULL); - mtx_unlock(&record->read_lock); - + linux_rcu_read_lock(); return (0); } void srcu_read_unlock(struct srcu_struct *srcu, int key __unused) { - struct srcu_epoch_record *record; - - record = srcu->ss_epoch_record; - - mtx_lock(&record->read_lock); - ck_epoch_end(&record->epoch_record, NULL); - mtx_unlock(&record->read_lock); + linux_rcu_read_unlock(); } void synchronize_srcu(struct srcu_struct *srcu) { - struct srcu_epoch_record *record; - - record = srcu->ss_epoch_record; - - mtx_lock(&record->sync_lock); - ck_epoch_synchronize(&record->epoch_record); - mtx_unlock(&record->sync_lock); + linux_synchronize_rcu(); } void srcu_barrier(struct srcu_struct *srcu) { - struct srcu_epoch_record *record; - - record = srcu->ss_epoch_record; - - mtx_lock(&record->sync_lock); - ck_epoch_barrier(&record->epoch_record); - mtx_unlock(&record->sync_lock); + linux_rcu_barrier(); } From owner-svn-src-all@freebsd.org Wed Apr 19 13:04:36 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F885D4543D; Wed, 19 Apr 2017 13:04:36 +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 mx1.freebsd.org (Postfix) with ESMTPS id 0E42F1A53; Wed, 19 Apr 2017 13:04:35 +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 v3JD4Z5f093395; Wed, 19 Apr 2017 13:04:35 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JD4ZeN093394; Wed, 19 Apr 2017 13:04:35 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201704191304.v3JD4ZeN093394@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 19 Apr 2017 13:04:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317138 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 13:04:36 -0000 Author: hselasky Date: Wed Apr 19 13:04:34 2017 New Revision: 317138 URL: https://svnweb.freebsd.org/changeset/base/317138 Log: Use __typeof() instead of typeof() in some RCU related macros in the LinuxKPI. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/rcupdate.h Modified: head/sys/compat/linuxkpi/common/include/linux/rcupdate.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/rcupdate.h Wed Apr 19 13:03:29 2017 (r317137) +++ head/sys/compat/linuxkpi/common/include/linux/rcupdate.h Wed Apr 19 13:04:34 2017 (r317138) @@ -36,7 +36,7 @@ #define LINUX_KFREE_RCU_OFFSET_MAX 4096 /* exclusive */ #define RCU_INITIALIZER(v) \ - ((typeof(*(v)) __force __rcu *)(v)) + ((__typeof(*(v)) *)(v)) #define RCU_INIT_POINTER(p, v) do { \ (p) = (v); \ @@ -74,10 +74,10 @@ } while (0) #define rcu_access_pointer(p) \ - ((typeof(*p) __force __kernel *)(READ_ONCE(p))) + ((__typeof(*p) *)(READ_ONCE(p))) #define rcu_dereference_protected(p, c) \ - ((typeof(*p) __force __kernel *)(p)) + ((__typeof(*p) *)(p)) #define rcu_dereference(p) \ rcu_dereference_protected(p, 0) From owner-svn-src-all@freebsd.org Wed Apr 19 13:24:33 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5BD5FD45B40; Wed, 19 Apr 2017 13:24:33 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C3D27FC; Wed, 19 Apr 2017 13:24:33 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JDOW0K001393; Wed, 19 Apr 2017 13:24:32 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JDOWYo001392; Wed, 19 Apr 2017 13:24:32 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704191324.v3JDOWYo001392@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Wed, 19 Apr 2017 13:24:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317139 - head/sys/contrib/ipfilter/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 13:24:33 -0000 Author: cy Date: Wed Apr 19 13:24:32 2017 New Revision: 317139 URL: https://svnweb.freebsd.org/changeset/base/317139 Log: Restore prototype accidently removed by r316811. Also remove $NetBSD$ accidentally added. Reported by: hps, lwhsu Modified: head/sys/contrib/ipfilter/netinet/radix_ipf.c Modified: head/sys/contrib/ipfilter/netinet/radix_ipf.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/radix_ipf.c Wed Apr 19 13:04:34 2017 (r317138) +++ head/sys/contrib/ipfilter/netinet/radix_ipf.c Wed Apr 19 13:24:32 2017 (r317139) @@ -38,7 +38,7 @@ static void buildnodes __P((addrfamily_t static ipf_rdx_node_t *ipf_rx_find_addr __P((ipf_rdx_node_t *, u_32_t *)); static ipf_rdx_node_t *ipf_rx_lookup __P((ipf_rdx_head_t *, addrfamily_t *, addrfamily_t *)); -/* $NetBSD: radix_ipf.c,v 1.6 2015/12/15 12:30:34 christos Exp $ */ +static ipf_rdx_node_t *ipf_rx_match __P((ipf_rdx_head_t *, addrfamily_t *)); /* * Foreword. From owner-svn-src-all@freebsd.org Wed Apr 19 13:27:17 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BEE07D45C54; Wed, 19 Apr 2017 13:27:17 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 78A1CA73; Wed, 19 Apr 2017 13:27:17 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id 0pdYdYLpJoUq60pdZdDRxJ; Wed, 19 Apr 2017 07:27:15 -0600 X-Authority-Analysis: v=2.2 cv=JLpLi4Cb c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=kj9zAlcOel0A:10 a=AzvcPWV-tVgA:10 a=ndaoGXS1AAAA:8 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=GCBpw9OTSTnOxHl-IPYA:9 a=CjuIK1q_8ugA:10 a=mFeOnlTyF09QQMGr2mMI:22 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 792F110DC; Sun, 16 Apr 2017 02:37:25 -0700 (PDT) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id v3JDRCOu013203; Wed, 19 Apr 2017 06:27:12 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201704191327.v3JDRCOu013203@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Hans Petter Selasky cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316811 - head/sys/contrib/ipfilter/netinet In-Reply-To: Message from Hans Petter Selasky of "Wed, 19 Apr 2017 14:32:05 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 19 Apr 2017 06:27:12 -0700 X-CMAE-Envelope: MS4wfASIvQHeu8nabV9p+jh+Ob+tFt15uJlCJ/vgK3I2k01fObH0b0mqzCudqQZocYaoveyvwckxLr0FtFDC60a3wKPaMX06O/I3DCeBFA5wUk91L1SecLlj 4RFQUhZhh5XDWhDNtG9TBGLIVevLlLn1nElAM06Q9SJ9n+SvvcBwaA7DWJqtFSJY56v0gPq3Tp82/as3KKuIJzbNjortCZYr3DXgCwWMVmPa2Hau9xer+vha zou38y2taXxezajZ5EgDO9OFsrYpmY2J2LR8euZl558bMoPSh7tcLIynVAjnUislW/x1iZ5Ja3+hSRvC/B2SXA== X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 13:27:17 -0000 In message , Hans Petter Sela sky writes: > On 04/19/17 14:24, Hans Petter Selasky wrote: > > -static ipf_rdx_node_t *ipf_rx_match __P((ipf_rdx_head_t *, addrfamily_t > ^^^ was removal of this prototype intended? > > > *)); > > +/* $NetBSD: radix_ipf.c,v 1.6 2015/12/15 12:30:34 christos Exp $ */ Both lines were inadvertently added. It's been fixed now. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-all@freebsd.org Wed Apr 19 14:07:36 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4953D45A77; Wed, 19 Apr 2017 14:07:36 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5592E660; Wed, 19 Apr 2017 14:07:36 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JE7Z8F018627; Wed, 19 Apr 2017 14:07:35 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JE7Zuu018624; Wed, 19 Apr 2017 14:07:35 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201704191407.v3JE7Zuu018624@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 19 Apr 2017 14:07: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: r317140 - in stable/11: share/mk sys/boot/efi sys/boot/efi/loader/arch/arm64 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 14:07:36 -0000 Author: andrew Date: Wed Apr 19 14:07:35 2017 New Revision: 317140 URL: https://svnweb.freebsd.org/changeset/base/317140 Log: Fix the arm64 userland building with lld: MFC 308124: On arm64 build the efi loader with -fPIC. Without this clang 3.9 will generate relocation in the self relocation code. MFC 316608: Add -fPIC to the standalone build flags on arm64. This is needed as loader.efi is position independend, however we were not building it as such causing a build failure when building with lld. MFC 315452: Mark the EFI PE header as allocated. While ld.bfd doesn't seem to care about not having this flag ld.lld fails to link without it. Modified: stable/11/share/mk/bsd.stand.mk stable/11/sys/boot/efi/Makefile.inc stable/11/sys/boot/efi/loader/arch/arm64/start.S Directory Properties: stable/11/ (props changed) Modified: stable/11/share/mk/bsd.stand.mk ============================================================================== --- stable/11/share/mk/bsd.stand.mk Wed Apr 19 13:24:32 2017 (r317139) +++ stable/11/share/mk/bsd.stand.mk Wed Apr 19 14:07:35 2017 (r317140) @@ -17,7 +17,7 @@ CFLAGS+= -fPIC -mno-red-zone CFLAGS+= -Os .endif .if ${MACHINE_CPUARCH} == "aarch64" -CFLAGS+= -mgeneral-regs-only +CFLAGS+= -fPIC -mgeneral-regs-only .endif .if ${MACHINE_CPUARCH} == "mips" CFLAGS+= -G0 -fno-pic -mno-abicalls Modified: stable/11/sys/boot/efi/Makefile.inc ============================================================================== --- stable/11/sys/boot/efi/Makefile.inc Wed Apr 19 13:24:32 2017 (r317139) +++ stable/11/sys/boot/efi/Makefile.inc Wed Apr 19 14:07:35 2017 (r317140) @@ -20,6 +20,7 @@ CFLAGS+= -mno-aes .if ${MACHINE_CPUARCH} == "aarch64" CFLAGS+= -fshort-wchar +CFLAGS+= -fPIC .endif .if ${MACHINE_CPUARCH} == "arm" Modified: stable/11/sys/boot/efi/loader/arch/arm64/start.S ============================================================================== --- stable/11/sys/boot/efi/loader/arch/arm64/start.S Wed Apr 19 13:24:32 2017 (r317139) +++ stable/11/sys/boot/efi/loader/arch/arm64/start.S Wed Apr 19 14:07:35 2017 (r317140) @@ -40,7 +40,7 @@ #define IMAGE_SCN_MEM_EXECUTE 0x20000000 #define IMAGE_SCN_MEM_READ 0x40000000 - .section .peheader + .section .peheader,"a" efi_start: /* The MS-DOS Stub, only used to get the offset of the COFF header */ .ascii "MZ" From owner-svn-src-all@freebsd.org Wed Apr 19 14:24:23 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 037CDD45096; Wed, 19 Apr 2017 14:24:23 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) Received: from ppsw-40.csi.cam.ac.uk (ppsw-40.csi.cam.ac.uk [131.111.8.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B73E112FD; Wed, 19 Apr 2017 14:24:22 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://help.uis.cam.ac.uk/email-scanner-virus Received: from sc1.bsdpad.com ([163.172.212.18]:61583) by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587) with esmtpsa (LOGIN:rb743) (TLSv1:ECDHE-RSA-AES256-SHA:256) id 1d0qWp-000HSt-lT (Exim 4.89) (return-path ); Wed, 19 Apr 2017 15:24:19 +0100 Date: Wed, 19 Apr 2017 14:21:06 +0000 From: Ruslan Bukin To: Baptiste Daroussin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd Message-ID: <20170419142106.GA59031@bsdpad.com> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <201704152005.v3FK5M2j002459@repo.freebsd.org> User-Agent: Mutt/1.6.1 (2016-04-27) Sender: "R. Bukin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 14:24:23 -0000 This break RISC-V world build: /home/br/obj//riscv.riscv64/usr/home/br/dev/freebsd-head/tmp/usr/lib/libprivatezstd.so: undefined reference to `__bswap si2' /home/br/obj//riscv.riscv64/usr/home/br/dev/freebsd-head/tmp/usr/lib/libprivatezstd.so: undefined reference to `__bswap di2' Here is patch that makes it compilable: diff --git a/contrib/zstd/lib/common/xxhash.c b/contrib/zstd/lib/common/xxhash.c index eb44222c5fc..d59a22a0638 100644 --- a/contrib/zstd/lib/common/xxhash.c +++ b/contrib/zstd/lib/common/xxhash.c @@ -206,7 +206,7 @@ static U64 XXH_read64(const void* memPtr) #if defined(_MSC_VER) /* Visual Studio */ # define XXH_swap32 _byteswap_ulong # define XXH_swap64 _byteswap_uint64 -#elif GCC_VERSION >= 403 +#elif (GCC_VERSION >= 403 && !defined(__riscv__)) # define XXH_swap32 __builtin_bswap32 # define XXH_swap64 __builtin_bswap64 #else Ruslan On Sat, Apr 15, 2017 at 08:05:22PM +0000, Baptiste Daroussin wrote: > Author: bapt > Date: Sat Apr 15 20:05:22 2017 > New Revision: 316978 > URL: https://svnweb.freebsd.org/changeset/base/316978 > > Log: > Import zstandard 1.1.4 in base > > zstandard is a new compression library/tool which is very fast at > compression/decompression > > For now import as a private library > > Added: > head/contrib/zstd/ > - copied from r316976, vendor/zstd/dist/ > head/lib/libzstd/ > head/lib/libzstd/Makefile (contents, props changed) > head/usr.bin/zstd/ > head/usr.bin/zstd/Makefile (contents, props changed) > Modified: > head/etc/mtree/BSD.usr.dist > head/lib/Makefile > head/share/mk/src.libnames.mk > head/usr.bin/Makefile > > Modified: head/etc/mtree/BSD.usr.dist > ============================================================================== > --- head/etc/mtree/BSD.usr.dist Sat Apr 15 20:03:50 2017 (r316977) > +++ head/etc/mtree/BSD.usr.dist Sat Apr 15 20:05:22 2017 (r316978) > @@ -17,6 +17,8 @@ > .. > ucl > .. > + zstd > + .. > .. > .. > lib > > Modified: head/lib/Makefile > ============================================================================== > --- head/lib/Makefile Sat Apr 15 20:03:50 2017 (r316977) > +++ head/lib/Makefile Sat Apr 15 20:05:22 2017 (r316978) > @@ -90,6 +90,7 @@ SUBDIR= ${SUBDIR_BOOTSTRAP} \ > libxo \ > liby \ > libz \ > + libzstd \ > ncurses > > # Inter-library dependencies. When the makefile for a library contains LDADD > > Added: head/lib/libzstd/Makefile > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/lib/libzstd/Makefile Sat Apr 15 20:05:22 2017 (r316978) > @@ -0,0 +1,34 @@ > +# $FreeBSD$ > + > +LIB= zstd > +SRCS= entropy_common.c \ > + error_private.c \ > + fse_decompress.c \ > + pool.c \ > + threading.c \ > + xxhash.c \ > + zstd_common.c \ > + fse_compress.c \ > + huf_compress.c \ > + zstd_compress.c \ > + zstdmt_compress.c \ > + huf_decompress.c \ > + zstd_decompress.c \ > + zbuff_common.c \ > + zbuff_compress.c \ > + zbuff_decompress.c \ > + cover.c \ > + divsufsort.c \ > + zdict.c > +WARNS= 2 > +INCS= zstd.h > +CFLAGS+= -I${ZSTDDIR}/lib -I${ZSTDDIR}/lib/common -DXXH_NAMESPACE=ZSTD_ > + > +PRIVATELIB= yes > + > +ZSTDDIR= ${SRCTOP}/contrib/zstd > +.PATH: ${ZSTDDIR}/lib/common ${ZSTDDIR}/lib/compress \ > + ${ZSTDDIR}/lib/decompress ${ZSTDDIR}/lib/deprecated \ > + ${ZSTDDIR}/lib/dictBuilder ${ZSTDDIR}/lib > + > +.include > > Modified: head/share/mk/src.libnames.mk > ============================================================================== > --- head/share/mk/src.libnames.mk Sat Apr 15 20:03:50 2017 (r316977) > +++ head/share/mk/src.libnames.mk Sat Apr 15 20:05:22 2017 (r316978) > @@ -24,7 +24,8 @@ _PRIVATELIBS= \ > sqlite3 \ > ssh \ > ucl \ > - unbound > + unbound \ > + zstd > > _INTERNALLIBS= \ > amu \ > > Modified: head/usr.bin/Makefile > ============================================================================== > --- head/usr.bin/Makefile Sat Apr 15 20:03:50 2017 (r316977) > +++ head/usr.bin/Makefile Sat Apr 15 20:05:22 2017 (r316978) > @@ -189,7 +189,8 @@ SUBDIR= alias \ > xo \ > xz \ > xzdec \ > - yes > + yes \ > + zstd > > # NB: keep these sorted by MK_* knobs > > > Added: head/usr.bin/zstd/Makefile > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/usr.bin/zstd/Makefile Sat Apr 15 20:05:22 2017 (r316978) > @@ -0,0 +1,21 @@ > +# $FreeBSD$ > + > +PROG= zstd > +SRCS= bench.c \ > + datagen.c \ > + dibio.c \ > + fileio.c \ > + zstdcli.c > + > +CFLAGS+= -I${SRCTOP}/contrib/zstd/programs \ > + -I${SRCTOP}/contrib/zstd/lib/common \ > + -I${SRCTOP}/contrib/zstd/lib/compress \ > + -I${SRCTOP}/contrib/zstd/lib/dictBuilder \ > + -I${SRCTOP}/contrib/zstd/lib \ > + -DXXH_NAMESPACE=ZSTD_ > + > +WARNS= 2 > +LIBADD= zstd > +.PATH: ${SRCTOP}/contrib/zstd/programs > + > +.include > From owner-svn-src-all@freebsd.org Wed Apr 19 14:43:52 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8603D450DF; Wed, 19 Apr 2017 14:43:52 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8590B1EF2; Wed, 19 Apr 2017 14:43:52 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JEhpmd039007; Wed, 19 Apr 2017 14:43:51 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JEhpt1039006; Wed, 19 Apr 2017 14:43:51 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704191443.v3JEhpt1039006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Apr 2017 14:43:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317141 - head/contrib/elftoolchain/readelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 14:43:52 -0000 Author: emaste Date: Wed Apr 19 14:43:51 2017 New Revision: 317141 URL: https://svnweb.freebsd.org/changeset/base/317141 Log: readelf: dump MIPS abiflags section This is not fully fleshed out but is sufficient to dump the SHT_MIPS_ABIFLAGS used in FreeBSD. Reviewed by: imp MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8241 Modified: head/contrib/elftoolchain/readelf/readelf.c Modified: head/contrib/elftoolchain/readelf/readelf.c ============================================================================== --- head/contrib/elftoolchain/readelf/readelf.c Wed Apr 19 14:07:35 2017 (r317140) +++ head/contrib/elftoolchain/readelf/readelf.c Wed Apr 19 14:43:51 2017 (r317141) @@ -296,6 +296,7 @@ static void dump_elf(struct readelf *re) static void dump_dyn_val(struct readelf *re, GElf_Dyn *dyn, uint32_t stab); static void dump_dynamic(struct readelf *re); static void dump_liblist(struct readelf *re); +static void dump_mips_abiflags(struct readelf *re, struct section *s); static void dump_mips_attributes(struct readelf *re, uint8_t *p, uint8_t *pe); static void dump_mips_odk_reginfo(struct readelf *re, uint8_t *p, size_t sz); static void dump_mips_options(struct readelf *re, struct section *s); @@ -325,6 +326,7 @@ static const char *dwarf_regname(struct static struct dumpop *find_dumpop(struct readelf *re, size_t si, const char *sn, int op, int t); static int get_ent_count(struct section *s, int *ent_count); +static int get_mips_register_size(uint8_t flag); static char *get_regoff_str(struct readelf *re, Dwarf_Half reg, Dwarf_Addr off); static const char *get_string(struct readelf *re, int strtab, size_t off); @@ -4111,6 +4113,10 @@ dump_mips_specific_info(struct readelf * } } + if (s->name != NULL && (!strcmp(s->name, ".MIPS.abiflags") || + (s->type == SHT_MIPS_ABIFLAGS))) + dump_mips_abiflags(re, s); + /* * Dump .reginfo if present (although it will be ignored by an OS if a * .MIPS.options section is present, according to SGI mips64 spec). @@ -4124,6 +4130,82 @@ dump_mips_specific_info(struct readelf * } static void +dump_mips_abiflags(struct readelf *re, struct section *s) +{ + Elf_Data *d; + uint8_t *p; + int elferr; + uint32_t isa_ext, ases, flags1, flags2; + uint16_t version; + uint8_t isa_level, isa_rev, gpr_size, cpr1_size, cpr2_size, fp_abi; + + if ((d = elf_rawdata(s->scn, NULL)) == NULL) { + elferr = elf_errno(); + if (elferr != 0) + warnx("elf_rawdata failed: %s", + elf_errmsg(elferr)); + return; + } + if (d->d_size != 24) { + warnx("invalid MIPS abiflags section size"); + return; + } + + p = d->d_buf; + version = re->dw_decode(&p, 2); + printf("MIPS ABI Flags Version: %u", version); + if (version != 0) { + printf(" (unknown)\n\n"); + return; + } + printf("\n\n"); + + isa_level = re->dw_decode(&p, 1); + isa_rev = re->dw_decode(&p, 1); + gpr_size = re->dw_decode(&p, 1); + cpr1_size = re->dw_decode(&p, 1); + cpr2_size = re->dw_decode(&p, 1); + fp_abi = re->dw_decode(&p, 1); + isa_ext = re->dw_decode(&p, 4); + ases = re->dw_decode(&p, 4); + flags1 = re->dw_decode(&p, 4); + flags2 = re->dw_decode(&p, 4); + + printf("ISA: "); + if (isa_rev <= 1) + printf("MIPS%u\n", isa_level); + else + printf("MIPS%ur%u\n", isa_level, isa_rev); + printf("GPR size: %d\n", get_mips_register_size(gpr_size)); + printf("CPR1 size: %d\n", get_mips_register_size(cpr1_size)); + printf("CPR2 size: %d\n", get_mips_register_size(cpr2_size)); + printf("FP ABI: "); + switch (fp_abi) { + case 3: + printf("Soft float"); + break; + default: + printf("%u", fp_abi); + break; + } + printf("\nISA Extension: %u\n", isa_ext); + printf("ASEs: %u\n", ases); + printf("FLAGS 1: %08x\n", flags1); + printf("FLAGS 2: %08x\n", flags2); +} + +static int +get_mips_register_size(uint8_t flag) +{ + switch (flag) { + case 0: return 0; + case 1: return 32; + case 2: return 64; + case 3: return 128; + default: return -1; + } +} +static void dump_mips_reginfo(struct readelf *re, struct section *s) { Elf_Data *d; From owner-svn-src-all@freebsd.org Wed Apr 19 14:49:20 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B4A5D45217; Wed, 19 Apr 2017 14:49:20 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 11E6485B; Wed, 19 Apr 2017 14:49:20 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JEnJTw039275; Wed, 19 Apr 2017 14:49:19 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JEnJl1039274; Wed, 19 Apr 2017 14:49:19 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704191449.v3JEnJl1039274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Wed, 19 Apr 2017 14:49:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317142 - head/sys/dev/fb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 14:49:20 -0000 Author: bde Date: Wed Apr 19 14:49:18 2017 New Revision: 317142 URL: https://svnweb.freebsd.org/changeset/base/317142 Log: When we don't use the parameter table in the BIOS, also don't use most of our tweaked modes based on it. In practice, this means limiting the tweaked modes to at most 80x50 based on 80x25, so there are no 90-column, 80x30 or 80x60 modes. This happens when the the initial mode is is not in the parameter table. We always detected this case, but assumed that the (necessarily nonstandard) parameters of the initial mode could be tweaked just as blindly as the probably-standard parameters of initial modes in the table. On 1 laptop system with near-VGA where the initial mode is nonstandard, this is because the hardware apparently doesn't support 9-bit mode, but otherwise has standard timing. The initial mode has 8-bit mode CRTC horizontal parameters similar to those in syscons' 90-column modes and in EGA modes. Tweaking these values for the 90-column modes has little effect except to print the extra 10 columns off the screen. Tweaking from 80x25 to 80x30 requires changing from 400 scan lines to 480. This can probably be made to work, but syscons blindly applies values based on standard timing. This gives blank output. Tweaking from 80x25 to 80x50 doesn't change the CRTC timing and works. Modified: head/sys/dev/fb/vga.c Modified: head/sys/dev/fb/vga.c ============================================================================== --- head/sys/dev/fb/vga.c Wed Apr 19 14:43:51 2017 (r317141) +++ head/sys/dev/fb/vga.c Wed Apr 19 14:49:18 2017 (r317142) @@ -939,7 +939,7 @@ probe_adapters(void) #if !defined(VGA_NO_BIOS) && !defined(VGA_NO_MODE_CHANGE) u_char *mp; #endif - int i; + int height, i, width; /* do this test only once */ if (vga_init_done) @@ -1134,15 +1134,34 @@ probe_adapters(void) case COMP_DIFFERENT: default: /* - * Don't use the parameter table in BIOS. It doesn't - * look familiar to us. Video mode switching is allowed - * only if the new mode is the same as or based on - * the initial mode. + * Don't use the parameter table in the BIOS, since + * even the BIOS doesn't use it for the initial mode. + * Restrict the tweaked modes to (in practice) 80x50 + * from 80x25 with 400 scan lines, since the only safe + * tweak is changing the characters from 8x16 to 8x8. */ video_mode_ptr = NULL; bzero(mode_map, sizeof(mode_map)); mode_map[adp->va_initial_mode] = adpstate.regs; rows_offset = 1; + + width = height = -1; + for (i = 0; i < nitems(bios_vmode); ++i) { + if (bios_vmode[i].vi_mode == adp->va_initial_mode) { + width = bios_vmode[i].vi_width; + height = bios_vmode[i].vi_height; + break; + } + } + for (i = 0; i < nitems(bios_vmode); ++i) { + if (bios_vmode[i].vi_mode != adp->va_initial_mode && + map_mode_num(bios_vmode[i].vi_mode) == + adp->va_initial_mode && + (bios_vmode[i].vi_width != width || + bios_vmode[i].vi_height != 2 * height)) { + bios_vmode[i].vi_mode = NA; + } + } break; } } From owner-svn-src-all@freebsd.org Wed Apr 19 14:53:26 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5B87D45467; Wed, 19 Apr 2017 14:53:26 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 85E1BDB7; Wed, 19 Apr 2017 14:53:26 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by freefall.freebsd.org (Postfix, from userid 1235) id AFE8F5E76; Wed, 19 Apr 2017 14:53:25 +0000 (UTC) Date: Wed, 19 Apr 2017 16:53:25 +0200 From: Baptiste Daroussin To: Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd Message-ID: <20170419145325.zjvo3hq2z3egcp26@ivaldir.net> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <20170419142106.GA59031@bsdpad.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="mefsnsm53xpgretk" Content-Disposition: inline In-Reply-To: <20170419142106.GA59031@bsdpad.com> User-Agent: NeoMutt/20170306 (1.8.0) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 14:53:26 -0000 --mefsnsm53xpgretk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Apr 19, 2017 at 02:21:06PM +0000, Ruslan Bukin wrote: > This break RISC-V world build: > /home/br/obj//riscv.riscv64/usr/home/br/dev/freebsd-head/tmp/usr/lib/libp= rivatezstd.so: undefined reference to `__bswap > si2' > /home/br/obj//riscv.riscv64/usr/home/br/dev/freebsd-head/tmp/usr/lib/libp= rivatezstd.so: undefined reference to `__bswap > di2' >=20 > Here is patch that makes it compilable: >=20 > diff --git a/contrib/zstd/lib/common/xxhash.c b/contrib/zstd/lib/common/x= xhash.c > index eb44222c5fc..d59a22a0638 100644 > --- a/contrib/zstd/lib/common/xxhash.c > +++ b/contrib/zstd/lib/common/xxhash.c > @@ -206,7 +206,7 @@ static U64 XXH_read64(const void* memPtr) > #if defined(_MSC_VER) /* Visual Studio */ > # define XXH_swap32 _byteswap_ulong > # define XXH_swap64 _byteswap_uint64 > -#elif GCC_VERSION >=3D 403 > +#elif (GCC_VERSION >=3D 403 && !defined(__riscv__)) > # define XXH_swap32 __builtin_bswap32 > # define XXH_swap64 __builtin_bswap64 > #else >=20 > Ruslan Thank you, can you please commit it? Have you upstreamed it, do you want me= to do it? (I have already signed the facebook agreement) Best regards, Bapt --mefsnsm53xpgretk Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAlj3eeIACgkQY4mL3PG3 Ploygg//T+gs26GtRD54jUx/CnUKZTjisQwKHHFB1KdnK2Pi+L5auL+drZdHOUw3 9hnYLglz2zxsZ2fY47VQKDKVyBemi0fUd/Xuc0jVNaKCikUWMCr9vUk89kF9coWJ wxtr8ARiSv8KpILz9NlzdvmJR7DjLd1P2qDfRMHWWBCSOcl3mNoO99rRmr3q7q9l LMbN/GJlwEYj80eK0XT96Ysstzojp3pBn6hf2jueHxehXMRyQY+E7ovM7JithiEI aOX17SyBJlorcWalprz9IXo6Z3wjmFaSbvBv5vBE7xQypQru5zJQd7wnDwmTQ7kr NneO+gjN9OFar8+Eu5B8ko5KYkBXdk4rw1ltL6XBNzeVj0eGPFgH5xs5XpcMUM7w 6fInLmc136q9u0Qiq6B3uxRpv9ENUgGzSSLHIIOtzz/F4zOrxWjLO7QPb2dFZAj4 FTtIbhGGFMzBz7ic3PGVJmSdW7qhd36WlFmaV6lVtSQkLxIBTdneAOmoGSeU+MAu 97q2G5FJOPoQ8PHKsahDEaw/rtmi+BWUcZFzy+srWjio6zH8wW8FTkioP0qOTYMi teNk11Qk5P40nIYJg08zPN42XjChp9Nli6JEGPMY6i6LNKoOp+ztpUh22zGxu4HU JX7IKXWfpfJ9FrfgZCUSJSlIJ+qjSjGT5N7QG3ddJBQBR7omOq8= =jo56 -----END PGP SIGNATURE----- --mefsnsm53xpgretk-- From owner-svn-src-all@freebsd.org Wed Apr 19 15:04:55 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5AAD5D45AA9; Wed, 19 Apr 2017 15:04:55 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F1D891D4F; Wed, 19 Apr 2017 15:04:54 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JF4sST050485; Wed, 19 Apr 2017 15:04:54 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JF4r5T050468; Wed, 19 Apr 2017 15:04:53 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201704191504.v3JF4r5T050468@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Wed, 19 Apr 2017 15:04:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317143 - in head/sys/cam: . ata scsi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 15:04:55 -0000 Author: scottl Date: Wed Apr 19 15:04:52 2017 New Revision: 317143 URL: https://svnweb.freebsd.org/changeset/base/317143 Log: Add infrastructure to the ATA and SCSI transports that supports using a driver-supplied sbuf for printing device discovery announcements. This helps ensure that messages to the console will be properly serialized (through sbuf_putbuf) and not be truncated and interleaved with other messages. The infrastructure mirrors the existing xpt_announce_periph() entry point and is opt-in for now. No content or formatting changes are visible to the operator other than the new coherency. While here, eliminate the stack usage of the temporary announcement buffer in some of the drivers. It's moved to the softc for now, but future work will eliminate it entirely by making the code flow more linear. Future work will also address locking so that the sbufs can be dynamically sized. The scsi_da, scs_cd, scsi_ses, and ata_da drivers are converted at this point, other drivers can be converted at a later date. A tunable+sysctl, kern.cam.announce_nosbuf, exists for testing purposes but will be removed later. TODO: Eliminate all of the code duplication and temporary buffers. The old printf-based methods will be retired, and xpt_announce_periph() will just be a wrapper that uses a dynamically sized sbuf. This requires that the register and deregister paths be made malloc-safe, which they aren't currently. Sponsored by: Netflix Modified: head/sys/cam/ata/ata_all.c head/sys/cam/ata/ata_all.h head/sys/cam/ata/ata_da.c head/sys/cam/ata/ata_xpt.c head/sys/cam/cam_periph.c head/sys/cam/cam_xpt.c head/sys/cam/cam_xpt_internal.h head/sys/cam/cam_xpt_periph.h head/sys/cam/scsi/scsi_all.c head/sys/cam/scsi/scsi_all.h head/sys/cam/scsi/scsi_cd.c head/sys/cam/scsi/scsi_da.c head/sys/cam/scsi/scsi_enc.c head/sys/cam/scsi/scsi_enc_internal.h head/sys/cam/scsi/scsi_xpt.c Modified: head/sys/cam/ata/ata_all.c ============================================================================== --- head/sys/cam/ata/ata_all.c Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/ata/ata_all.c Wed Apr 19 15:04:52 2017 (r317143) @@ -382,12 +382,10 @@ void ata_print_ident(struct ata_params *ident_data) { const char *proto; - char product[48], revision[16], ata[12], sata[12]; + char ata[12], sata[12]; + + ata_print_ident_short(ident_data); - cam_strvis(product, ident_data->model, sizeof(ident_data->model), - sizeof(product)); - cam_strvis(revision, ident_data->revision, sizeof(ident_data->revision), - sizeof(revision)); proto = (ident_data->config == ATA_PROTO_CFA) ? "CFA" : (ident_data->config & ATA_PROTO_ATAPI) ? "ATAPI" : "ATA"; if (ata_version(ident_data->version_major) == 0) { @@ -412,7 +410,55 @@ ata_print_ident(struct ata_params *ident snprintf(sata, sizeof(sata), " SATA"); } else sata[0] = 0; - printf("<%s %s> %s%s device\n", product, revision, ata, sata); + printf(" %s%s device\n", ata, sata); +} + +void +ata_print_ident_sbuf(struct ata_params *ident_data, struct sbuf *sb) +{ + const char *proto, *sata; + int version; + + ata_print_ident_short_sbuf(ident_data, sb); + sbuf_printf(sb, " "); + + proto = (ident_data->config == ATA_PROTO_CFA) ? "CFA" : + (ident_data->config & ATA_PROTO_ATAPI) ? "ATAPI" : "ATA"; + version = ata_version(ident_data->version_major); + + switch (version) { + case 0: + sbuf_printf(sb, "%s", proto); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + sbuf_printf(sb, "%s-%d", proto, version); + break; + case 8: + sbuf_printf(sb, "%s8-ACS", proto); + break; + default: + sbuf_printf(sb, "ACS-%d %s", version - 7, proto); + break; + } + + if (ident_data->satacapabilities && ident_data->satacapabilities != 0xffff) { + if (ident_data->satacapabilities & ATA_SATA_GEN3) + sata = " SATA 3.x"; + else if (ident_data->satacapabilities & ATA_SATA_GEN2) + sata = " SATA 2.x"; + else if (ident_data->satacapabilities & ATA_SATA_GEN1) + sata = " SATA 1.x"; + else + sata = " SATA"; + } else + sata = ""; + sbuf_printf(sb, "%s device\n", sata); } void @@ -428,18 +474,38 @@ ata_print_ident_short(struct ata_params } void +ata_print_ident_short_sbuf(struct ata_params *ident_data, struct sbuf *sb) +{ + + sbuf_printf(sb, "<"); + cam_strvis_sbuf(sb, ident_data->model, sizeof(ident_data->model), 0); + sbuf_printf(sb, " "); + cam_strvis_sbuf(sb, ident_data->revision, sizeof(ident_data->revision), 0); + sbuf_printf(sb, ">"); +} + +void semb_print_ident(struct sep_identify_data *ident_data) { - char vendor[9], product[17], revision[5], fw[5], in[7], ins[5]; + char in[7], ins[5]; - cam_strvis(vendor, ident_data->vendor_id, 8, sizeof(vendor)); - cam_strvis(product, ident_data->product_id, 16, sizeof(product)); - cam_strvis(revision, ident_data->product_rev, 4, sizeof(revision)); - cam_strvis(fw, ident_data->firmware_rev, 4, sizeof(fw)); + semb_print_ident_short(ident_data); cam_strvis(in, ident_data->interface_id, 6, sizeof(in)); cam_strvis(ins, ident_data->interface_rev, 4, sizeof(ins)); - printf("<%s %s %s %s> SEMB %s %s device\n", - vendor, product, revision, fw, in, ins); + printf(" SEMB %s %s device\n", in, ins); +} + +void +semb_print_ident_sbuf(struct sep_identify_data *ident_data, struct sbuf *sb) +{ + + semb_print_ident_short_sbuf(ident_data, sb); + + sbuf_printf(sb, " SEMB "); + cam_strvis_sbuf(sb, ident_data->interface_id, 6, 0); + sbuf_printf(sb, " "); + cam_strvis_sbuf(sb, ident_data->interface_rev, 4, 0); + sbuf_printf(sb, " device\n"); } void @@ -454,6 +520,21 @@ semb_print_ident_short(struct sep_identi printf("<%s %s %s %s>", vendor, product, revision, fw); } +void +semb_print_ident_short_sbuf(struct sep_identify_data *ident_data, struct sbuf *sb) +{ + + sbuf_printf(sb, "<"); + cam_strvis_sbuf(sb, ident_data->vendor_id, 8, 0); + sbuf_printf(sb, " "); + cam_strvis_sbuf(sb, ident_data->product_id, 16, 0); + sbuf_printf(sb, " "); + cam_strvis_sbuf(sb, ident_data->product_rev, 4, 0); + sbuf_printf(sb, " "); + cam_strvis_sbuf(sb, ident_data->firmware_rev, 4, 0); + sbuf_printf(sb, ">"); +} + uint32_t ata_logical_sector_size(struct ata_params *ident_data) { Modified: head/sys/cam/ata/ata_all.h ============================================================================== --- head/sys/cam/ata/ata_all.h Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/ata/ata_all.h Wed Apr 19 15:04:52 2017 (r317143) @@ -110,7 +110,9 @@ int ata_status_sbuf(struct ccb_ataio *at int ata_res_sbuf(struct ata_res *res, struct sbuf *sb); void ata_print_ident(struct ata_params *ident_data); +void ata_print_ident_sbuf(struct ata_params *ident_data, struct sbuf *sb); void ata_print_ident_short(struct ata_params *ident_data); +void ata_print_ident_short_sbuf(struct ata_params *ident_data, struct sbuf *sb); uint32_t ata_logical_sector_size(struct ata_params *ident_data); uint64_t ata_physical_sector_size(struct ata_params *ident_data); @@ -150,7 +152,9 @@ int ata_identify_match(caddr_t identbuff int ata_static_identify_match(caddr_t identbuffer, caddr_t table_entry); void semb_print_ident(struct sep_identify_data *ident_data); +void semb_print_ident_sbuf(struct sep_identify_data *ident_data, struct sbuf *sb); void semb_print_ident_short(struct sep_identify_data *ident_data); +void semb_print_ident_short_sbuf(struct sep_identify_data *ident_data, struct sbuf *sb); void semb_receive_diagnostic_results(struct ccb_ataio *ataio, u_int32_t retries, void (*cbfcnp)(struct cam_periph *, union ccb*), Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/ata/ata_da.c Wed Apr 19 15:04:52 2017 (r317143) @@ -256,6 +256,10 @@ struct ada_softc { u_int errors; u_int invalidations; #endif +#define ADA_ANNOUNCETMP_SZ 80 + char announce_temp[ADA_ANNOUNCETMP_SZ]; +#define ADA_ANNOUNCE_SZ 400 + char announce_buffer[ADA_ANNOUNCE_SZ]; }; struct ada_quirk_entry { @@ -1659,8 +1663,9 @@ adaregister(struct cam_periph *periph, v struct ada_softc *softc; struct ccb_pathinq cpi; struct ccb_getdev *cgd; - char announce_buf[80]; struct disk_params *dp; + struct sbuf sb; + char *announce_buf; caddr_t match; u_int maxio; int quirks; @@ -1680,6 +1685,9 @@ adaregister(struct cam_periph *periph, v return(CAM_REQ_CMP_ERR); } + announce_buf = softc->announce_temp; + bzero(announce_buf, ADA_ANNOUNCETMP_SZ); + if (cam_iosched_init(&softc->cam_iosched, periph) != 0) { printf("adaregister: Unable to probe new device. " "Unable to allocate iosched memory\n"); @@ -1713,17 +1721,17 @@ adaregister(struct cam_periph *periph, v */ (void)cam_periph_hold(periph, PRIBIO); cam_periph_unlock(periph); - snprintf(announce_buf, sizeof(announce_buf), + snprintf(announce_buf, ADA_ANNOUNCETMP_SZ, "kern.cam.ada.%d.quirks", periph->unit_number); quirks = softc->quirks; TUNABLE_INT_FETCH(announce_buf, &quirks); softc->quirks = quirks; softc->read_ahead = -1; - snprintf(announce_buf, sizeof(announce_buf), + snprintf(announce_buf, ADA_ANNOUNCETMP_SZ, "kern.cam.ada.%d.read_ahead", periph->unit_number); TUNABLE_INT_FETCH(announce_buf, &softc->read_ahead); softc->write_cache = -1; - snprintf(announce_buf, sizeof(announce_buf), + snprintf(announce_buf, ADA_ANNOUNCETMP_SZ, "kern.cam.ada.%d.write_cache", periph->unit_number); TUNABLE_INT_FETCH(announce_buf, &softc->write_cache); @@ -1829,12 +1837,16 @@ adaregister(struct cam_periph *periph, v cam_periph_lock(periph); dp = &softc->params; - snprintf(announce_buf, sizeof(announce_buf), + snprintf(announce_buf, ADA_ANNOUNCETMP_SZ, "%juMB (%ju %u byte sectors)", ((uintmax_t)dp->secsize * dp->sectors) / (1024 * 1024), (uintmax_t)dp->sectors, dp->secsize); - xpt_announce_periph(periph, announce_buf); - xpt_announce_quirks(periph, softc->quirks, ADA_Q_BIT_STRING); + + sbuf_new(&sb, softc->announce_buffer, ADA_ANNOUNCE_SZ, SBUF_FIXEDLEN); + xpt_announce_periph_sbuf(periph, &sb, announce_buf); + xpt_announce_quirks_sbuf(periph, &sb, softc->quirks, ADA_Q_BIT_STRING); + sbuf_finish(&sb); + sbuf_putbuf(&sb); /* * Create our sysctl variables, now that we know Modified: head/sys/cam/ata/ata_xpt.c ============================================================================== --- head/sys/cam/ata/ata_xpt.c Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/ata/ata_xpt.c Wed Apr 19 15:04:52 2017 (r317143) @@ -189,11 +189,16 @@ static void ata_dev_async(u_int32_t asy void *async_arg); static void ata_action(union ccb *start_ccb); static void ata_announce_periph(struct cam_periph *periph); +static void ata_announce_periph_sbuf(struct cam_periph *periph, struct sbuf *sb); static void ata_proto_announce(struct cam_ed *device); +static void ata_proto_announce_sbuf(struct cam_ed *device, struct sbuf *sb); static void ata_proto_denounce(struct cam_ed *device); +static void ata_proto_denounce_sbuf(struct cam_ed *device, struct sbuf *sb); static void ata_proto_debug_out(union ccb *ccb); static void semb_proto_announce(struct cam_ed *device); +static void semb_proto_announce_sbuf(struct cam_ed *device, struct sbuf *sb); static void semb_proto_denounce(struct cam_ed *device); +static void semb_proto_denounce_sbuf(struct cam_ed *device, struct sbuf *sb); static int ata_dma = 1; static int atapi_dma = 1; @@ -206,6 +211,7 @@ static struct xpt_xport_ops ata_xport_op .action = ata_action, .async = ata_dev_async, .announce = ata_announce_periph, + .announce_sbuf = ata_announce_periph_sbuf, }; #define ATA_XPT_XPORT(x, X) \ static struct xpt_xport ata_xport_ ## x = { \ @@ -222,7 +228,9 @@ ATA_XPT_XPORT(sata, SATA); static struct xpt_proto_ops ata_proto_ops_ata = { .announce = ata_proto_announce, + .announce_sbuf = ata_proto_announce_sbuf, .denounce = ata_proto_denounce, + .denounce_sbuf = ata_proto_denounce_sbuf, .debug_out = ata_proto_debug_out, }; static struct xpt_proto ata_proto_ata = { @@ -233,7 +241,9 @@ static struct xpt_proto ata_proto_ata = static struct xpt_proto_ops ata_proto_ops_satapm = { .announce = ata_proto_announce, + .announce_sbuf = ata_proto_announce_sbuf, .denounce = ata_proto_denounce, + .denounce_sbuf = ata_proto_denounce_sbuf, .debug_out = ata_proto_debug_out, }; static struct xpt_proto ata_proto_satapm = { @@ -244,7 +254,9 @@ static struct xpt_proto ata_proto_satapm static struct xpt_proto_ops ata_proto_ops_semb = { .announce = semb_proto_announce, + .announce_sbuf = semb_proto_announce_sbuf, .denounce = semb_proto_denounce, + .denounce_sbuf = semb_proto_denounce_sbuf, .debug_out = ata_proto_debug_out, }; static struct xpt_proto ata_proto_semb = { @@ -2072,42 +2084,51 @@ ata_dev_async(u_int32_t async_code, stru } static void -ata_announce_periph(struct cam_periph *periph) +_ata_announce_periph(struct cam_periph *periph, struct ccb_trans_settings *cts, u_int *speed) { struct ccb_pathinq cpi; - struct ccb_trans_settings cts; struct cam_path *path = periph->path; - u_int speed; - u_int mb; cam_periph_assert(periph, MA_OWNED); - xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL); - cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; - cts.type = CTS_TYPE_CURRENT_SETTINGS; - xpt_action((union ccb*)&cts); - if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) + xpt_setup_ccb(&cts->ccb_h, path, CAM_PRIORITY_NORMAL); + cts->ccb_h.func_code = XPT_GET_TRAN_SETTINGS; + cts->type = CTS_TYPE_CURRENT_SETTINGS; + xpt_action((union ccb*)cts); + if ((cts->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) return; /* Ask the SIM for its base transfer speed */ xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); /* Report connection speed */ - speed = cpi.base_transfer_speed; - if (cts.ccb_h.status == CAM_REQ_CMP && cts.transport == XPORT_ATA) { + *speed = cpi.base_transfer_speed; + if (cts->transport == XPORT_ATA) { struct ccb_trans_settings_pata *pata = - &cts.xport_specific.ata; + &cts->xport_specific.ata; if (pata->valid & CTS_ATA_VALID_MODE) - speed = ata_mode2speed(pata->mode); + *speed = ata_mode2speed(pata->mode); } - if (cts.ccb_h.status == CAM_REQ_CMP && cts.transport == XPORT_SATA) { + if (cts->transport == XPORT_SATA) { struct ccb_trans_settings_sata *sata = - &cts.xport_specific.sata; + &cts->xport_specific.sata; if (sata->valid & CTS_SATA_VALID_REVISION) - speed = ata_revision2speed(sata->revision); + *speed = ata_revision2speed(sata->revision); } +} + +static void +ata_announce_periph(struct cam_periph *periph) +{ + struct ccb_trans_settings cts; + u_int speed, mb; + + _ata_announce_periph(periph, &cts, &speed); + if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) + return; + mb = speed / 1000; if (mb > 0) printf("%s%d: %d.%03dMB/s transfers", @@ -2117,7 +2138,7 @@ ata_announce_periph(struct cam_periph *p printf("%s%d: %dKB/s transfers", periph->periph_name, periph->unit_number, speed); /* Report additional information about connection */ - if (cts.ccb_h.status == CAM_REQ_CMP && cts.transport == XPORT_ATA) { + if (cts.transport == XPORT_ATA) { struct ccb_trans_settings_pata *pata = &cts.xport_specific.ata; @@ -2130,7 +2151,7 @@ ata_announce_periph(struct cam_periph *p printf("PIO %dbytes", pata->bytecount); printf(")"); } - if (cts.ccb_h.status == CAM_REQ_CMP && cts.transport == XPORT_SATA) { + if (cts.transport == XPORT_SATA) { struct ccb_trans_settings_sata *sata = &cts.xport_specific.sata; @@ -2151,6 +2172,64 @@ ata_announce_periph(struct cam_periph *p } static void +ata_announce_periph_sbuf(struct cam_periph *periph, struct sbuf *sb) +{ + struct ccb_trans_settings cts; + u_int speed, mb; + + _ata_announce_periph(periph, &cts, &speed); + if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) + return; + + mb = speed / 1000; + if (mb > 0) + sbuf_printf(sb, "%s%d: %d.%03dMB/s transfers", + periph->periph_name, periph->unit_number, + mb, speed % 1000); + else + sbuf_printf(sb, "%s%d: %dKB/s transfers", periph->periph_name, + periph->unit_number, speed); + /* Report additional information about connection */ + if (cts.transport == XPORT_ATA) { + struct ccb_trans_settings_pata *pata = + &cts.xport_specific.ata; + + sbuf_printf(sb, " ("); + if (pata->valid & CTS_ATA_VALID_MODE) + sbuf_printf(sb, "%s, ", ata_mode2string(pata->mode)); + if ((pata->valid & CTS_ATA_VALID_ATAPI) && pata->atapi != 0) + sbuf_printf(sb, "ATAPI %dbytes, ", pata->atapi); + if (pata->valid & CTS_ATA_VALID_BYTECOUNT) + sbuf_printf(sb, "PIO %dbytes", pata->bytecount); + sbuf_printf(sb, ")"); + } + if (cts.transport == XPORT_SATA) { + struct ccb_trans_settings_sata *sata = + &cts.xport_specific.sata; + + sbuf_printf(sb, " ("); + if (sata->valid & CTS_SATA_VALID_REVISION) + sbuf_printf(sb, "SATA %d.x, ", sata->revision); + else + sbuf_printf(sb, "SATA, "); + if (sata->valid & CTS_SATA_VALID_MODE) + sbuf_printf(sb, "%s, ", ata_mode2string(sata->mode)); + if ((sata->valid & CTS_ATA_VALID_ATAPI) && sata->atapi != 0) + sbuf_printf(sb, "ATAPI %dbytes, ", sata->atapi); + if (sata->valid & CTS_SATA_VALID_BYTECOUNT) + sbuf_printf(sb, "PIO %dbytes", sata->bytecount); + sbuf_printf(sb, ")"); + } + sbuf_printf(sb, "\n"); +} + +static void +ata_proto_announce_sbuf(struct cam_ed *device, struct sbuf *sb) +{ + ata_print_ident_sbuf(&device->ident_data, sb); +} + +static void ata_proto_announce(struct cam_ed *device) { ata_print_ident(&device->ident_data); @@ -2163,6 +2242,18 @@ ata_proto_denounce(struct cam_ed *device } static void +ata_proto_denounce_sbuf(struct cam_ed *device, struct sbuf *sb) +{ + ata_print_ident_short_sbuf(&device->ident_data, sb); +} + +static void +semb_proto_announce_sbuf(struct cam_ed *device, struct sbuf *sb) +{ + semb_print_ident_sbuf((struct sep_identify_data *)&device->ident_data, sb); +} + +static void semb_proto_announce(struct cam_ed *device) { semb_print_ident((struct sep_identify_data *)&device->ident_data); @@ -2175,6 +2266,12 @@ semb_proto_denounce(struct cam_ed *devic } static void +semb_proto_denounce_sbuf(struct cam_ed *device, struct sbuf *sb) +{ + semb_print_ident_short_sbuf((struct sep_identify_data *)&device->ident_data, sb); +} + +static void ata_proto_debug_out(union ccb *ccb) { char cdb_str[(sizeof(struct ata_cmd) * 3) + 1]; Modified: head/sys/cam/cam_periph.c ============================================================================== --- head/sys/cam/cam_periph.c Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/cam_periph.c Wed Apr 19 15:04:52 2017 (r317143) @@ -641,8 +641,14 @@ cam_periph_invalidate(struct cam_periph return; CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph invalidated\n")); - if ((periph->flags & CAM_PERIPH_ANNOUNCED) && !rebooting) - xpt_denounce_periph(periph); + if ((periph->flags & CAM_PERIPH_ANNOUNCED) && !rebooting) { + struct sbuf sb; + + sbuf_new(&sb, NULL, 160, SBUF_FIXEDLEN); + xpt_denounce_periph_sbuf(periph, &sb); + sbuf_finish(&sb); + sbuf_putbuf(&sb); + } periph->flags |= CAM_PERIPH_INVALID; periph->flags &= ~CAM_PERIPH_NEW_DEV_FOUND; if (periph->periph_oninval != NULL) Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/cam_xpt.c Wed Apr 19 15:04:52 2017 (r317143) @@ -116,6 +116,7 @@ struct xpt_softc { TAILQ_HEAD(, ccb_hdr) ccb_scanq; int buses_to_config; int buses_config_done; + int announce_nosbuf; /* * Registered buses @@ -174,6 +175,8 @@ SYSCTL_INT(_kern_cam, OID_AUTO, boot_del &xsoftc.boot_delay, 0, "Bus registration wait time"); SYSCTL_UINT(_kern_cam, OID_AUTO, xpt_generation, CTLFLAG_RD, &xsoftc.xpt_generation, 0, "CAM peripheral generation count"); +SYSCTL_INT(_kern_cam, OID_AUTO, announce_nosbuf, CTLFLAG_RWTUN, + &xsoftc.announce_nosbuf, 0, "Don't use sbuf for announcements"); struct cam_doneq { struct mtx_padalign cam_doneq_mtx; @@ -1094,6 +1097,64 @@ xpt_announce_periph(struct cam_periph *p } void +xpt_announce_periph_sbuf(struct cam_periph *periph, struct sbuf *sb, + char *announce_string) +{ + struct cam_path *path = periph->path; + struct xpt_proto *proto; + + cam_periph_assert(periph, MA_OWNED); + periph->flags |= CAM_PERIPH_ANNOUNCED; + + /* Fall back to the non-sbuf method if necessary */ + if (xsoftc.announce_nosbuf != 0) { + xpt_announce_periph(periph, announce_string); + return; + } + proto = xpt_proto_find(path->device->protocol); + if (((proto != NULL) && (proto->ops->announce_sbuf == NULL)) || + (path->bus->xport->ops->announce_sbuf == NULL)) { + xpt_announce_periph(periph, announce_string); + return; + } + + sbuf_printf(sb, "%s%d at %s%d bus %d scbus%d target %d lun %jx\n", + periph->periph_name, periph->unit_number, + path->bus->sim->sim_name, + path->bus->sim->unit_number, + path->bus->sim->bus_id, + path->bus->path_id, + path->target->target_id, + (uintmax_t)path->device->lun_id); + sbuf_printf(sb, "%s%d: ", periph->periph_name, periph->unit_number); + + if (proto) + proto->ops->announce_sbuf(path->device, sb); + else + sbuf_printf(sb, "%s%d: Unknown protocol device %d\n", + periph->periph_name, periph->unit_number, + path->device->protocol); + if (path->device->serial_num_len > 0) { + /* Don't wrap the screen - print only the first 60 chars */ + sbuf_printf(sb, "%s%d: Serial Number %.60s\n", + periph->periph_name, periph->unit_number, + path->device->serial_num); + } + /* Announce transport details. */ + path->bus->xport->ops->announce_sbuf(periph, sb); + /* Announce command queueing. */ + if (path->device->inq_flags & SID_CmdQue + || path->device->flags & CAM_DEV_TAG_AFTER_COUNT) { + sbuf_printf(sb, "%s%d: Command Queueing enabled\n", + periph->periph_name, periph->unit_number); + } + /* Announce caller's details if they've passed in. */ + if (announce_string != NULL) + sbuf_printf(sb, "%s%d: %s\n", periph->periph_name, + periph->unit_number, announce_string); +} + +void xpt_announce_quirks(struct cam_periph *periph, int quirks, char *bit_string) { if (quirks != 0) { @@ -1103,6 +1164,21 @@ xpt_announce_quirks(struct cam_periph *p } void +xpt_announce_quirks_sbuf(struct cam_periph *periph, struct sbuf *sb, + int quirks, char *bit_string) +{ + if (xsoftc.announce_nosbuf != 0) { + xpt_announce_quirks(periph, quirks, bit_string); + return; + } + + if (quirks != 0) { + sbuf_printf(sb, "%s%d: quirks=0x%b\n", periph->periph_name, + periph->unit_number, quirks, bit_string); + } +} + +void xpt_denounce_periph(struct cam_periph *periph) { struct cam_path *path = periph->path; @@ -1130,6 +1206,45 @@ xpt_denounce_periph(struct cam_periph *p printf(" detached\n"); } +void +xpt_denounce_periph_sbuf(struct cam_periph *periph, struct sbuf *sb) +{ + struct cam_path *path = periph->path; + struct xpt_proto *proto; + + cam_periph_assert(periph, MA_OWNED); + + /* Fall back to the non-sbuf method if necessary */ + if (xsoftc.announce_nosbuf != 0) { + xpt_denounce_periph(periph); + return; + } + proto = xpt_proto_find(path->device->protocol); + if ((proto != NULL) && (proto->ops->denounce_sbuf == NULL)) { + xpt_denounce_periph(periph); + return; + } + + sbuf_printf(sb, "%s%d at %s%d bus %d scbus%d target %d lun %jx\n", + periph->periph_name, periph->unit_number, + path->bus->sim->sim_name, + path->bus->sim->unit_number, + path->bus->sim->bus_id, + path->bus->path_id, + path->target->target_id, + (uintmax_t)path->device->lun_id); + sbuf_printf(sb, "%s%d: ", periph->periph_name, periph->unit_number); + + if (proto) + proto->ops->denounce_sbuf(path->device, sb); + else + sbuf_printf(sb, "%s%d: Unknown protocol device %d\n", + periph->periph_name, periph->unit_number, + path->device->protocol); + if (path->device->serial_num_len > 0) + sbuf_printf(sb, " s/n %.60s", path->device->serial_num); + sbuf_printf(sb, " detached\n"); +} int xpt_getattr(char *buf, size_t len, const char *attr, struct cam_path *path) Modified: head/sys/cam/cam_xpt_internal.h ============================================================================== --- head/sys/cam/cam_xpt_internal.h Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/cam_xpt_internal.h Wed Apr 19 15:04:52 2017 (r317143) @@ -47,6 +47,7 @@ typedef void (*xpt_dev_async_func)(u_int struct cam_ed *device, void *async_arg); typedef void (*xpt_announce_periph_func)(struct cam_periph *periph); +typedef void (*xpt_announce_periph_sbuf_func)(struct cam_periph *periph, struct sbuf *sbuf); struct xpt_xport_ops { xpt_alloc_device_func alloc_device; @@ -54,6 +55,7 @@ struct xpt_xport_ops { xpt_action_func action; xpt_dev_async_func async; xpt_announce_periph_func announce; + xpt_announce_periph_sbuf_func announce_sbuf; }; struct xpt_xport { @@ -67,11 +69,14 @@ SET_DECLARE(cam_xpt_xport_set, struct xp DATA_SET(cam_xpt_xport_set, data) typedef void (*xpt_proto_announce_func)(struct cam_ed *); +typedef void (*xpt_proto_announce_sbuf_func)(struct cam_ed *, struct sbuf *); typedef void (*xpt_proto_debug_out_func)(union ccb *); struct xpt_proto_ops { xpt_proto_announce_func announce; + xpt_proto_announce_sbuf_func announce_sbuf; xpt_proto_announce_func denounce; + xpt_proto_announce_sbuf_func denounce_sbuf; xpt_proto_debug_out_func debug_out; }; Modified: head/sys/cam/cam_xpt_periph.h ============================================================================== --- head/sys/cam/cam_xpt_periph.h Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/cam_xpt_periph.h Wed Apr 19 15:04:52 2017 (r317143) @@ -45,9 +45,16 @@ int32_t xpt_add_periph(struct cam_perip void xpt_remove_periph(struct cam_periph *periph); void xpt_announce_periph(struct cam_periph *periph, char *announce_string); +void xpt_announce_periph_sbuf(struct cam_periph *periph, + struct sbuf *sb, + char *announce_string); void xpt_announce_quirks(struct cam_periph *periph, int quirks, char *bit_string); +void xpt_announce_quirks_sbuf(struct cam_periph *periph, + struct sbuf *sb, + int quirks, char *bit_string); void xpt_denounce_periph(struct cam_periph *periph); +void xpt_denounce_periph_sbuf(struct cam_periph *periph, struct sbuf *sb); #endif #endif /* _CAM_CAM_XPT_PERIPH_H */ Modified: head/sys/cam/scsi/scsi_all.c ============================================================================== --- head/sys/cam/scsi/scsi_all.c Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/scsi/scsi_all.c Wed Apr 19 15:04:52 2017 (r317143) @@ -5169,7 +5169,7 @@ scsi_sense_print(struct ccb_scsiio *csio sbuf_finish(&sb); - printf("%s", sbuf_data(&sb)); + sbuf_putbuf(&sb); } #else /* !_KERNEL */ @@ -5361,11 +5361,10 @@ scsi_get_ascq(struct scsi_sense_data *se * for this routine to function properly. */ void -scsi_print_inquiry(struct scsi_inquiry_data *inq_data) +scsi_print_inquiry_sbuf(struct sbuf *sb, struct scsi_inquiry_data *inq_data) { u_int8_t type; char *dtype, *qtype; - char vendor[16], product[48], revision[16], rstr[12]; type = SID_TYPE(inq_data); @@ -5454,41 +5453,55 @@ scsi_print_inquiry(struct scsi_inquiry_d break; } - cam_strvis(vendor, inq_data->vendor, sizeof(inq_data->vendor), - sizeof(vendor)); - cam_strvis(product, inq_data->product, sizeof(inq_data->product), - sizeof(product)); - cam_strvis(revision, inq_data->revision, sizeof(inq_data->revision), - sizeof(revision)); + scsi_print_inquiry_short_sbuf(sb, inq_data); + + sbuf_printf(sb, "%s %s ", SID_IS_REMOVABLE(inq_data) ? "Removable" : "Fixed", dtype); if (SID_ANSI_REV(inq_data) == SCSI_REV_0) - snprintf(rstr, sizeof(rstr), "SCSI"); + sbuf_printf(sb, "SCSI "); else if (SID_ANSI_REV(inq_data) <= SCSI_REV_SPC) { - snprintf(rstr, sizeof(rstr), "SCSI-%d", - SID_ANSI_REV(inq_data)); + sbuf_printf(sb, "SCSI-%d ", SID_ANSI_REV(inq_data)); } else { - snprintf(rstr, sizeof(rstr), "SPC-%d SCSI", - SID_ANSI_REV(inq_data) - 2); + sbuf_printf(sb, "SPC-%d SCSI ", SID_ANSI_REV(inq_data) - 2); } - printf("<%s %s %s> %s %s %s device%s\n", - vendor, product, revision, - SID_IS_REMOVABLE(inq_data) ? "Removable" : "Fixed", - dtype, rstr, qtype); + sbuf_printf(sb, "device%s\n", qtype); } void -scsi_print_inquiry_short(struct scsi_inquiry_data *inq_data) +scsi_print_inquiry(struct scsi_inquiry_data *inq_data) +{ + struct sbuf sb; + char buffer[120]; + + sbuf_new(&sb, buffer, 120, SBUF_FIXEDLEN); + scsi_print_inquiry_sbuf(&sb, inq_data); + sbuf_finish(&sb); + sbuf_putbuf(&sb); +} + +void +scsi_print_inquiry_short_sbuf(struct sbuf *sb, struct scsi_inquiry_data *inq_data) { - char vendor[16], product[48], revision[16]; - cam_strvis(vendor, inq_data->vendor, sizeof(inq_data->vendor), - sizeof(vendor)); - cam_strvis(product, inq_data->product, sizeof(inq_data->product), - sizeof(product)); - cam_strvis(revision, inq_data->revision, sizeof(inq_data->revision), - sizeof(revision)); + sbuf_printf(sb, "<"); + cam_strvis_sbuf(sb, inq_data->vendor, sizeof(inq_data->vendor), 0); + sbuf_printf(sb, " "); + cam_strvis_sbuf(sb, inq_data->product, sizeof(inq_data->product), 0); + sbuf_printf(sb, " "); + cam_strvis_sbuf(sb, inq_data->revision, sizeof(inq_data->revision), 0); + sbuf_printf(sb, "> "); +} + +void +scsi_print_inquiry_short(struct scsi_inquiry_data *inq_data) +{ + struct sbuf sb; + char buffer[84]; - printf("<%s %s %s>", vendor, product, revision); + sbuf_new(&sb, buffer, 84, SBUF_FIXEDLEN); + scsi_print_inquiry_short_sbuf(&sb, inq_data); + sbuf_finish(&sb); + sbuf_putbuf(&sb); } /* Modified: head/sys/cam/scsi/scsi_all.h ============================================================================== --- head/sys/cam/scsi/scsi_all.h Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/scsi/scsi_all.h Wed Apr 19 15:04:52 2017 (r317143) @@ -3820,7 +3820,11 @@ char * scsi_cdb_string(u_int8_t *cdb_pt void scsi_cdb_sbuf(u_int8_t *cdb_ptr, struct sbuf *sb); void scsi_print_inquiry(struct scsi_inquiry_data *inq_data); +void scsi_print_inquiry_sbuf(struct sbuf *sb, + struct scsi_inquiry_data *inq_data); void scsi_print_inquiry_short(struct scsi_inquiry_data *inq_data); +void scsi_print_inquiry_short_sbuf(struct sbuf *sb, + struct scsi_inquiry_data *inq_data); u_int scsi_calc_syncsrate(u_int period_factor); u_int scsi_calc_syncparam(u_int period); Modified: head/sys/cam/scsi/scsi_cd.c ============================================================================== --- head/sys/cam/scsi/scsi_cd.c Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/scsi/scsi_cd.c Wed Apr 19 15:04:52 2017 (r317143) @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -158,6 +159,11 @@ struct cd_softc { struct cd_tocdata toc; struct disk *disk; struct callout mediapoll_c; + +#define CD_ANNOUNCETMP_SZ 120 + char announce_temp[CD_ANNOUNCETMP_SZ]; +#define CD_ANNOUNCE_SZ 400 + char announce_buf[CD_ANNOUNCE_SZ]; }; struct cd_page_sizes { @@ -1046,28 +1052,12 @@ cddone(struct cam_periph *periph, union case CD_CCB_PROBE: { struct scsi_read_capacity_data *rdcap; - char announce_buf[120]; /* - * Currently (9/30/97) the - * longest possible announce - * buffer is 108 bytes, for the - * first error case below. - * That is 39 bytes for the - * basic string, 16 bytes for the - * biggest sense key (hardware - * error), 52 bytes for the - * text of the largest sense - * qualifier valid for a CDROM, - * (0x72, 0x03 or 0x04, - * 0x03), and one byte for the - * null terminating character. - * To allow for longer strings, - * the announce buffer is 120 - * bytes. - */ + char *announce_buf; struct cd_params *cdp; int error; cdp = &softc->params; + announce_buf = softc->announce_temp; rdcap = (struct scsi_read_capacity_data *)csio->data_ptr; @@ -1081,7 +1071,7 @@ cddone(struct cam_periph *periph, union if ((csio->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP || (error = cderror(done_ccb, CAM_RETRY_SELTO, SF_RETRY_UA | SF_NO_PRINT)) == 0) { - snprintf(announce_buf, sizeof(announce_buf), + snprintf(announce_buf, CD_ANNOUNCETMP_SZ, "%juMB (%ju %u byte sectors)", ((uintmax_t)cdp->disksize * cdp->blksize) / (1024 * 1024), @@ -1186,22 +1176,29 @@ cddone(struct cam_periph *periph, union */ cam_periph_invalidate(periph); - announce_buf[0] = '\0'; + announce_buf = NULL; } else { /* * Invalidate this peripheral. */ cam_periph_invalidate(periph); - announce_buf[0] = '\0'; + announce_buf = NULL; } } } free(rdcap, M_SCSICD); - if (announce_buf[0] != '\0') { - xpt_announce_periph(periph, announce_buf); - xpt_announce_quirks(periph, softc->quirks, + if (announce_buf != NULL) { + struct sbuf sb; + + sbuf_new(&sb, softc->announce_buf, CD_ANNOUNCE_SZ, + SBUF_FIXEDLEN); + xpt_announce_periph_sbuf(periph, &sb, announce_buf); + xpt_announce_quirks_sbuf(periph, &sb, softc->quirks, CD_Q_BIT_STRING); + sbuf_finish(&sb); + sbuf_putbuf(&sb); + /* * Create our sysctl variables, now that we know * we have successfully attached. Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Wed Apr 19 14:49:18 2017 (r317142) +++ head/sys/cam/scsi/scsi_da.c Wed Apr 19 15:04:52 2017 (r317143) @@ -338,6 +338,10 @@ struct da_softc { u_int timeouts; u_int invalidations; #endif +#define DA_ANNOUNCETMP_SZ 80 + char announce_temp[DA_ANNOUNCETMP_SZ]; +#define DA_ANNOUNCE_SZ 400 + char announcebuf[DA_ANNOUNCE_SZ]; }; #define dadeleteflag(softc, delete_method, enable) \ @@ -4219,12 +4223,16 @@ dadone(struct cam_periph *periph, union { struct scsi_read_capacity_data *rdcap; struct scsi_read_capacity_data_long *rcaplong; - char announce_buf[80]; + char *announce_buf; int lbp; lbp = 0; rdcap = NULL; rcaplong = NULL; + /* XXX TODO: can this be a malloc? */ + announce_buf = softc->announce_temp; + bzero(announce_buf, DA_ANNOUNCETMP_SZ); + if (state == DA_CCB_PROBE_RC) rdcap =(struct scsi_read_capacity_data *)csio->data_ptr; else @@ -4277,7 +4285,7 @@ dadone(struct cam_periph *periph, union xpt_print(periph->path, "unsupportable block size %ju\n", (uintmax_t) block_size); - announce_buf[0] = '\0'; + announce_buf = NULL; cam_periph_invalidate(periph); } else { /* @@ -4289,7 +4297,7 @@ dadone(struct cam_periph *periph, union rcaplong, sizeof(*rcaplong)); lbp = (lalba & SRC16_LBPME_A); dp = &softc->params; - snprintf(announce_buf, sizeof(announce_buf), + snprintf(announce_buf, DA_ANNOUNCETMP_SZ, "%juMB (%ju %u byte sectors)", ((uintmax_t)dp->secsize * dp->sectors) / (1024 * 1024), @@ -4298,8 +4306,6 @@ dadone(struct cam_periph *periph, union } else { int error; - announce_buf[0] = '\0'; - /* * Retry any UNIT ATTENTION type errors. They * are expected at boot. @@ -4383,11 +4389,10 @@ dadone(struct cam_periph *periph, union &sense_key_desc, &asc_desc); snprintf(announce_buf, - sizeof(announce_buf), - "Attempt to query device " - "size failed: %s, %s", - sense_key_desc, - asc_desc); + DA_ANNOUNCETMP_SZ, + "Attempt to query device " + "size failed: %s, %s", + sense_key_desc, asc_desc); } else { if (have_sense) scsi_sense_print( @@ -4401,6 +4406,8 @@ dadone(struct cam_periph *periph, union xpt_print(periph->path, "fatal error, " "failed to attach to device\n"); + announce_buf = NULL; + /* * Free up resources. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Apr 19 15:24:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 42418D4648A; Wed, 19 Apr 2017 15:24:35 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 12A37DB0; Wed, 19 Apr 2017 15:24:35 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JFOYoW061288; Wed, 19 Apr 2017 15:24:34 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JFOYiK061287; Wed, 19 Apr 2017 15:24:34 GMT (envelope-from br@FreeBSD.org) Message-Id: <201704191524.v3JFOYiK061287@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Wed, 19 Apr 2017 15:24:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317144 - head/contrib/zstd/lib/common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 15:24:35 -0000 Author: br Date: Wed Apr 19 15:24:33 2017 New Revision: 317144 URL: https://svnweb.freebsd.org/changeset/base/317144 Log: Don't use __builtin_bswap for RISC-V due to undefined reference in compiler. This unbreaks RISC-V world build. Sponsored by: DARPA, AFRL Modified: head/contrib/zstd/lib/common/xxhash.c Modified: head/contrib/zstd/lib/common/xxhash.c ============================================================================== --- head/contrib/zstd/lib/common/xxhash.c Wed Apr 19 15:04:52 2017 (r317143) +++ head/contrib/zstd/lib/common/xxhash.c Wed Apr 19 15:24:33 2017 (r317144) @@ -206,7 +206,7 @@ static U64 XXH_read64(const void* memPtr #if defined(_MSC_VER) /* Visual Studio */ # define XXH_swap32 _byteswap_ulong # define XXH_swap64 _byteswap_uint64 -#elif GCC_VERSION >= 403 +#elif (GCC_VERSION >= 403 && !defined(__riscv__)) # define XXH_swap32 __builtin_bswap32 # define XXH_swap64 __builtin_bswap64 #else From owner-svn-src-all@freebsd.org Wed Apr 19 15:26:14 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B5EED4654F; Wed, 19 Apr 2017 15:26:14 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) Received: from ppsw-41.csi.cam.ac.uk (ppsw-41.csi.cam.ac.uk [131.111.8.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 54AEDF49; Wed, 19 Apr 2017 15:26:13 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://help.uis.cam.ac.uk/email-scanner-virus Received: from sc1.bsdpad.com ([163.172.212.18]:54423) by ppsw-41.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.159]:587) with esmtpsa (LOGIN:rb743) (TLSv1:ECDHE-RSA-AES256-SHA:256) id 1d0rUh-0000xb-QB (Exim 4.89) (return-path ); Wed, 19 Apr 2017 16:26:11 +0100 Date: Wed, 19 Apr 2017 15:22:57 +0000 From: Ruslan Bukin To: Baptiste Daroussin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd Message-ID: <20170419152257.GA59527@bsdpad.com> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <20170419142106.GA59031@bsdpad.com> <20170419145325.zjvo3hq2z3egcp26@ivaldir.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20170419145325.zjvo3hq2z3egcp26@ivaldir.net> User-Agent: Mutt/1.6.1 (2016-04-27) Sender: "R. Bukin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 15:26:14 -0000 On Wed, Apr 19, 2017 at 04:53:25PM +0200, Baptiste Daroussin wrote: > On Wed, Apr 19, 2017 at 02:21:06PM +0000, Ruslan Bukin wrote: > > This break RISC-V world build: > > /home/br/obj//riscv.riscv64/usr/home/br/dev/freebsd-head/tmp/usr/lib/libprivatezstd.so: undefined reference to `__bswap > > si2' > > /home/br/obj//riscv.riscv64/usr/home/br/dev/freebsd-head/tmp/usr/lib/libprivatezstd.so: undefined reference to `__bswap > > di2' > > > > Here is patch that makes it compilable: > > > > diff --git a/contrib/zstd/lib/common/xxhash.c b/contrib/zstd/lib/common/xxhash.c > > index eb44222c5fc..d59a22a0638 100644 > > --- a/contrib/zstd/lib/common/xxhash.c > > +++ b/contrib/zstd/lib/common/xxhash.c > > @@ -206,7 +206,7 @@ static U64 XXH_read64(const void* memPtr) > > #if defined(_MSC_VER) /* Visual Studio */ > > # define XXH_swap32 _byteswap_ulong > > # define XXH_swap64 _byteswap_uint64 > > -#elif GCC_VERSION >= 403 > > +#elif (GCC_VERSION >= 403 && !defined(__riscv__)) > > # define XXH_swap32 __builtin_bswap32 > > # define XXH_swap64 __builtin_bswap64 > > #else > > > > Ruslan > > Thank you, can you please commit it? Have you upstreamed it, do you want me to > do it? (I have already signed the facebook agreement) > I committed. Please upstream that. thanks Ruslan From owner-svn-src-all@freebsd.org Wed Apr 19 15:33:26 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A95B0D467D8; Wed, 19 Apr 2017 15:33:26 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8643B165C; Wed, 19 Apr 2017 15:33:26 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JFXPwk065546; Wed, 19 Apr 2017 15:33:25 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JFXOHk065533; Wed, 19 Apr 2017 15:33:24 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704191533.v3JFXOHk065533@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Apr 2017 15:33: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: r317145 - in stable/11/sys: boot/mips/uboot conf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 15:33:26 -0000 Author: emaste Date: Wed Apr 19 15:33:24 2017 New Revision: 317145 URL: https://svnweb.freebsd.org/changeset/base/317145 Log: MFC r303442, r305343: remove CONSTRUCTORS from linker scripts r303442: remove CONSTRUCTORS from kernel linker scripts r305343: remove CONSTRUCTORS from MIPS uboot linker script The linker script CONSTRUCTORS keyword is only meaningful "when linking object file formats which do not support arbitrary sections, such as ECOFF and XCOFF"[1] and is ignored for other object file formats. LLVM's lld does not yet accept (and ignore) CONSTRUCTORS, so just remove CONSTRUCTORS from the linker script as it has no effect. [1] https://sourceware.org/binutils/docs/ld/Output-Section-Keywords.html Reported by: andrew Sponsored by: The FreeBSD Foundation Modified: stable/11/sys/boot/mips/uboot/ldscript.mips stable/11/sys/conf/ldscript.amd64 stable/11/sys/conf/ldscript.arm stable/11/sys/conf/ldscript.arm64 stable/11/sys/conf/ldscript.i386 stable/11/sys/conf/ldscript.mips stable/11/sys/conf/ldscript.mips.cfe stable/11/sys/conf/ldscript.mips.mips64 stable/11/sys/conf/ldscript.mips.octeon1 stable/11/sys/conf/ldscript.powerpc stable/11/sys/conf/ldscript.powerpc64 stable/11/sys/conf/ldscript.riscv stable/11/sys/conf/ldscript.sparc64 Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/boot/mips/uboot/ldscript.mips ============================================================================== --- stable/11/sys/boot/mips/uboot/ldscript.mips Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/boot/mips/uboot/ldscript.mips Wed Apr 19 15:33:24 2017 (r317145) @@ -55,7 +55,6 @@ SECTIONS { *(.data) *(.gnu.linkonce.d*) - CONSTRUCTORS } .data1 : { *(.data1) } .got1 : { *(.got1) } Modified: stable/11/sys/conf/ldscript.amd64 ============================================================================== --- stable/11/sys/conf/ldscript.amd64 Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.amd64 Wed Apr 19 15:33:24 2017 (r317145) @@ -160,7 +160,6 @@ SECTIONS { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) - SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); Modified: stable/11/sys/conf/ldscript.arm ============================================================================== --- stable/11/sys/conf/ldscript.arm Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.arm Wed Apr 19 15:33:24 2017 (r317145) @@ -76,7 +76,6 @@ SECTIONS { *(.data) *(.gnu.linkonce.d*) - CONSTRUCTORS } .data1 : { *(.data1) } . = ALIGN(32 / 8); Modified: stable/11/sys/conf/ldscript.arm64 ============================================================================== --- stable/11/sys/conf/ldscript.arm64 Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.arm64 Wed Apr 19 15:33:24 2017 (r317145) @@ -76,7 +76,6 @@ SECTIONS { *(.data) *(.gnu.linkonce.d*) - CONSTRUCTORS } .data1 : { *(.data1) } . = ALIGN(32 / 8); Modified: stable/11/sys/conf/ldscript.i386 ============================================================================== --- stable/11/sys/conf/ldscript.i386 Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.i386 Wed Apr 19 15:33:24 2017 (r317145) @@ -137,7 +137,6 @@ SECTIONS { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) - SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); Modified: stable/11/sys/conf/ldscript.mips ============================================================================== --- stable/11/sys/conf/ldscript.mips Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.mips Wed Apr 19 15:33:24 2017 (r317145) @@ -184,7 +184,6 @@ SECTIONS *(.data) *(.data.*) *(.gnu.linkonce.d.*) - SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .eh_frame : { KEEP (*(.eh_frame)) } Modified: stable/11/sys/conf/ldscript.mips.cfe ============================================================================== --- stable/11/sys/conf/ldscript.mips.cfe Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.mips.cfe Wed Apr 19 15:33:24 2017 (r317145) @@ -201,7 +201,6 @@ SECTIONS *(.data) *(.data.*) *(.gnu.linkonce.d.*) - SORT(CONSTRUCTORS) } :data .data1 : { *(.data1) } .eh_frame : { KEEP (*(.eh_frame)) } Modified: stable/11/sys/conf/ldscript.mips.mips64 ============================================================================== --- stable/11/sys/conf/ldscript.mips.mips64 Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.mips.mips64 Wed Apr 19 15:33:24 2017 (r317145) @@ -185,7 +185,6 @@ SECTIONS *(.data) *(.data.*) *(.gnu.linkonce.d.*) - SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .eh_frame : { KEEP (*(.eh_frame)) } Modified: stable/11/sys/conf/ldscript.mips.octeon1 ============================================================================== --- stable/11/sys/conf/ldscript.mips.octeon1 Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.mips.octeon1 Wed Apr 19 15:33:24 2017 (r317145) @@ -28,7 +28,6 @@ SECTIONS { _rwdata = .; *(.data) . = ALIGN(32); - CONSTRUCTORS; } _gp = (. + 0x8000); Modified: stable/11/sys/conf/ldscript.powerpc ============================================================================== --- stable/11/sys/conf/ldscript.powerpc Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.powerpc Wed Apr 19 15:33:24 2017 (r317145) @@ -63,7 +63,6 @@ SECTIONS { *(.data) *(.gnu.linkonce.d*) - CONSTRUCTORS } .data1 : { *(.data1) } .got1 : { *(.got1) } Modified: stable/11/sys/conf/ldscript.powerpc64 ============================================================================== --- stable/11/sys/conf/ldscript.powerpc64 Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.powerpc64 Wed Apr 19 15:33:24 2017 (r317145) @@ -63,7 +63,6 @@ SECTIONS { *(.data) *(.gnu.linkonce.d*) - CONSTRUCTORS } .data1 : { *(.data1) } .toc1 : ALIGN(8) { *(.toc1) } Modified: stable/11/sys/conf/ldscript.riscv ============================================================================== --- stable/11/sys/conf/ldscript.riscv Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.riscv Wed Apr 19 15:33:24 2017 (r317145) @@ -63,7 +63,6 @@ SECTIONS { *(.data) *(.gnu.linkonce.d*) - CONSTRUCTORS } .data1 : { *(.data1) } . = ALIGN(32 / 8); Modified: stable/11/sys/conf/ldscript.sparc64 ============================================================================== --- stable/11/sys/conf/ldscript.sparc64 Wed Apr 19 15:24:33 2017 (r317144) +++ stable/11/sys/conf/ldscript.sparc64 Wed Apr 19 15:33:24 2017 (r317145) @@ -154,7 +154,6 @@ SECTIONS *(.data) *(.data.*) *(.gnu.linkonce.d.*) - SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .eh_frame : { KEEP (*(.eh_frame)) } From owner-svn-src-all@freebsd.org Wed Apr 19 15:46:36 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09509D46B76; Wed, 19 Apr 2017 15:46:36 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CF1E41D22; Wed, 19 Apr 2017 15:46:35 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JFkYfR069895; Wed, 19 Apr 2017 15:46:34 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JFkYIb069894; Wed, 19 Apr 2017 15:46:34 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201704191546.v3JFkYIb069894@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 19 Apr 2017 15:46:34 +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: r317146 - stable/11/sys/conf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 15:46:36 -0000 Author: andrew Date: Wed Apr 19 15:46:34 2017 New Revision: 317146 URL: https://svnweb.freebsd.org/changeset/base/317146 Log: MFC 305355: Explicitly include all .rodata.* sections in the kernel .rodata. This helps link the kernel with lld as it will then put all these into a single .rodata section. Modified: stable/11/sys/conf/ldscript.arm64 Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/ldscript.arm64 ============================================================================== --- stable/11/sys/conf/ldscript.arm64 Wed Apr 19 15:33:24 2017 (r317145) +++ stable/11/sys/conf/ldscript.arm64 Wed Apr 19 15:46:34 2017 (r317146) @@ -18,7 +18,7 @@ SECTIONS _etext = .; PROVIDE (etext = .); .fini : { *(.fini) } =0x9090 - .rodata : { *(.rodata) *(.gnu.linkonce.r*) } + .rodata : { *(.rodata*) *(.gnu.linkonce.r*) } .rodata1 : { *(.rodata1) } .interp : { *(.interp) } .hash : { *(.hash) } From owner-svn-src-all@freebsd.org Wed Apr 19 15:59:17 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9BD0D45176; Wed, 19 Apr 2017 15:59:17 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BB1BAA98; Wed, 19 Apr 2017 15:59:17 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JFxGHw074683; Wed, 19 Apr 2017 15:59:16 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JFxGIC074682; Wed, 19 Apr 2017 15:59:16 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201704191559.v3JFxGIC074682@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 19 Apr 2017 15:59: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: r317147 - stable/11/sys/arm64/arm64 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 15:59:18 -0000 Author: andrew Date: Wed Apr 19 15:59:16 2017 New Revision: 317147 URL: https://svnweb.freebsd.org/changeset/base/317147 Log: MFC 313772: Load the new sp_el0 with interrupts disabled in fork_trampoline. If an interrupt arrives in fork_trampoline after sp_el0 was written we may then switch to a new thread, enter userland so change this stack pointer, then return to this code with the wrong value. This fixes this case by moving the load of sp_el0 until after interrupts have been disabled. Modified: stable/11/sys/arm64/arm64/swtch.S Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm64/arm64/swtch.S ============================================================================== --- stable/11/sys/arm64/arm64/swtch.S Wed Apr 19 15:46:34 2017 (r317146) +++ stable/11/sys/arm64/arm64/swtch.S Wed Apr 19 15:59:16 2017 (r317147) @@ -241,11 +241,6 @@ ENTRY(fork_trampoline) mov fp, #0 /* Stack traceback stops here. */ bl _C_LABEL(fork_exit) - /* Restore sp and lr */ - ldp x0, x1, [sp] - msr sp_el0, x0 - mov lr, x1 - /* Restore the registers other than x0 and x1 */ ldp x2, x3, [sp, #TF_X + 2 * 8] ldp x4, x5, [sp, #TF_X + 4 * 8] @@ -261,14 +256,18 @@ ENTRY(fork_trampoline) ldp x24, x25, [sp, #TF_X + 24 * 8] ldp x26, x27, [sp, #TF_X + 26 * 8] ldp x28, x29, [sp, #TF_X + 28 * 8] - /* Skip x30 as it was restored above as lr */ /* * Disable interrupts to avoid - * overwriting spsr_el1 by an IRQ exception. + * overwriting spsr_el1 and sp_el0 by an IRQ exception. */ msr daifset, #2 + /* Restore sp and lr */ + ldp x0, x1, [sp] + msr sp_el0, x0 + mov lr, x1 + /* Restore elr and spsr */ ldp x0, x1, [sp, #16] msr elr_el1, x0 From owner-svn-src-all@freebsd.org Wed Apr 19 16:12:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D285D45738; Wed, 19 Apr 2017 16:12:03 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 51C4A150A; Wed, 19 Apr 2017 16:12:03 +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 v3JGC2E7081757; Wed, 19 Apr 2017 16:12:02 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JGC2j1081756; Wed, 19 Apr 2017 16:12:02 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201704191612.v3JGC2j1081756@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 19 Apr 2017 16:12:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317148 - head/sys/compat/linuxkpi/common/src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 16:12:03 -0000 Author: markj Date: Wed Apr 19 16:12:02 2017 New Revision: 317148 URL: https://svnweb.freebsd.org/changeset/base/317148 Log: Drop Giant before sleeping in linux_wait_for_{timeout_,}common(). Reported and tested by: Pete Wright Reviewed by: hselasky (previous version) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D10414 Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_compat.c Wed Apr 19 15:59:16 2017 (r317147) +++ head/sys/compat/linuxkpi/common/src/linux_compat.c Wed Apr 19 16:12:02 2017 (r317148) @@ -1321,28 +1321,38 @@ linux_complete_common(struct completion long linux_wait_for_common(struct completion *c, int flags) { + long error; + if (SCHEDULER_STOPPED()) return (0); + DROP_GIANT(); + if (flags != 0) flags = SLEEPQ_INTERRUPTIBLE | SLEEPQ_SLEEP; else flags = SLEEPQ_SLEEP; + error = 0; for (;;) { sleepq_lock(c); if (c->done) break; sleepq_add(c, NULL, "completion", flags, 0); if (flags & SLEEPQ_INTERRUPTIBLE) { - if (sleepq_wait_sig(c, 0) != 0) - return (-ERESTARTSYS); + if (sleepq_wait_sig(c, 0) != 0) { + error = -ERESTARTSYS; + goto intr; + } } else sleepq_wait(c, 0); } c->done--; sleepq_release(c); - return (0); +intr: + PICKUP_GIANT(); + + return (error); } /* @@ -1351,18 +1361,22 @@ linux_wait_for_common(struct completion long linux_wait_for_timeout_common(struct completion *c, long timeout, int flags) { - long end = jiffies + timeout; + long end = jiffies + timeout, error; + int ret; if (SCHEDULER_STOPPED()) return (0); + DROP_GIANT(); + if (flags != 0) flags = SLEEPQ_INTERRUPTIBLE | SLEEPQ_SLEEP; else flags = SLEEPQ_SLEEP; - for (;;) { - int ret; + error = 0; + ret = 0; + for (;;) { sleepq_lock(c); if (c->done) break; @@ -1375,16 +1389,20 @@ linux_wait_for_timeout_common(struct com if (ret != 0) { /* check for timeout or signal */ if (ret == EWOULDBLOCK) - return (0); + error = 0; else - return (-ERESTARTSYS); + error = -ERESTARTSYS; + goto intr; } } c->done--; sleepq_release(c); +intr: + PICKUP_GIANT(); + /* return how many jiffies are left */ - return (linux_timer_jiffies_until(end)); + return (ret != 0 ? error : linux_timer_jiffies_until(end)); } int From owner-svn-src-all@freebsd.org Wed Apr 19 16:16:43 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 52E3DD458C1; Wed, 19 Apr 2017 16:16:43 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 21BED1967; Wed, 19 Apr 2017 16:16:43 +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 v3JGGgYD082809; Wed, 19 Apr 2017 16:16:42 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JGGfun082801; Wed, 19 Apr 2017 16:16:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201704191616.v3JGGfun082801@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 19 Apr 2017 16:16: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: r317149 - in stable/11: sys/conf sys/libkern sys/libkern/x86 sys/sys tests/sys/kern X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 16:16:43 -0000 Author: markj Date: Wed Apr 19 16:16:41 2017 New Revision: 317149 URL: https://svnweb.freebsd.org/changeset/base/317149 Log: MFC r313006 (by cem), r315983 (by bde): Add an SSE4.2 implementation of crc32 for x86. Added: stable/11/sys/libkern/x86/ - copied from r313006, head/sys/libkern/x86/ stable/11/tests/sys/kern/libkern_crc32.c - copied unchanged from r313006, head/tests/sys/kern/libkern_crc32.c Modified: stable/11/sys/conf/files.amd64 stable/11/sys/conf/files.i386 stable/11/sys/libkern/crc32.c stable/11/sys/libkern/x86/crc32_sse42.c stable/11/sys/sys/libkern.h stable/11/tests/sys/kern/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files.amd64 ============================================================================== --- stable/11/sys/conf/files.amd64 Wed Apr 19 16:12:02 2017 (r317148) +++ stable/11/sys/conf/files.amd64 Wed Apr 19 16:16:41 2017 (r317149) @@ -552,6 +552,9 @@ isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/kern_clocksource.c standard kern/link_elf_obj.c standard +libkern/x86/crc32_sse42.c standard +libkern/memmove.c standard +libkern/memset.c standard # # IA32 binary support # @@ -609,9 +612,6 @@ compat/ndis/subr_pe.c optional ndisapi compat/ndis/subr_usbd.c optional ndisapi pci compat/ndis/winx64_wrap.S optional ndisapi pci # -libkern/memmove.c standard -libkern/memset.c standard -# # x86 real mode BIOS emulator, required by dpms/pci/vesa # compat/x86bios/x86bios.c optional x86bios | dpms | pci | vesa Modified: stable/11/sys/conf/files.i386 ============================================================================== --- stable/11/sys/conf/files.i386 Wed Apr 19 16:12:02 2017 (r317148) +++ stable/11/sys/conf/files.i386 Wed Apr 19 16:16:41 2017 (r317149) @@ -564,6 +564,7 @@ libkern/qdivrem.c standard libkern/ucmpdi2.c standard libkern/udivdi3.c standard libkern/umoddi3.c standard +libkern/x86/crc32_sse42.c standard i386/xbox/xbox.c optional xbox i386/xbox/xboxfb.c optional xboxfb dev/fb/boot_font.c optional xboxfb Modified: stable/11/sys/libkern/crc32.c ============================================================================== --- stable/11/sys/libkern/crc32.c Wed Apr 19 16:12:02 2017 (r317148) +++ stable/11/sys/libkern/crc32.c Wed Apr 19 16:16:41 2017 (r317149) @@ -46,8 +46,14 @@ __FBSDID("$FreeBSD$"); #include +#include #include +#if defined(__amd64__) || defined(__i386__) +#include +#include +#endif + const uint32_t crc32_tab[] = { 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, @@ -749,6 +755,11 @@ calculate_crc32c(uint32_t crc32c, const unsigned char *buffer, unsigned int length) { +#if defined(__amd64__) || defined(__i386__) + if ((cpu_feature2 & CPUID2_SSE42) != 0) { + return (sse42_crc32c(crc32c, buffer, length)); + } else +#endif if (length < 4) { return (singletable_crc32c(crc32c, buffer, length)); } else { Modified: stable/11/sys/libkern/x86/crc32_sse42.c ============================================================================== --- head/sys/libkern/x86/crc32_sse42.c Tue Jan 31 03:26:32 2017 (r313006) +++ stable/11/sys/libkern/x86/crc32_sse42.c Wed Apr 19 16:16:41 2017 (r317149) @@ -31,14 +31,40 @@ __FBSDID("$FreeBSD$"); */ #ifdef USERSPACE_TESTING #include +#include #else #include -#include -#include #include +#include #endif -#include +static __inline uint32_t +_mm_crc32_u8(uint32_t x, uint8_t y) +{ + /* + * clang (at least 3.9.[0-1]) pessimizes "rm" (y) and "m" (y) + * significantly and "r" (y) a lot by copying y to a different + * local variable (on the stack or in a register), so only use + * the latter. This costs a register and an instruction but + * not a uop. + */ + __asm("crc32b %1,%0" : "+r" (x) : "r" (y)); + return (x); +} + +static __inline uint32_t +_mm_crc32_u32(uint32_t x, uint32_t y) +{ + __asm("crc32l %1,%0" : "+r" (x) : "r" (y)); + return (x); +} + +static __inline uint64_t +_mm_crc32_u64(uint64_t x, uint64_t y) +{ + __asm("crc32q %1,%0" : "+r" (x) : "r" (y)); + return (x); +} /* CRC-32C (iSCSI) polynomial in reversed bit order. */ #define POLY 0x82f63b78 @@ -47,12 +73,18 @@ __FBSDID("$FreeBSD$"); * Block sizes for three-way parallel crc computation. LONG and SHORT must * both be powers of two. */ -#define LONG 8192 -#define SHORT 256 +#define LONG 128 +#define SHORT 64 -/* Tables for hardware crc that shift a crc by LONG and SHORT zeros. */ +/* + * Tables for updating a crc for LONG, 2 * LONG, SHORT and 2 * SHORT bytes + * of value 0 later in the input stream, in the same way that the hardware + * would, but in software without calculating intermediate steps. + */ static uint32_t crc32c_long[4][256]; +static uint32_t crc32c_2long[4][256]; static uint32_t crc32c_short[4][256]; +static uint32_t crc32c_2short[4][256]; /* * Multiply a matrix times a vector over the Galois field of two elements, @@ -171,7 +203,9 @@ __attribute__((__constructor__)) crc32c_init_hw(void) { crc32c_zeros(crc32c_long, LONG); + crc32c_zeros(crc32c_2long, 2 * LONG); crc32c_zeros(crc32c_short, SHORT); + crc32c_zeros(crc32c_2short, 2 * SHORT); } #ifdef _KERNEL SYSINIT(crc32c_sse42, SI_SUB_LOCK, SI_ORDER_ANY, crc32c_init_hw, NULL); @@ -190,7 +224,11 @@ sse42_crc32c(uint32_t crc, const unsigne const size_t align = 4; #endif const unsigned char *next, *end; - uint64_t crc0, crc1, crc2; /* need to be 64 bits for crc32q */ +#ifdef __amd64__ + uint64_t crc0, crc1, crc2; +#else + uint32_t crc0, crc1, crc2; +#endif next = buf; crc0 = crc; @@ -202,6 +240,7 @@ sse42_crc32c(uint32_t crc, const unsigne len--; } +#if LONG > SHORT /* * Compute the crc on sets of LONG*3 bytes, executing three independent * crc instructions, each on LONG bytes -- this is optimized for the @@ -209,6 +248,7 @@ sse42_crc32c(uint32_t crc, const unsigne * have a throughput of one crc per cycle, but a latency of three * cycles. */ + crc = 0; while (len >= LONG * 3) { crc1 = 0; crc2 = 0; @@ -229,16 +269,64 @@ sse42_crc32c(uint32_t crc, const unsigne #endif next += align; } while (next < end); - crc0 = crc32c_shift(crc32c_long, crc0) ^ crc1; - crc0 = crc32c_shift(crc32c_long, crc0) ^ crc2; + /*- + * Update the crc. Try to do it in parallel with the inner + * loop. 'crc' is used to accumulate crc0 and crc1 + * produced by the inner loop so that the next iteration + * of the loop doesn't depend on anything except crc2. + * + * The full expression for the update is: + * crc = S*S*S*crc + S*S*crc0 + S*crc1 + * where the terms are polynomials modulo the CRC polynomial. + * We regroup this subtly as: + * crc = S*S * (S*crc + crc0) + S*crc1. + * This has an extra dependency which reduces possible + * parallelism for the expression, but it turns out to be + * best to intentionally delay evaluation of this expression + * so that it competes less with the inner loop. + * + * We also intentionally reduce parallelism by feedng back + * crc2 to the inner loop as crc0 instead of accumulating + * it in crc. This synchronizes the loop with crc update. + * CPU and/or compiler schedulers produced bad order without + * this. + * + * Shifts take about 12 cycles each, so 3 here with 2 + * parallelizable take about 24 cycles and the crc update + * takes slightly longer. 8 dependent crc32 instructions + * can run in 24 cycles, so the 3-way blocking is worse + * than useless for sizes less than 8 * = 64 + * on amd64. In practice, SHORT = 32 confirms these + * timing calculations by giving a small improvement + * starting at size 96. Then the inner loop takes about + * 12 cycles and the crc update about 24, but these are + * partly in parallel so the total time is less than the + * 36 cycles that 12 dependent crc32 instructions would + * take. + * + * To have a chance of completely hiding the overhead for + * the crc update, the inner loop must take considerably + * longer than 24 cycles. LONG = 64 makes the inner loop + * take about 24 cycles, so is not quite large enough. + * LONG = 128 works OK. Unhideable overheads are about + * 12 cycles per inner loop. All assuming timing like + * Haswell. + */ + crc = crc32c_shift(crc32c_long, crc) ^ crc0; + crc1 = crc32c_shift(crc32c_long, crc1); + crc = crc32c_shift(crc32c_2long, crc) ^ crc1; + crc0 = crc2; next += LONG * 2; len -= LONG * 3; } + crc0 ^= crc; +#endif /* LONG > SHORT */ /* * Do the same thing, but now on SHORT*3 blocks for the remaining data * less than a LONG*3 block */ + crc = 0; while (len >= SHORT * 3) { crc1 = 0; crc2 = 0; @@ -259,11 +347,14 @@ sse42_crc32c(uint32_t crc, const unsigne #endif next += align; } while (next < end); - crc0 = crc32c_shift(crc32c_short, crc0) ^ crc1; - crc0 = crc32c_shift(crc32c_short, crc0) ^ crc2; + crc = crc32c_shift(crc32c_short, crc) ^ crc0; + crc1 = crc32c_shift(crc32c_short, crc1); + crc = crc32c_shift(crc32c_2short, crc) ^ crc1; + crc0 = crc2; next += SHORT * 2; len -= SHORT * 3; } + crc0 ^= crc; /* Compute the crc on the remaining bytes at native word size. */ end = next + (len - (len & (align - 1))); Modified: stable/11/sys/sys/libkern.h ============================================================================== --- stable/11/sys/sys/libkern.h Wed Apr 19 16:12:02 2017 (r317148) +++ stable/11/sys/sys/libkern.h Wed Apr 19 16:16:41 2017 (r317149) @@ -178,6 +178,11 @@ crc32(const void *buf, size_t size) uint32_t calculate_crc32c(uint32_t crc32c, const unsigned char *buffer, unsigned int length); +#ifdef _KERNEL +#if defined(__amd64__) || defined(__i386__) +uint32_t sse42_crc32c(uint32_t, const unsigned char *, unsigned); +#endif +#endif LIBKERN_INLINE void *memset(void *, int, size_t); Modified: stable/11/tests/sys/kern/Makefile ============================================================================== --- stable/11/tests/sys/kern/Makefile Wed Apr 19 16:12:02 2017 (r317148) +++ stable/11/tests/sys/kern/Makefile Wed Apr 19 16:16:41 2017 (r317149) @@ -25,13 +25,19 @@ NETBSD_ATF_TESTS_C+= mqueue_test CFLAGS.mqueue_test+= -I${SRCTOP}/tests LIBADD.mqueue_test+= rt +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" +ATF_TESTS_C+= libkern_crc32 +CFLAGS.libkern_crc32+= -msse4 -DUSERSPACE_TESTING +LDADD.libkern_crc32+= ${SRCTOP}/sys/libkern/x86/crc32_sse42.c +.endif + # subr_unit.c contains functions whose prototypes lie in headers that cannot be # included in userland. But as far as subr_unit_test goes, they're effectively # static. So it's ok to disable -Wmissing-prototypes for this program. CFLAGS.subr_unit.c+= -Wno-missing-prototypes SRCS.subr_unit_test+= subr_unit.c -WARNS?= 5 +WARNS?= 3 TESTS_SUBDIRS+= acct TESTS_SUBDIRS+= execve Copied: stable/11/tests/sys/kern/libkern_crc32.c (from r313006, head/tests/sys/kern/libkern_crc32.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/tests/sys/kern/libkern_crc32.c Wed Apr 19 16:16:41 2017 (r317149, copy of r313006, head/tests/sys/kern/libkern_crc32.c) @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2017 Conrad Meyer + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include + +#include + +#include + +extern uint32_t sse42_crc32c(uint32_t, const unsigned char *, unsigned); + +ATF_TC_WITHOUT_HEAD(crc32c_basic_correctness); +ATF_TC_BODY(crc32c_basic_correctness, tc) +{ + const uint64_t inputs[] = { + 0xf408c634b3a9142, + 0x80539e8c7c352e2b, + 0x62e9121db6e4d649, + 0x899345850ed0a286, + 0x2302df11b4a43b15, + 0xe943de7b3d35d70, + 0xdf1ff2bf41abf56b, + 0x9bc138abae315de2, + 0x31cc82e56234f0ff, + 0xce63c0cd6988e847, + 0x3e42f6b78ee352fa, + 0xfa4085436078cfa6, + 0x53349558bf670a4b, + 0x2714e10e7d722c61, + 0xc0d3261addfc6908, + 0xd1567c3181d3a1bf, + }; + const uint32_t results[] = { + 0x2ce33ede, + 0xc49cc573, + 0xb8683c96, + 0x6918660d, + 0xa904e522, + 0x52dbc42c, + 0x98863c22, + 0x894d5d2c, + 0xb003745d, + 0xfc496dbd, + 0x97d2fbb5, + 0x3c062ef1, + 0xcc2eff18, + 0x6a9b09f6, + 0x420242c1, + 0xfd562dc3, + }; + size_t i; + uint32_t act; + + ATF_REQUIRE(nitems(inputs) == nitems(results)); + + for (i = 0; i < nitems(inputs); i++) { + act = sse42_crc32c(~0, (const void *)&inputs[i], + sizeof(inputs[0])); + ATF_REQUIRE_MSG(act == results[i], + "crc32c(0x%jx) = 0x%08x, got 0x%08x", (uintmax_t)inputs[i], + results[i], act); + } +} + +ATF_TC_WITHOUT_HEAD(crc32c_alignment); +ATF_TC_BODY(crc32c_alignment, tc) +{ + const uint64_t input = 0xf408c634b3a9142; + const uint32_t result = 0x2ce33ede; + unsigned char buf[15]; + size_t i; + uint32_t act; + + + for (i = 1; i < 8; i++) { + memcpy(&buf[i], &input, sizeof(input)); + + act = sse42_crc32c(~0, (const void *)&buf[i], sizeof(input)); + ATF_REQUIRE_MSG(act == result, + "crc32c(0x%jx) = 0x%08x, got 0x%08x", (uintmax_t)input, + result, act); + } +} + +ATF_TC_WITHOUT_HEAD(crc32c_trailing_bytes); +ATF_TC_BODY(crc32c_trailing_bytes, tc) +{ + const unsigned char input[] = { + 0x87, 0x54, 0x74, 0xd2, 0xb, 0x9b, 0xdd, 0xf6, 0x68, 0x37, + 0xd4, 0x4, 0x5e, 0xa9, 0xb3 + }; + const uint32_t result = 0xec638d62; + uint32_t act; + + act = sse42_crc32c(~0, input, sizeof(input)); + ATF_REQUIRE_MSG(act == result, "expected 0x%08x, got 0x%08x", result, + act); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, crc32c_basic_correctness); + ATF_TP_ADD_TC(tp, crc32c_alignment); + ATF_TP_ADD_TC(tp, crc32c_trailing_bytes); + return (atf_no_error()); +} From owner-svn-src-all@freebsd.org Wed Apr 19 16:20:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4263ED45A9B; Wed, 19 Apr 2017 16:20:03 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 226B31BCC; Wed, 19 Apr 2017 16:20:03 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 9C38310A82D; Wed, 19 Apr 2017 12:20:01 -0400 (EDT) From: John Baldwin To: Slawa Olhovchenkov Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r317094 - head/share/mk Date: Wed, 19 Apr 2017 09:10:53 -0700 Message-ID: <1709565.BYcnqjiFaR@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <20170418222837.GC83631@zxy.spb.ru> References: <201704181627.v3IGRmNN082877@repo.freebsd.org> <8690993.EKcl9tcFpB@ralph.baldwin.cx> <20170418222837.GC83631@zxy.spb.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Wed, 19 Apr 2017 12:20:01 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 16:20:03 -0000 On Wednesday, April 19, 2017 01:28:37 AM Slawa Olhovchenkov wrote: > On Tue, Apr 18, 2017 at 12:45:25PM -0700, John Baldwin wrote: > > > On Tuesday, April 18, 2017 07:30:13 PM Slawa Olhovchenkov wrote: > > > On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: > > > > > > > Author: jhb > > > > Date: Tue Apr 18 16:27:48 2017 > > > > New Revision: 317094 > > > > URL: https://svnweb.freebsd.org/changeset/base/317094 > > > > > > > > Log: > > > > Disable in-tree GDB by default on x86, mips, and powerpc. > > > > > > > > GDB in ports contains all of the functionality as GDB in base > > > > (including kgdb) for these platforms along with additional > > > > functionality. In-tree GDB remains enabled on ARM and sparc64. > > > > GDB in ports does not currently support kernel debugging on arm, > > > > and ports GDB for sparc64 has not been tested (though it does > > > > include sparc64 support). > > > > > > > > Reviewed by: bdrewery, emaste, imp > > > > Relnotes: yes > > > > Sponsored by: DARPA / AFRL > > > > Differential Revision: https://reviews.freebsd.org/D10399 > > > > > > Generating core.txt now complety broken? > > > > No. crashinfo has supported gdb from ports for quite a while now. > > If you 'pkg install gdb' crashinfo defaults to using the ports gdb over > > the base one already. > > I am about clean install, w/o ports. Until we get some sort of klldb support that will not work. However, we already have platforms now where /usr/bin/gdb doesn't work for that. riscv and aarch64 aren't supported in ancient gdb, and the MIPS /usr/bin/gdb didn't really work for me in my testing. > Also, how to generate core.txt after crash, reboot and install gdb > from ports? (port instaled after crash) You can always run crashinfo by hand. -- John Baldwin From owner-svn-src-all@freebsd.org Wed Apr 19 16:24:52 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 784D5D38232; Wed, 19 Apr 2017 16:24:52 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 55716403; Wed, 19 Apr 2017 16:24:52 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JGOp1K086845; Wed, 19 Apr 2017 16:24:51 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JGOpNZ086844; Wed, 19 Apr 2017 16:24:51 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704191624.v3JGOpNZ086844@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Wed, 19 Apr 2017 16:24:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317150 - head/sys/dev/syscons X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 16:24:52 -0000 Author: bde Date: Wed Apr 19 16:24:51 2017 New Revision: 317150 URL: https://svnweb.freebsd.org/changeset/base/317150 Log: Stop using a saveunder method for mouse cursor drawing in the vga direct mode renderer. I thought that reads were not much slower than writes, so that the method only tripled the time for the whole function, but I recently measured that video memory reads can be up to 53 times slower than writes in tighter loops than here. Loop overheap here reduces the multiplier to only 16-20 on Haswell. Start cleaning up and fixing larger bugs in this function. Only replace the 22-line removal loop by a 3-line one for now, since adjusting the old loop would have required many palette calculations which are better done in the DRAW_PIXEL() macro. This also fixes missing support for depth 24, but only for removal. Removal is currently sloppy at the right bottom corner. It sometimes leaks border color into the text window. This is soon cleaned up by the caller. The planar renderer has complications to clip at the corner. Modified: head/sys/dev/syscons/scvgarndr.c Modified: head/sys/dev/syscons/scvgarndr.c ============================================================================== --- head/sys/dev/syscons/scvgarndr.c Wed Apr 19 16:16:41 2017 (r317149) +++ head/sys/dev/syscons/scvgarndr.c Wed Apr 19 16:24:51 2017 (r317150) @@ -238,12 +238,6 @@ static uint16_t vga_palette15[16] = { 0x0000, 0x0016, 0x02c0, 0x02d6, 0x5800, 0x5816, 0x5940, 0x5ad6, 0x294a, 0x295f, 0x2bea, 0x2bff, 0x7d4a, 0x7d5f, 0x7fea, 0x7fff }; - -#ifndef SC_NO_CUTPASTE -static uint32_t mouse_buf32[256]; -static uint16_t mouse_buf16[256]; -static uint8_t mouse_buf8[256]; -#endif #endif static void @@ -1132,8 +1126,6 @@ vga_pxlmouse_direct(scr_stat *scp, int x vm_offset_t p; int line_width, pixel_size; int xend, yend; - static int x_old = 0, xend_old = 0; - static int y_old = 0, yend_old = 0; int i, j; uint32_t *u32; uint16_t *u16; @@ -1163,39 +1155,12 @@ vga_pxlmouse_direct(scr_stat *scp, int x if (on) goto do_on; - /* - * Repaint overlap with the border and nearby. Unlike in the planar - * case, we kept track of everything under the cursor so can restore - * it all, but we don't completely trust the saved state to be still - * relevant, so do nothing if it is obviously stale. - */ - if (x != x_old || y != y_old || xend != xend_old || yend != yend_old) - return; - - p = scp->sc->adp->va_window + y_old * line_width + x_old * pixel_size; - - for (i = 0; i < (yend_old - y_old); i++) { - for (j = (xend_old - x_old - 1); j >= 0; j--) { - switch (bpp) { - case 32: - u32 = (uint32_t*)(p + j * pixel_size); - writel(u32, mouse_buf32[i * 16 + j]); - break; - case 16: - /* FALLTHROUGH */ - case 15: - u16 = (uint16_t*)(p + j * pixel_size); - writew(u16, mouse_buf16[i * 16 + j]); - break; - case 8: - u8 = (uint8_t*)(p + j * pixel_size); - writeb(u8, mouse_buf8[i * 16 + j]); - break; - } - } + /* Repaint overlap with the border (mess up the corner a little). */ + p = scp->sc->adp->va_window + y * line_width + x * pixel_size; + for (i = 0; i < yend - y; i++, p += line_width) + for (j = xend - x - 1; j >= 0; j--) + DRAW_PIXEL(scp, p + j * pixel_size, scp->border); - p += line_width; - } return; do_on: @@ -1206,7 +1171,6 @@ do_on: switch (bpp) { case 32: u32 = (uint32_t*)(p + j * pixel_size); - mouse_buf32[i * 16 + j] = *u32; if (mdp->md_interior[i] & (1 << (15 - j))) writel(u32, vga_palette32[15]); else if (mdp->md_border[i] & (1 << (15 - j))) @@ -1214,7 +1178,6 @@ do_on: break; case 16: u16 = (uint16_t*)(p + j * pixel_size); - mouse_buf16[i * 16 + j] = *u16; if (mdp->md_interior[i] & (1 << (15 - j))) writew(u16, vga_palette16[15]); else if (mdp->md_border[i] & (1 << (15 - j))) @@ -1222,7 +1185,6 @@ do_on: break; case 15: u16 = (uint16_t*)(p + j * pixel_size); - mouse_buf16[i * 16 + j] = *u16; if (mdp->md_interior[i] & (1 << (15 - j))) writew(u16, vga_palette15[15]); else if (mdp->md_border[i] & (1 << (15 - j))) @@ -1230,7 +1192,6 @@ do_on: break; case 8: u8 = (uint8_t*)(p + j * pixel_size); - mouse_buf8[i * 16 + j] = *u8; if (mdp->md_interior[i] & (1 << (15 - j))) writeb(u8, 15); else if (mdp->md_border[i] & (1 << (15 - j))) @@ -1241,11 +1202,6 @@ do_on: p += line_width; } - - x_old = x; - y_old = y; - xend_old = xend; - yend_old = yend; } static void From owner-svn-src-all@freebsd.org Wed Apr 19 17:06:34 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35898D45274; Wed, 19 Apr 2017 17:06:34 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E1EE494; Wed, 19 Apr 2017 17:06:33 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JH6XAP003443; Wed, 19 Apr 2017 17:06:33 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JH6WLK003439; Wed, 19 Apr 2017 17:06:32 GMT (envelope-from br@FreeBSD.org) Message-Id: <201704191706.v3JH6WLK003439@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Wed, 19 Apr 2017 17:06:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317151 - in head/sys/riscv: include riscv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 17:06:34 -0000 Author: br Date: Wed Apr 19 17:06:32 2017 New Revision: 317151 URL: https://svnweb.freebsd.org/changeset/base/317151 Log: Follow r317061 "Remove struct vmmeter from struct pcpu" with MD changes for RISC-V. This unbreaks RISC-V build. Sponsored by: DARPA, AFRL Modified: head/sys/riscv/include/counter.h head/sys/riscv/include/pcpu.h head/sys/riscv/riscv/intr_machdep.c head/sys/riscv/riscv/minidump_machdep.c Modified: head/sys/riscv/include/counter.h ============================================================================== --- head/sys/riscv/include/counter.h Wed Apr 19 16:24:51 2017 (r317150) +++ head/sys/riscv/include/counter.h Wed Apr 19 17:06:32 2017 (r317151) @@ -34,6 +34,10 @@ #include #endif +extern struct pcpu __pcpu[]; + +#define EARLY_COUNTER &__pcpu[0].pc_early_dummy_counter + #define counter_enter() critical_enter() #define counter_exit() critical_exit() Modified: head/sys/riscv/include/pcpu.h ============================================================================== --- head/sys/riscv/include/pcpu.h Wed Apr 19 16:24:51 2017 (r317150) +++ head/sys/riscv/include/pcpu.h Wed Apr 19 17:06:32 2017 (r317151) @@ -46,7 +46,7 @@ #define PCPU_MD_FIELDS \ uint32_t pc_pending_ipis; /* IPIs pending to this CPU */ \ - char __pad[125] + char __pad[61] #ifdef _KERNEL Modified: head/sys/riscv/riscv/intr_machdep.c ============================================================================== --- head/sys/riscv/riscv/intr_machdep.c Wed Apr 19 16:24:51 2017 (r317150) +++ head/sys/riscv/riscv/intr_machdep.c Wed Apr 19 17:06:32 2017 (r317151) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -231,7 +232,7 @@ riscv_cpu_intr(struct trapframe *frame) event = intr_events[active_irq]; /* Update counters */ atomic_add_long(riscv_intr_counters[active_irq], 1); - PCPU_INC(cnt.v_intr); + VM_CNT_INC(v_intr); break; default: event = NULL; Modified: head/sys/riscv/riscv/minidump_machdep.c ============================================================================== --- head/sys/riscv/riscv/minidump_machdep.c Wed Apr 19 16:24:51 2017 (r317150) +++ head/sys/riscv/riscv/minidump_machdep.c Wed Apr 19 17:06:32 2017 (r317151) @@ -37,11 +37,14 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include + #include #include #include #include #include + #include #include #include From owner-svn-src-all@freebsd.org Wed Apr 19 17:29:55 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5969D45BB2; Wed, 19 Apr 2017 17:29:55 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 746A2FDB; Wed, 19 Apr 2017 17:29:55 +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 v3JHTsab012105; Wed, 19 Apr 2017 17:29:54 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JHTsqx012104; Wed, 19 Apr 2017 17:29:54 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201704191729.v3JHTsqx012104@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 19 Apr 2017 17:29:54 +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: r317152 - stable/11/sys/modules/dtrace/dtrace X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 17:29:55 -0000 Author: bdrewery Date: Wed Apr 19 17:29:54 2017 New Revision: 317152 URL: https://svnweb.freebsd.org/changeset/base/317152 Log: MFC r316534: Stop building assym.o into the module. Modified: stable/11/sys/modules/dtrace/dtrace/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/modules/dtrace/dtrace/Makefile ============================================================================== --- stable/11/sys/modules/dtrace/dtrace/Makefile Wed Apr 19 17:06:32 2017 (r317151) +++ stable/11/sys/modules/dtrace/dtrace/Makefile Wed Apr 19 17:29:54 2017 (r317152) @@ -27,7 +27,7 @@ CFLAGS+= -I${SYSDIR}/cddl/contrib/openso SRCS+= bus_if.h device_if.h vnode_if.h # Needed for dtrace_asm.S -SRCS+= assym.s +DPSRCS+= assym.s # These are needed for assym.s SRCS+= opt_compat.h opt_kstack_pages.h opt_nfs.h opt_hwpmc_hooks.h @@ -55,11 +55,6 @@ EXPORT_SYMS= dtrace_register \ dtrace_asm.o: assym.s -.if ${MACHINE_CPUARCH} == "arm" -assym.o: assym.s - ${AS} -meabi=5 -o assym.o assym.s -.endif - .include CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h From owner-svn-src-all@freebsd.org Wed Apr 19 17:32:33 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE1A2D463F4; Wed, 19 Apr 2017 17:32:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8DF90178E; Wed, 19 Apr 2017 17:32:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JHWW9l015847; Wed, 19 Apr 2017 17:32:32 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JHWWwj015846; Wed, 19 Apr 2017 17:32:32 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201704191732.v3JHWWwj015846@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 19 Apr 2017 17:32:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317153 - stable/11/sys/conf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 17:32:33 -0000 Author: bdrewery Date: Wed Apr 19 17:32:32 2017 New Revision: 317153 URL: https://svnweb.freebsd.org/changeset/base/317153 Log: MFC r316533: Support assym.s in DPSRCS to depend on it but not link it in. Modified: stable/11/sys/conf/kmod.mk Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/kmod.mk ============================================================================== --- stable/11/sys/conf/kmod.mk Wed Apr 19 17:29:54 2017 (r317152) +++ stable/11/sys/conf/kmod.mk Wed Apr 19 17:32:32 2017 (r317153) @@ -451,7 +451,7 @@ acpi_quirks.h: ${SYSDIR}/tools/acpi_quir ${AWK} -f ${SYSDIR}/tools/acpi_quirks2h.awk ${SYSDIR}/dev/acpica/acpi_quirks .endif -.if !empty(SRCS:Massym.s) +.if !empty(SRCS:Massym.s) || !empty(DPSRCS:Massym.s) CLEANFILES+= assym.s genassym.o DEPENDOBJS+= genassym.o assym.s: genassym.o From owner-svn-src-all@freebsd.org Wed Apr 19 17:40:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4277ED4685D; Wed, 19 Apr 2017 17:40:54 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 05CB31D47; Wed, 19 Apr 2017 17:40:54 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1d0tav-0007sX-Ff; Wed, 19 Apr 2017 20:40:45 +0300 Date: Wed, 19 Apr 2017 20:40:45 +0300 From: Slawa Olhovchenkov To: Scott Long Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317143 - in head/sys/cam: . ata scsi Message-ID: <20170419174045.GD83631@zxy.spb.ru> References: <201704191504.v3JF4r5T050468@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201704191504.v3JF4r5T050468@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 17:40:54 -0000 On Wed, Apr 19, 2017 at 03:04:53PM +0000, Scott Long wrote: > Author: scottl > Date: Wed Apr 19 15:04:52 2017 > New Revision: 317143 > URL: https://svnweb.freebsd.org/changeset/base/317143 > > Log: > Add infrastructure to the ATA and SCSI transports that supports > using a driver-supplied sbuf for printing device discovery > announcements. This helps ensure that messages to the console > will be properly serialized (through sbuf_putbuf) and not be > truncated and interleaved with other messages. The > infrastructure mirrors the existing xpt_announce_periph() > entry point and is opt-in for now. No content or formatting > changes are visible to the operator other than the new coherency. > > While here, eliminate the stack usage of the temporary > announcement buffer in some of the drivers. It's moved to the > softc for now, but future work will eliminate it entirely by > making the code flow more linear. Future work will also address > locking so that the sbufs can be dynamically sized. > > The scsi_da, scs_cd, scsi_ses, and ata_da drivers are converted > at this point, other drivers can be converted at a later date. > A tunable+sysctl, kern.cam.announce_nosbuf, exists for testing > purposes but will be removed later. > > TODO: > Eliminate all of the code duplication and temporary buffers. The > old printf-based methods will be retired, and xpt_announce_periph() > will just be a wrapper that uses a dynamically sized sbuf. This > requires that the register and deregister paths be made malloc-safe, > which they aren't currently. Thanks! MFC planed? From owner-svn-src-all@freebsd.org Wed Apr 19 17:47:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E261DD46A18; Wed, 19 Apr 2017 17:47:22 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C29AF350; Wed, 19 Apr 2017 17:47:22 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 4E12310A7B9; Wed, 19 Apr 2017 13:47:21 -0400 (EDT) From: John Baldwin To: Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317144 - head/contrib/zstd/lib/common Date: Wed, 19 Apr 2017 09:59:02 -0700 Message-ID: <3162397.lBpeitT6v2@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <201704191524.v3JFOYiK061287@repo.freebsd.org> References: <201704191524.v3JFOYiK061287@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Wed, 19 Apr 2017 13:47:21 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 17:47:23 -0000 On Wednesday, April 19, 2017 03:24:34 PM Ruslan Bukin wrote: > Author: br > Date: Wed Apr 19 15:24:33 2017 > New Revision: 317144 > URL: https://svnweb.freebsd.org/changeset/base/317144 > > Log: > Don't use __builtin_bswap for RISC-V due to undefined reference > in compiler. > > This unbreaks RISC-V world build. > > Sponsored by: DARPA, AFRL We should probably add an implementation of __bswapdi2() for riscv to libcompiler_rt instead? -- John Baldwin From owner-svn-src-all@freebsd.org Wed Apr 19 17:51:33 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B9DAD46CF7; Wed, 19 Apr 2017 17:51:33 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 28137A25; Wed, 19 Apr 2017 17:51:33 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JHpW2J021033; Wed, 19 Apr 2017 17:51:32 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JHpWBr021032; Wed, 19 Apr 2017 17:51:32 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704191751.v3JHpWBr021032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 17:51:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317154 - head/usr.sbin/rpcbind X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 17:51:33 -0000 Author: ngie Date: Wed Apr 19 17:51:32 2017 New Revision: 317154 URL: https://svnweb.freebsd.org/changeset/base/317154 Log: Print out the signal number on exit in terminate(..) if WARMSTART is compiled into rpcbind. The signal number can provide helpful diagnostic info. MFC after: 1 week Obtained from: Isilon OneFS Sponsored by: Dell EMC Isilon Modified: head/usr.sbin/rpcbind/rpcbind.c Modified: head/usr.sbin/rpcbind/rpcbind.c ============================================================================== --- head/usr.sbin/rpcbind/rpcbind.c Wed Apr 19 17:32:32 2017 (r317153) +++ head/usr.sbin/rpcbind/rpcbind.c Wed Apr 19 17:51:32 2017 (r317154) @@ -757,12 +757,13 @@ rbllist_add(rpcprog_t prog, rpcvers_t ve * Catch the signal and die */ static void -terminate(int dummy __unused) +terminate(int signum __unused) { close(rpcbindlockfd); #ifdef WARMSTART syslog(LOG_ERR, - "rpcbind terminating on signal. Restart with \"rpcbind -w\""); + "rpcbind terminating on signal %d. Restart with \"rpcbind -w\"", + signum); write_warmstart(); /* Dump yourself */ #endif exit(2); From owner-svn-src-all@freebsd.org Wed Apr 19 18:01:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA6B3D44021; Wed, 19 Apr 2017 18:01:54 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7FEDB33B; Wed, 19 Apr 2017 18:01:54 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JI1rgn026142; Wed, 19 Apr 2017 18:01:53 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JI1r7Y026141; Wed, 19 Apr 2017 18:01:53 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704191801.v3JI1r7Y026141@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 18:01:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317155 - head/usr.sbin/rpcbind X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:01:54 -0000 Author: ngie Date: Wed Apr 19 18:01:53 2017 New Revision: 317155 URL: https://svnweb.freebsd.org/changeset/base/317155 Log: rpcbind(8): wordsmith -h description and mention -W in the SYNOPSIS section -W was already documented in the OPTIONS section. MFC after: 7 weeks Reported by: igor (-h wordsmith'ing) Sponsored by: Dell EMC Isilon Modified: head/usr.sbin/rpcbind/rpcbind.8 Modified: head/usr.sbin/rpcbind/rpcbind.8 ============================================================================== --- head/usr.sbin/rpcbind/rpcbind.8 Wed Apr 19 17:51:32 2017 (r317154) +++ head/usr.sbin/rpcbind/rpcbind.8 Wed Apr 19 18:01:53 2017 (r317155) @@ -2,7 +2,7 @@ .\" Copyright 1989 AT&T .\" Copyright 1991 Sun Microsystems, Inc. .\" $FreeBSD$ -.Dd March 6, 2014 +.Dd April 19, 2017 .Dt RPCBIND 8 .Os .Sh NAME @@ -10,7 +10,7 @@ .Nd universal addresses to RPC program number mapper .Sh SYNOPSIS .Nm -.Op Fl 6adiLls +.Op Fl 6adiLlsW .Op Fl h Ar bindip .Sh DESCRIPTION The @@ -85,7 +85,7 @@ is also specified. With this option, the name-to-address translation consistency checks are shown in detail. .It Fl h Ar bindip -Specify specific IP addresses to bind to for TCP and UDP requests. +IP addresses to bind to when servicing TCP and UDP requests. This option may be specified multiple times and is typically necessary when running on a multi-homed host. From owner-svn-src-all@freebsd.org Wed Apr 19 18:02:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E117FD440B4; Wed, 19 Apr 2017 18:02:41 +0000 (UTC) (envelope-from antoine.brodin.freebsd@gmail.com) Received: from mail-io0-x242.google.com (mail-io0-x242.google.com [IPv6:2607:f8b0:4001:c06::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B8BAF785; Wed, 19 Apr 2017 18:02:41 +0000 (UTC) (envelope-from antoine.brodin.freebsd@gmail.com) Received: by mail-io0-x242.google.com with SMTP id x86so5744626ioe.3; Wed, 19 Apr 2017 11:02:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=lVxQsimqzRHxFFsMC8RIbbrBrhzQOqCGnpmmcpEiys8=; b=qnmjz2ungZH8gZJvBgECMaPijanSj0FoNq2yD58T0LY8euRmYMLJAMv1fw/TpFWliB CQOD7iNCHPLhlHGeBxkN8AmLkXKnfIK6/jM/E4Ooc+gMDel1RaCaSWT4LwRZiwqeYc9R wTM1xY+4EfT1gCEs8UePq1gNEml68HRkkGs59yWyVXqJ2Cfuvfxz8p+LY6ME4ZBXtuJz juPZ9Pwo0kzJtUFHAeu1RMFbyi4nG98nwRhre0dIrOOQSxToZM+LpmWipWj6IeY2cp1k RouOlGjm0WOeyG6Av+OfZeQ0BYhcXRfi4xmaHXlVAoNdPu+xJLrtOfIRh2nhrFvpoCqh oYgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=lVxQsimqzRHxFFsMC8RIbbrBrhzQOqCGnpmmcpEiys8=; b=ZJa0qDxDGvPimeVTgkSbLfu/rntdJGb2EcCiR+61d87c+9ln8/w6kOf2bAcBJrHdnE UT2WY7kA65QMSTlJEuosIEgUxc5VCmWklVmZHR7yUfIUiJV9IgtGHTihwTZOLz5v4vbn chiV17DmCt7Fmn/bktMpSGlnAnvAXSL47T3viXQcEvUz+J0s5olycePK6jFfrTuhKqwn hS2sEZxQNg+wRbMuwpkdIiLqmZ2kFfF9zkzYL6Uwjoy+1BZS2oJ27Ii8aE8fS9/62ERU qhSfDetixpYbZGgvkWATIVEXCB/l9de+De3mYYoWQa1CewMaE8ABL+GM02TXVelePTGL 0Vtw== X-Gm-Message-State: AN3rC/5ZCo49CsjDAcmSzxQlPbyxR2fZDBpYvQBO7kcxVSeYsaOWuTYU ow6gqpIB4Eatkx5IPulny2CzPLuWkoH0 X-Received: by 10.107.147.135 with SMTP id v129mr4238340iod.233.1492624960582; Wed, 19 Apr 2017 11:02:40 -0700 (PDT) MIME-Version: 1.0 Sender: antoine.brodin.freebsd@gmail.com Received: by 10.107.33.209 with HTTP; Wed, 19 Apr 2017 11:02:40 -0700 (PDT) In-Reply-To: <201704171734.v3HHYlf5022945@repo.freebsd.org> References: <201704171734.v3HHYlf5022945@repo.freebsd.org> From: Antoine Brodin Date: Wed, 19 Apr 2017 20:02:40 +0200 X-Google-Sender-Auth: IL24ywxGQ3o9pTE8owztbHvk2UQ Message-ID: Subject: Re: svn commit: r317061 - in head: libexec/rpc.rstatd sys/amd64/amd64 sys/amd64/include sys/arm/arm sys/arm/include sys/arm64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linprocfs... To: Gleb Smirnoff Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:02:42 -0000 On Mon, Apr 17, 2017 at 7:34 PM, Gleb Smirnoff wrote: > Author: glebius > Date: Mon Apr 17 17:34:47 2017 > New Revision: 317061 > URL: https://svnweb.freebsd.org/changeset/base/317061 > > Log: > - Remove 'struct vmmeter' from 'struct pcpu', leaving only global vmmeter > in place. To do per-cpu stats, convert all fields that previously were > maintained in the vmmeters that sit in pcpus to counter(9). > - Since some vmmeter stats may be touched at very early stages of boot, > before we have set up UMA and we can do counter_u64_alloc(), provide an > early counter mechanism: > o Leave one spare uint64_t in struct pcpu, named pc_early_dummy_counter. > o Point counter(9) fields of vmmeter to pcpu[0].pc_early_dummy_counter, > so that at early stages of boot, before counters are allocated we already > point to a counter that can be safely written to. > o For sparc64 that required a whole dummy pcpu[MAXCPU] array. Hi, This seems to break a few ports, the most important ones: http://gohan2.ysv.freebsd.org/data/head-amd64-default-baseline/p438755_s317076/logs/errors/net-snmp-5.7.3_15.log http://gohan2.ysv.freebsd.org/data/head-amd64-default-baseline/p438755_s317076/logs/errors/sigar-1.7.3_2.log Cheers, Antoine From owner-svn-src-all@freebsd.org Wed Apr 19 18:11:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B93DED443DE; Wed, 19 Apr 2017 18:11:09 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 88BA2C83; Wed, 19 Apr 2017 18:11:09 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JIB8NN030852; Wed, 19 Apr 2017 18:11:08 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JIB8NS030851; Wed, 19 Apr 2017 18:11:08 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704191811.v3JIB8NS030851@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Apr 2017 18:11:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317156 - head/tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:11:09 -0000 Author: emaste Date: Wed Apr 19 18:11:08 2017 New Revision: 317156 URL: https://svnweb.freebsd.org/changeset/base/317156 Log: makeman: add a comment describing purpose and invocation Reviewed by: jhb, ngie MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D10389 Modified: head/tools/build/options/makeman Modified: head/tools/build/options/makeman ============================================================================== --- head/tools/build/options/makeman Wed Apr 19 18:01:53 2017 (r317155) +++ head/tools/build/options/makeman Wed Apr 19 18:11:08 2017 (r317156) @@ -1,8 +1,22 @@ #!/bin/sh # # This file is in the public domain. -# # $FreeBSD$ +# +# This script is used to create the src.conf.5 man page, using template text +# contained herein and the contents of the WITH_* and WITHOUT_* files in the +# same directory. Each WITH_* and WITHOUT_* file documents the effect of the +# /etc/src.conf knob with the same name. +# +# This script invokes "make showconfig" for each supported architecture in +# order to determine, for each option, whether the default setting is always +# WITH, always WITHOUT, or is architecture-dependent. It also determines +# and describes dependencies between options. +# +# Usage: +# +# cd tools/build/options +# sh makeman > ../../../share/man/man5/src.conf.5 set -o errexit export LC_ALL=C @@ -128,7 +142,7 @@ main() fbsdid='$'FreeBSD'$' cat < Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2A0A9D445B2; Wed, 19 Apr 2017 18:15:29 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 02223105E; Wed, 19 Apr 2017 18:15:28 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3JGOIep031396; Wed, 19 Apr 2017 09:24:18 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3JGOImX031395; Wed, 19 Apr 2017 09:24:18 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704191624.v3JGOImX031395@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317145 - in stable/11/sys: boot/mips/uboot conf In-Reply-To: <201704191533.v3JFXOHk065533@repo.freebsd.org> To: Ed Maste Date: Wed, 19 Apr 2017 09:24:18 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:15:29 -0000 [ Charset UTF-8 unsupported, converting... ] > Author: emaste > Date: Wed Apr 19 15:33:24 2017 > New Revision: 317145 > URL: https://svnweb.freebsd.org/changeset/base/317145 > > Log: > MFC r303442, r305343: remove CONSTRUCTORS from linker scripts > > r303442: remove CONSTRUCTORS from kernel linker scripts > > r305343: remove CONSTRUCTORS from MIPS uboot linker script > > The linker script CONSTRUCTORS keyword is only meaningful "when linking > object file formats which do not support arbitrary sections, such as > ECOFF and XCOFF"[1] and is ignored for other object file formats. > > LLVM's lld does not yet accept (and ignore) CONSTRUCTORS, so just remove > CONSTRUCTORS from the linker script as it has no effect. > > [1] https://sourceware.org/binutils/docs/ld/Output-Section-Keywords.html ^^^^^^^^^^^^ links to external data is probably not a good idea in commit messages as it tends to disappear in time. There are some notable exceptions, ie *.freebsd.org:// is normally safe, but does get broken (there are reference to phab.freebsd.org that is now review.freebsd.org. Thoug most commiters might know this someone external reading svn logs would not.) netbsd.org, openbsd.org, etc are propably next safer, but nothing says one of those can not go poof some day. Same of Illumos.org which we frequently reference. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Wed Apr 19 18:27:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20971D44B7C; Wed, 19 Apr 2017 18:27:21 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EFA4A1857; Wed, 19 Apr 2017 18:27:20 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1033) id 2788630A8; Wed, 19 Apr 2017 18:27:20 +0000 (UTC) Date: Wed, 19 Apr 2017 18:27:20 +0000 From: Alexey Dokuchaev To: rgrimes@freebsd.org Cc: Ed Maste , svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r317145 - in stable/11/sys: boot/mips/uboot conf Message-ID: <20170419182720.GC61084@FreeBSD.org> References: <201704191533.v3JFXOHk065533@repo.freebsd.org> <201704191624.v3JGOImX031395@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201704191624.v3JGOImX031395@pdx.rh.CN85.dnsmgr.net> User-Agent: Mutt/1.7.1 (2016-10-04) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:27:21 -0000 On Wed, Apr 19, 2017 at 09:24:18AM -0700, Rodney W. Grimes wrote: > > New Revision: 317145 > > URL: https://svnweb.freebsd.org/changeset/base/317145 > > > > Log: > > ... > > [1] https://sourceware.org/binutils/docs/ld/Output-Section-Keywords.html > > ^^^^^^^^^^^^ links to external data is probably not a good idea in > commit messages as it tends to disappear in time. Unfortunately this is the best we can do here (apart from quoting relevant parts, but that is also not always an option). Any URL is better than nothing, and even if it disappears one day there's webarchive.org. > netbsd.org, openbsd.org, etc are propably next safer, but nothing says > one of those can not go poof some day. OpenBSD's PR links were all broken at least few years ago, not sure of right now. (Listing PR number itself would be still useful.) ./danfe From owner-svn-src-all@freebsd.org Wed Apr 19 18:35:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9DD0D44E85; Wed, 19 Apr 2017 18:35:35 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A4FF31E3A; Wed, 19 Apr 2017 18:35:35 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JIZY5W040823; Wed, 19 Apr 2017 18:35:34 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JIZYk2040822; Wed, 19 Apr 2017 18:35:34 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704191835.v3JIZYk2040822@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Wed, 19 Apr 2017 18:35:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317157 - head/sys/dev/syscons X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:35:35 -0000 Author: bde Date: Wed Apr 19 18:35:34 2017 New Revision: 317157 URL: https://svnweb.freebsd.org/changeset/base/317157 Log: Fix missing support for drawing the mouse cursor in depth 24 of direct mode. Use the general DRAWPIXEL() macro with its bigger case statement (twice) instead of our big case statement (once). DRAWPIXEL() is more complicated since it is not missing support for depth 24 or complications for colors in depth 16 (we currently hard-code black and white so the complications for colors are not needed). DRAWPIXEL() also does the bpp calculation in the inner loop. Compilers optimize DRAWPIXEL() well enough, and the main text drawing method always depended on this. In direct mode, mouse cursor drawing is now similar to normal text drawing except it draws in 2 hard-coded colors instead of 1 variable color. This also fixes a nested hard-coding of colors. DRAWPIXEL() uses the palette in all cases, but the direct code didn't use the palette for its hard-coded black. This only had an effect in depth 8, since changing the palette is not supported in other depths. Modified: head/sys/dev/syscons/scvgarndr.c Modified: head/sys/dev/syscons/scvgarndr.c ============================================================================== --- head/sys/dev/syscons/scvgarndr.c Wed Apr 19 18:11:08 2017 (r317156) +++ head/sys/dev/syscons/scvgarndr.c Wed Apr 19 18:35:34 2017 (r317157) @@ -1127,10 +1127,6 @@ vga_pxlmouse_direct(scr_stat *scp, int x int line_width, pixel_size; int xend, yend; int i, j; - uint32_t *u32; - uint16_t *u16; - uint8_t *u8; - int bpp; mdp = (scp->font_size < 14) ? &mouse9x13 : &mouse10x16; @@ -1144,11 +1140,6 @@ vga_pxlmouse_direct(scr_stat *scp, int x yend <= (scp->yoff + scp->ysize) * scp->font_size) return; - bpp = scp->sc->adp->va_info.vi_depth; - - if ((bpp == 16) && (scp->sc->adp->va_info.vi_pixel_fsizes[1] == 5)) - bpp = 15; - line_width = scp->sc->adp->va_line_width; pixel_size = scp->sc->adp->va_info.vi_pixel_size; @@ -1165,43 +1156,12 @@ vga_pxlmouse_direct(scr_stat *scp, int x do_on: p = scp->sc->adp->va_window + y * line_width + x * pixel_size; - - for (i = 0; i < (yend - y); i++) { - for (j = (xend - x - 1); j >= 0; j--) { - switch (bpp) { - case 32: - u32 = (uint32_t*)(p + j * pixel_size); - if (mdp->md_interior[i] & (1 << (15 - j))) - writel(u32, vga_palette32[15]); - else if (mdp->md_border[i] & (1 << (15 - j))) - writel(u32, 0); - break; - case 16: - u16 = (uint16_t*)(p + j * pixel_size); - if (mdp->md_interior[i] & (1 << (15 - j))) - writew(u16, vga_palette16[15]); - else if (mdp->md_border[i] & (1 << (15 - j))) - writew(u16, 0); - break; - case 15: - u16 = (uint16_t*)(p + j * pixel_size); - if (mdp->md_interior[i] & (1 << (15 - j))) - writew(u16, vga_palette15[15]); - else if (mdp->md_border[i] & (1 << (15 - j))) - writew(u16, 0); - break; - case 8: - u8 = (uint8_t*)(p + j * pixel_size); - if (mdp->md_interior[i] & (1 << (15 - j))) - writeb(u8, 15); - else if (mdp->md_border[i] & (1 << (15 - j))) - writeb(u8, 0); - break; - } - } - - p += line_width; - } + for (i = 0; i < yend - y; i++, p += line_width) + for (j = xend - x - 1; j >= 0; j--) + if (mdp->md_interior[i] & (1 << (15 - j))) + DRAW_PIXEL(scp, p + j * pixel_size, 15); + else if (mdp->md_border[i] & (1 << (15 - j))) + DRAW_PIXEL(scp, p + j * pixel_size, 0); } static void From owner-svn-src-all@freebsd.org Wed Apr 19 18:39:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 19B63D44FAF; Wed, 19 Apr 2017 18:39:54 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D44D4B1; Wed, 19 Apr 2017 18:39:53 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3JIdkDt031883; Wed, 19 Apr 2017 11:39:46 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3JGXWmu031427; Wed, 19 Apr 2017 09:33:32 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317094 - head/share/mk In-Reply-To: <1709565.BYcnqjiFaR@ralph.baldwin.cx> To: John Baldwin Date: Wed, 19 Apr 2017 09:33:32 -0700 (PDT) CC: Slawa Olhovchenkov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:39:54 -0000 > On Wednesday, April 19, 2017 01:28:37 AM Slawa Olhovchenkov wrote: > > On Tue, Apr 18, 2017 at 12:45:25PM -0700, John Baldwin wrote: > > > > > On Tuesday, April 18, 2017 07:30:13 PM Slawa Olhovchenkov wrote: > > > > On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: > > > > > > > > > Author: jhb > > > > > Date: Tue Apr 18 16:27:48 2017 > > > > > New Revision: 317094 > > > > > URL: https://svnweb.freebsd.org/changeset/base/317094 > > > > > > > > > > Log: > > > > > Disable in-tree GDB by default on x86, mips, and powerpc. > > > > > > > > > > GDB in ports contains all of the functionality as GDB in base > > > > > (including kgdb) for these platforms along with additional > > > > > functionality. In-tree GDB remains enabled on ARM and sparc64. > > > > > GDB in ports does not currently support kernel debugging on arm, > > > > > and ports GDB for sparc64 has not been tested (though it does > > > > > include sparc64 support). > > > > > > > > > > Reviewed by: bdrewery, emaste, imp > > > > > Relnotes: yes > > > > > Sponsored by: DARPA / AFRL > > > > > Differential Revision: https://reviews.freebsd.org/D10399 > > > > > > > > Generating core.txt now complety broken? > > > > > > No. crashinfo has supported gdb from ports for quite a while now. > > > If you 'pkg install gdb' crashinfo defaults to using the ports gdb over > > > the base one already. > > > > I am about clean install, w/o ports. > > Until we get some sort of klldb support that will not work. However, > we already have platforms now where /usr/bin/gdb doesn't work for that. > riscv and aarch64 aren't supported in ancient gdb, and the MIPS > /usr/bin/gdb didn't really work for me in my testing. So we break what worked on a Tier1 Platform? With my "user" hat on these are the exact kind of breakages that send me looking for another platform to run on. We far to often just go oh you can do X y and Z to get around what we broke forgetting that the user 6 months from now when this hits a release isnt gona come ask, he may just go down the road to something else. Remove gdb WHEN klldb can replace it, not a day before. Using "oh its broken on aarch64 and mips" is not a reason to break things on i386/amd64. Yes, I know we want to get gnu stuff out of the tree, but that needs to come AFTER a proper replacement is avaliable. > > > Also, how to generate core.txt after crash, reboot and install gdb > > from ports? (port instaled after crash) > > You can always run crashinfo by hand. /me starts to look for a new OS, this one is not very good at user support. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Wed Apr 19 18:47:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55047D45AEC; Wed, 19 Apr 2017 18:47:54 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x241.google.com (mail-io0-x241.google.com [IPv6:2607:f8b0:4001:c06::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1E151D15; Wed, 19 Apr 2017 18:47:54 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x241.google.com with SMTP id d203so6162468iof.2; Wed, 19 Apr 2017 11:47:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=izGkNgoc1MPDuYZdTAAQHuwg15mfnFiF97spAEzmrkU=; b=SKoAuMnJ0OQejYKsH/s1pMwfIG8SSpCtrn7sifTwnX8Y3sduCLdAiCcqPnsBVlFr4H kQe4Sa45jIrCvsE3mPXmfmE/utqaDIacSwXxxEdvh6527pjoBkss0uiZwH4Fgt0OJiwz Sd9SvxknC0bdY9ZsuZ/a5TIcLq2lUB/5YCSgtjVviiPMNYwmX8iBIP+lWmVnVBSC4s5T xvoI6usBBeBl3jOO/sNSN0pfb5i4t71k7TaWkVvJeCv1vCSgGOIoPTiYLpoQ4Y+1N4vN o7XMB0twHp7ABdx3fYsoGIu/pVYR1o/xERaWL2iKwmzsH2PmGDhfhhVoY7Phxq3zYtmN QCmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=izGkNgoc1MPDuYZdTAAQHuwg15mfnFiF97spAEzmrkU=; b=A9tX1S94n0iuaKVuvvXHkUOHPM1siNowa6XDYCjTjX+gjyTDmtL2tfz0+oH0bzL/zw vu+aVk5u1qLid+MQUOQxLiYMhesOtrdNqTsIGdVnfYUdUwTCPvcPreoIkWamG970DWwX vvU2kcxvINdvqZ7TAJaCN3WXICwRgOWHl2sSdrD8Kx/EViy+kY22KbfxuI/X4Kbz8nZa mynkr0QpLwhhsPxmHIwkRVgyKiKjHyLoB5qHkPBmUj+5FzekmZi5aUl37LCeBjrhlAdg 7xTkeLFrcB0agmDTpyU727EhLYS+l5Km5pky6PvERDg7/olJpVOC8NV2h7WN2mX4HLT/ ybvg== X-Gm-Message-State: AN3rC/4SyFtTordHpFfydmLqhBhyHJf/WFumJEGMvLK/OJCnn+VJZrwZ VVtzLej9jLm52yp36ZHwUxKWDY546XtU X-Received: by 10.107.191.2 with SMTP id p2mr5632122iof.172.1492627673240; Wed, 19 Apr 2017 11:47:53 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.30.136 with HTTP; Wed, 19 Apr 2017 11:47:31 -0700 (PDT) In-Reply-To: <201704191624.v3JGOImX031395@pdx.rh.CN85.dnsmgr.net> References: <201704191533.v3JFXOHk065533@repo.freebsd.org> <201704191624.v3JGOImX031395@pdx.rh.CN85.dnsmgr.net> From: Ed Maste Date: Wed, 19 Apr 2017 14:47:31 -0400 X-Google-Sender-Auth: tzfvZruAdrCWvbOPKIBwIwkh79E Message-ID: Subject: Re: svn commit: r317145 - in stable/11/sys: boot/mips/uboot conf To: rgrimes@freebsd.org Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:47:54 -0000 On 19 April 2017 at 12:24, Rodney W. Grimes wrote: >> >> The linker script CONSTRUCTORS keyword is only meaningful "when linking >> object file formats which do not support arbitrary sections, such as >> ECOFF and XCOFF"[1] and is ignored for other object file formats. >> >> LLVM's lld does not yet accept (and ignore) CONSTRUCTORS, so just remove >> CONSTRUCTORS from the linker script as it has no effect. >> >> [1] https://sourceware.org/binutils/docs/ld/Output-Section-Keywords.html > > ^^^^^^^^^^^^ links to external data is probably not a good idea in > commit messages as it tends to disappear in time. I understand your point, but think it should be phrased differently: commit messages should stand alone. Some projects use a commit message style that consists of little more than "Fixes bug #1723" or "rdar://90210", and I agree that is insufficient. In the quoted commit message above the relevant content from the binutils documentation is quoted inline, and the URL acts as a reference for the citation. I'd argue that a citation without the URL is less useful today, and not really any worse in the case that sourceware.org disappears, given the existence of the Internet Archive and search engines that could locate the content based on the quoted content and/or portions of the URL. From owner-svn-src-all@freebsd.org Wed Apr 19 18:59:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0528D45D16; Wed, 19 Apr 2017 18:59:39 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 655691E4; Wed, 19 Apr 2017 18:59:39 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JIxcTi048810; Wed, 19 Apr 2017 18:59:38 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JIxc57048808; Wed, 19 Apr 2017 18:59:38 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704191859.v3JIxc57048808@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Apr 2017 18:59:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317158 - in head: share/man/man5 share/mk tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 18:59:39 -0000 Author: emaste Date: Wed Apr 19 18:59:38 2017 New Revision: 317158 URL: https://svnweb.freebsd.org/changeset/base/317158 Log: Remove WITHOUT_GNU and WITHOUT_GNU_SUPPORT src.conf.knobs These have no effect (and WITHOUT_GNU is documented as having no effect). I intend to later introduce a WITHOUT_GPL knob to serve a similar purpose as WITHOUT_GNU's previously documented intent, but with a more accurate name. To avoid confusion over the transition though just remove the existing, nonfunctional ones. Deleted: head/tools/build/options/WITHOUT_GNU head/tools/build/options/WITHOUT_GNU_SUPPORT Modified: head/share/man/man5/src.conf.5 head/share/mk/src.opts.mk Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Wed Apr 19 18:35:34 2017 (r317157) +++ head/share/man/man5/src.conf.5 Wed Apr 19 18:59:38 2017 (r317158) @@ -1,6 +1,6 @@ -.\" DO NOT EDIT-- this file is automatically generated. +.\" DO NOT EDIT-- this file is generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd April 18, 2017 +.Dd April 19, 2017 .Dt SRC.CONF 5 .Os .Sh NAME @@ -700,19 +700,6 @@ Set to build .Pp This is a default setting on arm/arm, arm/armeb, arm/armv6 and sparc64/sparc64. -.It Va WITHOUT_GNU -Set to not build contributed GNU software as a part of the base system. -This option can be useful if the system built must not contain any code -covered by the GNU Public License due to legal reasons. -.Bf -symbolic -The option has no effect yet. -.Ef -When set, it enforces these options: -.Pp -.Bl -item -compact -.It -.Va WITHOUT_GNU_SUPPORT -.El .It Va WITHOUT_GNUCXX Do not build the GNU C++ stack (g++, libstdc++). This is the default on platforms where clang is the system compiler. @@ -736,8 +723,6 @@ Set to not build GNU .It Va WITHOUT_GNU_GREP_COMPAT Set this option to omit the gnu extensions to grep from being included in BSD grep. -.It Va WITHOUT_GNU_SUPPORT -Set to build some programs without optional GNU support. .It Va WITHOUT_GPIO Set to not build .Xr gpioctl 8 Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Wed Apr 19 18:35:34 2017 (r317157) +++ head/share/mk/src.opts.mk Wed Apr 19 18:59:38 2017 (r317158) @@ -96,7 +96,6 @@ __DEFAULT_YES_OPTIONS = \ FTP \ GAMES \ GCOV \ - GNU \ GNU_DIFF \ GNU_GREP \ GNU_GREP_COMPAT \ @@ -450,7 +449,6 @@ MK_${vv:H}:= ${MK_${vv:T}} .for var in \ BLACKLIST \ BZIP2 \ - GNU \ INET \ INET6 \ KERBEROS \ From owner-svn-src-all@freebsd.org Wed Apr 19 19:01:32 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D08BD45EDC; Wed, 19 Apr 2017 19:01:32 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x230.google.com (mail-io0-x230.google.com [IPv6:2607:f8b0:4001:c06::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 04F9465B; Wed, 19 Apr 2017 19:01:32 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x230.google.com with SMTP id k87so32937238ioi.0; Wed, 19 Apr 2017 12:01:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=vGCNaxI8bGVRWuk/RpQ0g8mb6NsSo4960lRXNzQHOwU=; b=L69QrAsEkNDKEOiTxjFN2QsGD1GSA1L70V0rJRCeUQWmQKz8vBUP8u9Gq4ZTlGddFu BD1K9jkEfpRUXkSJGxsoYX6dA0B07Ho8FG7I55K3wIU8TNuw4piM2M1jkzl7G7kSBikl N5n+OQNd+wnE8mHzwA7XYC26V02BG0dO1pSnbS317/IUDt5r98ClTdTHqOnatLuNsFdQ 2oAfKJle+uHCdgvQGwM9O9wYEn6kSL8bq4su8NN4YN3bP12B3x1BftalK/AsDSALYW7E +VMnH+IEfJrbSxes9jNr1GIflm40eXBG3chfSgClWDXW6UTiWKVKN7Yq1OVWgwk8QwEZ 4xrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=vGCNaxI8bGVRWuk/RpQ0g8mb6NsSo4960lRXNzQHOwU=; b=GCKXIJlvEk0tV8X3K/FrH2oDK0L9gvJRetayz7q2cwqYaPNxFctJmBJ4bB1aigtKV1 FsOdLSvNuQDNonJZZ2mDGR4P1/n2rWsHevU7hjNlYqTeV6oMSq4RzWbM78UvMTKhrW84 7nYI16XTpnIiDqrmjYgJqNU/yRBVpI1giJlKXGTgxj17OQhZ107UN/iomwkunwACGqxm zs6zdGcBvSA5NtZB2MtkE0gxNXJObM7KyQRCSsknkFah554VTt8IjMEyaOLTqqYMFsEk v1vRy3th5RyQJq6+xfcu7FyXyl2k2iyHJ06va8uOoiwTNkyoe95qb7SL++K9ZoCEfeze GddA== X-Gm-Message-State: AN3rC/4/3AmcmGXeAvG/LGJR9J3NbFd59VufB2xTiRjQXM1SN5m/bUA7 h4OIjpmuzfgWHCe6jqwhkfHxxRSPOdznG7U= X-Received: by 10.107.34.21 with SMTP id i21mr5061782ioi.52.1492628489651; Wed, 19 Apr 2017 12:01:29 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.30.136 with HTTP; Wed, 19 Apr 2017 12:01:09 -0700 (PDT) In-Reply-To: <201704191859.v3JIxc57048808@repo.freebsd.org> References: <201704191859.v3JIxc57048808@repo.freebsd.org> From: Ed Maste Date: Wed, 19 Apr 2017 15:01:09 -0400 X-Google-Sender-Auth: 8xxFl2rk8VEgzdAfBx5MsiF8Wr4 Message-ID: Subject: Re: svn commit: r317158 - in head: share/man/man5 share/mk tools/build/options To: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 19:01:32 -0000 On 19 April 2017 at 14:59, Ed Maste wrote: > Author: emaste > Date: Wed Apr 19 18:59:38 2017 > New Revision: 317158 > URL: https://svnweb.freebsd.org/changeset/base/317158 > > Log: > Remove WITHOUT_GNU and WITHOUT_GNU_SUPPORT src.conf.knobs > > These have no effect (and WITHOUT_GNU is documented as having no > effect). I intend to later introduce a WITHOUT_GPL knob to serve a > similar purpose as WITHOUT_GNU's previously documented intent, but with > a more accurate name. To avoid confusion over the transition though just > remove the existing, nonfunctional ones. Closed the editor too early: Reviewed by: jhb, bapt Differential Revision: https://reviews.freebsd.org/D10418 From owner-svn-src-all@freebsd.org Wed Apr 19 19:06:49 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 178A3D46005; Wed, 19 Apr 2017 19:06:49 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C3586B54; Wed, 19 Apr 2017 19:06:48 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JJ6lGm053050; Wed, 19 Apr 2017 19:06:47 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JJ6lcl053049; Wed, 19 Apr 2017 19:06:47 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704191906.v3JJ6lcl053049@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Apr 2017 19:06:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317159 - head/contrib/libstdc++/config/abi/pre X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 19:06:49 -0000 Author: emaste Date: Wed Apr 19 19:06:47 2017 New Revision: 317159 URL: https://svnweb.freebsd.org/changeset/base/317159 Log: libstdc++: fix symbol version script for LLD LLD is less tolerant of inconsistencies in the symbol version script. - Add a ; on the last entry in a version block - Remove duplicated symbols, retaining those in the earliest block Reviewed by: bdrewery MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D10428 Modified: head/contrib/libstdc++/config/abi/pre/gnu.ver Modified: head/contrib/libstdc++/config/abi/pre/gnu.ver ============================================================================== --- head/contrib/libstdc++/config/abi/pre/gnu.ver Wed Apr 19 18:59:38 2017 (r317158) +++ head/contrib/libstdc++/config/abi/pre/gnu.ver Wed Apr 19 19:06:47 2017 (r317159) @@ -121,7 +121,7 @@ GLIBCXX_3.4 { std::__moneypunct_cache*; std::__numpunct_cache*; std::__timepunct_cache*; - __gnu_debug::_Error_formatter* + __gnu_debug::_Error_formatter*; }; # Names not in an 'extern' block are mangled names. @@ -604,34 +604,6 @@ GLIBCXX_3.4.4 { } GLIBCXX_3.4.3; GLIBCXX_3.4.5 { - - # std::string - _ZNKSs11_M_disjunctEPKc; - _ZNKSs15_M_check_lengthE[jm][jm]PKc; - _ZNSs4_Rep26_M_set_length_and_sharableE*; - _ZNSs7_M_copyEPcPKc[jm]; - _ZNSs7_M_moveEPcPKc[jm]; - _ZNSs9_M_assignEPc[jm]c; - - # std::wstring - _ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw; - _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthE[jm][jm]PKc; - _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableE*; - _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKw[jm]; - _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKw[jm]; - _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPw[jm]w; - - _ZNKSt13basic_fstreamI[cw]St11char_traitsI[cw]EE7is_openEv; - _ZNKSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE7is_openEv; - _ZNKSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE7is_openEv; - - _ZNSi6ignoreE[ilv]; - _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreE[ilv]; - - _ZNSt11char_traitsI[cw]E2eqERK[cw]S2_; - - _ZNSt19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEppEv; - } GLIBCXX_3.4.4; GLIBCXX_3.4.6 { @@ -643,8 +615,6 @@ GLIBCXX_3.4.6 { _ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE9showmanycEv; - _ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv; - _ZN9__gnu_cxx6__poolILb1EE13_M_initializeEv; } GLIBCXX_3.4.5; From owner-svn-src-all@freebsd.org Wed Apr 19 19:13:08 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27AEAD46385; Wed, 19 Apr 2017 19:13:08 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-qt0-x22f.google.com (mail-qt0-x22f.google.com [IPv6:2607:f8b0:400d:c0d::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E7B241295; Wed, 19 Apr 2017 19:13:07 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-qt0-x22f.google.com with SMTP id m36so28145026qtb.0; Wed, 19 Apr 2017 12:13:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=gDZXbDJ3mQ6J4+1V8xgDKYVn3Y4WVsdTefsMMCEcpyc=; b=nIr1TW7F58CxFvVmdOLKt28b9YY0ohingeFYC9+Md3t3lRVF+T+q0c+BilSakYSzX1 3JraUaDKVkJ2IaEFfFZJOcVGHFjGlpjbHeQxkidq0LeMcTJEGlt31ogQq9mK78EJJ2BB FrLqQp6THCwB9QjQLyFYfScsVrwTc3+CQ2dD/Cr7y6T3031rhexfJOy1okRsoatEQzQk ZR6CwwyZh80E63ORfZylgNv5gN0k/BR5yjlcHgyRJ1kTxuaqdXEK20qEA+ZxqwxUtPMt sEwHHZd/y62+lOQGmS9/HYWxTrw2oETHWKonp455LIwmGxbqAPqnWl56MahJs2gFn3o1 Xl/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=gDZXbDJ3mQ6J4+1V8xgDKYVn3Y4WVsdTefsMMCEcpyc=; b=HNHFfW1co/0EsqWhv0QLwJVCjUVnruASHZrUpa684izhMbJfXXiPBl/XvvuC5Cqmos u/GlEMWVDk64do6vqesf3SZe3W5P5PFcMPVcCvYGc2bE7GehSx3/xfwT3i9l0c9oHfNp MvHo0pjBwQbVmSUHcbDz+rMvcclqhYuMBAGZg9B5CXhGlkLXRzrIOBgyfX04Dp4i/dKs 4FCGVLcXWPvXhevQoOaJ6CuIJIAfcz/M2gJqrGrwheVWnJvMnN1qNlk7l1q/TI3E39sI Ye/yd4KAPTdh9ODMo3IFPuEPFGdQzMT84a8rVWJV/c+XFwe9Df0RQqxFP0esnC4bBaLf k1fA== X-Gm-Message-State: AN3rC/62MYNvfhxv3FNdztz7VAGRuUcE/agyCGLs4nJ/DKw2ypDPmalI 5YPX1bZ/jBd/anl+4cprkco8N7LvhA== X-Received: by 10.200.36.139 with SMTP id s11mr4503544qts.19.1492629186692; Wed, 19 Apr 2017 12:13:06 -0700 (PDT) MIME-Version: 1.0 Sender: chmeeedalf@gmail.com Received: by 10.12.178.219 with HTTP; Wed, 19 Apr 2017 12:13:06 -0700 (PDT) In-Reply-To: <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> References: <1709565.BYcnqjiFaR@ralph.baldwin.cx> <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> From: Justin Hibbits Date: Wed, 19 Apr 2017 14:13:06 -0500 X-Google-Sender-Auth: 8PtatbvLJJizda8i07x3dRET1rM Message-ID: Subject: Re: svn commit: r317094 - head/share/mk To: rgrimes@freebsd.org Cc: John Baldwin , Slawa Olhovchenkov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 19:13:08 -0000 On Wed, Apr 19, 2017 at 11:33 AM, Rodney W. Grimes wrote: >> On Wednesday, April 19, 2017 01:28:37 AM Slawa Olhovchenkov wrote: >> > On Tue, Apr 18, 2017 at 12:45:25PM -0700, John Baldwin wrote: >> > >> > > On Tuesday, April 18, 2017 07:30:13 PM Slawa Olhovchenkov wrote: >> > > > On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: >> > > > >> > > > > Author: jhb >> > > > > Date: Tue Apr 18 16:27:48 2017 >> > > > > New Revision: 317094 >> > > > > URL: https://svnweb.freebsd.org/changeset/base/317094 >> > > > > >> > > > > Log: >> > > > > Disable in-tree GDB by default on x86, mips, and powerpc. >> > > > > >> > > > > GDB in ports contains all of the functionality as GDB in base >> > > > > (including kgdb) for these platforms along with additional >> > > > > functionality. In-tree GDB remains enabled on ARM and sparc64. >> > > > > GDB in ports does not currently support kernel debugging on arm, >> > > > > and ports GDB for sparc64 has not been tested (though it does >> > > > > include sparc64 support). >> > > > > >> > > > > Reviewed by: bdrewery, emaste, imp >> > > > > Relnotes: yes >> > > > > Sponsored by: DARPA / AFRL >> > > > > Differential Revision: https://reviews.freebsd.org/D10399 >> > > > >> > > > Generating core.txt now complety broken? >> > > >> > > No. crashinfo has supported gdb from ports for quite a while now. >> > > If you 'pkg install gdb' crashinfo defaults to using the ports gdb over >> > > the base one already. >> > >> > I am about clean install, w/o ports. >> >> Until we get some sort of klldb support that will not work. However, >> we already have platforms now where /usr/bin/gdb doesn't work for that. >> riscv and aarch64 aren't supported in ancient gdb, and the MIPS >> /usr/bin/gdb didn't really work for me in my testing. > > So we break what worked on a Tier1 Platform? With my "user" hat on > these are the exact kind of breakages that send me looking for another > platform to run on. We far to often just go oh you can do X y and Z > to get around what we broke forgetting that the user 6 months from now > when this hits a release isnt gona come ask, he may just go down the > road to something else. > > Remove gdb WHEN klldb can replace it, not a day before. Using "oh its > broken on aarch64 and mips" is not a reason to break things on i386/amd64. > It's not removed, it's disabled by default now. As the commit message states, gdb in ports is much more feature filled than gdb in base > Yes, I know we want to get gnu stuff out of the tree, but that needs > to come AFTER a proper replacement is avaliable. > >> >> > Also, how to generate core.txt after crash, reboot and install gdb >> > from ports? (port instaled after crash) >> >> You can always run crashinfo by hand. > > /me starts to look for a new OS, this one is not very good at user support. I'd say this more warrants a set of "blessed" packages to include on install disks so we get this functionality without the extra step. - Justin > > > -- > Rod Grimes rgrimes@freebsd.org > From owner-svn-src-all@freebsd.org Wed Apr 19 19:28:29 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9CA2D4675D; Wed, 19 Apr 2017 19:28:29 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x234.google.com (mail-io0-x234.google.com [IPv6:2607:f8b0:4001:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AA72B1A03; Wed, 19 Apr 2017 19:28:29 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x234.google.com with SMTP id k87so33966221ioi.0; Wed, 19 Apr 2017 12:28:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=rB3773XPGQFFnLMNWpqnH0YQ0Ft9VoliFSCixADb3ZA=; b=sD+Vr0e78Fj5LpCtRb3uWep83WwKQRo/g4ssnchhCqBYPnssZZspZ62JReKpdxEZwh +DLej3UlSphblbAqfCqNEv4A1Z8/tFemqNzseW10oLom4NJoxa82q+XU8lQKPmsNQ9eG IAmYcv4W0XR3aAs+WAmW28fpEimKgYxnmqsB6Q6R5BtyA8azBmkfvUjCGndhKmD7/lYC UOGpj0/LtMXOhmJzenfT1Y40tyMqHBUDLZ4StgVeT6DMbNahGR35fNqtplsBcmeFKYRl LI3Oj0TJ5KhcHqbGqWpz7wLPBGygjU7awj7gBWQXDBRv/es8Ic54AQ2gstUcsbky3JdJ ZPXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=rB3773XPGQFFnLMNWpqnH0YQ0Ft9VoliFSCixADb3ZA=; b=Gda5Il0ubBSlQBQHBaGQc0TF89pj+H7xCS8cUsuwHVHuyUsj4IfSI+EiNIuQ9bgtok y2tbAHgx/oxilZBHD/WX1gFgifJjNFDOMgUPuB+bK4rrWCgj0Qs8YzV8NMeGXTgDDzUF fIuWxObvQbfYRYBzDMGoyJYTd9CHW8f0caPCsEjsK5sdRL3jetenavXHu5IgHL+1uxFS K9BQRl5g5e+UcgFJT3oWvfaxw8lHi6lfzC2gvORkH4wTWdqsHKmQdU6Qb4Jt+iG4Khwe M0q2/TxVMrdsr5KcsJ1cgaMysr0+7wZNaWPf8xOWBtLBI3rmQGHdYjNFJQ8DpQsTQhB3 tQug== X-Gm-Message-State: AN3rC/7tvFUcgy2H3nbRug8zBbOEPrvdqa/Tn/Po5mc93VNy8pKkoy6O eVdvqMkylqK/IdXepZboYihlaIt3iA== X-Received: by 10.36.172.106 with SMTP id m42mr5117167iti.82.1492630108979; Wed, 19 Apr 2017 12:28:28 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.30.136 with HTTP; Wed, 19 Apr 2017 12:28:08 -0700 (PDT) In-Reply-To: <20170419152257.GA59527@bsdpad.com> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <20170419142106.GA59031@bsdpad.com> <20170419145325.zjvo3hq2z3egcp26@ivaldir.net> <20170419152257.GA59527@bsdpad.com> From: Ed Maste Date: Wed, 19 Apr 2017 15:28:08 -0400 X-Google-Sender-Auth: asTOYtpwYi-5ZZ1eeTybqoGALaI Message-ID: Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd To: Ruslan Bukin Cc: Baptiste Daroussin , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 19:28:30 -0000 On 19 April 2017 at 11:22, Ruslan Bukin wrote: > > I committed. Please upstream that. As jhb pointed out we should probably add __bswapdi2 to compiler-rt (it's already there for ARM). I would assume that libgcc also has it, and this is a workaround for our slightly unusual case of GCC w/ a compiler-rt patched for RISC-V. If so this should not be sent upstream. From owner-svn-src-all@freebsd.org Wed Apr 19 19:52:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91B03D462DF; Wed, 19 Apr 2017 19:52:41 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 61372E93; Wed, 19 Apr 2017 19:52:41 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JJqeOf073607; Wed, 19 Apr 2017 19:52:40 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JJqeft073606; Wed, 19 Apr 2017 19:52:40 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704191952.v3JJqeft073606@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 19:52:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317160 - head/usr.bin/which X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 19:52:41 -0000 Author: ngie Date: Wed Apr 19 19:52:40 2017 New Revision: 317160 URL: https://svnweb.freebsd.org/changeset/base/317160 Log: Clean up trailing whitespace No functional changes MFC after: 1 week Sponsored by: Dell EMC Isilon Modified: head/usr.bin/which/which.c Modified: head/usr.bin/which/which.c ============================================================================== --- head/usr.bin/which/which.c Wed Apr 19 19:06:47 2017 (r317159) +++ head/usr.bin/which/which.c Wed Apr 19 19:52:40 2017 (r317160) @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); static void usage(void); static int print_matches(char *, char *); - + static int silent; static int allpaths; @@ -81,7 +81,7 @@ main(int argc, char **argv) while (argc > 0) { memcpy(path, p, pathlen); - + if (strlen(*argv) >= FILENAME_MAX || print_matches(path, *argv) == -1) status = EXIT_FAILURE; From owner-svn-src-all@freebsd.org Wed Apr 19 19:55:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AD6DDD4637F; Wed, 19 Apr 2017 19:55:39 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 74BFC8B; Wed, 19 Apr 2017 19:55:39 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JJtc5q073779; Wed, 19 Apr 2017 19:55:38 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JJtc04073778; Wed, 19 Apr 2017 19:55:38 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704191955.v3JJtc04073778@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 19:55:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317161 - head/usr.bin/which X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 19:55:39 -0000 Author: ngie Date: Wed Apr 19 19:55:38 2017 New Revision: 317161 URL: https://svnweb.freebsd.org/changeset/base/317161 Log: which(1): sort #includes No functional change [intended]. MFC after: 7 weeks Sponsored by: Dell EMC Isilon Modified: head/usr.bin/which/which.c Modified: head/usr.bin/which/which.c ============================================================================== --- head/usr.bin/which/which.c Wed Apr 19 19:52:40 2017 (r317160) +++ head/usr.bin/which/which.c Wed Apr 19 19:55:38 2017 (r317161) @@ -28,9 +28,8 @@ __FBSDID("$FreeBSD$"); -#include #include - +#include #include #include #include From owner-svn-src-all@freebsd.org Wed Apr 19 20:04:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 40272D4666F; Wed, 19 Apr 2017 20:04:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0FBC09D7; Wed, 19 Apr 2017 20:04:46 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JK4kdM077975; Wed, 19 Apr 2017 20:04:46 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JK4ktw077974; Wed, 19 Apr 2017 20:04:46 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704192004.v3JK4ktw077974@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 20:04:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317162 - head/usr.sbin/rpcbind X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 20:04:47 -0000 Author: ngie Date: Wed Apr 19 20:04:45 2017 New Revision: 317162 URL: https://svnweb.freebsd.org/changeset/base/317162 Log: rpcbind(8): add a description for /var/run/rpcbind.sock under the FILES section MFC after: 7 weeks Sponsored by: Dell EMC Isilon Modified: head/usr.sbin/rpcbind/rpcbind.8 Modified: head/usr.sbin/rpcbind/rpcbind.8 ============================================================================== --- head/usr.sbin/rpcbind/rpcbind.8 Wed Apr 19 19:55:38 2017 (r317161) +++ head/usr.sbin/rpcbind/rpcbind.8 Wed Apr 19 20:04:45 2017 (r317162) @@ -143,6 +143,7 @@ is restarted. .Sh FILES .Bl -tag -width /var/run/rpcbind.sock -compact .It Pa /var/run/rpcbind.sock +socket used for local connections. .El .Sh SEE ALSO .Xr rpcbind 3 , From owner-svn-src-all@freebsd.org Wed Apr 19 20:09:58 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5BA36D4678E; Wed, 19 Apr 2017 20:09:58 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from smtp.vangyzen.net (hotblack.vangyzen.net [IPv6:2607:fc50:1000:7400:216:3eff:fe72:314f]) by mx1.freebsd.org (Postfix) with ESMTP id 3ADD0D20; Wed, 19 Apr 2017 20:09:58 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from sweettea.beer.town (unknown [76.164.8.130]) by smtp.vangyzen.net (Postfix) with ESMTPSA id 805FA56678; Wed, 19 Apr 2017 15:09:57 -0500 (CDT) Subject: Re: svn commit: r317094 - head/share/mk To: rgrimes@freebsd.org, John Baldwin References: <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> Cc: Slawa Olhovchenkov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org From: Eric van Gyzen Message-ID: Date: Wed, 19 Apr 2017 15:09:56 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 20:09:58 -0000 >>>>> Generating core.txt now complety broken? >>>> >>>> No. crashinfo has supported gdb from ports for quite a while now. >>>> If you 'pkg install gdb' crashinfo defaults to using the ports gdb over >>>> the base one already. >>> >>> I am about clean install, w/o ports. >> >> Until we get some sort of klldb support that will not work. However, >> we already have platforms now where /usr/bin/gdb doesn't work for that. >> riscv and aarch64 aren't supported in ancient gdb, and the MIPS >> /usr/bin/gdb didn't really work for me in my testing. > > So we break what worked on a Tier1 Platform? With my "user" hat on > these are the exact kind of breakages that send me looking for another > platform to run on. We far to often just go oh you can do X y and Z > to get around what we broke forgetting that the user 6 months from now > when this hits a release isnt gona come ask, he may just go down the > road to something else. > > Remove gdb WHEN klldb can replace it, not a day before. Using "oh its > broken on aarch64 and mips" is not a reason to break things on i386/amd64. > > Yes, I know we want to get gnu stuff out of the tree, but that needs > to come AFTER a proper replacement is avaliable. > >> >>> Also, how to generate core.txt after crash, reboot and install gdb >>> from ports? (port instaled after crash) >> >> You can always run crashinfo by hand. > > /me starts to look for a new OS, this one is not very good at user support. # crashinfo Please install GDB and run 'crashinfo' again. The easiest way to install GDB is: pkg install gdb Unable to find matching kernel for /var/crash/vmcore.1 https://reviews.freebsd.org/D10429 This should be good enough to keep the user from looking for a new OS. It also gets a much better version of GDB onto the box, which will make the user happier than giving them an ancient one and letting them flail around with it for a while before learning that they should install a newer one. Eric From owner-svn-src-all@freebsd.org Wed Apr 19 20:23:28 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 71835D46C23; Wed, 19 Apr 2017 20:23:28 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D6AA18AD; Wed, 19 Apr 2017 20:23:28 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JKNRw6086799; Wed, 19 Apr 2017 20:23:27 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JKNRuZ086798; Wed, 19 Apr 2017 20:23:27 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704192023.v3JKNRuZ086798@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 20:23:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317163 - head/usr.sbin/rpcbind X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 20:23:28 -0000 Author: ngie Date: Wed Apr 19 20:23:27 2017 New Revision: 317163 URL: https://svnweb.freebsd.org/changeset/base/317163 Log: rpcbind(8): post-humously document -w (warmstart) support added in r74462 warmstart support saves portmap/rpcbind(8) registration state on exit and restores the saved registration state on restart. MFC after: 7 weeks Sponsored by: Dell EMC Isilon Modified: head/usr.sbin/rpcbind/rpcbind.8 Modified: head/usr.sbin/rpcbind/rpcbind.8 ============================================================================== --- head/usr.sbin/rpcbind/rpcbind.8 Wed Apr 19 20:04:45 2017 (r317162) +++ head/usr.sbin/rpcbind/rpcbind.8 Wed Apr 19 20:23:27 2017 (r317163) @@ -10,7 +10,7 @@ .Nd universal addresses to RPC program number mapper .Sh SYNOPSIS .Nm -.Op Fl 6adiLlsW +.Op Fl 6adiLlswW .Op Fl h Ar bindip .Sh DESCRIPTION The @@ -135,6 +135,22 @@ clients from using to connect to services from a privileged port. .It Fl W Enable libwrap (TCP wrappers) support. +.It Fl w +Enable the warmstart feature. +.Pp +The warmstart feature saves RPC registrations on termination. +Any saved RPC registrations are restored on restart if +.Fl w +is specified. +This feature helps avoid RPC service interruption when restarting +.Nm . +warmstart support must be compiled in to +.Nm . +Portmap registrations are stored in +.Pa /tmp/portmap.file . +.Nm +registrations are stored in +.Pa /tmp/rpcbind.file . .El .Sh NOTES All RPC servers must be restarted if @@ -142,6 +158,12 @@ All RPC servers must be restarted if is restarted. .Sh FILES .Bl -tag -width /var/run/rpcbind.sock -compact +.It Pa /tmp/portmap.file +saved portmap registrations file. +.It Pa /tmp/rpcbind.file +saved +.Nm +registrations file. .It Pa /var/run/rpcbind.sock socket used for local connections. .El From owner-svn-src-all@freebsd.org Wed Apr 19 20:27:15 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 32C64D46CE8; Wed, 19 Apr 2017 20:27:15 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ED0911A48; Wed, 19 Apr 2017 20:27:14 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JKRE2M086971; Wed, 19 Apr 2017 20:27:14 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JKREdh086970; Wed, 19 Apr 2017 20:27:14 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704192027.v3JKREdh086970@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 20:27:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317164 - head/usr.sbin/rpcbind X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 20:27:15 -0000 Author: ngie Date: Wed Apr 19 20:27:13 2017 New Revision: 317164 URL: https://svnweb.freebsd.org/changeset/base/317164 Log: Fix indentation per style.Makefile(5) MFC after: 7 weeks Sponsored by: Dell EMC Isilon Modified: head/usr.sbin/rpcbind/Makefile Modified: head/usr.sbin/rpcbind/Makefile ============================================================================== --- head/usr.sbin/rpcbind/Makefile Wed Apr 19 20:23:27 2017 (r317163) +++ head/usr.sbin/rpcbind/Makefile Wed Apr 19 20:27:13 2017 (r317164) @@ -15,12 +15,12 @@ CFLAGS+= -DINET6 .endif .if ${MK_TCP_WRAPPERS} != "no" -CFLAGS+= -DLIBWRAP -LIBADD+= wrap +CFLAGS+= -DLIBWRAP +LIBADD+= wrap .endif .if ${MK_TESTS} != "no" -SUBDIR+= tests +SUBDIR+= tests .endif WARNS?= 1 From owner-svn-src-all@freebsd.org Wed Apr 19 20:27:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 38F05D46D4C; Wed, 19 Apr 2017 20:27:50 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0961E1BC2; Wed, 19 Apr 2017 20:27:49 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JKRnrW087042; Wed, 19 Apr 2017 20:27:49 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JKRnOa087041; Wed, 19 Apr 2017 20:27:49 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201704192027.v3JKRnOa087041@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 19 Apr 2017 20:27:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317165 - head/usr.bin/pom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 20:27:50 -0000 Author: manu Date: Wed Apr 19 20:27:48 2017 New Revision: 317165 URL: https://svnweb.freebsd.org/changeset/base/317165 Log: Capsicumize pom Since pom is the only binary that can save lives, capsicumize it to be sure that it's safe to run it. Reviewed by: bapt Modified: head/usr.bin/pom/pom.c Modified: head/usr.bin/pom/pom.c ============================================================================== --- head/usr.bin/pom/pom.c Wed Apr 19 20:27:13 2017 (r317164) +++ head/usr.bin/pom/pom.c Wed Apr 19 20:27:48 2017 (r317165) @@ -53,6 +53,11 @@ __FBSDID("$FreeBSD$"); * */ +#include +#include + +#include +#include #include #include #include @@ -81,6 +86,7 @@ static void usage(char *progname); int main(int argc, char **argv) { + cap_rights_t rights; time_t tt; struct tm GMT, tmd; double days, today, tomorrow; @@ -88,6 +94,14 @@ main(int argc, char **argv) char *odate = NULL, *otime = NULL; char *progname = argv[0]; + if (caph_limit_stdio() < 0) + err(1, "unable to limit capabitilities for stdio"); + cap_rights_init(&rights, CAP_WRITE); + + caph_cache_catpages(); + if (cap_enter() < 0 && errno != ENOSYS) + err(1, "unable to enter capability mode"); + while ((ch = getopt(argc, argv, "d:pt:")) != -1) switch (ch) { case 'd': From owner-svn-src-all@freebsd.org Wed Apr 19 20:35:05 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE4C3D4602A; Wed, 19 Apr 2017 20:35:05 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E7F9279; Wed, 19 Apr 2017 20:35:05 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JKZ4sC091187; Wed, 19 Apr 2017 20:35:04 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JKZ4kY091186; Wed, 19 Apr 2017 20:35:04 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201704192035.v3JKZ4kY091186@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 19 Apr 2017 20:35:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317166 - head/usr.bin/pom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 20:35:05 -0000 Author: manu Date: Wed Apr 19 20:35:04 2017 New Revision: 317166 URL: https://svnweb.freebsd.org/changeset/base/317166 Log: pom: Remove useless cap_rights_init Pointy-Hat: manu Reported by: bapt Modified: head/usr.bin/pom/pom.c Modified: head/usr.bin/pom/pom.c ============================================================================== --- head/usr.bin/pom/pom.c Wed Apr 19 20:27:48 2017 (r317165) +++ head/usr.bin/pom/pom.c Wed Apr 19 20:35:04 2017 (r317166) @@ -86,7 +86,6 @@ static void usage(char *progname); int main(int argc, char **argv) { - cap_rights_t rights; time_t tt; struct tm GMT, tmd; double days, today, tomorrow; @@ -96,7 +95,6 @@ main(int argc, char **argv) if (caph_limit_stdio() < 0) err(1, "unable to limit capabitilities for stdio"); - cap_rights_init(&rights, CAP_WRITE); caph_cache_catpages(); if (cap_enter() < 0 && errno != ENOSYS) From owner-svn-src-all@freebsd.org Wed Apr 19 20:35:48 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BFEBD4608D; Wed, 19 Apr 2017 20:35:48 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6C69F5EE; Wed, 19 Apr 2017 20:35:48 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JKZl76091262; Wed, 19 Apr 2017 20:35:47 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JKZlCa091261; Wed, 19 Apr 2017 20:35:47 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704192035.v3JKZlCa091261@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 20:35:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317167 - head/tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 20:35:48 -0000 Author: ngie Date: Wed Apr 19 20:35:47 2017 New Revision: 317167 URL: https://svnweb.freebsd.org/changeset/base/317167 Log: Add WITH_CXX to complement WITHOUT_CXX and placate makeman's complaints MFC after: 7 weeks Sponsored by: Dell EMC Isilon Added: head/tools/build/options/WITH_CXX - copied, changed from r317153, head/tools/build/options/WITHOUT_CXX Copied and modified: head/tools/build/options/WITH_CXX (from r317153, head/tools/build/options/WITHOUT_CXX) ============================================================================== --- head/tools/build/options/WITHOUT_CXX Wed Apr 19 17:32:32 2017 (r317153, copy source) +++ head/tools/build/options/WITH_CXX Wed Apr 19 20:35:47 2017 (r317167) @@ -1,8 +1,4 @@ .\" $FreeBSD$ -Set to not build +Set to build .Xr c++ 1 and related libraries. -It will also prevent building of -.Xr gperf 1 -and -.Xr devd 8 . From owner-svn-src-all@freebsd.org Wed Apr 19 20:45:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E59BCD463B9; Wed, 19 Apr 2017 20:45:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9BD16CF2; Wed, 19 Apr 2017 20:45:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JKjkIZ095438; Wed, 19 Apr 2017 20:45:46 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JKjkgh095435; Wed, 19 Apr 2017 20:45:46 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704192045.v3JKjkgh095435@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 19 Apr 2017 20:45:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317168 - in head: share/mk tools/build/options usr.sbin/rpcbind X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 20:45:48 -0000 Author: ngie Date: Wed Apr 19 20:45:46 2017 New Revision: 317168 URL: https://svnweb.freebsd.org/changeset/base/317168 Log: Add a knob, WITH*_RPCBIND_WARMSTART_SUPPORT, to allow the end-user to build rpcbind(8) with/without warmstart support. The knob defaults to off to preserve POLA for the feature. See rpcbind(8) for more details about the warmstart feature. MFC after: 7 weeks Relnotes: yes Sponsored by: Dell EMC Isilon Added: head/tools/build/options/WITH_RPCBIND_WARMSTART_SUPPORT (contents, props changed) Modified: head/share/mk/src.opts.mk head/usr.sbin/rpcbind/Makefile Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Wed Apr 19 20:35:47 2017 (r317167) +++ head/share/mk/src.opts.mk Wed Apr 19 20:45:46 2017 (r317168) @@ -186,6 +186,7 @@ __DEFAULT_NO_OPTIONS = \ OFED \ OPENLDAP \ REPRODUCIBLE_BUILD \ + RPCBIND_WARMSTART_SUPPORT \ SHARED_TOOLCHAIN \ SORT_THREADS \ SVN \ Added: head/tools/build/options/WITH_RPCBIND_WARMSTART_SUPPORT ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/options/WITH_RPCBIND_WARMSTART_SUPPORT Wed Apr 19 20:45:46 2017 (r317168) @@ -0,0 +1,4 @@ +.\" $FreeBSD$ +Set to build +.Xr rpcbind 8 +with warmstart support. Modified: head/usr.sbin/rpcbind/Makefile ============================================================================== --- head/usr.sbin/rpcbind/Makefile Wed Apr 19 20:35:47 2017 (r317167) +++ head/usr.sbin/rpcbind/Makefile Wed Apr 19 20:45:46 2017 (r317168) @@ -14,6 +14,10 @@ CFLAGS+= -DPORTMAP CFLAGS+= -DINET6 .endif +.if ${MK_RPCBIND_WARMSTART_SUPPORT} != "no" +CFLAGS+= -DWARMSTART +.endif + .if ${MK_TCP_WRAPPERS} != "no" CFLAGS+= -DLIBWRAP LIBADD+= wrap From owner-svn-src-all@freebsd.org Wed Apr 19 21:18:07 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F38ABD46E9B; Wed, 19 Apr 2017 21:18:07 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C32D0117C; Wed, 19 Apr 2017 21:18:07 +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 v3JLI6Ij008075; Wed, 19 Apr 2017 21:18:06 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JLI6QA008074; Wed, 19 Apr 2017 21:18:06 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201704192118.v3JLI6QA008074@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 19 Apr 2017 21:18:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317169 - head/release/tools X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 21:18:08 -0000 Author: gjb Date: Wed Apr 19 21:18:06 2017 New Revision: 317169 URL: https://svnweb.freebsd.org/changeset/base/317169 Log: Trim trailing '/release/..' when setting _OBJDIR so arm64/aarch64 boot1.efifat is properly located when creating virtual machine images. Sponsored by: The FreeBSD Foundation Modified: head/release/tools/vmimage.subr Modified: head/release/tools/vmimage.subr ============================================================================== --- head/release/tools/vmimage.subr Wed Apr 19 20:45:46 2017 (r317168) +++ head/release/tools/vmimage.subr Wed Apr 19 21:18:06 2017 (r317169) @@ -15,6 +15,7 @@ write_partition_layout() { fi _OBJDIR="$(make -C ${WORLDDIR} -V .OBJDIR)" + _OBJDIR="$(realpath ${_OBJDIR})" if [ -d "${_OBJDIR%%/usr/src}/${TARGET}.${TARGET_ARCH}" ]; then BOOTFILES="/${_OBJDIR%%/usr/src}/${TARGET}.${TARGET_ARCH}/usr/src/sys/boot" else From owner-svn-src-all@freebsd.org Wed Apr 19 22:18:36 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7FA0BD46E57; Wed, 19 Apr 2017 22:18:36 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5242DF24; Wed, 19 Apr 2017 22:18:35 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3JMIYtM032775; Wed, 19 Apr 2017 15:18:34 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3JMIYtS032774; Wed, 19 Apr 2017 15:18:34 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704192218.v3JMIYtS032774@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317094 - head/share/mk In-Reply-To: To: Eric van Gyzen Date: Wed, 19 Apr 2017 15:18:34 -0700 (PDT) CC: rgrimes@FreeBSD.org, John Baldwin , Slawa Olhovchenkov , svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Reply-To: rgrimes@FreeBSD.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:18:36 -0000 [ Charset windows-1252 unsupported, converting... ] > >>>>> Generating core.txt now complety broken? > >>>> > >>>> No. crashinfo has supported gdb from ports for quite a while now. > >>>> If you 'pkg install gdb' crashinfo defaults to using the ports gdb over > >>>> the base one already. > >>> > >>> I am about clean install, w/o ports. > >> > >> Until we get some sort of klldb support that will not work. However, > >> we already have platforms now where /usr/bin/gdb doesn't work for that. > >> riscv and aarch64 aren't supported in ancient gdb, and the MIPS > >> /usr/bin/gdb didn't really work for me in my testing. > > > > So we break what worked on a Tier1 Platform? With my "user" hat on > > these are the exact kind of breakages that send me looking for another > > platform to run on. We far to often just go oh you can do X y and Z > > to get around what we broke forgetting that the user 6 months from now > > when this hits a release isnt gona come ask, he may just go down the > > road to something else. > > > > Remove gdb WHEN klldb can replace it, not a day before. Using "oh its > > broken on aarch64 and mips" is not a reason to break things on i386/amd64. > > > > Yes, I know we want to get gnu stuff out of the tree, but that needs > > to come AFTER a proper replacement is avaliable. > > > >> > >>> Also, how to generate core.txt after crash, reboot and install gdb > >>> from ports? (port instaled after crash) > >> > >> You can always run crashinfo by hand. > > > > /me starts to look for a new OS, this one is not very good at user support. > > # crashinfo > Please install GDB and run 'crashinfo' again. > The easiest way to install GDB is: pkg install gdb > Unable to find matching kernel for /var/crash/vmcore.1 > > https://reviews.freebsd.org/D10429 > > This should be good enough to keep the user from looking for a new OS. > It also gets a much better version of GDB onto the box, which will make > the user happier than giving them an ancient one and letting them flail > around with it for a while before learning that they should install a > newer one. Actually this is exactly what I would expect from Linux! Why do we need to pull the trigger on GDB other than to pull the trigger to say we are GPL free, if that is the reason then this is the wrong way to go about it. As I said, pull the trigger when you have a new tool in base to replace what I have expected to be in base, have been using in base for 2.5 decades, and not a day before. Your fixing a single point issue, crashinfo, where is my debugger, and why cant it do the crashinfo stuff??? -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Wed Apr 19 22:20:42 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E887FD46EF6; Wed, 19 Apr 2017 22:20:42 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BAE7D100; Wed, 19 Apr 2017 22:20:42 +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 v3JMKfr1032780; Wed, 19 Apr 2017 22:20:41 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JMKftj032754; Wed, 19 Apr 2017 22:20:41 GMT (envelope-from np@FreeBSD.org) Message-Id: <201704192220.v3JMKftj032754@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 19 Apr 2017 22:20:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317170 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:20:43 -0000 Author: np Date: Wed Apr 19 22:20:41 2017 New Revision: 317170 URL: https://svnweb.freebsd.org/changeset/base/317170 Log: Remove redundant assignment. Modified: head/sys/netinet/tcp_lro.c Modified: head/sys/netinet/tcp_lro.c ============================================================================== --- head/sys/netinet/tcp_lro.c Wed Apr 19 21:18:06 2017 (r317169) +++ head/sys/netinet/tcp_lro.c Wed Apr 19 22:20:41 2017 (r317170) @@ -115,7 +115,6 @@ tcp_lro_init_args(struct lro_ctrl *lc, s lc->lro_bad_csum = 0; lc->lro_queued = 0; lc->lro_flushed = 0; - lc->lro_cnt = 0; lc->lro_mbuf_count = 0; lc->lro_mbuf_max = lro_mbufs; lc->lro_cnt = lro_entries; From owner-svn-src-all@freebsd.org Wed Apr 19 22:21:16 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD454D46F62; Wed, 19 Apr 2017 22:21:16 +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 mx1.freebsd.org (Postfix) with ESMTPS id 8F5845E7; Wed, 19 Apr 2017 22:21:16 +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 v3JMLF69032867; Wed, 19 Apr 2017 22:21:15 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JMLFPs032866; Wed, 19 Apr 2017 22:21:15 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201704192221.v3JMLFPs032866@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Wed, 19 Apr 2017 22:21:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317171 - head/sys/dev/vt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:21:17 -0000 Author: jkim Date: Wed Apr 19 22:21:15 2017 New Revision: 317171 URL: https://svnweb.freebsd.org/changeset/base/317171 Log: Micro-optimize vt_set_border(). Modified: head/sys/dev/vt/vt_core.c Modified: head/sys/dev/vt/vt_core.c ============================================================================== --- head/sys/dev/vt/vt_core.c Wed Apr 19 22:20:41 2017 (r317170) +++ head/sys/dev/vt/vt_core.c Wed Apr 19 22:21:15 2017 (r317171) @@ -1528,43 +1528,32 @@ vtterm_opened(struct terminal *tm, int o VT_UNLOCK(vd); } -static int +static void vt_set_border(struct vt_window *vw, term_color_t c) { struct vt_device *vd = vw->vw_device; - - if (vd->vd_driver->vd_drawrect == NULL) - return (ENOTSUP); + term_rect_t *vda = &vw->vw_draw_area; + int x, y; /* Top bar. */ - if (vw->vw_draw_area.tr_begin.tp_row > 0) - vd->vd_driver->vd_drawrect(vd, - 0, 0, - vd->vd_width - 1, vw->vw_draw_area.tr_begin.tp_row - 1, - 1, c); - - /* Left bar. */ - if (vw->vw_draw_area.tr_begin.tp_col > 0) - vd->vd_driver->vd_drawrect(vd, - 0, 0, - vw->vw_draw_area.tr_begin.tp_col - 1, vd->vd_height - 1, - 1, c); - - /* Right bar. */ - if (vw->vw_draw_area.tr_end.tp_col < vd->vd_width) - vd->vd_driver->vd_drawrect(vd, - vw->vw_draw_area.tr_end.tp_col - 1, 0, - vd->vd_width - 1, vd->vd_height - 1, - 1, c); + for (y = 0; y < vda->tr_begin.tp_row; y++) + for (x = 0; x < vd->vd_width; x++) + vd->vd_driver->vd_setpixel(vd, x, y, c); + + for (y = vda->tr_begin.tp_row; y <= vda->tr_end.tp_row; y++) { + /* Left bar. */ + for (x = 0; x < vda->tr_begin.tp_col; x++) + vd->vd_driver->vd_setpixel(vd, x, y, c); + + /* Right bar. */ + for (x = vda->tr_end.tp_col + 1; x < vd->vd_width; x++) + vd->vd_driver->vd_setpixel(vd, x, y, c); + } /* Bottom bar. */ - if (vw->vw_draw_area.tr_end.tp_row < vd->vd_height) - vd->vd_driver->vd_drawrect(vd, - 0, vw->vw_draw_area.tr_end.tp_row - 1, - vd->vd_width - 1, vd->vd_height - 1, - 1, c); - - return (0); + for (y = vda->tr_end.tp_row + 1; y < vd->vd_height; y++) + for (x = 0; x < vd->vd_width; x++) + vd->vd_driver->vd_setpixel(vd, x, y, c); } static int From owner-svn-src-all@freebsd.org Wed Apr 19 22:22:40 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9303D460D8 for ; Wed, 19 Apr 2017 22:22:40 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x229.google.com (mail-io0-x229.google.com [IPv6:2607:f8b0:4001:c06::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 850138D9 for ; Wed, 19 Apr 2017 22:22:40 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x229.google.com with SMTP id a103so40870124ioj.1 for ; Wed, 19 Apr 2017 15:22:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=GAiPBWudWD8ejv3f3l3MWsNlaP9NSMIc83VMFWqtgPY=; b=vl8zuEmoegwYQdnImrU71wrnfkr6mxCbBgbuFG8+87i/55iYSAKUY7pWjgCfu+9d+v X5UDwYIKVCwTlCQSKSrhkltHlyoxD8b5+FsnIdG2ikTJAv5SiUHryZHXkJxR4EQmJODa xKfC26vSwPgiIlTgaEKNKgVUAUTKtEEFXO3X/zj7ei1wLLV+V+NERh1IxjoiVi5DQd4J /sQVOamSQXtagPAncIDVXqpoKr94sqO3sxliziXg+LqO2nWCq6ymivAi9ztYtooGTOLl CpD46+f3v9YU0P9RLWDZ9BU9fTCPGwwmkv0ylXq0g7lfGbBFAplj2XoziEmyzEpzzZxp +3dQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=GAiPBWudWD8ejv3f3l3MWsNlaP9NSMIc83VMFWqtgPY=; b=eEVG727ARaArJeQIzQOlQ9pkY+0rT7DkrVuIqKnKvMnMOG3ZHbuATcimlFAmVZU4Dg V8WOCjOn48ZtWajtrz74Lzc36xuCtERP2jc0a2TcUuYEBlaPSCv2sp3gQRQmqIU3jbp0 d51r9S2XAoQ6cVi1ndYYU162aEA/8nlf6RSfaNcOhmuSDvZ3O6nSHcgcgfUvN+zc6mZF Uw5LtLMPg+Pwxu32MIbNcyZkZmu1CmWhT3yynEyiSVx9bLm16h/MMRKItkJbmYEf6AaI icfCnjY6nWMQY+SEPqdUW5cH9kIMMCIAVUeO7QEKJlHMJaEGX633KAPo4cHM0r6HnRlW mo9A== X-Gm-Message-State: AN3rC/7GWvwVQLn/NKaBRPCvrtXMApfxCNJakq86yejtIAyCc+uW5+v1 zY1tt4W53VfMPmiz49puJ8DPjFhWkg== X-Received: by 10.36.31.200 with SMTP id d191mr327671itd.85.1492640559669; Wed, 19 Apr 2017 15:22:39 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.146.69 with HTTP; Wed, 19 Apr 2017 15:22:39 -0700 (PDT) X-Originating-IP: [2607:fb10:7021:1::68] In-Reply-To: <201704192218.v3JMIYtS032774@pdx.rh.CN85.dnsmgr.net> References: <201704192218.v3JMIYtS032774@pdx.rh.CN85.dnsmgr.net> From: Warner Losh Date: Wed, 19 Apr 2017 16:22:39 -0600 X-Google-Sender-Auth: 8L6LxEvN6Hsm9SEcRgmLHKp_wTo Message-ID: Subject: Re: svn commit: r317094 - head/share/mk To: rgrimes@freebsd.org Cc: Eric van Gyzen , John Baldwin , Slawa Olhovchenkov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:22:40 -0000 On Wed, Apr 19, 2017 at 4:18 PM, Rodney W. Grimes wrote: > [ Charset windows-1252 unsupported, converting... ] >> >>>>> Generating core.txt now complety broken? >> >>>> >> >>>> No. crashinfo has supported gdb from ports for quite a while now. >> >>>> If you 'pkg install gdb' crashinfo defaults to using the ports gdb over >> >>>> the base one already. >> >>> >> >>> I am about clean install, w/o ports. >> >> >> >> Until we get some sort of klldb support that will not work. However, >> >> we already have platforms now where /usr/bin/gdb doesn't work for that. >> >> riscv and aarch64 aren't supported in ancient gdb, and the MIPS >> >> /usr/bin/gdb didn't really work for me in my testing. >> > >> > So we break what worked on a Tier1 Platform? With my "user" hat on >> > these are the exact kind of breakages that send me looking for another >> > platform to run on. We far to often just go oh you can do X y and Z >> > to get around what we broke forgetting that the user 6 months from now >> > when this hits a release isnt gona come ask, he may just go down the >> > road to something else. >> > >> > Remove gdb WHEN klldb can replace it, not a day before. Using "oh its >> > broken on aarch64 and mips" is not a reason to break things on i386/amd64. >> > >> > Yes, I know we want to get gnu stuff out of the tree, but that needs >> > to come AFTER a proper replacement is avaliable. >> > >> >> >> >>> Also, how to generate core.txt after crash, reboot and install gdb >> >>> from ports? (port instaled after crash) >> >> >> >> You can always run crashinfo by hand. >> > >> > /me starts to look for a new OS, this one is not very good at user support. >> >> # crashinfo >> Please install GDB and run 'crashinfo' again. >> The easiest way to install GDB is: pkg install gdb >> Unable to find matching kernel for /var/crash/vmcore.1 >> >> https://reviews.freebsd.org/D10429 >> >> This should be good enough to keep the user from looking for a new OS. >> It also gets a much better version of GDB onto the box, which will make >> the user happier than giving them an ancient one and letting them flail >> around with it for a while before learning that they should install a >> newer one. > > Actually this is exactly what I would expect from Linux! > > Why do we need to pull the trigger on GDB other than to pull the trigger > to say we are GPL free, if that is the reason then this is the wrong > way to go about it. I think "gdb in base is horribly broken" is the real reason. You need the port to do anything non-trivial these days. Plus core set this as a goal for the project after it was clear that was a consensus desire several years ago. Can't fault someone for working towards that goal. > As I said, pull the trigger when you have a new tool in base to replace > what I have expected to be in base, have been using in base for 2.5 > decades, and not a day before. > > Your fixing a single point issue, crashinfo, where is my debugger, and > why cant it do the crashinfo stuff??? Things break with progress. That's always been true. We lost functionality when we kicked perl and TCL out of the tree. We lost functionality when we kicked sysinstall to the curb, etc. However, we've also gained functionality as well with things like clang. It's always balancing act. I think we've bent over too far backwards with gdb, and it's time to kick it to the curb entirely. Warner From owner-svn-src-all@freebsd.org Wed Apr 19 22:27:28 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0DC54D461EF; Wed, 19 Apr 2017 22:27:28 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D41F8B76; Wed, 19 Apr 2017 22:27:27 +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 v3JMRR0b036044; Wed, 19 Apr 2017 22:27:27 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JMRRxS036043; Wed, 19 Apr 2017 22:27:27 GMT (envelope-from np@FreeBSD.org) Message-Id: <201704192227.v3JMRRxS036043@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 19 Apr 2017 22:27:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317172 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:27:28 -0000 Author: np Date: Wed Apr 19 22:27:26 2017 New Revision: 317172 URL: https://svnweb.freebsd.org/changeset/base/317172 Log: Do not leak lro_hash on failure to allocate lro_mbuf_data. MFC after: 1 week Modified: head/sys/netinet/tcp_lro.c Modified: head/sys/netinet/tcp_lro.c ============================================================================== --- head/sys/netinet/tcp_lro.c Wed Apr 19 22:21:15 2017 (r317171) +++ head/sys/netinet/tcp_lro.c Wed Apr 19 22:27:26 2017 (r317172) @@ -144,6 +144,7 @@ tcp_lro_init_args(struct lro_ctrl *lc, s /* check for out of memory */ if (lc->lro_mbuf_data == NULL) { + free(lc->lro_hash, M_LRO); memset(lc, 0, sizeof(*lc)); return (ENOMEM); } From owner-svn-src-all@freebsd.org Wed Apr 19 22:31:46 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C1CED46321; Wed, 19 Apr 2017 22:31:46 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [192.108.105.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "StartCom Class 2 IV Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 40B23FC7; Wed, 19 Apr 2017 22:31:45 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (bones.soaustin.net [192.108.105.22]) by mail.soaustin.net (Postfix) with ESMTPSA id 17EDD5FE; Wed, 19 Apr 2017 17:31:39 -0500 (CDT) Date: Wed, 19 Apr 2017 17:31:38 -0500 From: Mark Linimon To: Warner Losh Cc: rgrimes@freebsd.org, src-committers , John Baldwin , "svn-src-all@freebsd.org" , Eric van Gyzen , Slawa Olhovchenkov , "svn-src-head@freebsd.org" Subject: Re: svn commit: r317094 - head/share/mk Message-ID: <20170419223137.GA29669@lonesome.com> References: <201704192218.v3JMIYtS032774@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:31:46 -0000 At this point is there anything that the gdb port does not do, that the base version does? I know a lot of work has gone into making it a strict superset. mcl From owner-svn-src-all@freebsd.org Wed Apr 19 22:41:25 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AEC08D4667C; Wed, 19 Apr 2017 22:41:25 +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 mx1.freebsd.org (Postfix) with ESMTPS id 6D2401393; Wed, 19 Apr 2017 22:41:25 +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 v3JMfOs3040944; Wed, 19 Apr 2017 22:41:24 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JMfOCo040943; Wed, 19 Apr 2017 22:41:24 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201704192241.v3JMfOCo040943@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Wed, 19 Apr 2017 22:41:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317173 - head/sys/dev/vt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:41:25 -0000 Author: jkim Date: Wed Apr 19 22:41:24 2017 New Revision: 317173 URL: https://svnweb.freebsd.org/changeset/base/317173 Log: Always clear borders when the terminal is flushed. PR: 202288 Modified: head/sys/dev/vt/vt_core.c Modified: head/sys/dev/vt/vt_core.c ============================================================================== --- head/sys/dev/vt/vt_core.c Wed Apr 19 22:27:26 2017 (r317172) +++ head/sys/dev/vt/vt_core.c Wed Apr 19 22:41:24 2017 (r317173) @@ -1149,6 +1149,34 @@ vt_mark_mouse_position_as_dirty(struct v } #endif +static void +vt_set_border(struct vt_window *vw, term_color_t c) +{ + struct vt_device *vd = vw->vw_device; + term_rect_t *vda = &vw->vw_draw_area; + int x, y; + + /* Top bar. */ + for (y = 0; y < vda->tr_begin.tp_row; y++) + for (x = 0; x < vd->vd_width; x++) + vd->vd_driver->vd_setpixel(vd, x, y, c); + + for (y = vda->tr_begin.tp_row; y <= vda->tr_end.tp_row; y++) { + /* Left bar. */ + for (x = 0; x < vda->tr_begin.tp_col; x++) + vd->vd_driver->vd_setpixel(vd, x, y, c); + + /* Right bar. */ + for (x = vda->tr_end.tp_col + 1; x < vd->vd_width; x++) + vd->vd_driver->vd_setpixel(vd, x, y, c); + } + + /* Bottom bar. */ + for (y = vda->tr_end.tp_row + 1; y < vd->vd_height; y++) + for (x = 0; x < vd->vd_width; x++) + vd->vd_driver->vd_setpixel(vd, x, y, c); +} + static int vt_flush(struct vt_device *vd) { @@ -1214,6 +1242,7 @@ vt_flush(struct vt_device *vd) if (vd->vd_flags & VDF_INVALID) { vd->vd_flags &= ~VDF_INVALID; + vt_set_border(vw, TC_BLACK); vt_termrect(vd, vf, &tarea); if (vt_draw_logo_cpus) vtterm_draw_cpu_logos(vd); @@ -1528,34 +1557,6 @@ vtterm_opened(struct terminal *tm, int o VT_UNLOCK(vd); } -static void -vt_set_border(struct vt_window *vw, term_color_t c) -{ - struct vt_device *vd = vw->vw_device; - term_rect_t *vda = &vw->vw_draw_area; - int x, y; - - /* Top bar. */ - for (y = 0; y < vda->tr_begin.tp_row; y++) - for (x = 0; x < vd->vd_width; x++) - vd->vd_driver->vd_setpixel(vd, x, y, c); - - for (y = vda->tr_begin.tp_row; y <= vda->tr_end.tp_row; y++) { - /* Left bar. */ - for (x = 0; x < vda->tr_begin.tp_col; x++) - vd->vd_driver->vd_setpixel(vd, x, y, c); - - /* Right bar. */ - for (x = vda->tr_end.tp_col + 1; x < vd->vd_width; x++) - vd->vd_driver->vd_setpixel(vd, x, y, c); - } - - /* Bottom bar. */ - for (y = vda->tr_end.tp_row + 1; y < vd->vd_height; y++) - for (x = 0; x < vd->vd_width; x++) - vd->vd_driver->vd_setpixel(vd, x, y, c); -} - static int vt_change_font(struct vt_window *vw, struct vt_font *vf) { @@ -1621,7 +1622,6 @@ vt_change_font(struct vt_window *vw, str /* Force a full redraw the next timer tick. */ if (vd->vd_curwindow == vw) { - vt_set_border(vw, TC_BLACK); vd->vd_flags |= VDF_INVALID; vt_resume_flush_timer(vw->vw_device, 0); } From owner-svn-src-all@freebsd.org Wed Apr 19 22:43:12 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED28AD4671C; Wed, 19 Apr 2017 22:43:12 +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 mx1.freebsd.org (Postfix) with ESMTPS id BEFF11777; Wed, 19 Apr 2017 22:43:12 +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 v3JMhBuP044116; Wed, 19 Apr 2017 22:43:11 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JMhB7a044115; Wed, 19 Apr 2017 22:43:11 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201704192243.v3JMhB7a044115@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Wed, 19 Apr 2017 22:43:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317174 - head/sys/dev/vt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:43:13 -0000 Author: jkim Date: Wed Apr 19 22:43:11 2017 New Revision: 317174 URL: https://svnweb.freebsd.org/changeset/base/317174 Log: Revert r316796. It is not necessary since r317173. Modified: head/sys/dev/vt/vt_cpulogos.c Modified: head/sys/dev/vt/vt_cpulogos.c ============================================================================== --- head/sys/dev/vt/vt_cpulogos.c Wed Apr 19 22:41:24 2017 (r317173) +++ head/sys/dev/vt/vt_cpulogos.c Wed Apr 19 22:43:11 2017 (r317174) @@ -153,7 +153,6 @@ vt_fini_logos(void *dummy __unused) struct winsize wsz; term_pos_t size; unsigned int i; - int row; if (!vt_draw_logo_cpus) return; @@ -171,7 +170,7 @@ vt_fini_logos(void *dummy __unused) vt_draw_logo_cpus = 0; VT_UNLOCK(vd); - for (i = row = 0; i < VT_MAXWINDOWS; i++) { + for (i = 0; i < VT_MAXWINDOWS; i++) { vw = vd->vd_windows[i]; if (vw == NULL) continue; @@ -194,16 +193,11 @@ vt_fini_logos(void *dummy __unused) vt_compute_drawable_area(vw); if (vd->vd_curwindow == vw) { - row = vw->vw_draw_area.tr_begin.tp_row; vd->vd_flags |= VDF_INVALID; vt_resume_flush_timer(vd, 0); } VT_UNLOCK(vd); } - - if (row > 0 && vd->vd_driver->vd_drawrect != NULL) - vd->vd_driver->vd_drawrect(vd, 0, 0, vd->vd_width, row - 1, - 1, TC_BLACK); } static void From owner-svn-src-all@freebsd.org Wed Apr 19 22:44:26 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EAB64D46794; Wed, 19 Apr 2017 22:44:26 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-io0-x242.google.com (mail-io0-x242.google.com [IPv6:2607:f8b0:4001:c06::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B233118ED; Wed, 19 Apr 2017 22:44:26 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-io0-x242.google.com with SMTP id d203so8414455iof.2; Wed, 19 Apr 2017 15:44:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=A0MSAUH/AFMZ+H8x9Mxq17PBZhlkwUGN9e2Ix9Yl5rY=; b=MgPeJQvtPp/uh7uTEZBPm5zrujTc5GuJ03Nr7hneVqfjegQKEJ1d9yuh931KpJMGXE 72EoxLVPSTJ1CP4Hbd5UR/atdPeYtXXuK0KgapeAoTOa8v5BmbIlL67ecaAoEB7ujJA9 D9jFrX9EAh9otBRj7kLAKRRt2Ud8tbg4RUVzz0xbtqXTdS7i1ql2Ktlcey1wWP0Kv1ll +SJeyWZrFh0tH65qJeg73fO483kTnrwBaZ2NhvpdkpUeVANd/FtCS9dPivfefGCFkYO7 SLjL09vtzO4ArNIlG0+eOEx84xI/SZBtV8dSPELfPZlr3XaiNJVvevPgq5aaOq1CM2gL zF8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=A0MSAUH/AFMZ+H8x9Mxq17PBZhlkwUGN9e2Ix9Yl5rY=; b=tF6my7OiII9CgUGZOz3837Webn5haz1TPOLtaIW3JRaJHC3QlXDm5WIw4Fu3MuMeEz M3qyM07yHaoQZKO9DqNjTRRWfi6Hbdzoks6jyBjgKA010/g3Ge9qLh7piyZ3KbANE1H9 iDI4VKUEEpfGcv7+lMWs0Px2C6GrEJl40OhFdUHC08QCsqvSk/TF4EOq66+RIp4CNrXR 32OxsXNR1FFJ/a0xbC9B4IOf2gRgUIXXueIz7mvzr2jB+oKugmVr5QbzSeRZMVg2mPPW nHWg0xYFeFcPPy6yvJVQ/qKmLZagJGkTxB6frC73u6qtLmUTo7PifeqzWczcP7q9Am75 8ELQ== X-Gm-Message-State: AN3rC/4MMhDaeEe8SzTwarnw5xhQ/rk8FNwQqpXcyniZFMCAvGWjS9sg suNoWnsmZ3oXwgNNU+D9ug== X-Received: by 10.99.169.10 with SMTP id u10mr5172913pge.26.1492641865878; Wed, 19 Apr 2017 15:44:25 -0700 (PDT) Received: from ?IPv6:2607:fb90:836c:99e9:f192:37b0:a12c:66b2? ([2607:fb90:836c:99e9:f192:37b0:a12c:66b2]) by smtp.gmail.com with ESMTPSA id o7sm6379350pga.36.2017.04.19.15.44.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 19 Apr 2017 15:44:25 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r317168 - in head: share/mk tools/build/options usr.sbin/rpcbind From: Ngie Cooper X-Mailer: iPhone Mail (14E304) In-Reply-To: <201704192045.v3JKjkgh095435@repo.freebsd.org> Date: Wed, 19 Apr 2017 15:44:24 -0700 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <19BDE8D1-FD09-4105-ADFE-BF3ED18352F0@gmail.com> References: <201704192045.v3JKjkgh095435@repo.freebsd.org> To: Ngie Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:44:27 -0000 > On Apr 19, 2017, at 13:45, Ngie Cooper wrote: >=20 > Author: ngie > Date: Wed Apr 19 20:45:46 2017 > New Revision: 317168 > URL: https://svnweb.freebsd.org/changeset/base/317168 >=20 > Log: > Add a knob, WITH*_RPCBIND_WARMSTART_SUPPORT, to allow the end-user to bui= ld > rpcbind(8) with/without warmstart support. >=20 > The knob defaults to off to preserve POLA for the feature. >=20 > See rpcbind(8) for more details about the warmstart feature. I haven't regenerated src.conf(5) yet due to other items I noticed were m= issing when running makeman. I'll regenerate it sometime today. Thanks, -Ngie= From owner-svn-src-all@freebsd.org Wed Apr 19 22:48:28 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7EF3D46865; Wed, 19 Apr 2017 22:48:28 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B9ECE1AF4; Wed, 19 Apr 2017 22:48:28 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JMmR3D044383; Wed, 19 Apr 2017 22:48:27 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JMmRo1044382; Wed, 19 Apr 2017 22:48:27 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704192248.v3JMmRo1044382@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 19 Apr 2017 22:48:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317175 - head/sys/dev/syscons X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:48:29 -0000 Author: glebius Date: Wed Apr 19 22:48:27 2017 New Revision: 317175 URL: https://svnweb.freebsd.org/changeset/base/317175 Log: Fix build without SC_PIXEL_MODE defined. Modified: head/sys/dev/syscons/scvgarndr.c Modified: head/sys/dev/syscons/scvgarndr.c ============================================================================== --- head/sys/dev/syscons/scvgarndr.c Wed Apr 19 22:43:11 2017 (r317174) +++ head/sys/dev/syscons/scvgarndr.c Wed Apr 19 22:48:27 2017 (r317175) @@ -173,7 +173,8 @@ static const struct mousedata mouse9x13 0x0c00, 0x0c00, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000, }, 9, 13, }; - +#endif +#if defined(SC_PIXEL_MODE) static const struct mousedata mouse10x16 = { { 0xc000, 0xa000, 0x9000, 0x8800, 0x8400, 0x8200, 0x8100, 0x8080, 0x8040, 0x83c0, 0x9200, 0xa900, 0xc900, 0x0480, 0x0480, 0x0300, }, { From owner-svn-src-all@freebsd.org Wed Apr 19 22:50:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3324DD468F9; Wed, 19 Apr 2017 22:50:21 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0514A1C84; Wed, 19 Apr 2017 22:50:20 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3JMoKqS044520; Wed, 19 Apr 2017 22:50:20 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JMoKWE044519; Wed, 19 Apr 2017 22:50:20 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704192250.v3JMoKWE044519@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 19 Apr 2017 22:50:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317176 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:50:21 -0000 Author: glebius Date: Wed Apr 19 22:50:19 2017 New Revision: 317176 URL: https://svnweb.freebsd.org/changeset/base/317176 Log: Bump __FreeBSD_version due to r317061, struct vmmeter changes. Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Wed Apr 19 22:48:27 2017 (r317175) +++ head/sys/sys/param.h Wed Apr 19 22:50:19 2017 (r317176) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1200028 /* Master, propagated to newvers */ +#define __FreeBSD_version 1200029 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Wed Apr 19 22:51:27 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FBCAD46A81; Wed, 19 Apr 2017 22:51:27 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-io0-x242.google.com (mail-io0-x242.google.com [IPv6:2607:f8b0:4001:c06::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E84AD1F84; Wed, 19 Apr 2017 22:51:26 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-io0-x242.google.com with SMTP id d203so8481441iof.2; Wed, 19 Apr 2017 15:51:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=tDud5Le/8pS25DunzwTjUZkg4KvMPFbY7OlFsyUBVPQ=; b=eDztotlCgyyLCpvwzVzug+DMdEX9L+08haMSogqxMntxIER2oXBqGZDK0V1WyunSi1 QinM4E7ONJVshtJv6WouJYLVunBrF8aLjlI4ZwtObGGaL5z6EgstYtqPLpmTkLjJ/kCI Ymfg0x9GcPVfyNX7zqT6/IIs9JkfL2zQysCSVWElSfghTpAyK34G907VPmk2vFkyotNk 9RRFYjegWk3EGWMCRFAmOhLwSf0g0Ddf37RtdAVbqayNASC9qRZomXdb5dJJcGhRGaLd Lzj+dwN5XivwFeqJ6weYhQhwkN/hTJt8ZjMCkEiWi52sDnqboQFkwA3d9dHwYb+6mDlC 4FIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=tDud5Le/8pS25DunzwTjUZkg4KvMPFbY7OlFsyUBVPQ=; b=pOzKgIfkvzmPd0WjoK3TVfsdM4RzIbaYwdigbbV1CHxUhNlQUecNL0VavnuRCa+f6R jOOQuvbgM973jEuDCbtSyv/7lOH4QQVPW5+sOt2VhtTrqFzbyKeHKRkVGg2eNv3MXizi iWVDwBzCOn4EX037V4E59+tyGH0VkUpwt37bf609Wlbcmn5w3haI171pUipJTrPDQGq1 JYAQZzOM3ALF6HpwqwDE0xAIRqlo1QIgMyJyDZz88n2j5nYaAclZ4nPQUakolMn29yo1 y6IMLN2YHOwkMZq2vXqoN2E3BvnEEcS/9xvx5uqVhV3SiVY8ZlxDQYPRJzJdBjDF4BlM S/Cw== X-Gm-Message-State: AN3rC/5rtBsw9KxroccvY5BcMa1TCMlAgKcZ9NQhvtQs4jGKqZI3z8/N 7fWg7I+xVgAcKXEXRPz8Bw== X-Received: by 10.98.160.24 with SMTP id r24mr5232080pfe.16.1492642286117; Wed, 19 Apr 2017 15:51:26 -0700 (PDT) Received: from ?IPv6:2607:fb90:836c:99e9:f192:37b0:a12c:66b2? ([2607:fb90:836c:99e9:f192:37b0:a12c:66b2]) by smtp.gmail.com with ESMTPSA id m194sm6373682pga.62.2017.04.19.15.51.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 19 Apr 2017 15:51:25 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r317094 - head/share/mk From: Ngie Cooper X-Mailer: iPhone Mail (14E304) In-Reply-To: Date: Wed, 19 Apr 2017 15:51:24 -0700 Cc: rgrimes@freebsd.org, Eric van Gyzen , John Baldwin , Slawa Olhovchenkov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers Content-Transfer-Encoding: quoted-printable Message-Id: <25F616D2-DE24-485B-9549-E1C4F68B9379@gmail.com> References: <201704192218.v3JMIYtS032774@pdx.rh.CN85.dnsmgr.net> To: Warner Losh X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 22:51:27 -0000 > On Apr 19, 2017, at 15:22, Warner Losh wrote: ... >> Actually this is exactly what I would expect from Linux! >>=20 >> Why do we need to pull the trigger on GDB other than to pull the trigger >> to say we are GPL free, if that is the reason then this is the wrong >> way to go about it. >=20 > I think "gdb in base is horribly broken" is the real reason. You need > the port to do anything non-trivial these days. >=20 > Plus core set this as a goal for the project after it was clear that > was a consensus desire several years ago. Can't fault someone for > working towards that goal. +1 to Warner's sentiments. gdb in base doesn't work well with threads (6.x never did ;/..), and lacks s= upport for other things (like python debugging). Being able to debug threads= reliably is a make or break thing. So while I understand and in general agree with you Rod, I completely disagr= ee on the practical end of things. I'm actually kind of curious as to why th= is isn't being done globally.. but I assume that it was described in one of t= he many threads some time ago about the status quo for debugging with gdb on= tier-two architectures. Thanks, -Ngie= From owner-svn-src-all@freebsd.org Wed Apr 19 23:06:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1ACE1D46D88; Wed, 19 Apr 2017 23:06:09 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E11C8884; Wed, 19 Apr 2017 23:06:08 +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 v3JN68WW052326; Wed, 19 Apr 2017 23:06:08 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3JN68Cu052325; Wed, 19 Apr 2017 23:06:08 GMT (envelope-from np@FreeBSD.org) Message-Id: <201704192306.v3JN68Cu052325@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 19 Apr 2017 23:06:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317177 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 23:06:09 -0000 Author: np Date: Wed Apr 19 23:06:07 2017 New Revision: 317177 URL: https://svnweb.freebsd.org/changeset/base/317177 Log: Free lro_hash unconditionally, just like lro_mbuf_data a few lines later. Fix whitespace nit while here. Modified: head/sys/netinet/tcp_lro.c Modified: head/sys/netinet/tcp_lro.c ============================================================================== --- head/sys/netinet/tcp_lro.c Wed Apr 19 22:50:19 2017 (r317176) +++ head/sys/netinet/tcp_lro.c Wed Apr 19 23:06:07 2017 (r317177) @@ -175,17 +175,15 @@ tcp_lro_free(struct lro_ctrl *lc) } /* free hash table */ - if (lc->lro_hash != NULL) { - free(lc->lro_hash, M_LRO); - lc->lro_hash = NULL; - } + free(lc->lro_hash, M_LRO); + lc->lro_hash = NULL; lc->lro_hashsz = 0; /* free mbuf array, if any */ for (x = 0; x != lc->lro_mbuf_count; x++) m_freem(lc->lro_mbuf_data[x].mb); lc->lro_mbuf_count = 0; - + /* free allocated memory, if any */ free(lc->lro_mbuf_data, M_LRO); lc->lro_mbuf_data = NULL; From owner-svn-src-all@freebsd.org Wed Apr 19 23:10:42 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7828D46E78 for ; Wed, 19 Apr 2017 23:10:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm20-vm3.bullet.mail.ne1.yahoo.com (nm20-vm3.bullet.mail.ne1.yahoo.com [98.138.91.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9B7EAA5D for ; Wed, 19 Apr 2017 23:10:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1492643043; bh=Ylh2uWd2AlgrVqzIRIdy5qw5FZHRGZnUoxOaZjrbHHs=; h=Subject:To:References:Cc:From:Date:In-Reply-To:From:Subject; b=E+1Sr40bNo+BQnAuW6neBfW0TSrloKCY3vJk+r8uHuKe0yOyjVBJX1/vrtF1eJ2kwyZLiMrgZzE4IOlNykjr9avpDtC0yr9GLBFI1NveqXCIZDd+YlpxLrget4WPqeoSuL6Ocpetxds6gpGkhuw9aGyK8ugTQP9iZRiI25YK1EuPPcClzMW39jaiAr7Yc3m4bC0qkzser2Mrp9sJEzGf3SUCgl7wGq3fFZGVknxewfzQILGRMSpUBgmK6TMZpsv+zDwsui3CIk5Xbxa0TysA7PUy7763opg6wXZAj2YCjb0ojjQg0mO+Vtw/aXe+jiZASdYjF93HO1x/UR2fP80POA== Received: from [98.138.226.179] by nm20.bullet.mail.ne1.yahoo.com with NNFMP; 19 Apr 2017 23:04:03 -0000 Received: from [98.138.84.45] by tm14.bullet.mail.ne1.yahoo.com with NNFMP; 19 Apr 2017 23:04:03 -0000 Received: from [127.0.0.1] by smtp113.mail.ne1.yahoo.com with NNFMP; 19 Apr 2017 23:04:02 -0000 X-Yahoo-Newman-Id: 988610.30654.bm@smtp113.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: Tf1OaFEVM1mI3sr8oeobJPjiCxPbcbAD9RcqWVU3sdIj21d tjmd9ndKf5HKKPig.qnjl66eqgYK3jbUUYplyVhtShbWpmoCPoLB5TgBauVZ u_m3ILzPQE4tQjfDTm0RVEU7hNr.nChLEuZMSRjvcjKBUDrTUIwK.WFv_ylv rr84oPuM3un6.acc.byy4mz0Wj_i0lqzaTpsLLs4vXd200xbQlFe75.NYqf0 .l_xMBQkduipnRB5koSrWPV.5QKNInM_w9KS5fF9IbNGJYTCFFZsyJZuHQFJ K7uX4jhPD70eYasMvYwTrtESbvW1g1Syl8YIrMtbZv3e7CqbWqzG.iWgghR8 axP_8uE1liqbZ8b63Sr5lvNzDIHRkTE6eEZF0ryXIcNT3bZOvmsDID4Pmfvi klId1lDR.rf0Dd158OWZ60xo58Ap04GoHYQX9renx.ZOC_UJrPHPZP4Rj_1I .h76UJQbW7d_GE1FnhjKBn0R0SqHc_p7W3Gpr1jOyl09YNJ4HaOGPPLJ9hDS WvrUz9bWi5MViShCarhEAO7wZv21YSIQXNDjiGpoJ3YTD X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r317094 - head/share/mk To: rgrimes@FreeBSD.org, Eric van Gyzen References: <201704192218.v3JMIYtS032774@pdx.rh.CN85.dnsmgr.net> Cc: John Baldwin , Slawa Olhovchenkov , svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org From: Pedro Giffuni Organization: FreeBSD Project Message-ID: Date: Wed, 19 Apr 2017 18:04:12 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <201704192218.v3JMIYtS032774@pdx.rh.CN85.dnsmgr.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 23:10:42 -0000 On 19/4/2017 17:18, Rodney W. Grimes wrote: > [ Charset windows-1252 unsupported, converting... ] >>>>>>> Generating core.txt now complety broken? >>>>>> No. crashinfo has supported gdb from ports for quite a while now. >>>>>> If you 'pkg install gdb' crashinfo defaults to using the ports gdb over >>>>>> the base one already. >>>>> I am about clean install, w/o ports. >>>> Until we get some sort of klldb support that will not work. However, >>>> we already have platforms now where /usr/bin/gdb doesn't work for that. >>>> riscv and aarch64 aren't supported in ancient gdb, and the MIPS >>>> /usr/bin/gdb didn't really work for me in my testing. >>> So we break what worked on a Tier1 Platform? With my "user" hat on >>> these are the exact kind of breakages that send me looking for another >>> platform to run on. We far to often just go oh you can do X y and Z >>> to get around what we broke forgetting that the user 6 months from now >>> when this hits a release isnt gona come ask, he may just go down the >>> road to something else. >>> >>> Remove gdb WHEN klldb can replace it, not a day before. Using "oh its >>> broken on aarch64 and mips" is not a reason to break things on i386/amd64. >>> >>> Yes, I know we want to get gnu stuff out of the tree, but that needs >>> to come AFTER a proper replacement is avaliable. >>> >>>>> Also, how to generate core.txt after crash, reboot and install gdb >>>>> from ports? (port instaled after crash) >>>> You can always run crashinfo by hand. >>> /me starts to look for a new OS, this one is not very good at user support. >> # crashinfo >> Please install GDB and run 'crashinfo' again. >> The easiest way to install GDB is: pkg install gdb >> Unable to find matching kernel for /var/crash/vmcore.1 >> >> https://reviews.freebsd.org/D10429 >> >> This should be good enough to keep the user from looking for a new OS. >> It also gets a much better version of GDB onto the box, which will make >> the user happier than giving them an ancient one and letting them flail >> around with it for a while before learning that they should install a >> newer one. > Actually this is exactly what I would expect from Linux! Does linux include a kernel debugger now? Last I heard Linus was against debuggers, just as he was once against version control ... and Codes of Conduct. > Why do we need to pull the trigger on GDB other than to pull the trigger > to say we are GPL free, if that is the reason then this is the wrong > way to go about it. Well, one of the reasons may be that we need a debugger that supports newer DWARF. At some time we started hacking our llvm to not use a recent dwarf versions(4?). Pedro. From owner-svn-src-all@freebsd.org Thu Apr 20 02:22:26 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2795D4734D; Thu, 20 Apr 2017 02:22:26 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x230.google.com (mail-io0-x230.google.com [IPv6:2607:f8b0:4001:c06::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ABF801F34; Thu, 20 Apr 2017 02:22:26 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x230.google.com with SMTP id o22so52227030iod.3; Wed, 19 Apr 2017 19:22:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=h30ho+da/qrTQ11u8AtuUvLY3GRry9ZvdImhGtNxnWg=; b=Y2prvCDlTEmBkwM0FSM4DQUuMFcxlUi8x/7h38suGoi/5ZVqFEoYE1/TP/w6W7MF4+ RsRyhGeXUWJ+b4otLIOgQTvJ0aXWFZHEHJf02ER9RzXs4+q1/fJKedd9M9hBozmN0hM4 WlMiSeXcZeGvXcwr0envB8jf/dDcCtyB1mrPUJbqoDvGGiUzQqe0ybjmp81zmqY5+l/Z 0ToNTTn2OuCziJOE03sZMQYuckW1BXYUf9nqN/KjbFg1eKsQxed2HJO0IFG0Q2Y6NLr7 scqScbIdqcKxd53AXtl/cRThhiHHc/vX/SKRD+j7GWBoaJeq3NFiZBAiG1B/mrh9K6gl 9Czg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=h30ho+da/qrTQ11u8AtuUvLY3GRry9ZvdImhGtNxnWg=; b=q8InGjnR5UB1m9jVfJ4cGX70oLKyJLsRLcI/epLiEq08ncR8r369mAvYL0kJ8YRG0n XG59vFRxvtp+OcnQq0hULDjTFnN2q6srJLYO+3rYdPIXy9fpvTr2uWMO9IUEwTTms4as nPpANtP3ZOU8MGINI1U1fBtnAVzVJZbSYbNe1HW5hU2xmP5QRoBBrpZA5KiBFp0XqGMy jC5o7v26uYab+2u6nImrFsuoAXvKLr6gnt23Ytla3+r9N5Slz6uk/UTIo+Jnwo2QmGSL 8m+eFXXvUm0qOy9NWdjSg06mBmHhUcqMU6zFMym1voagFJWmno2nr8Ev/2C44DrocqKR GHpQ== X-Gm-Message-State: AN3rC/6nOTIWO9HmVDBYjpcY91BZlGIufY+Fnzrrdo6XOA8Ug3wk33XR cj+hG+3FdAndu2SNSYu+NcnuDMHDyOIb X-Received: by 10.107.34.21 with SMTP id i21mr6961892ioi.52.1492654945981; Wed, 19 Apr 2017 19:22:25 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.30.136 with HTTP; Wed, 19 Apr 2017 19:22:05 -0700 (PDT) In-Reply-To: <201704192221.v3JMLFPs032866@repo.freebsd.org> References: <201704192221.v3JMLFPs032866@repo.freebsd.org> From: Ed Maste Date: Wed, 19 Apr 2017 22:22:05 -0400 X-Google-Sender-Auth: HzcygzhUpNiRK9NwmlXmJDbtpI8 Message-ID: Subject: Re: svn commit: r317171 - head/sys/dev/vt To: Jung-uk Kim Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 02:22:27 -0000 On 19 April 2017 at 18:21, Jung-uk Kim wrote: > Author: jkim > Date: Wed Apr 19 22:21:15 2017 > New Revision: 317171 > URL: https://svnweb.freebsd.org/changeset/base/317171 > > Log: > Micro-optimize vt_set_border(). I expect we'll eventually have vt drivers that have a non-trivial vd_drawrect, making the previous implementation preferable. Can you comment a bit more on this change? From owner-svn-src-all@freebsd.org Thu Apr 20 02:33:22 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A00D3D47B35; Thu, 20 Apr 2017 02:33:22 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 851BDBE4; Thu, 20 Apr 2017 02:33:22 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (58-7-91-98.dyn.iinet.net.au [58.7.91.98]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id v3K2XCbn007834 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 19 Apr 2017 19:33:16 -0700 (PDT) (envelope-from julian@freebsd.org) Subject: Re: svn commit: r317094 - head/share/mk To: Justin Hibbits , rgrimes@freebsd.org References: <1709565.BYcnqjiFaR@ralph.baldwin.cx> <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> Cc: John Baldwin , Slawa Olhovchenkov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers From: Julian Elischer Message-ID: Date: Thu, 20 Apr 2017 10:33:07 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 02:33:22 -0000 On 20/4/17 3:13 am, Justin Hibbits wrote: > On Wed, Apr 19, 2017 at 11:33 AM, Rodney W. Grimes > wrote: >>> On Wednesday, April 19, 2017 01:28:37 AM Slawa Olhovchenkov wrote: >>>> On Tue, Apr 18, 2017 at 12:45:25PM -0700, John Baldwin wrote: >>>> >>>>> On Tuesday, April 18, 2017 07:30:13 PM Slawa Olhovchenkov wrote: >>>>>> On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: >>>>>> >>>>>>> Author: jhb >>>>>>> Date: Tue Apr 18 16:27:48 2017 >>>>>>> New Revision: 317094 >>>>>>> URL: https://svnweb.freebsd.org/changeset/base/317094 >>>>>>> >>>>>>> Log: >>>>>>> Disable in-tree GDB by default on x86, mips, and powerpc. >>>>>>> >>>>>>> GDB in ports contains all of the functionality as GDB in base >>>>>>> (including kgdb) for these platforms along with additional >>>>>>> functionality. In-tree GDB remains enabled on ARM and sparc64. >>>>>>> GDB in ports does not currently support kernel debugging on arm, >>>>>>> and ports GDB for sparc64 has not been tested (though it does >>>>>>> include sparc64 support). >>>>>>> >>>>>>> Reviewed by: bdrewery, emaste, imp >>>>>>> Relnotes: yes >>>>>>> Sponsored by: DARPA / AFRL >>>>>>> Differential Revision: https://reviews.freebsd.org/D10399 >>>>>> Generating core.txt now complety broken? >>>>> No. crashinfo has supported gdb from ports for quite a while now. >>>>> If you 'pkg install gdb' crashinfo defaults to using the ports gdb over >>>>> the base one already. >>>> I am about clean install, w/o ports. >>> Until we get some sort of klldb support that will not work. However, >>> we already have platforms now where /usr/bin/gdb doesn't work for that. >>> riscv and aarch64 aren't supported in ancient gdb, and the MIPS >>> /usr/bin/gdb didn't really work for me in my testing. >> So we break what worked on a Tier1 Platform? With my "user" hat on >> these are the exact kind of breakages that send me looking for another >> platform to run on. We far to often just go oh you can do X y and Z >> to get around what we broke forgetting that the user 6 months from now >> when this hits a release isnt gona come ask, he may just go down the >> road to something else. >> >> Remove gdb WHEN klldb can replace it, not a day before. Using "oh its >> broken on aarch64 and mips" is not a reason to break things on i386/amd64. >> > It's not removed, it's disabled by default now. As the commit message > states, gdb in ports is much more feature filled than gdb in base yeah but we ship both (on 10.3) because we've had issues where one or the other crashes.. > >> Yes, I know we want to get gnu stuff out of the tree, but that needs >> to come AFTER a proper replacement is avaliable. >> >>>> Also, how to generate core.txt after crash, reboot and install gdb >>>> from ports? (port instaled after crash) >>> You can always run crashinfo by hand. >> /me starts to look for a new OS, this one is not very good at user support. > I'd say this more warrants a set of "blessed" packages to include on > install disks so we get this functionality without the extra step. > > - Justin > >> >> -- >> Rod Grimes rgrimes@freebsd.org >> > From owner-svn-src-all@freebsd.org Thu Apr 20 02:35:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2025D47C5C; Thu, 20 Apr 2017 02:35:21 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 973D3DAB; Thu, 20 Apr 2017 02:35:21 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (58-7-91-98.dyn.iinet.net.au [58.7.91.98]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id v3K2ZBxo007848 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 19 Apr 2017 19:35:15 -0700 (PDT) (envelope-from julian@freebsd.org) Subject: Re: svn commit: r317094 - head/share/mk To: Justin Hibbits , rgrimes@freebsd.org References: <1709565.BYcnqjiFaR@ralph.baldwin.cx> <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> Cc: John Baldwin , Slawa Olhovchenkov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers From: Julian Elischer Message-ID: <52e09270-6535-d15e-de9b-c33a4fd62210@freebsd.org> Date: Thu, 20 Apr 2017 10:35:06 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 02:35:21 -0000 On 20/4/17 3:13 am, Justin Hibbits wrote: > On Wed, Apr 19, 2017 at 11:33 AM, Rodney W. Grimes > wrote: >>> On Wednesday, April 19, 2017 01:28:37 AM Slawa Olhovchenkov wrote: >>>> On Tue, Apr 18, 2017 at 12:45:25PM -0700, John Baldwin wrote: >>>> >>>>> On Tuesday, April 18, 2017 07:30:13 PM Slawa Olhovchenkov wrote: >>>>>> On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: >>>>>> >>>>>>> Author: jhb >>>>>>> Date: Tue Apr 18 16:27:48 2017 >>>>>>> New Revision: 317094 >>>>>>> URL: https://svnweb.freebsd.org/changeset/base/317094 >>>>>>> >>>>>>> Log: >>>>>>> Disable in-tree GDB by default on x86, mips, and powerpc. >>>>>>> >>>>>>> GDB in ports contains all of the functionality as GDB in base >>>>>>> (including kgdb) for these platforms along with additional >>>>>>> functionality. In-tree GDB remains enabled on ARM and sparc64. >>>>>>> GDB in ports does not currently support kernel debugging on arm, >>>>>>> and ports GDB for sparc64 has not been tested (though it does >>>>>>> include sparc64 support). >>>>>>> >>>>>>> Reviewed by: bdrewery, emaste, imp >>>>>>> Relnotes: yes >>>>>>> Sponsored by: DARPA / AFRL >>>>>>> Differential Revision: https://reviews.freebsd.org/D10399 >>>>>> Generating core.txt now complety broken? >>>>> No. crashinfo has supported gdb from ports for quite a while now. >>>>> If you 'pkg install gdb' crashinfo defaults to using the ports gdb over >>>>> the base one already. >>>> I am about clean install, w/o ports. >>> Until we get some sort of klldb support that will not work. However, >>> we already have platforms now where /usr/bin/gdb doesn't work for that. >>> riscv and aarch64 aren't supported in ancient gdb, and the MIPS >>> /usr/bin/gdb didn't really work for me in my testing. >> So we break what worked on a Tier1 Platform? With my "user" hat on >> these are the exact kind of breakages that send me looking for another >> platform to run on. We far to often just go oh you can do X y and Z >> to get around what we broke forgetting that the user 6 months from now >> when this hits a release isnt gona come ask, he may just go down the >> road to something else. >> >> Remove gdb WHEN klldb can replace it, not a day before. Using "oh its >> broken on aarch64 and mips" is not a reason to break things on i386/amd64. >> > It's not removed, it's disabled by default now. As the commit message > states, gdb in ports is much more feature filled than gdb in base > >> Yes, I know we want to get gnu stuff out of the tree, but that needs >> to come AFTER a proper replacement is avaliable. >> >>>> Also, how to generate core.txt after crash, reboot and install gdb >>>> from ports? (port instaled after crash) >>> You can always run crashinfo by hand. >> /me starts to look for a new OS, this one is not very good at user support. > I'd say this more warrants a set of "blessed" packages to include on > install disks so we get this functionality without the extra step. I've been pushing this idea for years.. The idea of "critical" packages, where failure to build/work is regarded as much as a reason to stop-ship as a failure in the base itself. > - Justin > >> >> -- >> Rod Grimes rgrimes@freebsd.org >> > From owner-svn-src-all@freebsd.org Thu Apr 20 03:32:31 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE142D47E46; Thu, 20 Apr 2017 03:32:31 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BD92B9CB; Thu, 20 Apr 2017 03:32:31 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K3WU6t063170; Thu, 20 Apr 2017 03:32:30 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K3WUlS063169; Thu, 20 Apr 2017 03:32:30 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704200332.v3K3WUlS063169@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Thu, 20 Apr 2017 03:32:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317178 - head/tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 03:32:32 -0000 Author: ngie Date: Thu Apr 20 03:32:30 2017 New Revision: 317178 URL: https://svnweb.freebsd.org/changeset/base/317178 Log: Add WITH_GROFF to complement WITHOUT_GROFF and placate complaints from makeman MFC after: 7 weeks Sponsored by: Dell EMC Isilon Added: head/tools/build/options/WITH_GROFF - copied, changed from r317167, head/tools/build/options/WITHOUT_GROFF Copied and modified: head/tools/build/options/WITH_GROFF (from r317167, head/tools/build/options/WITHOUT_GROFF) ============================================================================== --- head/tools/build/options/WITHOUT_GROFF Wed Apr 19 20:35:47 2017 (r317167, copy source) +++ head/tools/build/options/WITH_GROFF Thu Apr 20 03:32:30 2017 (r317178) @@ -1,7 +1,5 @@ .\" $FreeBSD$ -Set to not build +Set to build .Xr groff 1 and .Xr vgrind 1 . -You should consider installing the textproc/groff port to not break -.Xr man 1 . From owner-svn-src-all@freebsd.org Thu Apr 20 03:36:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6BB4BD47002; Thu, 20 Apr 2017 03:36:11 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 35FE7C28; Thu, 20 Apr 2017 03:36:11 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K3aAu3063348; Thu, 20 Apr 2017 03:36:10 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K3aAcB063346; Thu, 20 Apr 2017 03:36:10 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704200336.v3K3aAcB063346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Thu, 20 Apr 2017 03:36:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317179 - head/tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 03:36:11 -0000 Author: ngie Date: Thu Apr 20 03:36:09 2017 New Revision: 317179 URL: https://svnweb.freebsd.org/changeset/base/317179 Log: Clean up WITH*_PROFILE - Clarify that profiled libraries are usable with gprof(8). - Add WITH_PROFILE to complement WITHOUT_PROFILE and placate makeman. MFC after: 7 weeks Sponsored by: Dell EMC Isilon Added: head/tools/build/options/WITH_PROFILE - copied, changed from r317167, head/tools/build/options/WITHOUT_PROFILE Modified: head/tools/build/options/WITHOUT_PROFILE Modified: head/tools/build/options/WITHOUT_PROFILE ============================================================================== --- head/tools/build/options/WITHOUT_PROFILE Thu Apr 20 03:32:30 2017 (r317178) +++ head/tools/build/options/WITHOUT_PROFILE Thu Apr 20 03:36:09 2017 (r317179) @@ -1,2 +1,3 @@ .\" $FreeBSD$ -Set to avoid compiling profiled libraries. +Set to not build profiled libraries for use with +.Xr gprof 8 . Copied and modified: head/tools/build/options/WITH_PROFILE (from r317167, head/tools/build/options/WITHOUT_PROFILE) ============================================================================== --- head/tools/build/options/WITHOUT_PROFILE Wed Apr 19 20:35:47 2017 (r317167, copy source) +++ head/tools/build/options/WITH_PROFILE Thu Apr 20 03:36:09 2017 (r317179) @@ -1,2 +1,3 @@ .\" $FreeBSD$ -Set to avoid compiling profiled libraries. +Set to build profiled libraries for use with +.Xr gprof 8 . From owner-svn-src-all@freebsd.org Thu Apr 20 03:41:44 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 620C4D4739B; Thu, 20 Apr 2017 03:41:44 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 245B3120D; Thu, 20 Apr 2017 03:41:44 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K3fh08066475; Thu, 20 Apr 2017 03:41:43 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K3fgEX066469; Thu, 20 Apr 2017 03:41:42 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704200341.v3K3fgEX066469@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Thu, 20 Apr 2017 03:41:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317180 - head/sys/dev/qlxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 03:41:44 -0000 Author: davidcs Date: Thu Apr 20 03:41:42 2017 New Revision: 317180 URL: https://svnweb.freebsd.org/changeset/base/317180 Log: Cleanup QLA_LOCK/QLA_UNLOCK macros remove unused QLA_TX_LOCK/QLA_TX_UNLOCK macros format qla_error_recovery() MFC after:3 days Modified: head/sys/dev/qlxgbe/ql_hw.c head/sys/dev/qlxgbe/ql_ioctl.c head/sys/dev/qlxgbe/ql_os.c head/sys/dev/qlxgbe/ql_os.h Modified: head/sys/dev/qlxgbe/ql_hw.c ============================================================================== --- head/sys/dev/qlxgbe/ql_hw.c Thu Apr 20 03:36:09 2017 (r317179) +++ head/sys/dev/qlxgbe/ql_hw.c Thu Apr 20 03:41:42 2017 (r317180) @@ -183,9 +183,9 @@ qla_sysctl_stop_pegs(SYSCTL_HANDLER_ARGS if (ret == 1) { ha = (qla_host_t *)arg1; - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); qla_stop_pegs(ha); - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); } return err; Modified: head/sys/dev/qlxgbe/ql_ioctl.c ============================================================================== --- head/sys/dev/qlxgbe/ql_ioctl.c Thu Apr 20 03:36:09 2017 (r317179) +++ head/sys/dev/qlxgbe/ql_ioctl.c Thu Apr 20 03:41:42 2017 (r317180) @@ -233,10 +233,10 @@ ql_eioctl(struct cdev *dev, u_long cmd, break; } - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); if (!ha->hw.mdump_done) ha->qla_initiate_recovery = 1; - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); #define QLNX_DUMP_WAIT_SECS 30 @@ -254,9 +254,9 @@ ql_eioctl(struct cdev *dev, u_long cmd, break; } - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); ha->hw.mdump_done = 0; - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); if ((rval = copyout(ha->hw.mdump_template, fw_dump->minidump, ha->hw.mdump_template_size))) { Modified: head/sys/dev/qlxgbe/ql_os.c ============================================================================== --- head/sys/dev/qlxgbe/ql_os.c Thu Apr 20 03:36:09 2017 (r317179) +++ head/sys/dev/qlxgbe/ql_os.c Thu Apr 20 03:41:42 2017 (r317180) @@ -519,9 +519,9 @@ qla_pci_detach(device_t dev) ifp = ha->ifp; - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); qla_stop(ha); - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); qla_release(ha); @@ -890,9 +890,9 @@ qla_init(void *arg) QL_DPRINT2(ha, (ha->pci_dev, "%s: enter\n", __func__)); - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); qla_init_locked(ha); - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); QL_DPRINT2(ha, (ha->pci_dev, "%s: exit\n", __func__)); } @@ -924,13 +924,9 @@ qla_set_multi(qla_host_t *ha, uint32_t a if_maddr_runlock(ifp); - //if (QLA_LOCK(ha, __func__, 1) == 0) { - // ret = ql_hw_set_multi(ha, mta, mcnt, add_multi); - // QLA_UNLOCK(ha, __func__); - //} - QLA_LOCK(ha, __func__, 1); + QLA_LOCK(ha); ret = ql_hw_set_multi(ha, mta, mcnt, add_multi); - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); return (ret); } @@ -953,9 +949,9 @@ qla_ioctl(struct ifnet *ifp, u_long cmd, if (ifa->ifa_addr->sa_family == AF_INET) { ifp->if_flags |= IFF_UP; if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); qla_init_locked(ha); - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); } QL_DPRINT4(ha, (ha->pci_dev, "%s: SIOCSIFADDR (0x%lx) ipv4 [0x%08x]\n", @@ -975,10 +971,12 @@ qla_ioctl(struct ifnet *ifp, u_long cmd, if (ifr->ifr_mtu > QLA_MAX_MTU) { ret = EINVAL; } else { - (void) QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); + ifp->if_mtu = ifr->ifr_mtu; ha->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; + if ((ifp->if_drv_flags & IFF_DRV_RUNNING)) { ret = ql_set_max_mtu(ha, ha->max_frame_size, ha->hw.rcv_cntxt_id); @@ -990,7 +988,7 @@ qla_ioctl(struct ifnet *ifp, u_long cmd, ha->std_replenish = QL_STD_REPLENISH_THRES; - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); if (ret) ret = EINVAL; @@ -1002,7 +1000,7 @@ qla_ioctl(struct ifnet *ifp, u_long cmd, QL_DPRINT4(ha, (ha->pci_dev, "%s: SIOCSIFFLAGS (0x%lx)\n", __func__, cmd)); - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); if (ifp->if_flags & IFF_UP) { if ((ifp->if_drv_flags & IFF_DRV_RUNNING)) { @@ -1026,7 +1024,7 @@ qla_ioctl(struct ifnet *ifp, u_long cmd, ha->if_flags = ifp->if_flags; } - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); break; case SIOCADDMULTI: @@ -1917,7 +1915,7 @@ qla_error_recovery(void *context, int pe struct ifnet *ifp = ha->ifp; int i = 0; - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); if (ha->flags.qla_interface_up) { @@ -1943,7 +1941,7 @@ qla_error_recovery(void *context, int pe } } - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); if ((ha->pci_func & 0x1) == 0) { @@ -1957,18 +1955,22 @@ qla_error_recovery(void *context, int pe ha->msg_from_peer = 0; - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); + ql_minidump(ha); - QLA_UNLOCK(ha, __func__); + + QLA_UNLOCK(ha); (void) ql_init_hw(ha); - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); + if (ha->flags.qla_interface_up) { - qla_free_xmt_bufs(ha); - qla_free_rcv_bufs(ha); + qla_free_xmt_bufs(ha); + qla_free_rcv_bufs(ha); } - QLA_UNLOCK(ha, __func__); + + QLA_UNLOCK(ha); qla_send_msg_to_peer(ha, QL_PEER_MSG_ACK); @@ -1988,39 +1990,43 @@ qla_error_recovery(void *context, int pe (void) ql_init_hw(ha); - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); + if (ha->flags.qla_interface_up) { - qla_free_xmt_bufs(ha); - qla_free_rcv_bufs(ha); - } - QLA_UNLOCK(ha, __func__); + qla_free_xmt_bufs(ha); + qla_free_rcv_bufs(ha); + } + + QLA_UNLOCK(ha); } - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); if (ha->flags.qla_interface_up) { - if (qla_alloc_xmt_bufs(ha) != 0) { - QLA_UNLOCK(ha, __func__); - return; - } - qla_confirm_9kb_enable(ha); - if (qla_alloc_rcv_bufs(ha) != 0) { - QLA_UNLOCK(ha, __func__); - return; - } + if (qla_alloc_xmt_bufs(ha) != 0) { + QLA_UNLOCK(ha); + return; + } + qla_confirm_9kb_enable(ha); - ha->flags.stop_rcv = 0; - if (ql_init_hw_if(ha) == 0) { - ifp = ha->ifp; - ifp->if_drv_flags |= IFF_DRV_RUNNING; - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - ha->flags.qla_watchdog_pause = 0; - } + if (qla_alloc_rcv_bufs(ha) != 0) { + QLA_UNLOCK(ha); + return; + } + + ha->flags.stop_rcv = 0; + + if (ql_init_hw_if(ha) == 0) { + ifp = ha->ifp; + ifp->if_drv_flags |= IFF_DRV_RUNNING; + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + ha->flags.qla_watchdog_pause = 0; + } } else ha->flags.qla_watchdog_pause = 0; - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); } static void @@ -2028,8 +2034,8 @@ qla_async_event(void *context, int pendi { qla_host_t *ha = context; - (void)QLA_LOCK(ha, __func__, 0); + QLA_LOCK(ha); qla_hw_async_event(ha); - QLA_UNLOCK(ha, __func__); + QLA_UNLOCK(ha); } Modified: head/sys/dev/qlxgbe/ql_os.h ============================================================================== --- head/sys/dev/qlxgbe/ql_os.h Thu Apr 20 03:36:09 2017 (r317179) +++ head/sys/dev/qlxgbe/ql_os.h Thu Apr 20 03:41:42 2017 (r317180) @@ -148,12 +148,9 @@ MALLOC_DECLARE(M_QLA83XXBUF); /* * Locks */ -#define QLA_LOCK(ha, str, no_delay) mtx_lock(&ha->hw_lock) -#define QLA_UNLOCK(ha, str) mtx_unlock(&ha->hw_lock) +#define QLA_LOCK(ha) mtx_lock(&ha->hw_lock) +#define QLA_UNLOCK(ha) mtx_unlock(&ha->hw_lock) -#define QLA_TX_LOCK(ha) mtx_lock(&ha->tx_lock); -#define QLA_TX_UNLOCK(ha) mtx_unlock(&ha->tx_lock); - /* * structure encapsulating a DMA buffer */ From owner-svn-src-all@freebsd.org Thu Apr 20 03:43:38 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AECD2D4749F; Thu, 20 Apr 2017 03:43:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 66EDB14D1; Thu, 20 Apr 2017 03:43:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K3hboB067314; Thu, 20 Apr 2017 03:43:37 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K3hbQ9067313; Thu, 20 Apr 2017 03:43:37 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704200343.v3K3hbQ9067313@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Thu, 20 Apr 2017 03:43:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317181 - head/share/man/man5 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 03:43:38 -0000 Author: ngie Date: Thu Apr 20 03:43:37 2017 New Revision: 317181 URL: https://svnweb.freebsd.org/changeset/base/317181 Log: Regenerate src.conf(5) after recent additions/clarifications Sponsored by: Dell EMC Isilon Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Thu Apr 20 03:41:42 2017 (r317180) +++ head/share/man/man5/src.conf.5 Thu Apr 20 03:43:37 2017 (r317181) @@ -465,6 +465,13 @@ When set, it enforces these options: .It .Va WITHOUT_TESTS_SUPPORT .El +.It Va WITH_CXX +Set to build +.Xr c++ 1 +and related libraries. +.Pp +This is a default setting on +amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. .It Va WITHOUT_DEBUG_FILES Set to avoid building or installing standalone debug files for each executable binary and shared library. @@ -740,6 +747,14 @@ You should consider installing the textp .Pp This is a default setting on riscv/riscv64 and riscv/riscv64sf. +.It Va WITH_GROFF +Set to build +.Xr groff 1 +and +.Xr vgrind 1 . +.Pp +This is a default setting on +amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. .It Va WITHOUT_GSSAPI Set to not build libgssapi. .It Va WITHOUT_HAST @@ -1222,10 +1237,17 @@ Set to not build .Xr ppp 8 and related programs. .It Va WITHOUT_PROFILE -Set to avoid compiling profiled libraries. +Set to not build profiled libraries for use with +.Xr gprof 8 . .Pp This is a default setting on riscv/riscv64 and riscv/riscv64sf. +.It Va WITH_PROFILE +Set to build profiled libraries for use with +.Xr gprof 8 . +.Pp +This is a default setting on +amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. .It Va WITHOUT_QUOTAS Set to not build .Xr quota 1 @@ -1269,6 +1291,10 @@ Set to not build Set to not build .Xr routed 8 utility. +.It Va WITH_RPCBIND_WARMSTART_SUPPORT +Set to build +.Xr rpcbind 8 +with warmstart support. .It Va WITHOUT_SENDMAIL Set to not build .Xr sendmail 8 From owner-svn-src-all@freebsd.org Thu Apr 20 04:26:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11309D4756D; Thu, 20 Apr 2017 04:26:50 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 84C36E03; Thu, 20 Apr 2017 04:26:49 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K4QmFG083894; Thu, 20 Apr 2017 04:26:48 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K4Qm1L083891; Thu, 20 Apr 2017 04:26:48 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704200426.v3K4Qm1L083891@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Thu, 20 Apr 2017 04:26: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: r317182 - stable/11/sys/dev/qlxgbe X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 04:26:50 -0000 Author: davidcs Date: Thu Apr 20 04:26:47 2017 New Revision: 317182 URL: https://svnweb.freebsd.org/changeset/base/317182 Log: MFC r316183 Upgrade firmware and other related files to version 5.4.64 Modified: stable/11/sys/dev/qlxgbe/ql_boot.c stable/11/sys/dev/qlxgbe/ql_fw.c stable/11/sys/dev/qlxgbe/ql_minidump.c stable/11/sys/dev/qlxgbe/ql_reset.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/qlxgbe/ql_boot.c ============================================================================== --- stable/11/sys/dev/qlxgbe/ql_boot.c Thu Apr 20 03:43:37 2017 (r317181) +++ stable/11/sys/dev/qlxgbe/ql_boot.c Thu Apr 20 04:26:47 2017 (r317182) @@ -35,7 +35,7 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_bootloader_version_major = 5; unsigned int ql83xx_bootloader_version_minor = 4; -unsigned int ql83xx_bootloader_version_sub = 62; +unsigned int ql83xx_bootloader_version_sub = 64; unsigned char ql83xx_bootloader[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -10957,9 +10957,9 @@ unsigned char ql83xx_bootloader[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x02, 0x00, 0x40, 0x40, 0x05, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x40, 0x40, 0x05, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x9b, 0x64, 0x97, 0x0e + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x64, 0x95, 0x0e }; unsigned int ql83xx_bootloader_len = 131072; Modified: stable/11/sys/dev/qlxgbe/ql_fw.c ============================================================================== --- stable/11/sys/dev/qlxgbe/ql_fw.c Thu Apr 20 03:43:37 2017 (r317181) +++ stable/11/sys/dev/qlxgbe/ql_fw.c Thu Apr 20 04:26:47 2017 (r317182) @@ -35,32 +35,32 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_firmware_version_major = 5; unsigned int ql83xx_firmware_version_minor = 4; -unsigned int ql83xx_firmware_version_sub = 62; +unsigned int ql83xx_firmware_version_sub = 64; unsigned char ql83xx_firmware[] = { - 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc4, 0x5e, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x88, 0xcd, 0x7d, 0x72, 0x3d, 0x1f, 0x5f, 0xe0, + 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe4, 0x42, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5f, 0x7e, 0x74, 0x37, 0x27, 0xc9, 0xab, 0x39, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0xef, 0x03, 0x00, + 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xef, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x44, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0xf9, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7a, 0x9f, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x46, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xdd, 0x4e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf9, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9f, 0x90, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x9f, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xe5, 0x98, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x71, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x89, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -69,118 +69,118 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x56, 0xa3, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7b, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6f, 0x94, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xd1, 0xb8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xec, 0xa9, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xbd, 0x17, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x94, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x54, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xae, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xde, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x35, 0xd0, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x8c, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9a, 0xb9, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1a, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2f, 0xef, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x9f, 0xd8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xfb, 0x17, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x14, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xe4, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xbe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xa0, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdd, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x72, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x67, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0xeb, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4f, 0x25, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xba, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x30, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x86, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xb4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x19, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x84, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdc, 0x4c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x28, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x68, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x45, 0x36, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x56, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6e, 0x3f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x5e, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x51, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x47, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xcc, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x68, 0x61, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x26, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x68, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd3, 0x4a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8e, 0x63, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x0a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x4c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x6e, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbc, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7c, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x57, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb7, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x8f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2a, 0xa1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x79, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, 0xa1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x30, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xbd, 0x19, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x30, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x56, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xd1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0x1a, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -189,7 +189,7 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x52, 0x56, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb5, 0x3f, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x58, 0xe0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -232,9 +232,9 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x5f, 0x1a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xb2, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x49, 0x1a, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xcb, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe8, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x92, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -249,7838 +249,7837 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xda, 0xec, 0x3d, - 0x6d, 0x70, 0x5c, 0xd5, 0x75, 0xf7, 0x7d, 0xec, 0xee, 0xd3, 0x6a, 0x57, - 0x5e, 0x83, 0x4c, 0x84, 0x90, 0xe3, 0x27, 0xdb, 0xd8, 0xe2, 0x33, 0x6b, - 0x63, 0x1b, 0x63, 0x9c, 0xfa, 0x49, 0x96, 0x8d, 0xed, 0xc8, 0x44, 0x40, - 0xca, 0x37, 0x44, 0x24, 0x0d, 0x35, 0x84, 0x60, 0x31, 0x25, 0xa9, 0xf8, - 0x28, 0x7e, 0xb2, 0x25, 0xd9, 0x04, 0x9b, 0xc8, 0xd8, 0x01, 0x87, 0xd0, - 0xb0, 0x92, 0x31, 0xa5, 0x2d, 0x93, 0x2e, 0x93, 0x4c, 0x60, 0xda, 0xce, - 0xb0, 0xd8, 0x99, 0x60, 0x52, 0xdc, 0xba, 0x3f, 0x48, 0x43, 0x18, 0x9a, - 0xed, 0xa4, 0x4c, 0x55, 0x02, 0x64, 0xdb, 0xe9, 0x10, 0x39, 0xa9, 0xa1, - 0xf7, 0xdc, 0x8f, 0xf7, 0xde, 0xbd, 0xfb, 0xde, 0xdb, 0xbd, 0xb2, 0xec, - 0x4c, 0x3a, 0x5e, 0x66, 0xf0, 0x1e, 0xdd, 0x7b, 0xcf, 0x3d, 0xf7, 0xdc, - 0x73, 0xcf, 0x39, 0xf7, 0x9c, 0xf3, 0xde, 0x22, 0x0d, 0xd1, 0x8f, 0x89, - 0x0c, 0xa4, 0xa3, 0xdb, 0xd0, 0x69, 0xf8, 0xf7, 0x13, 0xa6, 0x9f, 0x3e, - 0x06, 0x1f, 0x7d, 0xf7, 0x6d, 0xf2, 0xdf, 0x57, 0xaa, 0x60, 0xf1, 0x53, - 0x94, 0xe0, 0x82, 0x22, 0xec, 0xea, 0xc8, 0x26, 0x5f, 0xf6, 0xa4, 0xc8, - 0x3f, 0xfd, 0x55, 0xfd, 0x35, 0xe4, 0x3a, 0xb9, 0x00, 0xcc, 0xbe, 0xdb, - 0x85, 0x0c, 0xa5, 0x17, 0x95, 0x0c, 0x4e, 0x3a, 0x42, 0x0d, 0x05, 0x93, - 0x02, 0xbd, 0x37, 0xd2, 0xcf, 0x9d, 0x51, 0xf3, 0xad, 0x43, 0x11, 0xf3, - 0x29, 0xc2, 0x1c, 0xdf, 0x91, 0x69, 0xc6, 0x37, 0x5f, 0x9b, 0x5e, 0x7c, - 0x8b, 0xa7, 0x19, 0xdf, 0x66, 0x7d, 0x6a, 0xf8, 0xf8, 0xf8, 0x9b, 0xcc, - 0x29, 0x8d, 0x0f, 0x91, 0xb7, 0xbc, 0x0b, 0xa8, 0xce, 0x5b, 0x7c, 0xeb, - 0xfa, 0x99, 0x68, 0xe8, 0x9b, 0x18, 0x25, 0xc0, 0x47, 0x3b, 0x86, 0xde, - 0xf8, 0x71, 0x8f, 0x96, 0xdb, 0x8d, 0x87, 0x00, 0x5c, 0xb8, 0x6b, 0xf6, - 0xca, 0x15, 0x88, 0xb4, 0x57, 0x78, 0xfb, 0x7b, 0x77, 0x6b, 0x05, 0xdc, - 0x9e, 0x1f, 0x84, 0xf1, 0x77, 0x5e, 0xf3, 0xea, 0xc5, 0xf3, 0xe8, 0xf8, - 0x41, 0xd6, 0xde, 0xb4, 0x5b, 0xcb, 0x3f, 0x86, 0xc7, 0x0f, 0x72, 0xfc, - 0xff, 0x4c, 0xc7, 0x0f, 0x8a, 0xf8, 0xf3, 0x5b, 0x31, 0xdc, 0xbb, 0xfe, - 0xe2, 0xc4, 0x79, 0x17, 0xd1, 0xf1, 0x5b, 0x59, 0xfb, 0xd5, 0x6f, 0x68, - 0xbd, 0x7b, 0xf0, 0x78, 0x80, 0xfb, 0x56, 0xdc, 0xf8, 0xec, 0x5d, 0x49, - 0x3a, 0x9e, 0xb7, 0xdf, 0xfb, 0x6b, 0xad, 0x6f, 0x14, 0x8f, 0xdf, 0xe6, - 0xe1, 0xd7, 0xc8, 0xf8, 0x6d, 0x12, 0xfd, 0x00, 0x17, 0x5e, 0xfe, 0xaf, - 0xf9, 0xcb, 0x2c, 0x3a, 0x9e, 0xb7, 0xbf, 0x74, 0x39, 0xea, 0x85, 0xf9, - 0x87, 0x30, 0xdc, 0x9f, 0x7b, 0xd5, 0x69, 0xa6, 0xeb, 0xeb, 0x1f, 0x62, - 0xed, 0x3f, 0xbb, 0xe5, 0x21, 0x0b, 0xe3, 0x2f, 0x02, 0xdc, 0x97, 0x19, - 0xc9, 0xe7, 0x5a, 0xe9, 0x78, 0xde, 0xbe, 0xf2, 0x0b, 0x0f, 0xed, 0x80, - 0xf9, 0x87, 0x81, 0x7e, 0x6b, 0x8d, 0x9d, 0x61, 0xeb, 0x1f, 0x66, 0xed, - 0x5d, 0x43, 0x0f, 0x59, 0x30, 0x3f, 0xc0, 0x8e, 0x69, 0xe6, 0xac, 0x0c, - 0x1d, 0xcf, 0xdb, 0xff, 0xe8, 0xd9, 0x87, 0x76, 0xc0, 0xfc, 0x23, 0xa6, - 0xbf, 0x1f, 0x18, 0x5f, 0xbf, 0x04, 0x17, 0x25, 0xb8, 0x22, 0xc1, 0xf9, - 0xed, 0xd2, 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0xf3, 0x3b, 0x80, - 0xbe, 0xe6, 0xb5, 0xb7, 0xb5, 0xd9, 0xb9, 0xa5, 0x4f, 0xe2, 0xf1, 0x00, - 0x17, 0xf2, 0x5f, 0x30, 0x2f, 0xd8, 0xbc, 0x05, 0xd6, 0x57, 0x04, 0xb8, - 0xb7, 0x65, 0xfb, 0x3d, 0xcd, 0xe7, 0x91, 0xf6, 0x0a, 0x6f, 0xdf, 0xb8, - 0x7b, 0x0b, 0xac, 0x2f, 0xff, 0x30, 0xf0, 0xa7, 0xed, 0xa0, 0x66, 0x2e, - 0xa6, 0xe3, 0x1f, 0x66, 0xed, 0x9b, 0xbf, 0xb7, 0x05, 0xd6, 0x57, 0x04, - 0xb8, 0xbf, 0x4d, 0xcb, 0x59, 0x97, 0xd3, 0xf1, 0xbc, 0x7d, 0xf7, 0x1b, - 0x5b, 0x2c, 0x2c, 0x1f, 0xf9, 0xaf, 0x53, 0x7a, 0x16, 0xb4, 0xd9, 0x94, - 0x7e, 0x02, 0x37, 0x66, 0x90, 0xb5, 0xf1, 0x36, 0x42, 0x3f, 0x6b, 0x5f, - 0xc2, 0xda, 0x2b, 0x04, 0x7e, 0x44, 0xe3, 0xed, 0xf9, 0x47, 0xa4, 0xf5, - 0x4b, 0x70, 0x51, 0x82, 0x2b, 0x12, 0x9c, 0xdf, 0x29, 0x8d, 0x97, 0xe0, - 0xa2, 0x04, 0x57, 0x24, 0x38, 0xbf, 0x4b, 0x1a, 0x2f, 0xc1, 0x45, 0x09, - 0xae, 0x48, 0x70, 0xfe, 0x51, 0x69, 0xbc, 0x04, 0x17, 0x25, 0xb8, 0x22, - 0xc1, 0xf9, 0x6f, 0x48, 0xe3, 0x25, 0xb8, 0x28, 0xc1, 0x15, 0x09, 0xce, - 0x3b, 0x18, 0x76, 0x37, 0xbd, 0x97, 0xe4, 0xe3, 0x01, 0x2e, 0xcf, 0xfb, - 0xd9, 0xd7, 0xf8, 0x78, 0x80, 0x4b, 0xbf, 0x39, 0x3c, 0x62, 0xb0, 0xf1, - 0x00, 0x17, 0x5e, 0xf8, 0xe8, 0x43, 0x06, 0xe7, 0x3b, 0x31, 0x9c, 0xdb, - 0xb5, 0xb4, 0xc1, 0x61, 0xe3, 0x01, 0xee, 0xef, 0x9e, 0x77, 0x1f, 0x83, - 0x8b, 0x00, 0xf7, 0xce, 0xd9, 0xbd, 0x6b, 0x35, 0x1b, 0x0f, 0x70, 0xfe, - 0x27, 0xdb, 0x8f, 0x33, 0x38, 0xdf, 0x25, 0xd1, 0x2f, 0xc1, 0x45, 0x09, - 0xae, 0x48, 0x70, 0x7e, 0xb5, 0x34, 0x5e, 0x82, 0x8b, 0x12, 0x5c, 0x91, - 0xe0, 0x7c, 0xb7, 0x34, 0x5e, 0x82, 0x8b, 0x12, 0x5c, 0x91, 0xe0, 0xfc, - 0x1a, 0x69, 0xbc, 0x04, 0x17, 0x25, 0xb8, 0x22, 0xc1, 0xf9, 0xb5, 0xd2, - 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0xf3, 0x57, 0x48, 0xe3, 0x25, - 0xb8, 0x28, 0xc1, 0x15, 0x09, 0xce, 0xaf, 0x83, 0xfd, 0xf9, 0xc3, 0x37, - 0xf8, 0x7e, 0xf6, 0x03, 0x7c, 0xf4, 0xab, 0x6f, 0x73, 0xb8, 0x48, 0xda, - 0x1f, 0x7f, 0x87, 0xc3, 0x15, 0xd2, 0xfe, 0x83, 0xf7, 0xbd, 0xfd, 0x5f, - 0x0f, 0xe7, 0xff, 0xf2, 0xbf, 0x3e, 0xce, 0xc7, 0x13, 0xf8, 0xa6, 0xef, - 0x73, 0xb8, 0x48, 0xe0, 0x07, 0x86, 0x39, 0x5c, 0x01, 0xb8, 0xf2, 0xf4, - 0xa3, 0x1c, 0xce, 0x6f, 0x00, 0xf8, 0xe5, 0x51, 0x6f, 0x3c, 0x81, 0x7f, - 0xfe, 0x2d, 0x6f, 0x3c, 0xc0, 0x68, 0xe6, 0xdc, 0x63, 0x7c, 0x3c, 0xc0, - 0xa3, 0x4b, 0x2f, 0xe0, 0x70, 0xfe, 0x33, 0x18, 0xb6, 0xbb, 0x4c, 0x0e, - 0xf7, 0x03, 0x5c, 0xbc, 0x3d, 0xcb, 0xe1, 0x22, 0xc0, 0xce, 0x8e, 0x9c, - 0x37, 0x1e, 0xe0, 0xa3, 0xcf, 0x9f, 0xed, 0x8d, 0xef, 0x01, 0xfc, 0xa5, - 0x57, 0xbd, 0xf5, 0xf7, 0x50, 0xfe, 0x54, 0xf8, 0x78, 0x09, 0xae, 0x48, - 0x70, 0x7e, 0xa3, 0x08, 0xf7, 0x4b, 0x70, 0x51, 0x82, 0x2b, 0x12, 0x9c, - 0xbf, 0x52, 0x1a, 0x2f, 0xc1, 0x45, 0x09, 0xae, 0x48, 0x70, 0xfe, 0xb3, - 0xd2, 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0x45, 0xff, 0xae, 0xda, - 0x3f, 0x98, 0x19, 0x84, 0x6b, 0xfa, 0x1b, 0x36, 0xff, 0xa6, 0x31, 0xa7, - 0x92, 0x4d, 0x36, 0x43, 0xf3, 0x9c, 0xcc, 0x1a, 0xfe, 0x4a, 0xbf, 0xe6, - 0x04, 0xe4, 0x93, 0xe2, 0x4b, 0x24, 0xb0, 0xfe, 0x07, 0x9f, 0x1b, 0xb7, - 0xdf, 0x98, 0x60, 0x6d, 0x1f, 0xcd, 0x41, 0x76, 0x6f, 0x6d, 0x7c, 0x6a, - 0xf4, 0xb3, 0xb3, 0x51, 0xfe, 0x98, 0x7e, 0x36, 0xab, 0xfb, 0x53, 0xd3, - 0x0a, 0x17, 0x6b, 0xef, 0x8f, 0x1a, 0xcc, 0xd6, 0x57, 0x89, 0x58, 0x5f, - 0xcd, 0xf9, 0x6a, 0x8c, 0xaf, 0x79, 0x5f, 0x51, 0x9c, 0xcf, 0xf5, 0x74, - 0x95, 0xc3, 0xe5, 0x27, 0xcb, 0xee, 0x2b, 0x9b, 0x70, 0xab, 0xe6, 0xdd, - 0x67, 0x10, 0xb2, 0x48, 0xbb, 0xaf, 0x9c, 0x6d, 0xb4, 0xef, 0x90, 0x36, - 0x88, 0x72, 0x25, 0x64, 0xb5, 0xd0, 0xfe, 0xf6, 0x56, 0xdc, 0x1f, 0x5d, - 0xa8, 0x33, 0xd4, 0x1f, 0x87, 0xcb, 0x4f, 0x46, 0xc4, 0x8f, 0x5e, 0x67, - 0x4d, 0x13, 0x0c, 0xfe, 0xdd, 0xee, 0x5f, 0x2d, 0x7e, 0x9d, 0x86, 0x4f, - 0xec, 0xfc, 0x9f, 0x7c, 0x78, 0x7a, 0xe9, 0xb1, 0x91, 0x14, 0x7f, 0xc0, - 0x7f, 0xf8, 0x83, 0xd6, 0x40, 0x7f, 0xa6, 0x7f, 0xbd, 0x76, 0xf4, 0x43, - 0x24, 0xca, 0x77, 0x2e, 0x23, 0xc2, 0x70, 0xa2, 0x92, 0xc8, 0x3f, 0x57, - 0x78, 0x50, 0x3a, 0x3f, 0xd4, 0xd5, 0xd9, 0x41, 0xf9, 0x8b, 0xf1, 0xa7, - 0x5b, 0xe9, 0xf9, 0xb2, 0xf5, 0xa0, 0x3e, 0x76, 0x8f, 0x9f, 0x0c, 0x7d, - 0x5c, 0x1b, 0x9e, 0x11, 0x00, 0xeb, 0x99, 0x9f, 0xf7, 0x77, 0x9b, 0xd4, - 0xfa, 0xa3, 0xd9, 0x8a, 0xf8, 0x2f, 0x50, 0xc4, 0xbf, 0x42, 0x11, 0xff, - 0x3a, 0x45, 0xfc, 0xd7, 0x29, 0xe2, 0xff, 0x92, 0x22, 0xfe, 0x7b, 0x15, - 0xf1, 0x6f, 0x55, 0xc4, 0xbf, 0x5b, 0x11, 0xff, 0xd3, 0x8a, 0xf8, 0xbf, - 0xab, 0x88, 0xff, 0xef, 0x15, 0xf1, 0xff, 0x83, 0x22, 0xfe, 0x37, 0x15, - 0xf1, 0x4f, 0x28, 0xe2, 0xff, 0x50, 0x11, 0x7f, 0x42, 0x53, 0xc3, 0x7f, - 0xa6, 0x5a, 0x7f, 0x34, 0x57, 0x11, 0x7f, 0x5e, 0x11, 0xff, 0x2a, 0x45, - 0xfc, 0x1b, 0x15, 0xf1, 0xdf, 0xac, 0x88, 0xff, 0x4e, 0x45, 0xfc, 0xf7, - 0x29, 0xe2, 0xdf, 0xae, 0x88, 0xff, 0x71, 0x45, 0xfc, 0xcf, 0x28, 0xe2, - 0xff, 0x9e, 0x22, 0xfe, 0x57, 0x14, 0xf1, 0x1f, 0x55, 0xc4, 0xff, 0xaf, - 0x8a, 0xf8, 0xdf, 0x57, 0xc4, 0xff, 0x5b, 0x45, 0xfc, 0x69, 0x5d, 0x0d, - 0x7f, 0x8b, 0x5a, 0x7f, 0xb4, 0x50, 0x11, 0xff, 0x52, 0x45, 0xfc, 0xdd, - 0x8a, 0xf8, 0xaf, 0x56, 0xc4, 0x7f, 0x9b, 0x22, 0xfe, 0xcd, 0x8a, 0xf8, - 0x1f, 0x52, 0xc4, 0xbf, 0x53, 0x11, 0xff, 0xb7, 0x15, 0xf1, 0xff, 0xa5, - 0x22, 0xfe, 0x97, 0x14, 0xf1, 0xff, 0x48, 0x11, 0xff, 0x1b, 0x8a, 0xf8, - 0x7f, 0xa1, 0x88, 0xff, 0xbf, 0x15, 0xf1, 0x23, 0x43, 0x0d, 0xff, 0x0c, - 0xb5, 0xfe, 0xee, 0x6c, 0x45, 0xfc, 0x17, 0x2a, 0xe2, 0x5f, 0xa1, 0x88, - 0x7f, 0xbd, 0x22, 0xfe, 0xeb, 0x14, 0xf1, 0xdf, 0xae, 0x88, 0xff, 0x5e, - 0x45, 0xfc, 0xdb, 0x14, 0xf1, 0xef, 0x56, 0xc4, 0x5f, 0x30, 0x4e, 0xc5, - 0xfd, 0xc3, 0xdd, 0x88, 0x2e, 0xfe, 0x24, 0x7c, 0xfd, 0xe5, 0x2a, 0x44, - 0xe2, 0x09, 0x47, 0x58, 0x06, 0x78, 0x53, 0x82, 0xde, 0x9f, 0xb2, 0x2c, - 0xbe, 0x30, 0x61, 0x02, 0xcc, 0xf3, 0x75, 0x2f, 0x5e, 0xc5, 0xe7, 0xdb, - 0xc5, 0xe3, 0x0b, 0x26, 0xeb, 0xcf, 0xef, 0x63, 0x1a, 0x1a, 0xd4, 0x0a, - 0xf4, 0xda, 0xf5, 0x24, 0xbe, 0xb5, 0x2d, 0x40, 0x65, 0xd3, 0xcf, 0xd7, - 0x16, 0x9c, 0xcb, 0xc8, 0x55, 0x0c, 0xff, 0xa9, 0xb9, 0xc3, 0x40, 0x6d, - 0x40, 0x4a, 0xe1, 0x90, 0x36, 0xc8, 0xf1, 0xbf, 0x35, 0x4e, 0xf1, 0x5b, - 0x48, 0x43, 0x0e, 0x84, 0xf2, 0xaf, 0x1f, 0x40, 0x94, 0x3e, 0x91, 0x7e, - 0xde, 0xbf, 0xf3, 0x6b, 0xe1, 0xeb, 0xb7, 0x2d, 0x84, 0x9c, 0xb4, 0xdd, - 0x88, 0x26, 0x2f, 0x45, 0xe5, 0x14, 0xda, 0x8f, 0x74, 0x16, 0xef, 0xb9, - 0x94, 0x04, 0x60, 0xfa, 0xbc, 0x0b, 0x76, 0x87, 0xc3, 0xe8, 0x71, 0x66, - 0x61, 0x7a, 0x9e, 0xfa, 0xd1, 0xfc, 0x96, 0xe4, 0xa2, 0xe6, 0x11, 0xd7, - 0x42, 0xbb, 0x06, 0xf7, 0x90, 0x54, 0xc2, 0x84, 0x11, 0x5c, 0x3f, 0xa7, - 0x0f, 0x69, 0x1b, 0x0f, 0xd1, 0x7c, 0xf4, 0x26, 0x9d, 0xac, 0x9f, 0x05, - 0xfb, 0x9c, 0x46, 0xc2, 0x87, 0x3e, 0x88, 0xe2, 0x10, 0xfa, 0xad, 0x3c, - 0xc2, 0x73, 0xf3, 0x78, 0x13, 0xba, 0x96, 0xe5, 0xab, 0xad, 0x6d, 0x63, - 0x8d, 0x20, 0x1c, 0xed, 0x4c, 0x48, 0xaa, 0xf1, 0x37, 0x1c, 0x64, 0xf8, - 0x85, 0xf8, 0x50, 0x27, 0xc3, 0x0f, 0xcb, 0x71, 0xf4, 0x6a, 0xfc, 0xd7, - 0x31, 0xfc, 0xe9, 0xc1, 0x31, 0x20, 0xc1, 0x3d, 0x2f, 0x12, 0xbf, 0x26, - 0xe2, 0x77, 0xb2, 0x07, 0xdb, 0xdb, 0xd8, 0xfe, 0x61, 0xd8, 0xaa, 0xe2, - 0x0f, 0xfd, 0x5c, 0xcf, 0xf0, 0x57, 0xe1, 0xf3, 0xe4, 0x61, 0x82, 0x8d, - 0xdf, 0x65, 0x90, 0xf5, 0x33, 0x7c, 0xbc, 0xff, 0xa7, 0xf6, 0xd3, 0xfe, - 0xa6, 0x84, 0x1f, 0xa1, 0x9d, 0xdc, 0xfd, 0x27, 0xfc, 0x76, 0xd0, 0xeb, - 0x9a, 0x03, 0x53, 0xb5, 0xdc, 0xa5, 0x43, 0xbc, 0x8b, 0xd1, 0xe3, 0xde, - 0xc0, 0xf3, 0xfd, 0x64, 0x3f, 0x47, 0x1a, 0x20, 0x9e, 0xea, 0x26, 0xb0, - 0x10, 0x75, 0x6e, 0x3c, 0xa8, 0xb5, 0xe1, 0x5d, 0x9f, 0xdc, 0x6c, 0x94, - 0x87, 0xb5, 0xb1, 0x9b, 0xaf, 0x74, 0xcd, 0x32, 0x5a, 0xae, 0x6b, 0xe8, - 0xb9, 0xc4, 0x8f, 0x11, 0xda, 0x8e, 0xf7, 0xeb, 0x60, 0x36, 0xe7, 0xd3, - 0x57, 0x4d, 0x3f, 0x97, 0x77, 0xbe, 0xfe, 0x23, 0xda, 0xca, 0x10, 0xfa, - 0x79, 0x7f, 0x46, 0xbf, 0x7b, 0x0b, 0xa7, 0x07, 0xe4, 0xed, 0x2c, 0xa0, - 0x97, 0xee, 0x07, 0xd0, 0x9b, 0x84, 0x5a, 0x86, 0xc3, 0x14, 0x46, 0x68, - 0x79, 0x8a, 0x0d, 0x49, 0x86, 0xdf, 0x57, 0xbc, 0xf3, 0xa7, 0xd1, 0xf3, - 0xd4, 0xc3, 0xcf, 0x17, 0xe1, 0x07, 0xe7, 0xd7, 0xe7, 0x23, 0xf8, 0x6f, - 0xa1, 0x8d, 0x06, 0xa5, 0x97, 0xae, 0x8f, 0xd3, 0xb7, 0x26, 0xb2, 0xbf, - 0xc8, 0x4f, 0x4f, 0x5e, 0xa5, 0xf3, 0x75, 0x46, 0x42, 0x58, 0x6f, 0xaf, - 0x46, 0x03, 0x31, 0x7d, 0x7e, 0x7c, 0x71, 0x42, 0x0f, 0x8b, 0x27, 0x02, - 0xab, 0x1d, 0x40, 0xba, 0x6f, 0x2e, 0x5b, 0x7f, 0x0f, 0x27, 0x29, 0x51, - 0xcf, 0x7d, 0x2d, 0x82, 0xdf, 0xe8, 0x8b, 0x8c, 0xde, 0x93, 0xbd, 0x3e, - 0x0b, 0xeb, 0x33, 0xc2, 0xcf, 0xc9, 0xfb, 0xe2, 0xf6, 0x1f, 0xdd, 0xee, - 0xd5, 0x9f, 0x84, 0xd3, 0xbf, 0xbf, 0x89, 0xf6, 0x87, 0x5e, 0x2b, 0x4d, - 0xdb, 0x00, 0x79, 0x2d, 0x27, 0xd0, 0x18, 0xd5, 0x17, 0xe3, 0x4d, 0x9e, - 0x7e, 0x44, 0x4d, 0xc8, 0x3b, 0xaa, 0x0a, 0xfc, 0x79, 0x1b, 0xf9, 0xf4, - 0x40, 0x42, 0x13, 0x75, 0x70, 0x79, 0xf3, 0xce, 0x93, 0x1e, 0xa4, 0xff, - 0xbe, 0x74, 0x7d, 0xf6, 0x82, 0xf7, 0xff, 0x7c, 0xa3, 0x5a, 0x7f, 0xf9, - 0x7c, 0x6c, 0xaa, 0xc1, 0x9f, 0xf9, 0x27, 0x88, 0xff, 0x0e, 0x0f, 0x7f, - 0x0f, 0x5f, 0x6f, 0x22, 0x3c, 0xbe, 0xbd, 0x53, 0xb2, 0x57, 0xae, 0x89, - 0x3d, 0x29, 0x48, 0xa9, 0x69, 0x2f, 0x1d, 0x42, 0x83, 0x55, 0xf6, 0x14, - 0x1b, 0x88, 0x26, 0x62, 0x1f, 0xe7, 0x31, 0x7e, 0xca, 0xf8, 0xcc, 0x40, - 0xfa, 0xb1, 0x2a, 0xff, 0x14, 0xb0, 0xaf, 0xc7, 0x88, 0x7d, 0xb5, 0xf1, - 0xae, 0x3a, 0x67, 0xec, 0x4d, 0x20, 0x3b, 0x8f, 0x4a, 0x29, 0xbc, 0xff, - 0xe8, 0x06, 0x26, 0x8d, 0x6e, 0x33, 0xec, 0xb7, 0x8b, 0x8e, 0x74, 0x3a, - 0x4d, 0x81, 0xf3, 0xcf, 0x04, 0xf8, 0x57, 0x7f, 0xc1, 0xd6, 0x47, 0x66, - 0x1b, 0x4e, 0x83, 0xfc, 0xd8, 0x01, 0x7b, 0x8a, 0xf6, 0x81, 0xfa, 0xa6, - 0xf4, 0x61, 0xa1, 0x35, 0xeb, 0x8f, 0x27, 0x9f, 0x19, 0xeb, 0x3f, 0x78, - 0xe7, 0xe5, 0xa7, 0x0b, 0x42, 0xd7, 0xcf, 0xf7, 0xc3, 0xf9, 0x52, 0x52, - 0x38, 0x0f, 0x2e, 0x72, 0x8c, 0xa0, 0xbd, 0xd0, 0xdd, 0xb5, 0x46, 0xf0, - 0x7c, 0xf2, 0xfe, 0x6c, 0x79, 0xc5, 0xaf, 0x9c, 0x83, 0x42, 0xe5, 0x83, - 0x7f, 0x79, 0x4a, 0xaf, 0x8f, 0xbe, 0x68, 0x7a, 0x3a, 0x8d, 0x93, 0x8b, - 0xbf, 0xeb, 0x24, 0xe3, 0x5f, 0x7d, 0x92, 0xf1, 0x7f, 0x86, 0xed, 0x0f, - 0x2a, 0x75, 0xea, 0x71, 0xfe, 0xe3, 0xeb, 0x92, 0x7d, 0x8a, 0x3a, 0x2f, - 0x8b, 0xc2, 0xcf, 0x0b, 0x3f, 0x0f, 0xce, 0x7b, 0x92, 0xbf, 0x39, 0x91, - 0x02, 0x7c, 0x39, 0x6c, 0x7f, 0x89, 0xbd, 0x68, 0xd9, 0x9c, 0x2a, 0x6d, - 0xf5, 0xf5, 0xd5, 0xbf, 0x7d, 0x8e, 0xeb, 0xcf, 0x5d, 0x46, 0x53, 0x72, - 0x08, 0xeb, 0xb2, 0xe3, 0xc9, 0xc2, 0x08, 0x1e, 0x4f, 0x68, 0x1d, 0x6f, - 0xf0, 0xf5, 0x67, 0x83, 0x16, 0xb4, 0x2f, 0x30, 0x7a, 0x71, 0x5a, 0x38, - 0xff, 0xdc, 0xbe, 0x27, 0x51, 0x99, 0x9e, 0x2f, 0x62, 0xaf, 0x27, 0x2f, - 0xa1, 0xf4, 0x62, 0x7d, 0xbc, 0x60, 0x36, 0x0c, 0x67, 0xf4, 0xf3, 0x7a, - 0xc8, 0x51, 0x03, 0x72, 0xc0, 0xf8, 0xbc, 0x5e, 0x1f, 0xaf, 0x9f, 0xb9, - 0xff, 0xb7, 0xfa, 0x32, 0x41, 0x9e, 0x7f, 0xe0, 0xed, 0xcf, 0xc3, 0xdc, - 0x9f, 0xce, 0x0a, 0xfe, 0x22, 0xeb, 0xcf, 0xce, 0x43, 0x7f, 0x6a, 0x6c, - 0x3e, 0x1b, 0xff, 0x1a, 0x12, 0xfa, 0xa3, 0xc3, 0x5a, 0x10, 0xe6, 0xfa, - 0xcf, 0xbd, 0xc7, 0x10, 0xec, 0x1f, 0xe7, 0x97, 0x85, 0x5e, 0xd3, 0x9a, - 0x60, 0xab, 0xdd, 0x63, 0xd4, 0x7f, 0x26, 0xfa, 0x62, 0x3c, 0xe3, 0xf3, - 0x2b, 0x23, 0xf0, 0x0b, 0x88, 0x5b, 0x2e, 0xec, 0xbf, 0xe7, 0x7f, 0x50, - 0x7e, 0x11, 0xfd, 0xe5, 0xf3, 0x0b, 0xc8, 0x9f, 0x9b, 0x0d, 0xf0, 0x0b, - 0x16, 0x50, 0xb8, 0xb2, 0xd1, 0x1f, 0x7f, 0x8e, 0x92, 0x3d, 0xe3, 0x5f, - 0x0e, 0x7b, 0xfc, 0x5a, 0xcf, 0xfd, 0x8b, 0x26, 0xb2, 0x7e, 0x56, 0xb7, - 0x98, 0x7a, 0x85, 0xf3, 0xa7, 0x41, 0x0f, 0xb6, 0xc3, 0xf4, 0x74, 0xbd, - 0x8b, 0x04, 0x79, 0xe7, 0xfc, 0x60, 0xfc, 0x72, 0x38, 0xbf, 0xa8, 0xa6, - 0x1c, 0x4f, 0xfb, 0xfc, 0x48, 0x57, 0xc9, 0xcf, 0x92, 0x74, 0xa8, 0xfc, - 0x53, 0x7e, 0x60, 0x7e, 0x3a, 0x2d, 0x3e, 0x3f, 0x80, 0xbd, 0x1d, 0x0d, - 0x01, 0x7e, 0xb0, 0x75, 0x3c, 0x6b, 0xf2, 0xf1, 0x37, 0x4c, 0x89, 0x1f, - 0x6f, 0x7a, 0xfc, 0x78, 0x8d, 0xcf, 0xdf, 0x44, 0xfd, 0x63, 0xc6, 0x8f, - 0x17, 0x38, 0x3f, 0x1e, 0x16, 0xda, 0xeb, 0xe4, 0x07, 0x1a, 0xe2, 0xfc, - 0x20, 0x02, 0x38, 0xde, 0xe8, 0xf3, 0xa3, 0xb1, 0x4a, 0x3e, 0x96, 0xc5, - 0xc9, 0x07, 0xee, 0x4d, 0xee, 0x13, 0xfc, 0x3c, 0x41, 0x31, 0xcb, 0xac, - 0x00, 0x3f, 0xb8, 0xbd, 0x7a, 0x0e, 0xdc, 0x11, 0x38, 0x4f, 0x6d, 0x53, - 0xe2, 0xc7, 0x2f, 0xab, 0xe4, 0x63, 0xd3, 0x0c, 0xaa, 0x3f, 0x98, 0xbf, - 0xd9, 0x82, 0xd7, 0x69, 0x70, 0xfe, 0x0f, 0xe1, 0x1d, 0xc9, 0x83, 0x5f, - 0x84, 0xc7, 0xaf, 0xd7, 0x83, 0xfd, 0xeb, 0x95, 0x97, 0x7a, 0xf9, 0x03, - 0xa3, 0x97, 0x89, 0xfa, 0x46, 0x90, 0x17, 0x4f, 0x1f, 0x73, 0xfe, 0x90, - 0xd6, 0x3d, 0x16, 0xd0, 0x87, 0xc0, 0x1f, 0xc4, 0x5e, 0xc9, 0xee, 0xe6, - 0xe0, 0xf8, 0x1b, 0xa7, 0xc4, 0x9f, 0xff, 0xf5, 0xf5, 0x0d, 0x9f, 0x3f, - 0x17, 0xb8, 0x3f, 0xda, 0x86, 0xc5, 0xed, 0x6d, 0x83, 0x11, 0x6c, 0xaf, - 0x93, 0x1f, 0xae, 0xc7, 0x0f, 0xd2, 0x3c, 0x9e, 0xf5, 0xf9, 0x91, 0xad, - 0x92, 0x97, 0x15, 0xa2, 0xbc, 0xc4, 0xea, 0x5f, 0x70, 0x50, 0x16, 0xcc, - 0x90, 0xf4, 0xaf, 0xfd, 0x59, 0xcb, 0x1f, 0xdf, 0x32, 0x25, 0x7e, 0xb0, - 0x2a, 0x8b, 0x7e, 0x7f, 0xff, 0x27, 0x66, 0x04, 0xee, 0xb7, 0x39, 0x9f, - 0x1f, 0x9e, 0xbe, 0x9d, 0x11, 0xe6, 0x3f, 0x72, 0x7e, 0xfc, 0xe3, 0xb5, - 0x11, 0xf1, 0x06, 0xf2, 0xcf, 0x78, 0x82, 0xf3, 0x83, 0xf1, 0xab, 0x34, - 0x18, 0xa9, 0x9f, 0xd7, 0x53, 0xfd, 0x5c, 0xba, 0x8f, 0xc5, 0x37, 0xb8, - 0xbc, 0x4c, 0x04, 0xef, 0x7b, 0x6e, 0xe4, 0x78, 0x0d, 0xf6, 0x6b, 0xc4, - 0x42, 0xa5, 0x45, 0x90, 0xe6, 0x1e, 0x0b, 0xdc, 0xc7, 0xc8, 0x78, 0xe8, - 0xee, 0xb4, 0x8a, 0xfa, 0xe9, 0xfc, 0x06, 0xdf, 0x3e, 0x3f, 0xce, 0xdc, - 0xe5, 0x24, 0x5a, 0xbe, 0x64, 0xaf, 0x81, 0xb6, 0xf7, 0x3b, 0x86, 0xb7, - 0x18, 0x47, 0xd7, 0xb0, 0x3f, 0x8c, 0xda, 0xec, 0xec, 0xb6, 0x28, 0x7f, - 0xb2, 0xb0, 0x15, 0x5b, 0x12, 0x67, 0x99, 0x9d, 0xca, 0x65, 0x21, 0x83, - 0x8e, 0x9e, 0xd1, 0x5f, 0x19, 0xdb, 0x82, 0xff, 0xde, 0xfc, 0xca, 0x3d, - 0x84, 0xa1, 0xc3, 0xcd, 0xf6, 0x73, 0x54, 0x18, 0xac, 0x0b, 0xe9, 0x78, - 0x9b, 0xfb, 0xab, 0x78, 0x72, 0xe2, 0xaf, 0xf2, 0x78, 0x11, 0x3e, 0xad, - 0xa1, 0xfb, 0xc9, 0xda, 0x9d, 0x01, 0xe1, 0x3e, 0xbb, 0x9a, 0xd9, 0x4b, - 0xce, 0x8f, 0xe6, 0xfd, 0xe2, 0x7d, 0x4f, 0x0f, 0xdc, 0xf7, 0x82, 0xf2, - 0xcc, 0xf5, 0x4f, 0xf7, 0xea, 0xcb, 0x82, 0xf7, 0x47, 0x87, 0xf3, 0x17, - 0x79, 0x06, 0x7f, 0x00, 0x05, 0xef, 0x4b, 0x9c, 0xdf, 0xf8, 0xbc, 0x30, - 0x89, 0x19, 0x98, 0xe9, 0xdb, 0xa3, 0x71, 0xcb, 0x97, 0x7f, 0xab, 0x4a, - 0x1f, 0xe4, 0x63, 0xf4, 0x81, 0xa7, 0xaf, 0xb8, 0x3e, 0x20, 0xd2, 0xb9, - 0xb7, 0x21, 0xa8, 0x0f, 0xf6, 0x4c, 0x83, 0x3e, 0x58, 0x69, 0xc8, 0xfa, - 0x60, 0x82, 0xd2, 0xcf, 0xd7, 0xb3, 0xef, 0xd8, 0x4c, 0x85, 0xf3, 0x5f, - 0xda, 0x5e, 0x5b, 0x1f, 0x26, 0xeb, 0xb2, 0x17, 0x35, 0xe9, 0x9f, 0xcd, - 0xbf, 0x9b, 0x61, 0xeb, 0x75, 0xc1, 0xde, 0x14, 0xed, 0x14, 0xdc, 0xa7, - 0xa8, 0xbf, 0x39, 0x90, 0x9c, 0x0a, 0x7f, 0xae, 0x34, 0xaa, 0xec, 0x89, - 0x26, 0xf0, 0x27, 0x37, 0xc0, 0x60, 0x4b, 0xf2, 0x7f, 0x25, 0x7c, 0x74, - 0xad, 0xae, 0xc1, 0xe3, 0x13, 0xc4, 0x3f, 0xc0, 0xfe, 0xaa, 0x95, 0x47, - 0x76, 0x12, 0xec, 0x61, 0xd6, 0xb5, 0xc0, 0x1e, 0xda, 0xef, 0x33, 0x79, - 0x76, 0x34, 0x88, 0x7f, 0x8e, 0xa0, 0xc9, 0x55, 0xe7, 0xe3, 0xfb, 0xa7, - 0x83, 0x36, 0xea, 0xcb, 0x89, 0xc8, 0xdf, 0xad, 0x95, 0xb1, 0x3e, 0xc0, - 0xda, 0x6e, 0x5f, 0x8f, 0x89, 0x9e, 0xfa, 0xea, 0x1e, 0x1a, 0x1f, 0x85, - 0x91, 0x7d, 0xd6, 0xfe, 0x04, 0xa0, 0xbe, 0x3e, 0x24, 0x5e, 0x8a, 0xfd, - 0x69, 0xae, 0x5f, 0xf5, 0xe0, 0x79, 0x79, 0x24, 0x52, 0xff, 0x48, 0xe7, - 0x43, 0x59, 0x9f, 0x67, 0x62, 0xed, 0x3f, 0x7c, 0xb5, 0x65, 0x7f, 0xc8, - 0xed, 0x69, 0xf0, 0xc7, 0x9f, 0x3d, 0x25, 0x79, 0xbe, 0xc3, 0xdb, 0x2f, - 0xcf, 0x7e, 0x35, 0x0b, 0xfb, 0x35, 0x30, 0xd0, 0xac, 0x22, 0xcf, 0x8f, - 0xd4, 0xf4, 0x07, 0xa3, 0xf4, 0x93, 0x78, 0x9e, 0xa3, 0xe8, 0xbd, 0xb7, - 0xfa, 0xfc, 0x89, 0xf4, 0xa2, 0x49, 0x15, 0x7a, 0xd1, 0xce, 0x9a, 0xe7, - 0x2f, 0x8a, 0xde, 0xfa, 0xce, 0xdf, 0x96, 0xea, 0xf3, 0x30, 0x4b, 0xa4, - 0x77, 0x60, 0x56, 0x9c, 0x7d, 0xf4, 0xf3, 0x03, 0x11, 0xfa, 0x1c, 0x7d, - 0x40, 0xe4, 0x9f, 0x1a, 0x94, 0xf1, 0x14, 0xa7, 0x9f, 0xeb, 0x6f, 0x7e, - 0x7e, 0x5a, 0xa9, 0xfc, 0xb7, 0x69, 0x58, 0x1f, 0x93, 0xf8, 0x2d, 0x56, - 0xd0, 0x7d, 0x4d, 0x29, 0x28, 0xf1, 0x4f, 0x2c, 0xa7, 0xe7, 0xe1, 0x28, - 0xad, 0xef, 0xb2, 0x6c, 0x94, 0xb4, 0x51, 0xc8, 0x79, 0xd0, 0x82, 0xe7, - 0x01, 0xc4, 0xaf, 0x09, 0xfe, 0x57, 0x58, 0xe4, 0xf9, 0x1b, 0xa0, 0x82, - 0x39, 0x3f, 0x73, 0x68, 0x23, 0x5a, 0x69, 0x05, 0xe2, 0x47, 0x5a, 0x56, - 0x63, 0xf1, 0xf1, 0xa4, 0x54, 0x3f, 0x99, 0x08, 0xb3, 0x0f, 0x74, 0x7f, - 0x9e, 0xd6, 0xfd, 0xfd, 0x08, 0xf0, 0xdb, 0x8d, 0xbb, 0x7f, 0xf1, 0xfd, - 0xe2, 0xe5, 0xc0, 0x93, 0x67, 0xd1, 0xf9, 0x3c, 0x7f, 0xa0, 0x4e, 0x7d, - 0x39, 0xcc, 0xfb, 0x9f, 0xc5, 0xe3, 0x47, 0x69, 0xf0, 0xaf, 0x1c, 0xaa, - 0x1f, 0x73, 0xd0, 0x9a, 0xb3, 0x4d, 0x64, 0x2d, 0xa1, 0xfa, 0x08, 0xad, - 0xe3, 0xf1, 0xe8, 0x63, 0x73, 0x68, 0xfc, 0x09, 0xd3, 0x9e, 0x4a, 0x81, - 0x1e, 0x75, 0x86, 0x40, 0x1e, 0x59, 0xfc, 0xd3, 0xb9, 0x4b, 0xb3, 0x63, - 0xf6, 0xbb, 0x59, 0x8a, 0xe7, 0x1f, 0xf2, 0xee, 0xbf, 0x3b, 0x78, 0x3e, - 0x08, 0x01, 0xfd, 0xbc, 0x7f, 0xd7, 0x75, 0xa2, 0xbd, 0x7e, 0xcb, 0xeb, - 0xcf, 0xe3, 0x77, 0x9b, 0x2c, 0xba, 0xfe, 0xc0, 0x78, 0xca, 0x0f, 0xc3, - 0xe3, 0x07, 0xa5, 0x27, 0x45, 0xe3, 0x77, 0xe5, 0xf8, 0xf8, 0x9d, 0x33, - 0x9f, 0xea, 0x1f, 0x1e, 0x7f, 0x28, 0x1d, 0x63, 0xf1, 0x87, 0xac, 0xa0, - 0x2f, 0xfd, 0xf8, 0x9b, 0x18, 0x2f, 0xfd, 0xee, 0x55, 0xe1, 0xf9, 0x0d, - 0xd9, 0xfe, 0xf3, 0xf5, 0xa4, 0x23, 0xe2, 0xd1, 0x9c, 0x3f, 0x8d, 0x52, - 0xfc, 0x3a, 0x53, 0x23, 0x7e, 0x9d, 0x65, 0xed, 0x39, 0x1e, 0x2c, 0x94, - 0xc6, 0xcf, 0x0a, 0xf8, 0x3b, 0xf0, 0xf9, 0x44, 0x64, 0x7e, 0x26, 0xab, - 0x89, 0xf9, 0x8d, 0xf0, 0x78, 0xf8, 0x5b, 0x57, 0x89, 0xfe, 0x7e, 0x5a, - 0x3f, 0xcb, 0x8c, 0x8b, 0x9f, 0x4b, 0xfd, 0x4b, 0x8a, 0xfd, 0x51, 0x23, - 0xeb, 0xcf, 0xe7, 0x3b, 0x83, 0xc1, 0x72, 0x7f, 0xb6, 0xbe, 0xf2, 0xfd, - 0x63, 0x1f, 0x24, 0xe2, 0xe2, 0xc9, 0x97, 0xde, 0xa2, 0x16, 0x4f, 0x7e, - 0xe7, 0x4f, 0xea, 0xcd, 0x9f, 0x7a, 0xfe, 0x9d, 0x52, 0x7c, 0xfe, 0xf2, - 0x76, 0x35, 0x7a, 0xc6, 0x75, 0xb5, 0xfe, 0x47, 0x3e, 0xad, 0x4a, 0x7f, - 0xb8, 0x3f, 0xe5, 0xe5, 0x0f, 0x24, 0xfc, 0x87, 0x6f, 0x16, 0xf8, 0x8f, - 0x0a, 0xed, 0xd9, 0xd8, 0x78, 0xed, 0x3b, 0x46, 0x38, 0x3d, 0xf5, 0xe2, - 0x77, 0xed, 0x6c, 0x6c, 0xbe, 0xe0, 0xcc, 0x3f, 0x55, 0x5e, 0x6f, 0x4a, - 0x29, 0xdf, 0x74, 0x93, 0x94, 0x9f, 0xac, 0x41, 0xcf, 0x6f, 0x35, 0xb5, - 0xfd, 0xba, 0xed, 0x49, 0x11, 0x7f, 0x2d, 0x7e, 0xa6, 0x4d, 0x35, 0xfc, - 0xab, 0x22, 0xf3, 0x3b, 0x8d, 0x52, 0xbe, 0x82, 0xdb, 0x63, 0x9a, 0xdf, - 0xe2, 0xf7, 0xa3, 0xf2, 0x47, 0x67, 0x53, 0xfb, 0xbb, 0xc7, 0x26, 0xd1, - 0xdc, 0x2b, 0xda, 0x37, 0x69, 0x61, 0xf7, 0x3f, 0x39, 0x9f, 0x9b, 0xe1, - 0xe7, 0x1d, 0x5f, 0xee, 0x1c, 0x85, 0xf5, 0xd7, 0xda, 0xef, 0x6b, 0xaf, - 0x56, 0x5b, 0xff, 0x3f, 0x3d, 0x51, 0x23, 0x1e, 0x8e, 0x16, 0xc5, 0xc5, - 0xc3, 0xf1, 0xb5, 0x82, 0xe6, 0x2f, 0xea, 0xef, 0xdf, 0x29, 0xf6, 0xaf, - 0xe4, 0x63, 0xfb, 0x23, 0xd4, 0xae, 0xa4, 0x1f, 0x35, 0xa6, 0x0f, 0xa3, - 0xd6, 0x9b, 0x59, 0xaa, 0xc6, 0x9f, 0x85, 0x33, 0x44, 0xfc, 0xff, 0x73, - 0x8b, 0x16, 0xcb, 0xff, 0xbf, 0x59, 0x5c, 0xe3, 0x3c, 0x17, 0xc4, 0xf5, - 0x6e, 0x69, 0x14, 0xcf, 0xf3, 0xbf, 0xfc, 0x19, 0xf2, 0xec, 0x15, 0xe9, - 0xdf, 0x27, 0xf6, 0x1f, 0x95, 0xfa, 0x3f, 0xfa, 0xba, 0x11, 0x4b, 0xcf, - 0x9d, 0x4b, 0xd4, 0xd6, 0x7b, 0x6d, 0x83, 0x5a, 0xff, 0x0f, 0xcf, 0x54, - 0xeb, 0xff, 0xc5, 0x4f, 0xab, 0xf5, 0xff, 0x3b, 0xc5, 0x7c, 0xe7, 0xb1, - 0xac, 0x5a, 0xff, 0xad, 0x6b, 0x15, 0xf3, 0xbb, 0xbd, 0x53, 0xab, 0x1f, - 0xe2, 0xe3, 0x2b, 0x3d, 0x6a, 0xf3, 0xfd, 0xc7, 0x51, 0x43, 0xed, 0x3c, - 0xff, 0x44, 0xad, 0xff, 0x15, 0x8a, 0xf8, 0xbf, 0xb9, 0x4a, 0x8d, 0xfe, - 0xf3, 0x9e, 0x51, 0xc3, 0xbf, 0x55, 0x51, 0x7f, 0x8f, 0x27, 0xc3, 0xfb, - 0xeb, 0x68, 0xe7, 0x21, 0x9a, 0x9f, 0x63, 0xfe, 0x27, 0xca, 0x08, 0xfe, - 0xab, 0x9f, 0x9f, 0xe0, 0xf5, 0x18, 0x11, 0xfe, 0x70, 0x69, 0x91, 0xe8, - 0x0f, 0x3b, 0xdc, 0x1f, 0x16, 0xf3, 0xd9, 0x01, 0x7f, 0x58, 0x8b, 0xbb, - 0xef, 0xfd, 0xca, 0x62, 0xf8, 0x1d, 0xf0, 0x8f, 0xf7, 0xe2, 0x11, 0x03, - 0x5a, 0x69, 0x58, 0x1b, 0x8b, 0xea, 0x3f, 0x43, 0xf1, 0x3c, 0xfe, 0x7b, - 0x52, 0xaa, 0x6f, 0x50, 0xed, 0x6f, 0xe5, 0x63, 0xf3, 0xd7, 0xaf, 0xd4, - 0xfd, 0xfe, 0x89, 0xa6, 0x29, 0xf9, 0x7f, 0x7f, 0x15, 0xe1, 0x0f, 0x79, - 0x99, 0x7a, 0xe6, 0xaf, 0x43, 0x3e, 0x27, 0x03, 0x67, 0x9d, 0xd5, 0x0f, - 0x11, 0x7b, 0xec, 0x24, 0x33, 0x41, 0xfc, 0x2a, 0xf9, 0x7d, 0x1d, 0x5d, - 0x12, 0x9b, 0xdf, 0xaf, 0xce, 0xf7, 0xee, 0x94, 0xe2, 0x5f, 0x9e, 0x3c, - 0x85, 0xc7, 0xbb, 0x24, 0xf9, 0x32, 0x99, 0x7c, 0xe5, 0x3a, 0x6b, 0xe5, - 0x7f, 0x99, 0xbc, 0xe5, 0x78, 0x42, 0x8e, 0xdb, 0xff, 0x5d, 0xc2, 0xfc, - 0x6e, 0xd7, 0x11, 0xcd, 0x69, 0x3b, 0x3b, 0x35, 0x6a, 0xd2, 0xf9, 0x1d, - 0xe4, 0xd0, 0x7a, 0xb0, 0xc9, 0xcd, 0xa8, 0xbc, 0x9f, 0xe6, 0x23, 0xf5, - 0x33, 0x88, 0x83, 0xc6, 0x9e, 0xdf, 0xba, 0x83, 0x07, 0xb0, 0xe9, 0xf3, - 0x90, 0xbd, 0x58, 0x22, 0x49, 0x8a, 0x49, 0x73, 0xdd, 0x99, 0xb6, 0x9f, - 0x6f, 0x80, 0x7d, 0xd1, 0xd1, 0x18, 0x8f, 0x47, 0x3b, 0x83, 0xbc, 0x9e, - 0x2e, 0x67, 0x91, 0x7a, 0x3a, 0xc0, 0xbf, 0xad, 0x7d, 0x0c, 0xfa, 0x27, - 0xcf, 0x0a, 0xe2, 0x3f, 0x47, 0xc4, 0xdf, 0x87, 0xdc, 0x9d, 0x80, 0xdf, - 0xd1, 0xdc, 0x02, 0xe0, 0xaf, 0x55, 0x0f, 0x12, 0x1a, 0x2f, 0xec, 0x21, - 0xf1, 0x5e, 0x9b, 0xe6, 0xaf, 0xf9, 0x56, 0x36, 0x86, 0xc9, 0x17, 0xcb, - 0xf7, 0x55, 0x3e, 0xd6, 0x79, 0xbe, 0xe2, 0xcb, 0xdc, 0xa5, 0x88, 0x88, - 0xf7, 0x00, 0x87, 0xe1, 0x8d, 0x06, 0x16, 0x22, 0x73, 0x49, 0xeb, 0xd1, - 0xab, 0xf0, 0xf1, 0xf5, 0xb9, 0x1f, 0x85, 0xad, 0x4f, 0x8e, 0x57, 0x43, - 0x3d, 0xcb, 0x32, 0xa8, 0x67, 0x01, 0xfa, 0x13, 0xa4, 0x9e, 0x85, 0xd3, - 0x63, 0x45, 0xd1, 0x4f, 0xf7, 0xef, 0x12, 0xaf, 0x3e, 0x0e, 0xa1, 0xc7, - 0x0d, 0x7f, 0x3c, 0x44, 0xe0, 0x1d, 0x8d, 0xd0, 0x6b, 0x55, 0xd3, 0x8b, - 0x6f, 0x52, 0x32, 0xff, 0xe9, 0xf3, 0x7b, 0xa3, 0x86, 0x5b, 0x32, 0xec, - 0x48, 0x7b, 0xf5, 0x82, 0x19, 0xed, 0xbf, 0xc0, 0xe7, 0xe7, 0xe3, 0xf1, - 0xf7, 0xef, 0x5f, 0x8c, 0x4f, 0xad, 0x7e, 0xac, 0xd6, 0xf9, 0x32, 0xf1, - 0xf9, 0x5a, 0x69, 0x06, 0xcf, 0x57, 0x54, 0xfc, 0x22, 0xfc, 0x3c, 0x79, - 0xfb, 0x61, 0xb5, 0x13, 0x79, 0x86, 0x09, 0x9d, 0xb4, 0xdd, 0xd0, 0xd5, - 0xb8, 0x04, 0x95, 0x67, 0xa0, 0xfd, 0x76, 0x26, 0x63, 0xe8, 0x8d, 0xc3, - 0x5f, 0xd6, 0x86, 0x07, 0x34, 0x7b, 0x44, 0x1b, 0x6b, 0x7d, 0xd2, 0x2e, - 0x6f, 0xfb, 0xdb, 0xf9, 0x6e, 0x17, 0xbe, 0x0d, 0xed, 0x9b, 0x99, 0x70, - 0xd3, 0x10, 0x67, 0x84, 0x75, 0x58, 0x1d, 0x39, 0x12, 0x87, 0x18, 0x6e, - 0x07, 0xfa, 0xdc, 0xef, 0x53, 0x4d, 0xe2, 0x9a, 0xdf, 0xb2, 0xcb, 0x06, - 0xdc, 0xc7, 0x2d, 0xae, 0x5f, 0xae, 0x11, 0x9e, 0x67, 0xaf, 0x59, 0x7f, - 0xec, 0xd5, 0x3f, 0xbd, 0x4b, 0xce, 0xbb, 0xff, 0x18, 0xe6, 0x72, 0x2a, - 0x6f, 0x2c, 0x5e, 0x9e, 0xb8, 0xdb, 0xab, 0x97, 0x30, 0xca, 0x24, 0xbe, - 0x57, 0x40, 0x25, 0x1a, 0xdf, 0xd3, 0x4b, 0x33, 0x52, 0x43, 0x06, 0x95, - 0xf0, 0xed, 0x08, 0xad, 0xe7, 0xe7, 0x23, 0x47, 0xe4, 0x4b, 0x13, 0xc7, - 0xc3, 0x6e, 0x38, 0x69, 0xb1, 0x3e, 0x01, 0x5b, 0xf7, 0x24, 0xd4, 0x4b, - 0x61, 0x66, 0x8f, 0x31, 0xcd, 0x59, 0x5e, 0x98, 0xe0, 0xfb, 0x91, 0x46, - 0x53, 0xd1, 0xe7, 0x72, 0x3c, 0x27, 0x79, 0x40, 0xaa, 0xff, 0xe4, 0xf5, - 0xb8, 0x1a, 0x2a, 0xb5, 0xc3, 0xa2, 0x4b, 0x43, 0x69, 0x27, 0x07, 0xf2, - 0xd9, 0x91, 0x0a, 0xc6, 0xd3, 0xf1, 0x25, 0xc9, 0x75, 0xda, 0x94, 0xe7, - 0x73, 0xd3, 0x07, 0x84, 0xf8, 0x0f, 0x9a, 0x79, 0x20, 0x5e, 0x7e, 0xcf, - 0x3c, 0x30, 0xc5, 0xfa, 0x4e, 0x29, 0x7f, 0x68, 0x85, 0xec, 0x5f, 0x1a, - 0x7c, 0xe5, 0xe7, 0x44, 0x7f, 0xfe, 0x45, 0x93, 0xe3, 0xdb, 0xa8, 0x53, - 0x7b, 0xcd, 0xed, 0xc9, 0x2e, 0xc9, 0xbe, 0x78, 0xf5, 0xe5, 0x42, 0x7e, - 0x6f, 0x56, 0xfc, 0x7a, 0xbc, 0xf9, 0x7d, 0x83, 0xb7, 0x82, 0x9f, 0x37, - 0x01, 0xf6, 0xdf, 0x67, 0xc6, 0x60, 0x3f, 0x7f, 0x9c, 0x63, 0xfc, 0x17, - 0xda, 0xab, 0xf4, 0x1b, 0x69, 0xa3, 0xfa, 0x8d, 0xe5, 0xe3, 0xe0, 0x73, - 0x74, 0xba, 0xe5, 0xa7, 0x55, 0xde, 0x1f, 0x2e, 0x3f, 0x0e, 0x2a, 0x5d, - 0xd4, 0xb6, 0x4d, 0x67, 0xf3, 0x63, 0x7c, 0x17, 0x8b, 0xf2, 0x23, 0xbf, - 0x0f, 0xad, 0x4e, 0xf9, 0xf9, 0xe4, 0xa9, 0x92, 0x1f, 0xa9, 0x3e, 0xc6, - 0x92, 0xf7, 0x07, 0x0f, 0xb7, 0xa0, 0x44, 0xc8, 0x8d, 0x94, 0x1f, 0x83, - 0xfa, 0x6f, 0x03, 0x9a, 0x14, 0xaf, 0x95, 0xe4, 0x49, 0x90, 0x1f, 0x74, - 0x6e, 0x4d, 0xf9, 0x59, 0x21, 0xc5, 0x9b, 0x59, 0xbe, 0xbc, 0x3a, 0xbf, - 0x63, 0x88, 0xfe, 0x35, 0xde, 0x67, 0x12, 0x6f, 0x2e, 0xa1, 0xf8, 0x7a, - 0xd1, 0xb9, 0xf1, 0xfe, 0x8f, 0xfb, 0x6e, 0x94, 0xbf, 0xad, 0x11, 0x7f, - 0x7b, 0xf2, 0x01, 0x13, 0xda, 0xd3, 0x4f, 0xb4, 0x83, 0x36, 0x71, 0x9f, - 0x7f, 0xac, 0x84, 0x2a, 0x44, 0x1f, 0x7a, 0xf5, 0x6d, 0x1a, 0xa9, 0x17, - 0xed, 0xcc, 0x6e, 0x75, 0x9a, 0xf6, 0x2e, 0xcf, 0xa5, 0x26, 0x0d, 0xf0, - 0xb7, 0xe9, 0x79, 0x00, 0xed, 0xbe, 0x04, 0x39, 0x89, 0x60, 0xbe, 0x65, - 0x40, 0xa8, 0x5f, 0xde, 0x31, 0x2f, 0x10, 0xaf, 0x81, 0x7a, 0xe4, 0xc9, - 0x85, 0x90, 0x46, 0xf1, 0xfb, 0x5b, 0x75, 0xf6, 0x37, 0xa1, 0xbf, 0x8d, - 0x0f, 0xc1, 0x83, 0x1a, 0x1a, 0x0a, 0xef, 0x6f, 0x62, 0xd9, 0x18, 0xbd, - 0x8f, 0xf9, 0xb3, 0x56, 0x96, 0xe9, 0x47, 0xba, 0x9f, 0x61, 0xfd, 0x93, - 0xc1, 0xfe, 0x51, 0xfe, 0x7a, 0x44, 0x7c, 0xba, 0xaa, 0x7e, 0x3e, 0x07, - 0xf2, 0x01, 0xc6, 0xfb, 0x03, 0xad, 0x3c, 0xe4, 0xcb, 0xc7, 0xf9, 0x91, - 0xf2, 0x91, 0x35, 0xf2, 0xc9, 0xe0, 0xfd, 0xa9, 0x27, 0xb6, 0xbe, 0x3d, - 0x24, 0xbf, 0xc5, 0x35, 0x4e, 0x36, 0x34, 0x5f, 0x4d, 0xfe, 0xd9, 0x9e, - 0x82, 0xf3, 0xec, 0xfa, 0xf5, 0x21, 0x1e, 0xfd, 0xf4, 0x28, 0x7b, 0xaf, - 0x34, 0x2a, 0x84, 0xd7, 0xcb, 0xc2, 0xe5, 0xd3, 0xcb, 0x2f, 0x69, 0x6a, - 0xf4, 0xdd, 0xca, 0xe9, 0x4b, 0x44, 0xd5, 0x2f, 0x36, 0x11, 0x7f, 0x8f, - 0xcb, 0xef, 0x0e, 0x2d, 0x98, 0x7f, 0x91, 0xe3, 0xfb, 0xe1, 0xf1, 0xf9, - 0x67, 0x03, 0xf4, 0x85, 0xd3, 0xb3, 0x31, 0x11, 0x1d, 0x9f, 0xeb, 0x21, - 0x1a, 0x0e, 0x8f, 0xd7, 0x6b, 0xe7, 0x17, 0x54, 0xf1, 0x47, 0xde, 0x17, - 0x51, 0xdd, 0xf1, 0xe4, 0x58, 0x7d, 0x2f, 0xeb, 0xef, 0x88, 0xf8, 0x5f, - 0xc9, 0x08, 0xd4, 0x47, 0x8b, 0xf7, 0xd3, 0x8e, 0x69, 0xc2, 0xdf, 0xc9, - 0xeb, 0x79, 0xe9, 0xf3, 0x41, 0x39, 0x8e, 0xbf, 0x65, 0x9a, 0xf0, 0xd3, - 0x7a, 0x67, 0x90, 0x67, 0xa2, 0xaf, 0x5a, 0xbc, 0xfa, 0x8b, 0x69, 0xc2, - 0x4f, 0xeb, 0x9d, 0x3d, 0x7b, 0xec, 0xd5, 0x77, 0xac, 0x9b, 0x26, 0xfc, - 0xb4, 0xde, 0x99, 0xdb, 0xff, 0x92, 0x97, 0x7f, 0x5c, 0xc7, 0xed, 0x8b, - 0x19, 0x73, 0x9e, 0xdc, 0xd5, 0x0b, 0xac, 0xc9, 0xde, 0x3e, 0xb8, 0xed, - 0xde, 0xcf, 0xdf, 0x17, 0x62, 0x72, 0x7f, 0xb4, 0x1e, 0x7b, 0x6c, 0xbd, - 0x18, 0x88, 0x4f, 0x24, 0x7c, 0x79, 0x27, 0xe4, 0x64, 0x02, 0xf2, 0x40, - 0x4e, 0xdf, 0x77, 0x02, 0xf5, 0x45, 0x03, 0xfc, 0x7d, 0x3f, 0x75, 0xbd, - 0x9f, 0xa4, 0xb6, 0x7c, 0x7b, 0xf6, 0xcf, 0xac, 0x61, 0xff, 0x98, 0x7d, - 0xc4, 0x5e, 0x38, 0xb1, 0x7f, 0x28, 0x3e, 0xdf, 0xea, 0x52, 0xfd, 0x91, - 0x23, 0xf6, 0x0e, 0xdf, 0x6c, 0x4b, 0xc7, 0x57, 0xe1, 0xfb, 0x47, 0xc1, - 0xf3, 0xcf, 0x2d, 0x7a, 0x9f, 0x73, 0x4c, 0xb0, 0xe7, 0x43, 0x5f, 0xef, - 0x5c, 0xfd, 0xa0, 0xee, 0xee, 0xd4, 0xc6, 0x50, 0x1a, 0xeb, 0x6b, 0xa7, - 0xeb, 0x91, 0x83, 0x17, 0x4e, 0x6a, 0x58, 0xf5, 0x14, 0x2e, 0x5e, 0x3b, - 0xa8, 0xc3, 0x7d, 0xe0, 0x87, 0x9d, 0xeb, 0xd0, 0x4f, 0xe9, 0x7d, 0x20, - 0x74, 0x7d, 0x4f, 0xa7, 0x7c, 0x7e, 0xe6, 0x83, 0xf1, 0x21, 0xb2, 0x17, - 0x1b, 0x32, 0xfe, 0xfb, 0xb6, 0xbc, 0x7c, 0x7b, 0xc4, 0xfb, 0xb6, 0x78, - 0x7e, 0x5f, 0x7c, 0xde, 0xeb, 0x80, 0x8f, 0xbf, 0xd4, 0x59, 0x47, 0xfc, - 0x89, 0xf7, 0xa7, 0xf9, 0x90, 0x94, 0x0e, 0xf9, 0x76, 0x6a, 0x5f, 0xbd, - 0xfc, 0x76, 0x0d, 0x7f, 0xc3, 0x8b, 0xb7, 0x30, 0x7f, 0xa3, 0x10, 0xef, - 0x6f, 0xb0, 0x78, 0x1e, 0x9d, 0x7d, 0x5b, 0x82, 0xdb, 0x17, 0x87, 0xf2, - 0x3f, 0x09, 0xfc, 0x77, 0x46, 0x02, 0xf5, 0xf5, 0xd6, 0x26, 0xf2, 0x3c, - 0x9d, 0xab, 0x83, 0xbd, 0x1c, 0x4a, 0x1d, 0xea, 0x3e, 0xae, 0x3b, 0x3b, - 0x31, 0x6c, 0x62, 0xfe, 0xdb, 0x5d, 0xbf, 0x19, 0x37, 0x78, 0x7e, 0x7b, - 0x17, 0xd4, 0x03, 0x58, 0xe0, 0x3f, 0xd8, 0x43, 0xd1, 0xf1, 0xbf, 0x48, - 0xfe, 0x13, 0x75, 0xb9, 0xa1, 0xd1, 0xe7, 0x7f, 0xe3, 0xff, 0x6b, 0xfe, - 0xcb, 0xf5, 0x05, 0xa6, 0xa7, 0xac, 0xd6, 0x18, 0xa2, 0x7f, 0xc2, 0xed, - 0xb5, 0x58, 0x7f, 0x50, 0x6d, 0xef, 0xd9, 0xf3, 0x93, 0xb9, 0x49, 0xe2, - 0x2f, 0x79, 0xfa, 0x2d, 0x17, 0xaf, 0xdf, 0xf8, 0x7c, 0xa6, 0x57, 0x5c, - 0xb2, 0x26, 0xee, 0xf9, 0x1b, 0x9b, 0xdc, 0x2f, 0x82, 0xfa, 0x96, 0xeb, - 0x1f, 0x8f, 0xd7, 0xf4, 0x7d, 0x64, 0x36, 0x56, 0x50, 0x4e, 0xdb, 0x50, - 0x02, 0xf4, 0xbd, 0x9b, 0x12, 0xea, 0x11, 0x67, 0x12, 0xfd, 0xa7, 0x8b, - 0xfd, 0x3d, 0x73, 0xc9, 0x61, 0xfe, 0xa6, 0xdf, 0xa8, 0x7c, 0x2c, 0xbf, - 0x2f, 0xf0, 0xf9, 0x6d, 0x71, 0x3c, 0x21, 0x0d, 0xf6, 0xb6, 0xc8, 0xed, - 0xc1, 0xa7, 0xf9, 0xfc, 0x59, 0x7e, 0x9f, 0x23, 0xf7, 0xe9, 0xc0, 0xf3, - 0xb0, 0x41, 0xfb, 0x4a, 0xc9, 0xdb, 0xaa, 0x81, 0x3c, 0xf6, 0x25, 0x84, - 0xfa, 0xb3, 0x46, 0x61, 0x7c, 0x2e, 0x1f, 0xf1, 0xbc, 0x17, 0xfd, 0xbc, - 0x19, 0xe1, 0x5f, 0x78, 0xf6, 0x50, 0xd0, 0xdf, 0x3e, 0xfd, 0xd4, 0x34, - 0xc0, 0x2b, 0x6b, 0xd9, 0xf3, 0xaa, 0xbe, 0x3d, 0x4b, 0x09, 0xf3, 0x73, - 0x7b, 0x27, 0xad, 0xc7, 0x8b, 0x0f, 0x1f, 0xe5, 0xf4, 0xdd, 0x81, 0xa4, - 0x78, 0x02, 0xed, 0xdf, 0x21, 0x8d, 0xaf, 0x71, 0xff, 0xbc, 0x48, 0xba, - 0x0f, 0x7e, 0xaa, 0xc6, 0x7d, 0x70, 0xd1, 0x54, 0xef, 0x83, 0xec, 0x0f, - 0xb7, 0x3f, 0xa0, 0x09, 0xf5, 0x2b, 0x35, 0xe4, 0x93, 0x3c, 0x7f, 0xd3, - 0x17, 0x88, 0xd7, 0xcd, 0x88, 0xef, 0x5f, 0x40, 0x3b, 0x2c, 0x91, 0xbe, - 0xd2, 0x42, 0x16, 0xef, 0x0c, 0x3f, 0x2f, 0x26, 0x3f, 0x9f, 0x7c, 0x81, - 0x0f, 0x64, 0x05, 0xfa, 0x52, 0xac, 0x1d, 0x9a, 0xd7, 0x82, 0xfc, 0x75, - 0x88, 0xfe, 0x29, 0xc7, 0x87, 0xf7, 0xbb, 0x14, 0xb4, 0xff, 0xd0, 0x3f, - 0x1f, 0xc2, 0x1f, 0x79, 0x7e, 0x8e, 0xdf, 0xb3, 0x8f, 0x1d, 0x73, 0x61, - 0x71, 0x55, 0xfd, 0xa9, 0x3e, 0x1b, 0x26, 0xf1, 0x00, 0xb8, 0xdf, 0x45, - 0xf1, 0x5f, 0xc2, 0x8f, 0xa5, 0x60, 0x8d, 0x11, 0xb7, 0x5f, 0xd5, 0xf9, - 0xec, 0xf0, 0xfe, 0x51, 0xfa, 0x56, 0x5e, 0x0f, 0x1f, 0x2f, 0xfb, 0x43, - 0x04, 0x5f, 0xc0, 0xbf, 0xf7, 0xf3, 0xe1, 0xe1, 0xfb, 0x89, 0x29, 0x2f, - 0x05, 0xe5, 0x17, 0xc6, 0xaf, 0xac, 0x4d, 0x3f, 0xd2, 0x65, 0xfa, 0xe3, - 0xfd, 0x41, 0xc7, 0xd7, 0xcf, 0x11, 0xf9, 0xe3, 0xa8, 0xfe, 0x36, 0x72, - 0x9d, 0xd6, 0xd0, 0xfb, 0x5f, 0xa8, 0x7d, 0xf3, 0xfc, 0x71, 0x7c, 0x7f, - 0xee, 0xe3, 0xfa, 0x21, 0x17, 0xf4, 0xff, 0x5b, 0x78, 0x7c, 0xfb, 0xd7, - 0x73, 0x22, 0xea, 0x73, 0xa8, 0xff, 0x1a, 0x7f, 0x5e, 0xca, 0x2f, 0xdf, - 0x29, 0xae, 0xdf, 0xad, 0x4f, 0xfe, 0x3d, 0xfd, 0xc5, 0xe2, 0x35, 0x7c, - 0xbd, 0xc9, 0x1a, 0xfc, 0x11, 0xe7, 0x7f, 0x82, 0xc4, 0xf3, 0x91, 0x89, - 0xc6, 0xea, 0xe4, 0x27, 0x76, 0x79, 0xd7, 0x18, 0xbe, 0x7e, 0x84, 0x57, - 0x22, 0xd3, 0x78, 0x97, 0xdc, 0x5e, 0xc7, 0x7d, 0xf8, 0x77, 0x64, 0xdf, - 0xbb, 0xa7, 0xc5, 0xbe, 0xfb, 0xf6, 0xba, 0xfb, 0xb4, 0xbd, 0x9e, 0x46, - 0x7b, 0xfd, 0xb9, 0x88, 0x7c, 0xba, 0xa7, 0x9f, 0x22, 0xf8, 0xe7, 0x52, - 0x63, 0x13, 0x78, 0x7f, 0xc3, 0xfd, 0x4a, 0xf6, 0x1a, 0x50, 0x67, 0x1a, - 0x82, 0xf6, 0x7a, 0xfd, 0x74, 0xd8, 0x6b, 0x77, 0xb1, 0xa2, 0xbd, 0x5e, - 0x32, 0x45, 0x7b, 0xed, 0xe5, 0xeb, 0x76, 0x08, 0xef, 0x17, 0x71, 0xb9, - 0x7c, 0x52, 0x36, 0x8d, 0x34, 0xf2, 0xf3, 0x1a, 0x69, 0xbf, 0xf7, 0x51, - 0xfb, 0xed, 0xcd, 0xef, 0xcc, 0xab, 0xa1, 0x8f, 0xba, 0x55, 0xec, 0x15, - 0xb6, 0x9f, 0xdd, 0xa2, 0xfd, 0xdc, 0x11, 0xfe, 0xbc, 0x73, 0xd0, 0x7e, - 0xf6, 0x29, 0xd9, 0xcf, 0x6e, 0x45, 0xfb, 0xa9, 0x46, 0x3f, 0xef, 0x5f, - 0xbf, 0xbd, 0xec, 0x9e, 0x66, 0x7b, 0xd9, 0xad, 0x68, 0x2f, 0xbb, 0x15, - 0xed, 0x65, 0xf7, 0x09, 0xdb, 0x4b, 0xfb, 0x84, 0xec, 0x65, 0x77, 0xbc, - 0xbd, 0x7c, 0x5a, 0xb2, 0x97, 0xa8, 0x3e, 0xf9, 0x94, 0x9f, 0x77, 0xf1, - 0xed, 0x65, 0xf4, 0x7c, 0x36, 0xd9, 0x4f, 0x9e, 0xcf, 0x3d, 0x45, 0xf6, - 0x8a, 0xbd, 0x7f, 0x42, 0x7e, 0xbf, 0x44, 0xd4, 0x7e, 0x21, 0x2f, 0xbe, - 0x7b, 0x62, 0xef, 0x03, 0xa0, 0xf5, 0x20, 0x1b, 0x30, 0x86, 0xa5, 0xf0, - 0xfe, 0xa5, 0x40, 0xfe, 0x23, 0xbc, 0xde, 0xc8, 0x03, 0xfc, 0xf8, 0xae, - 0x06, 0xf9, 0xdf, 0x46, 0xcb, 0xc5, 0xeb, 0xf5, 0x9f, 0x77, 0xe2, 0xf4, - 0xa2, 0xce, 0xac, 0xee, 0xb4, 0xed, 0xc5, 0x6c, 0x9d, 0x0c, 0xad, 0x37, - 0xc2, 0x8a, 0x55, 0x13, 0xf4, 0x75, 0x9d, 0xf1, 0xb2, 0x28, 0x7e, 0xd8, - 0x49, 0x2c, 0xbf, 0x67, 0x6c, 0x48, 0x8f, 0x9e, 0xbf, 0x04, 0x95, 0xb3, - 0xa8, 0x60, 0xe3, 0xbd, 0xdf, 0xdb, 0x92, 0x48, 0x40, 0x7c, 0x81, 0xbc, - 0x5f, 0x0a, 0x91, 0x97, 0x64, 0xbb, 0x1a, 0xad, 0x58, 0xb0, 0x51, 0x07, - 0x72, 0x3a, 0xb1, 0xbc, 0x8f, 0x26, 0xfc, 0x78, 0x08, 0x4b, 0xad, 0xa3, - 0xbe, 0xc1, 0xb2, 0x56, 0x25, 0xff, 0xdd, 0x08, 0x35, 0xc3, 0xf3, 0x61, - 0xfb, 0x06, 0x11, 0xd4, 0x33, 0x80, 0xbc, 0x2c, 0xae, 0x43, 0xdf, 0xf0, - 0x7a, 0x52, 0xbf, 0x3e, 0x6c, 0x93, 0x54, 0x1f, 0x36, 0x21, 0xd5, 0x1b, - 0x6c, 0x8a, 0xaf, 0x0f, 0x73, 0x17, 0xc5, 0xda, 0xd3, 0xea, 0xfc, 0x3e, - 0x7b, 0xbf, 0x09, 0xdd, 0xbc, 0x04, 0xe4, 0xbf, 0xe0, 0xe5, 0x5e, 0x39, - 0xf3, 0x88, 0xe6, 0x58, 0xad, 0x69, 0xf2, 0xfc, 0x1c, 0xd9, 0xef, 0x0d, - 0x86, 0xa7, 0x72, 0x20, 0x7f, 0x95, 0xde, 0x89, 0xe5, 0x71, 0xf8, 0xf2, - 0x51, 0x73, 0xc0, 0x70, 0x86, 0x79, 0x3d, 0x90, 0x9e, 0x41, 0xe5, 0x73, - 0xc9, 0x78, 0xe0, 0x97, 0xf5, 0x09, 0xe4, 0xd5, 0x97, 0x56, 0xd3, 0x23, - 0xe6, 0xc3, 0x80, 0x3d, 0x23, 0xa0, 0x5f, 0x6c, 0xff, 0x79, 0x36, 0x02, - 0x47, 0xbc, 0x8f, 0x22, 0xcc, 0x3e, 0xac, 0x30, 0xfd, 0xfc, 0xc5, 0x74, - 0xbf, 0x0f, 0xa3, 0x8a, 0x3f, 0x5b, 0x49, 0x7c, 0x6e, 0xfe, 0xa8, 0x79, - 0x8c, 0xc4, 0x47, 0xfd, 0xe7, 0xad, 0x28, 0x7f, 0x4a, 0x26, 0x9c, 0xd7, - 0xe1, 0x65, 0xb9, 0xc4, 0x80, 0x46, 0xf8, 0x43, 0x14, 0x96, 0xde, 0xc8, - 0xf9, 0x03, 0xf6, 0x39, 0x99, 0x8d, 0xe3, 0x4f, 0x5a, 0xe4, 0x0f, 0xe1, - 0xef, 0xda, 0x0c, 0xd8, 0xbf, 0x12, 0xf8, 0xe7, 0x01, 0xd8, 0xad, 0xd3, - 0x5f, 0x5f, 0x6e, 0xc6, 0xd5, 0x8f, 0x9d, 0x18, 0x7f, 0xaa, 0xf5, 0x83, - 0x58, 0x1f, 0x10, 0xd0, 0x5f, 0x82, 0x3f, 0xed, 0xc5, 0x1f, 0x3b, 0xb1, - 0x3f, 0xdd, 0x66, 0xeb, 0xe7, 0x66, 0x1e, 0xd4, 0x4a, 0xdf, 0x08, 0xd4, - 0x9b, 0x60, 0x77, 0xcb, 0xf5, 0x9e, 0xcf, 0x7e, 0x2a, 0xe1, 0xef, 0x6f, - 0x48, 0xbc, 0xd0, 0x44, 0xbd, 0x63, 0xff, 0xc9, 0xed, 0x5f, 0xfc, 0x79, - 0x0a, 0xac, 0xaf, 0xbe, 0xf3, 0x74, 0x4a, 0xd6, 0x87, 0x9c, 0xe7, 0xf5, - 0x60, 0xbd, 0xd8, 0x9f, 0x27, 0x6b, 0xac, 0xb7, 0xef, 0xc0, 0xc9, 0x5e, - 0x2f, 0xab, 0xf7, 0x1b, 0x25, 0xeb, 0x6b, 0x35, 0xe5, 0xf7, 0xaf, 0x79, - 0xeb, 0x73, 0xf0, 0xfa, 0xcc, 0x9e, 0x26, 0x34, 0xf1, 0xa0, 0x86, 0x82, - 0xf9, 0x02, 0xdb, 0x8f, 0x7f, 0xa1, 0xd2, 0x70, 0x52, 0xac, 0x9f, 0xfb, - 0x4e, 0x43, 0xec, 0xfa, 0xe6, 0x77, 0x19, 0x68, 0xc2, 0xbb, 0x4f, 0x28, - 0xd6, 0x3b, 0xd6, 0xa8, 0xc7, 0x22, 0xe7, 0xb7, 0xb5, 0x81, 0xeb, 0xbf, - 0x40, 0xfd, 0x1e, 0x39, 0x6f, 0x05, 0xb2, 0x5e, 0x3b, 0xc1, 0xea, 0x61, - 0xfd, 0xf5, 0x54, 0xe2, 0xf3, 0xdb, 0x81, 0x78, 0xba, 0xd3, 0x79, 0x32, - 0xcf, 0x1b, 0x1a, 0x4a, 0x89, 0xf5, 0x8a, 0x23, 0x29, 0x95, 0xfa, 0xc5, - 0xa4, 0x5d, 0x78, 0xd5, 0xbe, 0xa3, 0x1d, 0xad, 0xe9, 0xb0, 0x26, 0xa9, - 0x1d, 0x5a, 0x91, 0x8a, 0x8f, 0xef, 0xc7, 0xd7, 0x8f, 0x46, 0xd7, 0x4b, - 0x1c, 0x93, 0xdf, 0x4f, 0x49, 0xe5, 0x4f, 0xcf, 0x6e, 0x25, 0xef, 0xa3, - 0xf1, 0xf6, 0xab, 0x81, 0xcf, 0x6f, 0xd2, 0xfa, 0x08, 0x38, 0x2f, 0xad, - 0x2d, 0xa3, 0xc6, 0xa6, 0xd8, 0xfa, 0xe5, 0x73, 0x22, 0x7e, 0x6f, 0x10, - 0xee, 0xcf, 0x99, 0x36, 0xbc, 0x7f, 0x9e, 0xbf, 0x79, 0x6b, 0x32, 0xde, - 0x5f, 0x3d, 0x49, 0xe7, 0x27, 0xe2, 0x79, 0xc5, 0xea, 0x78, 0x83, 0x58, - 0x0f, 0x53, 0xf5, 0xfc, 0xa2, 0xb6, 0x8b, 0xdd, 0x2f, 0x18, 0x7d, 0x3a, - 0xf8, 0x33, 0x61, 0xf6, 0x14, 0x12, 0xd1, 0xf4, 0xfd, 0x05, 0x4e, 0xba, - 0x76, 0x7e, 0x46, 0xbe, 0x9f, 0x2e, 0x3d, 0x10, 0xff, 0xbe, 0xb7, 0x6b, - 0x23, 0xfc, 0x17, 0xef, 0xbe, 0x29, 0xdc, 0xc7, 0x47, 0xd2, 0x60, 0x9f, - 0xca, 0x09, 0x96, 0x4f, 0x72, 0x36, 0x04, 0xde, 0x2f, 0xd4, 0x28, 0xde, - 0xa7, 0xa7, 0x58, 0x7f, 0xb5, 0x4c, 0xf1, 0x3e, 0xbd, 0xfc, 0xc0, 0x89, - 0xbe, 0x2f, 0x91, 0xf1, 0x9f, 0x2a, 0x68, 0x67, 0xce, 0x61, 0x43, 0x98, - 0xdf, 0x44, 0x49, 0xc2, 0x8f, 0xd6, 0x9e, 0x02, 0x79, 0xee, 0xaa, 0xbb, - 0x9d, 0x74, 0x70, 0x0f, 0x93, 0xb4, 0x3e, 0x1e, 0xf9, 0xc7, 0xf4, 0xbc, - 0xd5, 0xba, 0xff, 0xf9, 0xf9, 0x56, 0xf1, 0xfd, 0xa0, 0x1c, 0x3f, 0x5d, - 0xcf, 0x30, 0x89, 0xd7, 0x95, 0xc2, 0xef, 0xef, 0xa5, 0x9d, 0xc9, 0x90, - 0xfb, 0x18, 0xc3, 0x47, 0x7d, 0xd9, 0x41, 0x5a, 0xcf, 0x92, 0xa8, 0xdb, - 0x9f, 0xf6, 0xe6, 0xa7, 0xcb, 0x1f, 0xf7, 0xec, 0x13, 0x8b, 0xbf, 0xf4, - 0x07, 0xea, 0xeb, 0xb8, 0x3c, 0x36, 0xaa, 0xec, 0xef, 0xb9, 0x81, 0x7c, - 0x24, 0x89, 0x27, 0xf5, 0xe6, 0x3d, 0xff, 0x8b, 0xf0, 0xa3, 0x10, 0x71, - 0x9f, 0xc4, 0x70, 0x7e, 0xa6, 0x7f, 0xdf, 0x46, 0xe8, 0x7a, 0x5e, 0x0f, - 0x7d, 0x6c, 0xce, 0xd4, 0xe5, 0xcb, 0xbd, 0xec, 0x94, 0xc9, 0x57, 0x38, - 0x7d, 0x7d, 0x51, 0xbf, 0xa7, 0x2a, 0xcb, 0x63, 0x54, 0x3e, 0x2b, 0x32, - 0xbe, 0xf6, 0xa0, 0x58, 0x4f, 0xc4, 0xeb, 0x45, 0xe5, 0xf8, 0x9a, 0xe2, - 0x7d, 0xcb, 0x93, 0x4f, 0x10, 0x90, 0x36, 0xdb, 0x80, 0xfb, 0x55, 0x5f, - 0x92, 0xe2, 0xeb, 0x11, 0xf6, 0xc7, 0x7b, 0x9f, 0x2a, 0xad, 0x87, 0x20, - 0xe8, 0xfc, 0xf7, 0x57, 0x78, 0xf2, 0xba, 0x3c, 0xe0, 0x3f, 0xa0, 0xc1, - 0x24, 0x97, 0x77, 0xdc, 0xdd, 0xfd, 0x76, 0x3a, 0xac, 0x1e, 0x62, 0x7a, - 0xee, 0xe3, 0xf4, 0xfe, 0x3b, 0x5b, 0xf7, 0xee, 0xe3, 0xd5, 0xf7, 0x97, - 0x1a, 0xcf, 0x0b, 0x48, 0xf8, 0x20, 0x3a, 0x0e, 0x7b, 0x5f, 0x5e, 0x38, - 0x6d, 0xf8, 0x1e, 0x8b, 0x79, 0x3e, 0xa6, 0x16, 0x0c, 0xfc, 0x13, 0xed, - 0x83, 0xdc, 0xbf, 0x4b, 0xad, 0x5e, 0x5c, 0x19, 0xff, 0x35, 0x27, 0x84, - 0x1f, 0x1e, 0x36, 0x88, 0x97, 0xcf, 0xc5, 0xb1, 0xf8, 0x40, 0xb4, 0xf2, - 0x7a, 0xfd, 0xfc, 0x9a, 0xe2, 0xef, 0xb7, 0x79, 0xbf, 0x5f, 0x6c, 0x49, - 0x70, 0x4e, 0x82, 0x6d, 0x09, 0x76, 0x24, 0x98, 0xc5, 0xfb, 0x7d, 0xd8, - 0x94, 0x60, 0x4b, 0x82, 0x73, 0x12, 0x6c, 0x4b, 0xf0, 0xa9, 0xfd, 0x3d, - 0x2a, 0x57, 0x82, 0x6b, 0xfe, 0xde, 0xda, 0x34, 0xd3, 0x77, 0xfa, 0x73, - 0xfa, 0x73, 0xfa, 0x13, 0xf3, 0xf9, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xec, 0x5d, 0x7b, 0x90, 0x1c, 0x47, 0x79, 0xef, 0xee, 0x99, 0x9d, 0x9d, - 0xdd, 0xdb, 0x5b, 0x8d, 0xce, 0x27, 0xb1, 0x3e, 0x4b, 0xd6, 0x9c, 0x74, - 0x96, 0x8e, 0xc4, 0xa8, 0xce, 0x8a, 0x2c, 0xce, 0x46, 0x31, 0x73, 0xd2, - 0xc9, 0x48, 0x46, 0x22, 0xc2, 0x3c, 0x22, 0x53, 0x3c, 0xf6, 0x70, 0x51, - 0x25, 0x83, 0x23, 0x9b, 0xc4, 0x49, 0xce, 0xd8, 0x29, 0xf7, 0xde, 0xed, - 0x3d, 0x0c, 0x3a, 0xd7, 0x59, 0x18, 0x23, 0x8c, 0x31, 0x7b, 0x92, 0x6c, - 0xab, 0x30, 0x15, 0xa8, 0x72, 0x52, 0x65, 0xf2, 0x47, 0xb2, 0xd6, 0x83, - 0x08, 0xca, 0xaa, 0x3a, 0x70, 0xe2, 0x22, 0x29, 0x2a, 0x59, 0x3b, 0x29, - 0x22, 0x1e, 0x51, 0x94, 0x02, 0x93, 0x33, 0x18, 0x94, 0x7e, 0xcf, 0x74, - 0xef, 0xcc, 0xec, 0x9e, 0x1e, 0x14, 0x09, 0xdc, 0x1f, 0xb6, 0xc7, 0x33, - 0xdb, 0xd3, 0xd3, 0xfd, 0xf5, 0xf7, 0xfe, 0x7e, 0xdf, 0x00, 0xd3, 0xaf, - 0x38, 0xbe, 0x0c, 0xcd, 0xb7, 0x72, 0x51, 0xc1, 0x22, 0xf6, 0xc5, 0xfc, - 0x83, 0x70, 0x2f, 0xac, 0x8f, 0xc3, 0xc3, 0xef, 0x06, 0x2f, 0xe0, 0x03, - 0x76, 0x75, 0x23, 0xb4, 0xb8, 0xbf, 0x36, 0x0f, 0x1e, 0xa1, 0x67, 0x76, - 0x85, 0xd3, 0xeb, 0xc2, 0xaf, 0x0e, 0x66, 0x30, 0xe7, 0x57, 0x37, 0x3b, - 0xcc, 0x7b, 0x4a, 0xe4, 0x77, 0xd9, 0x03, 0xc1, 0x83, 0xf9, 0xf1, 0x6b, - 0x3b, 0x2c, 0xee, 0x9f, 0x2a, 0x3c, 0x3a, 0x67, 0x97, 0x11, 0x02, 0x4b, - 0x97, 0x02, 0xa7, 0x5c, 0x9a, 0x54, 0xfa, 0xaf, 0x27, 0xea, 0x4f, 0x87, - 0xa9, 0xbd, 0x5c, 0xdd, 0xa2, 0xfc, 0x03, 0x6b, 0x89, 0xfe, 0x1a, 0xa0, - 0x65, 0xdb, 0xd6, 0x40, 0x99, 0x7f, 0x76, 0x6b, 0x6a, 0x3f, 0xce, 0x3c, - 0x66, 0xea, 0x44, 0x6d, 0xcb, 0x7b, 0xfa, 0xe9, 0x2d, 0x9c, 0xc7, 0x39, - 0x7e, 0x2d, 0xfa, 0xc5, 0xc9, 0xfb, 0x6e, 0x9d, 0x31, 0xd2, 0xe9, 0x23, - 0xbe, 0xce, 0x6f, 0xfc, 0x7e, 0x2a, 0xaf, 0xfc, 0x8e, 0xd9, 0xe2, 0x46, - 0x1a, 0xb4, 0xa6, 0xfe, 0xbc, 0x98, 0xf7, 0xbd, 0x27, 0x23, 0xbf, 0x0f, - 0x80, 0xb7, 0x1b, 0xf2, 0x4b, 0xe1, 0x6d, 0x31, 0xfb, 0xd2, 0xf7, 0xc5, - 0xf3, 0x7b, 0x10, 0xae, 0x65, 0xfc, 0x8b, 0x95, 0x27, 0x97, 0xfd, 0xcf, - 0xd3, 0x2f, 0x47, 0xe4, 0x7f, 0xf4, 0x89, 0xfd, 0xf1, 0x59, 0x73, 0x6e, - 0x3f, 0x23, 0xe9, 0x83, 0xe6, 0x0a, 0x06, 0xae, 0x9f, 0xf1, 0x32, 0x7c, - 0xfd, 0xa3, 0xf4, 0xd2, 0x20, 0xf4, 0x32, 0x4c, 0xed, 0x4d, 0xff, 0x96, - 0x0d, 0x50, 0xe4, 0x23, 0x4a, 0xf9, 0x86, 0x44, 0xbd, 0x22, 0x95, 0xdd, - 0xee, 0x0d, 0xef, 0x70, 0x24, 0xbe, 0x91, 0x49, 0x2f, 0x76, 0x17, 0xc0, - 0xd3, 0xf6, 0x64, 0x61, 0xb6, 0x40, 0xae, 0x0b, 0xd4, 0xbf, 0xb9, 0xc3, - 0x58, 0x6f, 0xe5, 0x3f, 0x66, 0xf5, 0x84, 0x4c, 0x1c, 0xe2, 0x2d, 0x52, - 0xa2, 0xd7, 0x18, 0xaa, 0x2a, 0x58, 0xb6, 0xad, 0xb7, 0x4d, 0xfa, 0x89, - 0xd4, 0x03, 0x09, 0x7c, 0x15, 0xd6, 0xff, 0xd5, 0x0b, 0xdf, 0xc7, 0x54, - 0x2e, 0x3f, 0x12, 0xef, 0x08, 0xd2, 0xf2, 0x19, 0x7d, 0xc4, 0xe8, 0x29, - 0x17, 0x8e, 0x9f, 0x3e, 0xff, 0x4b, 0xac, 0x7f, 0x5c, 0xc4, 0xf9, 0x1f, - 0xf8, 0x95, 0x9e, 0xff, 0x3f, 0xb8, 0x44, 0xe7, 0xbf, 0x79, 0xbf, 0xd2, - 0xd7, 0xeb, 0xff, 0xda, 0xfe, 0xfc, 0x7f, 0xe5, 0xff, 0xfb, 0xdc, 0x88, - 0x3d, 0x1c, 0x39, 0xbf, 0x72, 0xff, 0x7b, 0x17, 0xc9, 0xff, 0x25, 0x7f, - 0x6f, 0xd2, 0x27, 0x25, 0xfe, 0xb5, 0xb2, 0x97, 0x7e, 0xb3, 0xf7, 0xbb, - 0xf9, 0xef, 0x05, 0xa3, 0x3e, 0xaf, 0xa0, 0xd9, 0xcb, 0xa6, 0x3d, 0x97, - 0xc7, 0x6f, 0x62, 0xff, 0xee, 0x11, 0xf5, 0xc5, 0xb2, 0x1e, 0x79, 0x2c, - 0xd0, 0xe5, 0xed, 0x31, 0xfd, 0x5a, 0xf2, 0x4f, 0xbc, 0x9a, 0xfb, 0xff, - 0xfc, 0x24, 0xfd, 0x3f, 0x8c, 0xb7, 0xc9, 0xfa, 0xfa, 0x38, 0x79, 0x6c, - 0xa9, 0xfb, 0x79, 0xdc, 0x1f, 0x37, 0x1e, 0x7e, 0xf7, 0x7c, 0xb8, 0xff, - 0x07, 0xb4, 0xfd, 0x57, 0xfe, 0xd2, 0x5f, 0xfc, 0x66, 0xee, 0xb7, 0xfe, - 0xd7, 0x6c, 0xaf, 0xbf, 0x2b, 0x66, 0xbd, 0x91, 0x79, 0xde, 0x2e, 0xd9, - 0x7e, 0xb6, 0x5c, 0xff, 0xe4, 0xfd, 0xfb, 0xe5, 0x6f, 0xf7, 0xef, 0x57, - 0x72, 0xfe, 0x85, 0xf7, 0x52, 0xee, 0x3f, 0x3f, 0xff, 0xc7, 0x86, 0xfb, - 0xb5, 0xf3, 0xdf, 0xa5, 0xf8, 0x41, 0xd6, 0xe0, 0x0f, 0x8b, 0xa6, 0x17, - 0x83, 0x1e, 0x9b, 0xce, 0x7f, 0x5d, 0xe7, 0x47, 0xbf, 0x3d, 0xff, 0x17, - 0x79, 0xfe, 0xb5, 0xfd, 0x8d, 0x39, 0xff, 0x06, 0xff, 0x5f, 0xdc, 0x7e, - 0xfe, 0xfa, 0x9d, 0x77, 0x03, 0xef, 0x45, 0xc5, 0xeb, 0x7e, 0x60, 0xf6, - 0x37, 0xb1, 0x45, 0xbc, 0x12, 0x71, 0x7c, 0xef, 0x51, 0x9b, 0xe7, 0x2b, - 0xe5, 0x8c, 0xf8, 0xc6, 0x8c, 0x86, 0xdf, 0xae, 0xbe, 0x55, 0xe0, 0x03, - 0x85, 0x0b, 0xa2, 0xc7, 0x0f, 0x9e, 0xd1, 0xf1, 0xf7, 0xee, 0xee, 0x78, - 0xa3, 0xc4, 0x0f, 0x9a, 0x01, 0xbc, 0xfe, 0x79, 0x9f, 0x45, 0xeb, 0x9f, - 0x01, 0xec, 0xb4, 0x82, 0x48, 0xff, 0x33, 0x99, 0xff, 0x66, 0xc9, 0x7c, - 0x2b, 0xfa, 0x42, 0x0a, 0xb9, 0xed, 0xab, 0xfc, 0xd5, 0x7a, 0xc1, 0x6d, - 0x23, 0xde, 0xf1, 0xce, 0xf0, 0xfd, 0x00, 0x1c, 0x19, 0x7b, 0x11, 0xae, - 0x05, 0x8d, 0x82, 0xc2, 0xc3, 0x0e, 0xe4, 0xf8, 0xbe, 0x8c, 0x1f, 0x4e, - 0x3f, 0x0f, 0x6b, 0xd1, 0xf8, 0xa1, 0x56, 0xdf, 0xfb, 0xa4, 0xc2, 0xcf, - 0xdd, 0x42, 0xfb, 0x57, 0x21, 0xdf, 0x01, 0xee, 0xa8, 0x45, 0xeb, 0xd7, - 0x78, 0x3d, 0xcd, 0xe7, 0x22, 0xf5, 0x90, 0x7b, 0x65, 0xbe, 0xcc, 0xcf, - 0x38, 0x7e, 0x2d, 0x9f, 0xd7, 0xb8, 0xd5, 0xe4, 0xcf, 0x6f, 0xd1, 0x0f, - 0x4a, 0xd5, 0xff, 0x8b, 0x7e, 0x50, 0x7e, 0x7a, 0x7d, 0x63, 0x7d, 0x75, - 0x42, 0x3e, 0x87, 0x11, 0x9f, 0x06, 0x59, 0x23, 0xbf, 0xad, 0x8e, 0x71, - 0x06, 0xae, 0x20, 0x1f, 0xb8, 0xfe, 0x1f, 0x01, 0x98, 0xca, 0x7f, 0xb6, - 0x97, 0xfd, 0x7a, 0xeb, 0x08, 0x53, 0x35, 0xf1, 0x30, 0xdb, 0xff, 0x89, - 0xa7, 0x2c, 0x78, 0x3f, 0xc4, 0x91, 0x7a, 0x7a, 0x59, 0xef, 0x0e, 0x02, - 0x16, 0xff, 0x0d, 0xac, 0x6c, 0x14, 0x7f, 0x16, 0xd4, 0xd5, 0xfe, 0xb1, - 0xaf, 0xc9, 0xba, 0xdf, 0xb2, 0xc9, 0xfa, 0xb8, 0x71, 0xf5, 0xf2, 0x3b, - 0x10, 0xaf, 0xcf, 0x13, 0x78, 0xba, 0x26, 0x7e, 0xb4, 0xad, 0xef, 0x57, - 0xf3, 0xef, 0xbf, 0x81, 0x40, 0x90, 0x45, 0x61, 0x7d, 0x3d, 0x3f, 0x97, - 0xea, 0xfd, 0xfe, 0x29, 0x11, 0x7f, 0xd9, 0x07, 0x18, 0xbd, 0x85, 0xfd, - 0x5b, 0x34, 0x3c, 0xfd, 0x90, 0x5e, 0xbe, 0x41, 0x53, 0xf3, 0xc6, 0xbe, - 0x05, 0xcf, 0xc2, 0xc6, 0x34, 0xcf, 0x7f, 0x1f, 0xb0, 0x93, 0xe9, 0x4b, - 0xe2, 0xbf, 0x3e, 0xf3, 0xc3, 0xaf, 0x14, 0x80, 0x8e, 0xdf, 0x80, 0x5a, - 0xd4, 0xaf, 0x0a, 0x79, 0x84, 0x21, 0xdf, 0x5f, 0x9c, 0x9e, 0x3f, 0xa9, - 0xf2, 0xdf, 0x12, 0xce, 0xb7, 0xc0, 0xb3, 0x91, 0xe7, 0xb3, 0x71, 0x2b, - 0xaf, 0x17, 0x2a, 0x3e, 0x32, 0xf2, 0xc4, 0xcb, 0xc5, 0x6c, 0xf5, 0xd8, - 0x08, 0xcb, 0x3b, 0xc4, 0xdf, 0xcd, 0x20, 0x8a, 0x5f, 0x63, 0xd3, 0xa9, - 0x96, 0xd9, 0xfb, 0x54, 0xbe, 0x0f, 0xd2, 0xfb, 0x65, 0x8e, 0xaa, 0xf8, - 0x5b, 0xe0, 0x56, 0xd9, 0xf3, 0x1e, 0x79, 0x5e, 0xc5, 0x63, 0x85, 0x7d, - 0xe3, 0xc2, 0x4e, 0x1c, 0x78, 0xbe, 0x05, 0x06, 0x5f, 0x67, 0x78, 0x0b, - 0x49, 0xe7, 0xf1, 0xfa, 0xa8, 0x3d, 0x14, 0xf1, 0x97, 0x00, 0x70, 0x0a, - 0x44, 0xf7, 0x23, 0xac, 0x77, 0x16, 0xf4, 0x64, 0x4f, 0x83, 0x80, 0xf6, - 0x1b, 0x58, 0xb8, 0x8f, 0xf5, 0xa3, 0xe8, 0x39, 0xc0, 0x52, 0x8c, 0xf0, - 0x36, 0x5e, 0x97, 0x8e, 0x91, 0x07, 0xf0, 0xda, 0xe7, 0xde, 0x0e, 0xc3, - 0xf5, 0x5d, 0x21, 0xf1, 0xf6, 0x45, 0xfc, 0xfd, 0x1b, 0xda, 0x78, 0x12, - 0xde, 0x2b, 0x3c, 0xff, 0x7a, 0x3c, 0x9a, 0xaf, 0xdf, 0x84, 0x23, 0xfa, - 0xe1, 0xd5, 0x30, 0x7a, 0x90, 0x5c, 0x4f, 0xfd, 0xc7, 0x9c, 0xbd, 0x00, - 0x83, 0x6a, 0x1c, 0xbd, 0xec, 0x40, 0x5b, 0xb2, 0x84, 0xde, 0xe1, 0x59, - 0xd0, 0x18, 0x4b, 0xc6, 0x3b, 0x78, 0x7b, 0x02, 0xbe, 0x1c, 0xe7, 0x0f, - 0x1c, 0x7f, 0x81, 0xf7, 0x83, 0x91, 0xeb, 0x41, 0xf8, 0x48, 0x43, 0xc5, - 0xe3, 0xb1, 0x95, 0x80, 0x6f, 0xc0, 0xd6, 0xb3, 0x9e, 0x45, 0xe1, 0xfb, - 0x2e, 0x0c, 0x3f, 0x04, 0x3a, 0x97, 0x0a, 0x3f, 0x64, 0x46, 0xab, 0xcf, - 0x0e, 0xeb, 0x7b, 0x17, 0x2c, 0x76, 0x7f, 0x88, 0xe2, 0xa7, 0x55, 0x69, - 0xfd, 0xae, 0xed, 0x4f, 0x48, 0xbc, 0x75, 0xfa, 0x27, 0xf0, 0x7b, 0x24, - 0xfd, 0x95, 0x17, 0x4c, 0x7c, 0x1e, 0x3e, 0x5f, 0x9f, 0xf2, 0xb3, 0x6c, - 0xa7, 0xa4, 0xd7, 0x3c, 0x08, 0x72, 0xb4, 0x5f, 0x01, 0x0d, 0xd8, 0x5f, - 0x01, 0x59, 0x21, 0x23, 0xfb, 0x5b, 0xab, 0xfa, 0xef, 0x49, 0xfc, 0xf2, - 0x51, 0x41, 0x5f, 0xa0, 0x9e, 0x8e, 0xcf, 0xbe, 0x4b, 0xcf, 0x57, 0x52, - 0xf6, 0xb5, 0x4f, 0xe3, 0xb6, 0x6c, 0x3f, 0x0a, 0xd1, 0xfa, 0x47, 0xf2, - 0x42, 0xb4, 0x8c, 0xc8, 0x83, 0xed, 0x03, 0x54, 0xce, 0x91, 0xf1, 0xf7, - 0x65, 0x9b, 0xf8, 0x7f, 0x90, 0xcd, 0x1a, 0xf1, 0x33, 0x7c, 0x8d, 0xb1, - 0x9f, 0x4d, 0xf5, 0x09, 0x62, 0x3d, 0xc2, 0x78, 0xbb, 0xcf, 0xf0, 0xb4, - 0x92, 0xf2, 0xbf, 0xaf, 0x51, 0xf9, 0xc9, 0x97, 0xb7, 0x7e, 0xbe, 0x19, - 0x9f, 0xb1, 0x53, 0xe7, 0x47, 0xf6, 0xc3, 0x28, 0x72, 0xcd, 0x53, 0x79, - 0x8a, 0x60, 0xc5, 0x96, 0x6b, 0xa6, 0xe9, 0x1a, 0xe0, 0x42, 0xf5, 0xe5, - 0x13, 0xb4, 0x7e, 0xfe, 0x49, 0xf2, 0xa6, 0x79, 0x0b, 0x56, 0x30, 0xec, - 0x44, 0xf6, 0x52, 0x3f, 0x0b, 0xb6, 0xf3, 0xfc, 0xba, 0xe5, 0x53, 0xbd, - 0x39, 0x6c, 0x0d, 0xe0, 0xab, 0x9f, 0x0f, 0xf5, 0x2d, 0xb2, 0xc9, 0x89, - 0xfd, 0x5e, 0xc0, 0xf0, 0x8c, 0x65, 0x2f, 0xcb, 0x14, 0x41, 0xe9, 0x75, - 0xd0, 0x98, 0x82, 0x87, 0x7b, 0xde, 0x51, 0x3b, 0x4f, 0x5e, 0x84, 0x9f, - 0xa9, 0x8b, 0xe7, 0x21, 0xc5, 0x4b, 0x99, 0xa2, 0xf9, 0xd8, 0x4e, 0x99, - 0xf2, 0xa7, 0xfc, 0x0b, 0xc7, 0x38, 0xde, 0x4b, 0x90, 0xf5, 0x2b, 0x74, - 0xfe, 0x23, 0xda, 0x7c, 0x09, 0x7b, 0xb5, 0x6e, 0xa6, 0xf9, 0xce, 0x60, - 0x3d, 0x2a, 0x1f, 0x62, 0x78, 0x2b, 0xd2, 0x7e, 0xc8, 0xf2, 0x7e, 0x49, - 0x34, 0x5f, 0xea, 0x10, 0x19, 0x73, 0x9f, 0xc3, 0xeb, 0xcf, 0x37, 0x4b, - 0xff, 0xca, 0x0a, 0x5e, 0xbf, 0x54, 0x40, 0x5b, 0x18, 0x56, 0xeb, 0xd9, - 0x8c, 0xcf, 0xd6, 0xa7, 0x2a, 0xd6, 0xbb, 0x1f, 0xb4, 0x83, 0x87, 0x42, - 0xfb, 0x73, 0xec, 0xbc, 0x8d, 0x7a, 0xf1, 0xd6, 0x71, 0x7a, 0x03, 0xd7, - 0xca, 0xf1, 0xaf, 0x8c, 0xc5, 0xc7, 0xa6, 0xcf, 0xdf, 0x40, 0x9e, 0x57, - 0xf1, 0x77, 0xf9, 0x3c, 0x05, 0xd6, 0x88, 0xed, 0x0f, 0x21, 0xf9, 0x8b, - 0xa0, 0x0f, 0x5b, 0xcc, 0xef, 0x28, 0x68, 0x0f, 0xaf, 0x45, 0x8d, 0xbf, - 0x2c, 0x7d, 0xfc, 0x33, 0xc6, 0xf8, 0xfd, 0x70, 0x91, 0xe3, 0x77, 0xb5, - 0x98, 0x7f, 0xc6, 0x98, 0xff, 0x62, 0xc7, 0x5f, 0x12, 0x3f, 0xbe, 0x9a, - 0x6f, 0xac, 0xfc, 0x6e, 0xc2, 0x13, 0x08, 0xf7, 0xa7, 0x90, 0x3e, 0xde, - 0xd1, 0x36, 0xf1, 0x70, 0x54, 0xfe, 0x4a, 0xbe, 0xc5, 0xfc, 0xac, 0xa4, - 0xf9, 0xdd, 0x18, 0x3f, 0xbf, 0x6c, 0x8b, 0xf9, 0x25, 0x8e, 0xb7, 0x29, - 0x76, 0xbc, 0x04, 0xbc, 0x1e, 0x45, 0xef, 0x47, 0x69, 0x43, 0xa5, 0xd8, - 0xf1, 0x58, 0xfe, 0xd3, 0x82, 0xa4, 0xd7, 0xf5, 0xf2, 0x68, 0xc7, 0xe2, - 0xa7, 0xb0, 0x7a, 0xb5, 0x68, 0x3d, 0xa1, 0xf8, 0x7b, 0x49, 0xc9, 0xd3, - 0x0c, 0x8c, 0xbe, 0x2f, 0x1c, 0xff, 0xf7, 0xb4, 0xfe, 0x4a, 0xe5, 0x0d, - 0x4b, 0x85, 0x3c, 0xa0, 0xfc, 0x7f, 0x85, 0xe2, 0xff, 0xa5, 0x31, 0x86, - 0x86, 0x87, 0xcb, 0xb7, 0x92, 0x7d, 0xed, 0x71, 0x31, 0xe3, 0xaa, 0xf5, - 0xa1, 0x0a, 0xca, 0x0d, 0xd0, 0x92, 0x3b, 0x29, 0x7f, 0xcf, 0x9d, 0x3f, - 0x7f, 0x7e, 0x09, 0xf9, 0xc7, 0x5d, 0xdf, 0xd9, 0x01, 0xbd, 0xfa, 0x75, - 0xfd, 0x63, 0x95, 0x91, 0xbd, 0xc0, 0xbf, 0xa2, 0x13, 0x87, 0x78, 0x6d, - 0x9c, 0x5f, 0x97, 0x59, 0xfd, 0xe1, 0xe4, 0x4b, 0x95, 0xfc, 0x46, 0xda, - 0x71, 0xa8, 0xf6, 0x82, 0x03, 0xad, 0xf2, 0xee, 0x7e, 0xe4, 0xf4, 0x6e, - 0x47, 0xa5, 0x25, 0x36, 0xb6, 0x89, 0x2e, 0xf3, 0xc8, 0x23, 0x4e, 0xe1, - 0x9a, 0xd7, 0xd6, 0x81, 0x46, 0x07, 0xd5, 0x8f, 0x5e, 0x96, 0xf5, 0x17, - 0xe7, 0x57, 0x11, 0x71, 0x82, 0x28, 0x0b, 0x06, 0x0f, 0x43, 0x2a, 0xaf, - 0x30, 0x91, 0x8f, 0x03, 0xe0, 0x24, 0xb2, 0x3b, 0x80, 0xb7, 0x76, 0xec, - 0x6b, 0x4c, 0x7e, 0xbe, 0x1b, 0x6c, 0xb3, 0x50, 0xa7, 0x7f, 0xeb, 0xea, - 0x57, 0x7e, 0xdf, 0xa2, 0xfc, 0xb2, 0x0b, 0x9c, 0x24, 0xcf, 0x8e, 0x8d, - 0xac, 0x46, 0xcf, 0x21, 0xa2, 0x9f, 0xcf, 0xad, 0x1d, 0x26, 0x9a, 0x95, - 0xc5, 0x75, 0xfc, 0x83, 0x80, 0xe1, 0x93, 0x64, 0x6a, 0x45, 0x2b, 0x86, - 0x7f, 0x96, 0xc1, 0xd1, 0x3a, 0xbd, 0x8f, 0xed, 0xf2, 0x92, 0xb8, 0xfb, - 0x01, 0xf8, 0x0e, 0xbb, 0x0f, 0x6c, 0x1c, 0x7b, 0xdf, 0x07, 0x0d, 0x76, - 0x5f, 0xd9, 0x33, 0xc8, 0xe8, 0x87, 0x01, 0x0c, 0x3c, 0xe0, 0x50, 0x9f, - 0x5c, 0x02, 0xaa, 0x7f, 0x0f, 0x4b, 0xd7, 0xc7, 0xca, 0x1b, 0x2a, 0xe2, - 0xa2, 0x93, 0x68, 0x79, 0x5e, 0x8c, 0xeb, 0xa6, 0xfd, 0x6e, 0xca, 0x1f, - 0xae, 0xb3, 0x5a, 0x4a, 0x8f, 0x17, 0x6e, 0x2a, 0xfd, 0xef, 0x68, 0x2f, - 0x95, 0x84, 0x6a, 0xbc, 0x33, 0x82, 0xbe, 0xdc, 0x2e, 0x2a, 0xc4, 0x26, - 0x76, 0x7e, 0x0a, 0x6e, 0x64, 0xf8, 0x25, 0x4d, 0xef, 0xa3, 0xf2, 0xbf, - 0x3b, 0x42, 0x9f, 0x64, 0xf6, 0xc3, 0x8c, 0xff, 0x8b, 0x7c, 0x30, 0x0a, - 0x73, 0xfa, 0x06, 0xd0, 0x5c, 0x8f, 0xba, 0x87, 0x41, 0xd2, 0x33, 0x7a, - 0xcd, 0x53, 0x15, 0x65, 0x80, 0xdf, 0xdf, 0x9e, 0x11, 0x87, 0x61, 0x84, - 0xe1, 0x30, 0xe0, 0xbf, 0x12, 0x78, 0x92, 0x13, 0x3e, 0xbf, 0xfe, 0x04, - 0xe4, 0xcb, 0x3b, 0xd4, 0xcb, 0xf5, 0xf9, 0x69, 0xc4, 0x1f, 0xc8, 0xdc, - 0xa1, 0xf2, 0x9d, 0x65, 0xac, 0xe9, 0xe7, 0xab, 0x12, 0xea, 0x63, 0x37, - 0x94, 0xa2, 0xeb, 0x27, 0xa1, 0x7c, 0x13, 0xf0, 0x5a, 0x63, 0xcf, 0xcf, - 0x72, 0x75, 0x7e, 0x62, 0xf6, 0xe3, 0xca, 0xba, 0xbb, 0xae, 0xfa, 0x41, - 0x29, 0x7f, 0x81, 0x5d, 0xbf, 0x9b, 0x07, 0xc4, 0x13, 0x9e, 0xbf, 0xc4, - 0xf9, 0x3a, 0x4d, 0xf9, 0xc9, 0xe6, 0xfe, 0x9b, 0xf9, 0xca, 0x98, 0xd6, - 0x73, 0xd9, 0x59, 0xa1, 0x3f, 0x92, 0xeb, 0x67, 0x71, 0xe7, 0x61, 0x91, - 0x3f, 0xc7, 0xe8, 0xbf, 0xc1, 0x7a, 0x60, 0xab, 0xf9, 0xcb, 0xf5, 0x12, - 0xfd, 0x2a, 0xa0, 0xdd, 0x10, 0x01, 0xff, 0xd5, 0x71, 0xdf, 0x27, 0xf5, - 0xb5, 0x7f, 0xcd, 0x2d, 0xee, 0xfb, 0x7e, 0x67, 0x91, 0xfd, 0xb0, 0xcd, - 0xfc, 0x65, 0x1f, 0xbc, 0x81, 0xeb, 0x83, 0x46, 0xff, 0x28, 0x89, 0xaf, - 0xfb, 0x77, 0x3f, 0x39, 0x4f, 0xff, 0xee, 0x32, 0xf5, 0x37, 0x9f, 0xd7, - 0x71, 0xd3, 0xe7, 0xfa, 0xe9, 0x7a, 0x5c, 0x2b, 0x7e, 0xe0, 0x72, 0xc3, - 0x9e, 0x3a, 0x05, 0xfc, 0x7a, 0xe1, 0xe9, 0x89, 0x09, 0x41, 0x6f, 0x67, - 0x39, 0x2e, 0x3d, 0x3e, 0x21, 0xae, 0x7d, 0xde, 0x3f, 0xb3, 0x76, 0xb3, - 0xd0, 0xf7, 0x9c, 0x47, 0x58, 0xbf, 0x06, 0x7c, 0xb3, 0xa0, 0x57, 0x6a, - 0xe6, 0x74, 0xf4, 0x8c, 0x33, 0xfc, 0x23, 0x7a, 0x9e, 0xba, 0x3d, 0xa2, - 0xc0, 0x97, 0x7a, 0x6c, 0xc2, 0xb4, 0x21, 0xc3, 0x23, 0x25, 0x5a, 0x03, - 0x8a, 0xf6, 0x97, 0x43, 0x75, 0xc4, 0xcf, 0x13, 0xb7, 0xaf, 0x7c, 0x6e, - 0xf7, 0xf9, 0x2e, 0xf7, 0xcb, 0x4d, 0x17, 0x84, 0xf7, 0x9d, 0x98, 0x4d, - 0xb0, 0x8c, 0xc8, 0xef, 0xbb, 0x9e, 0xc7, 0xa8, 0xeb, 0x61, 0xf2, 0xbf, - 0x17, 0x00, 0xf5, 0x67, 0x95, 0xaa, 0x8d, 0x6a, 0x39, 0x6f, 0xd9, 0xeb, - 0x21, 0xce, 0x0e, 0xbe, 0x7f, 0x12, 0x8f, 0x51, 0x97, 0xe9, 0x92, 0x29, - 0x08, 0xbc, 0xd7, 0x01, 0x26, 0xfc, 0xd3, 0x45, 0xc4, 0x76, 0xdb, 0x60, - 0x59, 0xea, 0x7d, 0x03, 0x27, 0x41, 0xdf, 0x55, 0x60, 0x1e, 0x7c, 0xef, - 0x5e, 0x5e, 0xff, 0xee, 0x07, 0x20, 0x7f, 0xd5, 0x01, 0x04, 0xb6, 0xbf, - 0x0e, 0xcb, 0xac, 0x1e, 0x0a, 0xfb, 0x01, 0xf9, 0xfe, 0x7d, 0x64, 0xbc, - 0xdd, 0x3b, 0x1f, 0xc2, 0xae, 0x3b, 0x8c, 0xec, 0x37, 0x93, 0x43, 0xb9, - 0x9d, 0xd7, 0x93, 0xfd, 0x8d, 0x85, 0x61, 0xd9, 0xe5, 0xf6, 0xf5, 0xd1, - 0x63, 0xa0, 0xd2, 0xf3, 0xb0, 0x2f, 0xc6, 0x0e, 0xdc, 0xbd, 0xc7, 0xef, - 0xa8, 0x14, 0x3e, 0xf3, 0x32, 0xaa, 0x14, 0xa7, 0x68, 0xbf, 0x34, 0x77, - 0x80, 0x5c, 0x37, 0xef, 0xaf, 0xb2, 0x00, 0x9c, 0xb4, 0x7e, 0xbe, 0x91, - 0xf3, 0xd8, 0x10, 0x78, 0xca, 0xf2, 0x7c, 0x35, 0x98, 0xea, 0xe7, 0xb9, - 0x7d, 0x31, 0xf4, 0x88, 0x1f, 0xea, 0xe2, 0xfc, 0xe2, 0xe4, 0x1d, 0x67, - 0x2c, 0x7e, 0x3e, 0xf3, 0x17, 0x84, 0x1f, 0xbe, 0x3a, 0xb1, 0xdf, 0xc1, - 0x65, 0xae, 0x1f, 0x5d, 0xf4, 0xf9, 0x37, 0xfa, 0x23, 0x2d, 0xb6, 0xbf, - 0x92, 0xb9, 0xde, 0x91, 0x7e, 0x59, 0x3c, 0xde, 0x63, 0xf0, 0x03, 0x60, - 0x37, 0xd8, 0xa4, 0xbc, 0xe9, 0x67, 0x01, 0xf2, 0x81, 0xb0, 0x5c, 0xd4, - 0x79, 0x0b, 0x9a, 0xce, 0xdf, 0xa7, 0x4c, 0xf9, 0xe4, 0x07, 0x9d, 0x4f, - 0x53, 0x8a, 0xce, 0x09, 0xfa, 0xb8, 0xb2, 0xdc, 0xb9, 0xae, 0xfa, 0xfc, - 0x5a, 0xc9, 0xdf, 0xed, 0xc6, 0x57, 0x35, 0x7e, 0x33, 0x66, 0xfe, 0xbe, - 0xc1, 0xd2, 0x05, 0x92, 0xf8, 0x95, 0x9a, 0xdf, 0xa5, 0xe5, 0x57, 0xf7, - 0x5c, 0x2a, 0x7e, 0x65, 0xf4, 0xcf, 0x5e, 0x34, 0xbf, 0x82, 0x3a, 0xbf, - 0xea, 0x7e, 0xaa, 0x97, 0xe2, 0x45, 0x83, 0xea, 0x09, 0xf9, 0x1e, 0x15, - 0x4f, 0x61, 0xe7, 0x6f, 0x79, 0x8d, 0xe1, 0x49, 0x93, 0xe7, 0xd9, 0xb9, - 0x9b, 0x16, 0xfc, 0x0a, 0x7c, 0xbd, 0x1c, 0xf2, 0xab, 0x1c, 0x95, 0x97, - 0x41, 0xe6, 0xea, 0xda, 0x52, 0xff, 0x50, 0x37, 0xa8, 0x23, 0x27, 0x43, - 0xf8, 0x95, 0xb7, 0xc0, 0xfc, 0x51, 0xb7, 0x5a, 0xd8, 0xae, 0xbd, 0x73, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 04:33:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C4D9D477D3; Thu, 20 Apr 2017 04:33:50 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A95B29F; Thu, 20 Apr 2017 04:33:49 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K4Xm0L088090; Thu, 20 Apr 2017 04:33:48 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K4Xm56088087; Thu, 20 Apr 2017 04:33:48 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704200433.v3K4Xm56088087@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Thu, 20 Apr 2017 04:33:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317183 - stable/10/sys/dev/qlxgbe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 04:33:50 -0000 Author: davidcs Date: Thu Apr 20 04:33:47 2017 New Revision: 317183 URL: https://svnweb.freebsd.org/changeset/base/317183 Log: MFC r316183 Upgrade firmware and other related files to version 5.4.64 Modified: stable/10/sys/dev/qlxgbe/ql_boot.c stable/10/sys/dev/qlxgbe/ql_fw.c stable/10/sys/dev/qlxgbe/ql_minidump.c stable/10/sys/dev/qlxgbe/ql_reset.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/qlxgbe/ql_boot.c ============================================================================== --- stable/10/sys/dev/qlxgbe/ql_boot.c Thu Apr 20 04:26:47 2017 (r317182) +++ stable/10/sys/dev/qlxgbe/ql_boot.c Thu Apr 20 04:33:47 2017 (r317183) @@ -35,7 +35,7 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_bootloader_version_major = 5; unsigned int ql83xx_bootloader_version_minor = 4; -unsigned int ql83xx_bootloader_version_sub = 62; +unsigned int ql83xx_bootloader_version_sub = 64; unsigned char ql83xx_bootloader[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -10957,9 +10957,9 @@ unsigned char ql83xx_bootloader[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x02, 0x00, 0x40, 0x40, 0x05, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x40, 0x40, 0x05, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x9b, 0x64, 0x97, 0x0e + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x64, 0x95, 0x0e }; unsigned int ql83xx_bootloader_len = 131072; Modified: stable/10/sys/dev/qlxgbe/ql_fw.c ============================================================================== --- stable/10/sys/dev/qlxgbe/ql_fw.c Thu Apr 20 04:26:47 2017 (r317182) +++ stable/10/sys/dev/qlxgbe/ql_fw.c Thu Apr 20 04:33:47 2017 (r317183) @@ -35,32 +35,32 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_firmware_version_major = 5; unsigned int ql83xx_firmware_version_minor = 4; -unsigned int ql83xx_firmware_version_sub = 62; +unsigned int ql83xx_firmware_version_sub = 64; unsigned char ql83xx_firmware[] = { - 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc4, 0x5e, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x88, 0xcd, 0x7d, 0x72, 0x3d, 0x1f, 0x5f, 0xe0, + 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe4, 0x42, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5f, 0x7e, 0x74, 0x37, 0x27, 0xc9, 0xab, 0x39, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0xef, 0x03, 0x00, + 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xef, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x44, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0xf9, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7a, 0x9f, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x46, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xdd, 0x4e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf9, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9f, 0x90, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x9f, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xe5, 0x98, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x71, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x89, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -69,118 +69,118 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x56, 0xa3, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7b, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6f, 0x94, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xd1, 0xb8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xec, 0xa9, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xbd, 0x17, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x94, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x54, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xae, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xde, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x35, 0xd0, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x8c, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9a, 0xb9, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1a, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2f, 0xef, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x9f, 0xd8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xfb, 0x17, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x14, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xe4, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xbe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xa0, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdd, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x72, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x67, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0xeb, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4f, 0x25, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xba, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x30, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x86, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xb4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x19, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x84, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdc, 0x4c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x28, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x68, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x45, 0x36, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x56, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6e, 0x3f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x5e, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x51, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x47, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xcc, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x68, 0x61, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x26, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x68, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd3, 0x4a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8e, 0x63, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x0a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x4c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x6e, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbc, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7c, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x57, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb7, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x8f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2a, 0xa1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x79, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, 0xa1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x30, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xbd, 0x19, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x30, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x56, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xd1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0x1a, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -189,7 +189,7 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x52, 0x56, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb5, 0x3f, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x58, 0xe0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -232,9 +232,9 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x5f, 0x1a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xb2, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x49, 0x1a, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xcb, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe8, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x92, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -249,7838 +249,7837 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xda, 0xec, 0x3d, - 0x6d, 0x70, 0x5c, 0xd5, 0x75, 0xf7, 0x7d, 0xec, 0xee, 0xd3, 0x6a, 0x57, - 0x5e, 0x83, 0x4c, 0x84, 0x90, 0xe3, 0x27, 0xdb, 0xd8, 0xe2, 0x33, 0x6b, - 0x63, 0x1b, 0x63, 0x9c, 0xfa, 0x49, 0x96, 0x8d, 0xed, 0xc8, 0x44, 0x40, - 0xca, 0x37, 0x44, 0x24, 0x0d, 0x35, 0x84, 0x60, 0x31, 0x25, 0xa9, 0xf8, - 0x28, 0x7e, 0xb2, 0x25, 0xd9, 0x04, 0x9b, 0xc8, 0xd8, 0x01, 0x87, 0xd0, - 0xb0, 0x92, 0x31, 0xa5, 0x2d, 0x93, 0x2e, 0x93, 0x4c, 0x60, 0xda, 0xce, - 0xb0, 0xd8, 0x99, 0x60, 0x52, 0xdc, 0xba, 0x3f, 0x48, 0x43, 0x18, 0x9a, - 0xed, 0xa4, 0x4c, 0x55, 0x02, 0x64, 0xdb, 0xe9, 0x10, 0x39, 0xa9, 0xa1, - 0xf7, 0xdc, 0x8f, 0xf7, 0xde, 0xbd, 0xfb, 0xde, 0xdb, 0xbd, 0xb2, 0xec, - 0x4c, 0x3a, 0x5e, 0x66, 0xf0, 0x1e, 0xdd, 0x7b, 0xcf, 0x3d, 0xf7, 0xdc, - 0x73, 0xcf, 0x39, 0xf7, 0x9c, 0xf3, 0xde, 0x22, 0x0d, 0xd1, 0x8f, 0x89, - 0x0c, 0xa4, 0xa3, 0xdb, 0xd0, 0x69, 0xf8, 0xf7, 0x13, 0xa6, 0x9f, 0x3e, - 0x06, 0x1f, 0x7d, 0xf7, 0x6d, 0xf2, 0xdf, 0x57, 0xaa, 0x60, 0xf1, 0x53, - 0x94, 0xe0, 0x82, 0x22, 0xec, 0xea, 0xc8, 0x26, 0x5f, 0xf6, 0xa4, 0xc8, - 0x3f, 0xfd, 0x55, 0xfd, 0x35, 0xe4, 0x3a, 0xb9, 0x00, 0xcc, 0xbe, 0xdb, - 0x85, 0x0c, 0xa5, 0x17, 0x95, 0x0c, 0x4e, 0x3a, 0x42, 0x0d, 0x05, 0x93, - 0x02, 0xbd, 0x37, 0xd2, 0xcf, 0x9d, 0x51, 0xf3, 0xad, 0x43, 0x11, 0xf3, - 0x29, 0xc2, 0x1c, 0xdf, 0x91, 0x69, 0xc6, 0x37, 0x5f, 0x9b, 0x5e, 0x7c, - 0x8b, 0xa7, 0x19, 0xdf, 0x66, 0x7d, 0x6a, 0xf8, 0xf8, 0xf8, 0x9b, 0xcc, - 0x29, 0x8d, 0x0f, 0x91, 0xb7, 0xbc, 0x0b, 0xa8, 0xce, 0x5b, 0x7c, 0xeb, - 0xfa, 0x99, 0x68, 0xe8, 0x9b, 0x18, 0x25, 0xc0, 0x47, 0x3b, 0x86, 0xde, - 0xf8, 0x71, 0x8f, 0x96, 0xdb, 0x8d, 0x87, 0x00, 0x5c, 0xb8, 0x6b, 0xf6, - 0xca, 0x15, 0x88, 0xb4, 0x57, 0x78, 0xfb, 0x7b, 0x77, 0x6b, 0x05, 0xdc, - 0x9e, 0x1f, 0x84, 0xf1, 0x77, 0x5e, 0xf3, 0xea, 0xc5, 0xf3, 0xe8, 0xf8, - 0x41, 0xd6, 0xde, 0xb4, 0x5b, 0xcb, 0x3f, 0x86, 0xc7, 0x0f, 0x72, 0xfc, - 0xff, 0x4c, 0xc7, 0x0f, 0x8a, 0xf8, 0xf3, 0x5b, 0x31, 0xdc, 0xbb, 0xfe, - 0xe2, 0xc4, 0x79, 0x17, 0xd1, 0xf1, 0x5b, 0x59, 0xfb, 0xd5, 0x6f, 0x68, - 0xbd, 0x7b, 0xf0, 0x78, 0x80, 0xfb, 0x56, 0xdc, 0xf8, 0xec, 0x5d, 0x49, - 0x3a, 0x9e, 0xb7, 0xdf, 0xfb, 0x6b, 0xad, 0x6f, 0x14, 0x8f, 0xdf, 0xe6, - 0xe1, 0xd7, 0xc8, 0xf8, 0x6d, 0x12, 0xfd, 0x00, 0x17, 0x5e, 0xfe, 0xaf, - 0xf9, 0xcb, 0x2c, 0x3a, 0x9e, 0xb7, 0xbf, 0x74, 0x39, 0xea, 0x85, 0xf9, - 0x87, 0x30, 0xdc, 0x9f, 0x7b, 0xd5, 0x69, 0xa6, 0xeb, 0xeb, 0x1f, 0x62, - 0xed, 0x3f, 0xbb, 0xe5, 0x21, 0x0b, 0xe3, 0x2f, 0x02, 0xdc, 0x97, 0x19, - 0xc9, 0xe7, 0x5a, 0xe9, 0x78, 0xde, 0xbe, 0xf2, 0x0b, 0x0f, 0xed, 0x80, - 0xf9, 0x87, 0x81, 0x7e, 0x6b, 0x8d, 0x9d, 0x61, 0xeb, 0x1f, 0x66, 0xed, - 0x5d, 0x43, 0x0f, 0x59, 0x30, 0x3f, 0xc0, 0x8e, 0x69, 0xe6, 0xac, 0x0c, - 0x1d, 0xcf, 0xdb, 0xff, 0xe8, 0xd9, 0x87, 0x76, 0xc0, 0xfc, 0x23, 0xa6, - 0xbf, 0x1f, 0x18, 0x5f, 0xbf, 0x04, 0x17, 0x25, 0xb8, 0x22, 0xc1, 0xf9, - 0xed, 0xd2, 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0xf3, 0x3b, 0x80, - 0xbe, 0xe6, 0xb5, 0xb7, 0xb5, 0xd9, 0xb9, 0xa5, 0x4f, 0xe2, 0xf1, 0x00, - 0x17, 0xf2, 0x5f, 0x30, 0x2f, 0xd8, 0xbc, 0x05, 0xd6, 0x57, 0x04, 0xb8, - 0xb7, 0x65, 0xfb, 0x3d, 0xcd, 0xe7, 0x91, 0xf6, 0x0a, 0x6f, 0xdf, 0xb8, - 0x7b, 0x0b, 0xac, 0x2f, 0xff, 0x30, 0xf0, 0xa7, 0xed, 0xa0, 0x66, 0x2e, - 0xa6, 0xe3, 0x1f, 0x66, 0xed, 0x9b, 0xbf, 0xb7, 0x05, 0xd6, 0x57, 0x04, - 0xb8, 0xbf, 0x4d, 0xcb, 0x59, 0x97, 0xd3, 0xf1, 0xbc, 0x7d, 0xf7, 0x1b, - 0x5b, 0x2c, 0x2c, 0x1f, 0xf9, 0xaf, 0x53, 0x7a, 0x16, 0xb4, 0xd9, 0x94, - 0x7e, 0x02, 0x37, 0x66, 0x90, 0xb5, 0xf1, 0x36, 0x42, 0x3f, 0x6b, 0x5f, - 0xc2, 0xda, 0x2b, 0x04, 0x7e, 0x44, 0xe3, 0xed, 0xf9, 0x47, 0xa4, 0xf5, - 0x4b, 0x70, 0x51, 0x82, 0x2b, 0x12, 0x9c, 0xdf, 0x29, 0x8d, 0x97, 0xe0, - 0xa2, 0x04, 0x57, 0x24, 0x38, 0xbf, 0x4b, 0x1a, 0x2f, 0xc1, 0x45, 0x09, - 0xae, 0x48, 0x70, 0xfe, 0x51, 0x69, 0xbc, 0x04, 0x17, 0x25, 0xb8, 0x22, - 0xc1, 0xf9, 0x6f, 0x48, 0xe3, 0x25, 0xb8, 0x28, 0xc1, 0x15, 0x09, 0xce, - 0x3b, 0x18, 0x76, 0x37, 0xbd, 0x97, 0xe4, 0xe3, 0x01, 0x2e, 0xcf, 0xfb, - 0xd9, 0xd7, 0xf8, 0x78, 0x80, 0x4b, 0xbf, 0x39, 0x3c, 0x62, 0xb0, 0xf1, - 0x00, 0x17, 0x5e, 0xf8, 0xe8, 0x43, 0x06, 0xe7, 0x3b, 0x31, 0x9c, 0xdb, - 0xb5, 0xb4, 0xc1, 0x61, 0xe3, 0x01, 0xee, 0xef, 0x9e, 0x77, 0x1f, 0x83, - 0x8b, 0x00, 0xf7, 0xce, 0xd9, 0xbd, 0x6b, 0x35, 0x1b, 0x0f, 0x70, 0xfe, - 0x27, 0xdb, 0x8f, 0x33, 0x38, 0xdf, 0x25, 0xd1, 0x2f, 0xc1, 0x45, 0x09, - 0xae, 0x48, 0x70, 0x7e, 0xb5, 0x34, 0x5e, 0x82, 0x8b, 0x12, 0x5c, 0x91, - 0xe0, 0x7c, 0xb7, 0x34, 0x5e, 0x82, 0x8b, 0x12, 0x5c, 0x91, 0xe0, 0xfc, - 0x1a, 0x69, 0xbc, 0x04, 0x17, 0x25, 0xb8, 0x22, 0xc1, 0xf9, 0xb5, 0xd2, - 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0xf3, 0x57, 0x48, 0xe3, 0x25, - 0xb8, 0x28, 0xc1, 0x15, 0x09, 0xce, 0xaf, 0x83, 0xfd, 0xf9, 0xc3, 0x37, - 0xf8, 0x7e, 0xf6, 0x03, 0x7c, 0xf4, 0xab, 0x6f, 0x73, 0xb8, 0x48, 0xda, - 0x1f, 0x7f, 0x87, 0xc3, 0x15, 0xd2, 0xfe, 0x83, 0xf7, 0xbd, 0xfd, 0x5f, - 0x0f, 0xe7, 0xff, 0xf2, 0xbf, 0x3e, 0xce, 0xc7, 0x13, 0xf8, 0xa6, 0xef, - 0x73, 0xb8, 0x48, 0xe0, 0x07, 0x86, 0x39, 0x5c, 0x01, 0xb8, 0xf2, 0xf4, - 0xa3, 0x1c, 0xce, 0x6f, 0x00, 0xf8, 0xe5, 0x51, 0x6f, 0x3c, 0x81, 0x7f, - 0xfe, 0x2d, 0x6f, 0x3c, 0xc0, 0x68, 0xe6, 0xdc, 0x63, 0x7c, 0x3c, 0xc0, - 0xa3, 0x4b, 0x2f, 0xe0, 0x70, 0xfe, 0x33, 0x18, 0xb6, 0xbb, 0x4c, 0x0e, - 0xf7, 0x03, 0x5c, 0xbc, 0x3d, 0xcb, 0xe1, 0x22, 0xc0, 0xce, 0x8e, 0x9c, - 0x37, 0x1e, 0xe0, 0xa3, 0xcf, 0x9f, 0xed, 0x8d, 0xef, 0x01, 0xfc, 0xa5, - 0x57, 0xbd, 0xf5, 0xf7, 0x50, 0xfe, 0x54, 0xf8, 0x78, 0x09, 0xae, 0x48, - 0x70, 0x7e, 0xa3, 0x08, 0xf7, 0x4b, 0x70, 0x51, 0x82, 0x2b, 0x12, 0x9c, - 0xbf, 0x52, 0x1a, 0x2f, 0xc1, 0x45, 0x09, 0xae, 0x48, 0x70, 0xfe, 0xb3, - 0xd2, 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0x45, 0xff, 0xae, 0xda, - 0x3f, 0x98, 0x19, 0x84, 0x6b, 0xfa, 0x1b, 0x36, 0xff, 0xa6, 0x31, 0xa7, - 0x92, 0x4d, 0x36, 0x43, 0xf3, 0x9c, 0xcc, 0x1a, 0xfe, 0x4a, 0xbf, 0xe6, - 0x04, 0xe4, 0x93, 0xe2, 0x4b, 0x24, 0xb0, 0xfe, 0x07, 0x9f, 0x1b, 0xb7, - 0xdf, 0x98, 0x60, 0x6d, 0x1f, 0xcd, 0x41, 0x76, 0x6f, 0x6d, 0x7c, 0x6a, - 0xf4, 0xb3, 0xb3, 0x51, 0xfe, 0x98, 0x7e, 0x36, 0xab, 0xfb, 0x53, 0xd3, - 0x0a, 0x17, 0x6b, 0xef, 0x8f, 0x1a, 0xcc, 0xd6, 0x57, 0x89, 0x58, 0x5f, - 0xcd, 0xf9, 0x6a, 0x8c, 0xaf, 0x79, 0x5f, 0x51, 0x9c, 0xcf, 0xf5, 0x74, - 0x95, 0xc3, 0xe5, 0x27, 0xcb, 0xee, 0x2b, 0x9b, 0x70, 0xab, 0xe6, 0xdd, - 0x67, 0x10, 0xb2, 0x48, 0xbb, 0xaf, 0x9c, 0x6d, 0xb4, 0xef, 0x90, 0x36, - 0x88, 0x72, 0x25, 0x64, 0xb5, 0xd0, 0xfe, 0xf6, 0x56, 0xdc, 0x1f, 0x5d, - 0xa8, 0x33, 0xd4, 0x1f, 0x87, 0xcb, 0x4f, 0x46, 0xc4, 0x8f, 0x5e, 0x67, - 0x4d, 0x13, 0x0c, 0xfe, 0xdd, 0xee, 0x5f, 0x2d, 0x7e, 0x9d, 0x86, 0x4f, - 0xec, 0xfc, 0x9f, 0x7c, 0x78, 0x7a, 0xe9, 0xb1, 0x91, 0x14, 0x7f, 0xc0, - 0x7f, 0xf8, 0x83, 0xd6, 0x40, 0x7f, 0xa6, 0x7f, 0xbd, 0x76, 0xf4, 0x43, - 0x24, 0xca, 0x77, 0x2e, 0x23, 0xc2, 0x70, 0xa2, 0x92, 0xc8, 0x3f, 0x57, - 0x78, 0x50, 0x3a, 0x3f, 0xd4, 0xd5, 0xd9, 0x41, 0xf9, 0x8b, 0xf1, 0xa7, - 0x5b, 0xe9, 0xf9, 0xb2, 0xf5, 0xa0, 0x3e, 0x76, 0x8f, 0x9f, 0x0c, 0x7d, - 0x5c, 0x1b, 0x9e, 0x11, 0x00, 0xeb, 0x99, 0x9f, 0xf7, 0x77, 0x9b, 0xd4, - 0xfa, 0xa3, 0xd9, 0x8a, 0xf8, 0x2f, 0x50, 0xc4, 0xbf, 0x42, 0x11, 0xff, - 0x3a, 0x45, 0xfc, 0xd7, 0x29, 0xe2, 0xff, 0x92, 0x22, 0xfe, 0x7b, 0x15, - 0xf1, 0x6f, 0x55, 0xc4, 0xbf, 0x5b, 0x11, 0xff, 0xd3, 0x8a, 0xf8, 0xbf, - 0xab, 0x88, 0xff, 0xef, 0x15, 0xf1, 0xff, 0x83, 0x22, 0xfe, 0x37, 0x15, - 0xf1, 0x4f, 0x28, 0xe2, 0xff, 0x50, 0x11, 0x7f, 0x42, 0x53, 0xc3, 0x7f, - 0xa6, 0x5a, 0x7f, 0x34, 0x57, 0x11, 0x7f, 0x5e, 0x11, 0xff, 0x2a, 0x45, - 0xfc, 0x1b, 0x15, 0xf1, 0xdf, 0xac, 0x88, 0xff, 0x4e, 0x45, 0xfc, 0xf7, - 0x29, 0xe2, 0xdf, 0xae, 0x88, 0xff, 0x71, 0x45, 0xfc, 0xcf, 0x28, 0xe2, - 0xff, 0x9e, 0x22, 0xfe, 0x57, 0x14, 0xf1, 0x1f, 0x55, 0xc4, 0xff, 0xaf, - 0x8a, 0xf8, 0xdf, 0x57, 0xc4, 0xff, 0x5b, 0x45, 0xfc, 0x69, 0x5d, 0x0d, - 0x7f, 0x8b, 0x5a, 0x7f, 0xb4, 0x50, 0x11, 0xff, 0x52, 0x45, 0xfc, 0xdd, - 0x8a, 0xf8, 0xaf, 0x56, 0xc4, 0x7f, 0x9b, 0x22, 0xfe, 0xcd, 0x8a, 0xf8, - 0x1f, 0x52, 0xc4, 0xbf, 0x53, 0x11, 0xff, 0xb7, 0x15, 0xf1, 0xff, 0xa5, - 0x22, 0xfe, 0x97, 0x14, 0xf1, 0xff, 0x48, 0x11, 0xff, 0x1b, 0x8a, 0xf8, - 0x7f, 0xa1, 0x88, 0xff, 0xbf, 0x15, 0xf1, 0x23, 0x43, 0x0d, 0xff, 0x0c, - 0xb5, 0xfe, 0xee, 0x6c, 0x45, 0xfc, 0x17, 0x2a, 0xe2, 0x5f, 0xa1, 0x88, - 0x7f, 0xbd, 0x22, 0xfe, 0xeb, 0x14, 0xf1, 0xdf, 0xae, 0x88, 0xff, 0x5e, - 0x45, 0xfc, 0xdb, 0x14, 0xf1, 0xef, 0x56, 0xc4, 0x5f, 0x30, 0x4e, 0xc5, - 0xfd, 0xc3, 0xdd, 0x88, 0x2e, 0xfe, 0x24, 0x7c, 0xfd, 0xe5, 0x2a, 0x44, - 0xe2, 0x09, 0x47, 0x58, 0x06, 0x78, 0x53, 0x82, 0xde, 0x9f, 0xb2, 0x2c, - 0xbe, 0x30, 0x61, 0x02, 0xcc, 0xf3, 0x75, 0x2f, 0x5e, 0xc5, 0xe7, 0xdb, - 0xc5, 0xe3, 0x0b, 0x26, 0xeb, 0xcf, 0xef, 0x63, 0x1a, 0x1a, 0xd4, 0x0a, - 0xf4, 0xda, 0xf5, 0x24, 0xbe, 0xb5, 0x2d, 0x40, 0x65, 0xd3, 0xcf, 0xd7, - 0x16, 0x9c, 0xcb, 0xc8, 0x55, 0x0c, 0xff, 0xa9, 0xb9, 0xc3, 0x40, 0x6d, - 0x40, 0x4a, 0xe1, 0x90, 0x36, 0xc8, 0xf1, 0xbf, 0x35, 0x4e, 0xf1, 0x5b, - 0x48, 0x43, 0x0e, 0x84, 0xf2, 0xaf, 0x1f, 0x40, 0x94, 0x3e, 0x91, 0x7e, - 0xde, 0xbf, 0xf3, 0x6b, 0xe1, 0xeb, 0xb7, 0x2d, 0x84, 0x9c, 0xb4, 0xdd, - 0x88, 0x26, 0x2f, 0x45, 0xe5, 0x14, 0xda, 0x8f, 0x74, 0x16, 0xef, 0xb9, - 0x94, 0x04, 0x60, 0xfa, 0xbc, 0x0b, 0x76, 0x87, 0xc3, 0xe8, 0x71, 0x66, - 0x61, 0x7a, 0x9e, 0xfa, 0xd1, 0xfc, 0x96, 0xe4, 0xa2, 0xe6, 0x11, 0xd7, - 0x42, 0xbb, 0x06, 0xf7, 0x90, 0x54, 0xc2, 0x84, 0x11, 0x5c, 0x3f, 0xa7, - 0x0f, 0x69, 0x1b, 0x0f, 0xd1, 0x7c, 0xf4, 0x26, 0x9d, 0xac, 0x9f, 0x05, - 0xfb, 0x9c, 0x46, 0xc2, 0x87, 0x3e, 0x88, 0xe2, 0x10, 0xfa, 0xad, 0x3c, - 0xc2, 0x73, 0xf3, 0x78, 0x13, 0xba, 0x96, 0xe5, 0xab, 0xad, 0x6d, 0x63, - 0x8d, 0x20, 0x1c, 0xed, 0x4c, 0x48, 0xaa, 0xf1, 0x37, 0x1c, 0x64, 0xf8, - 0x85, 0xf8, 0x50, 0x27, 0xc3, 0x0f, 0xcb, 0x71, 0xf4, 0x6a, 0xfc, 0xd7, - 0x31, 0xfc, 0xe9, 0xc1, 0x31, 0x20, 0xc1, 0x3d, 0x2f, 0x12, 0xbf, 0x26, - 0xe2, 0x77, 0xb2, 0x07, 0xdb, 0xdb, 0xd8, 0xfe, 0x61, 0xd8, 0xaa, 0xe2, - 0x0f, 0xfd, 0x5c, 0xcf, 0xf0, 0x57, 0xe1, 0xf3, 0xe4, 0x61, 0x82, 0x8d, - 0xdf, 0x65, 0x90, 0xf5, 0x33, 0x7c, 0xbc, 0xff, 0xa7, 0xf6, 0xd3, 0xfe, - 0xa6, 0x84, 0x1f, 0xa1, 0x9d, 0xdc, 0xfd, 0x27, 0xfc, 0x76, 0xd0, 0xeb, - 0x9a, 0x03, 0x53, 0xb5, 0xdc, 0xa5, 0x43, 0xbc, 0x8b, 0xd1, 0xe3, 0xde, - 0xc0, 0xf3, 0xfd, 0x64, 0x3f, 0x47, 0x1a, 0x20, 0x9e, 0xea, 0x26, 0xb0, - 0x10, 0x75, 0x6e, 0x3c, 0xa8, 0xb5, 0xe1, 0x5d, 0x9f, 0xdc, 0x6c, 0x94, - 0x87, 0xb5, 0xb1, 0x9b, 0xaf, 0x74, 0xcd, 0x32, 0x5a, 0xae, 0x6b, 0xe8, - 0xb9, 0xc4, 0x8f, 0x11, 0xda, 0x8e, 0xf7, 0xeb, 0x60, 0x36, 0xe7, 0xd3, - 0x57, 0x4d, 0x3f, 0x97, 0x77, 0xbe, 0xfe, 0x23, 0xda, 0xca, 0x10, 0xfa, - 0x79, 0x7f, 0x46, 0xbf, 0x7b, 0x0b, 0xa7, 0x07, 0xe4, 0xed, 0x2c, 0xa0, - 0x97, 0xee, 0x07, 0xd0, 0x9b, 0x84, 0x5a, 0x86, 0xc3, 0x14, 0x46, 0x68, - 0x79, 0x8a, 0x0d, 0x49, 0x86, 0xdf, 0x57, 0xbc, 0xf3, 0xa7, 0xd1, 0xf3, - 0xd4, 0xc3, 0xcf, 0x17, 0xe1, 0x07, 0xe7, 0xd7, 0xe7, 0x23, 0xf8, 0x6f, - 0xa1, 0x8d, 0x06, 0xa5, 0x97, 0xae, 0x8f, 0xd3, 0xb7, 0x26, 0xb2, 0xbf, - 0xc8, 0x4f, 0x4f, 0x5e, 0xa5, 0xf3, 0x75, 0x46, 0x42, 0x58, 0x6f, 0xaf, - 0x46, 0x03, 0x31, 0x7d, 0x7e, 0x7c, 0x71, 0x42, 0x0f, 0x8b, 0x27, 0x02, - 0xab, 0x1d, 0x40, 0xba, 0x6f, 0x2e, 0x5b, 0x7f, 0x0f, 0x27, 0x29, 0x51, - 0xcf, 0x7d, 0x2d, 0x82, 0xdf, 0xe8, 0x8b, 0x8c, 0xde, 0x93, 0xbd, 0x3e, - 0x0b, 0xeb, 0x33, 0xc2, 0xcf, 0xc9, 0xfb, 0xe2, 0xf6, 0x1f, 0xdd, 0xee, - 0xd5, 0x9f, 0x84, 0xd3, 0xbf, 0xbf, 0x89, 0xf6, 0x87, 0x5e, 0x2b, 0x4d, - 0xdb, 0x00, 0x79, 0x2d, 0x27, 0xd0, 0x18, 0xd5, 0x17, 0xe3, 0x4d, 0x9e, - 0x7e, 0x44, 0x4d, 0xc8, 0x3b, 0xaa, 0x0a, 0xfc, 0x79, 0x1b, 0xf9, 0xf4, - 0x40, 0x42, 0x13, 0x75, 0x70, 0x79, 0xf3, 0xce, 0x93, 0x1e, 0xa4, 0xff, - 0xbe, 0x74, 0x7d, 0xf6, 0x82, 0xf7, 0xff, 0x7c, 0xa3, 0x5a, 0x7f, 0xf9, - 0x7c, 0x6c, 0xaa, 0xc1, 0x9f, 0xf9, 0x27, 0x88, 0xff, 0x0e, 0x0f, 0x7f, - 0x0f, 0x5f, 0x6f, 0x22, 0x3c, 0xbe, 0xbd, 0x53, 0xb2, 0x57, 0xae, 0x89, - 0x3d, 0x29, 0x48, 0xa9, 0x69, 0x2f, 0x1d, 0x42, 0x83, 0x55, 0xf6, 0x14, - 0x1b, 0x88, 0x26, 0x62, 0x1f, 0xe7, 0x31, 0x7e, 0xca, 0xf8, 0xcc, 0x40, - 0xfa, 0xb1, 0x2a, 0xff, 0x14, 0xb0, 0xaf, 0xc7, 0x88, 0x7d, 0xb5, 0xf1, - 0xae, 0x3a, 0x67, 0xec, 0x4d, 0x20, 0x3b, 0x8f, 0x4a, 0x29, 0xbc, 0xff, - 0xe8, 0x06, 0x26, 0x8d, 0x6e, 0x33, 0xec, 0xb7, 0x8b, 0x8e, 0x74, 0x3a, - 0x4d, 0x81, 0xf3, 0xcf, 0x04, 0xf8, 0x57, 0x7f, 0xc1, 0xd6, 0x47, 0x66, - 0x1b, 0x4e, 0x83, 0xfc, 0xd8, 0x01, 0x7b, 0x8a, 0xf6, 0x81, 0xfa, 0xa6, - 0xf4, 0x61, 0xa1, 0x35, 0xeb, 0x8f, 0x27, 0x9f, 0x19, 0xeb, 0x3f, 0x78, - 0xe7, 0xe5, 0xa7, 0x0b, 0x42, 0xd7, 0xcf, 0xf7, 0xc3, 0xf9, 0x52, 0x52, - 0x38, 0x0f, 0x2e, 0x72, 0x8c, 0xa0, 0xbd, 0xd0, 0xdd, 0xb5, 0x46, 0xf0, - 0x7c, 0xf2, 0xfe, 0x6c, 0x79, 0xc5, 0xaf, 0x9c, 0x83, 0x42, 0xe5, 0x83, - 0x7f, 0x79, 0x4a, 0xaf, 0x8f, 0xbe, 0x68, 0x7a, 0x3a, 0x8d, 0x93, 0x8b, - 0xbf, 0xeb, 0x24, 0xe3, 0x5f, 0x7d, 0x92, 0xf1, 0x7f, 0x86, 0xed, 0x0f, - 0x2a, 0x75, 0xea, 0x71, 0xfe, 0xe3, 0xeb, 0x92, 0x7d, 0x8a, 0x3a, 0x2f, - 0x8b, 0xc2, 0xcf, 0x0b, 0x3f, 0x0f, 0xce, 0x7b, 0x92, 0xbf, 0x39, 0x91, - 0x02, 0x7c, 0x39, 0x6c, 0x7f, 0x89, 0xbd, 0x68, 0xd9, 0x9c, 0x2a, 0x6d, - 0xf5, 0xf5, 0xd5, 0xbf, 0x7d, 0x8e, 0xeb, 0xcf, 0x5d, 0x46, 0x53, 0x72, - 0x08, 0xeb, 0xb2, 0xe3, 0xc9, 0xc2, 0x08, 0x1e, 0x4f, 0x68, 0x1d, 0x6f, - 0xf0, 0xf5, 0x67, 0x83, 0x16, 0xb4, 0x2f, 0x30, 0x7a, 0x71, 0x5a, 0x38, - 0xff, 0xdc, 0xbe, 0x27, 0x51, 0x99, 0x9e, 0x2f, 0x62, 0xaf, 0x27, 0x2f, - 0xa1, 0xf4, 0x62, 0x7d, 0xbc, 0x60, 0x36, 0x0c, 0x67, 0xf4, 0xf3, 0x7a, - 0xc8, 0x51, 0x03, 0x72, 0xc0, 0xf8, 0xbc, 0x5e, 0x1f, 0xaf, 0x9f, 0xb9, - 0xff, 0xb7, 0xfa, 0x32, 0x41, 0x9e, 0x7f, 0xe0, 0xed, 0xcf, 0xc3, 0xdc, - 0x9f, 0xce, 0x0a, 0xfe, 0x22, 0xeb, 0xcf, 0xce, 0x43, 0x7f, 0x6a, 0x6c, - 0x3e, 0x1b, 0xff, 0x1a, 0x12, 0xfa, 0xa3, 0xc3, 0x5a, 0x10, 0xe6, 0xfa, - 0xcf, 0xbd, 0xc7, 0x10, 0xec, 0x1f, 0xe7, 0x97, 0x85, 0x5e, 0xd3, 0x9a, - 0x60, 0xab, 0xdd, 0x63, 0xd4, 0x7f, 0x26, 0xfa, 0x62, 0x3c, 0xe3, 0xf3, - 0x2b, 0x23, 0xf0, 0x0b, 0x88, 0x5b, 0x2e, 0xec, 0xbf, 0xe7, 0x7f, 0x50, - 0x7e, 0x11, 0xfd, 0xe5, 0xf3, 0x0b, 0xc8, 0x9f, 0x9b, 0x0d, 0xf0, 0x0b, - 0x16, 0x50, 0xb8, 0xb2, 0xd1, 0x1f, 0x7f, 0x8e, 0x92, 0x3d, 0xe3, 0x5f, - 0x0e, 0x7b, 0xfc, 0x5a, 0xcf, 0xfd, 0x8b, 0x26, 0xb2, 0x7e, 0x56, 0xb7, - 0x98, 0x7a, 0x85, 0xf3, 0xa7, 0x41, 0x0f, 0xb6, 0xc3, 0xf4, 0x74, 0xbd, - 0x8b, 0x04, 0x79, 0xe7, 0xfc, 0x60, 0xfc, 0x72, 0x38, 0xbf, 0xa8, 0xa6, - 0x1c, 0x4f, 0xfb, 0xfc, 0x48, 0x57, 0xc9, 0xcf, 0x92, 0x74, 0xa8, 0xfc, - 0x53, 0x7e, 0x60, 0x7e, 0x3a, 0x2d, 0x3e, 0x3f, 0x80, 0xbd, 0x1d, 0x0d, - 0x01, 0x7e, 0xb0, 0x75, 0x3c, 0x6b, 0xf2, 0xf1, 0x37, 0x4c, 0x89, 0x1f, - 0x6f, 0x7a, 0xfc, 0x78, 0x8d, 0xcf, 0xdf, 0x44, 0xfd, 0x63, 0xc6, 0x8f, - 0x17, 0x38, 0x3f, 0x1e, 0x16, 0xda, 0xeb, 0xe4, 0x07, 0x1a, 0xe2, 0xfc, - 0x20, 0x02, 0x38, 0xde, 0xe8, 0xf3, 0xa3, 0xb1, 0x4a, 0x3e, 0x96, 0xc5, - 0xc9, 0x07, 0xee, 0x4d, 0xee, 0x13, 0xfc, 0x3c, 0x41, 0x31, 0xcb, 0xac, - 0x00, 0x3f, 0xb8, 0xbd, 0x7a, 0x0e, 0xdc, 0x11, 0x38, 0x4f, 0x6d, 0x53, - 0xe2, 0xc7, 0x2f, 0xab, 0xe4, 0x63, 0xd3, 0x0c, 0xaa, 0x3f, 0x98, 0xbf, - 0xd9, 0x82, 0xd7, 0x69, 0x70, 0xfe, 0x0f, 0xe1, 0x1d, 0xc9, 0x83, 0x5f, - 0x84, 0xc7, 0xaf, 0xd7, 0x83, 0xfd, 0xeb, 0x95, 0x97, 0x7a, 0xf9, 0x03, - 0xa3, 0x97, 0x89, 0xfa, 0x46, 0x90, 0x17, 0x4f, 0x1f, 0x73, 0xfe, 0x90, - 0xd6, 0x3d, 0x16, 0xd0, 0x87, 0xc0, 0x1f, 0xc4, 0x5e, 0xc9, 0xee, 0xe6, - 0xe0, 0xf8, 0x1b, 0xa7, 0xc4, 0x9f, 0xff, 0xf5, 0xf5, 0x0d, 0x9f, 0x3f, - 0x17, 0xb8, 0x3f, 0xda, 0x86, 0xc5, 0xed, 0x6d, 0x83, 0x11, 0x6c, 0xaf, - 0x93, 0x1f, 0xae, 0xc7, 0x0f, 0xd2, 0x3c, 0x9e, 0xf5, 0xf9, 0x91, 0xad, - 0x92, 0x97, 0x15, 0xa2, 0xbc, 0xc4, 0xea, 0x5f, 0x70, 0x50, 0x16, 0xcc, - 0x90, 0xf4, 0xaf, 0xfd, 0x59, 0xcb, 0x1f, 0xdf, 0x32, 0x25, 0x7e, 0xb0, - 0x2a, 0x8b, 0x7e, 0x7f, 0xff, 0x27, 0x66, 0x04, 0xee, 0xb7, 0x39, 0x9f, - 0x1f, 0x9e, 0xbe, 0x9d, 0x11, 0xe6, 0x3f, 0x72, 0x7e, 0xfc, 0xe3, 0xb5, - 0x11, 0xf1, 0x06, 0xf2, 0xcf, 0x78, 0x82, 0xf3, 0x83, 0xf1, 0xab, 0x34, - 0x18, 0xa9, 0x9f, 0xd7, 0x53, 0xfd, 0x5c, 0xba, 0x8f, 0xc5, 0x37, 0xb8, - 0xbc, 0x4c, 0x04, 0xef, 0x7b, 0x6e, 0xe4, 0x78, 0x0d, 0xf6, 0x6b, 0xc4, - 0x42, 0xa5, 0x45, 0x90, 0xe6, 0x1e, 0x0b, 0xdc, 0xc7, 0xc8, 0x78, 0xe8, - 0xee, 0xb4, 0x8a, 0xfa, 0xe9, 0xfc, 0x06, 0xdf, 0x3e, 0x3f, 0xce, 0xdc, - 0xe5, 0x24, 0x5a, 0xbe, 0x64, 0xaf, 0x81, 0xb6, 0xf7, 0x3b, 0x86, 0xb7, - 0x18, 0x47, 0xd7, 0xb0, 0x3f, 0x8c, 0xda, 0xec, 0xec, 0xb6, 0x28, 0x7f, - 0xb2, 0xb0, 0x15, 0x5b, 0x12, 0x67, 0x99, 0x9d, 0xca, 0x65, 0x21, 0x83, - 0x8e, 0x9e, 0xd1, 0x5f, 0x19, 0xdb, 0x82, 0xff, 0xde, 0xfc, 0xca, 0x3d, - 0x84, 0xa1, 0xc3, 0xcd, 0xf6, 0x73, 0x54, 0x18, 0xac, 0x0b, 0xe9, 0x78, - 0x9b, 0xfb, 0xab, 0x78, 0x72, 0xe2, 0xaf, 0xf2, 0x78, 0x11, 0x3e, 0xad, - 0xa1, 0xfb, 0xc9, 0xda, 0x9d, 0x01, 0xe1, 0x3e, 0xbb, 0x9a, 0xd9, 0x4b, - 0xce, 0x8f, 0xe6, 0xfd, 0xe2, 0x7d, 0x4f, 0x0f, 0xdc, 0xf7, 0x82, 0xf2, - 0xcc, 0xf5, 0x4f, 0xf7, 0xea, 0xcb, 0x82, 0xf7, 0x47, 0x87, 0xf3, 0x17, - 0x79, 0x06, 0x7f, 0x00, 0x05, 0xef, 0x4b, 0x9c, 0xdf, 0xf8, 0xbc, 0x30, - 0x89, 0x19, 0x98, 0xe9, 0xdb, 0xa3, 0x71, 0xcb, 0x97, 0x7f, 0xab, 0x4a, - 0x1f, 0xe4, 0x63, 0xf4, 0x81, 0xa7, 0xaf, 0xb8, 0x3e, 0x20, 0xd2, 0xb9, - 0xb7, 0x21, 0xa8, 0x0f, 0xf6, 0x4c, 0x83, 0x3e, 0x58, 0x69, 0xc8, 0xfa, - 0x60, 0x82, 0xd2, 0xcf, 0xd7, 0xb3, 0xef, 0xd8, 0x4c, 0x85, 0xf3, 0x5f, - 0xda, 0x5e, 0x5b, 0x1f, 0x26, 0xeb, 0xb2, 0x17, 0x35, 0xe9, 0x9f, 0xcd, - 0xbf, 0x9b, 0x61, 0xeb, 0x75, 0xc1, 0xde, 0x14, 0xed, 0x14, 0xdc, 0xa7, - 0xa8, 0xbf, 0x39, 0x90, 0x9c, 0x0a, 0x7f, 0xae, 0x34, 0xaa, 0xec, 0x89, - 0x26, 0xf0, 0x27, 0x37, 0xc0, 0x60, 0x4b, 0xf2, 0x7f, 0x25, 0x7c, 0x74, - 0xad, 0xae, 0xc1, 0xe3, 0x13, 0xc4, 0x3f, 0xc0, 0xfe, 0xaa, 0x95, 0x47, - 0x76, 0x12, 0xec, 0x61, 0xd6, 0xb5, 0xc0, 0x1e, 0xda, 0xef, 0x33, 0x79, - 0x76, 0x34, 0x88, 0x7f, 0x8e, 0xa0, 0xc9, 0x55, 0xe7, 0xe3, 0xfb, 0xa7, - 0x83, 0x36, 0xea, 0xcb, 0x89, 0xc8, 0xdf, 0xad, 0x95, 0xb1, 0x3e, 0xc0, - 0xda, 0x6e, 0x5f, 0x8f, 0x89, 0x9e, 0xfa, 0xea, 0x1e, 0x1a, 0x1f, 0x85, - 0x91, 0x7d, 0xd6, 0xfe, 0x04, 0xa0, 0xbe, 0x3e, 0x24, 0x5e, 0x8a, 0xfd, - 0x69, 0xae, 0x5f, 0xf5, 0xe0, 0x79, 0x79, 0x24, 0x52, 0xff, 0x48, 0xe7, - 0x43, 0x59, 0x9f, 0x67, 0x62, 0xed, 0x3f, 0x7c, 0xb5, 0x65, 0x7f, 0xc8, - 0xed, 0x69, 0xf0, 0xc7, 0x9f, 0x3d, 0x25, 0x79, 0xbe, 0xc3, 0xdb, 0x2f, - 0xcf, 0x7e, 0x35, 0x0b, 0xfb, 0x35, 0x30, 0xd0, 0xac, 0x22, 0xcf, 0x8f, - 0xd4, 0xf4, 0x07, 0xa3, 0xf4, 0x93, 0x78, 0x9e, 0xa3, 0xe8, 0xbd, 0xb7, - 0xfa, 0xfc, 0x89, 0xf4, 0xa2, 0x49, 0x15, 0x7a, 0xd1, 0xce, 0x9a, 0xe7, - 0x2f, 0x8a, 0xde, 0xfa, 0xce, 0xdf, 0x96, 0xea, 0xf3, 0x30, 0x4b, 0xa4, - 0x77, 0x60, 0x56, 0x9c, 0x7d, 0xf4, 0xf3, 0x03, 0x11, 0xfa, 0x1c, 0x7d, - 0x40, 0xe4, 0x9f, 0x1a, 0x94, 0xf1, 0x14, 0xa7, 0x9f, 0xeb, 0x6f, 0x7e, - 0x7e, 0x5a, 0xa9, 0xfc, 0xb7, 0x69, 0x58, 0x1f, 0x93, 0xf8, 0x2d, 0x56, - 0xd0, 0x7d, 0x4d, 0x29, 0x28, 0xf1, 0x4f, 0x2c, 0xa7, 0xe7, 0xe1, 0x28, - 0xad, 0xef, 0xb2, 0x6c, 0x94, 0xb4, 0x51, 0xc8, 0x79, 0xd0, 0x82, 0xe7, - 0x01, 0xc4, 0xaf, 0x09, 0xfe, 0x57, 0x58, 0xe4, 0xf9, 0x1b, 0xa0, 0x82, - 0x39, 0x3f, 0x73, 0x68, 0x23, 0x5a, 0x69, 0x05, 0xe2, 0x47, 0x5a, 0x56, - 0x63, 0xf1, 0xf1, 0xa4, 0x54, 0x3f, 0x99, 0x08, 0xb3, 0x0f, 0x74, 0x7f, - 0x9e, 0xd6, 0xfd, 0xfd, 0x08, 0xf0, 0xdb, 0x8d, 0xbb, 0x7f, 0xf1, 0xfd, - 0xe2, 0xe5, 0xc0, 0x93, 0x67, 0xd1, 0xf9, 0x3c, 0x7f, 0xa0, 0x4e, 0x7d, - 0x39, 0xcc, 0xfb, 0x9f, 0xc5, 0xe3, 0x47, 0x69, 0xf0, 0xaf, 0x1c, 0xaa, - 0x1f, 0x73, 0xd0, 0x9a, 0xb3, 0x4d, 0x64, 0x2d, 0xa1, 0xfa, 0x08, 0xad, - 0xe3, 0xf1, 0xe8, 0x63, 0x73, 0x68, 0xfc, 0x09, 0xd3, 0x9e, 0x4a, 0x81, - 0x1e, 0x75, 0x86, 0x40, 0x1e, 0x59, 0xfc, 0xd3, 0xb9, 0x4b, 0xb3, 0x63, - 0xf6, 0xbb, 0x59, 0x8a, 0xe7, 0x1f, 0xf2, 0xee, 0xbf, 0x3b, 0x78, 0x3e, - 0x08, 0x01, 0xfd, 0xbc, 0x7f, 0xd7, 0x75, 0xa2, 0xbd, 0x7e, 0xcb, 0xeb, - 0xcf, 0xe3, 0x77, 0x9b, 0x2c, 0xba, 0xfe, 0xc0, 0x78, 0xca, 0x0f, 0xc3, - 0xe3, 0x07, 0xa5, 0x27, 0x45, 0xe3, 0x77, 0xe5, 0xf8, 0xf8, 0x9d, 0x33, - 0x9f, 0xea, 0x1f, 0x1e, 0x7f, 0x28, 0x1d, 0x63, 0xf1, 0x87, 0xac, 0xa0, - 0x2f, 0xfd, 0xf8, 0x9b, 0x18, 0x2f, 0xfd, 0xee, 0x55, 0xe1, 0xf9, 0x0d, - 0xd9, 0xfe, 0xf3, 0xf5, 0xa4, 0x23, 0xe2, 0xd1, 0x9c, 0x3f, 0x8d, 0x52, - 0xfc, 0x3a, 0x53, 0x23, 0x7e, 0x9d, 0x65, 0xed, 0x39, 0x1e, 0x2c, 0x94, - 0xc6, 0xcf, 0x0a, 0xf8, 0x3b, 0xf0, 0xf9, 0x44, 0x64, 0x7e, 0x26, 0xab, - 0x89, 0xf9, 0x8d, 0xf0, 0x78, 0xf8, 0x5b, 0x57, 0x89, 0xfe, 0x7e, 0x5a, - 0x3f, 0xcb, 0x8c, 0x8b, 0x9f, 0x4b, 0xfd, 0x4b, 0x8a, 0xfd, 0x51, 0x23, - 0xeb, 0xcf, 0xe7, 0x3b, 0x83, 0xc1, 0x72, 0x7f, 0xb6, 0xbe, 0xf2, 0xfd, - 0x63, 0x1f, 0x24, 0xe2, 0xe2, 0xc9, 0x97, 0xde, 0xa2, 0x16, 0x4f, 0x7e, - 0xe7, 0x4f, 0xea, 0xcd, 0x9f, 0x7a, 0xfe, 0x9d, 0x52, 0x7c, 0xfe, 0xf2, - 0x76, 0x35, 0x7a, 0xc6, 0x75, 0xb5, 0xfe, 0x47, 0x3e, 0xad, 0x4a, 0x7f, - 0xb8, 0x3f, 0xe5, 0xe5, 0x0f, 0x24, 0xfc, 0x87, 0x6f, 0x16, 0xf8, 0x8f, - 0x0a, 0xed, 0xd9, 0xd8, 0x78, 0xed, 0x3b, 0x46, 0x38, 0x3d, 0xf5, 0xe2, - 0x77, 0xed, 0x6c, 0x6c, 0xbe, 0xe0, 0xcc, 0x3f, 0x55, 0x5e, 0x6f, 0x4a, - 0x29, 0xdf, 0x74, 0x93, 0x94, 0x9f, 0xac, 0x41, 0xcf, 0x6f, 0x35, 0xb5, - 0xfd, 0xba, 0xed, 0x49, 0x11, 0x7f, 0x2d, 0x7e, 0xa6, 0x4d, 0x35, 0xfc, - 0xab, 0x22, 0xf3, 0x3b, 0x8d, 0x52, 0xbe, 0x82, 0xdb, 0x63, 0x9a, 0xdf, - 0xe2, 0xf7, 0xa3, 0xf2, 0x47, 0x67, 0x53, 0xfb, 0xbb, 0xc7, 0x26, 0xd1, - 0xdc, 0x2b, 0xda, 0x37, 0x69, 0x61, 0xf7, 0x3f, 0x39, 0x9f, 0x9b, 0xe1, - 0xe7, 0x1d, 0x5f, 0xee, 0x1c, 0x85, 0xf5, 0xd7, 0xda, 0xef, 0x6b, 0xaf, - 0x56, 0x5b, 0xff, 0x3f, 0x3d, 0x51, 0x23, 0x1e, 0x8e, 0x16, 0xc5, 0xc5, - 0xc3, 0xf1, 0xb5, 0x82, 0xe6, 0x2f, 0xea, 0xef, 0xdf, 0x29, 0xf6, 0xaf, - 0xe4, 0x63, 0xfb, 0x23, 0xd4, 0xae, 0xa4, 0x1f, 0x35, 0xa6, 0x0f, 0xa3, - 0xd6, 0x9b, 0x59, 0xaa, 0xc6, 0x9f, 0x85, 0x33, 0x44, 0xfc, 0xff, 0x73, - 0x8b, 0x16, 0xcb, 0xff, 0xbf, 0x59, 0x5c, 0xe3, 0x3c, 0x17, 0xc4, 0xf5, - 0x6e, 0x69, 0x14, 0xcf, 0xf3, 0xbf, 0xfc, 0x19, 0xf2, 0xec, 0x15, 0xe9, - 0xdf, 0x27, 0xf6, 0x1f, 0x95, 0xfa, 0x3f, 0xfa, 0xba, 0x11, 0x4b, 0xcf, - 0x9d, 0x4b, 0xd4, 0xd6, 0x7b, 0x6d, 0x83, 0x5a, 0xff, 0x0f, 0xcf, 0x54, - 0xeb, 0xff, 0xc5, 0x4f, 0xab, 0xf5, 0xff, 0x3b, 0xc5, 0x7c, 0xe7, 0xb1, - 0xac, 0x5a, 0xff, 0xad, 0x6b, 0x15, 0xf3, 0xbb, 0xbd, 0x53, 0xab, 0x1f, - 0xe2, 0xe3, 0x2b, 0x3d, 0x6a, 0xf3, 0xfd, 0xc7, 0x51, 0x43, 0xed, 0x3c, - 0xff, 0x44, 0xad, 0xff, 0x15, 0x8a, 0xf8, 0xbf, 0xb9, 0x4a, 0x8d, 0xfe, - 0xf3, 0x9e, 0x51, 0xc3, 0xbf, 0x55, 0x51, 0x7f, 0x8f, 0x27, 0xc3, 0xfb, - 0xeb, 0x68, 0xe7, 0x21, 0x9a, 0x9f, 0x63, 0xfe, 0x27, 0xca, 0x08, 0xfe, - 0xab, 0x9f, 0x9f, 0xe0, 0xf5, 0x18, 0x11, 0xfe, 0x70, 0x69, 0x91, 0xe8, - 0x0f, 0x3b, 0xdc, 0x1f, 0x16, 0xf3, 0xd9, 0x01, 0x7f, 0x58, 0x8b, 0xbb, - 0xef, 0xfd, 0xca, 0x62, 0xf8, 0x1d, 0xf0, 0x8f, 0xf7, 0xe2, 0x11, 0x03, - 0x5a, 0x69, 0x58, 0x1b, 0x8b, 0xea, 0x3f, 0x43, 0xf1, 0x3c, 0xfe, 0x7b, - 0x52, 0xaa, 0x6f, 0x50, 0xed, 0x6f, 0xe5, 0x63, 0xf3, 0xd7, 0xaf, 0xd4, - 0xfd, 0xfe, 0x89, 0xa6, 0x29, 0xf9, 0x7f, 0x7f, 0x15, 0xe1, 0x0f, 0x79, - 0x99, 0x7a, 0xe6, 0xaf, 0x43, 0x3e, 0x27, 0x03, 0x67, 0x9d, 0xd5, 0x0f, - 0x11, 0x7b, 0xec, 0x24, 0x33, 0x41, 0xfc, 0x2a, 0xf9, 0x7d, 0x1d, 0x5d, - 0x12, 0x9b, 0xdf, 0xaf, 0xce, 0xf7, 0xee, 0x94, 0xe2, 0x5f, 0x9e, 0x3c, - 0x85, 0xc7, 0xbb, 0x24, 0xf9, 0x32, 0x99, 0x7c, 0xe5, 0x3a, 0x6b, 0xe5, - 0x7f, 0x99, 0xbc, 0xe5, 0x78, 0x42, 0x8e, 0xdb, 0xff, 0x5d, 0xc2, 0xfc, - 0x6e, 0xd7, 0x11, 0xcd, 0x69, 0x3b, 0x3b, 0x35, 0x6a, 0xd2, 0xf9, 0x1d, - 0xe4, 0xd0, 0x7a, 0xb0, 0xc9, 0xcd, 0xa8, 0xbc, 0x9f, 0xe6, 0x23, 0xf5, - 0x33, 0x88, 0x83, 0xc6, 0x9e, 0xdf, 0xba, 0x83, 0x07, 0xb0, 0xe9, 0xf3, - 0x90, 0xbd, 0x58, 0x22, 0x49, 0x8a, 0x49, 0x73, 0xdd, 0x99, 0xb6, 0x9f, - 0x6f, 0x80, 0x7d, 0xd1, 0xd1, 0x18, 0x8f, 0x47, 0x3b, 0x83, 0xbc, 0x9e, - 0x2e, 0x67, 0x91, 0x7a, 0x3a, 0xc0, 0xbf, 0xad, 0x7d, 0x0c, 0xfa, 0x27, - 0xcf, 0x0a, 0xe2, 0x3f, 0x47, 0xc4, 0xdf, 0x87, 0xdc, 0x9d, 0x80, 0xdf, - 0xd1, 0xdc, 0x02, 0xe0, 0xaf, 0x55, 0x0f, 0x12, 0x1a, 0x2f, 0xec, 0x21, - 0xf1, 0x5e, 0x9b, 0xe6, 0xaf, 0xf9, 0x56, 0x36, 0x86, 0xc9, 0x17, 0xcb, - 0xf7, 0x55, 0x3e, 0xd6, 0x79, 0xbe, 0xe2, 0xcb, 0xdc, 0xa5, 0x88, 0x88, - 0xf7, 0x00, 0x87, 0xe1, 0x8d, 0x06, 0x16, 0x22, 0x73, 0x49, 0xeb, 0xd1, - 0xab, 0xf0, 0xf1, 0xf5, 0xb9, 0x1f, 0x85, 0xad, 0x4f, 0x8e, 0x57, 0x43, - 0x3d, 0xcb, 0x32, 0xa8, 0x67, 0x01, 0xfa, 0x13, 0xa4, 0x9e, 0x85, 0xd3, - 0x63, 0x45, 0xd1, 0x4f, 0xf7, 0xef, 0x12, 0xaf, 0x3e, 0x0e, 0xa1, 0xc7, - 0x0d, 0x7f, 0x3c, 0x44, 0xe0, 0x1d, 0x8d, 0xd0, 0x6b, 0x55, 0xd3, 0x8b, - 0x6f, 0x52, 0x32, 0xff, 0xe9, 0xf3, 0x7b, 0xa3, 0x86, 0x5b, 0x32, 0xec, - 0x48, 0x7b, 0xf5, 0x82, 0x19, 0xed, 0xbf, 0xc0, 0xe7, 0xe7, 0xe3, 0xf1, - 0xf7, 0xef, 0x5f, 0x8c, 0x4f, 0xad, 0x7e, 0xac, 0xd6, 0xf9, 0x32, 0xf1, - 0xf9, 0x5a, 0x69, 0x06, 0xcf, 0x57, 0x54, 0xfc, 0x22, 0xfc, 0x3c, 0x79, - 0xfb, 0x61, 0xb5, 0x13, 0x79, 0x86, 0x09, 0x9d, 0xb4, 0xdd, 0xd0, 0xd5, - 0xb8, 0x04, 0x95, 0x67, 0xa0, 0xfd, 0x76, 0x26, 0x63, 0xe8, 0x8d, 0xc3, - 0x5f, 0xd6, 0x86, 0x07, 0x34, 0x7b, 0x44, 0x1b, 0x6b, 0x7d, 0xd2, 0x2e, - 0x6f, 0xfb, 0xdb, 0xf9, 0x6e, 0x17, 0xbe, 0x0d, 0xed, 0x9b, 0x99, 0x70, - 0xd3, 0x10, 0x67, 0x84, 0x75, 0x58, 0x1d, 0x39, 0x12, 0x87, 0x18, 0x6e, - 0x07, 0xfa, 0xdc, 0xef, 0x53, 0x4d, 0xe2, 0x9a, 0xdf, 0xb2, 0xcb, 0x06, - 0xdc, 0xc7, 0x2d, 0xae, 0x5f, 0xae, 0x11, 0x9e, 0x67, 0xaf, 0x59, 0x7f, - 0xec, 0xd5, 0x3f, 0xbd, 0x4b, 0xce, 0xbb, 0xff, 0x18, 0xe6, 0x72, 0x2a, - 0x6f, 0x2c, 0x5e, 0x9e, 0xb8, 0xdb, 0xab, 0x97, 0x30, 0xca, 0x24, 0xbe, - 0x57, 0x40, 0x25, 0x1a, 0xdf, 0xd3, 0x4b, 0x33, 0x52, 0x43, 0x06, 0x95, - 0xf0, 0xed, 0x08, 0xad, 0xe7, 0xe7, 0x23, 0x47, 0xe4, 0x4b, 0x13, 0xc7, - 0xc3, 0x6e, 0x38, 0x69, 0xb1, 0x3e, 0x01, 0x5b, 0xf7, 0x24, 0xd4, 0x4b, - 0x61, 0x66, 0x8f, 0x31, 0xcd, 0x59, 0x5e, 0x98, 0xe0, 0xfb, 0x91, 0x46, - 0x53, 0xd1, 0xe7, 0x72, 0x3c, 0x27, 0x79, 0x40, 0xaa, 0xff, 0xe4, 0xf5, - 0xb8, 0x1a, 0x2a, 0xb5, 0xc3, 0xa2, 0x4b, 0x43, 0x69, 0x27, 0x07, 0xf2, - 0xd9, 0x91, 0x0a, 0xc6, 0xd3, 0xf1, 0x25, 0xc9, 0x75, 0xda, 0x94, 0xe7, - 0x73, 0xd3, 0x07, 0x84, 0xf8, 0x0f, 0x9a, 0x79, 0x20, 0x5e, 0x7e, 0xcf, - 0x3c, 0x30, 0xc5, 0xfa, 0x4e, 0x29, 0x7f, 0x68, 0x85, 0xec, 0x5f, 0x1a, - 0x7c, 0xe5, 0xe7, 0x44, 0x7f, 0xfe, 0x45, 0x93, 0xe3, 0xdb, 0xa8, 0x53, - 0x7b, 0xcd, 0xed, 0xc9, 0x2e, 0xc9, 0xbe, 0x78, 0xf5, 0xe5, 0x42, 0x7e, - 0x6f, 0x56, 0xfc, 0x7a, 0xbc, 0xf9, 0x7d, 0x83, 0xb7, 0x82, 0x9f, 0x37, - 0x01, 0xf6, 0xdf, 0x67, 0xc6, 0x60, 0x3f, 0x7f, 0x9c, 0x63, 0xfc, 0x17, - 0xda, 0xab, 0xf4, 0x1b, 0x69, 0xa3, 0xfa, 0x8d, 0xe5, 0xe3, 0xe0, 0x73, - 0x74, 0xba, 0xe5, 0xa7, 0x55, 0xde, 0x1f, 0x2e, 0x3f, 0x0e, 0x2a, 0x5d, - 0xd4, 0xb6, 0x4d, 0x67, 0xf3, 0x63, 0x7c, 0x17, 0x8b, 0xf2, 0x23, 0xbf, - 0x0f, 0xad, 0x4e, 0xf9, 0xf9, 0xe4, 0xa9, 0x92, 0x1f, 0xa9, 0x3e, 0xc6, - 0x92, 0xf7, 0x07, 0x0f, 0xb7, 0xa0, 0x44, 0xc8, 0x8d, 0x94, 0x1f, 0x83, - 0xfa, 0x6f, 0x03, 0x9a, 0x14, 0xaf, 0x95, 0xe4, 0x49, 0x90, 0x1f, 0x74, - 0x6e, 0x4d, 0xf9, 0x59, 0x21, 0xc5, 0x9b, 0x59, 0xbe, 0xbc, 0x3a, 0xbf, - 0x63, 0x88, 0xfe, 0x35, 0xde, 0x67, 0x12, 0x6f, 0x2e, 0xa1, 0xf8, 0x7a, - 0xd1, 0xb9, 0xf1, 0xfe, 0x8f, 0xfb, 0x6e, 0x94, 0xbf, 0xad, 0x11, 0x7f, - 0x7b, 0xf2, 0x01, 0x13, 0xda, 0xd3, 0x4f, 0xb4, 0x83, 0x36, 0x71, 0x9f, - 0x7f, 0xac, 0x84, 0x2a, 0x44, 0x1f, 0x7a, 0xf5, 0x6d, 0x1a, 0xa9, 0x17, - 0xed, 0xcc, 0x6e, 0x75, 0x9a, 0xf6, 0x2e, 0xcf, 0xa5, 0x26, 0x0d, 0xf0, - 0xb7, 0xe9, 0x79, 0x00, 0xed, 0xbe, 0x04, 0x39, 0x89, 0x60, 0xbe, 0x65, - 0x40, 0xa8, 0x5f, 0xde, 0x31, 0x2f, 0x10, 0xaf, 0x81, 0x7a, 0xe4, 0xc9, - 0x85, 0x90, 0x46, 0xf1, 0xfb, 0x5b, 0x75, 0xf6, 0x37, 0xa1, 0xbf, 0x8d, - 0x0f, 0xc1, 0x83, 0x1a, 0x1a, 0x0a, 0xef, 0x6f, 0x62, 0xd9, 0x18, 0xbd, - 0x8f, 0xf9, 0xb3, 0x56, 0x96, 0xe9, 0x47, 0xba, 0x9f, 0x61, 0xfd, 0x93, - 0xc1, 0xfe, 0x51, 0xfe, 0x7a, 0x44, 0x7c, 0xba, 0xaa, 0x7e, 0x3e, 0x07, - 0xf2, 0x01, 0xc6, 0xfb, 0x03, 0xad, 0x3c, 0xe4, 0xcb, 0xc7, 0xf9, 0x91, - 0xf2, 0x91, 0x35, 0xf2, 0xc9, 0xe0, 0xfd, 0xa9, 0x27, 0xb6, 0xbe, 0x3d, - 0x24, 0xbf, 0xc5, 0x35, 0x4e, 0x36, 0x34, 0x5f, 0x4d, 0xfe, 0xd9, 0x9e, - 0x82, 0xf3, 0xec, 0xfa, 0xf5, 0x21, 0x1e, 0xfd, 0xf4, 0x28, 0x7b, 0xaf, - 0x34, 0x2a, 0x84, 0xd7, 0xcb, 0xc2, 0xe5, 0xd3, 0xcb, 0x2f, 0x69, 0x6a, - 0xf4, 0xdd, 0xca, 0xe9, 0x4b, 0x44, 0xd5, 0x2f, 0x36, 0x11, 0x7f, 0x8f, - 0xcb, 0xef, 0x0e, 0x2d, 0x98, 0x7f, 0x91, 0xe3, 0xfb, 0xe1, 0xf1, 0xf9, - 0x67, 0x03, 0xf4, 0x85, 0xd3, 0xb3, 0x31, 0x11, 0x1d, 0x9f, 0xeb, 0x21, - 0x1a, 0x0e, 0x8f, 0xd7, 0x6b, 0xe7, 0x17, 0x54, 0xf1, 0x47, 0xde, 0x17, - 0x51, 0xdd, 0xf1, 0xe4, 0x58, 0x7d, 0x2f, 0xeb, 0xef, 0x88, 0xf8, 0x5f, - 0xc9, 0x08, 0xd4, 0x47, 0x8b, 0xf7, 0xd3, 0x8e, 0x69, 0xc2, 0xdf, 0xc9, - 0xeb, 0x79, 0xe9, 0xf3, 0x41, 0x39, 0x8e, 0xbf, 0x65, 0x9a, 0xf0, 0xd3, - 0x7a, 0x67, 0x90, 0x67, 0xa2, 0xaf, 0x5a, 0xbc, 0xfa, 0x8b, 0x69, 0xc2, - 0x4f, 0xeb, 0x9d, 0x3d, 0x7b, 0xec, 0xd5, 0x77, 0xac, 0x9b, 0x26, 0xfc, - 0xb4, 0xde, 0x99, 0xdb, 0xff, 0x92, 0x97, 0x7f, 0x5c, 0xc7, 0xed, 0x8b, - 0x19, 0x73, 0x9e, 0xdc, 0xd5, 0x0b, 0xac, 0xc9, 0xde, 0x3e, 0xb8, 0xed, - 0xde, 0xcf, 0xdf, 0x17, 0x62, 0x72, 0x7f, 0xb4, 0x1e, 0x7b, 0x6c, 0xbd, - 0x18, 0x88, 0x4f, 0x24, 0x7c, 0x79, 0x27, 0xe4, 0x64, 0x02, 0xf2, 0x40, - 0x4e, 0xdf, 0x77, 0x02, 0xf5, 0x45, 0x03, 0xfc, 0x7d, 0x3f, 0x75, 0xbd, - 0x9f, 0xa4, 0xb6, 0x7c, 0x7b, 0xf6, 0xcf, 0xac, 0x61, 0xff, 0x98, 0x7d, - 0xc4, 0x5e, 0x38, 0xb1, 0x7f, 0x28, 0x3e, 0xdf, 0xea, 0x52, 0xfd, 0x91, - 0x23, 0xf6, 0x0e, 0xdf, 0x6c, 0x4b, 0xc7, 0x57, 0xe1, 0xfb, 0x47, 0xc1, - 0xf3, 0xcf, 0x2d, 0x7a, 0x9f, 0x73, 0x4c, 0xb0, 0xe7, 0x43, 0x5f, 0xef, - 0x5c, 0xfd, 0xa0, 0xee, 0xee, 0xd4, 0xc6, 0x50, 0x1a, 0xeb, 0x6b, 0xa7, - 0xeb, 0x91, 0x83, 0x17, 0x4e, 0x6a, 0x58, 0xf5, 0x14, 0x2e, 0x5e, 0x3b, - 0xa8, 0xc3, 0x7d, 0xe0, 0x87, 0x9d, 0xeb, 0xd0, 0x4f, 0xe9, 0x7d, 0x20, - 0x74, 0x7d, 0x4f, 0xa7, 0x7c, 0x7e, 0xe6, 0x83, 0xf1, 0x21, 0xb2, 0x17, - 0x1b, 0x32, 0xfe, 0xfb, 0xb6, 0xbc, 0x7c, 0x7b, 0xc4, 0xfb, 0xb6, 0x78, - 0x7e, 0x5f, 0x7c, 0xde, 0xeb, 0x80, 0x8f, 0xbf, 0xd4, 0x59, 0x47, 0xfc, - 0x89, 0xf7, 0xa7, 0xf9, 0x90, 0x94, 0x0e, 0xf9, 0x76, 0x6a, 0x5f, 0xbd, - 0xfc, 0x76, 0x0d, 0x7f, 0xc3, 0x8b, 0xb7, 0x30, 0x7f, 0xa3, 0x10, 0xef, - 0x6f, 0xb0, 0x78, 0x1e, 0x9d, 0x7d, 0x5b, 0x82, 0xdb, 0x17, 0x87, 0xf2, - 0x3f, 0x09, 0xfc, 0x77, 0x46, 0x02, 0xf5, 0xf5, 0xd6, 0x26, 0xf2, 0x3c, - 0x9d, 0xab, 0x83, 0xbd, 0x1c, 0x4a, 0x1d, 0xea, 0x3e, 0xae, 0x3b, 0x3b, - 0x31, 0x6c, 0x62, 0xfe, 0xdb, 0x5d, 0xbf, 0x19, 0x37, 0x78, 0x7e, 0x7b, - 0x17, 0xd4, 0x03, 0x58, 0xe0, 0x3f, 0xd8, 0x43, 0xd1, 0xf1, 0xbf, 0x48, - 0xfe, 0x13, 0x75, 0xb9, 0xa1, 0xd1, 0xe7, 0x7f, 0xe3, 0xff, 0x6b, 0xfe, - 0xcb, 0xf5, 0x05, 0xa6, 0xa7, 0xac, 0xd6, 0x18, 0xa2, 0x7f, 0xc2, 0xed, - 0xb5, 0x58, 0x7f, 0x50, 0x6d, 0xef, 0xd9, 0xf3, 0x93, 0xb9, 0x49, 0xe2, - 0x2f, 0x79, 0xfa, 0x2d, 0x17, 0xaf, 0xdf, 0xf8, 0x7c, 0xa6, 0x57, 0x5c, - 0xb2, 0x26, 0xee, 0xf9, 0x1b, 0x9b, 0xdc, 0x2f, 0x82, 0xfa, 0x96, 0xeb, - 0x1f, 0x8f, 0xd7, 0xf4, 0x7d, 0x64, 0x36, 0x56, 0x50, 0x4e, 0xdb, 0x50, - 0x02, 0xf4, 0xbd, 0x9b, 0x12, 0xea, 0x11, 0x67, 0x12, 0xfd, 0xa7, 0x8b, - 0xfd, 0x3d, 0x73, 0xc9, 0x61, 0xfe, 0xa6, 0xdf, 0xa8, 0x7c, 0x2c, 0xbf, - 0x2f, 0xf0, 0xf9, 0x6d, 0x71, 0x3c, 0x21, 0x0d, 0xf6, 0xb6, 0xc8, 0xed, - 0xc1, 0xa7, 0xf9, 0xfc, 0x59, 0x7e, 0x9f, 0x23, 0xf7, 0xe9, 0xc0, 0xf3, - 0xb0, 0x41, 0xfb, 0x4a, 0xc9, 0xdb, 0xaa, 0x81, 0x3c, 0xf6, 0x25, 0x84, - 0xfa, 0xb3, 0x46, 0x61, 0x7c, 0x2e, 0x1f, 0xf1, 0xbc, 0x17, 0xfd, 0xbc, - 0x19, 0xe1, 0x5f, 0x78, 0xf6, 0x50, 0xd0, 0xdf, 0x3e, 0xfd, 0xd4, 0x34, - 0xc0, 0x2b, 0x6b, 0xd9, 0xf3, 0xaa, 0xbe, 0x3d, 0x4b, 0x09, 0xf3, 0x73, - 0x7b, 0x27, 0xad, 0xc7, 0x8b, 0x0f, 0x1f, 0xe5, 0xf4, 0xdd, 0x81, 0xa4, - 0x78, 0x02, 0xed, 0xdf, 0x21, 0x8d, 0xaf, 0x71, 0xff, 0xbc, 0x48, 0xba, - 0x0f, 0x7e, 0xaa, 0xc6, 0x7d, 0x70, 0xd1, 0x54, 0xef, 0x83, 0xec, 0x0f, - 0xb7, 0x3f, 0xa0, 0x09, 0xf5, 0x2b, 0x35, 0xe4, 0x93, 0x3c, 0x7f, 0xd3, - 0x17, 0x88, 0xd7, 0xcd, 0x88, 0xef, 0x5f, 0x40, 0x3b, 0x2c, 0x91, 0xbe, - 0xd2, 0x42, 0x16, 0xef, 0x0c, 0x3f, 0x2f, 0x26, 0x3f, 0x9f, 0x7c, 0x81, - 0x0f, 0x64, 0x05, 0xfa, 0x52, 0xac, 0x1d, 0x9a, 0xd7, 0x82, 0xfc, 0x75, - 0x88, 0xfe, 0x29, 0xc7, 0x87, 0xf7, 0xbb, 0x14, 0xb4, 0xff, 0xd0, 0x3f, - 0x1f, 0xc2, 0x1f, 0x79, 0x7e, 0x8e, 0xdf, 0xb3, 0x8f, 0x1d, 0x73, 0x61, - 0x71, 0x55, 0xfd, 0xa9, 0x3e, 0x1b, 0x26, 0xf1, 0x00, 0xb8, 0xdf, 0x45, - 0xf1, 0x5f, 0xc2, 0x8f, 0xa5, 0x60, 0x8d, 0x11, 0xb7, 0x5f, 0xd5, 0xf9, - 0xec, 0xf0, 0xfe, 0x51, 0xfa, 0x56, 0x5e, 0x0f, 0x1f, 0x2f, 0xfb, 0x43, - 0x04, 0x5f, 0xc0, 0xbf, 0xf7, 0xf3, 0xe1, 0xe1, 0xfb, 0x89, 0x29, 0x2f, - 0x05, 0xe5, 0x17, 0xc6, 0xaf, 0xac, 0x4d, 0x3f, 0xd2, 0x65, 0xfa, 0xe3, - 0xfd, 0x41, 0xc7, 0xd7, 0xcf, 0x11, 0xf9, 0xe3, 0xa8, 0xfe, 0x36, 0x72, - 0x9d, 0xd6, 0xd0, 0xfb, 0x5f, 0xa8, 0x7d, 0xf3, 0xfc, 0x71, 0x7c, 0x7f, - 0xee, 0xe3, 0xfa, 0x21, 0x17, 0xf4, 0xff, 0x5b, 0x78, 0x7c, 0xfb, 0xd7, - 0x73, 0x22, 0xea, 0x73, 0xa8, 0xff, 0x1a, 0x7f, 0x5e, 0xca, 0x2f, 0xdf, - 0x29, 0xae, 0xdf, 0xad, 0x4f, 0xfe, 0x3d, 0xfd, 0xc5, 0xe2, 0x35, 0x7c, - 0xbd, 0xc9, 0x1a, 0xfc, 0x11, 0xe7, 0x7f, 0x82, 0xc4, 0xf3, 0x91, 0x89, - 0xc6, 0xea, 0xe4, 0x27, 0x76, 0x79, 0xd7, 0x18, 0xbe, 0x7e, 0x84, 0x57, - 0x22, 0xd3, 0x78, 0x97, 0xdc, 0x5e, 0xc7, 0x7d, 0xf8, 0x77, 0x64, 0xdf, - 0xbb, 0xa7, 0xc5, 0xbe, 0xfb, 0xf6, 0xba, 0xfb, 0xb4, 0xbd, 0x9e, 0x46, - 0x7b, 0xfd, 0xb9, 0x88, 0x7c, 0xba, 0xa7, 0x9f, 0x22, 0xf8, 0xe7, 0x52, - 0x63, 0x13, 0x78, 0x7f, 0xc3, 0xfd, 0x4a, 0xf6, 0x1a, 0x50, 0x67, 0x1a, - 0x82, 0xf6, 0x7a, 0xfd, 0x74, 0xd8, 0x6b, 0x77, 0xb1, 0xa2, 0xbd, 0x5e, - 0x32, 0x45, 0x7b, 0xed, 0xe5, 0xeb, 0x76, 0x08, 0xef, 0x17, 0x71, 0xb9, - 0x7c, 0x52, 0x36, 0x8d, 0x34, 0xf2, 0xf3, 0x1a, 0x69, 0xbf, 0xf7, 0x51, - 0xfb, 0xed, 0xcd, 0xef, 0xcc, 0xab, 0xa1, 0x8f, 0xba, 0x55, 0xec, 0x15, - 0xb6, 0x9f, 0xdd, 0xa2, 0xfd, 0xdc, 0x11, 0xfe, 0xbc, 0x73, 0xd0, 0x7e, - 0xf6, 0x29, 0xd9, 0xcf, 0x6e, 0x45, 0xfb, 0xa9, 0x46, 0x3f, 0xef, 0x5f, - 0xbf, 0xbd, 0xec, 0x9e, 0x66, 0x7b, 0xd9, 0xad, 0x68, 0x2f, 0xbb, 0x15, - 0xed, 0x65, 0xf7, 0x09, 0xdb, 0x4b, 0xfb, 0x84, 0xec, 0x65, 0x77, 0xbc, - 0xbd, 0x7c, 0x5a, 0xb2, 0x97, 0xa8, 0x3e, 0xf9, 0x94, 0x9f, 0x77, 0xf1, - 0xed, 0x65, 0xf4, 0x7c, 0x36, 0xd9, 0x4f, 0x9e, 0xcf, 0x3d, 0x45, 0xf6, - 0x8a, 0xbd, 0x7f, 0x42, 0x7e, 0xbf, 0x44, 0xd4, 0x7e, 0x21, 0x2f, 0xbe, - 0x7b, 0x62, 0xef, 0x03, 0xa0, 0xf5, 0x20, 0x1b, 0x30, 0x86, 0xa5, 0xf0, - 0xfe, 0xa5, 0x40, 0xfe, 0x23, 0xbc, 0xde, 0xc8, 0x03, 0xfc, 0xf8, 0xae, - 0x06, 0xf9, 0xdf, 0x46, 0xcb, 0xc5, 0xeb, 0xf5, 0x9f, 0x77, 0xe2, 0xf4, - 0xa2, 0xce, 0xac, 0xee, 0xb4, 0xed, 0xc5, 0x6c, 0x9d, 0x0c, 0xad, 0x37, - 0xc2, 0x8a, 0x55, 0x13, 0xf4, 0x75, 0x9d, 0xf1, 0xb2, 0x28, 0x7e, 0xd8, - 0x49, 0x2c, 0xbf, 0x67, 0x6c, 0x48, 0x8f, 0x9e, 0xbf, 0x04, 0x95, 0xb3, - 0xa8, 0x60, 0xe3, 0xbd, 0xdf, 0xdb, 0x92, 0x48, 0x40, 0x7c, 0x81, 0xbc, - 0x5f, 0x0a, 0x91, 0x97, 0x64, 0xbb, 0x1a, 0xad, 0x58, 0xb0, 0x51, 0x07, - 0x72, 0x3a, 0xb1, 0xbc, 0x8f, 0x26, 0xfc, 0x78, 0x08, 0x4b, 0xad, 0xa3, - 0xbe, 0xc1, 0xb2, 0x56, 0x25, 0xff, 0xdd, 0x08, 0x35, 0xc3, 0xf3, 0x61, - 0xfb, 0x06, 0x11, 0xd4, 0x33, 0x80, 0xbc, 0x2c, 0xae, 0x43, 0xdf, 0xf0, - 0x7a, 0x52, 0xbf, 0x3e, 0x6c, 0x93, 0x54, 0x1f, 0x36, 0x21, 0xd5, 0x1b, - 0x6c, 0x8a, 0xaf, 0x0f, 0x73, 0x17, 0xc5, 0xda, 0xd3, 0xea, 0xfc, 0x3e, - 0x7b, 0xbf, 0x09, 0xdd, 0xbc, 0x04, 0xe4, 0xbf, 0xe0, 0xe5, 0x5e, 0x39, - 0xf3, 0x88, 0xe6, 0x58, 0xad, 0x69, 0xf2, 0xfc, 0x1c, 0xd9, 0xef, 0x0d, - 0x86, 0xa7, 0x72, 0x20, 0x7f, 0x95, 0xde, 0x89, 0xe5, 0x71, 0xf8, 0xf2, - 0x51, 0x73, 0xc0, 0x70, 0x86, 0x79, 0x3d, 0x90, 0x9e, 0x41, 0xe5, 0x73, - 0xc9, 0x78, 0xe0, 0x97, 0xf5, 0x09, 0xe4, 0xd5, 0x97, 0x56, 0xd3, 0x23, - 0xe6, 0xc3, 0x80, 0x3d, 0x23, 0xa0, 0x5f, 0x6c, 0xff, 0x79, 0x36, 0x02, - 0x47, 0xbc, 0x8f, 0x22, 0xcc, 0x3e, 0xac, 0x30, 0xfd, 0xfc, 0xc5, 0x74, - 0xbf, 0x0f, 0xa3, 0x8a, 0x3f, 0x5b, 0x49, 0x7c, 0x6e, 0xfe, 0xa8, 0x79, - 0x8c, 0xc4, 0x47, 0xfd, 0xe7, 0xad, 0x28, 0x7f, 0x4a, 0x26, 0x9c, 0xd7, - 0xe1, 0x65, 0xb9, 0xc4, 0x80, 0x46, 0xf8, 0x43, 0x14, 0x96, 0xde, 0xc8, - 0xf9, 0x03, 0xf6, 0x39, 0x99, 0x8d, 0xe3, 0x4f, 0x5a, 0xe4, 0x0f, 0xe1, - 0xef, 0xda, 0x0c, 0xd8, 0xbf, 0x12, 0xf8, 0xe7, 0x01, 0xd8, 0xad, 0xd3, - 0x5f, 0x5f, 0x6e, 0xc6, 0xd5, 0x8f, 0x9d, 0x18, 0x7f, 0xaa, 0xf5, 0x83, - 0x58, 0x1f, 0x10, 0xd0, 0x5f, 0x82, 0x3f, 0xed, 0xc5, 0x1f, 0x3b, 0xb1, - 0x3f, 0xdd, 0x66, 0xeb, 0xe7, 0x66, 0x1e, 0xd4, 0x4a, 0xdf, 0x08, 0xd4, - 0x9b, 0x60, 0x77, 0xcb, 0xf5, 0x9e, 0xcf, 0x7e, 0x2a, 0xe1, 0xef, 0x6f, - 0x48, 0xbc, 0xd0, 0x44, 0xbd, 0x63, 0xff, 0xc9, 0xed, 0x5f, 0xfc, 0x79, - 0x0a, 0xac, 0xaf, 0xbe, 0xf3, 0x74, 0x4a, 0xd6, 0x87, 0x9c, 0xe7, 0xf5, - 0x60, 0xbd, 0xd8, 0x9f, 0x27, 0x6b, 0xac, 0xb7, 0xef, 0xc0, 0xc9, 0x5e, - 0x2f, 0xab, 0xf7, 0x1b, 0x25, 0xeb, 0x6b, 0x35, 0xe5, 0xf7, 0xaf, 0x79, - 0xeb, 0x73, 0xf0, 0xfa, 0xcc, 0x9e, 0x26, 0x34, 0xf1, 0xa0, 0x86, 0x82, - 0xf9, 0x02, 0xdb, 0x8f, 0x7f, 0xa1, 0xd2, 0x70, 0x52, 0xac, 0x9f, 0xfb, - 0x4e, 0x43, 0xec, 0xfa, 0xe6, 0x77, 0x19, 0x68, 0xc2, 0xbb, 0x4f, 0x28, - 0xd6, 0x3b, 0xd6, 0xa8, 0xc7, 0x22, 0xe7, 0xb7, 0xb5, 0x81, 0xeb, 0xbf, - 0x40, 0xfd, 0x1e, 0x39, 0x6f, 0x05, 0xb2, 0x5e, 0x3b, 0xc1, 0xea, 0x61, - 0xfd, 0xf5, 0x54, 0xe2, 0xf3, 0xdb, 0x81, 0x78, 0xba, 0xd3, 0x79, 0x32, - 0xcf, 0x1b, 0x1a, 0x4a, 0x89, 0xf5, 0x8a, 0x23, 0x29, 0x95, 0xfa, 0xc5, - 0xa4, 0x5d, 0x78, 0xd5, 0xbe, 0xa3, 0x1d, 0xad, 0xe9, 0xb0, 0x26, 0xa9, - 0x1d, 0x5a, 0x91, 0x8a, 0x8f, 0xef, 0xc7, 0xd7, 0x8f, 0x46, 0xd7, 0x4b, - 0x1c, 0x93, 0xdf, 0x4f, 0x49, 0xe5, 0x4f, 0xcf, 0x6e, 0x25, 0xef, 0xa3, - 0xf1, 0xf6, 0xab, 0x81, 0xcf, 0x6f, 0xd2, 0xfa, 0x08, 0x38, 0x2f, 0xad, - 0x2d, 0xa3, 0xc6, 0xa6, 0xd8, 0xfa, 0xe5, 0x73, 0x22, 0x7e, 0x6f, 0x10, - 0xee, 0xcf, 0x99, 0x36, 0xbc, 0x7f, 0x9e, 0xbf, 0x79, 0x6b, 0x32, 0xde, - 0x5f, 0x3d, 0x49, 0xe7, 0x27, 0xe2, 0x79, 0xc5, 0xea, 0x78, 0x83, 0x58, - 0x0f, 0x53, 0xf5, 0xfc, 0xa2, 0xb6, 0x8b, 0xdd, 0x2f, 0x18, 0x7d, 0x3a, - 0xf8, 0x33, 0x61, 0xf6, 0x14, 0x12, 0xd1, 0xf4, 0xfd, 0x05, 0x4e, 0xba, - 0x76, 0x7e, 0x46, 0xbe, 0x9f, 0x2e, 0x3d, 0x10, 0xff, 0xbe, 0xb7, 0x6b, - 0x23, 0xfc, 0x17, 0xef, 0xbe, 0x29, 0xdc, 0xc7, 0x47, 0xd2, 0x60, 0x9f, - 0xca, 0x09, 0x96, 0x4f, 0x72, 0x36, 0x04, 0xde, 0x2f, 0xd4, 0x28, 0xde, - 0xa7, 0xa7, 0x58, 0x7f, 0xb5, 0x4c, 0xf1, 0x3e, 0xbd, 0xfc, 0xc0, 0x89, - 0xbe, 0x2f, 0x91, 0xf1, 0x9f, 0x2a, 0x68, 0x67, 0xce, 0x61, 0x43, 0x98, - 0xdf, 0x44, 0x49, 0xc2, 0x8f, 0xd6, 0x9e, 0x02, 0x79, 0xee, 0xaa, 0xbb, - 0x9d, 0x74, 0x70, 0x0f, 0x93, 0xb4, 0x3e, 0x1e, 0xf9, 0xc7, 0xf4, 0xbc, - 0xd5, 0xba, 0xff, 0xf9, 0xf9, 0x56, 0xf1, 0xfd, 0xa0, 0x1c, 0x3f, 0x5d, - 0xcf, 0x30, 0x89, 0xd7, 0x95, 0xc2, 0xef, 0xef, 0xa5, 0x9d, 0xc9, 0x90, - 0xfb, 0x18, 0xc3, 0x47, 0x7d, 0xd9, 0x41, 0x5a, 0xcf, 0x92, 0xa8, 0xdb, - 0x9f, 0xf6, 0xe6, 0xa7, 0xcb, 0x1f, 0xf7, 0xec, 0x13, 0x8b, 0xbf, 0xf4, - 0x07, 0xea, 0xeb, 0xb8, 0x3c, 0x36, 0xaa, 0xec, 0xef, 0xb9, 0x81, 0x7c, - 0x24, 0x89, 0x27, 0xf5, 0xe6, 0x3d, 0xff, 0x8b, 0xf0, 0xa3, 0x10, 0x71, - 0x9f, 0xc4, 0x70, 0x7e, 0xa6, 0x7f, 0xdf, 0x46, 0xe8, 0x7a, 0x5e, 0x0f, - 0x7d, 0x6c, 0xce, 0xd4, 0xe5, 0xcb, 0xbd, 0xec, 0x94, 0xc9, 0x57, 0x38, - 0x7d, 0x7d, 0x51, 0xbf, 0xa7, 0x2a, 0xcb, 0x63, 0x54, 0x3e, 0x2b, 0x32, - 0xbe, 0xf6, 0xa0, 0x58, 0x4f, 0xc4, 0xeb, 0x45, 0xe5, 0xf8, 0x9a, 0xe2, - 0x7d, 0xcb, 0x93, 0x4f, 0x10, 0x90, 0x36, 0xdb, 0x80, 0xfb, 0x55, 0x5f, - 0x92, 0xe2, 0xeb, 0x11, 0xf6, 0xc7, 0x7b, 0x9f, 0x2a, 0xad, 0x87, 0x20, - 0xe8, 0xfc, 0xf7, 0x57, 0x78, 0xf2, 0xba, 0x3c, 0xe0, 0x3f, 0xa0, 0xc1, - 0x24, 0x97, 0x77, 0xdc, 0xdd, 0xfd, 0x76, 0x3a, 0xac, 0x1e, 0x62, 0x7a, - 0xee, 0xe3, 0xf4, 0xfe, 0x3b, 0x5b, 0xf7, 0xee, 0xe3, 0xd5, 0xf7, 0x97, - 0x1a, 0xcf, 0x0b, 0x48, 0xf8, 0x20, 0x3a, 0x0e, 0x7b, 0x5f, 0x5e, 0x38, - 0x6d, 0xf8, 0x1e, 0x8b, 0x79, 0x3e, 0xa6, 0x16, 0x0c, 0xfc, 0x13, 0xed, - 0x83, 0xdc, 0xbf, 0x4b, 0xad, 0x5e, 0x5c, 0x19, 0xff, 0x35, 0x27, 0x84, - 0x1f, 0x1e, 0x36, 0x88, 0x97, 0xcf, 0xc5, 0xb1, 0xf8, 0x40, 0xb4, 0xf2, - 0x7a, 0xfd, 0xfc, 0x9a, 0xe2, 0xef, 0xb7, 0x79, 0xbf, 0x5f, 0x6c, 0x49, - 0x70, 0x4e, 0x82, 0x6d, 0x09, 0x76, 0x24, 0x98, 0xc5, 0xfb, 0x7d, 0xd8, - 0x94, 0x60, 0x4b, 0x82, 0x73, 0x12, 0x6c, 0x4b, 0xf0, 0xa9, 0xfd, 0x3d, - 0x2a, 0x57, 0x82, 0x6b, 0xfe, 0xde, 0xda, 0x34, 0xd3, 0x77, 0xfa, 0x73, - 0xfa, 0x73, 0xfa, 0x13, 0xf3, 0xf9, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xec, 0x5d, 0x7b, 0x90, 0x1c, 0x47, 0x79, 0xef, 0xee, 0x99, 0x9d, 0x9d, - 0xdd, 0xdb, 0x5b, 0x8d, 0xce, 0x27, 0xb1, 0x3e, 0x4b, 0xd6, 0x9c, 0x74, - 0x96, 0x8e, 0xc4, 0xa8, 0xce, 0x8a, 0x2c, 0xce, 0x46, 0x31, 0x73, 0xd2, - 0xc9, 0x48, 0x46, 0x22, 0xc2, 0x3c, 0x22, 0x53, 0x3c, 0xf6, 0x70, 0x51, - 0x25, 0x83, 0x23, 0x9b, 0xc4, 0x49, 0xce, 0xd8, 0x29, 0xf7, 0xde, 0xed, - 0x3d, 0x0c, 0x3a, 0xd7, 0x59, 0x18, 0x23, 0x8c, 0x31, 0x7b, 0x92, 0x6c, - 0xab, 0x30, 0x15, 0xa8, 0x72, 0x52, 0x65, 0xf2, 0x47, 0xb2, 0xd6, 0x83, - 0x08, 0xca, 0xaa, 0x3a, 0x70, 0xe2, 0x22, 0x29, 0x2a, 0x59, 0x3b, 0x29, - 0x22, 0x1e, 0x51, 0x94, 0x02, 0x93, 0x33, 0x18, 0x94, 0x7e, 0xcf, 0x74, - 0xef, 0xcc, 0xec, 0x9e, 0x1e, 0x14, 0x09, 0xdc, 0x1f, 0xb6, 0xc7, 0x33, - 0xdb, 0xd3, 0xd3, 0xfd, 0xf5, 0xf7, 0xfe, 0x7e, 0xdf, 0x00, 0xd3, 0xaf, - 0x38, 0xbe, 0x0c, 0xcd, 0xb7, 0x72, 0x51, 0xc1, 0x22, 0xf6, 0xc5, 0xfc, - 0x83, 0x70, 0x2f, 0xac, 0x8f, 0xc3, 0xc3, 0xef, 0x06, 0x2f, 0xe0, 0x03, - 0x76, 0x75, 0x23, 0xb4, 0xb8, 0xbf, 0x36, 0x0f, 0x1e, 0xa1, 0x67, 0x76, - 0x85, 0xd3, 0xeb, 0xc2, 0xaf, 0x0e, 0x66, 0x30, 0xe7, 0x57, 0x37, 0x3b, - 0xcc, 0x7b, 0x4a, 0xe4, 0x77, 0xd9, 0x03, 0xc1, 0x83, 0xf9, 0xf1, 0x6b, - 0x3b, 0x2c, 0xee, 0x9f, 0x2a, 0x3c, 0x3a, 0x67, 0x97, 0x11, 0x02, 0x4b, - 0x97, 0x02, 0xa7, 0x5c, 0x9a, 0x54, 0xfa, 0xaf, 0x27, 0xea, 0x4f, 0x87, - 0xa9, 0xbd, 0x5c, 0xdd, 0xa2, 0xfc, 0x03, 0x6b, 0x89, 0xfe, 0x1a, 0xa0, - 0x65, 0xdb, 0xd6, 0x40, 0x99, 0x7f, 0x76, 0x6b, 0x6a, 0x3f, 0xce, 0x3c, - 0x66, 0xea, 0x44, 0x6d, 0xcb, 0x7b, 0xfa, 0xe9, 0x2d, 0x9c, 0xc7, 0x39, - 0x7e, 0x2d, 0xfa, 0xc5, 0xc9, 0xfb, 0x6e, 0x9d, 0x31, 0xd2, 0xe9, 0x23, - 0xbe, 0xce, 0x6f, 0xfc, 0x7e, 0x2a, 0xaf, 0xfc, 0x8e, 0xd9, 0xe2, 0x46, - 0x1a, 0xb4, 0xa6, 0xfe, 0xbc, 0x98, 0xf7, 0xbd, 0x27, 0x23, 0xbf, 0x0f, - 0x80, 0xb7, 0x1b, 0xf2, 0x4b, 0xe1, 0x6d, 0x31, 0xfb, 0xd2, 0xf7, 0xc5, - 0xf3, 0x7b, 0x10, 0xae, 0x65, 0xfc, 0x8b, 0x95, 0x27, 0x97, 0xfd, 0xcf, - 0xd3, 0x2f, 0x47, 0xe4, 0x7f, 0xf4, 0x89, 0xfd, 0xf1, 0x59, 0x73, 0x6e, - 0x3f, 0x23, 0xe9, 0x83, 0xe6, 0x0a, 0x06, 0xae, 0x9f, 0xf1, 0x32, 0x7c, - 0xfd, 0xa3, 0xf4, 0xd2, 0x20, 0xf4, 0x32, 0x4c, 0xed, 0x4d, 0xff, 0x96, - 0x0d, 0x50, 0xe4, 0x23, 0x4a, 0xf9, 0x86, 0x44, 0xbd, 0x22, 0x95, 0xdd, - 0xee, 0x0d, 0xef, 0x70, 0x24, 0xbe, 0x91, 0x49, 0x2f, 0x76, 0x17, 0xc0, - 0xd3, 0xf6, 0x64, 0x61, 0xb6, 0x40, 0xae, 0x0b, 0xd4, 0xbf, 0xb9, 0xc3, - 0x58, 0x6f, 0xe5, 0x3f, 0x66, 0xf5, 0x84, 0x4c, 0x1c, 0xe2, 0x2d, 0x52, - 0xa2, 0xd7, 0x18, 0xaa, 0x2a, 0x58, 0xb6, 0xad, 0xb7, 0x4d, 0xfa, 0x89, - 0xd4, 0x03, 0x09, 0x7c, 0x15, 0xd6, 0xff, 0xd5, 0x0b, 0xdf, 0xc7, 0x54, - 0x2e, 0x3f, 0x12, 0xef, 0x08, 0xd2, 0xf2, 0x19, 0x7d, 0xc4, 0xe8, 0x29, - 0x17, 0x8e, 0x9f, 0x3e, 0xff, 0x4b, 0xac, 0x7f, 0x5c, 0xc4, 0xf9, 0x1f, - 0xf8, 0x95, 0x9e, 0xff, 0x3f, 0xb8, 0x44, 0xe7, 0xbf, 0x79, 0xbf, 0xd2, - 0xd7, 0xeb, 0xff, 0xda, 0xfe, 0xfc, 0x7f, 0xe5, 0xff, 0xfb, 0xdc, 0x88, - 0x3d, 0x1c, 0x39, 0xbf, 0x72, 0xff, 0x7b, 0x17, 0xc9, 0xff, 0x25, 0x7f, - 0x6f, 0xd2, 0x27, 0x25, 0xfe, 0xb5, 0xb2, 0x97, 0x7e, 0xb3, 0xf7, 0xbb, - 0xf9, 0xef, 0x05, 0xa3, 0x3e, 0xaf, 0xa0, 0xd9, 0xcb, 0xa6, 0x3d, 0x97, - 0xc7, 0x6f, 0x62, 0xff, 0xee, 0x11, 0xf5, 0xc5, 0xb2, 0x1e, 0x79, 0x2c, - 0xd0, 0xe5, 0xed, 0x31, 0xfd, 0x5a, 0xf2, 0x4f, 0xbc, 0x9a, 0xfb, 0xff, - 0xfc, 0x24, 0xfd, 0x3f, 0x8c, 0xb7, 0xc9, 0xfa, 0xfa, 0x38, 0x79, 0x6c, - 0xa9, 0xfb, 0x79, 0xdc, 0x1f, 0x37, 0x1e, 0x7e, 0xf7, 0x7c, 0xb8, 0xff, - 0x07, 0xb4, 0xfd, 0x57, 0xfe, 0xd2, 0x5f, 0xfc, 0x66, 0xee, 0xb7, 0xfe, - 0xd7, 0x6c, 0xaf, 0xbf, 0x2b, 0x66, 0xbd, 0x91, 0x79, 0xde, 0x2e, 0xd9, - 0x7e, 0xb6, 0x5c, 0xff, 0xe4, 0xfd, 0xfb, 0xe5, 0x6f, 0xf7, 0xef, 0x57, - 0x72, 0xfe, 0x85, 0xf7, 0x52, 0xee, 0x3f, 0x3f, 0xff, 0xc7, 0x86, 0xfb, - 0xb5, 0xf3, 0xdf, 0xa5, 0xf8, 0x41, 0xd6, 0xe0, 0x0f, 0x8b, 0xa6, 0x17, - 0x83, 0x1e, 0x9b, 0xce, 0x7f, 0x5d, 0xe7, 0x47, 0xbf, 0x3d, 0xff, 0x17, - 0x79, 0xfe, 0xb5, 0xfd, 0x8d, 0x39, 0xff, 0x06, 0xff, 0x5f, 0xdc, 0x7e, - 0xfe, 0xfa, 0x9d, 0x77, 0x03, 0xef, 0x45, 0xc5, 0xeb, 0x7e, 0x60, 0xf6, - 0x37, 0xb1, 0x45, 0xbc, 0x12, 0x71, 0x7c, 0xef, 0x51, 0x9b, 0xe7, 0x2b, - 0xe5, 0x8c, 0xf8, 0xc6, 0x8c, 0x86, 0xdf, 0xae, 0xbe, 0x55, 0xe0, 0x03, - 0x85, 0x0b, 0xa2, 0xc7, 0x0f, 0x9e, 0xd1, 0xf1, 0xf7, 0xee, 0xee, 0x78, - 0xa3, 0xc4, 0x0f, 0x9a, 0x01, 0xbc, 0xfe, 0x79, 0x9f, 0x45, 0xeb, 0x9f, - 0x01, 0xec, 0xb4, 0x82, 0x48, 0xff, 0x33, 0x99, 0xff, 0x66, 0xc9, 0x7c, - 0x2b, 0xfa, 0x42, 0x0a, 0xb9, 0xed, 0xab, 0xfc, 0xd5, 0x7a, 0xc1, 0x6d, - 0x23, 0xde, 0xf1, 0xce, 0xf0, 0xfd, 0x00, 0x1c, 0x19, 0x7b, 0x11, 0xae, - 0x05, 0x8d, 0x82, 0xc2, 0xc3, 0x0e, 0xe4, 0xf8, 0xbe, 0x8c, 0x1f, 0x4e, - 0x3f, 0x0f, 0x6b, 0xd1, 0xf8, 0xa1, 0x56, 0xdf, 0xfb, 0xa4, 0xc2, 0xcf, - 0xdd, 0x42, 0xfb, 0x57, 0x21, 0xdf, 0x01, 0xee, 0xa8, 0x45, 0xeb, 0xd7, - 0x78, 0x3d, 0xcd, 0xe7, 0x22, 0xf5, 0x90, 0x7b, 0x65, 0xbe, 0xcc, 0xcf, - 0x38, 0x7e, 0x2d, 0x9f, 0xd7, 0xb8, 0xd5, 0xe4, 0xcf, 0x6f, 0xd1, 0x0f, - 0x4a, 0xd5, 0xff, 0x8b, 0x7e, 0x50, 0x7e, 0x7a, 0x7d, 0x63, 0x7d, 0x75, - 0x42, 0x3e, 0x87, 0x11, 0x9f, 0x06, 0x59, 0x23, 0xbf, 0xad, 0x8e, 0x71, - 0x06, 0xae, 0x20, 0x1f, 0xb8, 0xfe, 0x1f, 0x01, 0x98, 0xca, 0x7f, 0xb6, - 0x97, 0xfd, 0x7a, 0xeb, 0x08, 0x53, 0x35, 0xf1, 0x30, 0xdb, 0xff, 0x89, - 0xa7, 0x2c, 0x78, 0x3f, 0xc4, 0x91, 0x7a, 0x7a, 0x59, 0xef, 0x0e, 0x02, - 0x16, 0xff, 0x0d, 0xac, 0x6c, 0x14, 0x7f, 0x16, 0xd4, 0xd5, 0xfe, 0xb1, - 0xaf, 0xc9, 0xba, 0xdf, 0xb2, 0xc9, 0xfa, 0xb8, 0x71, 0xf5, 0xf2, 0x3b, - 0x10, 0xaf, 0xcf, 0x13, 0x78, 0xba, 0x26, 0x7e, 0xb4, 0xad, 0xef, 0x57, - 0xf3, 0xef, 0xbf, 0x81, 0x40, 0x90, 0x45, 0x61, 0x7d, 0x3d, 0x3f, 0x97, - 0xea, 0xfd, 0xfe, 0x29, 0x11, 0x7f, 0xd9, 0x07, 0x18, 0xbd, 0x85, 0xfd, - 0x5b, 0x34, 0x3c, 0xfd, 0x90, 0x5e, 0xbe, 0x41, 0x53, 0xf3, 0xc6, 0xbe, - 0x05, 0xcf, 0xc2, 0xc6, 0x34, 0xcf, 0x7f, 0x1f, 0xb0, 0x93, 0xe9, 0x4b, - 0xe2, 0xbf, 0x3e, 0xf3, 0xc3, 0xaf, 0x14, 0x80, 0x8e, 0xdf, 0x80, 0x5a, - 0xd4, 0xaf, 0x0a, 0x79, 0x84, 0x21, 0xdf, 0x5f, 0x9c, 0x9e, 0x3f, 0xa9, - 0xf2, 0xdf, 0x12, 0xce, 0xb7, 0xc0, 0xb3, 0x91, 0xe7, 0xb3, 0x71, 0x2b, - 0xaf, 0x17, 0x2a, 0x3e, 0x32, 0xf2, 0xc4, 0xcb, 0xc5, 0x6c, 0xf5, 0xd8, - 0x08, 0xcb, 0x3b, 0xc4, 0xdf, 0xcd, 0x20, 0x8a, 0x5f, 0x63, 0xd3, 0xa9, - 0x96, 0xd9, 0xfb, 0x54, 0xbe, 0x0f, 0xd2, 0xfb, 0x65, 0x8e, 0xaa, 0xf8, - 0x5b, 0xe0, 0x56, 0xd9, 0xf3, 0x1e, 0x79, 0x5e, 0xc5, 0x63, 0x85, 0x7d, - 0xe3, 0xc2, 0x4e, 0x1c, 0x78, 0xbe, 0x05, 0x06, 0x5f, 0x67, 0x78, 0x0b, - 0x49, 0xe7, 0xf1, 0xfa, 0xa8, 0x3d, 0x14, 0xf1, 0x97, 0x00, 0x70, 0x0a, - 0x44, 0xf7, 0x23, 0xac, 0x77, 0x16, 0xf4, 0x64, 0x4f, 0x83, 0x80, 0xf6, - 0x1b, 0x58, 0xb8, 0x8f, 0xf5, 0xa3, 0xe8, 0x39, 0xc0, 0x52, 0x8c, 0xf0, - 0x36, 0x5e, 0x97, 0x8e, 0x91, 0x07, 0xf0, 0xda, 0xe7, 0xde, 0x0e, 0xc3, - 0xf5, 0x5d, 0x21, 0xf1, 0xf6, 0x45, 0xfc, 0xfd, 0x1b, 0xda, 0x78, 0x12, - 0xde, 0x2b, 0x3c, 0xff, 0x7a, 0x3c, 0x9a, 0xaf, 0xdf, 0x84, 0x23, 0xfa, - 0xe1, 0xd5, 0x30, 0x7a, 0x90, 0x5c, 0x4f, 0xfd, 0xc7, 0x9c, 0xbd, 0x00, - 0x83, 0x6a, 0x1c, 0xbd, 0xec, 0x40, 0x5b, 0xb2, 0x84, 0xde, 0xe1, 0x59, - 0xd0, 0x18, 0x4b, 0xc6, 0x3b, 0x78, 0x7b, 0x02, 0xbe, 0x1c, 0xe7, 0x0f, - 0x1c, 0x7f, 0x81, 0xf7, 0x83, 0x91, 0xeb, 0x41, 0xf8, 0x48, 0x43, 0xc5, - 0xe3, 0xb1, 0x95, 0x80, 0x6f, 0xc0, 0xd6, 0xb3, 0x9e, 0x45, 0xe1, 0xfb, - 0x2e, 0x0c, 0x3f, 0x04, 0x3a, 0x97, 0x0a, 0x3f, 0x64, 0x46, 0xab, 0xcf, - 0x0e, 0xeb, 0x7b, 0x17, 0x2c, 0x76, 0x7f, 0x88, 0xe2, 0xa7, 0x55, 0x69, - 0xfd, 0xae, 0xed, 0x4f, 0x48, 0xbc, 0x75, 0xfa, 0x27, 0xf0, 0x7b, 0x24, - 0xfd, 0x95, 0x17, 0x4c, 0x7c, 0x1e, 0x3e, 0x5f, 0x9f, 0xf2, 0xb3, 0x6c, - 0xa7, 0xa4, 0xd7, 0x3c, 0x08, 0x72, 0xb4, 0x5f, 0x01, 0x0d, 0xd8, 0x5f, - 0x01, 0x59, 0x21, 0x23, 0xfb, 0x5b, 0xab, 0xfa, 0xef, 0x49, 0xfc, 0xf2, - 0x51, 0x41, 0x5f, 0xa0, 0x9e, 0x8e, 0xcf, 0xbe, 0x4b, 0xcf, 0x57, 0x52, - 0xf6, 0xb5, 0x4f, 0xe3, 0xb6, 0x6c, 0x3f, 0x0a, 0xd1, 0xfa, 0x47, 0xf2, - 0x42, 0xb4, 0x8c, 0xc8, 0x83, 0xed, 0x03, 0x54, 0xce, 0x91, 0xf1, 0xf7, - 0x65, 0x9b, 0xf8, 0x7f, 0x90, 0xcd, 0x1a, 0xf1, 0x33, 0x7c, 0x8d, 0xb1, - 0x9f, 0x4d, 0xf5, 0x09, 0x62, 0x3d, 0xc2, 0x78, 0xbb, 0xcf, 0xf0, 0xb4, - 0x92, 0xf2, 0xbf, 0xaf, 0x51, 0xf9, 0xc9, 0x97, 0xb7, 0x7e, 0xbe, 0x19, - 0x9f, 0xb1, 0x53, 0xe7, 0x47, 0xf6, 0xc3, 0x28, 0x72, 0xcd, 0x53, 0x79, - 0x8a, 0x60, 0xc5, 0x96, 0x6b, 0xa6, 0xe9, 0x1a, 0xe0, 0x42, 0xf5, 0xe5, - 0x13, 0xb4, 0x7e, 0xfe, 0x49, 0xf2, 0xa6, 0x79, 0x0b, 0x56, 0x30, 0xec, - 0x44, 0xf6, 0x52, 0x3f, 0x0b, 0xb6, 0xf3, 0xfc, 0xba, 0xe5, 0x53, 0xbd, - 0x39, 0x6c, 0x0d, 0xe0, 0xab, 0x9f, 0x0f, 0xf5, 0x2d, 0xb2, 0xc9, 0x89, - 0xfd, 0x5e, 0xc0, 0xf0, 0x8c, 0x65, 0x2f, 0xcb, 0x14, 0x41, 0xe9, 0x75, - 0xd0, 0x98, 0x82, 0x87, 0x7b, 0xde, 0x51, 0x3b, 0x4f, 0x5e, 0x84, 0x9f, - 0xa9, 0x8b, 0xe7, 0x21, 0xc5, 0x4b, 0x99, 0xa2, 0xf9, 0xd8, 0x4e, 0x99, - 0xf2, 0xa7, 0xfc, 0x0b, 0xc7, 0x38, 0xde, 0x4b, 0x90, 0xf5, 0x2b, 0x74, - 0xfe, 0x23, 0xda, 0x7c, 0x09, 0x7b, 0xb5, 0x6e, 0xa6, 0xf9, 0xce, 0x60, - 0x3d, 0x2a, 0x1f, 0x62, 0x78, 0x2b, 0xd2, 0x7e, 0xc8, 0xf2, 0x7e, 0x49, - 0x34, 0x5f, 0xea, 0x10, 0x19, 0x73, 0x9f, 0xc3, 0xeb, 0xcf, 0x37, 0x4b, - 0xff, 0xca, 0x0a, 0x5e, 0xbf, 0x54, 0x40, 0x5b, 0x18, 0x56, 0xeb, 0xd9, - 0x8c, 0xcf, 0xd6, 0xa7, 0x2a, 0xd6, 0xbb, 0x1f, 0xb4, 0x83, 0x87, 0x42, - 0xfb, 0x73, 0xec, 0xbc, 0x8d, 0x7a, 0xf1, 0xd6, 0x71, 0x7a, 0x03, 0xd7, - 0xca, 0xf1, 0xaf, 0x8c, 0xc5, 0xc7, 0xa6, 0xcf, 0xdf, 0x40, 0x9e, 0x57, - 0xf1, 0x77, 0xf9, 0x3c, 0x05, 0xd6, 0x88, 0xed, 0x0f, 0x21, 0xf9, 0x8b, - 0xa0, 0x0f, 0x5b, 0xcc, 0xef, 0x28, 0x68, 0x0f, 0xaf, 0x45, 0x8d, 0xbf, - 0x2c, 0x7d, 0xfc, 0x33, 0xc6, 0xf8, 0xfd, 0x70, 0x91, 0xe3, 0x77, 0xb5, - 0x98, 0x7f, 0xc6, 0x98, 0xff, 0x62, 0xc7, 0x5f, 0x12, 0x3f, 0xbe, 0x9a, - 0x6f, 0xac, 0xfc, 0x6e, 0xc2, 0x13, 0x08, 0xf7, 0xa7, 0x90, 0x3e, 0xde, - 0xd1, 0x36, 0xf1, 0x70, 0x54, 0xfe, 0x4a, 0xbe, 0xc5, 0xfc, 0xac, 0xa4, - 0xf9, 0xdd, 0x18, 0x3f, 0xbf, 0x6c, 0x8b, 0xf9, 0x25, 0x8e, 0xb7, 0x29, - 0x76, 0xbc, 0x04, 0xbc, 0x1e, 0x45, 0xef, 0x47, 0x69, 0x43, 0xa5, 0xd8, - 0xf1, 0x58, 0xfe, 0xd3, 0x82, 0xa4, 0xd7, 0xf5, 0xf2, 0x68, 0xc7, 0xe2, - 0xa7, 0xb0, 0x7a, 0xb5, 0x68, 0x3d, 0xa1, 0xf8, 0x7b, 0x49, 0xc9, 0xd3, - 0x0c, 0x8c, 0xbe, 0x2f, 0x1c, 0xff, 0xf7, 0xb4, 0xfe, 0x4a, 0xe5, 0x0d, - 0x4b, 0x85, 0x3c, 0xa0, 0xfc, 0x7f, 0x85, 0xe2, 0xff, 0xa5, 0x31, 0x86, - 0x86, 0x87, 0xcb, 0xb7, 0x92, 0x7d, 0xed, 0x71, 0x31, 0xe3, 0xaa, 0xf5, - 0xa1, 0x0a, 0xca, 0x0d, 0xd0, 0x92, 0x3b, 0x29, 0x7f, 0xcf, 0x9d, 0x3f, - 0x7f, 0x7e, 0x09, 0xf9, 0xc7, 0x5d, 0xdf, 0xd9, 0x01, 0xbd, 0xfa, 0x75, - 0xfd, 0x63, 0x95, 0x91, 0xbd, 0xc0, 0xbf, 0xa2, 0x13, 0x87, 0x78, 0x6d, - 0x9c, 0x5f, 0x97, 0x59, 0xfd, 0xe1, 0xe4, 0x4b, 0x95, 0xfc, 0x46, 0xda, - 0x71, 0xa8, 0xf6, 0x82, 0x03, 0xad, 0xf2, 0xee, 0x7e, 0xe4, 0xf4, 0x6e, - 0x47, 0xa5, 0x25, 0x36, 0xb6, 0x89, 0x2e, 0xf3, 0xc8, 0x23, 0x4e, 0xe1, - 0x9a, 0xd7, 0xd6, 0x81, 0x46, 0x07, 0xd5, 0x8f, 0x5e, 0x96, 0xf5, 0x17, - 0xe7, 0x57, 0x11, 0x71, 0x82, 0x28, 0x0b, 0x06, 0x0f, 0x43, 0x2a, 0xaf, - 0x30, 0x91, 0x8f, 0x03, 0xe0, 0x24, 0xb2, 0x3b, 0x80, 0xb7, 0x76, 0xec, - 0x6b, 0x4c, 0x7e, 0xbe, 0x1b, 0x6c, 0xb3, 0x50, 0xa7, 0x7f, 0xeb, 0xea, - 0x57, 0x7e, 0xdf, 0xa2, 0xfc, 0xb2, 0x0b, 0x9c, 0x24, 0xcf, 0x8e, 0x8d, - 0xac, 0x46, 0xcf, 0x21, 0xa2, 0x9f, 0xcf, 0xad, 0x1d, 0x26, 0x9a, 0x95, - 0xc5, 0x75, 0xfc, 0x83, 0x80, 0xe1, 0x93, 0x64, 0x6a, 0x45, 0x2b, 0x86, - 0x7f, 0x96, 0xc1, 0xd1, 0x3a, 0xbd, 0x8f, 0xed, 0xf2, 0x92, 0xb8, 0xfb, - 0x01, 0xf8, 0x0e, 0xbb, 0x0f, 0x6c, 0x1c, 0x7b, 0xdf, 0x07, 0x0d, 0x76, - 0x5f, 0xd9, 0x33, 0xc8, 0xe8, 0x87, 0x01, 0x0c, 0x3c, 0xe0, 0x50, 0x9f, - 0x5c, 0x02, 0xaa, 0x7f, 0x0f, 0x4b, 0xd7, 0xc7, 0xca, 0x1b, 0x2a, 0xe2, - 0xa2, 0x93, 0x68, 0x79, 0x5e, 0x8c, 0xeb, 0xa6, 0xfd, 0x6e, 0xca, 0x1f, - 0xae, 0xb3, 0x5a, 0x4a, 0x8f, 0x17, 0x6e, 0x2a, 0xfd, 0xef, 0x68, 0x2f, - 0x95, 0x84, 0x6a, 0xbc, 0x33, 0x82, 0xbe, 0xdc, 0x2e, 0x2a, 0xc4, 0x26, - 0x76, 0x7e, 0x0a, 0x6e, 0x64, 0xf8, 0x25, 0x4d, 0xef, 0xa3, 0xf2, 0xbf, - 0x3b, 0x42, 0x9f, 0x64, 0xf6, 0xc3, 0x8c, 0xff, 0x8b, 0x7c, 0x30, 0x0a, - 0x73, 0xfa, 0x06, 0xd0, 0x5c, 0x8f, 0xba, 0x87, 0x41, 0xd2, 0x33, 0x7a, - 0xcd, 0x53, 0x15, 0x65, 0x80, 0xdf, 0xdf, 0x9e, 0x11, 0x87, 0x61, 0x84, - 0xe1, 0x30, 0xe0, 0xbf, 0x12, 0x78, 0x92, 0x13, 0x3e, 0xbf, 0xfe, 0x04, - 0xe4, 0xcb, 0x3b, 0xd4, 0xcb, 0xf5, 0xf9, 0x69, 0xc4, 0x1f, 0xc8, 0xdc, - 0xa1, 0xf2, 0x9d, 0x65, 0xac, 0xe9, 0xe7, 0xab, 0x12, 0xea, 0x63, 0x37, - 0x94, 0xa2, 0xeb, 0x27, 0xa1, 0x7c, 0x13, 0xf0, 0x5a, 0x63, 0xcf, 0xcf, - 0x72, 0x75, 0x7e, 0x62, 0xf6, 0xe3, 0xca, 0xba, 0xbb, 0xae, 0xfa, 0x41, - 0x29, 0x7f, 0x81, 0x5d, 0xbf, 0x9b, 0x07, 0xc4, 0x13, 0x9e, 0xbf, 0xc4, - 0xf9, 0x3a, 0x4d, 0xf9, 0xc9, 0xe6, 0xfe, 0x9b, 0xf9, 0xca, 0x98, 0xd6, - 0x73, 0xd9, 0x59, 0xa1, 0x3f, 0x92, 0xeb, 0x67, 0x71, 0xe7, 0x61, 0x91, - 0x3f, 0xc7, 0xe8, 0xbf, 0xc1, 0x7a, 0x60, 0xab, 0xf9, 0xcb, 0xf5, 0x12, - 0xfd, 0x2a, 0xa0, 0xdd, 0x10, 0x01, 0xff, 0xd5, 0x71, 0xdf, 0x27, 0xf5, - 0xb5, 0x7f, 0xcd, 0x2d, 0xee, 0xfb, 0x7e, 0x67, 0x91, 0xfd, 0xb0, 0xcd, - 0xfc, 0x65, 0x1f, 0xbc, 0x81, 0xeb, 0x83, 0x46, 0xff, 0x28, 0x89, 0xaf, - 0xfb, 0x77, 0x3f, 0x39, 0x4f, 0xff, 0xee, 0x32, 0xf5, 0x37, 0x9f, 0xd7, - 0x71, 0xd3, 0xe7, 0xfa, 0xe9, 0x7a, 0x5c, 0x2b, 0x7e, 0xe0, 0x72, 0xc3, - 0x9e, 0x3a, 0x05, 0xfc, 0x7a, 0xe1, 0xe9, 0x89, 0x09, 0x41, 0x6f, 0x67, - 0x39, 0x2e, 0x3d, 0x3e, 0x21, 0xae, 0x7d, 0xde, 0x3f, 0xb3, 0x76, 0xb3, - 0xd0, 0xf7, 0x9c, 0x47, 0x58, 0xbf, 0x06, 0x7c, 0xb3, 0xa0, 0x57, 0x6a, - 0xe6, 0x74, 0xf4, 0x8c, 0x33, 0xfc, 0x23, 0x7a, 0x9e, 0xba, 0x3d, 0xa2, - 0xc0, 0x97, 0x7a, 0x6c, 0xc2, 0xb4, 0x21, 0xc3, 0x23, 0x25, 0x5a, 0x03, - 0x8a, 0xf6, 0x97, 0x43, 0x75, 0xc4, 0xcf, 0x13, 0xb7, 0xaf, 0x7c, 0x6e, - 0xf7, 0xf9, 0x2e, 0xf7, 0xcb, 0x4d, 0x17, 0x84, 0xf7, 0x9d, 0x98, 0x4d, - 0xb0, 0x8c, 0xc8, 0xef, 0xbb, 0x9e, 0xc7, 0xa8, 0xeb, 0x61, 0xf2, 0xbf, - 0x17, 0x00, 0xf5, 0x67, 0x95, 0xaa, 0x8d, 0x6a, 0x39, 0x6f, 0xd9, 0xeb, - 0x21, 0xce, 0x0e, 0xbe, 0x7f, 0x12, 0x8f, 0x51, 0x97, 0xe9, 0x92, 0x29, - 0x08, 0xbc, 0xd7, 0x01, 0x26, 0xfc, 0xd3, 0x45, 0xc4, 0x76, 0xdb, 0x60, - 0x59, 0xea, 0x7d, 0x03, 0x27, 0x41, 0xdf, 0x55, 0x60, 0x1e, 0x7c, 0xef, - 0x5e, 0x5e, 0xff, 0xee, 0x07, 0x20, 0x7f, 0xd5, 0x01, 0x04, 0xb6, 0xbf, - 0x0e, 0xcb, 0xac, 0x1e, 0x0a, 0xfb, 0x01, 0xf9, 0xfe, 0x7d, 0x64, 0xbc, - 0xdd, 0x3b, 0x1f, 0xc2, 0xae, 0x3b, 0x8c, 0xec, 0x37, 0x93, 0x43, 0xb9, - 0x9d, 0xd7, 0x93, 0xfd, 0x8d, 0x85, 0x61, 0xd9, 0xe5, 0xf6, 0xf5, 0xd1, - 0x63, 0xa0, 0xd2, 0xf3, 0xb0, 0x2f, 0xc6, 0x0e, 0xdc, 0xbd, 0xc7, 0xef, - 0xa8, 0x14, 0x3e, 0xf3, 0x32, 0xaa, 0x14, 0xa7, 0x68, 0xbf, 0x34, 0x77, - 0x80, 0x5c, 0x37, 0xef, 0xaf, 0xb2, 0x00, 0x9c, 0xb4, 0x7e, 0xbe, 0x91, - 0xf3, 0xd8, 0x10, 0x78, 0xca, 0xf2, 0x7c, 0x35, 0x98, 0xea, 0xe7, 0xb9, - 0x7d, 0x31, 0xf4, 0x88, 0x1f, 0xea, 0xe2, 0xfc, 0xe2, 0xe4, 0x1d, 0x67, - 0x2c, 0x7e, 0x3e, 0xf3, 0x17, 0x84, 0x1f, 0xbe, 0x3a, 0xb1, 0xdf, 0xc1, - 0x65, 0xae, 0x1f, 0x5d, 0xf4, 0xf9, 0x37, 0xfa, 0x23, 0x2d, 0xb6, 0xbf, - 0x92, 0xb9, 0xde, 0x91, 0x7e, 0x59, 0x3c, 0xde, 0x63, 0xf0, 0x03, 0x60, - 0x37, 0xd8, 0xa4, 0xbc, 0xe9, 0x67, 0x01, 0xf2, 0x81, 0xb0, 0x5c, 0xd4, - 0x79, 0x0b, 0x9a, 0xce, 0xdf, 0xa7, 0x4c, 0xf9, 0xe4, 0x07, 0x9d, 0x4f, - 0x53, 0x8a, 0xce, 0x09, 0xfa, 0xb8, 0xb2, 0xdc, 0xb9, 0xae, 0xfa, 0xfc, - 0x5a, 0xc9, 0xdf, 0xed, 0xc6, 0x57, 0x35, 0x7e, 0x33, 0x66, 0xfe, 0xbe, - 0xc1, 0xd2, 0x05, 0x92, 0xf8, 0x95, 0x9a, 0xdf, 0xa5, 0xe5, 0x57, 0xf7, - 0x5c, 0x2a, 0x7e, 0x65, 0xf4, 0xcf, 0x5e, 0x34, 0xbf, 0x82, 0x3a, 0xbf, - 0xea, 0x7e, 0xaa, 0x97, 0xe2, 0x45, 0x83, 0xea, 0x09, 0xf9, 0x1e, 0x15, - 0x4f, 0x61, 0xe7, 0x6f, 0x79, 0x8d, 0xe1, 0x49, 0x93, 0xe7, 0xd9, 0xb9, - 0x9b, 0x16, 0xfc, 0x0a, 0x7c, 0xbd, 0x1c, 0xf2, 0xab, 0x1c, 0x95, 0x97, - 0x41, 0xe6, 0xea, 0xda, 0x52, 0xff, 0x50, 0x37, 0xa8, 0x23, 0x27, 0x43, - 0xf8, 0x95, 0xb7, 0xc0, 0xfc, 0x51, 0xb7, 0x5a, 0xd8, 0xae, 0xbd, 0x73, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 04:36:51 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B989CD478BE; Thu, 20 Apr 2017 04:36:51 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 392456EA; Thu, 20 Apr 2017 04:36:51 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K4ao1W088257; Thu, 20 Apr 2017 04:36:50 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K4aocm088254; Thu, 20 Apr 2017 04:36:50 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201704200436.v3K4aocm088254@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Thu, 20 Apr 2017 04:36:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r317184 - stable/9/sys/dev/qlxgbe X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 04:36:51 -0000 Author: davidcs Date: Thu Apr 20 04:36:49 2017 New Revision: 317184 URL: https://svnweb.freebsd.org/changeset/base/317184 Log: MFC r316183 Upgrade firmware and other related files to version 5.4.64 Modified: stable/9/sys/dev/qlxgbe/ql_boot.c stable/9/sys/dev/qlxgbe/ql_fw.c stable/9/sys/dev/qlxgbe/ql_minidump.c stable/9/sys/dev/qlxgbe/ql_reset.c Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) Modified: stable/9/sys/dev/qlxgbe/ql_boot.c ============================================================================== --- stable/9/sys/dev/qlxgbe/ql_boot.c Thu Apr 20 04:33:47 2017 (r317183) +++ stable/9/sys/dev/qlxgbe/ql_boot.c Thu Apr 20 04:36:49 2017 (r317184) @@ -35,7 +35,7 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_bootloader_version_major = 5; unsigned int ql83xx_bootloader_version_minor = 4; -unsigned int ql83xx_bootloader_version_sub = 62; +unsigned int ql83xx_bootloader_version_sub = 64; unsigned char ql83xx_bootloader[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -10957,9 +10957,9 @@ unsigned char ql83xx_bootloader[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x02, 0x00, 0x40, 0x40, 0x05, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x40, 0x40, 0x05, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x9b, 0x64, 0x97, 0x0e + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x64, 0x95, 0x0e }; unsigned int ql83xx_bootloader_len = 131072; Modified: stable/9/sys/dev/qlxgbe/ql_fw.c ============================================================================== --- stable/9/sys/dev/qlxgbe/ql_fw.c Thu Apr 20 04:33:47 2017 (r317183) +++ stable/9/sys/dev/qlxgbe/ql_fw.c Thu Apr 20 04:36:49 2017 (r317184) @@ -35,32 +35,32 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_firmware_version_major = 5; unsigned int ql83xx_firmware_version_minor = 4; -unsigned int ql83xx_firmware_version_sub = 62; +unsigned int ql83xx_firmware_version_sub = 64; unsigned char ql83xx_firmware[] = { - 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc4, 0x5e, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x88, 0xcd, 0x7d, 0x72, 0x3d, 0x1f, 0x5f, 0xe0, + 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe4, 0x42, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5f, 0x7e, 0x74, 0x37, 0x27, 0xc9, 0xab, 0x39, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0xef, 0x03, 0x00, + 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xef, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x44, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0xf9, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7a, 0x9f, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x46, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xdd, 0x4e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf9, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9f, 0x90, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x9f, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xe5, 0x98, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x71, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x89, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -69,118 +69,118 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x56, 0xa3, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7b, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6f, 0x94, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xd1, 0xb8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xec, 0xa9, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xbd, 0x17, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x94, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x54, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xae, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xde, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x35, 0xd0, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x8c, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9a, 0xb9, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1a, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2f, 0xef, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x9f, 0xd8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xfb, 0x17, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x14, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xe4, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xbe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xa0, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdd, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x72, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x67, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0xeb, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4f, 0x25, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xba, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x30, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x86, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xb4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x19, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x84, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdc, 0x4c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x28, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x68, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x45, 0x36, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x56, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6e, 0x3f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x5e, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x51, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x47, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xcc, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x68, 0x61, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x26, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x68, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd3, 0x4a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8e, 0x63, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x0a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x4c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x6e, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbc, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7c, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x57, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb7, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x8f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2a, 0xa1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x79, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x44, 0xa1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x30, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xbd, 0x19, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x30, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x56, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xd1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0x1a, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -189,7 +189,7 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x52, 0x56, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb5, 0x3f, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x58, 0xe0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -232,9 +232,9 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x5f, 0x1a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x24, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xb2, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x49, 0x1a, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xcb, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe8, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x92, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -249,7838 +249,7837 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xda, 0xec, 0x3d, - 0x6d, 0x70, 0x5c, 0xd5, 0x75, 0xf7, 0x7d, 0xec, 0xee, 0xd3, 0x6a, 0x57, - 0x5e, 0x83, 0x4c, 0x84, 0x90, 0xe3, 0x27, 0xdb, 0xd8, 0xe2, 0x33, 0x6b, - 0x63, 0x1b, 0x63, 0x9c, 0xfa, 0x49, 0x96, 0x8d, 0xed, 0xc8, 0x44, 0x40, - 0xca, 0x37, 0x44, 0x24, 0x0d, 0x35, 0x84, 0x60, 0x31, 0x25, 0xa9, 0xf8, - 0x28, 0x7e, 0xb2, 0x25, 0xd9, 0x04, 0x9b, 0xc8, 0xd8, 0x01, 0x87, 0xd0, - 0xb0, 0x92, 0x31, 0xa5, 0x2d, 0x93, 0x2e, 0x93, 0x4c, 0x60, 0xda, 0xce, - 0xb0, 0xd8, 0x99, 0x60, 0x52, 0xdc, 0xba, 0x3f, 0x48, 0x43, 0x18, 0x9a, - 0xed, 0xa4, 0x4c, 0x55, 0x02, 0x64, 0xdb, 0xe9, 0x10, 0x39, 0xa9, 0xa1, - 0xf7, 0xdc, 0x8f, 0xf7, 0xde, 0xbd, 0xfb, 0xde, 0xdb, 0xbd, 0xb2, 0xec, - 0x4c, 0x3a, 0x5e, 0x66, 0xf0, 0x1e, 0xdd, 0x7b, 0xcf, 0x3d, 0xf7, 0xdc, - 0x73, 0xcf, 0x39, 0xf7, 0x9c, 0xf3, 0xde, 0x22, 0x0d, 0xd1, 0x8f, 0x89, - 0x0c, 0xa4, 0xa3, 0xdb, 0xd0, 0x69, 0xf8, 0xf7, 0x13, 0xa6, 0x9f, 0x3e, - 0x06, 0x1f, 0x7d, 0xf7, 0x6d, 0xf2, 0xdf, 0x57, 0xaa, 0x60, 0xf1, 0x53, - 0x94, 0xe0, 0x82, 0x22, 0xec, 0xea, 0xc8, 0x26, 0x5f, 0xf6, 0xa4, 0xc8, - 0x3f, 0xfd, 0x55, 0xfd, 0x35, 0xe4, 0x3a, 0xb9, 0x00, 0xcc, 0xbe, 0xdb, - 0x85, 0x0c, 0xa5, 0x17, 0x95, 0x0c, 0x4e, 0x3a, 0x42, 0x0d, 0x05, 0x93, - 0x02, 0xbd, 0x37, 0xd2, 0xcf, 0x9d, 0x51, 0xf3, 0xad, 0x43, 0x11, 0xf3, - 0x29, 0xc2, 0x1c, 0xdf, 0x91, 0x69, 0xc6, 0x37, 0x5f, 0x9b, 0x5e, 0x7c, - 0x8b, 0xa7, 0x19, 0xdf, 0x66, 0x7d, 0x6a, 0xf8, 0xf8, 0xf8, 0x9b, 0xcc, - 0x29, 0x8d, 0x0f, 0x91, 0xb7, 0xbc, 0x0b, 0xa8, 0xce, 0x5b, 0x7c, 0xeb, - 0xfa, 0x99, 0x68, 0xe8, 0x9b, 0x18, 0x25, 0xc0, 0x47, 0x3b, 0x86, 0xde, - 0xf8, 0x71, 0x8f, 0x96, 0xdb, 0x8d, 0x87, 0x00, 0x5c, 0xb8, 0x6b, 0xf6, - 0xca, 0x15, 0x88, 0xb4, 0x57, 0x78, 0xfb, 0x7b, 0x77, 0x6b, 0x05, 0xdc, - 0x9e, 0x1f, 0x84, 0xf1, 0x77, 0x5e, 0xf3, 0xea, 0xc5, 0xf3, 0xe8, 0xf8, - 0x41, 0xd6, 0xde, 0xb4, 0x5b, 0xcb, 0x3f, 0x86, 0xc7, 0x0f, 0x72, 0xfc, - 0xff, 0x4c, 0xc7, 0x0f, 0x8a, 0xf8, 0xf3, 0x5b, 0x31, 0xdc, 0xbb, 0xfe, - 0xe2, 0xc4, 0x79, 0x17, 0xd1, 0xf1, 0x5b, 0x59, 0xfb, 0xd5, 0x6f, 0x68, - 0xbd, 0x7b, 0xf0, 0x78, 0x80, 0xfb, 0x56, 0xdc, 0xf8, 0xec, 0x5d, 0x49, - 0x3a, 0x9e, 0xb7, 0xdf, 0xfb, 0x6b, 0xad, 0x6f, 0x14, 0x8f, 0xdf, 0xe6, - 0xe1, 0xd7, 0xc8, 0xf8, 0x6d, 0x12, 0xfd, 0x00, 0x17, 0x5e, 0xfe, 0xaf, - 0xf9, 0xcb, 0x2c, 0x3a, 0x9e, 0xb7, 0xbf, 0x74, 0x39, 0xea, 0x85, 0xf9, - 0x87, 0x30, 0xdc, 0x9f, 0x7b, 0xd5, 0x69, 0xa6, 0xeb, 0xeb, 0x1f, 0x62, - 0xed, 0x3f, 0xbb, 0xe5, 0x21, 0x0b, 0xe3, 0x2f, 0x02, 0xdc, 0x97, 0x19, - 0xc9, 0xe7, 0x5a, 0xe9, 0x78, 0xde, 0xbe, 0xf2, 0x0b, 0x0f, 0xed, 0x80, - 0xf9, 0x87, 0x81, 0x7e, 0x6b, 0x8d, 0x9d, 0x61, 0xeb, 0x1f, 0x66, 0xed, - 0x5d, 0x43, 0x0f, 0x59, 0x30, 0x3f, 0xc0, 0x8e, 0x69, 0xe6, 0xac, 0x0c, - 0x1d, 0xcf, 0xdb, 0xff, 0xe8, 0xd9, 0x87, 0x76, 0xc0, 0xfc, 0x23, 0xa6, - 0xbf, 0x1f, 0x18, 0x5f, 0xbf, 0x04, 0x17, 0x25, 0xb8, 0x22, 0xc1, 0xf9, - 0xed, 0xd2, 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0xf3, 0x3b, 0x80, - 0xbe, 0xe6, 0xb5, 0xb7, 0xb5, 0xd9, 0xb9, 0xa5, 0x4f, 0xe2, 0xf1, 0x00, - 0x17, 0xf2, 0x5f, 0x30, 0x2f, 0xd8, 0xbc, 0x05, 0xd6, 0x57, 0x04, 0xb8, - 0xb7, 0x65, 0xfb, 0x3d, 0xcd, 0xe7, 0x91, 0xf6, 0x0a, 0x6f, 0xdf, 0xb8, - 0x7b, 0x0b, 0xac, 0x2f, 0xff, 0x30, 0xf0, 0xa7, 0xed, 0xa0, 0x66, 0x2e, - 0xa6, 0xe3, 0x1f, 0x66, 0xed, 0x9b, 0xbf, 0xb7, 0x05, 0xd6, 0x57, 0x04, - 0xb8, 0xbf, 0x4d, 0xcb, 0x59, 0x97, 0xd3, 0xf1, 0xbc, 0x7d, 0xf7, 0x1b, - 0x5b, 0x2c, 0x2c, 0x1f, 0xf9, 0xaf, 0x53, 0x7a, 0x16, 0xb4, 0xd9, 0x94, - 0x7e, 0x02, 0x37, 0x66, 0x90, 0xb5, 0xf1, 0x36, 0x42, 0x3f, 0x6b, 0x5f, - 0xc2, 0xda, 0x2b, 0x04, 0x7e, 0x44, 0xe3, 0xed, 0xf9, 0x47, 0xa4, 0xf5, - 0x4b, 0x70, 0x51, 0x82, 0x2b, 0x12, 0x9c, 0xdf, 0x29, 0x8d, 0x97, 0xe0, - 0xa2, 0x04, 0x57, 0x24, 0x38, 0xbf, 0x4b, 0x1a, 0x2f, 0xc1, 0x45, 0x09, - 0xae, 0x48, 0x70, 0xfe, 0x51, 0x69, 0xbc, 0x04, 0x17, 0x25, 0xb8, 0x22, - 0xc1, 0xf9, 0x6f, 0x48, 0xe3, 0x25, 0xb8, 0x28, 0xc1, 0x15, 0x09, 0xce, - 0x3b, 0x18, 0x76, 0x37, 0xbd, 0x97, 0xe4, 0xe3, 0x01, 0x2e, 0xcf, 0xfb, - 0xd9, 0xd7, 0xf8, 0x78, 0x80, 0x4b, 0xbf, 0x39, 0x3c, 0x62, 0xb0, 0xf1, - 0x00, 0x17, 0x5e, 0xf8, 0xe8, 0x43, 0x06, 0xe7, 0x3b, 0x31, 0x9c, 0xdb, - 0xb5, 0xb4, 0xc1, 0x61, 0xe3, 0x01, 0xee, 0xef, 0x9e, 0x77, 0x1f, 0x83, - 0x8b, 0x00, 0xf7, 0xce, 0xd9, 0xbd, 0x6b, 0x35, 0x1b, 0x0f, 0x70, 0xfe, - 0x27, 0xdb, 0x8f, 0x33, 0x38, 0xdf, 0x25, 0xd1, 0x2f, 0xc1, 0x45, 0x09, - 0xae, 0x48, 0x70, 0x7e, 0xb5, 0x34, 0x5e, 0x82, 0x8b, 0x12, 0x5c, 0x91, - 0xe0, 0x7c, 0xb7, 0x34, 0x5e, 0x82, 0x8b, 0x12, 0x5c, 0x91, 0xe0, 0xfc, - 0x1a, 0x69, 0xbc, 0x04, 0x17, 0x25, 0xb8, 0x22, 0xc1, 0xf9, 0xb5, 0xd2, - 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0xf3, 0x57, 0x48, 0xe3, 0x25, - 0xb8, 0x28, 0xc1, 0x15, 0x09, 0xce, 0xaf, 0x83, 0xfd, 0xf9, 0xc3, 0x37, - 0xf8, 0x7e, 0xf6, 0x03, 0x7c, 0xf4, 0xab, 0x6f, 0x73, 0xb8, 0x48, 0xda, - 0x1f, 0x7f, 0x87, 0xc3, 0x15, 0xd2, 0xfe, 0x83, 0xf7, 0xbd, 0xfd, 0x5f, - 0x0f, 0xe7, 0xff, 0xf2, 0xbf, 0x3e, 0xce, 0xc7, 0x13, 0xf8, 0xa6, 0xef, - 0x73, 0xb8, 0x48, 0xe0, 0x07, 0x86, 0x39, 0x5c, 0x01, 0xb8, 0xf2, 0xf4, - 0xa3, 0x1c, 0xce, 0x6f, 0x00, 0xf8, 0xe5, 0x51, 0x6f, 0x3c, 0x81, 0x7f, - 0xfe, 0x2d, 0x6f, 0x3c, 0xc0, 0x68, 0xe6, 0xdc, 0x63, 0x7c, 0x3c, 0xc0, - 0xa3, 0x4b, 0x2f, 0xe0, 0x70, 0xfe, 0x33, 0x18, 0xb6, 0xbb, 0x4c, 0x0e, - 0xf7, 0x03, 0x5c, 0xbc, 0x3d, 0xcb, 0xe1, 0x22, 0xc0, 0xce, 0x8e, 0x9c, - 0x37, 0x1e, 0xe0, 0xa3, 0xcf, 0x9f, 0xed, 0x8d, 0xef, 0x01, 0xfc, 0xa5, - 0x57, 0xbd, 0xf5, 0xf7, 0x50, 0xfe, 0x54, 0xf8, 0x78, 0x09, 0xae, 0x48, - 0x70, 0x7e, 0xa3, 0x08, 0xf7, 0x4b, 0x70, 0x51, 0x82, 0x2b, 0x12, 0x9c, - 0xbf, 0x52, 0x1a, 0x2f, 0xc1, 0x45, 0x09, 0xae, 0x48, 0x70, 0xfe, 0xb3, - 0xd2, 0x78, 0x09, 0x2e, 0x4a, 0x70, 0x45, 0x82, 0x45, 0xff, 0xae, 0xda, - 0x3f, 0x98, 0x19, 0x84, 0x6b, 0xfa, 0x1b, 0x36, 0xff, 0xa6, 0x31, 0xa7, - 0x92, 0x4d, 0x36, 0x43, 0xf3, 0x9c, 0xcc, 0x1a, 0xfe, 0x4a, 0xbf, 0xe6, - 0x04, 0xe4, 0x93, 0xe2, 0x4b, 0x24, 0xb0, 0xfe, 0x07, 0x9f, 0x1b, 0xb7, - 0xdf, 0x98, 0x60, 0x6d, 0x1f, 0xcd, 0x41, 0x76, 0x6f, 0x6d, 0x7c, 0x6a, - 0xf4, 0xb3, 0xb3, 0x51, 0xfe, 0x98, 0x7e, 0x36, 0xab, 0xfb, 0x53, 0xd3, - 0x0a, 0x17, 0x6b, 0xef, 0x8f, 0x1a, 0xcc, 0xd6, 0x57, 0x89, 0x58, 0x5f, - 0xcd, 0xf9, 0x6a, 0x8c, 0xaf, 0x79, 0x5f, 0x51, 0x9c, 0xcf, 0xf5, 0x74, - 0x95, 0xc3, 0xe5, 0x27, 0xcb, 0xee, 0x2b, 0x9b, 0x70, 0xab, 0xe6, 0xdd, - 0x67, 0x10, 0xb2, 0x48, 0xbb, 0xaf, 0x9c, 0x6d, 0xb4, 0xef, 0x90, 0x36, - 0x88, 0x72, 0x25, 0x64, 0xb5, 0xd0, 0xfe, 0xf6, 0x56, 0xdc, 0x1f, 0x5d, - 0xa8, 0x33, 0xd4, 0x1f, 0x87, 0xcb, 0x4f, 0x46, 0xc4, 0x8f, 0x5e, 0x67, - 0x4d, 0x13, 0x0c, 0xfe, 0xdd, 0xee, 0x5f, 0x2d, 0x7e, 0x9d, 0x86, 0x4f, - 0xec, 0xfc, 0x9f, 0x7c, 0x78, 0x7a, 0xe9, 0xb1, 0x91, 0x14, 0x7f, 0xc0, - 0x7f, 0xf8, 0x83, 0xd6, 0x40, 0x7f, 0xa6, 0x7f, 0xbd, 0x76, 0xf4, 0x43, - 0x24, 0xca, 0x77, 0x2e, 0x23, 0xc2, 0x70, 0xa2, 0x92, 0xc8, 0x3f, 0x57, - 0x78, 0x50, 0x3a, 0x3f, 0xd4, 0xd5, 0xd9, 0x41, 0xf9, 0x8b, 0xf1, 0xa7, - 0x5b, 0xe9, 0xf9, 0xb2, 0xf5, 0xa0, 0x3e, 0x76, 0x8f, 0x9f, 0x0c, 0x7d, - 0x5c, 0x1b, 0x9e, 0x11, 0x00, 0xeb, 0x99, 0x9f, 0xf7, 0x77, 0x9b, 0xd4, - 0xfa, 0xa3, 0xd9, 0x8a, 0xf8, 0x2f, 0x50, 0xc4, 0xbf, 0x42, 0x11, 0xff, - 0x3a, 0x45, 0xfc, 0xd7, 0x29, 0xe2, 0xff, 0x92, 0x22, 0xfe, 0x7b, 0x15, - 0xf1, 0x6f, 0x55, 0xc4, 0xbf, 0x5b, 0x11, 0xff, 0xd3, 0x8a, 0xf8, 0xbf, - 0xab, 0x88, 0xff, 0xef, 0x15, 0xf1, 0xff, 0x83, 0x22, 0xfe, 0x37, 0x15, - 0xf1, 0x4f, 0x28, 0xe2, 0xff, 0x50, 0x11, 0x7f, 0x42, 0x53, 0xc3, 0x7f, - 0xa6, 0x5a, 0x7f, 0x34, 0x57, 0x11, 0x7f, 0x5e, 0x11, 0xff, 0x2a, 0x45, - 0xfc, 0x1b, 0x15, 0xf1, 0xdf, 0xac, 0x88, 0xff, 0x4e, 0x45, 0xfc, 0xf7, - 0x29, 0xe2, 0xdf, 0xae, 0x88, 0xff, 0x71, 0x45, 0xfc, 0xcf, 0x28, 0xe2, - 0xff, 0x9e, 0x22, 0xfe, 0x57, 0x14, 0xf1, 0x1f, 0x55, 0xc4, 0xff, 0xaf, - 0x8a, 0xf8, 0xdf, 0x57, 0xc4, 0xff, 0x5b, 0x45, 0xfc, 0x69, 0x5d, 0x0d, - 0x7f, 0x8b, 0x5a, 0x7f, 0xb4, 0x50, 0x11, 0xff, 0x52, 0x45, 0xfc, 0xdd, - 0x8a, 0xf8, 0xaf, 0x56, 0xc4, 0x7f, 0x9b, 0x22, 0xfe, 0xcd, 0x8a, 0xf8, - 0x1f, 0x52, 0xc4, 0xbf, 0x53, 0x11, 0xff, 0xb7, 0x15, 0xf1, 0xff, 0xa5, - 0x22, 0xfe, 0x97, 0x14, 0xf1, 0xff, 0x48, 0x11, 0xff, 0x1b, 0x8a, 0xf8, - 0x7f, 0xa1, 0x88, 0xff, 0xbf, 0x15, 0xf1, 0x23, 0x43, 0x0d, 0xff, 0x0c, - 0xb5, 0xfe, 0xee, 0x6c, 0x45, 0xfc, 0x17, 0x2a, 0xe2, 0x5f, 0xa1, 0x88, - 0x7f, 0xbd, 0x22, 0xfe, 0xeb, 0x14, 0xf1, 0xdf, 0xae, 0x88, 0xff, 0x5e, - 0x45, 0xfc, 0xdb, 0x14, 0xf1, 0xef, 0x56, 0xc4, 0x5f, 0x30, 0x4e, 0xc5, - 0xfd, 0xc3, 0xdd, 0x88, 0x2e, 0xfe, 0x24, 0x7c, 0xfd, 0xe5, 0x2a, 0x44, - 0xe2, 0x09, 0x47, 0x58, 0x06, 0x78, 0x53, 0x82, 0xde, 0x9f, 0xb2, 0x2c, - 0xbe, 0x30, 0x61, 0x02, 0xcc, 0xf3, 0x75, 0x2f, 0x5e, 0xc5, 0xe7, 0xdb, - 0xc5, 0xe3, 0x0b, 0x26, 0xeb, 0xcf, 0xef, 0x63, 0x1a, 0x1a, 0xd4, 0x0a, - 0xf4, 0xda, 0xf5, 0x24, 0xbe, 0xb5, 0x2d, 0x40, 0x65, 0xd3, 0xcf, 0xd7, - 0x16, 0x9c, 0xcb, 0xc8, 0x55, 0x0c, 0xff, 0xa9, 0xb9, 0xc3, 0x40, 0x6d, - 0x40, 0x4a, 0xe1, 0x90, 0x36, 0xc8, 0xf1, 0xbf, 0x35, 0x4e, 0xf1, 0x5b, - 0x48, 0x43, 0x0e, 0x84, 0xf2, 0xaf, 0x1f, 0x40, 0x94, 0x3e, 0x91, 0x7e, - 0xde, 0xbf, 0xf3, 0x6b, 0xe1, 0xeb, 0xb7, 0x2d, 0x84, 0x9c, 0xb4, 0xdd, - 0x88, 0x26, 0x2f, 0x45, 0xe5, 0x14, 0xda, 0x8f, 0x74, 0x16, 0xef, 0xb9, - 0x94, 0x04, 0x60, 0xfa, 0xbc, 0x0b, 0x76, 0x87, 0xc3, 0xe8, 0x71, 0x66, - 0x61, 0x7a, 0x9e, 0xfa, 0xd1, 0xfc, 0x96, 0xe4, 0xa2, 0xe6, 0x11, 0xd7, - 0x42, 0xbb, 0x06, 0xf7, 0x90, 0x54, 0xc2, 0x84, 0x11, 0x5c, 0x3f, 0xa7, - 0x0f, 0x69, 0x1b, 0x0f, 0xd1, 0x7c, 0xf4, 0x26, 0x9d, 0xac, 0x9f, 0x05, - 0xfb, 0x9c, 0x46, 0xc2, 0x87, 0x3e, 0x88, 0xe2, 0x10, 0xfa, 0xad, 0x3c, - 0xc2, 0x73, 0xf3, 0x78, 0x13, 0xba, 0x96, 0xe5, 0xab, 0xad, 0x6d, 0x63, - 0x8d, 0x20, 0x1c, 0xed, 0x4c, 0x48, 0xaa, 0xf1, 0x37, 0x1c, 0x64, 0xf8, - 0x85, 0xf8, 0x50, 0x27, 0xc3, 0x0f, 0xcb, 0x71, 0xf4, 0x6a, 0xfc, 0xd7, - 0x31, 0xfc, 0xe9, 0xc1, 0x31, 0x20, 0xc1, 0x3d, 0x2f, 0x12, 0xbf, 0x26, - 0xe2, 0x77, 0xb2, 0x07, 0xdb, 0xdb, 0xd8, 0xfe, 0x61, 0xd8, 0xaa, 0xe2, - 0x0f, 0xfd, 0x5c, 0xcf, 0xf0, 0x57, 0xe1, 0xf3, 0xe4, 0x61, 0x82, 0x8d, - 0xdf, 0x65, 0x90, 0xf5, 0x33, 0x7c, 0xbc, 0xff, 0xa7, 0xf6, 0xd3, 0xfe, - 0xa6, 0x84, 0x1f, 0xa1, 0x9d, 0xdc, 0xfd, 0x27, 0xfc, 0x76, 0xd0, 0xeb, - 0x9a, 0x03, 0x53, 0xb5, 0xdc, 0xa5, 0x43, 0xbc, 0x8b, 0xd1, 0xe3, 0xde, - 0xc0, 0xf3, 0xfd, 0x64, 0x3f, 0x47, 0x1a, 0x20, 0x9e, 0xea, 0x26, 0xb0, - 0x10, 0x75, 0x6e, 0x3c, 0xa8, 0xb5, 0xe1, 0x5d, 0x9f, 0xdc, 0x6c, 0x94, - 0x87, 0xb5, 0xb1, 0x9b, 0xaf, 0x74, 0xcd, 0x32, 0x5a, 0xae, 0x6b, 0xe8, - 0xb9, 0xc4, 0x8f, 0x11, 0xda, 0x8e, 0xf7, 0xeb, 0x60, 0x36, 0xe7, 0xd3, - 0x57, 0x4d, 0x3f, 0x97, 0x77, 0xbe, 0xfe, 0x23, 0xda, 0xca, 0x10, 0xfa, - 0x79, 0x7f, 0x46, 0xbf, 0x7b, 0x0b, 0xa7, 0x07, 0xe4, 0xed, 0x2c, 0xa0, - 0x97, 0xee, 0x07, 0xd0, 0x9b, 0x84, 0x5a, 0x86, 0xc3, 0x14, 0x46, 0x68, - 0x79, 0x8a, 0x0d, 0x49, 0x86, 0xdf, 0x57, 0xbc, 0xf3, 0xa7, 0xd1, 0xf3, - 0xd4, 0xc3, 0xcf, 0x17, 0xe1, 0x07, 0xe7, 0xd7, 0xe7, 0x23, 0xf8, 0x6f, - 0xa1, 0x8d, 0x06, 0xa5, 0x97, 0xae, 0x8f, 0xd3, 0xb7, 0x26, 0xb2, 0xbf, - 0xc8, 0x4f, 0x4f, 0x5e, 0xa5, 0xf3, 0x75, 0x46, 0x42, 0x58, 0x6f, 0xaf, - 0x46, 0x03, 0x31, 0x7d, 0x7e, 0x7c, 0x71, 0x42, 0x0f, 0x8b, 0x27, 0x02, - 0xab, 0x1d, 0x40, 0xba, 0x6f, 0x2e, 0x5b, 0x7f, 0x0f, 0x27, 0x29, 0x51, - 0xcf, 0x7d, 0x2d, 0x82, 0xdf, 0xe8, 0x8b, 0x8c, 0xde, 0x93, 0xbd, 0x3e, - 0x0b, 0xeb, 0x33, 0xc2, 0xcf, 0xc9, 0xfb, 0xe2, 0xf6, 0x1f, 0xdd, 0xee, - 0xd5, 0x9f, 0x84, 0xd3, 0xbf, 0xbf, 0x89, 0xf6, 0x87, 0x5e, 0x2b, 0x4d, - 0xdb, 0x00, 0x79, 0x2d, 0x27, 0xd0, 0x18, 0xd5, 0x17, 0xe3, 0x4d, 0x9e, - 0x7e, 0x44, 0x4d, 0xc8, 0x3b, 0xaa, 0x0a, 0xfc, 0x79, 0x1b, 0xf9, 0xf4, - 0x40, 0x42, 0x13, 0x75, 0x70, 0x79, 0xf3, 0xce, 0x93, 0x1e, 0xa4, 0xff, - 0xbe, 0x74, 0x7d, 0xf6, 0x82, 0xf7, 0xff, 0x7c, 0xa3, 0x5a, 0x7f, 0xf9, - 0x7c, 0x6c, 0xaa, 0xc1, 0x9f, 0xf9, 0x27, 0x88, 0xff, 0x0e, 0x0f, 0x7f, - 0x0f, 0x5f, 0x6f, 0x22, 0x3c, 0xbe, 0xbd, 0x53, 0xb2, 0x57, 0xae, 0x89, - 0x3d, 0x29, 0x48, 0xa9, 0x69, 0x2f, 0x1d, 0x42, 0x83, 0x55, 0xf6, 0x14, - 0x1b, 0x88, 0x26, 0x62, 0x1f, 0xe7, 0x31, 0x7e, 0xca, 0xf8, 0xcc, 0x40, - 0xfa, 0xb1, 0x2a, 0xff, 0x14, 0xb0, 0xaf, 0xc7, 0x88, 0x7d, 0xb5, 0xf1, - 0xae, 0x3a, 0x67, 0xec, 0x4d, 0x20, 0x3b, 0x8f, 0x4a, 0x29, 0xbc, 0xff, - 0xe8, 0x06, 0x26, 0x8d, 0x6e, 0x33, 0xec, 0xb7, 0x8b, 0x8e, 0x74, 0x3a, - 0x4d, 0x81, 0xf3, 0xcf, 0x04, 0xf8, 0x57, 0x7f, 0xc1, 0xd6, 0x47, 0x66, - 0x1b, 0x4e, 0x83, 0xfc, 0xd8, 0x01, 0x7b, 0x8a, 0xf6, 0x81, 0xfa, 0xa6, - 0xf4, 0x61, 0xa1, 0x35, 0xeb, 0x8f, 0x27, 0x9f, 0x19, 0xeb, 0x3f, 0x78, - 0xe7, 0xe5, 0xa7, 0x0b, 0x42, 0xd7, 0xcf, 0xf7, 0xc3, 0xf9, 0x52, 0x52, - 0x38, 0x0f, 0x2e, 0x72, 0x8c, 0xa0, 0xbd, 0xd0, 0xdd, 0xb5, 0x46, 0xf0, - 0x7c, 0xf2, 0xfe, 0x6c, 0x79, 0xc5, 0xaf, 0x9c, 0x83, 0x42, 0xe5, 0x83, - 0x7f, 0x79, 0x4a, 0xaf, 0x8f, 0xbe, 0x68, 0x7a, 0x3a, 0x8d, 0x93, 0x8b, - 0xbf, 0xeb, 0x24, 0xe3, 0x5f, 0x7d, 0x92, 0xf1, 0x7f, 0x86, 0xed, 0x0f, - 0x2a, 0x75, 0xea, 0x71, 0xfe, 0xe3, 0xeb, 0x92, 0x7d, 0x8a, 0x3a, 0x2f, - 0x8b, 0xc2, 0xcf, 0x0b, 0x3f, 0x0f, 0xce, 0x7b, 0x92, 0xbf, 0x39, 0x91, - 0x02, 0x7c, 0x39, 0x6c, 0x7f, 0x89, 0xbd, 0x68, 0xd9, 0x9c, 0x2a, 0x6d, - 0xf5, 0xf5, 0xd5, 0xbf, 0x7d, 0x8e, 0xeb, 0xcf, 0x5d, 0x46, 0x53, 0x72, - 0x08, 0xeb, 0xb2, 0xe3, 0xc9, 0xc2, 0x08, 0x1e, 0x4f, 0x68, 0x1d, 0x6f, - 0xf0, 0xf5, 0x67, 0x83, 0x16, 0xb4, 0x2f, 0x30, 0x7a, 0x71, 0x5a, 0x38, - 0xff, 0xdc, 0xbe, 0x27, 0x51, 0x99, 0x9e, 0x2f, 0x62, 0xaf, 0x27, 0x2f, - 0xa1, 0xf4, 0x62, 0x7d, 0xbc, 0x60, 0x36, 0x0c, 0x67, 0xf4, 0xf3, 0x7a, - 0xc8, 0x51, 0x03, 0x72, 0xc0, 0xf8, 0xbc, 0x5e, 0x1f, 0xaf, 0x9f, 0xb9, - 0xff, 0xb7, 0xfa, 0x32, 0x41, 0x9e, 0x7f, 0xe0, 0xed, 0xcf, 0xc3, 0xdc, - 0x9f, 0xce, 0x0a, 0xfe, 0x22, 0xeb, 0xcf, 0xce, 0x43, 0x7f, 0x6a, 0x6c, - 0x3e, 0x1b, 0xff, 0x1a, 0x12, 0xfa, 0xa3, 0xc3, 0x5a, 0x10, 0xe6, 0xfa, - 0xcf, 0xbd, 0xc7, 0x10, 0xec, 0x1f, 0xe7, 0x97, 0x85, 0x5e, 0xd3, 0x9a, - 0x60, 0xab, 0xdd, 0x63, 0xd4, 0x7f, 0x26, 0xfa, 0x62, 0x3c, 0xe3, 0xf3, - 0x2b, 0x23, 0xf0, 0x0b, 0x88, 0x5b, 0x2e, 0xec, 0xbf, 0xe7, 0x7f, 0x50, - 0x7e, 0x11, 0xfd, 0xe5, 0xf3, 0x0b, 0xc8, 0x9f, 0x9b, 0x0d, 0xf0, 0x0b, - 0x16, 0x50, 0xb8, 0xb2, 0xd1, 0x1f, 0x7f, 0x8e, 0x92, 0x3d, 0xe3, 0x5f, - 0x0e, 0x7b, 0xfc, 0x5a, 0xcf, 0xfd, 0x8b, 0x26, 0xb2, 0x7e, 0x56, 0xb7, - 0x98, 0x7a, 0x85, 0xf3, 0xa7, 0x41, 0x0f, 0xb6, 0xc3, 0xf4, 0x74, 0xbd, - 0x8b, 0x04, 0x79, 0xe7, 0xfc, 0x60, 0xfc, 0x72, 0x38, 0xbf, 0xa8, 0xa6, - 0x1c, 0x4f, 0xfb, 0xfc, 0x48, 0x57, 0xc9, 0xcf, 0x92, 0x74, 0xa8, 0xfc, - 0x53, 0x7e, 0x60, 0x7e, 0x3a, 0x2d, 0x3e, 0x3f, 0x80, 0xbd, 0x1d, 0x0d, - 0x01, 0x7e, 0xb0, 0x75, 0x3c, 0x6b, 0xf2, 0xf1, 0x37, 0x4c, 0x89, 0x1f, - 0x6f, 0x7a, 0xfc, 0x78, 0x8d, 0xcf, 0xdf, 0x44, 0xfd, 0x63, 0xc6, 0x8f, - 0x17, 0x38, 0x3f, 0x1e, 0x16, 0xda, 0xeb, 0xe4, 0x07, 0x1a, 0xe2, 0xfc, - 0x20, 0x02, 0x38, 0xde, 0xe8, 0xf3, 0xa3, 0xb1, 0x4a, 0x3e, 0x96, 0xc5, - 0xc9, 0x07, 0xee, 0x4d, 0xee, 0x13, 0xfc, 0x3c, 0x41, 0x31, 0xcb, 0xac, - 0x00, 0x3f, 0xb8, 0xbd, 0x7a, 0x0e, 0xdc, 0x11, 0x38, 0x4f, 0x6d, 0x53, - 0xe2, 0xc7, 0x2f, 0xab, 0xe4, 0x63, 0xd3, 0x0c, 0xaa, 0x3f, 0x98, 0xbf, - 0xd9, 0x82, 0xd7, 0x69, 0x70, 0xfe, 0x0f, 0xe1, 0x1d, 0xc9, 0x83, 0x5f, - 0x84, 0xc7, 0xaf, 0xd7, 0x83, 0xfd, 0xeb, 0x95, 0x97, 0x7a, 0xf9, 0x03, - 0xa3, 0x97, 0x89, 0xfa, 0x46, 0x90, 0x17, 0x4f, 0x1f, 0x73, 0xfe, 0x90, - 0xd6, 0x3d, 0x16, 0xd0, 0x87, 0xc0, 0x1f, 0xc4, 0x5e, 0xc9, 0xee, 0xe6, - 0xe0, 0xf8, 0x1b, 0xa7, 0xc4, 0x9f, 0xff, 0xf5, 0xf5, 0x0d, 0x9f, 0x3f, - 0x17, 0xb8, 0x3f, 0xda, 0x86, 0xc5, 0xed, 0x6d, 0x83, 0x11, 0x6c, 0xaf, - 0x93, 0x1f, 0xae, 0xc7, 0x0f, 0xd2, 0x3c, 0x9e, 0xf5, 0xf9, 0x91, 0xad, - 0x92, 0x97, 0x15, 0xa2, 0xbc, 0xc4, 0xea, 0x5f, 0x70, 0x50, 0x16, 0xcc, - 0x90, 0xf4, 0xaf, 0xfd, 0x59, 0xcb, 0x1f, 0xdf, 0x32, 0x25, 0x7e, 0xb0, - 0x2a, 0x8b, 0x7e, 0x7f, 0xff, 0x27, 0x66, 0x04, 0xee, 0xb7, 0x39, 0x9f, - 0x1f, 0x9e, 0xbe, 0x9d, 0x11, 0xe6, 0x3f, 0x72, 0x7e, 0xfc, 0xe3, 0xb5, - 0x11, 0xf1, 0x06, 0xf2, 0xcf, 0x78, 0x82, 0xf3, 0x83, 0xf1, 0xab, 0x34, - 0x18, 0xa9, 0x9f, 0xd7, 0x53, 0xfd, 0x5c, 0xba, 0x8f, 0xc5, 0x37, 0xb8, - 0xbc, 0x4c, 0x04, 0xef, 0x7b, 0x6e, 0xe4, 0x78, 0x0d, 0xf6, 0x6b, 0xc4, - 0x42, 0xa5, 0x45, 0x90, 0xe6, 0x1e, 0x0b, 0xdc, 0xc7, 0xc8, 0x78, 0xe8, - 0xee, 0xb4, 0x8a, 0xfa, 0xe9, 0xfc, 0x06, 0xdf, 0x3e, 0x3f, 0xce, 0xdc, - 0xe5, 0x24, 0x5a, 0xbe, 0x64, 0xaf, 0x81, 0xb6, 0xf7, 0x3b, 0x86, 0xb7, - 0x18, 0x47, 0xd7, 0xb0, 0x3f, 0x8c, 0xda, 0xec, 0xec, 0xb6, 0x28, 0x7f, - 0xb2, 0xb0, 0x15, 0x5b, 0x12, 0x67, 0x99, 0x9d, 0xca, 0x65, 0x21, 0x83, - 0x8e, 0x9e, 0xd1, 0x5f, 0x19, 0xdb, 0x82, 0xff, 0xde, 0xfc, 0xca, 0x3d, - 0x84, 0xa1, 0xc3, 0xcd, 0xf6, 0x73, 0x54, 0x18, 0xac, 0x0b, 0xe9, 0x78, - 0x9b, 0xfb, 0xab, 0x78, 0x72, 0xe2, 0xaf, 0xf2, 0x78, 0x11, 0x3e, 0xad, - 0xa1, 0xfb, 0xc9, 0xda, 0x9d, 0x01, 0xe1, 0x3e, 0xbb, 0x9a, 0xd9, 0x4b, - 0xce, 0x8f, 0xe6, 0xfd, 0xe2, 0x7d, 0x4f, 0x0f, 0xdc, 0xf7, 0x82, 0xf2, - 0xcc, 0xf5, 0x4f, 0xf7, 0xea, 0xcb, 0x82, 0xf7, 0x47, 0x87, 0xf3, 0x17, - 0x79, 0x06, 0x7f, 0x00, 0x05, 0xef, 0x4b, 0x9c, 0xdf, 0xf8, 0xbc, 0x30, - 0x89, 0x19, 0x98, 0xe9, 0xdb, 0xa3, 0x71, 0xcb, 0x97, 0x7f, 0xab, 0x4a, - 0x1f, 0xe4, 0x63, 0xf4, 0x81, 0xa7, 0xaf, 0xb8, 0x3e, 0x20, 0xd2, 0xb9, - 0xb7, 0x21, 0xa8, 0x0f, 0xf6, 0x4c, 0x83, 0x3e, 0x58, 0x69, 0xc8, 0xfa, - 0x60, 0x82, 0xd2, 0xcf, 0xd7, 0xb3, 0xef, 0xd8, 0x4c, 0x85, 0xf3, 0x5f, - 0xda, 0x5e, 0x5b, 0x1f, 0x26, 0xeb, 0xb2, 0x17, 0x35, 0xe9, 0x9f, 0xcd, - 0xbf, 0x9b, 0x61, 0xeb, 0x75, 0xc1, 0xde, 0x14, 0xed, 0x14, 0xdc, 0xa7, - 0xa8, 0xbf, 0x39, 0x90, 0x9c, 0x0a, 0x7f, 0xae, 0x34, 0xaa, 0xec, 0x89, - 0x26, 0xf0, 0x27, 0x37, 0xc0, 0x60, 0x4b, 0xf2, 0x7f, 0x25, 0x7c, 0x74, - 0xad, 0xae, 0xc1, 0xe3, 0x13, 0xc4, 0x3f, 0xc0, 0xfe, 0xaa, 0x95, 0x47, - 0x76, 0x12, 0xec, 0x61, 0xd6, 0xb5, 0xc0, 0x1e, 0xda, 0xef, 0x33, 0x79, - 0x76, 0x34, 0x88, 0x7f, 0x8e, 0xa0, 0xc9, 0x55, 0xe7, 0xe3, 0xfb, 0xa7, - 0x83, 0x36, 0xea, 0xcb, 0x89, 0xc8, 0xdf, 0xad, 0x95, 0xb1, 0x3e, 0xc0, - 0xda, 0x6e, 0x5f, 0x8f, 0x89, 0x9e, 0xfa, 0xea, 0x1e, 0x1a, 0x1f, 0x85, - 0x91, 0x7d, 0xd6, 0xfe, 0x04, 0xa0, 0xbe, 0x3e, 0x24, 0x5e, 0x8a, 0xfd, - 0x69, 0xae, 0x5f, 0xf5, 0xe0, 0x79, 0x79, 0x24, 0x52, 0xff, 0x48, 0xe7, - 0x43, 0x59, 0x9f, 0x67, 0x62, 0xed, 0x3f, 0x7c, 0xb5, 0x65, 0x7f, 0xc8, - 0xed, 0x69, 0xf0, 0xc7, 0x9f, 0x3d, 0x25, 0x79, 0xbe, 0xc3, 0xdb, 0x2f, - 0xcf, 0x7e, 0x35, 0x0b, 0xfb, 0x35, 0x30, 0xd0, 0xac, 0x22, 0xcf, 0x8f, - 0xd4, 0xf4, 0x07, 0xa3, 0xf4, 0x93, 0x78, 0x9e, 0xa3, 0xe8, 0xbd, 0xb7, - 0xfa, 0xfc, 0x89, 0xf4, 0xa2, 0x49, 0x15, 0x7a, 0xd1, 0xce, 0x9a, 0xe7, - 0x2f, 0x8a, 0xde, 0xfa, 0xce, 0xdf, 0x96, 0xea, 0xf3, 0x30, 0x4b, 0xa4, - 0x77, 0x60, 0x56, 0x9c, 0x7d, 0xf4, 0xf3, 0x03, 0x11, 0xfa, 0x1c, 0x7d, - 0x40, 0xe4, 0x9f, 0x1a, 0x94, 0xf1, 0x14, 0xa7, 0x9f, 0xeb, 0x6f, 0x7e, - 0x7e, 0x5a, 0xa9, 0xfc, 0xb7, 0x69, 0x58, 0x1f, 0x93, 0xf8, 0x2d, 0x56, - 0xd0, 0x7d, 0x4d, 0x29, 0x28, 0xf1, 0x4f, 0x2c, 0xa7, 0xe7, 0xe1, 0x28, - 0xad, 0xef, 0xb2, 0x6c, 0x94, 0xb4, 0x51, 0xc8, 0x79, 0xd0, 0x82, 0xe7, - 0x01, 0xc4, 0xaf, 0x09, 0xfe, 0x57, 0x58, 0xe4, 0xf9, 0x1b, 0xa0, 0x82, - 0x39, 0x3f, 0x73, 0x68, 0x23, 0x5a, 0x69, 0x05, 0xe2, 0x47, 0x5a, 0x56, - 0x63, 0xf1, 0xf1, 0xa4, 0x54, 0x3f, 0x99, 0x08, 0xb3, 0x0f, 0x74, 0x7f, - 0x9e, 0xd6, 0xfd, 0xfd, 0x08, 0xf0, 0xdb, 0x8d, 0xbb, 0x7f, 0xf1, 0xfd, - 0xe2, 0xe5, 0xc0, 0x93, 0x67, 0xd1, 0xf9, 0x3c, 0x7f, 0xa0, 0x4e, 0x7d, - 0x39, 0xcc, 0xfb, 0x9f, 0xc5, 0xe3, 0x47, 0x69, 0xf0, 0xaf, 0x1c, 0xaa, - 0x1f, 0x73, 0xd0, 0x9a, 0xb3, 0x4d, 0x64, 0x2d, 0xa1, 0xfa, 0x08, 0xad, - 0xe3, 0xf1, 0xe8, 0x63, 0x73, 0x68, 0xfc, 0x09, 0xd3, 0x9e, 0x4a, 0x81, - 0x1e, 0x75, 0x86, 0x40, 0x1e, 0x59, 0xfc, 0xd3, 0xb9, 0x4b, 0xb3, 0x63, - 0xf6, 0xbb, 0x59, 0x8a, 0xe7, 0x1f, 0xf2, 0xee, 0xbf, 0x3b, 0x78, 0x3e, - 0x08, 0x01, 0xfd, 0xbc, 0x7f, 0xd7, 0x75, 0xa2, 0xbd, 0x7e, 0xcb, 0xeb, - 0xcf, 0xe3, 0x77, 0x9b, 0x2c, 0xba, 0xfe, 0xc0, 0x78, 0xca, 0x0f, 0xc3, - 0xe3, 0x07, 0xa5, 0x27, 0x45, 0xe3, 0x77, 0xe5, 0xf8, 0xf8, 0x9d, 0x33, - 0x9f, 0xea, 0x1f, 0x1e, 0x7f, 0x28, 0x1d, 0x63, 0xf1, 0x87, 0xac, 0xa0, - 0x2f, 0xfd, 0xf8, 0x9b, 0x18, 0x2f, 0xfd, 0xee, 0x55, 0xe1, 0xf9, 0x0d, - 0xd9, 0xfe, 0xf3, 0xf5, 0xa4, 0x23, 0xe2, 0xd1, 0x9c, 0x3f, 0x8d, 0x52, - 0xfc, 0x3a, 0x53, 0x23, 0x7e, 0x9d, 0x65, 0xed, 0x39, 0x1e, 0x2c, 0x94, - 0xc6, 0xcf, 0x0a, 0xf8, 0x3b, 0xf0, 0xf9, 0x44, 0x64, 0x7e, 0x26, 0xab, - 0x89, 0xf9, 0x8d, 0xf0, 0x78, 0xf8, 0x5b, 0x57, 0x89, 0xfe, 0x7e, 0x5a, - 0x3f, 0xcb, 0x8c, 0x8b, 0x9f, 0x4b, 0xfd, 0x4b, 0x8a, 0xfd, 0x51, 0x23, - 0xeb, 0xcf, 0xe7, 0x3b, 0x83, 0xc1, 0x72, 0x7f, 0xb6, 0xbe, 0xf2, 0xfd, - 0x63, 0x1f, 0x24, 0xe2, 0xe2, 0xc9, 0x97, 0xde, 0xa2, 0x16, 0x4f, 0x7e, - 0xe7, 0x4f, 0xea, 0xcd, 0x9f, 0x7a, 0xfe, 0x9d, 0x52, 0x7c, 0xfe, 0xf2, - 0x76, 0x35, 0x7a, 0xc6, 0x75, 0xb5, 0xfe, 0x47, 0x3e, 0xad, 0x4a, 0x7f, - 0xb8, 0x3f, 0xe5, 0xe5, 0x0f, 0x24, 0xfc, 0x87, 0x6f, 0x16, 0xf8, 0x8f, - 0x0a, 0xed, 0xd9, 0xd8, 0x78, 0xed, 0x3b, 0x46, 0x38, 0x3d, 0xf5, 0xe2, - 0x77, 0xed, 0x6c, 0x6c, 0xbe, 0xe0, 0xcc, 0x3f, 0x55, 0x5e, 0x6f, 0x4a, - 0x29, 0xdf, 0x74, 0x93, 0x94, 0x9f, 0xac, 0x41, 0xcf, 0x6f, 0x35, 0xb5, - 0xfd, 0xba, 0xed, 0x49, 0x11, 0x7f, 0x2d, 0x7e, 0xa6, 0x4d, 0x35, 0xfc, - 0xab, 0x22, 0xf3, 0x3b, 0x8d, 0x52, 0xbe, 0x82, 0xdb, 0x63, 0x9a, 0xdf, - 0xe2, 0xf7, 0xa3, 0xf2, 0x47, 0x67, 0x53, 0xfb, 0xbb, 0xc7, 0x26, 0xd1, - 0xdc, 0x2b, 0xda, 0x37, 0x69, 0x61, 0xf7, 0x3f, 0x39, 0x9f, 0x9b, 0xe1, - 0xe7, 0x1d, 0x5f, 0xee, 0x1c, 0x85, 0xf5, 0xd7, 0xda, 0xef, 0x6b, 0xaf, - 0x56, 0x5b, 0xff, 0x3f, 0x3d, 0x51, 0x23, 0x1e, 0x8e, 0x16, 0xc5, 0xc5, - 0xc3, 0xf1, 0xb5, 0x82, 0xe6, 0x2f, 0xea, 0xef, 0xdf, 0x29, 0xf6, 0xaf, - 0xe4, 0x63, 0xfb, 0x23, 0xd4, 0xae, 0xa4, 0x1f, 0x35, 0xa6, 0x0f, 0xa3, - 0xd6, 0x9b, 0x59, 0xaa, 0xc6, 0x9f, 0x85, 0x33, 0x44, 0xfc, 0xff, 0x73, - 0x8b, 0x16, 0xcb, 0xff, 0xbf, 0x59, 0x5c, 0xe3, 0x3c, 0x17, 0xc4, 0xf5, - 0x6e, 0x69, 0x14, 0xcf, 0xf3, 0xbf, 0xfc, 0x19, 0xf2, 0xec, 0x15, 0xe9, - 0xdf, 0x27, 0xf6, 0x1f, 0x95, 0xfa, 0x3f, 0xfa, 0xba, 0x11, 0x4b, 0xcf, - 0x9d, 0x4b, 0xd4, 0xd6, 0x7b, 0x6d, 0x83, 0x5a, 0xff, 0x0f, 0xcf, 0x54, - 0xeb, 0xff, 0xc5, 0x4f, 0xab, 0xf5, 0xff, 0x3b, 0xc5, 0x7c, 0xe7, 0xb1, - 0xac, 0x5a, 0xff, 0xad, 0x6b, 0x15, 0xf3, 0xbb, 0xbd, 0x53, 0xab, 0x1f, - 0xe2, 0xe3, 0x2b, 0x3d, 0x6a, 0xf3, 0xfd, 0xc7, 0x51, 0x43, 0xed, 0x3c, - 0xff, 0x44, 0xad, 0xff, 0x15, 0x8a, 0xf8, 0xbf, 0xb9, 0x4a, 0x8d, 0xfe, - 0xf3, 0x9e, 0x51, 0xc3, 0xbf, 0x55, 0x51, 0x7f, 0x8f, 0x27, 0xc3, 0xfb, - 0xeb, 0x68, 0xe7, 0x21, 0x9a, 0x9f, 0x63, 0xfe, 0x27, 0xca, 0x08, 0xfe, - 0xab, 0x9f, 0x9f, 0xe0, 0xf5, 0x18, 0x11, 0xfe, 0x70, 0x69, 0x91, 0xe8, - 0x0f, 0x3b, 0xdc, 0x1f, 0x16, 0xf3, 0xd9, 0x01, 0x7f, 0x58, 0x8b, 0xbb, - 0xef, 0xfd, 0xca, 0x62, 0xf8, 0x1d, 0xf0, 0x8f, 0xf7, 0xe2, 0x11, 0x03, - 0x5a, 0x69, 0x58, 0x1b, 0x8b, 0xea, 0x3f, 0x43, 0xf1, 0x3c, 0xfe, 0x7b, - 0x52, 0xaa, 0x6f, 0x50, 0xed, 0x6f, 0xe5, 0x63, 0xf3, 0xd7, 0xaf, 0xd4, - 0xfd, 0xfe, 0x89, 0xa6, 0x29, 0xf9, 0x7f, 0x7f, 0x15, 0xe1, 0x0f, 0x79, - 0x99, 0x7a, 0xe6, 0xaf, 0x43, 0x3e, 0x27, 0x03, 0x67, 0x9d, 0xd5, 0x0f, - 0x11, 0x7b, 0xec, 0x24, 0x33, 0x41, 0xfc, 0x2a, 0xf9, 0x7d, 0x1d, 0x5d, - 0x12, 0x9b, 0xdf, 0xaf, 0xce, 0xf7, 0xee, 0x94, 0xe2, 0x5f, 0x9e, 0x3c, - 0x85, 0xc7, 0xbb, 0x24, 0xf9, 0x32, 0x99, 0x7c, 0xe5, 0x3a, 0x6b, 0xe5, - 0x7f, 0x99, 0xbc, 0xe5, 0x78, 0x42, 0x8e, 0xdb, 0xff, 0x5d, 0xc2, 0xfc, - 0x6e, 0xd7, 0x11, 0xcd, 0x69, 0x3b, 0x3b, 0x35, 0x6a, 0xd2, 0xf9, 0x1d, - 0xe4, 0xd0, 0x7a, 0xb0, 0xc9, 0xcd, 0xa8, 0xbc, 0x9f, 0xe6, 0x23, 0xf5, - 0x33, 0x88, 0x83, 0xc6, 0x9e, 0xdf, 0xba, 0x83, 0x07, 0xb0, 0xe9, 0xf3, - 0x90, 0xbd, 0x58, 0x22, 0x49, 0x8a, 0x49, 0x73, 0xdd, 0x99, 0xb6, 0x9f, - 0x6f, 0x80, 0x7d, 0xd1, 0xd1, 0x18, 0x8f, 0x47, 0x3b, 0x83, 0xbc, 0x9e, - 0x2e, 0x67, 0x91, 0x7a, 0x3a, 0xc0, 0xbf, 0xad, 0x7d, 0x0c, 0xfa, 0x27, - 0xcf, 0x0a, 0xe2, 0x3f, 0x47, 0xc4, 0xdf, 0x87, 0xdc, 0x9d, 0x80, 0xdf, - 0xd1, 0xdc, 0x02, 0xe0, 0xaf, 0x55, 0x0f, 0x12, 0x1a, 0x2f, 0xec, 0x21, - 0xf1, 0x5e, 0x9b, 0xe6, 0xaf, 0xf9, 0x56, 0x36, 0x86, 0xc9, 0x17, 0xcb, - 0xf7, 0x55, 0x3e, 0xd6, 0x79, 0xbe, 0xe2, 0xcb, 0xdc, 0xa5, 0x88, 0x88, - 0xf7, 0x00, 0x87, 0xe1, 0x8d, 0x06, 0x16, 0x22, 0x73, 0x49, 0xeb, 0xd1, - 0xab, 0xf0, 0xf1, 0xf5, 0xb9, 0x1f, 0x85, 0xad, 0x4f, 0x8e, 0x57, 0x43, - 0x3d, 0xcb, 0x32, 0xa8, 0x67, 0x01, 0xfa, 0x13, 0xa4, 0x9e, 0x85, 0xd3, - 0x63, 0x45, 0xd1, 0x4f, 0xf7, 0xef, 0x12, 0xaf, 0x3e, 0x0e, 0xa1, 0xc7, - 0x0d, 0x7f, 0x3c, 0x44, 0xe0, 0x1d, 0x8d, 0xd0, 0x6b, 0x55, 0xd3, 0x8b, - 0x6f, 0x52, 0x32, 0xff, 0xe9, 0xf3, 0x7b, 0xa3, 0x86, 0x5b, 0x32, 0xec, - 0x48, 0x7b, 0xf5, 0x82, 0x19, 0xed, 0xbf, 0xc0, 0xe7, 0xe7, 0xe3, 0xf1, - 0xf7, 0xef, 0x5f, 0x8c, 0x4f, 0xad, 0x7e, 0xac, 0xd6, 0xf9, 0x32, 0xf1, - 0xf9, 0x5a, 0x69, 0x06, 0xcf, 0x57, 0x54, 0xfc, 0x22, 0xfc, 0x3c, 0x79, - 0xfb, 0x61, 0xb5, 0x13, 0x79, 0x86, 0x09, 0x9d, 0xb4, 0xdd, 0xd0, 0xd5, - 0xb8, 0x04, 0x95, 0x67, 0xa0, 0xfd, 0x76, 0x26, 0x63, 0xe8, 0x8d, 0xc3, - 0x5f, 0xd6, 0x86, 0x07, 0x34, 0x7b, 0x44, 0x1b, 0x6b, 0x7d, 0xd2, 0x2e, - 0x6f, 0xfb, 0xdb, 0xf9, 0x6e, 0x17, 0xbe, 0x0d, 0xed, 0x9b, 0x99, 0x70, - 0xd3, 0x10, 0x67, 0x84, 0x75, 0x58, 0x1d, 0x39, 0x12, 0x87, 0x18, 0x6e, - 0x07, 0xfa, 0xdc, 0xef, 0x53, 0x4d, 0xe2, 0x9a, 0xdf, 0xb2, 0xcb, 0x06, - 0xdc, 0xc7, 0x2d, 0xae, 0x5f, 0xae, 0x11, 0x9e, 0x67, 0xaf, 0x59, 0x7f, - 0xec, 0xd5, 0x3f, 0xbd, 0x4b, 0xce, 0xbb, 0xff, 0x18, 0xe6, 0x72, 0x2a, - 0x6f, 0x2c, 0x5e, 0x9e, 0xb8, 0xdb, 0xab, 0x97, 0x30, 0xca, 0x24, 0xbe, - 0x57, 0x40, 0x25, 0x1a, 0xdf, 0xd3, 0x4b, 0x33, 0x52, 0x43, 0x06, 0x95, - 0xf0, 0xed, 0x08, 0xad, 0xe7, 0xe7, 0x23, 0x47, 0xe4, 0x4b, 0x13, 0xc7, - 0xc3, 0x6e, 0x38, 0x69, 0xb1, 0x3e, 0x01, 0x5b, 0xf7, 0x24, 0xd4, 0x4b, - 0x61, 0x66, 0x8f, 0x31, 0xcd, 0x59, 0x5e, 0x98, 0xe0, 0xfb, 0x91, 0x46, - 0x53, 0xd1, 0xe7, 0x72, 0x3c, 0x27, 0x79, 0x40, 0xaa, 0xff, 0xe4, 0xf5, - 0xb8, 0x1a, 0x2a, 0xb5, 0xc3, 0xa2, 0x4b, 0x43, 0x69, 0x27, 0x07, 0xf2, - 0xd9, 0x91, 0x0a, 0xc6, 0xd3, 0xf1, 0x25, 0xc9, 0x75, 0xda, 0x94, 0xe7, - 0x73, 0xd3, 0x07, 0x84, 0xf8, 0x0f, 0x9a, 0x79, 0x20, 0x5e, 0x7e, 0xcf, - 0x3c, 0x30, 0xc5, 0xfa, 0x4e, 0x29, 0x7f, 0x68, 0x85, 0xec, 0x5f, 0x1a, - 0x7c, 0xe5, 0xe7, 0x44, 0x7f, 0xfe, 0x45, 0x93, 0xe3, 0xdb, 0xa8, 0x53, - 0x7b, 0xcd, 0xed, 0xc9, 0x2e, 0xc9, 0xbe, 0x78, 0xf5, 0xe5, 0x42, 0x7e, - 0x6f, 0x56, 0xfc, 0x7a, 0xbc, 0xf9, 0x7d, 0x83, 0xb7, 0x82, 0x9f, 0x37, - 0x01, 0xf6, 0xdf, 0x67, 0xc6, 0x60, 0x3f, 0x7f, 0x9c, 0x63, 0xfc, 0x17, - 0xda, 0xab, 0xf4, 0x1b, 0x69, 0xa3, 0xfa, 0x8d, 0xe5, 0xe3, 0xe0, 0x73, - 0x74, 0xba, 0xe5, 0xa7, 0x55, 0xde, 0x1f, 0x2e, 0x3f, 0x0e, 0x2a, 0x5d, - 0xd4, 0xb6, 0x4d, 0x67, 0xf3, 0x63, 0x7c, 0x17, 0x8b, 0xf2, 0x23, 0xbf, - 0x0f, 0xad, 0x4e, 0xf9, 0xf9, 0xe4, 0xa9, 0x92, 0x1f, 0xa9, 0x3e, 0xc6, - 0x92, 0xf7, 0x07, 0x0f, 0xb7, 0xa0, 0x44, 0xc8, 0x8d, 0x94, 0x1f, 0x83, - 0xfa, 0x6f, 0x03, 0x9a, 0x14, 0xaf, 0x95, 0xe4, 0x49, 0x90, 0x1f, 0x74, - 0x6e, 0x4d, 0xf9, 0x59, 0x21, 0xc5, 0x9b, 0x59, 0xbe, 0xbc, 0x3a, 0xbf, - 0x63, 0x88, 0xfe, 0x35, 0xde, 0x67, 0x12, 0x6f, 0x2e, 0xa1, 0xf8, 0x7a, - 0xd1, 0xb9, 0xf1, 0xfe, 0x8f, 0xfb, 0x6e, 0x94, 0xbf, 0xad, 0x11, 0x7f, - 0x7b, 0xf2, 0x01, 0x13, 0xda, 0xd3, 0x4f, 0xb4, 0x83, 0x36, 0x71, 0x9f, - 0x7f, 0xac, 0x84, 0x2a, 0x44, 0x1f, 0x7a, 0xf5, 0x6d, 0x1a, 0xa9, 0x17, - 0xed, 0xcc, 0x6e, 0x75, 0x9a, 0xf6, 0x2e, 0xcf, 0xa5, 0x26, 0x0d, 0xf0, - 0xb7, 0xe9, 0x79, 0x00, 0xed, 0xbe, 0x04, 0x39, 0x89, 0x60, 0xbe, 0x65, - 0x40, 0xa8, 0x5f, 0xde, 0x31, 0x2f, 0x10, 0xaf, 0x81, 0x7a, 0xe4, 0xc9, - 0x85, 0x90, 0x46, 0xf1, 0xfb, 0x5b, 0x75, 0xf6, 0x37, 0xa1, 0xbf, 0x8d, - 0x0f, 0xc1, 0x83, 0x1a, 0x1a, 0x0a, 0xef, 0x6f, 0x62, 0xd9, 0x18, 0xbd, - 0x8f, 0xf9, 0xb3, 0x56, 0x96, 0xe9, 0x47, 0xba, 0x9f, 0x61, 0xfd, 0x93, - 0xc1, 0xfe, 0x51, 0xfe, 0x7a, 0x44, 0x7c, 0xba, 0xaa, 0x7e, 0x3e, 0x07, - 0xf2, 0x01, 0xc6, 0xfb, 0x03, 0xad, 0x3c, 0xe4, 0xcb, 0xc7, 0xf9, 0x91, - 0xf2, 0x91, 0x35, 0xf2, 0xc9, 0xe0, 0xfd, 0xa9, 0x27, 0xb6, 0xbe, 0x3d, - 0x24, 0xbf, 0xc5, 0x35, 0x4e, 0x36, 0x34, 0x5f, 0x4d, 0xfe, 0xd9, 0x9e, - 0x82, 0xf3, 0xec, 0xfa, 0xf5, 0x21, 0x1e, 0xfd, 0xf4, 0x28, 0x7b, 0xaf, - 0x34, 0x2a, 0x84, 0xd7, 0xcb, 0xc2, 0xe5, 0xd3, 0xcb, 0x2f, 0x69, 0x6a, - 0xf4, 0xdd, 0xca, 0xe9, 0x4b, 0x44, 0xd5, 0x2f, 0x36, 0x11, 0x7f, 0x8f, - 0xcb, 0xef, 0x0e, 0x2d, 0x98, 0x7f, 0x91, 0xe3, 0xfb, 0xe1, 0xf1, 0xf9, - 0x67, 0x03, 0xf4, 0x85, 0xd3, 0xb3, 0x31, 0x11, 0x1d, 0x9f, 0xeb, 0x21, - 0x1a, 0x0e, 0x8f, 0xd7, 0x6b, 0xe7, 0x17, 0x54, 0xf1, 0x47, 0xde, 0x17, - 0x51, 0xdd, 0xf1, 0xe4, 0x58, 0x7d, 0x2f, 0xeb, 0xef, 0x88, 0xf8, 0x5f, - 0xc9, 0x08, 0xd4, 0x47, 0x8b, 0xf7, 0xd3, 0x8e, 0x69, 0xc2, 0xdf, 0xc9, - 0xeb, 0x79, 0xe9, 0xf3, 0x41, 0x39, 0x8e, 0xbf, 0x65, 0x9a, 0xf0, 0xd3, - 0x7a, 0x67, 0x90, 0x67, 0xa2, 0xaf, 0x5a, 0xbc, 0xfa, 0x8b, 0x69, 0xc2, - 0x4f, 0xeb, 0x9d, 0x3d, 0x7b, 0xec, 0xd5, 0x77, 0xac, 0x9b, 0x26, 0xfc, - 0xb4, 0xde, 0x99, 0xdb, 0xff, 0x92, 0x97, 0x7f, 0x5c, 0xc7, 0xed, 0x8b, - 0x19, 0x73, 0x9e, 0xdc, 0xd5, 0x0b, 0xac, 0xc9, 0xde, 0x3e, 0xb8, 0xed, - 0xde, 0xcf, 0xdf, 0x17, 0x62, 0x72, 0x7f, 0xb4, 0x1e, 0x7b, 0x6c, 0xbd, - 0x18, 0x88, 0x4f, 0x24, 0x7c, 0x79, 0x27, 0xe4, 0x64, 0x02, 0xf2, 0x40, - 0x4e, 0xdf, 0x77, 0x02, 0xf5, 0x45, 0x03, 0xfc, 0x7d, 0x3f, 0x75, 0xbd, - 0x9f, 0xa4, 0xb6, 0x7c, 0x7b, 0xf6, 0xcf, 0xac, 0x61, 0xff, 0x98, 0x7d, - 0xc4, 0x5e, 0x38, 0xb1, 0x7f, 0x28, 0x3e, 0xdf, 0xea, 0x52, 0xfd, 0x91, - 0x23, 0xf6, 0x0e, 0xdf, 0x6c, 0x4b, 0xc7, 0x57, 0xe1, 0xfb, 0x47, 0xc1, - 0xf3, 0xcf, 0x2d, 0x7a, 0x9f, 0x73, 0x4c, 0xb0, 0xe7, 0x43, 0x5f, 0xef, - 0x5c, 0xfd, 0xa0, 0xee, 0xee, 0xd4, 0xc6, 0x50, 0x1a, 0xeb, 0x6b, 0xa7, - 0xeb, 0x91, 0x83, 0x17, 0x4e, 0x6a, 0x58, 0xf5, 0x14, 0x2e, 0x5e, 0x3b, - 0xa8, 0xc3, 0x7d, 0xe0, 0x87, 0x9d, 0xeb, 0xd0, 0x4f, 0xe9, 0x7d, 0x20, - 0x74, 0x7d, 0x4f, 0xa7, 0x7c, 0x7e, 0xe6, 0x83, 0xf1, 0x21, 0xb2, 0x17, - 0x1b, 0x32, 0xfe, 0xfb, 0xb6, 0xbc, 0x7c, 0x7b, 0xc4, 0xfb, 0xb6, 0x78, - 0x7e, 0x5f, 0x7c, 0xde, 0xeb, 0x80, 0x8f, 0xbf, 0xd4, 0x59, 0x47, 0xfc, - 0x89, 0xf7, 0xa7, 0xf9, 0x90, 0x94, 0x0e, 0xf9, 0x76, 0x6a, 0x5f, 0xbd, - 0xfc, 0x76, 0x0d, 0x7f, 0xc3, 0x8b, 0xb7, 0x30, 0x7f, 0xa3, 0x10, 0xef, - 0x6f, 0xb0, 0x78, 0x1e, 0x9d, 0x7d, 0x5b, 0x82, 0xdb, 0x17, 0x87, 0xf2, - 0x3f, 0x09, 0xfc, 0x77, 0x46, 0x02, 0xf5, 0xf5, 0xd6, 0x26, 0xf2, 0x3c, - 0x9d, 0xab, 0x83, 0xbd, 0x1c, 0x4a, 0x1d, 0xea, 0x3e, 0xae, 0x3b, 0x3b, - 0x31, 0x6c, 0x62, 0xfe, 0xdb, 0x5d, 0xbf, 0x19, 0x37, 0x78, 0x7e, 0x7b, - 0x17, 0xd4, 0x03, 0x58, 0xe0, 0x3f, 0xd8, 0x43, 0xd1, 0xf1, 0xbf, 0x48, - 0xfe, 0x13, 0x75, 0xb9, 0xa1, 0xd1, 0xe7, 0x7f, 0xe3, 0xff, 0x6b, 0xfe, - 0xcb, 0xf5, 0x05, 0xa6, 0xa7, 0xac, 0xd6, 0x18, 0xa2, 0x7f, 0xc2, 0xed, - 0xb5, 0x58, 0x7f, 0x50, 0x6d, 0xef, 0xd9, 0xf3, 0x93, 0xb9, 0x49, 0xe2, - 0x2f, 0x79, 0xfa, 0x2d, 0x17, 0xaf, 0xdf, 0xf8, 0x7c, 0xa6, 0x57, 0x5c, - 0xb2, 0x26, 0xee, 0xf9, 0x1b, 0x9b, 0xdc, 0x2f, 0x82, 0xfa, 0x96, 0xeb, - 0x1f, 0x8f, 0xd7, 0xf4, 0x7d, 0x64, 0x36, 0x56, 0x50, 0x4e, 0xdb, 0x50, - 0x02, 0xf4, 0xbd, 0x9b, 0x12, 0xea, 0x11, 0x67, 0x12, 0xfd, 0xa7, 0x8b, - 0xfd, 0x3d, 0x73, 0xc9, 0x61, 0xfe, 0xa6, 0xdf, 0xa8, 0x7c, 0x2c, 0xbf, - 0x2f, 0xf0, 0xf9, 0x6d, 0x71, 0x3c, 0x21, 0x0d, 0xf6, 0xb6, 0xc8, 0xed, - 0xc1, 0xa7, 0xf9, 0xfc, 0x59, 0x7e, 0x9f, 0x23, 0xf7, 0xe9, 0xc0, 0xf3, - 0xb0, 0x41, 0xfb, 0x4a, 0xc9, 0xdb, 0xaa, 0x81, 0x3c, 0xf6, 0x25, 0x84, - 0xfa, 0xb3, 0x46, 0x61, 0x7c, 0x2e, 0x1f, 0xf1, 0xbc, 0x17, 0xfd, 0xbc, - 0x19, 0xe1, 0x5f, 0x78, 0xf6, 0x50, 0xd0, 0xdf, 0x3e, 0xfd, 0xd4, 0x34, - 0xc0, 0x2b, 0x6b, 0xd9, 0xf3, 0xaa, 0xbe, 0x3d, 0x4b, 0x09, 0xf3, 0x73, - 0x7b, 0x27, 0xad, 0xc7, 0x8b, 0x0f, 0x1f, 0xe5, 0xf4, 0xdd, 0x81, 0xa4, - 0x78, 0x02, 0xed, 0xdf, 0x21, 0x8d, 0xaf, 0x71, 0xff, 0xbc, 0x48, 0xba, - 0x0f, 0x7e, 0xaa, 0xc6, 0x7d, 0x70, 0xd1, 0x54, 0xef, 0x83, 0xec, 0x0f, - 0xb7, 0x3f, 0xa0, 0x09, 0xf5, 0x2b, 0x35, 0xe4, 0x93, 0x3c, 0x7f, 0xd3, - 0x17, 0x88, 0xd7, 0xcd, 0x88, 0xef, 0x5f, 0x40, 0x3b, 0x2c, 0x91, 0xbe, - 0xd2, 0x42, 0x16, 0xef, 0x0c, 0x3f, 0x2f, 0x26, 0x3f, 0x9f, 0x7c, 0x81, - 0x0f, 0x64, 0x05, 0xfa, 0x52, 0xac, 0x1d, 0x9a, 0xd7, 0x82, 0xfc, 0x75, - 0x88, 0xfe, 0x29, 0xc7, 0x87, 0xf7, 0xbb, 0x14, 0xb4, 0xff, 0xd0, 0x3f, - 0x1f, 0xc2, 0x1f, 0x79, 0x7e, 0x8e, 0xdf, 0xb3, 0x8f, 0x1d, 0x73, 0x61, - 0x71, 0x55, 0xfd, 0xa9, 0x3e, 0x1b, 0x26, 0xf1, 0x00, 0xb8, 0xdf, 0x45, - 0xf1, 0x5f, 0xc2, 0x8f, 0xa5, 0x60, 0x8d, 0x11, 0xb7, 0x5f, 0xd5, 0xf9, - 0xec, 0xf0, 0xfe, 0x51, 0xfa, 0x56, 0x5e, 0x0f, 0x1f, 0x2f, 0xfb, 0x43, - 0x04, 0x5f, 0xc0, 0xbf, 0xf7, 0xf3, 0xe1, 0xe1, 0xfb, 0x89, 0x29, 0x2f, - 0x05, 0xe5, 0x17, 0xc6, 0xaf, 0xac, 0x4d, 0x3f, 0xd2, 0x65, 0xfa, 0xe3, - 0xfd, 0x41, 0xc7, 0xd7, 0xcf, 0x11, 0xf9, 0xe3, 0xa8, 0xfe, 0x36, 0x72, - 0x9d, 0xd6, 0xd0, 0xfb, 0x5f, 0xa8, 0x7d, 0xf3, 0xfc, 0x71, 0x7c, 0x7f, - 0xee, 0xe3, 0xfa, 0x21, 0x17, 0xf4, 0xff, 0x5b, 0x78, 0x7c, 0xfb, 0xd7, - 0x73, 0x22, 0xea, 0x73, 0xa8, 0xff, 0x1a, 0x7f, 0x5e, 0xca, 0x2f, 0xdf, - 0x29, 0xae, 0xdf, 0xad, 0x4f, 0xfe, 0x3d, 0xfd, 0xc5, 0xe2, 0x35, 0x7c, - 0xbd, 0xc9, 0x1a, 0xfc, 0x11, 0xe7, 0x7f, 0x82, 0xc4, 0xf3, 0x91, 0x89, - 0xc6, 0xea, 0xe4, 0x27, 0x76, 0x79, 0xd7, 0x18, 0xbe, 0x7e, 0x84, 0x57, - 0x22, 0xd3, 0x78, 0x97, 0xdc, 0x5e, 0xc7, 0x7d, 0xf8, 0x77, 0x64, 0xdf, - 0xbb, 0xa7, 0xc5, 0xbe, 0xfb, 0xf6, 0xba, 0xfb, 0xb4, 0xbd, 0x9e, 0x46, - 0x7b, 0xfd, 0xb9, 0x88, 0x7c, 0xba, 0xa7, 0x9f, 0x22, 0xf8, 0xe7, 0x52, - 0x63, 0x13, 0x78, 0x7f, 0xc3, 0xfd, 0x4a, 0xf6, 0x1a, 0x50, 0x67, 0x1a, - 0x82, 0xf6, 0x7a, 0xfd, 0x74, 0xd8, 0x6b, 0x77, 0xb1, 0xa2, 0xbd, 0x5e, - 0x32, 0x45, 0x7b, 0xed, 0xe5, 0xeb, 0x76, 0x08, 0xef, 0x17, 0x71, 0xb9, - 0x7c, 0x52, 0x36, 0x8d, 0x34, 0xf2, 0xf3, 0x1a, 0x69, 0xbf, 0xf7, 0x51, - 0xfb, 0xed, 0xcd, 0xef, 0xcc, 0xab, 0xa1, 0x8f, 0xba, 0x55, 0xec, 0x15, - 0xb6, 0x9f, 0xdd, 0xa2, 0xfd, 0xdc, 0x11, 0xfe, 0xbc, 0x73, 0xd0, 0x7e, - 0xf6, 0x29, 0xd9, 0xcf, 0x6e, 0x45, 0xfb, 0xa9, 0x46, 0x3f, 0xef, 0x5f, - 0xbf, 0xbd, 0xec, 0x9e, 0x66, 0x7b, 0xd9, 0xad, 0x68, 0x2f, 0xbb, 0x15, - 0xed, 0x65, 0xf7, 0x09, 0xdb, 0x4b, 0xfb, 0x84, 0xec, 0x65, 0x77, 0xbc, - 0xbd, 0x7c, 0x5a, 0xb2, 0x97, 0xa8, 0x3e, 0xf9, 0x94, 0x9f, 0x77, 0xf1, - 0xed, 0x65, 0xf4, 0x7c, 0x36, 0xd9, 0x4f, 0x9e, 0xcf, 0x3d, 0x45, 0xf6, - 0x8a, 0xbd, 0x7f, 0x42, 0x7e, 0xbf, 0x44, 0xd4, 0x7e, 0x21, 0x2f, 0xbe, - 0x7b, 0x62, 0xef, 0x03, 0xa0, 0xf5, 0x20, 0x1b, 0x30, 0x86, 0xa5, 0xf0, - 0xfe, 0xa5, 0x40, 0xfe, 0x23, 0xbc, 0xde, 0xc8, 0x03, 0xfc, 0xf8, 0xae, - 0x06, 0xf9, 0xdf, 0x46, 0xcb, 0xc5, 0xeb, 0xf5, 0x9f, 0x77, 0xe2, 0xf4, - 0xa2, 0xce, 0xac, 0xee, 0xb4, 0xed, 0xc5, 0x6c, 0x9d, 0x0c, 0xad, 0x37, - 0xc2, 0x8a, 0x55, 0x13, 0xf4, 0x75, 0x9d, 0xf1, 0xb2, 0x28, 0x7e, 0xd8, - 0x49, 0x2c, 0xbf, 0x67, 0x6c, 0x48, 0x8f, 0x9e, 0xbf, 0x04, 0x95, 0xb3, - 0xa8, 0x60, 0xe3, 0xbd, 0xdf, 0xdb, 0x92, 0x48, 0x40, 0x7c, 0x81, 0xbc, - 0x5f, 0x0a, 0x91, 0x97, 0x64, 0xbb, 0x1a, 0xad, 0x58, 0xb0, 0x51, 0x07, - 0x72, 0x3a, 0xb1, 0xbc, 0x8f, 0x26, 0xfc, 0x78, 0x08, 0x4b, 0xad, 0xa3, - 0xbe, 0xc1, 0xb2, 0x56, 0x25, 0xff, 0xdd, 0x08, 0x35, 0xc3, 0xf3, 0x61, - 0xfb, 0x06, 0x11, 0xd4, 0x33, 0x80, 0xbc, 0x2c, 0xae, 0x43, 0xdf, 0xf0, - 0x7a, 0x52, 0xbf, 0x3e, 0x6c, 0x93, 0x54, 0x1f, 0x36, 0x21, 0xd5, 0x1b, - 0x6c, 0x8a, 0xaf, 0x0f, 0x73, 0x17, 0xc5, 0xda, 0xd3, 0xea, 0xfc, 0x3e, - 0x7b, 0xbf, 0x09, 0xdd, 0xbc, 0x04, 0xe4, 0xbf, 0xe0, 0xe5, 0x5e, 0x39, - 0xf3, 0x88, 0xe6, 0x58, 0xad, 0x69, 0xf2, 0xfc, 0x1c, 0xd9, 0xef, 0x0d, - 0x86, 0xa7, 0x72, 0x20, 0x7f, 0x95, 0xde, 0x89, 0xe5, 0x71, 0xf8, 0xf2, - 0x51, 0x73, 0xc0, 0x70, 0x86, 0x79, 0x3d, 0x90, 0x9e, 0x41, 0xe5, 0x73, - 0xc9, 0x78, 0xe0, 0x97, 0xf5, 0x09, 0xe4, 0xd5, 0x97, 0x56, 0xd3, 0x23, - 0xe6, 0xc3, 0x80, 0x3d, 0x23, 0xa0, 0x5f, 0x6c, 0xff, 0x79, 0x36, 0x02, - 0x47, 0xbc, 0x8f, 0x22, 0xcc, 0x3e, 0xac, 0x30, 0xfd, 0xfc, 0xc5, 0x74, - 0xbf, 0x0f, 0xa3, 0x8a, 0x3f, 0x5b, 0x49, 0x7c, 0x6e, 0xfe, 0xa8, 0x79, - 0x8c, 0xc4, 0x47, 0xfd, 0xe7, 0xad, 0x28, 0x7f, 0x4a, 0x26, 0x9c, 0xd7, - 0xe1, 0x65, 0xb9, 0xc4, 0x80, 0x46, 0xf8, 0x43, 0x14, 0x96, 0xde, 0xc8, - 0xf9, 0x03, 0xf6, 0x39, 0x99, 0x8d, 0xe3, 0x4f, 0x5a, 0xe4, 0x0f, 0xe1, - 0xef, 0xda, 0x0c, 0xd8, 0xbf, 0x12, 0xf8, 0xe7, 0x01, 0xd8, 0xad, 0xd3, - 0x5f, 0x5f, 0x6e, 0xc6, 0xd5, 0x8f, 0x9d, 0x18, 0x7f, 0xaa, 0xf5, 0x83, - 0x58, 0x1f, 0x10, 0xd0, 0x5f, 0x82, 0x3f, 0xed, 0xc5, 0x1f, 0x3b, 0xb1, - 0x3f, 0xdd, 0x66, 0xeb, 0xe7, 0x66, 0x1e, 0xd4, 0x4a, 0xdf, 0x08, 0xd4, - 0x9b, 0x60, 0x77, 0xcb, 0xf5, 0x9e, 0xcf, 0x7e, 0x2a, 0xe1, 0xef, 0x6f, - 0x48, 0xbc, 0xd0, 0x44, 0xbd, 0x63, 0xff, 0xc9, 0xed, 0x5f, 0xfc, 0x79, - 0x0a, 0xac, 0xaf, 0xbe, 0xf3, 0x74, 0x4a, 0xd6, 0x87, 0x9c, 0xe7, 0xf5, - 0x60, 0xbd, 0xd8, 0x9f, 0x27, 0x6b, 0xac, 0xb7, 0xef, 0xc0, 0xc9, 0x5e, - 0x2f, 0xab, 0xf7, 0x1b, 0x25, 0xeb, 0x6b, 0x35, 0xe5, 0xf7, 0xaf, 0x79, - 0xeb, 0x73, 0xf0, 0xfa, 0xcc, 0x9e, 0x26, 0x34, 0xf1, 0xa0, 0x86, 0x82, - 0xf9, 0x02, 0xdb, 0x8f, 0x7f, 0xa1, 0xd2, 0x70, 0x52, 0xac, 0x9f, 0xfb, - 0x4e, 0x43, 0xec, 0xfa, 0xe6, 0x77, 0x19, 0x68, 0xc2, 0xbb, 0x4f, 0x28, - 0xd6, 0x3b, 0xd6, 0xa8, 0xc7, 0x22, 0xe7, 0xb7, 0xb5, 0x81, 0xeb, 0xbf, - 0x40, 0xfd, 0x1e, 0x39, 0x6f, 0x05, 0xb2, 0x5e, 0x3b, 0xc1, 0xea, 0x61, - 0xfd, 0xf5, 0x54, 0xe2, 0xf3, 0xdb, 0x81, 0x78, 0xba, 0xd3, 0x79, 0x32, - 0xcf, 0x1b, 0x1a, 0x4a, 0x89, 0xf5, 0x8a, 0x23, 0x29, 0x95, 0xfa, 0xc5, - 0xa4, 0x5d, 0x78, 0xd5, 0xbe, 0xa3, 0x1d, 0xad, 0xe9, 0xb0, 0x26, 0xa9, - 0x1d, 0x5a, 0x91, 0x8a, 0x8f, 0xef, 0xc7, 0xd7, 0x8f, 0x46, 0xd7, 0x4b, - 0x1c, 0x93, 0xdf, 0x4f, 0x49, 0xe5, 0x4f, 0xcf, 0x6e, 0x25, 0xef, 0xa3, - 0xf1, 0xf6, 0xab, 0x81, 0xcf, 0x6f, 0xd2, 0xfa, 0x08, 0x38, 0x2f, 0xad, - 0x2d, 0xa3, 0xc6, 0xa6, 0xd8, 0xfa, 0xe5, 0x73, 0x22, 0x7e, 0x6f, 0x10, - 0xee, 0xcf, 0x99, 0x36, 0xbc, 0x7f, 0x9e, 0xbf, 0x79, 0x6b, 0x32, 0xde, - 0x5f, 0x3d, 0x49, 0xe7, 0x27, 0xe2, 0x79, 0xc5, 0xea, 0x78, 0x83, 0x58, - 0x0f, 0x53, 0xf5, 0xfc, 0xa2, 0xb6, 0x8b, 0xdd, 0x2f, 0x18, 0x7d, 0x3a, - 0xf8, 0x33, 0x61, 0xf6, 0x14, 0x12, 0xd1, 0xf4, 0xfd, 0x05, 0x4e, 0xba, - 0x76, 0x7e, 0x46, 0xbe, 0x9f, 0x2e, 0x3d, 0x10, 0xff, 0xbe, 0xb7, 0x6b, - 0x23, 0xfc, 0x17, 0xef, 0xbe, 0x29, 0xdc, 0xc7, 0x47, 0xd2, 0x60, 0x9f, - 0xca, 0x09, 0x96, 0x4f, 0x72, 0x36, 0x04, 0xde, 0x2f, 0xd4, 0x28, 0xde, - 0xa7, 0xa7, 0x58, 0x7f, 0xb5, 0x4c, 0xf1, 0x3e, 0xbd, 0xfc, 0xc0, 0x89, - 0xbe, 0x2f, 0x91, 0xf1, 0x9f, 0x2a, 0x68, 0x67, 0xce, 0x61, 0x43, 0x98, - 0xdf, 0x44, 0x49, 0xc2, 0x8f, 0xd6, 0x9e, 0x02, 0x79, 0xee, 0xaa, 0xbb, - 0x9d, 0x74, 0x70, 0x0f, 0x93, 0xb4, 0x3e, 0x1e, 0xf9, 0xc7, 0xf4, 0xbc, - 0xd5, 0xba, 0xff, 0xf9, 0xf9, 0x56, 0xf1, 0xfd, 0xa0, 0x1c, 0x3f, 0x5d, - 0xcf, 0x30, 0x89, 0xd7, 0x95, 0xc2, 0xef, 0xef, 0xa5, 0x9d, 0xc9, 0x90, - 0xfb, 0x18, 0xc3, 0x47, 0x7d, 0xd9, 0x41, 0x5a, 0xcf, 0x92, 0xa8, 0xdb, - 0x9f, 0xf6, 0xe6, 0xa7, 0xcb, 0x1f, 0xf7, 0xec, 0x13, 0x8b, 0xbf, 0xf4, - 0x07, 0xea, 0xeb, 0xb8, 0x3c, 0x36, 0xaa, 0xec, 0xef, 0xb9, 0x81, 0x7c, - 0x24, 0x89, 0x27, 0xf5, 0xe6, 0x3d, 0xff, 0x8b, 0xf0, 0xa3, 0x10, 0x71, - 0x9f, 0xc4, 0x70, 0x7e, 0xa6, 0x7f, 0xdf, 0x46, 0xe8, 0x7a, 0x5e, 0x0f, - 0x7d, 0x6c, 0xce, 0xd4, 0xe5, 0xcb, 0xbd, 0xec, 0x94, 0xc9, 0x57, 0x38, - 0x7d, 0x7d, 0x51, 0xbf, 0xa7, 0x2a, 0xcb, 0x63, 0x54, 0x3e, 0x2b, 0x32, - 0xbe, 0xf6, 0xa0, 0x58, 0x4f, 0xc4, 0xeb, 0x45, 0xe5, 0xf8, 0x9a, 0xe2, - 0x7d, 0xcb, 0x93, 0x4f, 0x10, 0x90, 0x36, 0xdb, 0x80, 0xfb, 0x55, 0x5f, - 0x92, 0xe2, 0xeb, 0x11, 0xf6, 0xc7, 0x7b, 0x9f, 0x2a, 0xad, 0x87, 0x20, - 0xe8, 0xfc, 0xf7, 0x57, 0x78, 0xf2, 0xba, 0x3c, 0xe0, 0x3f, 0xa0, 0xc1, - 0x24, 0x97, 0x77, 0xdc, 0xdd, 0xfd, 0x76, 0x3a, 0xac, 0x1e, 0x62, 0x7a, - 0xee, 0xe3, 0xf4, 0xfe, 0x3b, 0x5b, 0xf7, 0xee, 0xe3, 0xd5, 0xf7, 0x97, - 0x1a, 0xcf, 0x0b, 0x48, 0xf8, 0x20, 0x3a, 0x0e, 0x7b, 0x5f, 0x5e, 0x38, - 0x6d, 0xf8, 0x1e, 0x8b, 0x79, 0x3e, 0xa6, 0x16, 0x0c, 0xfc, 0x13, 0xed, - 0x83, 0xdc, 0xbf, 0x4b, 0xad, 0x5e, 0x5c, 0x19, 0xff, 0x35, 0x27, 0x84, - 0x1f, 0x1e, 0x36, 0x88, 0x97, 0xcf, 0xc5, 0xb1, 0xf8, 0x40, 0xb4, 0xf2, - 0x7a, 0xfd, 0xfc, 0x9a, 0xe2, 0xef, 0xb7, 0x79, 0xbf, 0x5f, 0x6c, 0x49, - 0x70, 0x4e, 0x82, 0x6d, 0x09, 0x76, 0x24, 0x98, 0xc5, 0xfb, 0x7d, 0xd8, - 0x94, 0x60, 0x4b, 0x82, 0x73, 0x12, 0x6c, 0x4b, 0xf0, 0xa9, 0xfd, 0x3d, - 0x2a, 0x57, 0x82, 0x6b, 0xfe, 0xde, 0xda, 0x34, 0xd3, 0x77, 0xfa, 0x73, - 0xfa, 0x73, 0xfa, 0x13, 0xf3, 0xf9, 0x3f, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xec, 0x5d, 0x7b, 0x90, 0x1c, 0x47, 0x79, 0xef, 0xee, 0x99, 0x9d, 0x9d, - 0xdd, 0xdb, 0x5b, 0x8d, 0xce, 0x27, 0xb1, 0x3e, 0x4b, 0xd6, 0x9c, 0x74, - 0x96, 0x8e, 0xc4, 0xa8, 0xce, 0x8a, 0x2c, 0xce, 0x46, 0x31, 0x73, 0xd2, - 0xc9, 0x48, 0x46, 0x22, 0xc2, 0x3c, 0x22, 0x53, 0x3c, 0xf6, 0x70, 0x51, - 0x25, 0x83, 0x23, 0x9b, 0xc4, 0x49, 0xce, 0xd8, 0x29, 0xf7, 0xde, 0xed, - 0x3d, 0x0c, 0x3a, 0xd7, 0x59, 0x18, 0x23, 0x8c, 0x31, 0x7b, 0x92, 0x6c, - 0xab, 0x30, 0x15, 0xa8, 0x72, 0x52, 0x65, 0xf2, 0x47, 0xb2, 0xd6, 0x83, - 0x08, 0xca, 0xaa, 0x3a, 0x70, 0xe2, 0x22, 0x29, 0x2a, 0x59, 0x3b, 0x29, - 0x22, 0x1e, 0x51, 0x94, 0x02, 0x93, 0x33, 0x18, 0x94, 0x7e, 0xcf, 0x74, - 0xef, 0xcc, 0xec, 0x9e, 0x1e, 0x14, 0x09, 0xdc, 0x1f, 0xb6, 0xc7, 0x33, - 0xdb, 0xd3, 0xd3, 0xfd, 0xf5, 0xf7, 0xfe, 0x7e, 0xdf, 0x00, 0xd3, 0xaf, - 0x38, 0xbe, 0x0c, 0xcd, 0xb7, 0x72, 0x51, 0xc1, 0x22, 0xf6, 0xc5, 0xfc, - 0x83, 0x70, 0x2f, 0xac, 0x8f, 0xc3, 0xc3, 0xef, 0x06, 0x2f, 0xe0, 0x03, - 0x76, 0x75, 0x23, 0xb4, 0xb8, 0xbf, 0x36, 0x0f, 0x1e, 0xa1, 0x67, 0x76, - 0x85, 0xd3, 0xeb, 0xc2, 0xaf, 0x0e, 0x66, 0x30, 0xe7, 0x57, 0x37, 0x3b, - 0xcc, 0x7b, 0x4a, 0xe4, 0x77, 0xd9, 0x03, 0xc1, 0x83, 0xf9, 0xf1, 0x6b, - 0x3b, 0x2c, 0xee, 0x9f, 0x2a, 0x3c, 0x3a, 0x67, 0x97, 0x11, 0x02, 0x4b, - 0x97, 0x02, 0xa7, 0x5c, 0x9a, 0x54, 0xfa, 0xaf, 0x27, 0xea, 0x4f, 0x87, - 0xa9, 0xbd, 0x5c, 0xdd, 0xa2, 0xfc, 0x03, 0x6b, 0x89, 0xfe, 0x1a, 0xa0, - 0x65, 0xdb, 0xd6, 0x40, 0x99, 0x7f, 0x76, 0x6b, 0x6a, 0x3f, 0xce, 0x3c, - 0x66, 0xea, 0x44, 0x6d, 0xcb, 0x7b, 0xfa, 0xe9, 0x2d, 0x9c, 0xc7, 0x39, - 0x7e, 0x2d, 0xfa, 0xc5, 0xc9, 0xfb, 0x6e, 0x9d, 0x31, 0xd2, 0xe9, 0x23, - 0xbe, 0xce, 0x6f, 0xfc, 0x7e, 0x2a, 0xaf, 0xfc, 0x8e, 0xd9, 0xe2, 0x46, - 0x1a, 0xb4, 0xa6, 0xfe, 0xbc, 0x98, 0xf7, 0xbd, 0x27, 0x23, 0xbf, 0x0f, - 0x80, 0xb7, 0x1b, 0xf2, 0x4b, 0xe1, 0x6d, 0x31, 0xfb, 0xd2, 0xf7, 0xc5, - 0xf3, 0x7b, 0x10, 0xae, 0x65, 0xfc, 0x8b, 0x95, 0x27, 0x97, 0xfd, 0xcf, - 0xd3, 0x2f, 0x47, 0xe4, 0x7f, 0xf4, 0x89, 0xfd, 0xf1, 0x59, 0x73, 0x6e, - 0x3f, 0x23, 0xe9, 0x83, 0xe6, 0x0a, 0x06, 0xae, 0x9f, 0xf1, 0x32, 0x7c, - 0xfd, 0xa3, 0xf4, 0xd2, 0x20, 0xf4, 0x32, 0x4c, 0xed, 0x4d, 0xff, 0x96, - 0x0d, 0x50, 0xe4, 0x23, 0x4a, 0xf9, 0x86, 0x44, 0xbd, 0x22, 0x95, 0xdd, - 0xee, 0x0d, 0xef, 0x70, 0x24, 0xbe, 0x91, 0x49, 0x2f, 0x76, 0x17, 0xc0, - 0xd3, 0xf6, 0x64, 0x61, 0xb6, 0x40, 0xae, 0x0b, 0xd4, 0xbf, 0xb9, 0xc3, - 0x58, 0x6f, 0xe5, 0x3f, 0x66, 0xf5, 0x84, 0x4c, 0x1c, 0xe2, 0x2d, 0x52, - 0xa2, 0xd7, 0x18, 0xaa, 0x2a, 0x58, 0xb6, 0xad, 0xb7, 0x4d, 0xfa, 0x89, - 0xd4, 0x03, 0x09, 0x7c, 0x15, 0xd6, 0xff, 0xd5, 0x0b, 0xdf, 0xc7, 0x54, - 0x2e, 0x3f, 0x12, 0xef, 0x08, 0xd2, 0xf2, 0x19, 0x7d, 0xc4, 0xe8, 0x29, - 0x17, 0x8e, 0x9f, 0x3e, 0xff, 0x4b, 0xac, 0x7f, 0x5c, 0xc4, 0xf9, 0x1f, - 0xf8, 0x95, 0x9e, 0xff, 0x3f, 0xb8, 0x44, 0xe7, 0xbf, 0x79, 0xbf, 0xd2, - 0xd7, 0xeb, 0xff, 0xda, 0xfe, 0xfc, 0x7f, 0xe5, 0xff, 0xfb, 0xdc, 0x88, - 0x3d, 0x1c, 0x39, 0xbf, 0x72, 0xff, 0x7b, 0x17, 0xc9, 0xff, 0x25, 0x7f, - 0x6f, 0xd2, 0x27, 0x25, 0xfe, 0xb5, 0xb2, 0x97, 0x7e, 0xb3, 0xf7, 0xbb, - 0xf9, 0xef, 0x05, 0xa3, 0x3e, 0xaf, 0xa0, 0xd9, 0xcb, 0xa6, 0x3d, 0x97, - 0xc7, 0x6f, 0x62, 0xff, 0xee, 0x11, 0xf5, 0xc5, 0xb2, 0x1e, 0x79, 0x2c, - 0xd0, 0xe5, 0xed, 0x31, 0xfd, 0x5a, 0xf2, 0x4f, 0xbc, 0x9a, 0xfb, 0xff, - 0xfc, 0x24, 0xfd, 0x3f, 0x8c, 0xb7, 0xc9, 0xfa, 0xfa, 0x38, 0x79, 0x6c, - 0xa9, 0xfb, 0x79, 0xdc, 0x1f, 0x37, 0x1e, 0x7e, 0xf7, 0x7c, 0xb8, 0xff, - 0x07, 0xb4, 0xfd, 0x57, 0xfe, 0xd2, 0x5f, 0xfc, 0x66, 0xee, 0xb7, 0xfe, - 0xd7, 0x6c, 0xaf, 0xbf, 0x2b, 0x66, 0xbd, 0x91, 0x79, 0xde, 0x2e, 0xd9, - 0x7e, 0xb6, 0x5c, 0xff, 0xe4, 0xfd, 0xfb, 0xe5, 0x6f, 0xf7, 0xef, 0x57, - 0x72, 0xfe, 0x85, 0xf7, 0x52, 0xee, 0x3f, 0x3f, 0xff, 0xc7, 0x86, 0xfb, - 0xb5, 0xf3, 0xdf, 0xa5, 0xf8, 0x41, 0xd6, 0xe0, 0x0f, 0x8b, 0xa6, 0x17, - 0x83, 0x1e, 0x9b, 0xce, 0x7f, 0x5d, 0xe7, 0x47, 0xbf, 0x3d, 0xff, 0x17, - 0x79, 0xfe, 0xb5, 0xfd, 0x8d, 0x39, 0xff, 0x06, 0xff, 0x5f, 0xdc, 0x7e, - 0xfe, 0xfa, 0x9d, 0x77, 0x03, 0xef, 0x45, 0xc5, 0xeb, 0x7e, 0x60, 0xf6, - 0x37, 0xb1, 0x45, 0xbc, 0x12, 0x71, 0x7c, 0xef, 0x51, 0x9b, 0xe7, 0x2b, - 0xe5, 0x8c, 0xf8, 0xc6, 0x8c, 0x86, 0xdf, 0xae, 0xbe, 0x55, 0xe0, 0x03, - 0x85, 0x0b, 0xa2, 0xc7, 0x0f, 0x9e, 0xd1, 0xf1, 0xf7, 0xee, 0xee, 0x78, - 0xa3, 0xc4, 0x0f, 0x9a, 0x01, 0xbc, 0xfe, 0x79, 0x9f, 0x45, 0xeb, 0x9f, - 0x01, 0xec, 0xb4, 0x82, 0x48, 0xff, 0x33, 0x99, 0xff, 0x66, 0xc9, 0x7c, - 0x2b, 0xfa, 0x42, 0x0a, 0xb9, 0xed, 0xab, 0xfc, 0xd5, 0x7a, 0xc1, 0x6d, - 0x23, 0xde, 0xf1, 0xce, 0xf0, 0xfd, 0x00, 0x1c, 0x19, 0x7b, 0x11, 0xae, - 0x05, 0x8d, 0x82, 0xc2, 0xc3, 0x0e, 0xe4, 0xf8, 0xbe, 0x8c, 0x1f, 0x4e, - 0x3f, 0x0f, 0x6b, 0xd1, 0xf8, 0xa1, 0x56, 0xdf, 0xfb, 0xa4, 0xc2, 0xcf, - 0xdd, 0x42, 0xfb, 0x57, 0x21, 0xdf, 0x01, 0xee, 0xa8, 0x45, 0xeb, 0xd7, - 0x78, 0x3d, 0xcd, 0xe7, 0x22, 0xf5, 0x90, 0x7b, 0x65, 0xbe, 0xcc, 0xcf, - 0x38, 0x7e, 0x2d, 0x9f, 0xd7, 0xb8, 0xd5, 0xe4, 0xcf, 0x6f, 0xd1, 0x0f, - 0x4a, 0xd5, 0xff, 0x8b, 0x7e, 0x50, 0x7e, 0x7a, 0x7d, 0x63, 0x7d, 0x75, - 0x42, 0x3e, 0x87, 0x11, 0x9f, 0x06, 0x59, 0x23, 0xbf, 0xad, 0x8e, 0x71, - 0x06, 0xae, 0x20, 0x1f, 0xb8, 0xfe, 0x1f, 0x01, 0x98, 0xca, 0x7f, 0xb6, - 0x97, 0xfd, 0x7a, 0xeb, 0x08, 0x53, 0x35, 0xf1, 0x30, 0xdb, 0xff, 0x89, - 0xa7, 0x2c, 0x78, 0x3f, 0xc4, 0x91, 0x7a, 0x7a, 0x59, 0xef, 0x0e, 0x02, - 0x16, 0xff, 0x0d, 0xac, 0x6c, 0x14, 0x7f, 0x16, 0xd4, 0xd5, 0xfe, 0xb1, - 0xaf, 0xc9, 0xba, 0xdf, 0xb2, 0xc9, 0xfa, 0xb8, 0x71, 0xf5, 0xf2, 0x3b, - 0x10, 0xaf, 0xcf, 0x13, 0x78, 0xba, 0x26, 0x7e, 0xb4, 0xad, 0xef, 0x57, - 0xf3, 0xef, 0xbf, 0x81, 0x40, 0x90, 0x45, 0x61, 0x7d, 0x3d, 0x3f, 0x97, - 0xea, 0xfd, 0xfe, 0x29, 0x11, 0x7f, 0xd9, 0x07, 0x18, 0xbd, 0x85, 0xfd, - 0x5b, 0x34, 0x3c, 0xfd, 0x90, 0x5e, 0xbe, 0x41, 0x53, 0xf3, 0xc6, 0xbe, - 0x05, 0xcf, 0xc2, 0xc6, 0x34, 0xcf, 0x7f, 0x1f, 0xb0, 0x93, 0xe9, 0x4b, - 0xe2, 0xbf, 0x3e, 0xf3, 0xc3, 0xaf, 0x14, 0x80, 0x8e, 0xdf, 0x80, 0x5a, - 0xd4, 0xaf, 0x0a, 0x79, 0x84, 0x21, 0xdf, 0x5f, 0x9c, 0x9e, 0x3f, 0xa9, - 0xf2, 0xdf, 0x12, 0xce, 0xb7, 0xc0, 0xb3, 0x91, 0xe7, 0xb3, 0x71, 0x2b, - 0xaf, 0x17, 0x2a, 0x3e, 0x32, 0xf2, 0xc4, 0xcb, 0xc5, 0x6c, 0xf5, 0xd8, - 0x08, 0xcb, 0x3b, 0xc4, 0xdf, 0xcd, 0x20, 0x8a, 0x5f, 0x63, 0xd3, 0xa9, - 0x96, 0xd9, 0xfb, 0x54, 0xbe, 0x0f, 0xd2, 0xfb, 0x65, 0x8e, 0xaa, 0xf8, - 0x5b, 0xe0, 0x56, 0xd9, 0xf3, 0x1e, 0x79, 0x5e, 0xc5, 0x63, 0x85, 0x7d, - 0xe3, 0xc2, 0x4e, 0x1c, 0x78, 0xbe, 0x05, 0x06, 0x5f, 0x67, 0x78, 0x0b, - 0x49, 0xe7, 0xf1, 0xfa, 0xa8, 0x3d, 0x14, 0xf1, 0x97, 0x00, 0x70, 0x0a, - 0x44, 0xf7, 0x23, 0xac, 0x77, 0x16, 0xf4, 0x64, 0x4f, 0x83, 0x80, 0xf6, - 0x1b, 0x58, 0xb8, 0x8f, 0xf5, 0xa3, 0xe8, 0x39, 0xc0, 0x52, 0x8c, 0xf0, - 0x36, 0x5e, 0x97, 0x8e, 0x91, 0x07, 0xf0, 0xda, 0xe7, 0xde, 0x0e, 0xc3, - 0xf5, 0x5d, 0x21, 0xf1, 0xf6, 0x45, 0xfc, 0xfd, 0x1b, 0xda, 0x78, 0x12, - 0xde, 0x2b, 0x3c, 0xff, 0x7a, 0x3c, 0x9a, 0xaf, 0xdf, 0x84, 0x23, 0xfa, - 0xe1, 0xd5, 0x30, 0x7a, 0x90, 0x5c, 0x4f, 0xfd, 0xc7, 0x9c, 0xbd, 0x00, - 0x83, 0x6a, 0x1c, 0xbd, 0xec, 0x40, 0x5b, 0xb2, 0x84, 0xde, 0xe1, 0x59, - 0xd0, 0x18, 0x4b, 0xc6, 0x3b, 0x78, 0x7b, 0x02, 0xbe, 0x1c, 0xe7, 0x0f, - 0x1c, 0x7f, 0x81, 0xf7, 0x83, 0x91, 0xeb, 0x41, 0xf8, 0x48, 0x43, 0xc5, - 0xe3, 0xb1, 0x95, 0x80, 0x6f, 0xc0, 0xd6, 0xb3, 0x9e, 0x45, 0xe1, 0xfb, - 0x2e, 0x0c, 0x3f, 0x04, 0x3a, 0x97, 0x0a, 0x3f, 0x64, 0x46, 0xab, 0xcf, - 0x0e, 0xeb, 0x7b, 0x17, 0x2c, 0x76, 0x7f, 0x88, 0xe2, 0xa7, 0x55, 0x69, - 0xfd, 0xae, 0xed, 0x4f, 0x48, 0xbc, 0x75, 0xfa, 0x27, 0xf0, 0x7b, 0x24, - 0xfd, 0x95, 0x17, 0x4c, 0x7c, 0x1e, 0x3e, 0x5f, 0x9f, 0xf2, 0xb3, 0x6c, - 0xa7, 0xa4, 0xd7, 0x3c, 0x08, 0x72, 0xb4, 0x5f, 0x01, 0x0d, 0xd8, 0x5f, - 0x01, 0x59, 0x21, 0x23, 0xfb, 0x5b, 0xab, 0xfa, 0xef, 0x49, 0xfc, 0xf2, - 0x51, 0x41, 0x5f, 0xa0, 0x9e, 0x8e, 0xcf, 0xbe, 0x4b, 0xcf, 0x57, 0x52, - 0xf6, 0xb5, 0x4f, 0xe3, 0xb6, 0x6c, 0x3f, 0x0a, 0xd1, 0xfa, 0x47, 0xf2, - 0x42, 0xb4, 0x8c, 0xc8, 0x83, 0xed, 0x03, 0x54, 0xce, 0x91, 0xf1, 0xf7, - 0x65, 0x9b, 0xf8, 0x7f, 0x90, 0xcd, 0x1a, 0xf1, 0x33, 0x7c, 0x8d, 0xb1, - 0x9f, 0x4d, 0xf5, 0x09, 0x62, 0x3d, 0xc2, 0x78, 0xbb, 0xcf, 0xf0, 0xb4, - 0x92, 0xf2, 0xbf, 0xaf, 0x51, 0xf9, 0xc9, 0x97, 0xb7, 0x7e, 0xbe, 0x19, - 0x9f, 0xb1, 0x53, 0xe7, 0x47, 0xf6, 0xc3, 0x28, 0x72, 0xcd, 0x53, 0x79, - 0x8a, 0x60, 0xc5, 0x96, 0x6b, 0xa6, 0xe9, 0x1a, 0xe0, 0x42, 0xf5, 0xe5, - 0x13, 0xb4, 0x7e, 0xfe, 0x49, 0xf2, 0xa6, 0x79, 0x0b, 0x56, 0x30, 0xec, - 0x44, 0xf6, 0x52, 0x3f, 0x0b, 0xb6, 0xf3, 0xfc, 0xba, 0xe5, 0x53, 0xbd, - 0x39, 0x6c, 0x0d, 0xe0, 0xab, 0x9f, 0x0f, 0xf5, 0x2d, 0xb2, 0xc9, 0x89, - 0xfd, 0x5e, 0xc0, 0xf0, 0x8c, 0x65, 0x2f, 0xcb, 0x14, 0x41, 0xe9, 0x75, - 0xd0, 0x98, 0x82, 0x87, 0x7b, 0xde, 0x51, 0x3b, 0x4f, 0x5e, 0x84, 0x9f, - 0xa9, 0x8b, 0xe7, 0x21, 0xc5, 0x4b, 0x99, 0xa2, 0xf9, 0xd8, 0x4e, 0x99, - 0xf2, 0xa7, 0xfc, 0x0b, 0xc7, 0x38, 0xde, 0x4b, 0x90, 0xf5, 0x2b, 0x74, - 0xfe, 0x23, 0xda, 0x7c, 0x09, 0x7b, 0xb5, 0x6e, 0xa6, 0xf9, 0xce, 0x60, - 0x3d, 0x2a, 0x1f, 0x62, 0x78, 0x2b, 0xd2, 0x7e, 0xc8, 0xf2, 0x7e, 0x49, - 0x34, 0x5f, 0xea, 0x10, 0x19, 0x73, 0x9f, 0xc3, 0xeb, 0xcf, 0x37, 0x4b, - 0xff, 0xca, 0x0a, 0x5e, 0xbf, 0x54, 0x40, 0x5b, 0x18, 0x56, 0xeb, 0xd9, - 0x8c, 0xcf, 0xd6, 0xa7, 0x2a, 0xd6, 0xbb, 0x1f, 0xb4, 0x83, 0x87, 0x42, - 0xfb, 0x73, 0xec, 0xbc, 0x8d, 0x7a, 0xf1, 0xd6, 0x71, 0x7a, 0x03, 0xd7, - 0xca, 0xf1, 0xaf, 0x8c, 0xc5, 0xc7, 0xa6, 0xcf, 0xdf, 0x40, 0x9e, 0x57, - 0xf1, 0x77, 0xf9, 0x3c, 0x05, 0xd6, 0x88, 0xed, 0x0f, 0x21, 0xf9, 0x8b, - 0xa0, 0x0f, 0x5b, 0xcc, 0xef, 0x28, 0x68, 0x0f, 0xaf, 0x45, 0x8d, 0xbf, - 0x2c, 0x7d, 0xfc, 0x33, 0xc6, 0xf8, 0xfd, 0x70, 0x91, 0xe3, 0x77, 0xb5, - 0x98, 0x7f, 0xc6, 0x98, 0xff, 0x62, 0xc7, 0x5f, 0x12, 0x3f, 0xbe, 0x9a, - 0x6f, 0xac, 0xfc, 0x6e, 0xc2, 0x13, 0x08, 0xf7, 0xa7, 0x90, 0x3e, 0xde, - 0xd1, 0x36, 0xf1, 0x70, 0x54, 0xfe, 0x4a, 0xbe, 0xc5, 0xfc, 0xac, 0xa4, - 0xf9, 0xdd, 0x18, 0x3f, 0xbf, 0x6c, 0x8b, 0xf9, 0x25, 0x8e, 0xb7, 0x29, - 0x76, 0xbc, 0x04, 0xbc, 0x1e, 0x45, 0xef, 0x47, 0x69, 0x43, 0xa5, 0xd8, - 0xf1, 0x58, 0xfe, 0xd3, 0x82, 0xa4, 0xd7, 0xf5, 0xf2, 0x68, 0xc7, 0xe2, - 0xa7, 0xb0, 0x7a, 0xb5, 0x68, 0x3d, 0xa1, 0xf8, 0x7b, 0x49, 0xc9, 0xd3, - 0x0c, 0x8c, 0xbe, 0x2f, 0x1c, 0xff, 0xf7, 0xb4, 0xfe, 0x4a, 0xe5, 0x0d, - 0x4b, 0x85, 0x3c, 0xa0, 0xfc, 0x7f, 0x85, 0xe2, 0xff, 0xa5, 0x31, 0x86, - 0x86, 0x87, 0xcb, 0xb7, 0x92, 0x7d, 0xed, 0x71, 0x31, 0xe3, 0xaa, 0xf5, - 0xa1, 0x0a, 0xca, 0x0d, 0xd0, 0x92, 0x3b, 0x29, 0x7f, 0xcf, 0x9d, 0x3f, - 0x7f, 0x7e, 0x09, 0xf9, 0xc7, 0x5d, 0xdf, 0xd9, 0x01, 0xbd, 0xfa, 0x75, - 0xfd, 0x63, 0x95, 0x91, 0xbd, 0xc0, 0xbf, 0xa2, 0x13, 0x87, 0x78, 0x6d, - 0x9c, 0x5f, 0x97, 0x59, 0xfd, 0xe1, 0xe4, 0x4b, 0x95, 0xfc, 0x46, 0xda, - 0x71, 0xa8, 0xf6, 0x82, 0x03, 0xad, 0xf2, 0xee, 0x7e, 0xe4, 0xf4, 0x6e, - 0x47, 0xa5, 0x25, 0x36, 0xb6, 0x89, 0x2e, 0xf3, 0xc8, 0x23, 0x4e, 0xe1, - 0x9a, 0xd7, 0xd6, 0x81, 0x46, 0x07, 0xd5, 0x8f, 0x5e, 0x96, 0xf5, 0x17, - 0xe7, 0x57, 0x11, 0x71, 0x82, 0x28, 0x0b, 0x06, 0x0f, 0x43, 0x2a, 0xaf, - 0x30, 0x91, 0x8f, 0x03, 0xe0, 0x24, 0xb2, 0x3b, 0x80, 0xb7, 0x76, 0xec, - 0x6b, 0x4c, 0x7e, 0xbe, 0x1b, 0x6c, 0xb3, 0x50, 0xa7, 0x7f, 0xeb, 0xea, - 0x57, 0x7e, 0xdf, 0xa2, 0xfc, 0xb2, 0x0b, 0x9c, 0x24, 0xcf, 0x8e, 0x8d, - 0xac, 0x46, 0xcf, 0x21, 0xa2, 0x9f, 0xcf, 0xad, 0x1d, 0x26, 0x9a, 0x95, - 0xc5, 0x75, 0xfc, 0x83, 0x80, 0xe1, 0x93, 0x64, 0x6a, 0x45, 0x2b, 0x86, - 0x7f, 0x96, 0xc1, 0xd1, 0x3a, 0xbd, 0x8f, 0xed, 0xf2, 0x92, 0xb8, 0xfb, - 0x01, 0xf8, 0x0e, 0xbb, 0x0f, 0x6c, 0x1c, 0x7b, 0xdf, 0x07, 0x0d, 0x76, - 0x5f, 0xd9, 0x33, 0xc8, 0xe8, 0x87, 0x01, 0x0c, 0x3c, 0xe0, 0x50, 0x9f, - 0x5c, 0x02, 0xaa, 0x7f, 0x0f, 0x4b, 0xd7, 0xc7, 0xca, 0x1b, 0x2a, 0xe2, - 0xa2, 0x93, 0x68, 0x79, 0x5e, 0x8c, 0xeb, 0xa6, 0xfd, 0x6e, 0xca, 0x1f, - 0xae, 0xb3, 0x5a, 0x4a, 0x8f, 0x17, 0x6e, 0x2a, 0xfd, 0xef, 0x68, 0x2f, - 0x95, 0x84, 0x6a, 0xbc, 0x33, 0x82, 0xbe, 0xdc, 0x2e, 0x2a, 0xc4, 0x26, - 0x76, 0x7e, 0x0a, 0x6e, 0x64, 0xf8, 0x25, 0x4d, 0xef, 0xa3, 0xf2, 0xbf, - 0x3b, 0x42, 0x9f, 0x64, 0xf6, 0xc3, 0x8c, 0xff, 0x8b, 0x7c, 0x30, 0x0a, - 0x73, 0xfa, 0x06, 0xd0, 0x5c, 0x8f, 0xba, 0x87, 0x41, 0xd2, 0x33, 0x7a, - 0xcd, 0x53, 0x15, 0x65, 0x80, 0xdf, 0xdf, 0x9e, 0x11, 0x87, 0x61, 0x84, - 0xe1, 0x30, 0xe0, 0xbf, 0x12, 0x78, 0x92, 0x13, 0x3e, 0xbf, 0xfe, 0x04, - 0xe4, 0xcb, 0x3b, 0xd4, 0xcb, 0xf5, 0xf9, 0x69, 0xc4, 0x1f, 0xc8, 0xdc, - 0xa1, 0xf2, 0x9d, 0x65, 0xac, 0xe9, 0xe7, 0xab, 0x12, 0xea, 0x63, 0x37, - 0x94, 0xa2, 0xeb, 0x27, 0xa1, 0x7c, 0x13, 0xf0, 0x5a, 0x63, 0xcf, 0xcf, - 0x72, 0x75, 0x7e, 0x62, 0xf6, 0xe3, 0xca, 0xba, 0xbb, 0xae, 0xfa, 0x41, - 0x29, 0x7f, 0x81, 0x5d, 0xbf, 0x9b, 0x07, 0xc4, 0x13, 0x9e, 0xbf, 0xc4, - 0xf9, 0x3a, 0x4d, 0xf9, 0xc9, 0xe6, 0xfe, 0x9b, 0xf9, 0xca, 0x98, 0xd6, - 0x73, 0xd9, 0x59, 0xa1, 0x3f, 0x92, 0xeb, 0x67, 0x71, 0xe7, 0x61, 0x91, - 0x3f, 0xc7, 0xe8, 0xbf, 0xc1, 0x7a, 0x60, 0xab, 0xf9, 0xcb, 0xf5, 0x12, - 0xfd, 0x2a, 0xa0, 0xdd, 0x10, 0x01, 0xff, 0xd5, 0x71, 0xdf, 0x27, 0xf5, - 0xb5, 0x7f, 0xcd, 0x2d, 0xee, 0xfb, 0x7e, 0x67, 0x91, 0xfd, 0xb0, 0xcd, - 0xfc, 0x65, 0x1f, 0xbc, 0x81, 0xeb, 0x83, 0x46, 0xff, 0x28, 0x89, 0xaf, - 0xfb, 0x77, 0x3f, 0x39, 0x4f, 0xff, 0xee, 0x32, 0xf5, 0x37, 0x9f, 0xd7, - 0x71, 0xd3, 0xe7, 0xfa, 0xe9, 0x7a, 0x5c, 0x2b, 0x7e, 0xe0, 0x72, 0xc3, - 0x9e, 0x3a, 0x05, 0xfc, 0x7a, 0xe1, 0xe9, 0x89, 0x09, 0x41, 0x6f, 0x67, - 0x39, 0x2e, 0x3d, 0x3e, 0x21, 0xae, 0x7d, 0xde, 0x3f, 0xb3, 0x76, 0xb3, - 0xd0, 0xf7, 0x9c, 0x47, 0x58, 0xbf, 0x06, 0x7c, 0xb3, 0xa0, 0x57, 0x6a, - 0xe6, 0x74, 0xf4, 0x8c, 0x33, 0xfc, 0x23, 0x7a, 0x9e, 0xba, 0x3d, 0xa2, - 0xc0, 0x97, 0x7a, 0x6c, 0xc2, 0xb4, 0x21, 0xc3, 0x23, 0x25, 0x5a, 0x03, - 0x8a, 0xf6, 0x97, 0x43, 0x75, 0xc4, 0xcf, 0x13, 0xb7, 0xaf, 0x7c, 0x6e, - 0xf7, 0xf9, 0x2e, 0xf7, 0xcb, 0x4d, 0x17, 0x84, 0xf7, 0x9d, 0x98, 0x4d, - 0xb0, 0x8c, 0xc8, 0xef, 0xbb, 0x9e, 0xc7, 0xa8, 0xeb, 0x61, 0xf2, 0xbf, - 0x17, 0x00, 0xf5, 0x67, 0x95, 0xaa, 0x8d, 0x6a, 0x39, 0x6f, 0xd9, 0xeb, - 0x21, 0xce, 0x0e, 0xbe, 0x7f, 0x12, 0x8f, 0x51, 0x97, 0xe9, 0x92, 0x29, - 0x08, 0xbc, 0xd7, 0x01, 0x26, 0xfc, 0xd3, 0x45, 0xc4, 0x76, 0xdb, 0x60, - 0x59, 0xea, 0x7d, 0x03, 0x27, 0x41, 0xdf, 0x55, 0x60, 0x1e, 0x7c, 0xef, - 0x5e, 0x5e, 0xff, 0xee, 0x07, 0x20, 0x7f, 0xd5, 0x01, 0x04, 0xb6, 0xbf, - 0x0e, 0xcb, 0xac, 0x1e, 0x0a, 0xfb, 0x01, 0xf9, 0xfe, 0x7d, 0x64, 0xbc, - 0xdd, 0x3b, 0x1f, 0xc2, 0xae, 0x3b, 0x8c, 0xec, 0x37, 0x93, 0x43, 0xb9, - 0x9d, 0xd7, 0x93, 0xfd, 0x8d, 0x85, 0x61, 0xd9, 0xe5, 0xf6, 0xf5, 0xd1, - 0x63, 0xa0, 0xd2, 0xf3, 0xb0, 0x2f, 0xc6, 0x0e, 0xdc, 0xbd, 0xc7, 0xef, - 0xa8, 0x14, 0x3e, 0xf3, 0x32, 0xaa, 0x14, 0xa7, 0x68, 0xbf, 0x34, 0x77, - 0x80, 0x5c, 0x37, 0xef, 0xaf, 0xb2, 0x00, 0x9c, 0xb4, 0x7e, 0xbe, 0x91, - 0xf3, 0xd8, 0x10, 0x78, 0xca, 0xf2, 0x7c, 0x35, 0x98, 0xea, 0xe7, 0xb9, - 0x7d, 0x31, 0xf4, 0x88, 0x1f, 0xea, 0xe2, 0xfc, 0xe2, 0xe4, 0x1d, 0x67, - 0x2c, 0x7e, 0x3e, 0xf3, 0x17, 0x84, 0x1f, 0xbe, 0x3a, 0xb1, 0xdf, 0xc1, - 0x65, 0xae, 0x1f, 0x5d, 0xf4, 0xf9, 0x37, 0xfa, 0x23, 0x2d, 0xb6, 0xbf, - 0x92, 0xb9, 0xde, 0x91, 0x7e, 0x59, 0x3c, 0xde, 0x63, 0xf0, 0x03, 0x60, - 0x37, 0xd8, 0xa4, 0xbc, 0xe9, 0x67, 0x01, 0xf2, 0x81, 0xb0, 0x5c, 0xd4, - 0x79, 0x0b, 0x9a, 0xce, 0xdf, 0xa7, 0x4c, 0xf9, 0xe4, 0x07, 0x9d, 0x4f, - 0x53, 0x8a, 0xce, 0x09, 0xfa, 0xb8, 0xb2, 0xdc, 0xb9, 0xae, 0xfa, 0xfc, - 0x5a, 0xc9, 0xdf, 0xed, 0xc6, 0x57, 0x35, 0x7e, 0x33, 0x66, 0xfe, 0xbe, - 0xc1, 0xd2, 0x05, 0x92, 0xf8, 0x95, 0x9a, 0xdf, 0xa5, 0xe5, 0x57, 0xf7, - 0x5c, 0x2a, 0x7e, 0x65, 0xf4, 0xcf, 0x5e, 0x34, 0xbf, 0x82, 0x3a, 0xbf, - 0xea, 0x7e, 0xaa, 0x97, 0xe2, 0x45, 0x83, 0xea, 0x09, 0xf9, 0x1e, 0x15, - 0x4f, 0x61, 0xe7, 0x6f, 0x79, 0x8d, 0xe1, 0x49, 0x93, 0xe7, 0xd9, 0xb9, - 0x9b, 0x16, 0xfc, 0x0a, 0x7c, 0xbd, 0x1c, 0xf2, 0xab, 0x1c, 0x95, 0x97, - 0x41, 0xe6, 0xea, 0xda, 0x52, 0xff, 0x50, 0x37, 0xa8, 0x23, 0x27, 0x43, - 0xf8, 0x95, 0xb7, 0xc0, 0xfc, 0x51, 0xb7, 0x5a, 0xd8, 0xae, 0xbd, 0x73, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 07:31:14 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E812DD471A9; Thu, 20 Apr 2017 07:31:14 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC79213A9; Thu, 20 Apr 2017 07:31:14 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 3B5C610A7B9; Thu, 20 Apr 2017 03:31:13 -0400 (EDT) From: John Baldwin To: Ngie Cooper Cc: Warner Losh , rgrimes@freebsd.org, Eric van Gyzen , Slawa Olhovchenkov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers Subject: Re: svn commit: r317094 - head/share/mk Date: Wed, 19 Apr 2017 17:47:57 -0700 Message-ID: <1934449.ZAthNnyNnu@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <25F616D2-DE24-485B-9549-E1C4F68B9379@gmail.com> References: <25F616D2-DE24-485B-9549-E1C4F68B9379@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Thu, 20 Apr 2017 03:31:13 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 07:31:15 -0000 On Wednesday, April 19, 2017 03:51:24 PM Ngie Cooper wrote: > > > On Apr 19, 2017, at 15:22, Warner Losh wrote: > > ... > > >> Actually this is exactly what I would expect from Linux! > >> > >> Why do we need to pull the trigger on GDB other than to pull the trigger > >> to say we are GPL free, if that is the reason then this is the wrong > >> way to go about it. > > > > I think "gdb in base is horribly broken" is the real reason. You need > > the port to do anything non-trivial these days. > > > > Plus core set this as a goal for the project after it was clear that > > was a consensus desire several years ago. Can't fault someone for > > working towards that goal. > > +1 to Warner's sentiments. > > gdb in base doesn't work well with threads (6.x never did ;/..), and lacks support for other things (like python debugging). Being able to debug threads reliably is a make or break thing. > > So while I understand and in general agree with you Rod, I completely disagree on the practical end of things. I'm actually kind of curious as to why this isn't being done globally.. but I assume that it was described in one of the many threads some time ago about the status quo for debugging with gdb on tier-two architectures. As the commit message stated, gdb in ports doesn't yet include kgdb support for ARM, and no one has tested the sparc64 support for gdb in ports, so those two architectures remain on. For all other platforms, gdb in ports is a strict superset of gdb in base. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Apr 20 07:31:17 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91CDDD471B9; Thu, 20 Apr 2017 07:31:17 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6D9D013B6; Thu, 20 Apr 2017 07:31:17 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 7E6ED10A82D; Thu, 20 Apr 2017 03:31:16 -0400 (EDT) From: John Baldwin To: rgrimes@freebsd.org Cc: Slawa Olhovchenkov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r317094 - head/share/mk Date: Wed, 19 Apr 2017 12:38:54 -0700 Message-ID: <2211685.c7RPlKUNz2@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> References: <201704191633.v3JGXWmu031427@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Thu, 20 Apr 2017 03:31:16 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 07:31:17 -0000 On Wednesday, April 19, 2017 09:33:32 AM Rodney W. Grimes wrote: > > On Wednesday, April 19, 2017 01:28:37 AM Slawa Olhovchenkov wrote: > > > On Tue, Apr 18, 2017 at 12:45:25PM -0700, John Baldwin wrote: > > > > > > > On Tuesday, April 18, 2017 07:30:13 PM Slawa Olhovchenkov wrote: > > > > > On Tue, Apr 18, 2017 at 04:27:48PM +0000, John Baldwin wrote: > > > > > > > > > > > Author: jhb > > > > > > Date: Tue Apr 18 16:27:48 2017 > > > > > > New Revision: 317094 > > > > > > URL: https://svnweb.freebsd.org/changeset/base/317094 > > > > > > > > > > > > Log: > > > > > > Disable in-tree GDB by default on x86, mips, and powerpc. > > > > > > > > > > > > GDB in ports contains all of the functionality as GDB in base > > > > > > (including kgdb) for these platforms along with additional > > > > > > functionality. In-tree GDB remains enabled on ARM and sparc64. > > > > > > GDB in ports does not currently support kernel debugging on arm, > > > > > > and ports GDB for sparc64 has not been tested (though it does > > > > > > include sparc64 support). > > > > > > > > > > > > Reviewed by: bdrewery, emaste, imp > > > > > > Relnotes: yes > > > > > > Sponsored by: DARPA / AFRL > > > > > > Differential Revision: https://reviews.freebsd.org/D10399 > > > > > > > > > > Generating core.txt now complety broken? > > > > > > > > No. crashinfo has supported gdb from ports for quite a while now. > > > > If you 'pkg install gdb' crashinfo defaults to using the ports gdb over > > > > the base one already. > > > > > > I am about clean install, w/o ports. > > > > Until we get some sort of klldb support that will not work. However, > > we already have platforms now where /usr/bin/gdb doesn't work for that. > > riscv and aarch64 aren't supported in ancient gdb, and the MIPS > > /usr/bin/gdb didn't really work for me in my testing. > > So we break what worked on a Tier1 Platform? With my "user" hat on > these are the exact kind of breakages that send me looking for another > platform to run on. We far to often just go oh you can do X y and Z > to get around what we broke forgetting that the user 6 months from now > when this hits a release isnt gona come ask, he may just go down the > road to something else. > > Remove gdb WHEN klldb can replace it, not a day before. Using "oh its > broken on aarch64 and mips" is not a reason to break things on i386/amd64. /usr/bin/gdb is replaced by gdb from ports. /usr/bin/gdb in base will never get updated and will continue to rot. gdb from ports includes full kgdb support (and crashinfo will use it when available). gdb from ports also includes things like handling inline functions, AVX, fork following, support for threads for compat32 binaries, and cross-debugging of crash dumps (so you can debug a MIPS vmcore on an amd64 host) which /usr/bin/gdb will never be able to do. > Yes, I know we want to get gnu stuff out of the tree, but that needs > to come AFTER a proper replacement is avaliable. In this case the replacement is available as a package. GPLv2 gdb is orphaned and not maintained by anyone. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Apr 20 09:01:32 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75F8DD46DCE; Thu, 20 Apr 2017 09:01:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47DA6813; Thu, 20 Apr 2017 09:01:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K91VLF094161; Thu, 20 Apr 2017 09:01:31 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K91VM3094160; Thu, 20 Apr 2017 09:01:31 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704200901.v3K91VM3094160@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 20 Apr 2017 09:01:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317185 - head/sys/dev/watchdog X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 09:01:32 -0000 Author: mav Date: Thu Apr 20 09:01:31 2017 New Revision: 317185 URL: https://svnweb.freebsd.org/changeset/base/317185 Log: Some cosmetic polishing for pre-timeouts. MFC after: 1 week Modified: head/sys/dev/watchdog/watchdog.c Modified: head/sys/dev/watchdog/watchdog.c ============================================================================== --- head/sys/dev/watchdog/watchdog.c Thu Apr 20 04:36:49 2017 (r317184) +++ head/sys/dev/watchdog/watchdog.c Thu Apr 20 09:01:31 2017 (r317185) @@ -229,13 +229,13 @@ wd_timeout_cb(void *arg) #ifdef DDB if ((wd_pretimeout_act & WD_SOFT_DDB)) { char kdb_why[80]; - snprintf(kdb_why, sizeof(kdb_why), "watchdog %s timeout", type); + snprintf(kdb_why, sizeof(kdb_why), "watchdog %s-timeout", type); kdb_backtrace(); kdb_enter(KDB_WHY_WATCHDOG, kdb_why); } #endif if ((wd_pretimeout_act & WD_SOFT_LOG)) - log(LOG_EMERG, "watchdog %s-timeout, WD_SOFT_LOG", type); + log(LOG_EMERG, "watchdog %s-timeout, WD_SOFT_LOG\n", type); if ((wd_pretimeout_act & WD_SOFT_PRINTF)) printf("watchdog %s-timeout, WD_SOFT_PRINTF\n", type); if ((wd_pretimeout_act & WD_SOFT_PANIC)) @@ -292,8 +292,7 @@ wd_set_pretimeout(int newtimeout, int di /* We determined the value is sane, so reset the callout */ (void) callout_reset(&wd_pretimeo_handle, - timeout_ticks, - wd_timeout_cb, "pre-timeout"); + timeout_ticks, wd_timeout_cb, "pre"); wd_pretimeout = newtimeout; return 0; } From owner-svn-src-all@freebsd.org Thu Apr 20 09:05:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9CF0ED47043; Thu, 20 Apr 2017 09:05:54 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 535F1B5C; Thu, 20 Apr 2017 09:05:54 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3K95rKP097208; Thu, 20 Apr 2017 09:05:53 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3K95rRT097206; Thu, 20 Apr 2017 09:05:53 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201704200905.v3K95rRT097206@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Thu, 20 Apr 2017 09:05:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317186 - in head/sys: netinet6 netpfil/pf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 09:05:54 -0000 Author: kp Date: Thu Apr 20 09:05:53 2017 New Revision: 317186 URL: https://svnweb.freebsd.org/changeset/base/317186 Log: pf: Fix possible incorrect IPv6 fragmentation When forwarding pf tracks the size of the largest fragment in a fragmented packet, and refragments based on this size. It failed to ensure that this size was a multiple of 8 (as is required for all but the last fragment), so it could end up generating incorrect fragments. For example, if we received an 8 byte and 12 byte fragment pf would emit a first fragment with 12 bytes of payload and the final fragment would claim to be at offset 8 (not 12). We now assert that the fragment size is a multiple of 8 in ip6_fragment(), so other users won't make the same mistake. Reported by: Antonios Atlasis MFC after: 3 days Modified: head/sys/netinet6/ip6_output.c head/sys/netpfil/pf/pf_norm.c Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Thu Apr 20 09:01:31 2017 (r317185) +++ head/sys/netinet6/ip6_output.c Thu Apr 20 09:05:53 2017 (r317186) @@ -226,6 +226,8 @@ ip6_fragment(struct ifnet *ifp, struct m int error; int tlen = m0->m_pkthdr.len; + KASSERT(( mtu % 8 == 0), ("Fragment length must be a multiple of 8")); + m = m0; ip6 = mtod(m, struct ip6_hdr *); mnext = &m->m_nextpkt; Modified: head/sys/netpfil/pf/pf_norm.c ============================================================================== --- head/sys/netpfil/pf/pf_norm.c Thu Apr 20 09:01:31 2017 (r317185) +++ head/sys/netpfil/pf/pf_norm.c Thu Apr 20 09:05:53 2017 (r317186) @@ -762,6 +762,10 @@ pf_refragment6(struct ifnet *ifp, struct hdr->ip6_nxt = IPPROTO_FRAGMENT; } + /* The MTU must be a multiple of 8 bytes, or we risk doing the + * fragmentation wrong. */ + maxlen = maxlen & ~7; + /* * Maxlen may be less than 8 if there was only a single * fragment. As it was fragmented before, add a fragment From owner-svn-src-all@freebsd.org Thu Apr 20 09:35:23 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7359D47D3D; Thu, 20 Apr 2017 09:35:23 +0000 (UTC) (envelope-from remko@FreeBSD.org) Received: from smtp-out.elvandar.org (gandalf.elvandar.org [149.210.225.204]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8815D6ED; Thu, 20 Apr 2017 09:35:22 +0000 (UTC) (envelope-from remko@FreeBSD.org) Received: from mail1.elvandar.org (mail1.elvandar.org [IPv6:2001:470:d701::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp-out.elvandar.org (Postfix) with ESMTPS id DE6A04707BC; Thu, 20 Apr 2017 11:35:14 +0200 (CEST) Received: from [10.0.2.17] (f239026.upc-f.chello.nl [80.56.239.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail1.elvandar.org (Postfix) with ESMTPSA id 907B81EF7E; Thu, 20 Apr 2017 11:35:14 +0200 (CEST) From: Remko Lodder Message-Id: <96411818-CC1A-4814-9C01-B10E2A353EBC@FreeBSD.org> Content-Type: multipart/signed; boundary="Apple-Mail=_8789A627-C181-42EA-A6D6-864E4293BB34"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317186 - in head/sys: netinet6 netpfil/pf Date: Thu, 20 Apr 2017 11:35:13 +0200 In-Reply-To: <201704200905.v3K95rRT097206@repo.freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org To: Kristof Provost References: <201704200905.v3K95rRT097206@repo.freebsd.org> X-Mailer: Apple Mail (2.3273) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 09:35:23 -0000 --Apple-Mail=_8789A627-C181-42EA-A6D6-864E4293BB34 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii > On 20 Apr 2017, at 11:05, Kristof Provost wrote: > > Author: kp > Date: Thu Apr 20 09:05:53 2017 > New Revision: 317186 > URL: https://svnweb.freebsd.org/changeset/base/317186 > > Log: > pf: Fix possible incorrect IPv6 fragmentation > > Thank you! --Apple-Mail=_8789A627-C181-42EA-A6D6-864E4293BB34 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- iQIcBAEBCgAGBQJY+IDSAAoJEHE1jtY/d0B5hYMP/RsoRutUCE4KNIKGKLpK1y3z 6O3dZ64T/W3uQNRcm9NcvX4OG/222b7FM555Rjxf2qr6FV395q1ILfK530UZiNeE jrdhoRZky+meCgAwAH0907q5wgcAhCrBhOKjLicAY/nCqLYSvC7Rf35wXu3JwJ9B 3ltEcejSv06fJzKfng1CghaskwMFSM9wiXSsBcR/tcKnl0iBsKN/NhEepJAmedO9 nkx7a3uYLFdv/jKWK8Lce0R8L/WiQcYPUXtnKVI5328IANO9VHJqdvvF+3Ldpd89 02hebWex32Xn4tiNLxNptiu6BCeWm9gY6StUvQSBjzsWfvj+Jy+8UfQkIVW50Qul VEqOrP/XUyd0yfJfs5Xj+8PQx1Q0J7fK0JeSjNLMBYzd81VAtALRUDwxRK8iVwV1 LTTINwuYjUc6waqO2k6IL2v6TXBushp29bvRgKHg9+tsdktSosQoyWCoF8QxavB9 71qNLDOI5wMeTLyerz0pzv5rdifkwkX2HAR7qUw7PclRXf3vOEb4a3YSPz/sOsdj x5ao+OLdgl5VK6ysiocKObhvj9W63RG8H44c7g0n38ljbRu64lUPxsg2BbOzhn/j tog7vB3/afN43IUAbNcly75SGdUqKeA8RG6GtsjI4hz/WvIxmKzCp/ZDxSgqWgA3 1jGM9I6fZ6mDeVwRoWgI =H37S -----END PGP SIGNATURE----- --Apple-Mail=_8789A627-C181-42EA-A6D6-864E4293BB34-- From owner-svn-src-all@freebsd.org Thu Apr 20 11:32:19 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8ABED471C4; Thu, 20 Apr 2017 11:32:19 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5EE40F78; Thu, 20 Apr 2017 11:32:19 +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 v3KBWINn057597; Thu, 20 Apr 2017 11:32:18 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KBWInA057594; Thu, 20 Apr 2017 11:32:18 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201132.v3KBWInA057594@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 11:32:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317187 - head/usr.bin/diff/tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 11:32:19 -0000 Author: bapt Date: Thu Apr 20 11:32:18 2017 New Revision: 317187 URL: https://svnweb.freebsd.org/changeset/base/317187 Log: Add a regression test for diff -D Added: head/usr.bin/diff/tests/ifdef.out (contents, props changed) Modified: head/usr.bin/diff/tests/Makefile head/usr.bin/diff/tests/diff_test.sh Modified: head/usr.bin/diff/tests/Makefile ============================================================================== --- head/usr.bin/diff/tests/Makefile Thu Apr 20 09:05:53 2017 (r317186) +++ head/usr.bin/diff/tests/Makefile Thu Apr 20 11:32:18 2017 (r317187) @@ -21,7 +21,8 @@ ${PACKAGE}FILES+= \ unified_c9999.out \ unified_9999.out \ header.out \ - header_ns.out + header_ns.out \ + ifdef.out NETBSD_ATF_TESTS_SH+= netbsd_diff_test Modified: head/usr.bin/diff/tests/diff_test.sh ============================================================================== --- head/usr.bin/diff/tests/diff_test.sh Thu Apr 20 09:05:53 2017 (r317186) +++ head/usr.bin/diff/tests/diff_test.sh Thu Apr 20 11:32:18 2017 (r317187) @@ -4,6 +4,7 @@ atf_test_case simple atf_test_case unified atf_test_case header atf_test_case header_ns +atf_test_case ifdef simple_body() { @@ -70,10 +71,18 @@ header_ns_body() diff -u empty hello } +ifdef_body() +{ + atf_check -o file:$(atf_get_srcdir)/ifdef.out -s eq:1 \ + diff -D PLOP "$(atf_get_srcdir)/input_c1.in" \ + "$(atf_get_srcdir)/input_c2.in" +} + atf_init_test_cases() { atf_add_test_case simple atf_add_test_case unified atf_add_test_case header atf_add_test_case header_ns + atf_add_test_case ifdef } Added: head/usr.bin/diff/tests/ifdef.out ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/diff/tests/ifdef.out Thu Apr 20 11:32:18 2017 (r317187) @@ -0,0 +1,26 @@ +/* + * A comment + * +#ifndef PLOP + * And another bla +#else /* PLOP */ + * And another bla +#endif /* PLOP */ + * +#ifndef PLOP + * And yet another +#else /* PLOP */ + * and yet another +#endif /* PLOP */ + */ + +int +main(void) +{ +#ifdef PLOP + +#endif /* PLOP */ + printf("something"); + + return (0); +} From owner-svn-src-all@freebsd.org Thu Apr 20 11:52:12 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 57B6ED4771F; Thu, 20 Apr 2017 11:52:12 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0F51B1A2A; Thu, 20 Apr 2017 11:52:11 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KBqB3D063932; Thu, 20 Apr 2017 11:52:11 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KBqB0T063931; Thu, 20 Apr 2017 11:52:11 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201704201152.v3KBqB0T063931@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Thu, 20 Apr 2017 11:52:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317188 - stable/11/sys/arm/arm X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 11:52:12 -0000 Author: skra Date: Thu Apr 20 11:52:10 2017 New Revision: 317188 URL: https://svnweb.freebsd.org/changeset/base/317188 Log: MFC r308569,r308570: r308569: Always call PHYS_TO_VM_PAGE() in is_managed(). Fast road for addresses under first_page cannot be taken as this variable is connected only to vm_page_array segment. There could be more segments in system like the ones for various fictitious page ranges. These can be situated under vm_page_array segment and so, they could be skipped before this fix. However, as far as I know, there is no report associated with it. r308570: The return type of is_managed() was changed from boolean_t to bool type in r308569. Now, propagate this change further for consistency sake. Modified: stable/11/sys/arm/arm/pmap-v6.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/arm/pmap-v6.c ============================================================================== --- stable/11/sys/arm/arm/pmap-v6.c Thu Apr 20 11:32:18 2017 (r317187) +++ stable/11/sys/arm/arm/pmap-v6.c Thu Apr 20 11:52:10 2017 (r317188) @@ -2746,31 +2746,25 @@ SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_ /* * Is given page managed? */ -static __inline boolean_t +static __inline bool is_managed(vm_paddr_t pa) { - vm_offset_t pgnum; vm_page_t m; - pgnum = atop(pa); - if (pgnum >= first_page) { - m = PHYS_TO_VM_PAGE(pa); - if (m == NULL) - return (FALSE); - if ((m->oflags & VPO_UNMANAGED) == 0) - return (TRUE); - } - return (FALSE); + m = PHYS_TO_VM_PAGE(pa); + if (m == NULL) + return (false); + return ((m->oflags & VPO_UNMANAGED) == 0); } -static __inline boolean_t +static __inline bool pte1_is_managed(pt1_entry_t pte1) { return (is_managed(pte1_pa(pte1))); } -static __inline boolean_t +static __inline bool pte2_is_managed(pt2_entry_t pte2) { @@ -6148,7 +6142,7 @@ pmap_mincore(pmap_t pmap, vm_offset_t ad pt1_entry_t *pte1p, pte1; pt2_entry_t *pte2p, pte2; vm_paddr_t pa; - boolean_t managed; + bool managed; int val; PMAP_LOCK(pmap); @@ -6175,7 +6169,7 @@ retry: if (pte2 & PTE2_A) val |= MINCORE_REFERENCED | MINCORE_REFERENCED_OTHER; } else { - managed = FALSE; + managed = false; val = 0; } if ((val & (MINCORE_MODIFIED_OTHER | MINCORE_REFERENCED_OTHER)) != From owner-svn-src-all@freebsd.org Thu Apr 20 12:48:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C220D4848E; Thu, 20 Apr 2017 12:48:03 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C7ACAE4B; Thu, 20 Apr 2017 12:48:02 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KCm145087365; Thu, 20 Apr 2017 12:48:01 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KCm1cn087364; Thu, 20 Apr 2017 12:48:01 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201704201248.v3KCm1cn087364@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 20 Apr 2017 12: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: r317189 - stable/11/libexec/rtld-elf/aarch64 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 12:48:03 -0000 Author: andrew Date: Thu Apr 20 12:48:01 2017 New Revision: 317189 URL: https://svnweb.freebsd.org/changeset/base/317189 Log: MFC r312764: Pull the R_AARCH64_TLSDESC code out into a common function and use them in both the plt and non-plt case. This fixes an issue where libraries built with LLD can fail with "Unhandled relocation 1031" Modified: stable/11/libexec/rtld-elf/aarch64/reloc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/libexec/rtld-elf/aarch64/reloc.c ============================================================================== --- stable/11/libexec/rtld-elf/aarch64/reloc.c Thu Apr 20 11:52:10 2017 (r317188) +++ stable/11/libexec/rtld-elf/aarch64/reloc.c Thu Apr 20 12:48:01 2017 (r317189) @@ -184,6 +184,18 @@ rtld_tlsdesc_handle(struct tls_data *tls return (tlsdesc->index); } +static void +reloc_tlsdesc(Obj_Entry *obj, const Elf_Rela *rela, Elf_Addr *where) +{ + if (ELF_R_SYM(rela->r_info) == 0) { + where[0] = (Elf_Addr)_rtld_tlsdesc; + where[1] = obj->tlsoffset + rela->r_addend; + } else { + where[0] = (Elf_Addr)_rtld_tlsdesc_dynamic; + where[1] = (Elf_Addr)reloc_tlsdesc_alloc(obj, rela); + } +} + /* * Process the PLT relocations. */ @@ -204,14 +216,7 @@ reloc_plt(Obj_Entry *obj) *where += (Elf_Addr)obj->relocbase; break; case R_AARCH64_TLSDESC: - if (ELF_R_SYM(rela->r_info) == 0) { - where[0] = (Elf_Addr)_rtld_tlsdesc; - where[1] = obj->tlsoffset + rela->r_addend; - } else { - where[0] = (Elf_Addr)_rtld_tlsdesc_dynamic; - where[1] = (Elf_Addr)reloc_tlsdesc_alloc(obj, - rela); - } + reloc_tlsdesc(obj, rela, where); break; default: _rtld_error("Unknown relocation type %u in PLT", @@ -361,6 +366,9 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry return (-1); } break; + case R_AARCH64_TLSDESC: + reloc_tlsdesc(obj, rela, where); + break; case R_AARCH64_TLS_TPREL64: def = find_symdef(symnum, obj, &defobj, flags, cache, lockstate); From owner-svn-src-all@freebsd.org Thu Apr 20 13:46:56 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C5276D4873D; Thu, 20 Apr 2017 13:46:56 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A22C4A8B; Thu, 20 Apr 2017 13:46:56 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KDktkD013228; Thu, 20 Apr 2017 13:46:55 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KDktZ6013225; Thu, 20 Apr 2017 13:46:55 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704201346.v3KDktZ6013225@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Thu, 20 Apr 2017 13:46:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317190 - in head/sys: dev/fb sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 13:46:56 -0000 Author: bde Date: Thu Apr 20 13:46:55 2017 New Revision: 317190 URL: https://svnweb.freebsd.org/changeset/base/317190 Log: Attempt to determine the modes in which 8-bit wide characters are actually 9 wide. I only need this to improve the mouse cursor, but it has always been needed to select and/or adjust fonts. This is complicated because there are no standard parameter tables giving this bit of information directly, and the device register bit giving the information can't be trusted even if it is read from the hardware. Use a heuristic to guess if the device register can be trusted. (The device register is normally read from the BIOS mode table, but on my system where the device register is wrong, the mode table doesn't match the hardware and is not used; the device registers are used in this case.) Modified: head/sys/dev/fb/vesa.c head/sys/dev/fb/vga.c head/sys/sys/fbio.h Modified: head/sys/dev/fb/vesa.c ============================================================================== --- head/sys/dev/fb/vesa.c Thu Apr 20 12:48:01 2017 (r317189) +++ head/sys/dev/fb/vesa.c Thu Apr 20 13:46:55 2017 (r317190) @@ -1359,6 +1359,7 @@ vesa_set_mode(video_adapter_t *adp, int vesa_adp->va_crtc_addr = (vesa_adp->va_flags & V_ADP_COLOR) ? COLOR_CRTC : MONO_CRTC; + vesa_adp->va_flags &= ~V_ADP_CWIDTH9; vesa_adp->va_line_width = info.vi_buffer_size / info.vi_height; if ((info.vi_flags & V_INFO_GRAPHICS) != 0) vesa_adp->va_line_width /= info.vi_planes; Modified: head/sys/dev/fb/vga.c ============================================================================== --- head/sys/dev/fb/vga.c Thu Apr 20 12:48:01 2017 (r317189) +++ head/sys/dev/fb/vga.c Thu Apr 20 13:46:55 2017 (r317190) @@ -862,6 +862,9 @@ update_adapter_info(video_adapter_t *adp /* XXX */ adp->va_buffer = info->vi_buffer; adp->va_buffer_size = info->vi_buffer_size; + adp->va_flags &= ~V_ADP_CWIDTH9; + if (info->vi_flags & V_INFO_CWIDTH9) + adp->va_flags |= V_ADP_CWIDTH9; if (info->vi_mem_model == V_INFO_MM_VGAX) { adp->va_line_width = info->vi_width/2; } else if (info->vi_flags & V_INFO_GRAPHICS) { @@ -1221,6 +1224,29 @@ probe_adapters(void) } } +#if !defined(VGA_NO_BIOS) && !defined(VGA_NO_MODE_CHANGE) + /* + * Attempt to determine the real character width for each mode. 9 wide + * is supposed to be standard for EGA mono mode and most VGA text modes, + * but some hardware doesn't support it, so dynamic configuration is + * needed. Bit 0 in sequencer register 1 is supposed control the width + * (set = 8), but this is unreliable too. Trust that 0 in the sequencer + * bit means 9 wide after verifying that 9 is consistent with some CRTC + * timing. The ratio (Horizontal Total) / (Horizontal Displayed) is + * about 1.2 in all standard 9-wide modes and should be about 9/8 larger + * again in similar 8-wide modes; in practice it is usually about 1.4 + * times larger. + */ + for (i = 0; i < nitems(bios_vmode); ++i) { + if (bios_vmode[i].vi_mem_model == V_INFO_MM_TEXT && + bios_vmode[i].vi_width != 90) { + mp = get_mode_param(map_mode_num(bios_vmode[i].vi_mode)); + if (mp != NULL && !(mp[5] & 1) && mp[10] <= mp[11] * 125 / 100) + bios_vmode[i].vi_flags |= V_INFO_CWIDTH9; + } + } +#endif + /* buffer address */ vga_get_info(&biosadapter[V_ADP_PRIMARY], biosadapter[V_ADP_PRIMARY].va_initial_mode, &info); Modified: head/sys/sys/fbio.h ============================================================================== --- head/sys/sys/fbio.h Thu Apr 20 12:48:01 2017 (r317189) +++ head/sys/sys/fbio.h Thu Apr 20 13:46:55 2017 (r317190) @@ -338,6 +338,7 @@ struct video_info { #define V_INFO_LINEAR (1 << 2) #define V_INFO_VESA (1 << 3) #define V_INFO_NONVGA (1 << 4) +#define V_INFO_CWIDTH9 (1 << 5) int vi_width; int vi_height; int vi_cwidth; @@ -400,6 +401,7 @@ struct video_adapter { #define V_ADP_REGISTERED (1 << 18) #define V_ADP_ATTACHED (1 << 19) #define V_ADP_DAC8 (1 << 20) +#define V_ADP_CWIDTH9 (1 << 21) vm_offset_t va_io_base; int va_io_size; vm_offset_t va_crtc_addr; From owner-svn-src-all@freebsd.org Thu Apr 20 13:56:08 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2A6A7D489CE; Thu, 20 Apr 2017 13:56:08 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EEE5A68; Thu, 20 Apr 2017 13:56:07 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KDu7pr017075; Thu, 20 Apr 2017 13:56:07 GMT (envelope-from cognet@FreeBSD.org) Received: (from cognet@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KDu7VK017074; Thu, 20 Apr 2017 13:56:07 GMT (envelope-from cognet@FreeBSD.org) Message-Id: <201704201356.v3KDu7VK017074@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cognet set sender to cognet@FreeBSD.org using -f From: Olivier Houchard Date: Thu, 20 Apr 2017 13:56:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317191 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 13:56:08 -0000 Author: cognet Date: Thu Apr 20 13:56:06 2017 New Revision: 317191 URL: https://svnweb.freebsd.org/changeset/base/317191 Log: ePAPR states that any non-boot CPU will come in "disabled" state. So we should not consider a "disabled" cpu as a CPU we have to ignore, and we should use them if they provide a "enable-method". While I'm there, support "ok" as well as "okay", while ePAPR only accepts "okay", linux accepts "ok" too so we can expect it to be used. Reviewed by: andrew (partially) Modified: head/sys/dev/ofw/ofw_cpu.c Modified: head/sys/dev/ofw/ofw_cpu.c ============================================================================== --- head/sys/dev/ofw/ofw_cpu.c Thu Apr 20 13:46:55 2017 (r317190) +++ head/sys/dev/ofw/ofw_cpu.c Thu Apr 20 13:56:06 2017 (r317191) @@ -320,8 +320,10 @@ ofw_cpu_early_foreach(ofw_cpu_foreach_cb if (only_runnable) { status[0] = '\0'; OF_getprop(child, "status", status, sizeof(status)); - if (status[0] != '\0' && strcmp(status, "okay") != 0) - continue; + if (status[0] != '\0' && strcmp(status, "okay") != 0 && + strcmp(status, "ok") != 0 && + !OF_hasprop(child, "enable-method")) + continue; } /* From owner-svn-src-all@freebsd.org Thu Apr 20 13:56:32 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 42531D48A3D; Thu, 20 Apr 2017 13:56:32 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0456E1CD; Thu, 20 Apr 2017 13:56:31 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KDuVfh017135; Thu, 20 Apr 2017 13:56:31 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KDuU0k017131; Thu, 20 Apr 2017 13:56:30 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201704201356.v3KDuU0k017131@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 20 Apr 2017 13:56:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317192 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 13:56:32 -0000 Author: andrew Date: Thu Apr 20 13:56:30 2017 New Revision: 317192 URL: https://svnweb.freebsd.org/changeset/base/317192 Log: Push loading curthread into assembly in the synchronous exception handlers. This will help investigating the performance impact of moving parts of the switch statement in do_el0_sync into assembly. Sponsored by: DARPA, AFRL Modified: head/sys/arm64/arm64/exception.S head/sys/arm64/arm64/genassym.c head/sys/arm64/arm64/trap.c Modified: head/sys/arm64/arm64/exception.S ============================================================================== --- head/sys/arm64/arm64/exception.S Thu Apr 20 13:56:06 2017 (r317191) +++ head/sys/arm64/arm64/exception.S Thu Apr 20 13:56:30 2017 (r317192) @@ -143,7 +143,8 @@ __FBSDID("$FreeBSD$"); ENTRY(handle_el1h_sync) save_registers 1 - mov x0, sp + ldr x0, [x18, #PC_CURTHREAD] + mov x1, sp bl do_el1h_sync restore_registers 1 eret @@ -163,7 +164,9 @@ END(handle_el1h_error) ENTRY(handle_el0_sync) save_registers 0 - mov x0, sp + ldr x0, [x18, #PC_CURTHREAD] + mov x1, sp + str x1, [x0, #TD_FRAME] bl do_el0_sync do_ast restore_registers 0 Modified: head/sys/arm64/arm64/genassym.c ============================================================================== --- head/sys/arm64/arm64/genassym.c Thu Apr 20 13:56:06 2017 (r317191) +++ head/sys/arm64/arm64/genassym.c Thu Apr 20 13:56:30 2017 (r317192) @@ -57,6 +57,7 @@ ASSYM(SF_UC, offsetof(struct sigframe, s ASSYM(TD_PCB, offsetof(struct thread, td_pcb)); ASSYM(TD_FLAGS, offsetof(struct thread, td_flags)); +ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TD_LOCK, offsetof(struct thread, td_lock)); ASSYM(TF_SIZE, sizeof(struct trapframe)); Modified: head/sys/arm64/arm64/trap.c ============================================================================== --- head/sys/arm64/arm64/trap.c Thu Apr 20 13:56:06 2017 (r317191) +++ head/sys/arm64/arm64/trap.c Thu Apr 20 13:56:30 2017 (r317192) @@ -72,8 +72,8 @@ __FBSDID("$FreeBSD$"); extern register_t fsu_intr_fault; /* Called from exception.S */ -void do_el1h_sync(struct trapframe *); -void do_el0_sync(struct trapframe *); +void do_el1h_sync(struct thread *, struct trapframe *); +void do_el0_sync(struct thread *, struct trapframe *); void do_el0_error(struct trapframe *); static void print_registers(struct trapframe *frame); @@ -130,23 +130,20 @@ cpu_fetch_syscall_args(struct thread *td #include "../../kern/subr_syscall.c" static void -svc_handler(struct trapframe *frame) +svc_handler(struct thread *td, struct trapframe *frame) { struct syscall_args sa; - struct thread *td; int error; - td = curthread; - error = syscallenter(td, &sa); syscallret(td, error, &sa); } static void -data_abort(struct trapframe *frame, uint64_t esr, uint64_t far, int lower) +data_abort(struct thread *td, struct trapframe *frame, uint64_t esr, + uint64_t far, int lower) { struct vm_map *map; - struct thread *td; struct proc *p; struct pcb *pcb; vm_prot_t ftype; @@ -167,7 +164,6 @@ data_abort(struct trapframe *frame, uint } #endif - td = curthread; pcb = td->td_pcb; /* @@ -261,7 +257,7 @@ print_registers(struct trapframe *frame) } void -do_el1h_sync(struct trapframe *frame) +do_el1h_sync(struct thread *td, struct trapframe *frame) { uint32_t exception; uint64_t esr, far; @@ -276,14 +272,14 @@ do_el1h_sync(struct trapframe *frame) #endif CTR4(KTR_TRAP, - "do_el1_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", - curthread, esr, frame->tf_elr, frame); + "do_el1_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", td, + esr, frame->tf_elr, frame); switch(exception) { case EXCP_FP_SIMD: case EXCP_TRAP_FP: #ifdef VFP - if ((curthread->td_pcb->pcb_fpflags & PCB_FP_KERN) != 0) { + if ((td->td_pcb->pcb_fpflags & PCB_FP_KERN) != 0) { vfp_restore_state(); } else #endif @@ -297,7 +293,7 @@ do_el1h_sync(struct trapframe *frame) case EXCP_DATA_ABORT: far = READ_SPECIALREG(far_el1); intr_enable(); - data_abort(frame, esr, far, 0); + data_abort(td, frame, esr, far, 0); break; case EXCP_BRK: #ifdef KDTRACE_HOOKS @@ -338,9 +334,8 @@ el0_excp_unknown(struct trapframe *frame } void -do_el0_sync(struct trapframe *frame) +do_el0_sync(struct thread *td, struct trapframe *frame) { - struct thread *td; uint32_t exception; uint64_t esr, far; @@ -349,9 +344,6 @@ do_el0_sync(struct trapframe *frame) ("Invalid pcpu address from userland: %p (tpidr %lx)", get_pcpu(), READ_SPECIALREG(tpidr_el1))); - td = curthread; - td->td_frame = frame; - esr = frame->tf_esr; exception = ESR_ELx_EXCEPTION(esr); switch (exception) { @@ -364,8 +356,8 @@ do_el0_sync(struct trapframe *frame) intr_enable(); CTR4(KTR_TRAP, - "do_el0_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", - curthread, esr, frame->tf_elr, frame); + "do_el0_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", td, esr, + frame->tf_elr, frame); switch(exception) { case EXCP_FP_SIMD: @@ -377,12 +369,12 @@ do_el0_sync(struct trapframe *frame) #endif break; case EXCP_SVC: - svc_handler(frame); + svc_handler(td, frame); break; case EXCP_INSN_ABORT_L: case EXCP_DATA_ABORT_L: case EXCP_DATA_ABORT: - data_abort(frame, esr, far, 1); + data_abort(td, frame, esr, far, 1); break; case EXCP_UNKNOWN: el0_excp_unknown(frame, far); @@ -418,10 +410,10 @@ do_el0_sync(struct trapframe *frame) break; } - KASSERT((curthread->td_pcb->pcb_fpflags & ~PCB_FP_USERMASK) == 0, + KASSERT((td->td_pcb->pcb_fpflags & ~PCB_FP_USERMASK) == 0, ("Kernel VFP flags set while entering userspace")); KASSERT( - curthread->td_pcb->pcb_fpusaved == &curthread->td_pcb->pcb_fpustate, + td->td_pcb->pcb_fpusaved == &td->td_pcb->pcb_fpustate, ("Kernel VFP state in use when entering userspace")); } From owner-svn-src-all@freebsd.org Thu Apr 20 13:57:55 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3EA77D48B1C; Thu, 20 Apr 2017 13:57:55 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0ED713D8; Thu, 20 Apr 2017 13:57:54 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KDvsDs017223; Thu, 20 Apr 2017 13:57:54 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KDvsSu017222; Thu, 20 Apr 2017 13:57:54 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704201357.v3KDvsSu017222@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 20 Apr 2017 13:57:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317193 - head/contrib/elftoolchain/elfcopy X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 13:57:55 -0000 Author: emaste Date: Thu Apr 20 13:57:53 2017 New Revision: 317193 URL: https://svnweb.freebsd.org/changeset/base/317193 Log: elfcopy: document --strip-symbols=filename in the man page Reported by: bz MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/elfcopy/elfcopy.1 Modified: head/contrib/elftoolchain/elfcopy/elfcopy.1 ============================================================================== --- head/contrib/elftoolchain/elfcopy/elfcopy.1 Thu Apr 20 13:56:30 2017 (r317192) +++ head/contrib/elftoolchain/elfcopy/elfcopy.1 Thu Apr 20 13:57:53 2017 (r317193) @@ -23,7 +23,7 @@ .\" .\" $Id: elfcopy.1 3426 2016-03-05 13:32:28Z emaste $ .\" -.Dd March 5, 2016 +.Dd April 20, 2017 .Os .Dt ELFCOPY 1 .Sh NAME @@ -83,6 +83,7 @@ .Op Fl -srec-forceS3 .Op Fl -srec-len Ns = Ns Ar val .Op Fl -strip-dwo +.Op Fl -strip-symbols= Ns Ar filename .Op Fl -strip-unneeded .Ar infile .Op Ar outfile @@ -339,6 +340,10 @@ This option is only meaningful when the .Dq srec . .It Fl -strip-dwo Do not copy .dwo debug sections to the output file. +.It Fl -strip-symbols= Ns Ar filename +Do not copy any of the symbols specified by +.Ar filename +to the output. .It Fl -strip-unneeded Do not copy symbols that are not needed for relocation processing. .El From owner-svn-src-all@freebsd.org Thu Apr 20 14:22:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81EE7D463E2; Thu, 20 Apr 2017 14:22:35 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5CFAB15EB; Thu, 20 Apr 2017 14:22:35 +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 v3KEMYK1029240; Thu, 20 Apr 2017 14:22:34 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KEMXU2029234; Thu, 20 Apr 2017 14:22:33 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201422.v3KEMXU2029234@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 14:22:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317194 - in head/usr.bin/diff: . tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 14:22:35 -0000 Author: bapt Date: Thu Apr 20 14:22:33 2017 New Revision: 317194 URL: https://svnweb.freebsd.org/changeset/base/317194 Log: Implement a basic --changed-group-format etcupdate(8) requires that option, while GNU diff supports many more variation of that options, their behaviour beside the simple verion implemented here are quite inconsistent as such I do not plan to implement those. The only special keyword supported by this implementation are: %< and %> %= is not implemented as the documentation of GNU diff says: common lines, but it actually when tested print the changes from the first file Added: head/usr.bin/diff/tests/group-format.out (contents, props changed) Modified: head/usr.bin/diff/diff.1 head/usr.bin/diff/diff.c head/usr.bin/diff/diff.h head/usr.bin/diff/diffreg.c head/usr.bin/diff/tests/Makefile head/usr.bin/diff/tests/diff_test.sh Modified: head/usr.bin/diff/diff.1 ============================================================================== --- head/usr.bin/diff/diff.1 Thu Apr 20 13:57:53 2017 (r317193) +++ head/usr.bin/diff/diff.1 Thu Apr 20 14:22:33 2017 (r317194) @@ -30,7 +30,7 @@ .\" @(#)diff.1 8.1 (Berkeley) 6/30/93 .\" $FreeBSD$ .\" -.Dd April 8, 2017 +.Dd April 20, 2017 .Dt DIFF 1 .Os .Sh NAME @@ -44,6 +44,7 @@ .Fl n | q | u .Oc .Op Fl -brief +.Op Fl -changed-group-format Ar GFMT .Op Fl -ed .Op Fl -expand-tabs .Op Fl -forward-ed @@ -70,6 +71,7 @@ .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern .Op Fl L Ar label | Fl -label Ar label .Op Fl -brief +.Op Fl -changed-group-format Ar GFMT .Op Fl -ed .Op Fl -expand-tabs .Op Fl -forward-ed @@ -94,6 +96,7 @@ .Op Fl abdiltw .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern .Op Fl -brief +.Op Fl -changed-group-format Ar GFMT .Op Fl -ed .Op Fl -expand-tabs .Op Fl -forward-ed @@ -119,6 +122,7 @@ .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern .Op Fl L Ar label | Fl -label Ar label .Op Fl -brief +.Op Fl -changed-group-format Ar GFMT .Op Fl -ed .Op Fl -expand-tabs .Op Fl -forward-ed @@ -146,6 +150,7 @@ .Fl n | q | u .Oc .Op Fl -brief +.Op Fl -changed-group-format Ar GFMT .Op Fl -context .Op Fl -ed .Op Fl -expand-tabs @@ -355,6 +360,16 @@ E.g., .Dq if (\ \&a == b \&) will compare equal to .Dq if(a==b) . +.It Fl -changed-group-format Ar GFMT +Format input groups in the provided +.Pp +the format is a string with special keywords: +.Bl -tag -width %< +.It %< +lines from FILE1 +.It %< +lines from FILE2 +.El .El .Pp Directory comparison options: Modified: head/usr.bin/diff/diff.c ============================================================================== --- head/usr.bin/diff/diff.c Thu Apr 20 13:57:53 2017 (r317193) +++ head/usr.bin/diff/diff.c Thu Apr 20 14:22:33 2017 (r317194) @@ -41,6 +41,7 @@ int lflag, Nflag, Pflag, rflag, sflag, int diff_format, diff_context, status, ignore_file_case; int tabsize = 8; char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; +char *group_format = NULL; struct stat stb1, stb2; struct excludes *excludes_list; regex_t ignore_re; @@ -54,6 +55,7 @@ enum { OPT_NORMAL, OPT_HORIZON_LINES, OPT_SPEED_LARGE_FILES, + OPT_CHANGED_GROUP_FORMAT, }; static struct option longopts[] = { @@ -89,6 +91,7 @@ static struct option longopts[] = { { "speed-large-files", no_argument, NULL, OPT_SPEED_LARGE_FILES}, { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR }, { "tabsize", optional_argument, NULL, OPT_TSIZE }, + { "changed-group-format", required_argument, NULL, OPT_CHANGED_GROUP_FORMAT}, { NULL, 0, 0, '\0'} }; @@ -227,6 +230,10 @@ main(int argc, char **argv) case 'x': push_excludes(optarg); break; + case OPT_CHANGED_GROUP_FORMAT: + diff_format = D_GFORMAT; + group_format = optarg; + break; case OPT_HORIZON_LINES: break; /* XXX TODO for compatibility with GNU diff3 */ case OPT_IGN_FN_CASE: Modified: head/usr.bin/diff/diff.h ============================================================================== --- head/usr.bin/diff/diff.h Thu Apr 20 13:57:53 2017 (r317193) +++ head/usr.bin/diff/diff.h Thu Apr 20 14:22:33 2017 (r317194) @@ -47,6 +47,7 @@ #define D_NREVERSE 5 /* Reverse ed script with numbered lines and no trailing . */ #define D_BRIEF 6 /* Say if the files differ */ +#define D_GFORMAT 7 /* Diff with defined changed group format */ /* * Output flags @@ -87,6 +88,7 @@ extern int lflag, Nflag, Pflag, rflag, s extern int diff_format, diff_context, status, ignore_file_case; extern int tabsize; extern char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; +extern char *group_format; extern struct stat stb1, stb2; extern struct excludes *excludes_list; extern regex_t ignore_re; Modified: head/usr.bin/diff/diffreg.c ============================================================================== --- head/usr.bin/diff/diffreg.c Thu Apr 20 13:57:53 2017 (r317193) +++ head/usr.bin/diff/diffreg.c Thu Apr 20 14:22:33 2017 (r317194) @@ -1008,7 +1008,7 @@ output(char *file1, FILE *f1, char *file } if (m == 0) change(file1, f1, file2, f2, 1, 0, 1, len[1], &flags); - if (diff_format == D_IFDEF) { + if (diff_format == D_IFDEF || diff_format == D_GFORMAT) { for (;;) { #define c i0 if ((c = getc(f1)) == EOF) @@ -1081,10 +1081,13 @@ change(char *file1, FILE *f1, char *file int *pflags) { static size_t max_context = 64; - int i; + long curpos; + int i, nc; + const char *walk; restart: - if (diff_format != D_IFDEF && a > b && c > d) + if ((diff_format != D_IFDEF || diff_format == D_GFORMAT) && + a > b && c > d) return; if (ignore_pats != NULL) { char *line; @@ -1181,12 +1184,38 @@ proceed: } break; } + if (diff_format == D_GFORMAT) { + curpos = ftell(f1); + /* print through if append (a>b), else to (nb: 0 vs 1 orig) */ + nc = ixold[a > b ? b : a - 1] - curpos; + for (i = 0; i < nc; i++) + diff_output("%c", getc(f1)); + for (walk = group_format; *walk != '\0'; walk++) { + if (*walk == '%') { + walk++; + switch (*walk) { + case '<': + fetch(ixold, a, b, f1, '<', 1, *pflags); + break; + case '>': + fetch(ixnew, c, d, f2, '>', 0, *pflags); + break; + default: + diff_output("%%%c", *walk); + break; + } + continue; + } + diff_output("%c", *walk); + } + } if (diff_format == D_NORMAL || diff_format == D_IFDEF) { fetch(ixold, a, b, f1, '<', 1, *pflags); if (a <= b && c <= d && diff_format == D_NORMAL) diff_output("---\n"); } - i = fetch(ixnew, c, d, f2, diff_format == D_NORMAL ? '>' : '\0', 0, *pflags); + if (diff_format != D_GFORMAT) + i = fetch(ixnew, c, d, f2, diff_format == D_NORMAL ? '>' : '\0', 0, *pflags); if (i != 0 && diff_format == D_EDIT) { /* * A non-zero return value for D_EDIT indicates that the @@ -1220,7 +1249,7 @@ fetch(long *f, int a, int b, FILE *lb, i * When doing #ifdef's, copy down to current line * if this is the first file, so that stuff makes it to output. */ - if (diff_format == D_IFDEF && oldfile) { + if ((diff_format == D_IFDEF) && oldfile) { long curpos = ftell(lb); /* print through if append (a>b), else to (nb: 0 vs 1 orig) */ nc = f[a > b ? b : a - 1] - curpos; @@ -1244,7 +1273,8 @@ fetch(long *f, int a, int b, FILE *lb, i for (i = a; i <= b; i++) { fseek(lb, f[i - 1], SEEK_SET); nc = f[i] - f[i - 1]; - if (diff_format != D_IFDEF && ch != '\0') { + if ((diff_format != D_IFDEF && diff_format != D_GFORMAT) && + ch != '\0') { diff_output("%c", ch); if (Tflag && (diff_format == D_NORMAL || diff_format == D_CONTEXT || diff_format == D_UNIFIED)) Modified: head/usr.bin/diff/tests/Makefile ============================================================================== --- head/usr.bin/diff/tests/Makefile Thu Apr 20 13:57:53 2017 (r317193) +++ head/usr.bin/diff/tests/Makefile Thu Apr 20 14:22:33 2017 (r317194) @@ -22,7 +22,8 @@ ${PACKAGE}FILES+= \ unified_9999.out \ header.out \ header_ns.out \ - ifdef.out + ifdef.out \ + group-format.out NETBSD_ATF_TESTS_SH+= netbsd_diff_test Modified: head/usr.bin/diff/tests/diff_test.sh ============================================================================== --- head/usr.bin/diff/tests/diff_test.sh Thu Apr 20 13:57:53 2017 (r317193) +++ head/usr.bin/diff/tests/diff_test.sh Thu Apr 20 14:22:33 2017 (r317194) @@ -5,6 +5,7 @@ atf_test_case unified atf_test_case header atf_test_case header_ns atf_test_case ifdef +atf_test_case group_format simple_body() { @@ -78,6 +79,15 @@ ifdef_body() "$(atf_get_srcdir)/input_c2.in" } +group_format_body() +{ + atf_check -o file:$(atf_get_srcdir)/group-format.out -s eq:1 \ + diff --changed-group-format='<<<<<<< (local) +%<======= +%>>>>>>>> (stock) +' "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in" +} + atf_init_test_cases() { atf_add_test_case simple @@ -85,4 +95,5 @@ atf_init_test_cases() atf_add_test_case header atf_add_test_case header_ns atf_add_test_case ifdef + atf_add_test_case group_format } Added: head/usr.bin/diff/tests/group-format.out ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/diff/tests/group-format.out Thu Apr 20 14:22:33 2017 (r317194) @@ -0,0 +1,27 @@ +/* + * A comment + * +<<<<<<< (local) + * And another bla +======= + * And another bla +>>>>>>> (stock) + * +<<<<<<< (local) + * And yet another +======= + * and yet another +>>>>>>> (stock) + */ + +int +main(void) +{ +<<<<<<< (local) +======= + +>>>>>>> (stock) + printf("something"); + + return (0); +} From owner-svn-src-all@freebsd.org Thu Apr 20 14:22:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CF77D46414 for ; Thu, 20 Apr 2017 14:22:47 +0000 (UTC) (envelope-from hope.brooks@intellectcrowd.com) Received: from mail-ua0-x246.google.com (mail-ua0-x246.google.com [IPv6:2607:f8b0:400c:c08::246]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 43AF0168E for ; Thu, 20 Apr 2017 14:22:47 +0000 (UTC) (envelope-from hope.brooks@intellectcrowd.com) Received: by mail-ua0-x246.google.com with SMTP id 75so17313251uak.19 for ; Thu, 20 Apr 2017 07:22:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intellectcrowd-com.20150623.gappssmtp.com; s=20150623; h=mime-version:message-id:date:subject:from:to; bh=EDh/HbW0xi6PeKWstu1vBFSX7R2AeUx1ZbmMQVblfqA=; b=OqFiKu29WxNXZvhsX3216tev4atHiHfU5QY/OOTNsgCYNrFrz0/zCvt/TSkERKssrA M3d1Ttn6kjedSWz+Omu2EICYrEpHzuDiZH3KpC5TG/SYWQ/x2d1ybMJ306CPnVcsMoUX jvBT7IvKnMy+2ca27xamjVHB+xX2nqlN+BYpGz0ve+EB+pL3xfXbv2vXtvMIGdy/dscN Z2iy42seicfxFGHhqy2WqvKTxrC/RPvn+3/9Kj699+p7kCLxPFjepvrwSCfeqdRR/M1H EqVDgTrESerIy7gzqlhJc2GhsJIWigsNznynzudllDX85YxrrQG2J6OznkCi4Ot+eKy8 Osrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:message-id:date:subject:from:to; bh=EDh/HbW0xi6PeKWstu1vBFSX7R2AeUx1ZbmMQVblfqA=; b=ckeujlPy2n7PkXZNC3rucnq5L0n6bQMgdKe5/RaUk1PSHa5GJf92z4PMI+X2iGHtdN 7yClGe6ySjH3A1sk96hcVmPvPiwCIjHu66hQ51MhyO4jJDt3m2GORQ06FsRxin3ZndTB Qx+T0X8kl+ntPAFqq58IuCTqFuKff/5MZqbPSsHtJJrfoJoVx6GKLkSVpb+OuTu2aX0h 6PJa/A9YFJ8IY8Wx9uYKXOvmfAIgM0nyXN3+kV0uQ66G0I59+goL8mq1ZrIX3RBGxSaU qTjqIYzb4mNIzSU1ZgauXpnNhwShqYvgaOIwUcMcLKfDSnvGk2Lyz8KBVG8rLIY4wsWL OLkg== X-Gm-Message-State: AN3rC/730gD2H2XDMESlcLH1XLGo5T3CB715+8CGONDeMYWY0Jkzkpd3 N2OseYeJLL3pSHYdi/UOU+ELTSguCQ== MIME-Version: 1.0 X-Received: by 10.31.142.78 with SMTP id q75mr2944115vkd.30.1492698165264; Thu, 20 Apr 2017 07:22:45 -0700 (PDT) Message-ID: <001a1143b426e5cc8e054d99df6a@google.com> Date: Thu, 20 Apr 2017 14:22:45 +0000 Subject: Juniper Networks Users list From: hope.brooks@intellectcrowd.com To: svn-src-all@freebsd.org Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 14:22:47 -0000 Hi, we would like to learn your interest in acquiring our recently updated *Juniper Networks Users list* which helps you to improve your business campaign. *We have other Innovation information also like:* F5, Avaya, IBM HP, Microsoft, DELL, Brocade, Cisco and many more. *Specialties:* Networking, Routers, Switches, Security, Junos Operating System, VPN, Junos Space, and Junos Pulse and so on. Please let me know your thoughts we will provide you the more information according to your criteria and interest. If you are not the right person to discuss this mail then feel freely to forward this mail to the right person in your organization. Thanks, Hope Brooks Marketing Analytics. From owner-svn-src-all@freebsd.org Thu Apr 20 15:06:17 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5EF2D488BB; Thu, 20 Apr 2017 15:06:17 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B21BA1F6F; Thu, 20 Apr 2017 15:06:17 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KF6Ghf047302; Thu, 20 Apr 2017 15:06:16 GMT (envelope-from cognet@FreeBSD.org) Received: (from cognet@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KF6G7c047301; Thu, 20 Apr 2017 15:06:16 GMT (envelope-from cognet@FreeBSD.org) Message-Id: <201704201506.v3KF6G7c047301@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cognet set sender to cognet@FreeBSD.org using -f From: Olivier Houchard Date: Thu, 20 Apr 2017 15:06:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317195 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 15:06:18 -0000 Author: cognet Date: Thu Apr 20 15:06:16 2017 New Revision: 317195 URL: https://svnweb.freebsd.org/changeset/base/317195 Log: Update comment ot reflect realilty, we know also take care of CPUs that provide a enable-method. Suggested by: jhibbits Modified: head/sys/dev/ofw/ofw_cpu.c Modified: head/sys/dev/ofw/ofw_cpu.c ============================================================================== --- head/sys/dev/ofw/ofw_cpu.c Thu Apr 20 14:22:33 2017 (r317194) +++ head/sys/dev/ofw/ofw_cpu.c Thu Apr 20 15:06:16 2017 (r317195) @@ -315,7 +315,8 @@ ofw_cpu_early_foreach(ofw_cpu_foreach_cb /* * If we are filtering by runnable then limit to only - * those that have been enabled. + * those that have been enabled, or do provide a method + * to enable them. */ if (only_runnable) { status[0] = '\0'; From owner-svn-src-all@freebsd.org Thu Apr 20 15:18:16 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83795D48B1E; Thu, 20 Apr 2017 15:18:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 55C007F1; Thu, 20 Apr 2017 15:18:16 +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 v3KFIFlg051663; Thu, 20 Apr 2017 15:18:15 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KFIFVk051662; Thu, 20 Apr 2017 15:18:15 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704201518.v3KFIFVk051662@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Apr 2017 15:18:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317196 - head/sys/dev/fb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 15:18:16 -0000 Author: kib Date: Thu Apr 20 15:18:15 2017 New Revision: 317196 URL: https://svnweb.freebsd.org/changeset/base/317196 Log: Write-combine framebuffer writes through user-space mappings, if possible. Note that KVA mapping of the framebuffer already uses write-combining mode, so the change, besides improving speed of user mode writes, also satisfies requirement of the IA32 architecture of using consistent caching modes for multiple mappings of the same page. Reported and tested by: bde Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/dev/fb/vesa.c Modified: head/sys/dev/fb/vesa.c ============================================================================== --- head/sys/dev/fb/vesa.c Thu Apr 20 15:06:16 2017 (r317195) +++ head/sys/dev/fb/vesa.c Thu Apr 20 15:18:15 2017 (r317196) @@ -1643,6 +1643,9 @@ vesa_mmap(video_adapter_t *adp, vm_ooffs if (offset > adp->va_window_size - PAGE_SIZE) return (-1); *paddr = adp->va_info.vi_buffer + offset; +#ifdef VM_MEMATTR_WRITE_COMBINING + *memattr = VM_MEMATTR_WRITE_COMBINING; +#endif return (0); } return ((*prevvidsw->mmap)(adp, offset, paddr, prot, memattr)); From owner-svn-src-all@freebsd.org Thu Apr 20 15:53:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5D7FD48AA8; Thu, 20 Apr 2017 15:53:21 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B79823CE; Thu, 20 Apr 2017 15:53:21 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KFrKdq068496; Thu, 20 Apr 2017 15:53:20 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KFrKaZ068495; Thu, 20 Apr 2017 15:53:20 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201704201553.v3KFrKaZ068495@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 20 Apr 2017 15:53:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317197 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 15:53:22 -0000 Author: andrew Date: Thu Apr 20 15:53:20 2017 New Revision: 317197 URL: https://svnweb.freebsd.org/changeset/base/317197 Log: Restrict the arm64 supervisor all instructions to only allow a zero immediate value for system calls. We may wish to use other values in the future for other purposes. MFC after: 1 week Sponsored by: DARPA, AFRL Modified: head/sys/arm64/arm64/trap.c Modified: head/sys/arm64/arm64/trap.c ============================================================================== --- head/sys/arm64/arm64/trap.c Thu Apr 20 15:18:15 2017 (r317196) +++ head/sys/arm64/arm64/trap.c Thu Apr 20 15:53:20 2017 (r317197) @@ -135,8 +135,13 @@ svc_handler(struct thread *td, struct tr struct syscall_args sa; int error; - error = syscallenter(td, &sa); - syscallret(td, error, &sa); + if ((frame->tf_esr & ESR_ELx_ISS_MASK) == 0) { + error = syscallenter(td, &sa); + syscallret(td, error, &sa); + } else { + call_trapsignal(td, SIGILL, ILL_ILLOPN, (void *)frame->tf_elr); + userret(td, frame); + } } static void From owner-svn-src-all@freebsd.org Thu Apr 20 16:08:42 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC1C5D4809B; Thu, 20 Apr 2017 16:08:42 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D24A01142; Thu, 20 Apr 2017 16:08:42 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3KG8UZp036366; Thu, 20 Apr 2017 09:08:30 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3KG8S7J036363; Thu, 20 Apr 2017 09:08:28 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704201608.v3KG8S7J036363@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317094 - head/share/mk In-Reply-To: <1934449.ZAthNnyNnu@ralph.baldwin.cx> To: John Baldwin Date: Thu, 20 Apr 2017 09:08:28 -0700 (PDT) CC: Ngie Cooper , Warner Losh , rgrimes@freebsd.org, Eric van Gyzen , Slawa Olhovchenkov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 16:08:43 -0000 > On Wednesday, April 19, 2017 03:51:24 PM Ngie Cooper wrote: > > > > > On Apr 19, 2017, at 15:22, Warner Losh wrote: > > > > ... > > > > >> Actually this is exactly what I would expect from Linux! > > >> > > >> Why do we need to pull the trigger on GDB other than to pull the trigger > > >> to say we are GPL free, if that is the reason then this is the wrong > > >> way to go about it. > > > > > > I think "gdb in base is horribly broken" is the real reason. You need > > > the port to do anything non-trivial these days. Well it seems it can do some rather important trivial things, like post mortem process kernel dumps during savecore processing helping users submit a kernel panic bugzilla with more than just traceback info. Lets see.. we need to ship a full set of kernel symbols with a distribution, but now we are gona rip out the debugger??? > > > Plus core set this as a goal for the project after it was clear that > > > was a consensus desire several years ago. Can't fault someone for > > > working towards that goal. I do not think Core set this as a goal, the developers did it at a summit, and that was really only adding "by 12.0" to a goal that has been with the project since... well.. 1.0! Removing gdb by calling it a port does not achive the desired goal, it simply makes our base system lacking a kernel debugger and oh, you have to go install port foo to get back what we have been shipping for 25 years, but look, we are GPL free!! Bullocks. > > +1 to Warner's sentiments. > > > > gdb in base doesn't work well with threads (6.x never did ;/..), and lacks support for other things (like python debugging). Being able to debug threads reliably is a make or break thing. > > > > So while I understand and in general agree with you Rod, I completely disagree on the practical end of things. I'm actually kind of curious as to why this isn't being done globally.. but I assume that it was described in one of the many threads some time ago about the status quo for debugging with gdb on tier-two architectures. This is not about debugging python or debugging threads, this is about kernel panics and post mortem processing of a crash dump so a user can submit a more detailed crash than just a trace back from the panic. > > As the commit message stated, gdb in ports doesn't yet include kgdb > support for ARM, and no one has tested the sparc64 support for gdb > in ports, so those two architectures remain on. For all other platforms, > gdb in ports is a strict superset of gdb in base. So in effect we are providing gdb in base for kgdb support of ARM and sparc but removing it from i386 and amd64, stopping things that worked in the name of what? This does not make us any closer to gpl free, breaks functional stuff, and makes us more like Linux and less like FreeBSD (no kernel debugger in base system). If this is a GPL free issue we could of done this with all the GPL code 20 years ago... I see no upside to this change, where is the upside? -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Thu Apr 20 16:34:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6C0CDD4872A; Thu, 20 Apr 2017 16:34:11 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2CBF41FA7; Thu, 20 Apr 2017 16:34:11 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KGYAKu085068; Thu, 20 Apr 2017 16:34:10 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KGYALk085066; Thu, 20 Apr 2017 16:34:10 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704201634.v3KGYALk085066@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Thu, 20 Apr 2017 16:34:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317198 - head/sys/dev/syscons X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 16:34:11 -0000 Author: bde Date: Thu Apr 20 16:34:09 2017 New Revision: 317198 URL: https://svnweb.freebsd.org/changeset/base/317198 Log: When the character width is 9, remove vertical lines in the mouse cursor corresponding to the gaps between characters. This fixes distortion of the cursor due to expanding it across the gaps. Again for character width 9, when the cursor characters are not in the graphics range (0xb0-0xdf), the gaps were always there (filled in the background color for the previous char). They still look strange, but don't cause distortion. When the cursor characters are in the graphics range, the gaps are filled by repeating the previous line. This gives distortion with cilia. Removing vertical lines reduces the distortion to vertical cilia. Move the default for the cursor characters out of the graphics range. With character width 9, this gives gaps instead of distortion and other problems. With character width 8, it just fixes a smaller set of other problems. Some distortion and other problems can be recovered using vidcontrol -M. Presumably the default was to fill the gaps intentionally, but it is much better to leave gaps. The gaps can even be considered as a feature for text processing -- they give sub-pointers to character boundaries. The other problems are: (1) with character width 9, characters near the cursor are moved into the graphics range and thus distorted if any of their 8th bits is set; (2) conflicts with national characters in the graphics range. The default range for the graphics cursor characters is now 8-11. This doesn't conflict with anything, since the glyphs for the characters in this range are unreachable. Use the 10x16 mouse cursor in text mode too (if the font size is >= 14). When the character width is 9, removal of 1 or 2 vertical lines makes 10x16 cursor no wider than the 9x13 one usually was. We could even handle cursors 1 pixel wider in 2 character cells and gaps without more clipping than given by the gaps (the worst case is 1 pixel in the left cell, 1 removed in the middle gap, 8 in the right cell and 1 removed in the right gap. The pixel in the right gap is removed so it doesn't matter if it is in the font). When the character width is 8, we now clip the 10-wide cursor by 1 pixel in the worst case. This clipping is usually invisible since it is of the border and and the border usually merges with the background so is invisible. There should be an option to use reverse video to highlight the border and its tip instead of the interior (graphics mode can do better using separate colors). This needs the 9x13 cursor again. Ideas from: ache (especially about the bad default character range) Modified: head/sys/dev/syscons/scvgarndr.c head/sys/dev/syscons/syscons.h Modified: head/sys/dev/syscons/scvgarndr.c ============================================================================== --- head/sys/dev/syscons/scvgarndr.c Thu Apr 20 15:53:20 2017 (r317197) +++ head/sys/dev/syscons/scvgarndr.c Thu Apr 20 16:34:09 2017 (r317198) @@ -173,8 +173,7 @@ static const struct mousedata mouse9x13 0x0c00, 0x0c00, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000, }, 9, 13, }; -#endif -#if defined(SC_PIXEL_MODE) + static const struct mousedata mouse10x16 = { { 0xc000, 0xa000, 0x9000, 0x8800, 0x8400, 0x8200, 0x8100, 0x8080, 0x8040, 0x83c0, 0x9200, 0xa900, 0xc900, 0x0480, 0x0480, 0x0300, }, { @@ -412,6 +411,7 @@ draw_txtmouse(scr_stat *scp, int x, int #ifndef SC_ALT_MOUSE_IMAGE if (ISMOUSEAVAIL(scp->sc->adp->va_flags)) { const struct mousedata *mdp; + uint32_t border, interior; u_char font_buf[128]; u_short cursor[32]; u_char c; @@ -420,7 +420,7 @@ draw_txtmouse(scr_stat *scp, int x, int int crtc_addr; int i; - mdp = &mouse9x13; + mdp = (scp->font_size < 14) ? &mouse9x13 : &mouse10x16; /* prepare mousepointer char's bitmaps */ pos = (y/scp->font_size - scp->yoff)*scp->xsize + x/8 - scp->xoff; @@ -443,9 +443,23 @@ draw_txtmouse(scr_stat *scp, int x, int xoffset = x%8; yoffset = y%scp->font_size; for (i = 0; i < 16; ++i) { - cursor[i + yoffset] = - (cursor[i + yoffset] & ~(mdp->md_border[i] >> xoffset)) - | (mdp->md_interior[i] >> xoffset); + border = mdp->md_border[i] << 8; /* avoid right shifting out */ + interior = mdp->md_interior[i] << 8; + border >>= xoffset; /* normalize */ + interior >>= xoffset; + if (scp->sc->adp->va_flags & V_ADP_CWIDTH9) { + /* skip gaps between characters */ + border = (border & 0xff0000) | + (border & 0x007f80) << 1 | + (border & 0x00003f) << 2; + interior = (interior & 0xff0000) | + (interior & 0x007f80) << 1 | + (interior & 0x00003f) << 2; + } + border >>= 8; /* back to normal position */ + interior >>= 8; + cursor[i + yoffset] = (cursor[i + yoffset] & ~border) | + interior; } for (i = 0; i < scp->font_size; ++i) { font_buf[i] = (cursor[i] & 0xff00) >> 8; Modified: head/sys/dev/syscons/syscons.h ============================================================================== --- head/sys/dev/syscons/syscons.h Thu Apr 20 15:53:20 2017 (r317197) +++ head/sys/dev/syscons/syscons.h Thu Apr 20 16:34:09 2017 (r317198) @@ -68,11 +68,11 @@ #endif #ifndef SC_CURSOR_CHAR -#define SC_CURSOR_CHAR (0x07) +#define SC_CURSOR_CHAR 7 #endif #ifndef SC_MOUSE_CHAR -#define SC_MOUSE_CHAR (0xd0) +#define SC_MOUSE_CHAR 8 #endif #if SC_MOUSE_CHAR <= SC_CURSOR_CHAR && SC_CURSOR_CHAR < (SC_MOUSE_CHAR + 4) From owner-svn-src-all@freebsd.org Thu Apr 20 16:58:18 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E78FBD4839B; Thu, 20 Apr 2017 16:58:18 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A6D6218D8; Thu, 20 Apr 2017 16:58:18 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 4CE5710A7B9; Thu, 20 Apr 2017 12:58:17 -0400 (EDT) From: John Baldwin To: rgrimes@freebsd.org Cc: Ngie Cooper , Warner Losh , Eric van Gyzen , Slawa Olhovchenkov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers Subject: Re: svn commit: r317094 - head/share/mk Date: Thu, 20 Apr 2017 09:58:10 -0700 Message-ID: <15726118.uZgJrz4zO8@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <201704201608.v3KG8S7J036363@pdx.rh.CN85.dnsmgr.net> References: <201704201608.v3KG8S7J036363@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Thu, 20 Apr 2017 12:58:17 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 16:58:19 -0000 On Thursday, April 20, 2017 09:08:28 AM Rodney W. Grimes wrote: > > On Wednesday, April 19, 2017 03:51:24 PM Ngie Cooper wrote: > > > > > > > On Apr 19, 2017, at 15:22, Warner Losh wrote: > > > > > > ... > > > > > > >> Actually this is exactly what I would expect from Linux! > > > >> > > > >> Why do we need to pull the trigger on GDB other than to pull the trigger > > > >> to say we are GPL free, if that is the reason then this is the wrong > > > >> way to go about it. > > > > > > > > I think "gdb in base is horribly broken" is the real reason. You need > > > > the port to do anything non-trivial these days. > > Well it seems it can do some rather important trivial things, like post > mortem process kernel dumps during savecore processing helping users > submit a kernel panic bugzilla with more than just traceback info. Only somewhat. You should actually try to use kgdb and compare it to the kgdb in ports. > Removing gdb by calling it a port does not achive the desired goal, it > simply makes our base system lacking a kernel debugger and oh, you > have to go install port foo to get back what we have been shipping for > 25 years, but look, we are GPL free!! Bullocks. If we could import GPLv3 code into our tree then /usr/bin/gdb would match what is in ports (as I would have imported it by now), but that isn't a viable option due to non-technical issues. > > > +1 to Warner's sentiments. > > > > > > gdb in base doesn't work well with threads (6.x never did ;/..), and lacks support for other things (like python debugging). Being able to debug threads reliably is a make or break thing. > > > > > > So while I understand and in general agree with you Rod, I completely disagree on the practical end of things. I'm actually kind of curious as to why this isn't being done globally.. but I assume that it was described in one of the many threads some time ago about the status quo for debugging with gdb on tier-two architectures. > > This is not about debugging python or debugging threads, this is about > kernel panics and post mortem processing of a crash dump so a user can > submit a more detailed crash than just a trace back from the panic. Again, you should try to use the tools before arguing the theoretical point. Even the stack traces are better with kgdb from ports since it understands inlined function calls and tail calls that gdb 6.x does not. Even code generated by gcc-4.2 (much less modern compilers) is easier to debug with non-ancient gdb. > > As the commit message stated, gdb in ports doesn't yet include kgdb > > support for ARM, and no one has tested the sparc64 support for gdb > > in ports, so those two architectures remain on. For all other platforms, > > gdb in ports is a strict superset of gdb in base. > > So in effect we are providing gdb in base for kgdb support > of ARM and sparc but removing it from i386 and amd64, stopping > things that worked in the name of what? This does not make > us any closer to gpl free, breaks functional stuff, and makes > us more like Linux and less like FreeBSD (no kernel debugger in > base system). We still have DDB in base, so not quite at zero. > If this is a GPL free issue we could of done this with all the GPL code 20 > years ago... > > I see no upside to this change, where is the upside? Because people type in 'gdb' and get an inferior debugging experience relative to other systems. Also, /usr/bin/gdb doesn't support 64-bit ARM or RISCV (and never will). That support will only be in the ports gdb. At some point ARM support for FreeBSD will be upstreamed at which point I will also add kgdb support to gdb in ports for ARM (which will permit cross-debugging, something /usr/bin/gdb doesn't do). For example, if you try to use /usr/bin/gdb on 32-bit MIPS it gets confused thinking it should use 64-bit registers and gives you utter garbage for register values. That makes it 100% useless for kernels, userland, or anything else. For 64-bit mips /usr/bin/gdb frequently crashed when I tried to use it. We can't pull back fixes from the vendor and I for one am not going to fork gplv2 GDB and maintain it. Instead, I've put my time and effort into adding kernel support to modern GDB and upstreaming support for MIPS (and probably other platforms in the future) to modern GDB. Another route for folks who want to spend time contributing to a solution is to contribute to lldb. At the moment it doesn't support floating-point/SSE/AVX on amd64, doesn't have a framework (even on Linux or OS X) for debugging across forks, and doesn't have support for several architectures (i386, mips, riscv, sparc64). It also doesn't support kernel debugging. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Apr 20 17:02:57 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1B53D48652; Thu, 20 Apr 2017 17:02:57 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5D3771F3E; Thu, 20 Apr 2017 17:02:57 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1d1FTq-0008Uz-3c; Thu, 20 Apr 2017 20:02:54 +0300 Date: Thu, 20 Apr 2017 20:02:54 +0300 From: Slawa Olhovchenkov To: John Baldwin Cc: rgrimes@freebsd.org, Ngie Cooper , Warner Losh , Eric van Gyzen , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , src-committers Subject: Re: svn commit: r317094 - head/share/mk Message-ID: <20170420170253.GR70430@zxy.spb.ru> References: <201704201608.v3KG8S7J036363@pdx.rh.CN85.dnsmgr.net> <15726118.uZgJrz4zO8@ralph.baldwin.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <15726118.uZgJrz4zO8@ralph.baldwin.cx> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 17:02:57 -0000 On Thu, Apr 20, 2017 at 09:58:10AM -0700, John Baldwin wrote: > > Well it seems it can do some rather important trivial things, like post > > mortem process kernel dumps during savecore processing helping users > > submit a kernel panic bugzilla with more than just traceback info. > > Only somewhat. You should actually try to use kgdb and compare it to the > kgdb in ports. I am don't see many difference: both do strange results, both crashed. For kernel and userland too. From owner-svn-src-all@freebsd.org Thu Apr 20 17:22:04 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82A81D48D6B; Thu, 20 Apr 2017 17:22:04 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 35EDFF3A; Thu, 20 Apr 2017 17:22:04 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KHM3qa005532; Thu, 20 Apr 2017 17:22:03 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KHM3CY005531; Thu, 20 Apr 2017 17:22:03 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704201722.v3KHM3CY005531@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Thu, 20 Apr 2017 17:22:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317199 - head/sys/dev/syscons X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 17:22:04 -0000 Author: bde Date: Thu Apr 20 17:22:03 2017 New Revision: 317199 URL: https://svnweb.freebsd.org/changeset/base/317199 Log: Eliminate the ega renderer switch. It did nothing useful except hold a pointer to the main ega drawing method which is misoptimized be in a different function than the main vga planar mode drawing method. Vga initialization handles everything with no extra code except for selecting the different function. Modified: head/sys/dev/syscons/scvgarndr.c Modified: head/sys/dev/syscons/scvgarndr.c ============================================================================== --- head/sys/dev/syscons/scvgarndr.c Thu Apr 20 16:34:09 2017 (r317198) +++ head/sys/dev/syscons/scvgarndr.c Thu Apr 20 17:22:03 2017 (r317199) @@ -111,19 +111,6 @@ RENDERER(ega, 0, txtrndrsw, vga_set); RENDERER(vga, 0, txtrndrsw, vga_set); #ifdef SC_PIXEL_MODE -static sc_rndr_sw_t egarndrsw = { - (vr_init_t *)vga_nop, - vga_pxlclear_planar, - vga_pxlborder_planar, - vga_egadraw, - vga_pxlcursor_shape, - vga_pxlcursor_planar, - vga_pxlblink_planar, - (vr_set_mouse_t *)vga_nop, - vga_pxlmouse_planar, -}; -RENDERER(ega, PIXEL_MODE, egarndrsw, vga_set); - static sc_rndr_sw_t vgarndrsw = { vga_rndrinit, (vr_clear_t *)vga_nop, @@ -135,6 +122,7 @@ static sc_rndr_sw_t vgarndrsw = { (vr_set_mouse_t *)vga_nop, (vr_draw_mouse_t *)vga_nop, }; +RENDERER(ega, PIXEL_MODE, vgarndrsw, vga_set); RENDERER(vga, PIXEL_MODE, vgarndrsw, vga_set); #endif /* SC_PIXEL_MODE */ @@ -536,7 +524,10 @@ vga_rndrinit(scr_stat *scp) if (scp->sc->adp->va_info.vi_mem_model == V_INFO_MM_PLANAR) { scp->rndr->clear = vga_pxlclear_planar; scp->rndr->draw_border = vga_pxlborder_planar; - scp->rndr->draw = vga_vgadraw_planar; + if (scp->sc->adp->va_type == KD_VGA) + scp->rndr->draw = vga_egadraw; + else + scp->rndr->draw = vga_vgadraw_planar; scp->rndr->draw_cursor = vga_pxlcursor_planar; scp->rndr->blink_cursor = vga_pxlblink_planar; scp->rndr->draw_mouse = vga_pxlmouse_planar; From owner-svn-src-all@freebsd.org Thu Apr 20 17:43:26 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92F90D485C3; Thu, 20 Apr 2017 17:43:26 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4B08C1F4D; Thu, 20 Apr 2017 17:43:26 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KHhPxH014444; Thu, 20 Apr 2017 17:43:25 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KHhPdG014442; Thu, 20 Apr 2017 17:43:25 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704201743.v3KHhPdG014442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 20 Apr 2017 17:43:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317200 - head/lib/libthread_db X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 17:43:26 -0000 Author: pfg Date: Thu Apr 20 17:43:25 2017 New Revision: 317200 URL: https://svnweb.freebsd.org/changeset/base/317200 Log: libthread_db: unsign map_len and use reallocarray(3). Lengths are not negative, so map_len should be unsigned. Unsign the corresponding indexes too and bring a small use of reallocarray(3). Reorder the memset to be consistent with the realloc: it appears we were only clearing half the memory in pt_map_thread(). MFC after: 2 weeks Modified: head/lib/libthread_db/libpthread_db.c head/lib/libthread_db/libpthread_db.h Modified: head/lib/libthread_db/libpthread_db.c ============================================================================== --- head/lib/libthread_db/libpthread_db.c Thu Apr 20 17:22:03 2017 (r317199) +++ head/lib/libthread_db/libpthread_db.c Thu Apr 20 17:43:25 2017 (r317200) @@ -74,7 +74,8 @@ pt_map_thread(const td_thragent_t *const { td_thragent_t *ta = __DECONST(td_thragent_t *, const_ta); struct pt_map *new; - int i, first = -1; + int first = -1; + unsigned int i; /* leave zero out */ for (i = 1; i < ta->map_len; ++i) { @@ -94,12 +95,12 @@ pt_map_thread(const td_thragent_t *const ta->map_len = 20; first = 1; } else { - new = realloc(ta->map, - sizeof(struct pt_map) * ta->map_len * 2); + new = reallocarray(ta->map, ta->map_len, + 2 * sizeof(struct pt_map)); if (new == NULL) return (-1); - memset(new + ta->map_len, '\0', sizeof(struct pt_map) * - ta->map_len); + memset(new + ta->map_len, '\0', ta->map_len * + 2 * sizeof(struct pt_map)); first = ta->map_len; ta->map = new; ta->map_len *= 2; @@ -1047,7 +1048,7 @@ pt_thr_sstep(const td_thrhandle_t *th, i static void pt_unmap_lwp(const td_thragent_t *ta, lwpid_t lwp) { - int i; + unsigned int i; for (i = 0; i < ta->map_len; ++i) { if (ta->map[i].type == PT_LWP && ta->map[i].lwp == lwp) { Modified: head/lib/libthread_db/libpthread_db.h ============================================================================== --- head/lib/libthread_db/libpthread_db.h Thu Apr 20 17:22:03 2017 (r317199) +++ head/lib/libthread_db/libpthread_db.h Thu Apr 20 17:43:25 2017 (r317200) @@ -77,7 +77,7 @@ struct td_thragent { int thread_off_sigmask; int thread_off_sigpend; struct pt_map *map; - int map_len; + unsigned int map_len; }; void pt_md_init(void); From owner-svn-src-all@freebsd.org Thu Apr 20 17:49:38 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F0B35D48859; Thu, 20 Apr 2017 17:49:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C0F743E1; Thu, 20 Apr 2017 17:49:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KHnbH7014708; Thu, 20 Apr 2017 17:49:37 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KHnbJi014707; Thu, 20 Apr 2017 17:49:37 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704201749.v3KHnbJi014707@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 20 Apr 2017 17:49:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317201 - head/lib/libthread_db X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 17:49:39 -0000 Author: pfg Date: Thu Apr 20 17:49:37 2017 New Revision: 317201 URL: https://svnweb.freebsd.org/changeset/base/317201 Log: libpthread_db: leave the memset size from unchanged. The size for the memset in pt_map_thread() shouldn't actually match the reallocarray() so undo that part of r317200. X-MFC with: r317200 Modified: head/lib/libthread_db/libpthread_db.c Modified: head/lib/libthread_db/libpthread_db.c ============================================================================== --- head/lib/libthread_db/libpthread_db.c Thu Apr 20 17:43:25 2017 (r317200) +++ head/lib/libthread_db/libpthread_db.c Thu Apr 20 17:49:37 2017 (r317201) @@ -100,7 +100,7 @@ pt_map_thread(const td_thragent_t *const if (new == NULL) return (-1); memset(new + ta->map_len, '\0', ta->map_len * - 2 * sizeof(struct pt_map)); + sizeof(struct pt_map)); first = ta->map_len; ta->map = new; ta->map_len *= 2; From owner-svn-src-all@freebsd.org Thu Apr 20 17:55:00 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 620F3D48AB2; Thu, 20 Apr 2017 17:55:00 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 342F9BD4; Thu, 20 Apr 2017 17:55:00 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KHsxm1018663; Thu, 20 Apr 2017 17:54:59 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KHsxBt018662; Thu, 20 Apr 2017 17:54:59 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704201754.v3KHsxBt018662@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 20 Apr 2017 17:54:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317202 - head/lib/libthread_db X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 17:55:00 -0000 Author: pfg Date: Thu Apr 20 17:54:59 2017 New Revision: 317202 URL: https://svnweb.freebsd.org/changeset/base/317202 Log: Revert r317201 to fix the log. Modified: head/lib/libthread_db/libpthread_db.c Modified: head/lib/libthread_db/libpthread_db.c ============================================================================== --- head/lib/libthread_db/libpthread_db.c Thu Apr 20 17:49:37 2017 (r317201) +++ head/lib/libthread_db/libpthread_db.c Thu Apr 20 17:54:59 2017 (r317202) @@ -100,7 +100,7 @@ pt_map_thread(const td_thragent_t *const if (new == NULL) return (-1); memset(new + ta->map_len, '\0', ta->map_len * - sizeof(struct pt_map)); + 2 * sizeof(struct pt_map)); first = ta->map_len; ta->map = new; ta->map_len *= 2; From owner-svn-src-all@freebsd.org Thu Apr 20 17:58:28 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76DE5D48C33; Thu, 20 Apr 2017 17:58:28 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 473A3EA4; Thu, 20 Apr 2017 17:58:28 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KHwRI1018863; Thu, 20 Apr 2017 17:58:27 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KHwRiX018862; Thu, 20 Apr 2017 17:58:27 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704201758.v3KHwRiX018862@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 20 Apr 2017 17:58:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317203 - head/lib/libthread_db X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 17:58:28 -0000 Author: pfg Date: Thu Apr 20 17:58:27 2017 New Revision: 317203 URL: https://svnweb.freebsd.org/changeset/base/317203 Log: libpthread_db: undo the memset size change. I inadvertedly soubled the size of the memset without noticing the start address had changed. The size for the memset in pt_map_thread() shouldn't actually match the reallocarray() so undo that part of r317200. This is a re-commit of r317201 to clarify the log. X-MFC with: r317200 Modified: head/lib/libthread_db/libpthread_db.c Modified: head/lib/libthread_db/libpthread_db.c ============================================================================== --- head/lib/libthread_db/libpthread_db.c Thu Apr 20 17:54:59 2017 (r317202) +++ head/lib/libthread_db/libpthread_db.c Thu Apr 20 17:58:27 2017 (r317203) @@ -100,7 +100,7 @@ pt_map_thread(const td_thragent_t *const if (new == NULL) return (-1); memset(new + ta->map_len, '\0', ta->map_len * - 2 * sizeof(struct pt_map)); + sizeof(struct pt_map)); first = ta->map_len; ta->map = new; ta->map_len *= 2; From owner-svn-src-all@freebsd.org Thu Apr 20 18:06:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 14436D480E9; Thu, 20 Apr 2017 18:06:11 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) by mx1.freebsd.org (Postfix) with ESMTP id 707A21698; Thu, 20 Apr 2017 18:06:10 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r317171 - head/sys/dev/vt To: Ed Maste Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" References: <201704192221.v3JMLFPs032866@repo.freebsd.org> From: Jung-uk Kim Message-ID: Date: Thu, 20 Apr 2017 14:06:05 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.0.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="D0KmnD46FDVDbQwhX8VS1ukwMSaGJh2TI" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 18:06:11 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --D0KmnD46FDVDbQwhX8VS1ukwMSaGJh2TI Content-Type: multipart/mixed; boundary="jf1OklO0u8PlVmebFFV2M1uGAAfLQrsTc"; protected-headers="v1" From: Jung-uk Kim To: Ed Maste Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Message-ID: Subject: Re: svn commit: r317171 - head/sys/dev/vt References: <201704192221.v3JMLFPs032866@repo.freebsd.org> In-Reply-To: --jf1OklO0u8PlVmebFFV2M1uGAAfLQrsTc Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: quoted-printable On 04/19/2017 22:22, Ed Maste wrote: > On 19 April 2017 at 18:21, Jung-uk Kim wrote: >> Author: jkim >> Date: Wed Apr 19 22:21:15 2017 >> New Revision: 317171 >> URL: https://svnweb.freebsd.org/changeset/base/317171 >> >> Log: >> Micro-optimize vt_set_border(). >=20 > I expect we'll eventually have vt drivers that have a non-trivial > vd_drawrect, making the previous implementation preferable. Can you > comment a bit more on this change? Maybe but I haven't seen much improvement in the area for many years. Do you have any reason to believe someone is working on it? Even if we have such backend, I don't expect much difference in drawing small area, i.e., redrawing narrow borders. On top of that, I don't like "if (vd->vd_driver->vd_drawrect =3D=3D NULL) return (ENOTSUP)" stuff= =2E Jung-uk Kim --jf1OklO0u8PlVmebFFV2M1uGAAfLQrsTc-- --D0KmnD46FDVDbQwhX8VS1ukwMSaGJh2TI Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEl1bqgKaRyqfWXu/CfJ+WJvzb8UYFAlj4+JEACgkQfJ+WJvzb 8UZoagf/TKXZZ6KWkbrn10rmyHg8P/F8ZkrKoSf3vG8LqG97VnqzQOrf5hyHvsm8 LjmYLjHAAwpQ85rcxb57YIwPNMMmz4KaP5C5ys8hVtLUq42umeTTwokHlQAQCQMu y7D8V4C8ehZY5pZj5uzowdXWdcPJrs/8V8tSydbBCYTI0YDKFynhHqjcvlhWuh2x 7Ro9z5EO09OjA3JkMGW+SWbshpqBpxO69c9gO7wba5/VkLSsJ1mGgmEGDizbvhxJ Vib67EMw1yMf90AElqIQNDLfyzvNBkk/kiYEFZfT46ULxOsmBV6rNzhM0/o1qOeN H5bj7W6p8tn1DLVkb4V0vemMi8fr5w== =IDVM -----END PGP SIGNATURE----- --D0KmnD46FDVDbQwhX8VS1ukwMSaGJh2TI-- From owner-svn-src-all@freebsd.org Thu Apr 20 18:21:51 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C86B1D48681; Thu, 20 Apr 2017 18:21:51 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 74A1511A; Thu, 20 Apr 2017 18:21:51 +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 v3KILovr027734; Thu, 20 Apr 2017 18:21:50 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KILo9O027729; Thu, 20 Apr 2017 18:21:50 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201821.v3KILo9O027729@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 18:21:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317204 - in head: . etc/mtree share/colldef share/ctypedef share/monetdef share/msgdef share/numericdef tools/build/mk tools/tools/locale tools/tools/locale/etc tools/tools/locale/etc/... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 18:21:51 -0000 Author: bapt Date: Thu Apr 20 18:21:50 2017 New Revision: 317204 URL: https://svnweb.freebsd.org/changeset/base/317204 Log: Readd Big5: some large databases setup are still requiring it. Reported by: "å¼µå›å¤©(Chun-Tien Chang)" Added: head/share/colldef/zh_TW.Big5.src - copied unchanged from r315567, head/share/colldef/zh_TW.Big5.src head/share/ctypedef/zh_TW.Big5.src - copied unchanged from r315567, head/share/ctypedef/zh_TW.Big5.src head/share/monetdef/zh_TW.Big5.src - copied unchanged from r315567, head/share/monetdef/zh_TW.Big5.src head/share/msgdef/zh_TW.Big5.src - copied unchanged from r315567, head/share/msgdef/zh_TW.Big5.src head/share/numericdef/zh_TW.Big5.src - copied unchanged from r315567, head/share/numericdef/zh_TW.Big5.src head/tools/tools/locale/etc/charmaps/Big5.TXT - copied unchanged from r315566, head/tools/tools/locale/etc/charmaps/Big5.TXT head/tools/tools/locale/etc/final-maps/map.Big5 - copied unchanged from r315566, head/tools/tools/locale/etc/final-maps/map.Big5 Modified: head/ObsoleteFiles.inc head/etc/mtree/BSD.usr.dist head/share/colldef/Makefile head/share/ctypedef/Makefile head/share/monetdef/Makefile head/share/msgdef/Makefile head/share/numericdef/Makefile head/tools/build/mk/OptionalObsoleteFiles.inc head/tools/tools/locale/Makefile head/tools/tools/locale/etc/charmaps.xml head/tools/tools/locale/tools/convert_map.pl head/tools/tools/locale/tools/finalize Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Thu Apr 20 17:58:27 2017 (r317203) +++ head/ObsoleteFiles.inc Thu Apr 20 18:21:50 2017 (r317204) @@ -63,14 +63,6 @@ OLD_FILES+=usr/tests/lib/libc/locale/io_ # 20170319: remove nls for non supported Big5* locales OLD_DIRS+=usr/share/nls/zh_HK.Big5HKSCS OLD_DIRS+=usr/share/nls/zh_TW.Big5 -# 20170319: Remove zh_TW.Big5 -OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_COLLATE -OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_CTYPE -OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_MESSAGES -OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_MONETARY -OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_NUMERIC -OLD_FILES+=usr/share/locale/zh_TW.Big5/LC_TIME -OLD_DIRS+=usr/share/locale/zh_TW.Big5 # 20170313: move .../sys/geom/eli/... to .../sys/geom/class/eli/... OLD_FILES+=usr/tests/sys/geom/eli/pbkdf2/pbkdf2 OLD_FILES+=usr/tests/sys/geom/eli/pbkdf2/Kyuafile Modified: head/etc/mtree/BSD.usr.dist ============================================================================== --- head/etc/mtree/BSD.usr.dist Thu Apr 20 17:58:27 2017 (r317203) +++ head/etc/mtree/BSD.usr.dist Thu Apr 20 18:21:50 2017 (r317204) @@ -897,6 +897,8 @@ .. zh_HK.UTF-8 .. + zh_TW.Big5 + .. zh_TW.UTF-8 .. .. Modified: head/share/colldef/Makefile ============================================================================== --- head/share/colldef/Makefile Thu Apr 20 17:58:27 2017 (r317203) +++ head/share/colldef/Makefile Thu Apr 20 18:21:50 2017 (r317204) @@ -5,7 +5,7 @@ LOCALEDIR= ${SHAREDIR}/locale FILESNAME= LC_COLLATE .SUFFIXES: .src .LC_COLLATE -MAPLOC= ${.CURDIR}/../../tools/tools/locale/etc/final-maps +MAPLOC= ${SRCTOP}/tools/tools/locale/etc/final-maps .src.LC_COLLATE: localedef -D -U -i ${.IMPSRC} \ @@ -158,6 +158,7 @@ LOCALES+= sr_RS.ISO8859-2 LOCALES+= sr_RS.ISO8859-5 LOCALES+= zh_CN.GB2312 LOCALES+= zh_CN.eucCN +LOCALES+= zh_TW.Big5 LOCALES+= zh_CN.GB18030 LOCALES+= zh_CN.GBK LOCALES+= ja_JP.eucJP Copied: head/share/colldef/zh_TW.Big5.src (from r315567, head/share/colldef/zh_TW.Big5.src) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/colldef/zh_TW.Big5.src Thu Apr 20 18:21:50 2017 (r317204, copy of r315567, head/share/colldef/zh_TW.Big5.src) @@ -0,0 +1,16033 @@ +# Warning: Do not edit. This is automatically extracted +# from CLDR project data, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +comment_char * +escape_char / +LC_COLLATE +************* + + + +* Define collation weights as symbols + +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 19:05:44 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB765D48621; Thu, 20 Apr 2017 19:05:44 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7AD07353; Thu, 20 Apr 2017 19:05:44 +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 v3KJ5hM9047784; Thu, 20 Apr 2017 19:05:43 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KJ5h7k047783; Thu, 20 Apr 2017 19:05:43 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201905.v3KJ5h7k047783@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 19:05:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317205 - head/usr.bin/diff X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 19:05:44 -0000 Author: bapt Date: Thu Apr 20 19:05:43 2017 New Revision: 317205 URL: https://svnweb.freebsd.org/changeset/base/317205 Log: Document all long options Modified: head/usr.bin/diff/diff.1 Modified: head/usr.bin/diff/diff.1 ============================================================================== --- head/usr.bin/diff/diff.1 Thu Apr 20 18:21:50 2017 (r317204) +++ head/usr.bin/diff/diff.1 Thu Apr 20 19:05:43 2017 (r317205) @@ -195,7 +195,7 @@ No output is produced if the files are i .Pp Output options (mutually exclusive): .Bl -tag -width Ds -.It Fl C Ar number +.It Fl C Ar number Fl -context Ar number Like .Fl c but produces a diff with @@ -223,7 +223,7 @@ both files with .Sq !\ \& . Changes which lie within 3 lines of each other are grouped together on output. -.It Fl D Ar string +.It Fl D Ar string Fl -ifdef Ar string Creates a merged version of .Ar file1 and @@ -237,7 +237,7 @@ while defining .Ar string will yield .Ar file2 . -.It Fl e +.It Fl e -ed Produces output in a form suitable as input for the editor utility, .Xr ed 1 , which can then be used to convert file1 into file2. @@ -251,7 +251,7 @@ from their state in .Ar dir1 to their state in .Ar dir2 . -.It Fl f +.It Fl f -forward-ed Identical output to that of the .Fl e flag, but in reverse order. @@ -264,10 +264,10 @@ but in the opposite order and with a cou insert or delete command. This is the form used by .Xr rcsdiff 1 . -.It Fl q +.It Fl q -brief Just print a line when the files differ. Does not output a list of changes. -.It Fl U Ar number +.It Fl U Ar number Fl -unified Ar number Like .Fl u but produces a diff with @@ -288,7 +288,7 @@ a single section. .Pp Comparison options: .Bl -tag -width Ds -.It Fl a +.It Fl a -text Treat all files as .Tn ASCII text. @@ -303,11 +303,11 @@ to produce a diff. .It Fl b Causes trailing blanks (spaces and tabs) to be ignored, and other strings of blanks to compare equal. -.It Fl d +.It Fl d -minimal Try very hard to produce a diff as small as possible. This may consume a lot of processing power and memory when processing large files with many changes. -.It Fl I Ar pattern +.It Fl I Ar pattern Fl -ignore-matching-lines Ar pattern Ignores changes, insertions, and deletions whose lines match the extended regular expression .Ar pattern . @@ -319,32 +319,32 @@ ignored. See .Xr re_format 7 for more information on regular expression patterns. -.It Fl i +.It Fl i -ignore-case Ignores the case of letters. E.g., .Dq A will compare equal to .Dq a . -.It Fl l +.It Fl l -paginate Pass the output through .Xr pr 1 to paginate it. -.It Fl L Ar label +.It Fl L Ar label Fl -label Ar label Print .Ar label instead of the first (and second, if this option is specified twice) file name and time in the context or unified diff header. -.It Fl p +.It Fl p -show-c-function With unified and context diffs, show with each change the first 40 characters of the last line before the context beginning with a letter, an underscore or a dollar sign. For C source code following standard layout conventions, this will show the prototype of the function the change applies to. -.It Fl T +.It Fl T -initial-tab Print a tab rather than a space before the rest of the line for the normal, context or unified output formats. This makes the alignment of tabs in the line consistent. -.It Fl t +.It Fl t -expand-tabs Will expand tabs in output lines. Normal or .Fl c @@ -352,9 +352,9 @@ output adds character(s) to the front of the indentation of the original source lines and make the output listing difficult to interpret. This option will preserve the original source's indentation. -.It Fl w +.It Fl w -ignore-all-blanks Is similar to -.Fl b +.Fl b -ignore-space-change but causes whitespace (blanks and tabs) to be totally ignored. E.g., .Dq if (\ \&a == b \&) @@ -370,40 +370,52 @@ lines from FILE1 .It %< lines from FILE2 .El +.It Fl -ignore-file-name-case +ignore case when comparing file names +.It Fl -no-ignore-file-name-case +do not ignore case wen comparing file names (default) +.It Fl -normal +default diff output +.It Fl -speed-large-files +stub option for compatibility with GNU diff +.It Fl -strip-trailing-cr +strip carriage return on input files +.It Fl tabsize Ar number +Number of spaces representing a tab (default 8) .El .Pp Directory comparison options: .Bl -tag -width Ds -.It Fl N +.It Fl N -new-file If a file is found in only one directory, act as if it was found in the other directory too but was of zero size. -.It Fl P +.It Fl P -unidirectional-new-file If a file is found only in .Ar dir2 , act as if it was found in .Ar dir1 too but was of zero size. -.It Fl r +.It Fl r -recursive Causes application of .Nm recursively to common subdirectories encountered. -.It Fl S Ar name +.It Fl S Ar name Fl -starting-file Ar name Re-starts a directory .Nm in the middle, beginning with file .Ar name . -.It Fl s +.It Fl s -report-identical-files Causes .Nm to report files which are the same, which are otherwise not mentioned. -.It Fl X Ar file +.It Fl X Ar file Fl -exclude-from Ar file Exclude files and subdirectories from comparison whose basenames match lines in .Ar file . Multiple .Fl X options may be specified. -.It Fl x Ar pattern +.It Fl x Ar pattern Fl -exclude Ar pattern Exclude files and subdirectories from comparison whose basenames match .Ar pattern . Patterns are matched using shell-style globbing via @@ -451,7 +463,7 @@ The default (without .Fl e , .Fl c , or -.Fl n +.Fl n -rcs .\" -C options) output contains lines of these forms, where From owner-svn-src-all@freebsd.org Thu Apr 20 19:07:53 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AEA7D4877C; Thu, 20 Apr 2017 19:07:53 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 37C597D6; Thu, 20 Apr 2017 19:07:53 +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 v3KJ7q5n047902; Thu, 20 Apr 2017 19:07:52 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KJ7qO9047901; Thu, 20 Apr 2017 19:07:52 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201907.v3KJ7qO9047901@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 19:07:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317206 - head/usr.bin/diff X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 19:07:53 -0000 Author: bapt Date: Thu Apr 20 19:07:52 2017 New Revision: 317206 URL: https://svnweb.freebsd.org/changeset/base/317206 Log: Update the TODO list to reflect what has been changed Modified: head/usr.bin/diff/TODO Modified: head/usr.bin/diff/TODO ============================================================================== --- head/usr.bin/diff/TODO Thu Apr 20 19:05:43 2017 (r317205) +++ head/usr.bin/diff/TODO Thu Apr 20 19:07:52 2017 (r317206) @@ -5,14 +5,14 @@ * make a libsdiff and use that directly to avoid duplicating the code to be implemented: ---suppress-common-lines: depends on -y --ignore-blank-lines --horizon-lines --ignore-tab-expansion --line-format Will probably be not implemented: ---GTYPE-group-format +--GTYPE-group-format (partially implement - minimal) --LTYPE-line-format ---speed-large-file: (Do we need that? only a stub?) --help (We have a manpage already) +--suppress-common-lines: depends on -y (won't be implemented, as it conflicts +the way sdiff expects it and in any case we have sdiff for that feature) From owner-svn-src-all@freebsd.org Thu Apr 20 19:14:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41B6BD48BF2; Thu, 20 Apr 2017 19:14:54 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0E9A6DDF; Thu, 20 Apr 2017 19:14:53 +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 v3KJEr0b052309; Thu, 20 Apr 2017 19:14:53 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KJEr0g052308; Thu, 20 Apr 2017 19:14:53 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201914.v3KJEr0g052308@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 19:14:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317207 - head/usr.bin/diff X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 19:14:54 -0000 Author: bapt Date: Thu Apr 20 19:14:52 2017 New Revision: 317207 URL: https://svnweb.freebsd.org/changeset/base/317207 Log: Cross reference pr(1) which diff might call with -l option Modified: head/usr.bin/diff/diff.1 Modified: head/usr.bin/diff/diff.1 ============================================================================== --- head/usr.bin/diff/diff.1 Thu Apr 20 19:07:52 2017 (r317206) +++ head/usr.bin/diff/diff.1 Thu Apr 20 19:14:52 2017 (r317207) @@ -583,6 +583,7 @@ An error occurred. .Xr diff3 1 , .Xr ed 1 , .Xr patch 1 , +.Xr pr 1 , .Xr sdiff 1 .Rs .%A James W. Hunt From owner-svn-src-all@freebsd.org Thu Apr 20 19:19:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 44F89D48DC8; Thu, 20 Apr 2017 19:19:35 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 221E8C5; Thu, 20 Apr 2017 19:19:35 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KJJYi1052653; Thu, 20 Apr 2017 19:19:34 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KJJYko052651; Thu, 20 Apr 2017 19:19:34 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201704201919.v3KJJYko052651@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 20 Apr 2017 19:19:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317208 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 19:19:35 -0000 Author: tuexen Date: Thu Apr 20 19:19:33 2017 New Revision: 317208 URL: https://svnweb.freebsd.org/changeset/base/317208 Log: Syncoockies can be used in combination with the syncache. If the cache overflows, syncookies are used. This patch restricts the usage of syncookies in this case: accept syncookies only if there was an overflow of the syncache recently. This mitigates a problem reported in PR217637, where is syncookie was accepted without any recent drops. Thanks to glebius@ for suggesting an improvement. PR: 217637 Reviewed by: gnn, glebius MFC after: 1 week Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D10272 Modified: head/sys/netinet/tcp_syncache.c head/sys/netinet/tcp_syncache.h Modified: head/sys/netinet/tcp_syncache.c ============================================================================== --- head/sys/netinet/tcp_syncache.c Thu Apr 20 19:14:52 2017 (r317207) +++ head/sys/netinet/tcp_syncache.c Thu Apr 20 19:19:33 2017 (r317208) @@ -260,6 +260,7 @@ syncache_init(void) &V_tcp_syncache.hashbase[i].sch_mtx, 0); V_tcp_syncache.hashbase[i].sch_length = 0; V_tcp_syncache.hashbase[i].sch_sc = &V_tcp_syncache; + V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; } /* Create the syncache entry zone. */ @@ -335,6 +336,7 @@ syncache_insert(struct syncache *sc, str KASSERT(!TAILQ_EMPTY(&sch->sch_bucket), ("sch->sch_length incorrect")); sc2 = TAILQ_LAST(&sch->sch_bucket, sch_head); + sch->sch_last_overflow = time_uptime; syncache_drop(sc2, sch); TCPSTAT_INC(tcps_sc_bucketoverflow); } @@ -974,10 +976,13 @@ syncache_expand(struct in_conninfo *inc, /* * There is no syncache entry, so see if this ACK is * a returning syncookie. To do this, first: - * A. See if this socket has had a syncache entry dropped in - * the past. We don't want to accept a bogus syncookie - * if we've never received a SYN. - * B. check that the syncookie is valid. If it is, then + * A. Check if syncookies are used in case of syncache + * overflows + * B. See if this socket has had a syncache entry dropped in + * the recent past. We don't want to accept a bogus + * syncookie if we've never received a SYN or accept it + * twice. + * C. check that the syncookie is valid. If it is, then * cobble up a fake syncache entry, and return. */ if (!V_tcp_syncookies) { @@ -988,6 +993,15 @@ syncache_expand(struct in_conninfo *inc, s, __func__); goto failed; } + if (!V_tcp_syncookiesonly && + sch->sch_last_overflow < time_uptime - SYNCOOKIE_LIFETIME) { + SCH_UNLOCK(sch); + if ((s = tcp_log_addrs(inc, th, NULL, NULL))) + log(LOG_DEBUG, "%s; %s: Spurious ACK, " + "segment rejected (no syncache entry)\n", + s, __func__); + goto failed; + } bzero(&scs, sizeof(scs)); sc = syncookie_lookup(inc, sch, &scs, th, to, *lsop); SCH_UNLOCK(sch); @@ -1411,8 +1425,10 @@ syncache_add(struct in_conninfo *inc, st * entry and insert the new one. */ TCPSTAT_INC(tcps_sc_zonefail); - if ((sc = TAILQ_LAST(&sch->sch_bucket, sch_head)) != NULL) + if ((sc = TAILQ_LAST(&sch->sch_bucket, sch_head)) != NULL) { + sch->sch_last_overflow = time_uptime; syncache_drop(sc, sch); + } sc = uma_zalloc(V_tcp_syncache.zone, M_NOWAIT | M_ZERO); if (sc == NULL) { if (V_tcp_syncookies) { Modified: head/sys/netinet/tcp_syncache.h ============================================================================== --- head/sys/netinet/tcp_syncache.h Thu Apr 20 19:14:52 2017 (r317207) +++ head/sys/netinet/tcp_syncache.h Thu Apr 20 19:19:33 2017 (r317208) @@ -99,6 +99,7 @@ struct syncache_head { int sch_nextc; u_int sch_length; struct tcp_syncache *sch_sc; + time_t sch_last_overflow; }; #define SYNCOOKIE_SECRET_SIZE 16 From owner-svn-src-all@freebsd.org Thu Apr 20 19:24:53 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 57C70D484A6; Thu, 20 Apr 2017 19:24:53 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1B15991D; Thu, 20 Apr 2017 19:24:53 +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 v3KJOqYa056435; Thu, 20 Apr 2017 19:24:52 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KJOpxR056429; Thu, 20 Apr 2017 19:24:51 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201924.v3KJOpxR056429@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 19:24:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317209 - in head: . gnu/usr.bin gnu/usr.bin/diff usr.bin X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 19:24:53 -0000 Author: bapt Date: Thu Apr 20 19:24:51 2017 New Revision: 317209 URL: https://svnweb.freebsd.org/changeset/base/317209 Log: Replace again GNU diff with BSD diff After a firts failed attempt, BSD diff is now good enough to replace GNU diff. Relnotes: yes Deleted: head/gnu/usr.bin/diff/ Modified: head/Makefile.inc1 head/ObsoleteFiles.inc head/UPDATING head/gnu/usr.bin/Makefile head/usr.bin/Makefile Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu Apr 20 19:19:33 2017 (r317208) +++ head/Makefile.inc1 Thu Apr 20 19:24:51 2017 (r317209) @@ -1972,7 +1972,7 @@ native-xtools: .PHONY ${_clang} \ sbin/md5 \ sbin/sysctl \ - gnu/usr.bin/diff \ + usr.bin/diff \ usr.bin/awk \ usr.bin/basename \ usr.bin/bmake \ Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Thu Apr 20 19:19:33 2017 (r317208) +++ head/ObsoleteFiles.inc Thu Apr 20 19:24:51 2017 (r317209) @@ -38,6 +38,8 @@ # xargs -n1 | sort | uniq -d; # done +# 20170420: remove GNU diff +OLD_FILES+=usr/share/man/man7/diff.7.gz # 20170322: rename to _test to match the FreeBSD test suite name scheme OLD_FILES+=usr/tests/usr.bin/col/col OLD_FILES+=usr/tests/usr.bin/diff/diff Modified: head/UPDATING ============================================================================== --- head/UPDATING Thu Apr 20 19:19:33 2017 (r317208) +++ head/UPDATING Thu Apr 20 19:24:51 2017 (r317209) @@ -51,6 +51,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 ****************************** SPECIAL WARNING: ****************************** +20170420: + GNU diff has been replaced by a BSD licensed diff. Some features of GNU + diff has not been implemented, if those are needed a newer version of + GNU diff is available via the diffutils package under the gdiff name. + 20170413: As of r316810 for ipfilter, keep frags is no longer assumed when keep state is specified in a rule. r316810 aligns ipfilter with Modified: head/gnu/usr.bin/Makefile ============================================================================== --- head/gnu/usr.bin/Makefile Thu Apr 20 19:19:33 2017 (r317208) +++ head/gnu/usr.bin/Makefile Thu Apr 20 19:24:51 2017 (r317209) @@ -17,7 +17,7 @@ SUBDIR_DEPEND_gdb= binutils .endif SUBDIR.${MK_GCC}+= cc -SUBDIR.${MK_GNU_DIFF}+= diff diff3 +SUBDIR.${MK_GNU_DIFF}+= diff3 SUBDIR.${MK_GNU_GREP}+= grep SUBDIR.${MK_GPL_DTC}+= dtc SUBDIR.${MK_TESTS}+= tests Modified: head/usr.bin/Makefile ============================================================================== --- head/usr.bin/Makefile Thu Apr 20 19:19:33 2017 (r317208) +++ head/usr.bin/Makefile Thu Apr 20 19:24:51 2017 (r317209) @@ -34,6 +34,7 @@ SUBDIR= alias \ csplit \ ctlstat \ cut \ + diff \ dirname \ du \ elf2aout \ From owner-svn-src-all@freebsd.org Thu Apr 20 19:29:37 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20F3BD48816; Thu, 20 Apr 2017 19:29:37 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E72BEBB0; Thu, 20 Apr 2017 19:29:36 +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 v3KJTaXm056652; Thu, 20 Apr 2017 19:29:36 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KJTawx056651; Thu, 20 Apr 2017 19:29:36 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201929.v3KJTawx056651@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 19:29:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317210 - head/gnu/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 19:29:37 -0000 Author: bapt Date: Thu Apr 20 19:29:35 2017 New Revision: 317210 URL: https://svnweb.freebsd.org/changeset/base/317210 Log: Only build libreadline for gdb, binutils actually does not need it Modified: head/gnu/lib/Makefile Modified: head/gnu/lib/Makefile ============================================================================== --- head/gnu/lib/Makefile Thu Apr 20 19:24:51 2017 (r317209) +++ head/gnu/lib/Makefile Thu Apr 20 19:29:35 2017 (r317210) @@ -7,10 +7,7 @@ SUBDIR.${MK_DIALOG}+= libdialog SUBDIR.${MK_GCC}+= libgcov libgomp SUBDIR.${MK_SSP}+= libssp SUBDIR.${MK_TESTS}+= tests - -.if ${MK_BINUTILS} != "no" && ${MK_GDB} != "no" -SUBDIR+= libreadline -.endif +SUBDIR.${MK_GDB}+= libreadline .if ${MK_GNU_DIFF} != "no" || ${MK_GNU_GREP} != "no" || \ ${MK_GNU_GREP_COMPAT} != "no" || ${MK_GDB} != "no" From owner-svn-src-all@freebsd.org Thu Apr 20 19:33:01 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1236D489BE; Thu, 20 Apr 2017 19:33:01 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9D917FE5; Thu, 20 Apr 2017 19:33:01 +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 v3KJX0O0060330; Thu, 20 Apr 2017 19:33:00 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KJX09g060329; Thu, 20 Apr 2017 19:33:00 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201704201933.v3KJX09g060329@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Apr 2017 19:33:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317211 - head/gnu/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 19:33:01 -0000 Author: bapt Date: Thu Apr 20 19:33:00 2017 New Revision: 317211 URL: https://svnweb.freebsd.org/changeset/base/317211 Log: GNU diff is done and GNU diff3 is not using libgnuregex, so no need to condition the build of libgnuregex anymore on WITHOUT_GNU_DIFF Modified: head/gnu/lib/Makefile Modified: head/gnu/lib/Makefile ============================================================================== --- head/gnu/lib/Makefile Thu Apr 20 19:29:35 2017 (r317210) +++ head/gnu/lib/Makefile Thu Apr 20 19:33:00 2017 (r317211) @@ -9,8 +9,8 @@ SUBDIR.${MK_SSP}+= libssp SUBDIR.${MK_TESTS}+= tests SUBDIR.${MK_GDB}+= libreadline -.if ${MK_GNU_DIFF} != "no" || ${MK_GNU_GREP} != "no" || \ - ${MK_GNU_GREP_COMPAT} != "no" || ${MK_GDB} != "no" +.if ${MK_GNU_GREP} != "no" || ${MK_GNU_GREP_COMPAT} != "no" || \ + ${MK_GDB} != "no" SUBDIR+= libregex .endif From owner-svn-src-all@freebsd.org Thu Apr 20 20:02:19 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 766C7D479C1; Thu, 20 Apr 2017 20:02:19 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 08E0F973; Thu, 20 Apr 2017 20:02:19 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-wm0-x244.google.com with SMTP id z129so543345wmb.1; Thu, 20 Apr 2017 13:02:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=4eTa0i9wy9FugigJHQYpPD2vnLHnInaRAs8ERdk9Kq8=; b=E0DF+PoRuaHufzrxPkN/SnsDq73az+I3glqAo57Cn1fMqiTn08RpyvOHQiOHi6x45w 0tRsEeWC2Yk/Tbw9x4lY85ybR6KcjGtRbikWQvGwMB19KUJtfLWsljE14p97S/JIRcKL KzcDjdEcXBI1SCmJbhRPkGt4YzTHowJiaqClKl0TK1skYKK+ilv6elknsZRsrUTeTt3+ jB6HipcJsMhvhp3zosjbdLA/+Ju879vREFEbsZIP25kPj5yxIusQXePdHLrfMYbO8NzL s8rDNYrknQgxnp9Dj/MMByZut3HKrxTIoxiz7by9phEeLLDIV10tnOboga4wHz8d3zmf 9yCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=4eTa0i9wy9FugigJHQYpPD2vnLHnInaRAs8ERdk9Kq8=; b=Ljdc8f0Yc5iD0Q9s4uAImeiHoyhtWsbb0r4WTZQ0cYTpTxKe3RTKdouGecRK5B751k Saj+1NT6nkhDXsto/OMsYLYbIzVaS5T7WQHol7TsPO5KJfgHtBgsqnK+/qQrKvOv1/wv +c0LOb9Q3sQ41Jf432Q3SWkzs85YWv+pX5hMkUN4TWstQ0AydTfG7G6LsHjx4WxOHClE HsK2MR7jmJoPTdaPweqFCpxCWBfPH7PTw9NaVhQPegMML7lOr78MHzfmnYp16cIEyuVS 0Ynk4fQmQTWdsMseY8MdnULIkYmnByh+CtfbF73l6vpeLSXu3L6IBtigDoaQdqIP2BAa K/iQ== X-Gm-Message-State: AN3rC/6mBc5UP1+l6Z0aGsxrORSElzKjzU1w91tTY7k5ZEhyzHLI4Nit msIRwMwnJQrggA== X-Received: by 10.28.143.71 with SMTP id r68mr5053851wmd.61.1492718537079; Thu, 20 Apr 2017 13:02:17 -0700 (PDT) Received: from brick (cpc92310-cmbg19-2-0-cust934.5-4.cable.virginm.net. [82.9.227.167]) by smtp.gmail.com with ESMTPSA id k4sm222918wmf.12.2017.04.20.13.02.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Apr 2017 13:02:16 -0700 (PDT) Sender: =?UTF-8?Q?Edward_Tomasz_Napiera=C5=82a?= Date: Thu, 20 Apr 2017 21:02:14 +0100 From: Edward Tomasz Napierala To: Bruce Evans Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316941 - head/sys/kern Message-ID: <20170420200214.GA1717@brick> Mail-Followup-To: Bruce Evans , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201704142015.v3EKFYWA017623@repo.freebsd.org> <20170415064658.L4428@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170415064658.L4428@besplex.bde.org> User-Agent: Mutt/1.8.0 (2017-02-23) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 20:02:19 -0000 On 0415T0736, Bruce Evans wrote: > On Fri, 14 Apr 2017, Edward Tomasz Napierala wrote: > > > Log: > > Don't try to write out bufs that have already failed with ENXIO. > > This fixes some panics after disconnecting mounted disks. > > > > Submitted by: imp (slightly different version, which I've then lost) > > Reviewed by: kib, imp, mckusick > > MFC after: 2 weeks > > Differential Revision: https://reviews.freebsd.org/D9674 > > > > Modified: > > head/sys/kern/vfs_bio.c > > > > Modified: head/sys/kern/vfs_bio.c > > ============================================================================== > > --- head/sys/kern/vfs_bio.c Fri Apr 14 20:15:17 2017 (r316940) > > +++ head/sys/kern/vfs_bio.c Fri Apr 14 20:15:34 2017 (r316941) > > @@ -2290,18 +2290,28 @@ brelse(struct buf *bp) > > bdirty(bp); > > } > > if (bp->b_iocmd == BIO_WRITE && (bp->b_ioflags & BIO_ERROR) && > > + (bp->b_error != ENXIO || !LIST_EMPTY(&bp->b_dep)) && > > !(bp->b_flags & B_INVAL)) { > > /* > > - * Failed write, redirty. Must clear BIO_ERROR to prevent > > - * pages from being scrapped. > > + * Failed write, redirty. All errors except ENXIO (which > > + * means the device is gone) are expected to be potentially > > + * transient - underlying media might work if tried again > > + * after EIO, and memory might be available after an ENOMEM. > > + * > > + * Do this also for buffers that failed with ENXIO, but have > > + * non-empty dependencies - the soft updates code might need > > + * to access the buffer to untangle them. > > + * > > + * Must clear BIO_ERROR to prevent pages from being scrapped. > > */ > > This is hard to fix, but I have used a version that only retries after > EIO for 15-20 years. I didn't think of ENOMEM. > > The media is unlikely to come back after EIO too. For removable media, > you might be able to get the write done to new media, but a panic reading > from the new media is just as likely. Geom "tasting" might prevent the > new media being used. I think media that actually disappeared will eventually result in ENXIO. That's what GEOMs return when they "wither". > ENXIO is actually the one error that can often be recovered from. I > wrote a form of "tasting" in a toy OS 30-35 years ago. It handled > removal of "mounted" disks with pending writes too well, in a way that > made recovery from non-transient I/O errors almost impossible without > turning off the system. ENXIO was treated as a transient I/O error. > It was recovered from perfectly if the user could find the original > media and unremove it. The "tasting" usually worked to detect different > media and disallow writing cached data to a different disk. Media > errors were common, and when one occurred for writing the method of > replacing the disk by a garbage one did't work since it was a different > disk. The most common one was writing to a write protected disk, and > that was recoverable by removing the write protection. But often you > really didn't want to write to that disk, but wanted to write somewhere. > The only way to continue was to reboot to discard the write. Hah. I actually wrote something similar for FreeBSD: gmountver(8). It's a GEOM class that simply passes BIOs to the lower layer, except when it returns EIO or ENXIO - when that happens it queues the BIO in its queue, closes the provider, and then when it comes back it reattaches and resubmits the BIOs. It might actually be useful again due to not always reliable SD cards one might use for rootfs on Raspberry Pi, for example. From owner-svn-src-all@freebsd.org Thu Apr 20 20:06:52 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F221D47A5E; Thu, 20 Apr 2017 20:06:52 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 456FEB57; Thu, 20 Apr 2017 20:06:52 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KK6pwq072794; Thu, 20 Apr 2017 20:06:51 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KK6p8D072793; Thu, 20 Apr 2017 20:06:51 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201704202006.v3KK6p8D072793@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Thu, 20 Apr 2017 20:06:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317212 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 20:06:52 -0000 Author: trasz Date: Thu Apr 20 20:06:51 2017 New Revision: 317212 URL: https://svnweb.freebsd.org/changeset/base/317212 Log: Mention GEOM_MOUNTVER. MFC after: 2 weeks Modified: head/share/man/man4/geom.4 Modified: head/share/man/man4/geom.4 ============================================================================== --- head/share/man/man4/geom.4 Thu Apr 20 19:33:00 2017 (r317211) +++ head/share/man/man4/geom.4 Thu Apr 20 20:06:51 2017 (r317212) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 8, 2015 +.Dd April 20, 2017 .Dt GEOM 4 .Os .Sh NAME @@ -55,6 +55,7 @@ .Cd options GEOM_MAP .Cd options GEOM_MBR .Cd options GEOM_MIRROR +.Cd options GEOM_MOUNTVER .Cd options GEOM_MULTIPATH .Cd options GEOM_NOP .Cd options GEOM_PART_APM From owner-svn-src-all@freebsd.org Thu Apr 20 20:46:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CCB1ED48933; Thu, 20 Apr 2017 20:46:35 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 939681222; Thu, 20 Apr 2017 20:46:35 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KKkYRH088968; Thu, 20 Apr 2017 20:46:34 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KKkYlK088967; Thu, 20 Apr 2017 20:46:34 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201704202046.v3KKkYlK088967@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Thu, 20 Apr 2017 20:46:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317213 - head/sys/cam/scsi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 20:46:35 -0000 Author: scottl Date: Thu Apr 20 20:46:34 2017 New Revision: 317213 URL: https://svnweb.freebsd.org/changeset/base/317213 Log: Reorder the minimum_cmd_size code to make it a little smaller and easier to read. Modified: head/sys/cam/scsi/scsi_da.c Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Thu Apr 20 20:06:51 2017 (r317212) +++ head/sys/cam/scsi/scsi_da.c Thu Apr 20 20:46:34 2017 (r317213) @@ -2500,17 +2500,15 @@ daregister(struct cam_periph *periph, vo /* * 6, 10, 12 and 16 are the currently permissible values. */ - if (softc->minimum_cmd_size < 6) - softc->minimum_cmd_size = 6; - else if ((softc->minimum_cmd_size > 6) - && (softc->minimum_cmd_size <= 10)) - softc->minimum_cmd_size = 10; - else if ((softc->minimum_cmd_size > 10) - && (softc->minimum_cmd_size <= 12)) - softc->minimum_cmd_size = 12; - else if (softc->minimum_cmd_size > 12) + if (softc->minimum_cmd_size > 12) softc->minimum_cmd_size = 16; - + else if (softc->minimum_cmd_size > 10) + softc->minimum_cmd_size = 12; + else if (softc->minimum_cmd_size > 6) + softc->minimum_cmd_size = 10; + else + softc->minimum_cmd_size = 6; + /* Predict whether device may support READ CAPACITY(16). */ if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3 && (softc->quirks & DA_Q_NO_RC16) == 0) { From owner-svn-src-all@freebsd.org Thu Apr 20 21:00:05 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6586DD48D21; Thu, 20 Apr 2017 21:00: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 mx1.freebsd.org (Postfix) with ESMTPS id 37742194C; Thu, 20 Apr 2017 21:00: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 v3KL04lI093296; Thu, 20 Apr 2017 21:00:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KL04wq093295; Thu, 20 Apr 2017 21:00:04 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202100.v3KL04wq093295@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:00:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317214 - head/lib/clang/include/llvm/Config X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:00:05 -0000 Author: dim Date: Thu Apr 20 21:00:04 2017 New Revision: 317214 URL: https://svnweb.freebsd.org/changeset/base/317214 Log: Turn off llvm/clang's ENABLE_BACKTRACES setting, since it never worked properly anyway. (Upstream has reorganized this somewhat in the mean time, but for proper backtraces we would need llvm-symbolizer in base.) MFC after: 3 days Modified: head/lib/clang/include/llvm/Config/config.h Modified: head/lib/clang/include/llvm/Config/config.h ============================================================================== --- head/lib/clang/include/llvm/Config/config.h Thu Apr 20 20:46:34 2017 (r317213) +++ head/lib/clang/include/llvm/Config/config.h Thu Apr 20 21:00:04 2017 (r317214) @@ -12,7 +12,7 @@ #define BUG_REPORT_URL "https://bugs.freebsd.org/submit/" /* Define to 1 to enable backtraces, and to 0 otherwise. */ -#define ENABLE_BACKTRACES 1 +#define ENABLE_BACKTRACES 0 /* Define to 1 to enable crash overrides, and to 0 otherwise. */ #define ENABLE_CRASH_OVERRIDES 1 From owner-svn-src-all@freebsd.org Thu Apr 20 21:00:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 05E7DD48D41; Thu, 20 Apr 2017 21:00:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CC7C1196E; Thu, 20 Apr 2017 21:00:10 +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 v3KL09ej093346; Thu, 20 Apr 2017 21:00:09 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KL0938093345; Thu, 20 Apr 2017 21:00:09 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202100.v3KL0938093345@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:00:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317215 - head/lib/clang X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:00:11 -0000 Author: dim Date: Thu Apr 20 21:00:09 2017 New Revision: 317215 URL: https://svnweb.freebsd.org/changeset/base/317215 Log: Add function and data sections when building llvm, clang, lld and lldb, and allow the linker to garbage collect them. This shaves off up to a few MB from the final executables. MFC after: 3 days Modified: head/lib/clang/llvm.build.mk Modified: head/lib/clang/llvm.build.mk ============================================================================== --- head/lib/clang/llvm.build.mk Thu Apr 20 21:00:04 2017 (r317214) +++ head/lib/clang/llvm.build.mk Thu Apr 20 21:00:09 2017 (r317215) @@ -40,6 +40,10 @@ CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\" CFLAGS+= -DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" CFLAGS+= -DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\" +CFLAGS+= -ffunction-sections +CFLAGS+= -fdata-sections +LDFLAGS+= -Wl,--gc-sections + CXXFLAGS+= -std=c++11 CXXFLAGS+= -fno-exceptions CXXFLAGS+= -fno-rtti From owner-svn-src-all@freebsd.org Thu Apr 20 21:02:01 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 29392D48E2D; Thu, 20 Apr 2017 21:02:01 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EF9661E84; Thu, 20 Apr 2017 21:02:00 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KL20tK097355; Thu, 20 Apr 2017 21:02:00 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KL20O2097354; Thu, 20 Apr 2017 21:02:00 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704202102.v3KL20O2097354@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 20 Apr 2017 21:02:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317216 - head/lib/libthread_db X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:02:01 -0000 Author: pfg Date: Thu Apr 20 21:01:59 2017 New Revision: 317216 URL: https://svnweb.freebsd.org/changeset/base/317216 Log: libthread_db: unbreak build due to sign/unsigned comparison. Reported by: lwshu Modified: head/lib/libthread_db/libpthread_db.c Modified: head/lib/libthread_db/libpthread_db.c ============================================================================== --- head/lib/libthread_db/libpthread_db.c Thu Apr 20 21:00:09 2017 (r317215) +++ head/lib/libthread_db/libpthread_db.c Thu Apr 20 21:01:59 2017 (r317216) @@ -227,7 +227,7 @@ pt_ta_map_id2thr(const td_thragent_t *ta TDBG_FUNC(); - if (id < 0 || id >= ta->map_len || ta->map[id].type == PT_NONE) + if (id < 0 || id >= (long)ta->map_len || ta->map[id].type == PT_NONE) return (TD_NOTHR); ret = thr_pread_ptr(ta, ta->thread_list_addr, &pt); @@ -1062,7 +1062,7 @@ static int pt_validate(const td_thrhandle_t *th) { - if (th->th_tid < 0 || th->th_tid >= th->th_ta->map_len || + if (th->th_tid < 0 || th->th_tid >= (long)th->th_ta->map_len || th->th_ta->map[th->th_tid].type == PT_NONE) return (TD_NOTHR); return (TD_OK); From owner-svn-src-all@freebsd.org Thu Apr 20 21:05:27 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 852BDD4801B; Thu, 20 Apr 2017 21:05:27 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 515EE262; Thu, 20 Apr 2017 21:05:27 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 7DE801FE022; Thu, 20 Apr 2017 23:05:24 +0200 (CEST) Subject: Re: svn commit: r317215 - head/lib/clang To: Dimitry Andric , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201704202100.v3KL0938093345@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <21e86609-e5f6-48ae-b391-38e5e14fc29b@selasky.org> Date: Thu, 20 Apr 2017 23:03:34 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <201704202100.v3KL0938093345@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:05:27 -0000 On 04/20/17 23:00, Dimitry Andric wrote: > Author: dim > Date: Thu Apr 20 21:00:09 2017 > New Revision: 317215 > URL: https://svnweb.freebsd.org/changeset/base/317215 > > Log: > Add function and data sections when building llvm, clang, lld and lldb, > and allow the linker to garbage collect them. This shaves off up to a > few MB from the final executables. > > MFC after: 3 days > Hi, Just curious. Does the i386 and amd64 built "ld" utility support garbage collection, or is this feature only intended for arm and friends? --HPS From owner-svn-src-all@freebsd.org Thu Apr 20 21:19:18 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 172D5D48488; Thu, 20 Apr 2017 21:19:18 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C4DA9D1D; Thu, 20 Apr 2017 21:19: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 v3KLJGca001804; Thu, 20 Apr 2017 21:19:16 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLJGIq001803; Thu, 20 Apr 2017 21:19:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202119.v3KLJGIq001803@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:19:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317219 - vendor/llvm/llvm-trunk-r300890 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:19:18 -0000 Author: dim Date: Thu Apr 20 21:19:16 2017 New Revision: 317219 URL: https://svnweb.freebsd.org/changeset/base/317219 Log: Tag llvm trunk r300890. Added: vendor/llvm/llvm-trunk-r300890/ - copied from r317218, vendor/llvm/dist/ From owner-svn-src-all@freebsd.org Thu Apr 20 21:19:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB8F0D4847F; Thu, 20 Apr 2017 21:19:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 85EDED18; Thu, 20 Apr 2017 21:19:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KLJCfn001757; Thu, 20 Apr 2017 21:19:12 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLJBM1001744; Thu, 20 Apr 2017 21:19:11 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202119.v3KLJBM1001744@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:19:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317218 - in vendor/llvm/dist: . bindings/go/llvm cmake/modules docs include/llvm include/llvm-c include/llvm/ADT include/llvm/Analysis include/llvm/Bitcode include/llvm/CodeGen include... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:19:14 -0000 Author: dim Date: Thu Apr 20 21:19:10 2017 New Revision: 317218 URL: https://svnweb.freebsd.org/changeset/base/317218 Log: Vendor import of llvm trunk r300890: https://llvm.org/svn/llvm-project/llvm/trunk@300890 Added: vendor/llvm/dist/lib/Fuzzer/test/CleanseTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/cleanse.test vendor/llvm/dist/test/Analysis/ScalarEvolution/or-as-add.ll vendor/llvm/dist/test/Bitcode/DIExpression-aggresult.ll vendor/llvm/dist/test/Bitcode/DIExpression-aggresult.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/DIExpression-deref.ll vendor/llvm/dist/test/Bitcode/DIExpression-deref.ll.bc (contents, props changed) vendor/llvm/dist/test/CodeGen/AArch64/nonlazybind.ll vendor/llvm/dist/test/CodeGen/AMDGPU/frame-index-amdgiz.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-func-align.ll vendor/llvm/dist/test/CodeGen/ARM/darwin-tls-preserved.ll vendor/llvm/dist/test/CodeGen/ARM/divmod-hwdiv.ll vendor/llvm/dist/test/CodeGen/ARM/fpoffset_overflow.mir vendor/llvm/dist/test/CodeGen/Hexagon/addrmode-globoff.mir vendor/llvm/dist/test/CodeGen/Mips/msa/shift_constant_pool.ll vendor/llvm/dist/test/CodeGen/Mips/msa/shift_no_and.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/binop.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/legalize-constant.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/legalize-trunc.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/memop.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-add.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-frameIndex.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-memop.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-sub.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-trunc.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/trunc.ll vendor/llvm/dist/test/CodeGen/X86/bswap_tree.ll vendor/llvm/dist/test/CodeGen/X86/bswap_tree2.ll vendor/llvm/dist/test/CodeGen/X86/dbg-baseptr.ll vendor/llvm/dist/test/CodeGen/X86/fp128-extract.ll vendor/llvm/dist/test/CodeGen/X86/sse-schedule.ll vendor/llvm/dist/test/CodeGen/X86/sse2-schedule.ll vendor/llvm/dist/test/CodeGen/X86/tail-merge-after-mbp.mir vendor/llvm/dist/test/DebugInfo/AMDGPU/code-pointer-size.ll vendor/llvm/dist/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll vendor/llvm/dist/test/DebugInfo/X86/fi-expr.ll vendor/llvm/dist/test/MC/ARM/assembly-default-build-attributes.s (contents, props changed) vendor/llvm/dist/test/Transforms/CodeGenPrepare/split-indirect-loop.ll vendor/llvm/dist/test/Transforms/GVN/non-integral-pointers.ll vendor/llvm/dist/test/Transforms/InstCombine/call-cast-attrs.ll vendor/llvm/dist/test/Transforms/InstCombine/pr32686.ll vendor/llvm/dist/test/Transforms/InstSimplify/icmp-ranges.ll vendor/llvm/dist/test/Transforms/LoopUnroll/peel-loop-negative.ll vendor/llvm/dist/test/Transforms/NewGVN/non-integral-pointers.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/reorder_phi.ll vendor/llvm/dist/test/Transforms/StructurizeCFG/invert-compare.ll vendor/llvm/dist/test/tools/llvm-symbolizer/padding-x86_64.ll vendor/llvm/dist/test/tools/llvm-xray/X86/extract-instrmap-symbolize.ll vendor/llvm/dist/tools/llvm-shlib/simple_version_script.map.in (contents, props changed) vendor/llvm/dist/unittests/CodeGen/ScalableVectorMVTsTest.cpp (contents, props changed) Deleted: vendor/llvm/dist/test/CodeGen/AVR/inline-asm/multibyte.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/binop-isel.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/frameIndex-instructionselect.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/legalize-const.mir vendor/llvm/dist/test/CodeGen/X86/GlobalISel/memop-isel.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/x86_64-instructionselect.mir vendor/llvm/dist/test/CodeGen/X86/tail-merge-after-mbp.ll vendor/llvm/dist/test/DebugInfo/AMDGPU/pointer-address-space-dwarf-v1.ll vendor/llvm/dist/test/DebugInfo/AMDGPU/variable-locations-dwarf-v1.ll vendor/llvm/dist/test/Transforms/InstCombine/2008-01-13-NoBitCastAttributes.ll Modified: vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp vendor/llvm/dist/bindings/go/llvm/IRBindings.h vendor/llvm/dist/cmake/modules/AddLLVM.cmake vendor/llvm/dist/docs/BitCodeFormat.rst vendor/llvm/dist/docs/LangRef.rst vendor/llvm/dist/docs/SourceLevelDebugging.rst vendor/llvm/dist/docs/Statepoints.rst vendor/llvm/dist/include/llvm-c/Core.h vendor/llvm/dist/include/llvm-c/Types.h vendor/llvm/dist/include/llvm/ADT/APInt.h vendor/llvm/dist/include/llvm/ADT/BitVector.h vendor/llvm/dist/include/llvm/ADT/SmallBitVector.h vendor/llvm/dist/include/llvm/Analysis/BlockFrequencyInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/DominanceFrontierImpl.h vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/include/llvm/Bitcode/BitcodeReader.h vendor/llvm/dist/include/llvm/Bitcode/BitcodeWriter.h vendor/llvm/dist/include/llvm/Bitcode/LLVMBitCodes.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/InstructionSelector.h vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Utils.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstrBuilder.h vendor/llvm/dist/include/llvm/CodeGen/MachineValueType.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.td vendor/llvm/dist/include/llvm/Config/config.h.cmake vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDie.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnit.h vendor/llvm/dist/include/llvm/IR/Argument.h vendor/llvm/dist/include/llvm/IR/Attributes.h vendor/llvm/dist/include/llvm/IR/ConstantRange.h vendor/llvm/dist/include/llvm/IR/DIBuilder.h vendor/llvm/dist/include/llvm/IR/DebugInfoMetadata.h vendor/llvm/dist/include/llvm/IR/Instructions.h vendor/llvm/dist/include/llvm/IR/Metadata.h vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndex.h vendor/llvm/dist/include/llvm/IR/PatternMatch.h vendor/llvm/dist/include/llvm/IR/Use.h vendor/llvm/dist/include/llvm/MC/MCAsmInfo.h vendor/llvm/dist/include/llvm/MC/MCStreamer.h vendor/llvm/dist/include/llvm/MC/MCSubtargetInfo.h vendor/llvm/dist/include/llvm/Object/Archive.h vendor/llvm/dist/include/llvm/Object/Binary.h vendor/llvm/dist/include/llvm/Object/COFF.h vendor/llvm/dist/include/llvm/Object/IRSymtab.h vendor/llvm/dist/include/llvm/Object/ObjectFile.h vendor/llvm/dist/include/llvm/Object/SymbolicFile.h vendor/llvm/dist/include/llvm/ObjectYAML/DWARFYAML.h vendor/llvm/dist/include/llvm/PassSupport.h vendor/llvm/dist/include/llvm/Support/ARMTargetParser.def vendor/llvm/dist/include/llvm/Support/ArrayRecycler.h vendor/llvm/dist/include/llvm/Support/BinaryStreamArray.h vendor/llvm/dist/include/llvm/Support/Dwarf.def vendor/llvm/dist/include/llvm/Support/Dwarf.h vendor/llvm/dist/include/llvm/Support/GenericDomTree.h vendor/llvm/dist/include/llvm/Support/GraphWriter.h vendor/llvm/dist/include/llvm/Support/LowLevelTypeImpl.h vendor/llvm/dist/include/llvm/Support/MathExtras.h vendor/llvm/dist/include/llvm/Support/Recycler.h vendor/llvm/dist/include/llvm/Support/Regex.h vendor/llvm/dist/include/llvm/Support/TargetParser.h vendor/llvm/dist/include/llvm/TableGen/StringToOffsetTable.h vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/include/llvm/Transforms/Utils/CodeExtractor.h vendor/llvm/dist/include/llvm/XRay/InstrumentationMap.h vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/BranchProbabilityInfo.cpp vendor/llvm/dist/lib/Analysis/CFLGraph.h vendor/llvm/dist/lib/Analysis/InstructionSimplify.cpp vendor/llvm/dist/lib/Analysis/MemoryBuiltins.cpp vendor/llvm/dist/lib/Analysis/MemorySSA.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp vendor/llvm/dist/lib/Analysis/ValueTracking.cpp vendor/llvm/dist/lib/AsmParser/LLParser.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.h vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp vendor/llvm/dist/lib/Bitcode/Writer/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.cpp vendor/llvm/dist/lib/CodeGen/CodeGenPrepare.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/IRTranslator.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/InstructionSelector.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/Legalizer.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/LegalizerHelper.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/Utils.cpp vendor/llvm/dist/lib/CodeGen/InlineSpiller.cpp vendor/llvm/dist/lib/CodeGen/LowLevelType.cpp vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp vendor/llvm/dist/lib/CodeGen/MachineVerifier.cpp vendor/llvm/dist/lib/CodeGen/RegAllocFast.cpp vendor/llvm/dist/lib/CodeGen/SafeStack.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFContext.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDie.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnit.cpp vendor/llvm/dist/lib/ExecutionEngine/Interpreter/Execution.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerDriver.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerFlags.def vendor/llvm/dist/lib/Fuzzer/FuzzerLoop.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerOptions.h vendor/llvm/dist/lib/Fuzzer/test/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/fuzzer-oom.test vendor/llvm/dist/lib/IR/Attributes.cpp vendor/llvm/dist/lib/IR/ConstantFold.cpp vendor/llvm/dist/lib/IR/ConstantRange.cpp vendor/llvm/dist/lib/IR/Constants.cpp vendor/llvm/dist/lib/IR/Core.cpp vendor/llvm/dist/lib/IR/DataLayout.cpp vendor/llvm/dist/lib/IR/Function.cpp vendor/llvm/dist/lib/IR/Instructions.cpp vendor/llvm/dist/lib/MC/MCDwarf.cpp vendor/llvm/dist/lib/MC/MCParser/AsmParser.cpp vendor/llvm/dist/lib/Object/Archive.cpp vendor/llvm/dist/lib/Object/Binary.cpp vendor/llvm/dist/lib/Object/COFFObjectFile.cpp vendor/llvm/dist/lib/Object/IRSymtab.cpp vendor/llvm/dist/lib/Object/ObjectFile.cpp vendor/llvm/dist/lib/Object/SymbolicFile.cpp vendor/llvm/dist/lib/Support/APFloat.cpp vendor/llvm/dist/lib/Support/APInt.cpp vendor/llvm/dist/lib/Support/CommandLine.cpp vendor/llvm/dist/lib/Support/Dwarf.cpp vendor/llvm/dist/lib/Support/LowLevelType.cpp vendor/llvm/dist/lib/Support/Regex.cpp vendor/llvm/dist/lib/Support/TargetParser.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.td vendor/llvm/dist/lib/Target/AArch64/AArch64InstructionSelector.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBankInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64SchedFalkorDetails.td vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h vendor/llvm/dist/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/DSInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARM.td vendor/llvm/dist/lib/Target/ARM/ARMAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.td vendor/llvm/dist/lib/Target/ARM/ARMConstantIslandPass.cpp vendor/llvm/dist/lib/Target/ARM/ARMFastISel.cpp vendor/llvm/dist/lib/Target/ARM/ARMFrameLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td vendor/llvm/dist/lib/Target/ARM/ARMInstructionSelector.cpp vendor/llvm/dist/lib/Target/ARM/ARMLegalizerInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMRegisterBankInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.h vendor/llvm/dist/lib/Target/ARM/AsmParser/ARMAsmParser.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1FrameLowering.cpp vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h vendor/llvm/dist/lib/Target/Hexagon/BitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.h vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.h vendor/llvm/dist/lib/Target/Hexagon/HexagonOptAddrMode.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFCopy.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.h vendor/llvm/dist/lib/Target/Hexagon/RDFRegisters.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFRegisters.h vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsMSAInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.cpp vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp vendor/llvm/dist/lib/Target/WebAssembly/known_gcc_test_failures.txt vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp vendor/llvm/dist/lib/Target/X86/X86FrameLowering.cpp vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h vendor/llvm/dist/lib/Target/X86/X86InstructionSelector.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterBankInfo.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.h vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.td vendor/llvm/dist/lib/Transforms/IPO/DeadArgumentElimination.cpp vendor/llvm/dist/lib/Transforms/IPO/FunctionAttrs.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/IPO/SampleProfile.cpp vendor/llvm/dist/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAddSub.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCalls.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCasts.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSelect.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineShifts.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstructionCombining.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/AddressSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/SanitizerCoverage.cpp vendor/llvm/dist/lib/Transforms/Scalar/GVNHoist.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopLoadElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopRerollPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/NewGVN.cpp vendor/llvm/dist/lib/Transforms/Scalar/StructurizeCFG.cpp vendor/llvm/dist/lib/Transforms/Utils/CmpInstAnalysis.cpp vendor/llvm/dist/lib/Transforms/Utils/CodeExtractor.cpp vendor/llvm/dist/lib/Transforms/Utils/LCSSA.cpp vendor/llvm/dist/lib/Transforms/Utils/Local.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollPeel.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp vendor/llvm/dist/lib/Transforms/Utils/VNCoercion.cpp vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/basic.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/kernel-args.ll vendor/llvm/dist/test/Bitcode/thinlto-alias.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-callgraph.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-originalnames.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-refgraph.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu-codegenprepare-i16-to-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/code-object-metadata-from-llvm-ir-full.ll vendor/llvm/dist/test/CodeGen/AMDGPU/exceed-max-sgprs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-scratch-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-func.ll vendor/llvm/dist/test/CodeGen/AMDGPU/loop_break.ll vendor/llvm/dist/test/CodeGen/AMDGPU/multi-divergent-exit-region.ll vendor/llvm/dist/test/CodeGen/AMDGPU/nested-loop-conditions.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ret_jump.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-vectors.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-instruction-select.mir vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-isel.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir vendor/llvm/dist/test/CodeGen/ARM/alloc-no-stack-realign.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes.ll vendor/llvm/dist/test/CodeGen/ARM/memcpy-inline.ll vendor/llvm/dist/test/CodeGen/ARM/memset-inline.ll vendor/llvm/dist/test/CodeGen/ARM/vbits.ll vendor/llvm/dist/test/CodeGen/ARM/vector-load.ll vendor/llvm/dist/test/CodeGen/ARM/vector-store.ll vendor/llvm/dist/test/CodeGen/ARM/vlddup.ll vendor/llvm/dist/test/CodeGen/ARM/vldlane.ll vendor/llvm/dist/test/CodeGen/ARM/vtbl.ll vendor/llvm/dist/test/CodeGen/AVR/alloca.ll vendor/llvm/dist/test/CodeGen/AVR/call.ll vendor/llvm/dist/test/CodeGen/AVR/directmem.ll vendor/llvm/dist/test/CodeGen/AVR/varargs.ll vendor/llvm/dist/test/CodeGen/PowerPC/andc.ll vendor/llvm/dist/test/CodeGen/WebAssembly/returned.ll vendor/llvm/dist/test/CodeGen/X86/GlobalISel/X86-regbankselect.mir vendor/llvm/dist/test/CodeGen/X86/MergeConsecutiveStores.ll vendor/llvm/dist/test/CodeGen/X86/avx-logic.ll vendor/llvm/dist/test/CodeGen/X86/avx512-ext.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/combine-or.ll vendor/llvm/dist/test/CodeGen/X86/extract-store.ll vendor/llvm/dist/test/CodeGen/X86/i64-to-float.ll vendor/llvm/dist/test/CodeGen/X86/known-signbits-vector.ll vendor/llvm/dist/test/CodeGen/X86/madd.ll vendor/llvm/dist/test/CodeGen/X86/merge_store.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-256.ll vendor/llvm/dist/test/CodeGen/X86/x86-16.ll vendor/llvm/dist/test/DebugInfo/AMDGPU/variable-locations.ll vendor/llvm/dist/test/DebugInfo/ARM/selectiondag-deadcode.ll vendor/llvm/dist/test/DebugInfo/Generic/block-asan.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-declare-arg.ll vendor/llvm/dist/test/DebugInfo/X86/dbg_value_direct.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-block-captured-self.ll vendor/llvm/dist/test/DebugInfo/X86/dw_op_minus.ll vendor/llvm/dist/test/DebugInfo/X86/dw_op_minus_direct.ll vendor/llvm/dist/test/DebugInfo/X86/sret.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/debug_info.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/tracing.ll vendor/llvm/dist/test/MC/AArch64/basic-a64-diagnostics.s vendor/llvm/dist/test/MC/AMDGPU/gfx7_asm_all.s vendor/llvm/dist/test/MC/AMDGPU/gfx8_asm_all.s vendor/llvm/dist/test/MC/ARM/multi-section-mapping.s vendor/llvm/dist/test/TableGen/intrinsic-long-name.td vendor/llvm/dist/test/TableGen/intrinsic-varargs.td vendor/llvm/dist/test/ThinLTO/X86/autoupgrade.ll vendor/llvm/dist/test/ThinLTO/X86/distributed_indexes.ll vendor/llvm/dist/test/Transforms/InstCombine/amdgcn-demanded-vector-elts.ll vendor/llvm/dist/test/Transforms/InstCombine/constant-fold-math.ll vendor/llvm/dist/test/Transforms/InstCombine/div-shift.ll vendor/llvm/dist/test/Transforms/InstCombine/div.ll vendor/llvm/dist/test/Transforms/InstCombine/rem.ll vendor/llvm/dist/test/Transforms/InstCombine/shift.ll vendor/llvm/dist/test/Transforms/InstCombine/vector-casts.ll vendor/llvm/dist/test/Transforms/InstSimplify/AndOrXor.ll vendor/llvm/dist/test/Transforms/InstSimplify/shufflevector.ll vendor/llvm/dist/test/Transforms/InstSimplify/vector_gep.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll vendor/llvm/dist/test/Transforms/LoopUnroll/peel-loop-not-forced.ll vendor/llvm/dist/test/Transforms/PhaseOrdering/globalaa-retained.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/debug-loc.ll vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/indirect-call.prof vendor/llvm/dist/test/Transforms/SampleProfile/indirect-call.ll vendor/llvm/dist/test/Transforms/StructurizeCFG/one-loop-multiple-backedges.ll vendor/llvm/dist/test/Transforms/StructurizeCFG/post-order-traversal-bug.ll vendor/llvm/dist/test/tools/gold/X86/thinlto.ll vendor/llvm/dist/test/tools/llvm-lto/thinlto.ll vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/discrim vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/discrim.c vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/discrim.inp vendor/llvm/dist/test/tools/llvm-symbolizer/sym-verbose.test vendor/llvm/dist/test/tools/llvm-xray/X86/extract-instrmap.ll vendor/llvm/dist/tools/dsymutil/DwarfLinker.cpp vendor/llvm/dist/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp vendor/llvm/dist/tools/llvm-cat/llvm-cat.cpp vendor/llvm/dist/tools/llvm-modextract/llvm-modextract.cpp vendor/llvm/dist/tools/llvm-shlib/CMakeLists.txt vendor/llvm/dist/tools/llvm-xray/xray-extract.cc vendor/llvm/dist/unittests/ADT/APIntTest.cpp vendor/llvm/dist/unittests/ADT/BitVectorTest.cpp vendor/llvm/dist/unittests/Analysis/ScalarEvolutionTest.cpp vendor/llvm/dist/unittests/CodeGen/CMakeLists.txt vendor/llvm/dist/unittests/CodeGen/LowLevelTypeTest.cpp vendor/llvm/dist/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp vendor/llvm/dist/unittests/IR/AttributesTest.cpp vendor/llvm/dist/unittests/IR/ConstantRangeTest.cpp vendor/llvm/dist/unittests/Support/MathExtrasTest.cpp vendor/llvm/dist/unittests/Support/TargetParserTest.cpp vendor/llvm/dist/unittests/Transforms/Utils/Cloning.cpp vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp vendor/llvm/dist/utils/TableGen/IntrinsicEmitter.cpp Modified: vendor/llvm/dist/CMakeLists.txt ============================================================================== --- vendor/llvm/dist/CMakeLists.txt Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/CMakeLists.txt Thu Apr 20 21:19:10 2017 (r317218) @@ -512,6 +512,9 @@ set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "shar option (LLVM_BUILD_EXTERNAL_COMPILER_RT "Build compiler-rt as an external project." OFF) +option (LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO + "Show target and host info when tools are invoked with --version." ON) + # You can configure which libraries from LLVM you want to include in the # shared library by setting LLVM_DYLIB_COMPONENTS to a semi-colon delimited # list of LLVM components. All component names handled by llvm-config are valid. Modified: vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/bindings/go/llvm/DIBuilderBindings.cpp Thu Apr 20 21:19:10 2017 (r317218) @@ -19,8 +19,6 @@ using namespace llvm; -DEFINE_SIMPLE_CONVERSION_FUNCTIONS(DIBuilder, LLVMDIBuilderRef) - LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef mref) { Module *m = unwrap(mref); return wrap(new DIBuilder(*m)); Modified: vendor/llvm/dist/bindings/go/llvm/IRBindings.h ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/IRBindings.h Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/bindings/go/llvm/IRBindings.h Thu Apr 20 21:19:10 2017 (r317218) @@ -26,7 +26,6 @@ extern "C" { #endif -typedef struct LLVMOpaqueMetadata *LLVMMetadataRef; struct LLVMDebugLocMetadata{ unsigned Line; unsigned Col; @@ -59,16 +58,6 @@ void LLVMSetSubprogram(LLVMValueRef Fn, #ifdef __cplusplus } -namespace llvm { - -DEFINE_ISA_CONVERSION_FUNCTIONS(Metadata, LLVMMetadataRef) - -inline Metadata **unwrap(LLVMMetadataRef *Vals) { - return reinterpret_cast(Vals); -} - -} - #endif #endif Modified: vendor/llvm/dist/cmake/modules/AddLLVM.cmake ============================================================================== --- vendor/llvm/dist/cmake/modules/AddLLVM.cmake Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/cmake/modules/AddLLVM.cmake Thu Apr 20 21:19:10 2017 (r317218) @@ -81,8 +81,9 @@ function(add_llvm_symbol_exports target_ # Gold and BFD ld require a version script rather than a plain list. set(native_export_file "${target_name}.exports") # FIXME: Don't write the "local:" line on OpenBSD. + # in the export file, also add a linker script to version LLVM symbols (form: LLVM_N.M) add_custom_command(OUTPUT ${native_export_file} - COMMAND echo "{" > ${native_export_file} + COMMAND echo "LLVM_${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR} {" > ${native_export_file} COMMAND grep -q "[[:alnum:]]" ${export_file} && echo " global:" >> ${native_export_file} || : COMMAND sed -e "s/$/;/" -e "s/^/ /" < ${export_file} >> ${native_export_file} COMMAND echo " local: *;" >> ${native_export_file} Modified: vendor/llvm/dist/docs/BitCodeFormat.rst ============================================================================== --- vendor/llvm/dist/docs/BitCodeFormat.rst Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/docs/BitCodeFormat.rst Thu Apr 20 21:19:10 2017 (r317218) @@ -550,6 +550,8 @@ LLVM IR is defined with the following bl * 17 --- `TYPE_BLOCK`_ --- This describes all of the types in the module. +* 23 --- `STRTAB_BLOCK`_ --- The bitcode file's string table. + .. _MODULE_BLOCK: MODULE_BLOCK Contents @@ -577,7 +579,7 @@ MODULE_CODE_VERSION Record ``[VERSION, version#]`` The ``VERSION`` record (code 1) contains a single value indicating the format -version. Versions 0 and 1 are supported at this time. The difference between +version. Versions 0, 1 and 2 are supported at this time. The difference between version 0 and 1 is in the encoding of instruction operands in each `FUNCTION_BLOCK`_. @@ -620,6 +622,12 @@ as unsigned VBRs. However, forward refer case of phi instructions. For phi instructions, operands are encoded as `Signed VBRs`_ to deal with forward references. +In version 2, the meaning of module records ``FUNCTION``, ``GLOBALVAR``, +``ALIAS``, ``IFUNC`` and ``COMDAT`` change such that the first two operands +specify an offset and size of a string in a string table (see `STRTAB_BLOCK +Contents`_), the function name is removed from the ``FNENTRY`` record in the +value symbol table, and the top-level ``VALUE_SYMTAB_BLOCK`` may only contain +``FNENTRY`` records. MODULE_CODE_TRIPLE Record ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -673,11 +681,14 @@ for each library name referenced. MODULE_CODE_GLOBALVAR Record ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -``[GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal, unnamed_addr, externally_initialized, dllstorageclass, comdat]`` +``[GLOBALVAR, strtab offset, strtab size, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal, unnamed_addr, externally_initialized, dllstorageclass, comdat]`` The ``GLOBALVAR`` record (code 7) marks the declaration or definition of a global variable. The operand fields are: +* *strtab offset*, *strtab size*: Specifies the name of the global variable. + See `STRTAB_BLOCK Contents`_. + * *pointer type*: The type index of the pointer type used to point to this global variable @@ -755,11 +766,14 @@ global variable. The operand fields are: MODULE_CODE_FUNCTION Record ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -``[FUNCTION, type, callingconv, isproto, linkage, paramattr, alignment, section, visibility, gc, prologuedata, dllstorageclass, comdat, prefixdata, personalityfn]`` +``[FUNCTION, strtab offset, strtab size, type, callingconv, isproto, linkage, paramattr, alignment, section, visibility, gc, prologuedata, dllstorageclass, comdat, prefixdata, personalityfn]`` The ``FUNCTION`` record (code 8) marks the declaration or definition of a function. The operand fields are: +* *strtab offset*, *strtab size*: Specifies the name of the function. + See `STRTAB_BLOCK Contents`_. + * *type*: The type index of the function type describing this function * *callingconv*: The calling convention number: @@ -817,11 +831,14 @@ function. The operand fields are: MODULE_CODE_ALIAS Record ^^^^^^^^^^^^^^^^^^^^^^^^ -``[ALIAS, alias type, aliasee val#, linkage, visibility, dllstorageclass, threadlocal, unnamed_addr]`` +``[ALIAS, strtab offset, strtab size, alias type, aliasee val#, linkage, visibility, dllstorageclass, threadlocal, unnamed_addr]`` The ``ALIAS`` record (code 9) marks the definition of an alias. The operand fields are +* *strtab offset*, *strtab size*: Specifies the name of the alias. + See `STRTAB_BLOCK Contents`_. + * *alias type*: The type index of the alias * *aliasee val#*: The value index of the aliased value @@ -1300,3 +1317,20 @@ METADATA_ATTACHMENT Contents ---------------------------- The ``METADATA_ATTACHMENT`` block (id 16) ... + +.. _STRTAB_BLOCK: + +STRTAB_BLOCK Contents +--------------------- + +The ``STRTAB`` block (id 23) contains a single record (``STRTAB_BLOB``, id 1) +with a single blob operand containing the bitcode file's string table. + +Strings in the string table are not null terminated. A record's *strtab +offset* and *strtab size* operands specify the byte offset and size of a +string within the string table. + +The string table is used by all preceding blocks in the bitcode file that are +not succeeded by another intervening ``STRTAB`` block. Normally a bitcode +file will have a single string table, but it may have more than one if it +was created by binary concatenation of multiple bitcode files. Modified: vendor/llvm/dist/docs/LangRef.rst ============================================================================== --- vendor/llvm/dist/docs/LangRef.rst Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/docs/LangRef.rst Thu Apr 20 21:19:10 2017 (r317218) @@ -4380,7 +4380,7 @@ referenced LLVM variable relates to the The current supported vocabulary is limited: -- ``DW_OP_deref`` dereferences the working expression. +- ``DW_OP_deref`` dereferences the top of the expression stack. - ``DW_OP_plus, 93`` adds ``93`` to the working expression. - ``DW_OP_LLVM_fragment, 16, 8`` specifies the offset and size (``16`` and ``8`` here, respectively) of the variable fragment from the working expression. Note @@ -4396,12 +4396,17 @@ DIExpression nodes that contain a ``DW_O location descriptions that describe constant values. This form is used to describe global constants that have been optimized away. All other expressions are modifiers to another location: A debug intrinsic ties a location and a -DIExpression together. Contrary to DWARF expressions, a DIExpression always -describes the *value* of a source variable and never its *address*. In DWARF -terminology, a DIExpression can always be considered an implicit location -description regardless whether it contains a ``DW_OP_stack_value`` or not. +DIExpression together. -.. code-block:: text +DWARF specifies three kinds of simple location descriptions: Register, memory, +and implicit location descriptions. Register and memory location descriptions +describe the *location* of a source variable (in the sense that a debugger might +modify its value), whereas implicit locations describe merely the *value* of a +source variable. DIExpressions also follow this model: A DIExpression that +doesn't have a trailing ``DW_OP_stack_value`` will describe an *address* when +combined with a concrete location. + +.. code-block:: llvm !0 = !DIExpression(DW_OP_deref) !1 = !DIExpression(DW_OP_plus, 3) @@ -12285,6 +12290,7 @@ The third argument is a metadata argumen assumed. This argument must be one of the following strings: :: + "round.dynamic" "round.tonearest" "round.downward" @@ -12316,6 +12322,7 @@ required exception behavior. This argum strings: :: + "fpexcept.ignore" "fpexcept.maytrap" "fpexcept.strict" Modified: vendor/llvm/dist/docs/SourceLevelDebugging.rst ============================================================================== --- vendor/llvm/dist/docs/SourceLevelDebugging.rst Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/docs/SourceLevelDebugging.rst Thu Apr 20 21:19:10 2017 (r317218) @@ -180,11 +180,27 @@ provide debug information at various poi void @llvm.dbg.declare(metadata, metadata, metadata) -This intrinsic provides information about a local element (e.g., variable). -The first argument is metadata holding the alloca for the variable. The second +This intrinsic provides information about a local element (e.g., variable). The +first argument is metadata holding the alloca for the variable. The second argument is a `local variable `_ containing a description of the variable. The third argument is a `complex expression -`_. +`_. An `llvm.dbg.declare` instrinsic describes the +*location* of a source variable. + +.. code-block:: llvm + + %i.addr = alloca i32, align 4 + call void @llvm.dbg.declare(metadata i32* %i.addr, metadata !1, metadata !2), !dbg !3 + !1 = !DILocalVariable(name: "i", ...) ; int i + !2 = !DIExpression() + !3 = !DILocation(...) + ... + %buffer = alloca [256 x i8], align 8 + ; The address of i is buffer+64. + call void @llvm.dbg.declare(metadata [256 x i8]* %buffer, metadata !1, metadata !2) + !1 = !DILocalVariable(name: "i", ...) ; int i + !2 = !DIExpression(DW_OP_plus, 64) + ``llvm.dbg.value`` ^^^^^^^^^^^^^^^^^^ Modified: vendor/llvm/dist/docs/Statepoints.rst ============================================================================== --- vendor/llvm/dist/docs/Statepoints.rst Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/docs/Statepoints.rst Thu Apr 20 21:19:10 2017 (r317218) @@ -9,15 +9,22 @@ Garbage Collection Safepoints in LLVM Status ======= -This document describes a set of experimental extensions to LLVM. Use -with caution. Because the intrinsics have experimental status, -compatibility across LLVM releases is not guaranteed. - -LLVM currently supports an alternate mechanism for conservative -garbage collection support using the ``gcroot`` intrinsic. The mechanism -described here shares little in common with the alternate ``gcroot`` -implementation and it is hoped that this mechanism will eventually -replace the gc_root mechanism. +This document describes a set of extensions to LLVM to support garbage +collection. By now, these mechanisms are well proven with commercial java +implementation with a fully relocating collector having shipped using them. +There are a couple places where bugs might still linger; these are called out +below. + +They are still listed as "experimental" to indicate that no forward or backward +compatibility guarantees are offered across versions. If your use case is such +that you need some form of forward compatibility guarantee, please raise the +issue on the llvm-dev mailing list. + +LLVM still supports an alternate mechanism for conservative garbage collection +support using the ``gcroot`` intrinsic. The ``gcroot`` mechanism is mostly of +historical interest at this point with one exception - its implementation of +shadow stacks has been used successfully by a number of language frontends and +is still supported. Overview ======== @@ -86,9 +93,36 @@ the collector must be able to: This document describes the mechanism by which an LLVM based compiler can provide this information to a language runtime/collector, and -ensure that all pointers can be read and updated if desired. The -heart of the approach is to construct (or rewrite) the IR in a manner -where the possible updates performed by the garbage collector are +ensure that all pointers can be read and updated if desired. + +At a high level, LLVM has been extended to support compiling to an abstract +machine which extends the actual target with a non-integral pointer type +suitable for representing a garbage collected reference to an object. In +particular, such non-integral pointer type have no defined mapping to an +integer representation. This semantic quirk allows the runtime to pick a +integer mapping for each point in the program allowing relocations of objects +without visible effects. + +Warning: Non-Integral Pointer Types are a newly added concept in LLVM IR. +It's possible that we've missed disabling some of the optimizations which +assume an integral value for pointers. If you find such a case, please +file a bug or share a patch. + +Warning: There is one currently known semantic hole in the definition of +non-integral pointers which has not been addressed upstream. To work around +this, you need to disable speculation of loads unless the memory type +(non-integral pointer vs anything else) is known to unchanged. That is, it is +not safe to speculate a load if doing causes a non-integral pointer value to +be loaded as any other type or vice versa. In practice, this restriction is +well isolated to isSafeToSpeculate in ValueTracking.cpp. + +This high level abstract machine model is used for most of the LLVM optimizer. +Before starting code generation, we switch representations to an explicit form. +In theory, a frontend could directly generate this low level explicit form, but +doing so is likely to inhibit optimization. + +The heart of the explicit approach is to construct (or rewrite) the IR in a +manner where the possible updates performed by the garbage collector are explicitly visible in the IR. Doing so requires that we: #. create a new SSA value for each potentially relocated pointer, and @@ -104,7 +138,7 @@ explicitly visible in the IR. Doing so At the most abstract level, inserting a safepoint can be thought of as replacing a call instruction with a call to a multiple return value function which both calls the original target of the call, returns -it's result, and returns updated values for any live pointers to +its result, and returns updated values for any live pointers to garbage collected objects. Note that the task of identifying all live pointers to garbage @@ -200,7 +234,9 @@ The relevant parts of the StackMap secti .short 7 .long 0 -This example was taken from the tests for the :ref:`RewriteStatepointsForGC` utility pass. As such, it's full StackMap can be easily examined with the following command. +This example was taken from the tests for the :ref:`RewriteStatepointsForGC` +utility pass. As such, its full StackMap can be easily examined with the +following command. .. code-block:: bash @@ -536,7 +572,7 @@ Semantics: """""""""" The return value of ``gc.relocate`` is the potentially relocated value -of the pointer specified by it's arguments. It is unspecified how the +of the pointer specified by its arguments. It is unspecified how the value of the returned pointer relates to the argument to the ``gc.statepoint`` other than that a) it points to the same source language object with the same offset, and b) the 'based-on' @@ -654,11 +690,15 @@ Utility Passes for Safepoint Insertion RewriteStatepointsForGC ^^^^^^^^^^^^^^^^^^^^^^^^ -The pass RewriteStatepointsForGC transforms a functions IR by replacing a -``gc.statepoint`` (with an optional ``gc.result``) with a full relocation -sequence, including all required ``gc.relocates``. To function, the pass -requires that the GC strategy specified for the function be able to reliably -distinguish between GC references and non-GC references in IR it is given. +The pass RewriteStatepointsForGC transforms a function's IR to lower from the +abstract machine model described above to the explicit statepoint model of +relocations. To do this, it replaces all calls or invokes of functions which +might contain a safepoint poll with a ``gc.statepoint`` and associated full +relocation sequence, including all required ``gc.relocates``. + +Note that by default, this pass only runs for the "statepoint-example" or +"core-clr" gc strategies. You will need to add your custom strategy to this +whitelist or use one of the predefined ones. As an example, given this code: @@ -666,7 +706,7 @@ As an example, given this code: define i8 addrspace(1)* @test1(i8 addrspace(1)* %obj) gc "statepoint-example" { - call token (i64, i32, void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 2882400000, i32 0, void ()* @foo, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + call void @foo() ret i8 addrspace(1)* %obj } @@ -683,7 +723,8 @@ The pass would produce this IR: In the above examples, the addrspace(1) marker on the pointers is the mechanism that the ``statepoint-example`` GC strategy uses to distinguish references from -non references. Address space 1 is not globally reserved for this purpose. +non references. The pass assumes that all addrspace(1) pointers are non-integral +pointer types. Address space 1 is not globally reserved for this purpose. This pass can be used an utility function by a language frontend that doesn't want to manually reason about liveness, base pointers, or relocation when @@ -701,23 +742,34 @@ can be relaxed to producing interior der collector can find the associated allocation from an arbitrary interior derived pointer. -In practice, RewriteStatepointsForGC can be run much later in the pass +By default RewriteStatepointsForGC passes in ``0xABCDEF00`` as the statepoint +ID and ``0`` as the number of patchable bytes to the newly constructed +``gc.statepoint``. These values can be configured on a per-callsite +basis using the attributes ``"statepoint-id"`` and +``"statepoint-num-patch-bytes"``. If a call site is marked with a +``"statepoint-id"`` function attribute and its value is a positive +integer (represented as a string), then that value is used as the ID +of the newly constructed ``gc.statepoint``. If a call site is marked +with a ``"statepoint-num-patch-bytes"`` function attribute and its +value is a positive integer, then that value is used as the 'num patch +bytes' parameter of the newly constructed ``gc.statepoint``. The +``"statepoint-id"`` and ``"statepoint-num-patch-bytes"`` attributes +are not propagated to the ``gc.statepoint`` call or invoke if they +could be successfully parsed. + +In practice, RewriteStatepointsForGC should be run much later in the pass pipeline, after most optimization is already done. This helps to improve the quality of the generated code when compiled with garbage collection support. -In the long run, this is the intended usage model. At this time, a few details -have yet to be worked out about the semantic model required to guarantee this -is always correct. As such, please use with caution and report bugs. .. _PlaceSafepoints: PlaceSafepoints ^^^^^^^^^^^^^^^^ -The pass PlaceSafepoints transforms a function's IR by replacing any call or -invoke instructions with appropriate ``gc.statepoint`` and ``gc.result`` pairs, -and inserting safepoint polls sufficient to ensure running code checks for a -safepoint request on a timely manner. This pass is expected to be run before -RewriteStatepointsForGC and thus does not produce full relocation sequences. +The pass PlaceSafepoints inserts safepoint polls sufficient to ensure running +code checks for a safepoint request on a timely manner. This pass is expected +to be run before RewriteStatepointsForGC and thus does not produce full +relocation sequences. As an example, given input IR of the following: @@ -740,13 +792,16 @@ This pass would produce the following IR .. code-block:: text define void @test() gc "statepoint-example" { - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 2882400000, i32 0, void ()* @do_safepoint, i32 0, i32 0, i32 0, i32 0) - %safepoint_token1 = call token (i64, i32, void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 2882400000, i32 0, void ()* @foo, i32 0, i32 0, i32 0, i32 0) + call void @do_safepoint() + call void @foo() ret void } -In this case, we've added an (unconditional) entry safepoint poll and converted the call into a ``gc.statepoint``. Note that despite appearances, the entry poll is not necessarily redundant. We'd have to know that ``foo`` and ``test`` were not mutually recursive for the poll to be redundant. In practice, you'd probably want to your poll definition to contain a conditional branch of some form. - +In this case, we've added an (unconditional) entry safepoint poll. Note that +despite appearances, the entry poll is not necessarily redundant. We'd have to +know that ``foo`` and ``test`` were not mutually recursive for the poll to be +redundant. In practice, you'd probably want to your poll definition to contain +a conditional branch of some form. At the moment, PlaceSafepoints can insert safepoint polls at method entry and loop backedges locations. Extending this to work with return polls would be @@ -763,26 +818,13 @@ of this function is inserted at each pol inside this method are transformed to a ``gc.statepoints``, recursive poll insertion is not performed. -By default PlaceSafepoints passes in ``0xABCDEF00`` as the statepoint -ID and ``0`` as the number of patchable bytes to the newly constructed -``gc.statepoint``. These values can be configured on a per-callsite -basis using the attributes ``"statepoint-id"`` and -``"statepoint-num-patch-bytes"``. If a call site is marked with a -``"statepoint-id"`` function attribute and its value is a positive -integer (represented as a string), then that value is used as the ID -of the newly constructed ``gc.statepoint``. If a call site is marked -with a ``"statepoint-num-patch-bytes"`` function attribute and its -value is a positive integer, then that value is used as the 'num patch -bytes' parameter of the newly constructed ``gc.statepoint``. The -``"statepoint-id"`` and ``"statepoint-num-patch-bytes"`` attributes -are not propagated to the ``gc.statepoint`` call or invoke if they -could be successfully parsed. - -If you are scheduling the RewriteStatepointsForGC pass late in the pass order, -you should probably schedule this pass immediately before it. The exception -would be if you need to preserve abstract frame information (e.g. for -deoptimization or introspection) at safepoints. In that case, ask on the -llvm-dev mailing list for suggestions. +This pass is useful for any language frontend which only has to support +garbage collection semantics at safepoints. If you need other abstract +frame information at safepoints (e.g. for deoptimization or introspection), +you can insert safepoint polls in the frontend. If you have the later case, +please ask on llvm-dev for suggestions. There's been a good amount of work +done on making such a scheme work well in practice which is not yet documented +here. Supported Architectures @@ -794,13 +836,6 @@ Today, only X86_64 is supported. Problem Areas and Active Work ============================= -#. As the existing users of the late rewriting model have matured, we've found - cases where the optimizer breaks the assumption that an SSA value of - gc-pointer type actually contains a gc-pointer and vice-versa. We need to - clarify our expectations and propose at least one small IR change. (Today, - the gc-pointer distinction is managed via address spaces. This turns out - not to be quite strong enough.) - #. Support for languages which allow unmanaged pointers to garbage collected objects (i.e. pass a pointer to an object to a C routine) via pinning. Modified: vendor/llvm/dist/include/llvm-c/Core.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Core.h Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/include/llvm-c/Core.h Thu Apr 20 21:19:10 2017 (r317218) @@ -2131,6 +2131,16 @@ LLVMValueRef LLVMMDNodeInContext(LLVMCon LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count); /** + * Obtain a Metadata as a Value. + */ +LLVMValueRef LLVMMetadataAsValue(LLVMContextRef C, LLVMMetadataRef MD); + +/** + * Obtain a Value as a Metadata. + */ +LLVMMetadataRef LLVMValueAsMetadata(LLVMValueRef Val); + +/** * Obtain the underlying string from a MDString value. * * @param V Instance to obtain string from. Modified: vendor/llvm/dist/include/llvm-c/Types.h ============================================================================== --- vendor/llvm/dist/include/llvm-c/Types.h Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/include/llvm-c/Types.h Thu Apr 20 21:19:10 2017 (r317218) @@ -83,6 +83,13 @@ typedef struct LLVMOpaqueValue *LLVMValu typedef struct LLVMOpaqueBasicBlock *LLVMBasicBlockRef; /** + * Represents an LLVM Metadata. + * + * This models llvm::Metadata. + */ +typedef struct LLVMOpaqueMetadata *LLVMMetadataRef; + +/** * Represents an LLVM basic block builder. * * This models llvm::IRBuilder. @@ -90,6 +97,13 @@ typedef struct LLVMOpaqueBasicBlock *LLV typedef struct LLVMOpaqueBuilder *LLVMBuilderRef; /** + * Represents an LLVM debug info builder. + * + * This models llvm::DIBuilder. + */ +typedef struct LLVMOpaqueDIBuilder *LLVMDIBuilderRef; + +/** * Interface used to provide a module to JIT or interpreter. * This is now just a synonym for llvm::Module, but we have to keep using the * different type to keep binary compatibility. Modified: vendor/llvm/dist/include/llvm/ADT/APInt.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/APInt.h Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/include/llvm/ADT/APInt.h Thu Apr 20 21:19:10 2017 (r317218) @@ -189,17 +189,17 @@ private: void initSlowCase(const APInt &that); /// out-of-line slow case for shl - APInt shlSlowCase(unsigned shiftAmt) const; + void shlSlowCase(unsigned ShiftAmt); + + /// out-of-line slow case for lshr. + void lshrSlowCase(unsigned ShiftAmt); /// out-of-line slow case for operator= - APInt &AssignSlowCase(const APInt &RHS); + void AssignSlowCase(const APInt &RHS); /// out-of-line slow case for operator== bool EqualSlowCase(const APInt &RHS) const LLVM_READONLY; - /// out-of-line slow case for operator== - bool EqualSlowCase(uint64_t Val) const LLVM_READONLY; - /// out-of-line slow case for countLeadingZeros unsigned countLeadingZerosSlowCase() const LLVM_READONLY; @@ -209,6 +209,12 @@ private: /// out-of-line slow case for countPopulation unsigned countPopulationSlowCase() const LLVM_READONLY; + /// out-of-line slow case for intersects. + bool intersectsSlowCase(const APInt &RHS) const LLVM_READONLY; + + /// out-of-line slow case for isSubsetOf. + bool isSubsetOfSlowCase(const APInt &RHS) const LLVM_READONLY; + /// out-of-line slow case for setBits. void setBitsSlowCase(unsigned loBit, unsigned hiBit); @@ -216,13 +222,13 @@ private: void flipAllBitsSlowCase(); /// out-of-line slow case for operator&=. - APInt& AndAssignSlowCase(const APInt& RHS); + void AndAssignSlowCase(const APInt& RHS); /// out-of-line slow case for operator|=. - APInt& OrAssignSlowCase(const APInt& RHS); + void OrAssignSlowCase(const APInt& RHS); /// out-of-line slow case for operator^=. - APInt& XorAssignSlowCase(const APInt& RHS); + void XorAssignSlowCase(const APInt& RHS); public: /// \name Constructors @@ -330,6 +336,20 @@ public: /// This tests the high bit of the APInt to determine if it is unset. bool isNonNegative() const { return !isNegative(); } + /// \brief Determine if sign bit of this APInt is set. + /// + /// This tests the high bit of this APInt to determine if it is set. + /// + /// \returns true if this APInt has its sign bit set, false otherwise. + bool isSignBitSet() const { return (*this)[BitWidth-1]; } + + /// \brief Determine if sign bit of this APInt is clear. + /// + /// This tests the high bit of this APInt to determine if it is clear. + /// + /// \returns true if this APInt has its sign bit clear, false otherwise. + bool isSignBitClear() const { return !isSignBitSet(); } + /// \brief Determine if this APInt Value is positive. /// /// This tests if the value of this APInt is positive (> 0). Note @@ -396,10 +416,10 @@ public: return countPopulationSlowCase() == 1; } - /// \brief Check if the APInt's value is returned by getSignBit. + /// \brief Check if the APInt's value is returned by getSignMask. /// - /// \returns true if this is the value returned by getSignBit. - bool isSignBit() const { return isMinSignedValue(); } + /// \returns true if this is the value returned by getSignMask. + bool isSignMask() const { return isMinSignedValue(); } /// \brief Convert APInt to a boolean value. /// @@ -409,8 +429,7 @@ public: /// If this value is smaller than the specified limit, return it, otherwise /// return the limit value. This causes the value to saturate to the limit. uint64_t getLimitedValue(uint64_t Limit = UINT64_MAX) const { - return (getActiveBits() > 64 || getZExtValue() > Limit) ? Limit - : getZExtValue(); + return ugt(Limit) ? Limit : getZExtValue(); } /// \brief Check if the APInt consists of a repeated bit pattern. @@ -427,8 +446,9 @@ public: assert(numBits <= BitWidth && "numBits out of range"); if (isSingleWord()) return VAL == (UINT64_MAX >> (APINT_BITS_PER_WORD - numBits)); - unsigned Ones = countTrailingOnes(); - return (numBits == Ones) && ((Ones + countLeadingZeros()) == BitWidth); + unsigned Ones = countTrailingOnesSlowCase(); + return (numBits == Ones) && + ((Ones + countLeadingZerosSlowCase()) == BitWidth); } /// \returns true if this APInt is a non-empty sequence of ones starting at @@ -437,8 +457,8 @@ public: bool isMask() const { if (isSingleWord()) return isMask_64(VAL); - unsigned Ones = countTrailingOnes(); - return (Ones > 0) && ((Ones + countLeadingZeros()) == BitWidth); + unsigned Ones = countTrailingOnesSlowCase(); + return (Ones > 0) && ((Ones + countLeadingZerosSlowCase()) == BitWidth); } /// \brief Return true if this APInt value contains a sequence of ones with @@ -446,8 +466,9 @@ public: bool isShiftedMask() const { if (isSingleWord()) return isShiftedMask_64(VAL); - unsigned Ones = countPopulation(); - return (Ones + countTrailingZeros() + countLeadingZeros()) == BitWidth; + unsigned Ones = countPopulationSlowCase(); + unsigned LeadZ = countLeadingZerosSlowCase(); + return (Ones + LeadZ + countTrailingZeros()) == BitWidth; } /// @} @@ -476,11 +497,11 @@ public: return API; } - /// \brief Get the SignBit for a specific bit width. + /// \brief Get the SignMask for a specific bit width. /// /// This is just a wrapper function of getSignedMinValue(), and it helps code - /// readability when we want to get a SignBit. - static APInt getSignBit(unsigned BitWidth) { + /// readability when we want to get a SignMask. + static APInt getSignMask(unsigned BitWidth) { return getSignedMinValue(BitWidth); } @@ -674,29 +695,22 @@ public: return clearUnusedBits(); } - return AssignSlowCase(RHS); + AssignSlowCase(RHS); + return *this; } /// @brief Move assignment operator. APInt &operator=(APInt &&that) { - if (!isSingleWord()) { - // The MSVC STL shipped in 2013 requires that self move assignment be a - // no-op. Otherwise algorithms like stable_sort will produce answers - // where half of the output is left in a moved-from state. - if (this == &that) - return *this; + assert(this != &that && "Self-move not supported"); + if (!isSingleWord()) delete[] pVal; - } // Use memcpy so that type based alias analysis sees both VAL and pVal // as modified. memcpy(&VAL, &that.VAL, sizeof(uint64_t)); - // If 'this == &that', avoid zeroing our own bitwidth by storing to 'that' - // first. - unsigned ThatBitWidth = that.BitWidth; + BitWidth = that.BitWidth; that.BitWidth = 0; - BitWidth = ThatBitWidth; return *this; } @@ -727,11 +741,11 @@ public: /// \returns *this after ANDing with RHS. APInt &operator&=(const APInt &RHS) { assert(BitWidth == RHS.BitWidth && "Bit widths must be the same"); - if (isSingleWord()) { + if (isSingleWord()) VAL &= RHS.VAL; - return *this; - } - return AndAssignSlowCase(RHS); + else + AndAssignSlowCase(RHS); + return *this; } /// \brief Bitwise AND assignment operator. @@ -757,11 +771,11 @@ public: /// \returns *this after ORing with RHS. APInt &operator|=(const APInt &RHS) { assert(BitWidth == RHS.BitWidth && "Bit widths must be the same"); - if (isSingleWord()) { + if (isSingleWord()) VAL |= RHS.VAL; - return *this; - } - return OrAssignSlowCase(RHS); + else + OrAssignSlowCase(RHS); + return *this; } /// \brief Bitwise OR assignment operator. @@ -787,11 +801,11 @@ public: /// \returns *this after XORing with RHS. APInt &operator^=(const APInt &RHS) { assert(BitWidth == RHS.BitWidth && "Bit widths must be the same"); - if (isSingleWord()) { + if (isSingleWord()) VAL ^= RHS.VAL; - return *this; - } - return XorAssignSlowCase(RHS); + else + XorAssignSlowCase(RHS); + return *this; } /// \brief Bitwise XOR assignment operator. @@ -836,9 +850,17 @@ public: /// /// Shifts *this left by shiftAmt and assigns the result to *this. /// - /// \returns *this after shifting left by shiftAmt - APInt &operator<<=(unsigned shiftAmt) { - *this = shl(shiftAmt); + /// \returns *this after shifting left by ShiftAmt + APInt &operator<<=(unsigned ShiftAmt) { + assert(ShiftAmt <= BitWidth && "Invalid shift amount"); + if (isSingleWord()) { + if (ShiftAmt == BitWidth) + VAL = 0; + else + VAL <<= ShiftAmt; + return clearUnusedBits(); + } + shlSlowCase(ShiftAmt); return *this; } @@ -875,20 +897,26 @@ public: return R; } - /// Logical right-shift this APInt by shiftAmt in place. - void lshrInPlace(unsigned shiftAmt); + /// Logical right-shift this APInt by ShiftAmt in place. + void lshrInPlace(unsigned ShiftAmt) { + assert(ShiftAmt <= BitWidth && "Invalid shift amount"); + if (isSingleWord()) { + if (ShiftAmt == BitWidth) + VAL = 0; + else + VAL >>= ShiftAmt; + return; + } + lshrSlowCase(ShiftAmt); + } /// \brief Left-shift function. /// /// Left-shift this APInt by shiftAmt. APInt shl(unsigned shiftAmt) const { - assert(shiftAmt <= BitWidth && "Invalid shift amount"); - if (isSingleWord()) { - if (shiftAmt >= BitWidth) - return APInt(BitWidth, 0); // avoid undefined shift results - return APInt(BitWidth, VAL << shiftAmt); - } - return shlSlowCase(shiftAmt); + APInt R(*this); + R <<= shiftAmt; + return R; } /// \brief Rotate left by rotateAmt. @@ -905,7 +933,14 @@ public: /// \brief Logical right-shift function. /// /// Logical right-shift this APInt by shiftAmt. - APInt lshr(const APInt &shiftAmt) const; + APInt lshr(const APInt &ShiftAmt) const { + APInt R(*this); + R.lshrInPlace(ShiftAmt); + return R; + } + + /// Logical right-shift this APInt by ShiftAmt in place. + void lshrInPlace(const APInt &ShiftAmt); /// \brief Left-shift function. /// @@ -1003,9 +1038,7 @@ public: /// /// \returns true if *this == Val bool operator==(uint64_t Val) const { - if (isSingleWord()) - return VAL == Val; - return EqualSlowCase(Val); + return (isSingleWord() || getActiveBits() <= 64) && getZExtValue() == Val; } /// \brief Equality comparison. @@ -1055,7 +1088,8 @@ public: /// /// \returns true if *this < RHS when considered unsigned. bool ult(uint64_t RHS) const { - return getActiveBits() > 64 ? false : getZExtValue() < RHS; + // Only need to check active bits if not a single word. + return (isSingleWord() || getActiveBits() <= 64) && getZExtValue() < RHS; } /// \brief Signed less than comparison @@ -1073,7 +1107,8 @@ public: /// /// \returns true if *this < RHS when considered signed. bool slt(int64_t RHS) const { - return getMinSignedBits() > 64 ? isNegative() : getSExtValue() < RHS; + return (!isSingleWord() && getMinSignedBits() > 64) ? isNegative() + : getSExtValue() < RHS; } /// \brief Unsigned less or equal comparison @@ -1123,7 +1158,8 @@ public: /// /// \returns true if *this > RHS when considered unsigned. bool ugt(uint64_t RHS) const { - return getActiveBits() > 64 ? true : getZExtValue() > RHS; + // Only need to check active bits if not a single word. + return (!isSingleWord() && getActiveBits() > 64) || getZExtValue() > RHS; } /// \brief Signed greather than comparison @@ -1141,7 +1177,8 @@ public: /// /// \returns true if *this > RHS when considered signed. bool sgt(int64_t RHS) const { - return getMinSignedBits() > 64 ? !isNegative() : getSExtValue() > RHS; + return (!isSingleWord() && getMinSignedBits() > 64) ? !isNegative() + : getSExtValue() > RHS; } /// \brief Unsigned greater or equal comparison @@ -1179,9 +1216,18 @@ public: /// This operation tests if there are any pairs of corresponding bits /// between this APInt and RHS that are both set. bool intersects(const APInt &RHS) const { - APInt temp(*this); - temp &= RHS; - return temp != 0; + assert(BitWidth == RHS.BitWidth && "Bit widths must be the same"); + if (isSingleWord()) + return (VAL & RHS.VAL) != 0; + return intersectsSlowCase(RHS); + } + + /// This operation checks that all bits set in this APInt are also set in RHS. + bool isSubsetOf(const APInt &RHS) const { + assert(BitWidth == RHS.BitWidth && "Bit widths must be the same"); + if (isSingleWord()) + return (VAL & ~RHS.VAL) == 0; + return isSubsetOfSlowCase(RHS); } /// @} @@ -1404,8 +1450,7 @@ public: /// int64_t. Otherwise an assertion will result. int64_t getSExtValue() const { if (isSingleWord()) - return int64_t(VAL << (APINT_BITS_PER_WORD - BitWidth)) >> - (APINT_BITS_PER_WORD - BitWidth); + return SignExtend64(VAL, BitWidth); assert(getMinSignedBits() <= 64 && "Too many bits for int64_t"); return int64_t(pVal[0]); } @@ -1759,13 +1804,13 @@ public: WordType *remainder, WordType *scratch, unsigned parts); - /// Shift a bignum left COUNT bits. Shifted in bits are zero. There are no - /// restrictions on COUNT. - static void tcShiftLeft(WordType *, unsigned parts, unsigned count); - - /// Shift a bignum right COUNT bits. Shifted in bits are zero. There are no - /// restrictions on COUNT. - static void tcShiftRight(WordType *, unsigned parts, unsigned count); + /// Shift a bignum left Count bits. Shifted in bits are zero. There are no + /// restrictions on Count. + static void tcShiftLeft(WordType *, unsigned Words, unsigned Count); + + /// Shift a bignum right Count bits. Shifted in bits are zero. There are no + /// restrictions on Count. + static void tcShiftRight(WordType *, unsigned Words, unsigned Count); /// The obvious AND, OR and XOR and complement operations. static void tcAnd(WordType *, const WordType *, unsigned); @@ -1959,7 +2004,7 @@ inline const APInt &umax(const APInt &A, /// \brief Compute GCD of two unsigned APInt values. /// /// This function returns the greatest common divisor of the two APInt values -/// using Euclid's algorithm. +/// using Stein's algorithm. /// /// \returns the greatest common divisor of A and B. APInt GreatestCommonDivisor(APInt A, APInt B); Modified: vendor/llvm/dist/include/llvm/ADT/BitVector.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/BitVector.h Thu Apr 20 21:04:21 2017 (r317217) +++ vendor/llvm/dist/include/llvm/ADT/BitVector.h Thu Apr 20 21:19:10 2017 (r317218) @@ -14,6 +14,8 @@ #ifndef LLVM_ADT_BITVECTOR_H #define LLVM_ADT_BITVECTOR_H +#include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/Support/MathExtras.h" #include #include @@ -455,6 +457,105 @@ public: return *this; } + BitVector &operator>>=(unsigned N) { + assert(N <= Size); + if (LLVM_UNLIKELY(empty() || N == 0)) + return *this; + + unsigned NumWords = NumBitWords(Size); + assert(NumWords >= 1); + + wordShr(N / BITWORD_SIZE); + + unsigned BitDistance = N % BITWORD_SIZE; + if (BitDistance == 0) + return *this; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 21:20:53 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 570A7D487FC; Thu, 20 Apr 2017 21:20: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 mx1.freebsd.org (Postfix) with ESMTPS id 01A181226; Thu, 20 Apr 2017 21:20:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KLKqlf002669; Thu, 20 Apr 2017 21:20:52 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLKpHB002660; Thu, 20 Apr 2017 21:20:51 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202120.v3KLKpHB002660@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:20:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317220 - in vendor/clang/dist: bindings/python/clang bindings/python/tests/cindex docs include/clang/AST include/clang/Basic include/clang/Driver include/clang/Index include/clang/Lex ... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:20:53 -0000 Author: dim Date: Thu Apr 20 21:20:51 2017 New Revision: 317220 URL: https://svnweb.freebsd.org/changeset/base/317220 Log: Vendor import of clang trunk r300890: https://llvm.org/svn/llvm-project/cfe/trunk@300890 Added: vendor/clang/dist/include/clang/Basic/AttrSubjectMatchRules.h (contents, props changed) vendor/clang/dist/test/CodeGen/fp-contract-on-asm.c (contents, props changed) vendor/clang/dist/test/CodeGen/thinlto-backend-option.ll vendor/clang/dist/test/CodeGenCXX/cxx1z-class-deduction.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/unaligned-duplicated-mangle-name.cpp (contents, props changed) vendor/clang/dist/test/CodeGenOpenCL/byval.cl vendor/clang/dist/test/CodeGenOpenCL/lifetime.cl vendor/clang/dist/test/CoverageMapping/pr32679.cpp (contents, props changed) vendor/clang/dist/test/Driver/arm-default-build-attributes.s (contents, props changed) vendor/clang/dist/test/Driver/avr-mmcu.c (contents, props changed) vendor/clang/dist/test/FixIt/fixit-pragma-attribute.c (contents, props changed) vendor/clang/dist/test/FixIt/fixit-pragma-attribute.cpp (contents, props changed) vendor/clang/dist/test/Lexer/newline-nul.c (contents, props changed) vendor/clang/dist/test/Misc/pragma-attribute-cxx-subject-match-rules.cpp (contents, props changed) vendor/clang/dist/test/Misc/pragma-attribute-cxx.cpp (contents, props changed) vendor/clang/dist/test/Misc/pragma-attribute-objc-subject-match-rules.m vendor/clang/dist/test/Misc/pragma-attribute-objc.m vendor/clang/dist/test/Misc/pragma-attribute-strict-subjects.c (contents, props changed) vendor/clang/dist/test/Misc/pragma-attribute-supported-attributes-list.test vendor/clang/dist/test/OpenMP/distribute_parallel_for_messages.cpp (contents, props changed) vendor/clang/dist/test/Parser/editor-placeholder-recovery.cpp (contents, props changed) vendor/clang/dist/test/Parser/pragma-attribute-declspec.cpp (contents, props changed) vendor/clang/dist/test/Parser/pragma-attribute.cpp (contents, props changed) vendor/clang/dist/test/Sema/pragma-attribute-strict-subjects.c (contents, props changed) vendor/clang/dist/test/Sema/pragma-attribute.c (contents, props changed) Modified: vendor/clang/dist/bindings/python/clang/__init__.py vendor/clang/dist/bindings/python/clang/cindex.py vendor/clang/dist/bindings/python/tests/cindex/test_translation_unit.py vendor/clang/dist/docs/LanguageExtensions.rst vendor/clang/dist/docs/SanitizerCoverage.rst vendor/clang/dist/docs/doxygen.cfg.in vendor/clang/dist/include/clang/AST/Decl.h vendor/clang/dist/include/clang/AST/StmtOpenMP.h vendor/clang/dist/include/clang/AST/TypeLoc.h vendor/clang/dist/include/clang/Basic/Attr.td vendor/clang/dist/include/clang/Basic/CMakeLists.txt vendor/clang/dist/include/clang/Basic/DiagnosticGroups.td vendor/clang/dist/include/clang/Basic/DiagnosticLexKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticParseKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Basic/IdentifierTable.h vendor/clang/dist/include/clang/Basic/LangOptions.def vendor/clang/dist/include/clang/Basic/TokenKinds.def vendor/clang/dist/include/clang/Driver/CLCompatOptions.td vendor/clang/dist/include/clang/Driver/Options.td vendor/clang/dist/include/clang/Index/IndexSymbol.h vendor/clang/dist/include/clang/Lex/Lexer.h vendor/clang/dist/include/clang/Lex/Token.h vendor/clang/dist/include/clang/Parse/CMakeLists.txt vendor/clang/dist/include/clang/Parse/Parser.h vendor/clang/dist/include/clang/Sema/AttributeList.h vendor/clang/dist/include/clang/Sema/Sema.h vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/Decl.cpp vendor/clang/dist/lib/AST/DeclPrinter.cpp vendor/clang/dist/lib/AST/ExternalASTMerger.cpp vendor/clang/dist/lib/AST/ItaniumMangle.cpp vendor/clang/dist/lib/AST/StmtOpenMP.cpp vendor/clang/dist/lib/ASTMatchers/Dynamic/Registry.cpp vendor/clang/dist/lib/Basic/Attributes.cpp vendor/clang/dist/lib/Basic/OpenMPKinds.cpp vendor/clang/dist/lib/Basic/Targets.cpp vendor/clang/dist/lib/CodeGen/BackendUtil.cpp vendor/clang/dist/lib/CodeGen/CGCall.cpp vendor/clang/dist/lib/CodeGen/CGCall.h vendor/clang/dist/lib/CodeGen/CGDebugInfo.cpp vendor/clang/dist/lib/CodeGen/CGDecl.cpp vendor/clang/dist/lib/CodeGen/CGExpr.cpp vendor/clang/dist/lib/CodeGen/CGExprConstant.cpp vendor/clang/dist/lib/CodeGen/CGObjC.cpp vendor/clang/dist/lib/CodeGen/CGStmt.cpp vendor/clang/dist/lib/CodeGen/CGVTables.cpp vendor/clang/dist/lib/CodeGen/CodeGenModule.cpp vendor/clang/dist/lib/CodeGen/CodeGenModule.h vendor/clang/dist/lib/CodeGen/CodeGenTypeCache.h vendor/clang/dist/lib/CodeGen/ModuleBuilder.cpp vendor/clang/dist/lib/Driver/SanitizerArgs.cpp vendor/clang/dist/lib/Driver/ToolChains/Clang.cpp vendor/clang/dist/lib/Driver/ToolChains/CommonArgs.cpp vendor/clang/dist/lib/Driver/ToolChains/CommonArgs.h vendor/clang/dist/lib/Driver/ToolChains/Gnu.cpp vendor/clang/dist/lib/Driver/ToolChains/MinGW.cpp vendor/clang/dist/lib/Driver/ToolChains/MinGW.h vendor/clang/dist/lib/Format/FormatTokenLexer.cpp vendor/clang/dist/lib/Format/TokenAnnotator.cpp vendor/clang/dist/lib/Frontend/CompilerInvocation.cpp vendor/clang/dist/lib/Headers/smmintrin.h vendor/clang/dist/lib/Headers/xmmintrin.h vendor/clang/dist/lib/Index/CommentToXML.cpp vendor/clang/dist/lib/Index/IndexDecl.cpp vendor/clang/dist/lib/Index/IndexSymbol.cpp vendor/clang/dist/lib/Index/IndexTypeSourceInfo.cpp vendor/clang/dist/lib/Index/IndexingContext.cpp vendor/clang/dist/lib/Index/IndexingContext.h vendor/clang/dist/lib/Lex/Lexer.cpp vendor/clang/dist/lib/Lex/ModuleMap.cpp vendor/clang/dist/lib/Lex/PPLexerChange.cpp vendor/clang/dist/lib/Parse/ParsePragma.cpp vendor/clang/dist/lib/Parse/ParseStmt.cpp vendor/clang/dist/lib/Parse/Parser.cpp vendor/clang/dist/lib/Sema/AttributeList.cpp vendor/clang/dist/lib/Sema/JumpDiagnostics.cpp vendor/clang/dist/lib/Sema/Sema.cpp vendor/clang/dist/lib/Sema/SemaAttr.cpp vendor/clang/dist/lib/Sema/SemaCXXScopeSpec.cpp vendor/clang/dist/lib/Sema/SemaChecking.cpp vendor/clang/dist/lib/Sema/SemaCoroutine.cpp vendor/clang/dist/lib/Sema/SemaDecl.cpp vendor/clang/dist/lib/Sema/SemaDeclAttr.cpp vendor/clang/dist/lib/Sema/SemaDeclCXX.cpp vendor/clang/dist/lib/Sema/SemaDeclObjC.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaOpenMP.cpp vendor/clang/dist/lib/Sema/SemaStmt.cpp vendor/clang/dist/lib/Sema/SemaTemplate.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiate.cpp vendor/clang/dist/lib/Serialization/ASTReaderStmt.cpp vendor/clang/dist/lib/Serialization/ASTWriterStmt.cpp vendor/clang/dist/test/CodeGen/debug-info-vla.c vendor/clang/dist/test/CodeGenCXX/debug-info.cpp vendor/clang/dist/test/CodeGenCXX/ubsan-suppress-checks.cpp vendor/clang/dist/test/CodeGenCXX/windows-itanium-dllexport.cpp vendor/clang/dist/test/CodeGenCoroutines/coro-alloc.cpp vendor/clang/dist/test/CodeGenObjC/empty-collection-literals.m vendor/clang/dist/test/CodeGenOpenCL/amdgpu-debug-info-variable-expression.cl vendor/clang/dist/test/Driver/cl-options.c vendor/clang/dist/test/Driver/clang_f_opts.c vendor/clang/dist/test/Driver/fopenmp.c vendor/clang/dist/test/Driver/fsanitize-coverage.c vendor/clang/dist/test/Driver/linux-as.c vendor/clang/dist/test/Driver/modules-ts.cpp vendor/clang/dist/test/Index/Core/index-source.cpp vendor/clang/dist/test/Lexer/cxx1z-trigraphs.cpp vendor/clang/dist/test/Misc/ast-print-out-of-line-func.cpp vendor/clang/dist/test/Modules/odr_hash.cpp vendor/clang/dist/test/Modules/umbrella-header-include-builtin.mm vendor/clang/dist/test/OpenMP/distribute_parallel_for_ast_print.cpp vendor/clang/dist/test/Parser/placeholder-recovery.m vendor/clang/dist/test/Preprocessor/init.c vendor/clang/dist/test/Sema/alloc-align-attr.c vendor/clang/dist/test/Sema/attr-availability.c vendor/clang/dist/test/Sema/attr-selectany.c vendor/clang/dist/test/SemaCXX/attr-selectany.cpp vendor/clang/dist/test/SemaCXX/coroutine-unhandled_exception-warning.cpp vendor/clang/dist/test/SemaCXX/coroutines.cpp vendor/clang/dist/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp vendor/clang/dist/test/SemaCXX/warn-unused-result.cpp vendor/clang/dist/test/SemaObjC/foreach.m vendor/clang/dist/test/lit.cfg vendor/clang/dist/test/lit.site.cfg.in vendor/clang/dist/tools/driver/cc1as_main.cpp vendor/clang/dist/unittests/Driver/ToolChainTest.cpp vendor/clang/dist/unittests/Format/FormatTestComments.cpp vendor/clang/dist/utils/TableGen/ClangAttrEmitter.cpp vendor/clang/dist/utils/TableGen/TableGen.cpp vendor/clang/dist/utils/TableGen/TableGenBackends.h Modified: vendor/clang/dist/bindings/python/clang/__init__.py ============================================================================== --- vendor/clang/dist/bindings/python/clang/__init__.py Thu Apr 20 21:19:16 2017 (r317219) +++ vendor/clang/dist/bindings/python/clang/__init__.py Thu Apr 20 21:20:51 2017 (r317220) @@ -20,13 +20,5 @@ The available modules are: Bindings for the Clang indexing library. """ - -# Python 3 uses unicode for strings. The bindings, in particular the interaction -# with ctypes, need modifying to handle conversions between unicode and -# c-strings. -import sys -if sys.version_info[0] != 2: - raise Exception("Only Python 2 is supported.") - __all__ = ['cindex'] Modified: vendor/clang/dist/bindings/python/clang/cindex.py ============================================================================== --- vendor/clang/dist/bindings/python/clang/cindex.py Thu Apr 20 21:19:16 2017 (r317219) +++ vendor/clang/dist/bindings/python/clang/cindex.py Thu Apr 20 21:20:51 2017 (r317220) @@ -67,6 +67,60 @@ import collections import clang.enumerations +import sys +if sys.version_info[0] == 3: + # Python 3 strings are unicode, translate them to/from utf8 for C-interop. + class c_interop_string(c_char_p): + + def __init__(self, p=None): + if p is None: + p = "" + if isinstance(p, str): + p = p.encode("utf8") + super(c_char_p, self).__init__(p) + + def __str__(self): + return self.value + + @property + def value(self): + if super(c_char_p, self).value is None: + return None + return super(c_char_p, self).value.decode("utf8") + + @classmethod + def from_param(cls, param): + if isinstance(param, str): + return cls(param) + if isinstance(param, bytes): + return cls(param) + raise TypeError("Cannot convert '{}' to '{}'".format(type(param).__name__, cls.__name__)) + + @staticmethod + def to_python_string(x, *args): + return x.value + + def b(x): + if isinstance(x, bytes): + return x + return x.encode('utf8') + + xrange = range + +elif sys.version_info[0] == 2: + # Python 2 strings are utf8 byte strings, no translation is needed for + # C-interop. + c_interop_string = c_char_p + + def _to_python_string(x, *args): + return x + + c_interop_string.to_python_string = staticmethod(_to_python_string) + + def b(x): + return x + + # ctypes doesn't implicitly convert c_void_p to the appropriate wrapper # object. This is a problem, because it means that from_parameter will see an # integer and pass the wrong value on platforms where int != void*. Work around @@ -157,6 +211,7 @@ class _CXString(Structure): assert isinstance(res, _CXString) return conf.lib.clang_getCString(res) + class SourceLocation(Structure): """ A SourceLocation represents a particular location within a source file. @@ -596,7 +651,7 @@ class CursorKind(BaseEnumeration): @staticmethod def get_all_kinds(): """Return all CursorKind enumeration instances.""" - return filter(None, CursorKind._kinds) + return [x for x in CursorKind._kinds if not x is None] def is_declaration(self): """Test if this is a declaration kind.""" @@ -2128,7 +2183,7 @@ class Type(Structure): """ Retrieve the offset of a field in the record. """ - return conf.lib.clang_Type_getOffsetOf(self, c_char_p(fieldname)) + return conf.lib.clang_Type_getOffsetOf(self, fieldname) def get_ref_qualifier(self): """ @@ -2239,7 +2294,7 @@ class CompletionChunk: def spelling(self): if self.__kindNumber in SpellingCache: return SpellingCache[self.__kindNumber] - return conf.lib.clang_getCompletionChunkText(self.cs, self.key).spelling + return conf.lib.clang_getCompletionChunkText(self.cs, self.key) # We do not use @CachedProperty here, as the manual implementation is # apparently still significantly faster. Please profile carefully if you @@ -2345,7 +2400,7 @@ class CompletionString(ClangObject): return " | ".join([str(a) for a in self]) \ + " || Priority: " + str(self.priority) \ + " || Availability: " + str(self.availability) \ - + " || Brief comment: " + str(self.briefComment.spelling) + + " || Brief comment: " + str(self.briefComment) availabilityKinds = { 0: CompletionChunk.Kind("Available"), @@ -2542,7 +2597,7 @@ class TranslationUnit(ClangObject): args_array = None if len(args) > 0: - args_array = (c_char_p * len(args))(* args) + args_array = (c_char_p * len(args))(*[b(x) for x in args]) unsaved_array = None if len(unsaved_files) > 0: @@ -2551,8 +2606,8 @@ class TranslationUnit(ClangObject): if hasattr(contents, "read"): contents = contents.read() - unsaved_array[i].name = name - unsaved_array[i].contents = contents + unsaved_array[i].name = b(name) + unsaved_array[i].contents = b(contents) unsaved_array[i].length = len(contents) ptr = conf.lib.clang_parseTranslationUnit(index, filename, args_array, @@ -2797,8 +2852,8 @@ class TranslationUnit(ClangObject): print(value) if not isinstance(value, str): raise TypeError('Unexpected unsaved file contents.') - unsaved_files_array[i].name = name - unsaved_files_array[i].contents = value + unsaved_files_array[i].name = b(name) + unsaved_files_array[i].contents = b(value) unsaved_files_array[i].length = len(value) ptr = conf.lib.clang_codeCompleteAt(self, path, line, column, unsaved_files_array, len(unsaved_files), options) @@ -2833,7 +2888,7 @@ class File(ClangObject): @property def name(self): """Return the complete file and path name of the file.""" - return conf.lib.clang_getCString(conf.lib.clang_getFileName(self)) + return conf.lib.clang_getFileName(self) @property def time(self): @@ -3064,7 +3119,7 @@ functionList = [ [c_object_p]), ("clang_CompilationDatabase_fromDirectory", - [c_char_p, POINTER(c_uint)], + [c_interop_string, POINTER(c_uint)], c_object_p, CompilationDatabase.from_result), @@ -3074,7 +3129,7 @@ functionList = [ CompileCommands.from_result), ("clang_CompilationDatabase_getCompileCommands", - [c_object_p, c_char_p], + [c_object_p, c_interop_string], c_object_p, CompileCommands.from_result), @@ -3109,7 +3164,7 @@ functionList = [ c_uint), ("clang_codeCompleteAt", - [TranslationUnit, c_char_p, c_int, c_int, c_void_p, c_int, c_int], + [TranslationUnit, c_interop_string, c_int, c_int, c_void_p, c_int, c_int], POINTER(CCRStructure)), ("clang_codeCompleteGetDiagnostic", @@ -3125,7 +3180,7 @@ functionList = [ c_object_p), ("clang_createTranslationUnit", - [Index, c_char_p], + [Index, c_interop_string], c_object_p), ("clang_CXXConstructor_isConvertingConstructor", @@ -3215,7 +3270,8 @@ functionList = [ ("clang_formatDiagnostic", [Diagnostic, c_uint], - _CXString), + _CXString, + _CXString.from_result), ("clang_getArgType", [Type, c_uint], @@ -3255,7 +3311,8 @@ functionList = [ ("clang_getCompletionBriefComment", [c_void_p], - _CXString), + _CXString, + _CXString.from_result), ("clang_getCompletionChunkCompletionString", [c_void_p, c_int], @@ -3267,7 +3324,8 @@ functionList = [ ("clang_getCompletionChunkText", [c_void_p, c_int], - _CXString), + _CXString, + _CXString.from_result), ("clang_getCompletionPriority", [c_void_p], @@ -3275,7 +3333,8 @@ functionList = [ ("clang_getCString", [_CXString], - c_char_p), + c_interop_string, + c_interop_string.to_python_string), ("clang_getCursor", [TranslationUnit, SourceLocation], @@ -3422,12 +3481,13 @@ functionList = [ Type.from_result), ("clang_getFile", - [TranslationUnit, c_char_p], + [TranslationUnit, c_interop_string], c_object_p), ("clang_getFileName", [File], - _CXString), # TODO go through _CXString.from_result? + _CXString, + _CXString.from_result), ("clang_getFileTime", [File], @@ -3551,7 +3611,8 @@ functionList = [ ("clang_getTUResourceUsageName", [c_uint], - c_char_p), + c_interop_string, + c_interop_string.to_python_string), ("clang_getTypeDeclaration", [Type], @@ -3646,7 +3707,7 @@ functionList = [ bool), ("clang_parseTranslationUnit", - [Index, c_char_p, c_void_p, c_int, c_void_p, c_int, c_int], + [Index, c_interop_string, c_void_p, c_int, c_void_p, c_int, c_int], c_object_p), ("clang_reparseTranslationUnit", @@ -3654,7 +3715,7 @@ functionList = [ c_int), ("clang_saveTranslationUnit", - [TranslationUnit, c_char_p, c_uint], + [TranslationUnit, c_interop_string, c_uint], c_int), ("clang_tokenize", @@ -3726,7 +3787,7 @@ functionList = [ Type.from_result), ("clang_Type_getOffsetOf", - [Type, c_char_p], + [Type, c_interop_string], c_longlong), ("clang_Type_getSizeOf", @@ -3785,7 +3846,8 @@ def register_functions(lib, ignore_error def register(item): return register_function(lib, item, ignore_errors) - map(register, functionList) + for f in functionList: + register(f) class Config: library_path = None Modified: vendor/clang/dist/bindings/python/tests/cindex/test_translation_unit.py ============================================================================== --- vendor/clang/dist/bindings/python/tests/cindex/test_translation_unit.py Thu Apr 20 21:19:16 2017 (r317219) +++ vendor/clang/dist/bindings/python/tests/cindex/test_translation_unit.py Thu Apr 20 21:20:51 2017 (r317220) @@ -59,9 +59,12 @@ int SOME_DEFINE; assert spellings[-1] == 'y' def test_unsaved_files_2(): - import StringIO + try: + from StringIO import StringIO + except: + from io import StringIO tu = TranslationUnit.from_source('fake.c', unsaved_files = [ - ('fake.c', StringIO.StringIO('int x;'))]) + ('fake.c', StringIO('int x;'))]) spellings = [c.spelling for c in tu.cursor.get_children()] assert spellings[-1] == 'x' Modified: vendor/clang/dist/docs/LanguageExtensions.rst ============================================================================== --- vendor/clang/dist/docs/LanguageExtensions.rst Thu Apr 20 21:19:16 2017 (r317219) +++ vendor/clang/dist/docs/LanguageExtensions.rst Thu Apr 20 21:20:51 2017 (r317220) @@ -2346,3 +2346,178 @@ statements in C) The pragma can also be used with ``off`` which turns FP contraction off for a section of the code. This can be useful when fast contraction is otherwise enabled for the translation unit with the ``-ffp-contract=fast`` flag. + +Specifying an attribute for multiple declarations (#pragma clang attribute) +=========================================================================== + +The ``#pragma clang attribute`` directive can be used to apply an attribute to +multiple declarations. The ``#pragma clang attribute push`` variation of the +directive pushes a new attribute to the attribute stack. The declarations that +follow the pragma receive the attributes that are on the attribute stack, until +the stack is cleared using a ``#pragma clang attribute pop`` directive. Multiple +push directives can be nested inside each other. + +The attributes that are used in the ``#pragma clang attribute`` directives +can be written using the GNU-style syntax: + +.. code-block:: c++ + + #pragma clang attribute push(__attribute__((annotate("custom"))), apply_to = function) + + void function(); // The function now has the annotate("custom") attribute + + #pragma clang attribute pop + +The attributes can also be written using the C++11 style syntax: + +.. code-block:: c++ + + #pragma clang attribute push([[noreturn]], apply_to = function) + + void function(); // The function now has the [[noreturn]] attribute + + #pragma clang attribute pop + +The ``__declspec`` style syntax is also supported: + +.. code-block:: c++ + + #pragma clang attribute push(__declspec(dllexport), apply_to = function) + + void function(); // The function now has the __declspec(dllexport) attribute + + #pragma clang attribute pop + +A single push directive accepts only one attribute regardless of the syntax +used. + +Subject Match Rules +------------------- + +The set of declarations that receive a single attribute from the attribute stack +depends on the subject match rules that were specified in the pragma. Subject +match rules are specified after the attribute. The compiler expects an +identifier that corresponds to the subject set specifier. The ``apply_to`` +specifier is currently the only supported subject set specifier. It allows you +to specify match rules that form a subset of the attribute's allowed subject +set, i.e. the compiler doesn't require all of the attribute's subjects. For +example, an attribute like ``[[nodiscard]]`` whose subject set includes +``enum``, ``record`` and ``hasType(functionType)``, requires the presence of at +least one of these rules after ``apply_to``: + +.. code-block:: c++ + + #pragma clang attribute push([[nodiscard]], apply_to = enum) + + enum Enum1 { A1, B1 }; // The enum will receive [[nodiscard]] + + struct Record1 { }; // The struct will *not* receive [[nodiscard]] + + #pragma clang attribute pop + + #pragma clang attribute push([[nodiscard]], apply_to = any(record, enum)) + + enum Enum2 { A2, B2 }; // The enum will receive [[nodiscard]] + + struct Record2 { }; // The struct *will* receive [[nodiscard]] + + #pragma clang attribute pop + + // This is an error, since [[nodiscard]] can't be applied to namespaces: + #pragma clang attribute push([[nodiscard]], apply_to = any(record, namespace)) + + #pragma clang attribute pop + +Multiple match rules can be specified using the ``any`` match rule, as shown +in the example above. The ``any`` rule applies attributes to all declarations +that are matched by at least one of the rules in the ``any``. It doesn't nest +and can't be used inside the other match rules. Redundant match rules or rules +that conflict with one another should not be used inside of ``any``. + +Clang supports the following match rules: + +- ``function``: Can be used to apply attributes to functions. This includes C++ + member functions, static functions, operators, and constructors/destructors. + +- ``function(is_member)``: Can be used to apply attributes to C++ member + functions. This includes members like static functions, operators, and + constructors/destructors. + +- ``hasType(functionType)``: Can be used to apply attributes to functions, C++ + member functions, and variables/fields whose type is a function pointer. It + does not apply attributes to Objective-C methods or blocks. + +- ``type_alias``: Can be used to apply attributes to ``typedef`` declarations + and C++11 type aliases. + +- ``record``: Can be used to apply attributes to ``struct``, ``class``, and + ``union`` declarations. + +- ``record(unless(is_union))``: Can be used to apply attributes only to + ``struct`` and ``class`` declarations. + +- ``enum``: Can be be used to apply attributes to enumeration declarations. + +- ``enum_constant``: Can be used to apply attributes to enumerators. + +- ``variable``: Can be used to apply attributes to variables, including + local variables, parameters, global variables, and static member variables. + It does not apply attributes to instance member variables or Objective-C + ivars. + +- ``variable(is_thread_local)``: Can be used to apply attributes to thread-local + variables only. + +- ``variable(is_global)``: Can be used to apply attributes to global variables + only. + +- ``variable(is_parameter)``: Can be used to apply attributes to parameters + only. + +- ``variable(unless(is_parameter))``: Can be used to apply attributes to all + the variables that are not parameters. + +- ``field``: Can be used to apply attributes to non-static member variables + in a record. This includes Objective-C ivars. + +- ``namespace``: Can be used to apply attributes to ``namespace`` declarations. + +- ``objc_interface``: Can be used to apply attributes to ``@interface`` + declarations. + +- ``objc_protocol``: Can be used to apply attributes to ``@protocol`` + declarations. + +- ``objc_category``: Can be used to apply attributes to category declarations, + including class extensions. + +- ``objc_method``: Can be used to apply attributes to Objective-C methods, + including instance and class methods. Implicit methods like implicit property + getters and setters do not receive the attribute. + +- ``objc_method(is_instance)``: Can be used to apply attributes to Objective-C + instance methods. + +- ``objc_property``: Can be used to apply attributes to ``@property`` + declarations. + +- ``block``: Can be used to apply attributes to block declarations. This does + not include variables/fields of block pointer type. + +The use of ``unless`` in match rules is currently restricted to a strict set of +sub-rules that are used by the supported attributes. That means that even though +``variable(unless(is_parameter))`` is a valid match rule, +``variable(unless(is_thread_local))`` is not. + +Supported Attributes +-------------------- + +Not all attributes can be used with the ``#pragma clang attribute`` directive. +Notably, statement attributes like ``[[fallthrough]]`` or type attributes +like ``address_space`` aren't supported by this directive. You can determine +whether or not an attribute is supported by the pragma by referring to the +:doc:`individual documentation for that attribute `. + +The attributes are applied to all matching declarations individually, even when +the attribute is semantically incorrect. The attributes that aren't applied to +any declaration are not verified semantically. Modified: vendor/clang/dist/docs/SanitizerCoverage.rst ============================================================================== --- vendor/clang/dist/docs/SanitizerCoverage.rst Thu Apr 20 21:19:16 2017 (r317219) +++ vendor/clang/dist/docs/SanitizerCoverage.rst Thu Apr 20 21:20:51 2017 (r317220) @@ -25,17 +25,10 @@ following compile-time flags: **extra** slowdown). * ``-fsanitize-coverage=edge`` for edge-level coverage (up to 40% slowdown). -You may also specify ``-fsanitize-coverage=indirect-calls`` for -additional `caller-callee coverage`_. - At run time, pass ``coverage=1`` in ``ASAN_OPTIONS``, ``LSAN_OPTIONS``, ``MSAN_OPTIONS`` or ``UBSAN_OPTIONS``, as appropriate. For the standalone coverage mode, use ``UBSAN_OPTIONS``. -To get `Coverage counters`_, add ``-fsanitize-coverage=8bit-counters`` -to one of the above compile-time flags. At runtime, use -``*SAN_OPTIONS=coverage=1:coverage_counters=1``. - Example: .. code-block:: console @@ -199,135 +192,9 @@ edges by introducing new dummy blocks an |/ C -Bitset -====== - -When ``coverage_bitset=1`` run-time flag is given, the coverage will also be -dumped as a bitset (text file with 1 for blocks that have been executed and 0 -for blocks that were not). - -.. code-block:: console - - % clang++ -fsanitize=address -fsanitize-coverage=edge cov.cc - % ASAN_OPTIONS="coverage=1:coverage_bitset=1" ./a.out - main - % ASAN_OPTIONS="coverage=1:coverage_bitset=1" ./a.out 1 - foo - main - % head *bitset* - ==> a.out.38214.bitset-sancov <== - 01101 - ==> a.out.6128.bitset-sancov <== - 11011% - -For a given executable the length of the bitset is always the same (well, -unless dlopen/dlclose come into play), so the bitset coverage can be -easily used for bitset-based corpus distillation. - -Caller-callee coverage -====================== - -**Deprecated, don't use** - -Every indirect function call is instrumented with a run-time function call that -captures caller and callee. At the shutdown time the process dumps a separate -file called ``caller-callee.PID.sancov`` which contains caller/callee pairs as -pairs of lines (odd lines are callers, even lines are callees) - -.. code-block:: console - - a.out 0x4a2e0c - a.out 0x4a6510 - a.out 0x4a2e0c - a.out 0x4a87f0 - -Current limitations: - -* Only the first 14 callees for every caller are recorded, the rest are silently - ignored. -* The output format is not very compact since caller and callee may reside in - different modules and we need to spell out the module names. -* The routine that dumps the output is not optimized for speed -* Only Linux x86_64 is tested so far. -* Sandboxes are not supported. - -Coverage counters -================= - -**Deprecated, don't use** - -This experimental feature is inspired by -`AFL `__'s coverage -instrumentation. With additional compile-time and run-time flags you can get -more sensitive coverage information. In addition to boolean values assigned to -every basic block (edge) the instrumentation will collect imprecise counters. -On exit, every counter will be mapped to a 8-bit bitset representing counter -ranges: ``1, 2, 3, 4-7, 8-15, 16-31, 32-127, 128+`` and those 8-bit bitsets will -be dumped to disk. - -.. code-block:: console - - % clang++ -g cov.cc -fsanitize=address -fsanitize-coverage=edge,8bit-counters - % ASAN_OPTIONS="coverage=1:coverage_counters=1" ./a.out - % ls -l *counters-sancov - ... a.out.17110.counters-sancov - % xxd *counters-sancov - 0000000: 0001 0100 01 - -These counters may also be used for in-process coverage-guided fuzzers. See -``include/sanitizer/coverage_interface.h``: - -.. code-block:: c++ - - // The coverage instrumentation may optionally provide imprecise counters. - // Rather than exposing the counter values to the user we instead map - // the counters to a bitset. - // Every counter is associated with 8 bits in the bitset. - // We define 8 value ranges: 1, 2, 3, 4-7, 8-15, 16-31, 32-127, 128+ - // The i-th bit is set to 1 if the counter value is in the i-th range. - // This counter-based coverage implementation is *not* thread-safe. - - // Returns the number of registered coverage counters. - uintptr_t __sanitizer_get_number_of_counters(); - // Updates the counter 'bitset', clears the counters and returns the number of - // new bits in 'bitset'. - // If 'bitset' is nullptr, only clears the counters. - // Otherwise 'bitset' should be at least - // __sanitizer_get_number_of_counters bytes long and 8-aligned. - uintptr_t - __sanitizer_update_counter_bitset_and_clear_counters(uint8_t *bitset); - -Tracing basic blocks -==================== - -**Deprecated, don't use** - -Experimental support for basic block (or edge) tracing. -With ``-fsanitize-coverage=trace-bb`` the compiler will insert -``__sanitizer_cov_trace_basic_block(s32 *id)`` before every function, basic block, or edge -(depending on the value of ``-fsanitize-coverage=[func,bb,edge]``). -Example: - -.. code-block:: console - - % clang -g -fsanitize=address -fsanitize-coverage=edge,trace-bb foo.cc - % ASAN_OPTIONS=coverage=1 ./a.out - -This will produce two files after the process exit: -`trace-points.PID.sancov` and `trace-events.PID.sancov`. -The first file will contain a textual description of all the instrumented points in the program -in the form that you can feed into llvm-symbolizer (e.g. `a.out 0x4dca89`), one per line. -The second file will contain the actual execution trace as a sequence of 4-byte integers --- these integers are the indices into the array of instrumented points (the first file). - -Basic block tracing is currently supported only for single-threaded applications. - - Tracing PCs =========== -**Deprecated, don't use** - *Experimental* feature similar to tracing basic blocks, but with a different API. With ``-fsanitize-coverage=trace-pc`` the compiler will insert ``__sanitizer_cov_trace_pc()`` on every edge. @@ -529,62 +396,3 @@ memory-mapped file as soon as it collect Note that on 64-bit platforms, this method writes 2x more data than the default, because it stores full PC values instead of 32-bit offsets. -In-process fuzzing -================== - -Coverage data could be useful for fuzzers and sometimes it is preferable to run -a fuzzer in the same process as the code being fuzzed (in-process fuzzer). - -You can use ``__sanitizer_get_total_unique_coverage()`` from -```` which returns the number of currently -covered entities in the program. This will tell the fuzzer if the coverage has -increased after testing every new input. - -If a fuzzer finds a bug in the ASan run, you will need to save the reproducer -before exiting the process. Use ``__asan_set_death_callback`` from -```` to do that. - -An example of such fuzzer can be found in `the LLVM tree -`_. - -Performance -=========== - -This coverage implementation is **fast**. With function-level coverage -(``-fsanitize-coverage=func``) the overhead is not measurable. With -basic-block-level coverage (``-fsanitize-coverage=bb``) the overhead varies -between 0 and 25%. - -============== ========= ========= ========= ========= ========= ========= - benchmark cov0 cov1 diff 0-1 cov2 diff 0-2 diff 1-2 -============== ========= ========= ========= ========= ========= ========= - 400.perlbench 1296.00 1307.00 1.01 1465.00 1.13 1.12 - 401.bzip2 858.00 854.00 1.00 1010.00 1.18 1.18 - 403.gcc 613.00 617.00 1.01 683.00 1.11 1.11 - 429.mcf 605.00 582.00 0.96 610.00 1.01 1.05 - 445.gobmk 896.00 880.00 0.98 1050.00 1.17 1.19 - 456.hmmer 892.00 892.00 1.00 918.00 1.03 1.03 - 458.sjeng 995.00 1009.00 1.01 1217.00 1.22 1.21 -462.libquantum 497.00 492.00 0.99 534.00 1.07 1.09 - 464.h264ref 1461.00 1467.00 1.00 1543.00 1.06 1.05 - 471.omnetpp 575.00 590.00 1.03 660.00 1.15 1.12 - 473.astar 658.00 652.00 0.99 715.00 1.09 1.10 - 483.xalancbmk 471.00 491.00 1.04 582.00 1.24 1.19 - 433.milc 616.00 627.00 1.02 627.00 1.02 1.00 - 444.namd 602.00 601.00 1.00 654.00 1.09 1.09 - 447.dealII 630.00 634.00 1.01 653.00 1.04 1.03 - 450.soplex 365.00 368.00 1.01 395.00 1.08 1.07 - 453.povray 427.00 434.00 1.02 495.00 1.16 1.14 - 470.lbm 357.00 375.00 1.05 370.00 1.04 0.99 - 482.sphinx3 927.00 928.00 1.00 1000.00 1.08 1.08 -============== ========= ========= ========= ========= ========= ========= - -Why another coverage? -===================== - -Why did we implement yet another code coverage? - * We needed something that is lightning fast, plays well with - AddressSanitizer, and does not significantly increase the binary size. - * Traditional coverage implementations based in global counters - `suffer from contention on counters - `_. Modified: vendor/clang/dist/docs/doxygen.cfg.in ============================================================================== --- vendor/clang/dist/docs/doxygen.cfg.in Thu Apr 20 21:19:16 2017 (r317219) +++ vendor/clang/dist/docs/doxygen.cfg.in Thu Apr 20 21:20:51 2017 (r317220) @@ -132,7 +132,7 @@ INLINE_INHERITED_MEMB = NO # shortest path that makes the file name unique will be used # The default value is: YES. -FULL_PATH_NAMES = NO +FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand @@ -144,7 +144,7 @@ FULL_PATH_NAMES = NO # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. -STRIP_FROM_PATH = ../.. +STRIP_FROM_PATH = @abs_srcdir@/.. # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which @@ -153,7 +153,7 @@ STRIP_FROM_PATH = ../.. # specify the list of include paths that are normally passed to the compiler # using the -I flag. -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = @abs_srcdir@/../include # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't @@ -513,7 +513,7 @@ SHOW_GROUPED_MEMB_INC = NO # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. -FORCE_LOCAL_INCLUDES = NO +FORCE_LOCAL_INCLUDES = YES # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. Modified: vendor/clang/dist/include/clang/AST/Decl.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Decl.h Thu Apr 20 21:19:16 2017 (r317219) +++ vendor/clang/dist/include/clang/AST/Decl.h Thu Apr 20 21:20:51 2017 (r317220) @@ -2082,10 +2082,7 @@ public: const Attr *getUnusedResultAttr() const; /// \brief Returns true if this function or its return type has the - /// warn_unused_result attribute. If the return type has the attribute and - /// this function is a method of the return type's class, then false will be - /// returned to avoid spurious warnings on member methods such as assignment - /// operators. + /// warn_unused_result attribute. bool hasUnusedResultAttr() const { return getUnusedResultAttr() != nullptr; } /// \brief Returns the storage class as written in the source. For the Modified: vendor/clang/dist/include/clang/AST/StmtOpenMP.h ============================================================================== --- vendor/clang/dist/include/clang/AST/StmtOpenMP.h Thu Apr 20 21:19:16 2017 (r317219) +++ vendor/clang/dist/include/clang/AST/StmtOpenMP.h Thu Apr 20 21:20:51 2017 (r317220) @@ -318,8 +318,9 @@ class OMPLoopDirective : public OMPExecu /// \brief Offsets to the stored exprs. /// This enumeration contains offsets to all the pointers to children /// expressions stored in OMPLoopDirective. - /// The first 9 children are nesessary for all the loop directives, and - /// the next 10 are specific to the worksharing ones. + /// The first 9 children are necessary for all the loop directives, + /// the next 8 are specific to the worksharing ones, and the next 11 are + /// used for combined constructs containing two pragmas associated to loops. /// After the fixed children, three arrays of length CollapsedNum are /// allocated: loop counters, their updates and final values. /// PrevLowerBound and PrevUpperBound are used to communicate blocking @@ -344,7 +345,7 @@ class OMPLoopDirective : public OMPExecu // specify the offset to the end (and start of the following counters/ // updates/finals arrays). DefaultEnd = 9, - // The following 12 exprs are used by worksharing and distribute loops only. + // The following 8 exprs are used by worksharing and distribute loops only. IsLastIterVariableOffset = 9, LowerBoundVariableOffset = 10, UpperBoundVariableOffset = 11, @@ -353,13 +354,22 @@ class OMPLoopDirective : public OMPExecu NextLowerBoundOffset = 14, NextUpperBoundOffset = 15, NumIterationsOffset = 16, + // Offset to the end for worksharing loop directives. + WorksharingEnd = 17, PrevLowerBoundVariableOffset = 17, PrevUpperBoundVariableOffset = 18, DistIncOffset = 19, PrevEnsureUpperBoundOffset = 20, + CombinedLowerBoundVariableOffset = 21, + CombinedUpperBoundVariableOffset = 22, + CombinedEnsureUpperBoundOffset = 23, + CombinedInitOffset = 24, + CombinedConditionOffset = 25, + CombinedNextLowerBoundOffset = 26, + CombinedNextUpperBoundOffset = 27, // Offset to the end (and start of the following counters/updates/finals - // arrays) for worksharing loop directives. - WorksharingEnd = 21, + // arrays) for combined distribute loop directives. + CombinedDistributeEnd = 28, }; /// \brief Get the counters storage. @@ -423,11 +433,12 @@ protected: /// \brief Offset to the start of children expression arrays. static unsigned getArraysOffset(OpenMPDirectiveKind Kind) { - return (isOpenMPWorksharingDirective(Kind) || - isOpenMPTaskLoopDirective(Kind) || - isOpenMPDistributeDirective(Kind)) - ? WorksharingEnd - : DefaultEnd; + if (isOpenMPLoopBoundSharingDirective(Kind)) + return CombinedDistributeEnd; + if (isOpenMPWorksharingDirective(Kind) || isOpenMPTaskLoopDirective(Kind) || + isOpenMPDistributeDirective(Kind)) + return WorksharingEnd; + return DefaultEnd; } /// \brief Children number. @@ -515,33 +526,60 @@ protected: *std::next(child_begin(), NumIterationsOffset) = NI; } void setPrevLowerBoundVariable(Expr *PrevLB) { - assert((isOpenMPWorksharingDirective(getDirectiveKind()) || - isOpenMPTaskLoopDirective(getDirectiveKind()) || - isOpenMPDistributeDirective(getDirectiveKind())) && - "expected worksharing loop directive"); + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); *std::next(child_begin(), PrevLowerBoundVariableOffset) = PrevLB; } void setPrevUpperBoundVariable(Expr *PrevUB) { - assert((isOpenMPWorksharingDirective(getDirectiveKind()) || - isOpenMPTaskLoopDirective(getDirectiveKind()) || - isOpenMPDistributeDirective(getDirectiveKind())) && - "expected worksharing loop directive"); + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); *std::next(child_begin(), PrevUpperBoundVariableOffset) = PrevUB; } void setDistInc(Expr *DistInc) { - assert((isOpenMPWorksharingDirective(getDirectiveKind()) || - isOpenMPTaskLoopDirective(getDirectiveKind()) || - isOpenMPDistributeDirective(getDirectiveKind())) && - "expected worksharing loop directive"); + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); *std::next(child_begin(), DistIncOffset) = DistInc; } void setPrevEnsureUpperBound(Expr *PrevEUB) { - assert((isOpenMPWorksharingDirective(getDirectiveKind()) || - isOpenMPTaskLoopDirective(getDirectiveKind()) || - isOpenMPDistributeDirective(getDirectiveKind())) && - "expected worksharing loop directive"); + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); *std::next(child_begin(), PrevEnsureUpperBoundOffset) = PrevEUB; } + void setCombinedLowerBoundVariable(Expr *CombLB) { + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); + *std::next(child_begin(), CombinedLowerBoundVariableOffset) = CombLB; + } + void setCombinedUpperBoundVariable(Expr *CombUB) { + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); + *std::next(child_begin(), CombinedUpperBoundVariableOffset) = CombUB; + } + void setCombinedEnsureUpperBound(Expr *CombEUB) { + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); + *std::next(child_begin(), CombinedEnsureUpperBoundOffset) = CombEUB; + } + void setCombinedInit(Expr *CombInit) { + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); + *std::next(child_begin(), CombinedInitOffset) = CombInit; + } + void setCombinedCond(Expr *CombCond) { + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); + *std::next(child_begin(), CombinedConditionOffset) = CombCond; + } + void setCombinedNextLowerBound(Expr *CombNLB) { + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); + *std::next(child_begin(), CombinedNextLowerBoundOffset) = CombNLB; + } + void setCombinedNextUpperBound(Expr *CombNUB) { + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); + *std::next(child_begin(), CombinedNextUpperBoundOffset) = CombNUB; + } void setCounters(ArrayRef A); void setPrivateCounters(ArrayRef A); void setInits(ArrayRef A); @@ -549,6 +587,33 @@ protected: void setFinals(ArrayRef A); public: + /// The expressions built to support OpenMP loops in combined/composite + /// pragmas (e.g. pragma omp distribute parallel for) + struct DistCombinedHelperExprs { + /// DistributeLowerBound - used when composing 'omp distribute' with + /// 'omp for' in a same construct. + Expr *LB; + /// DistributeUpperBound - used when composing 'omp distribute' with + /// 'omp for' in a same construct. + Expr *UB; + /// DistributeEnsureUpperBound - used when composing 'omp distribute' + /// with 'omp for' in a same construct, EUB depends on DistUB + Expr *EUB; + /// Distribute loop iteration variable init used when composing 'omp + /// distribute' + /// with 'omp for' in a same construct + Expr *Init; + /// Distribute Loop condition used when composing 'omp distribute' + /// with 'omp for' in a same construct + Expr *Cond; + /// Update of LowerBound for statically sheduled omp loops for + /// outer loop in combined constructs (e.g. 'distribute parallel for') + Expr *NLB; + /// Update of UpperBound for statically sheduled omp loops for + /// outer loop in combined constructs (e.g. 'distribute parallel for') + Expr *NUB; + }; + /// \brief The expressions built for the OpenMP loop CodeGen for the /// whole collapsed loop nest. struct HelperExprs { @@ -611,6 +676,9 @@ public: /// Init statement for all captured expressions. Stmt *PreInits; + /// Expressions used when combining OpenMP loop pragmas + DistCombinedHelperExprs DistCombinedFields; + /// \brief Check if all the expressions are built (does not check the /// worksharing ones). bool builtAll() { @@ -654,6 +722,13 @@ public: Finals[i] = nullptr; } PreInits = nullptr; + DistCombinedFields.LB = nullptr; + DistCombinedFields.UB = nullptr; + DistCombinedFields.EUB = nullptr; + DistCombinedFields.Init = nullptr; + DistCombinedFields.Cond = nullptr; + DistCombinedFields.NLB = nullptr; + DistCombinedFields.NUB = nullptr; } }; @@ -757,37 +832,71 @@ public: *std::next(child_begin(), NumIterationsOffset))); } Expr *getPrevLowerBoundVariable() const { - assert((isOpenMPWorksharingDirective(getDirectiveKind()) || - isOpenMPTaskLoopDirective(getDirectiveKind()) || - isOpenMPDistributeDirective(getDirectiveKind())) && - "expected worksharing loop directive"); + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); return const_cast(reinterpret_cast( *std::next(child_begin(), PrevLowerBoundVariableOffset))); } Expr *getPrevUpperBoundVariable() const { - assert((isOpenMPWorksharingDirective(getDirectiveKind()) || - isOpenMPTaskLoopDirective(getDirectiveKind()) || - isOpenMPDistributeDirective(getDirectiveKind())) && - "expected worksharing loop directive"); + assert(isOpenMPLoopBoundSharingDirective(getDirectiveKind()) && + "expected loop bound sharing directive"); return const_cast(reinterpret_cast( *std::next(child_begin(), PrevUpperBoundVariableOffset))); } Expr *getDistInc() const { - assert((isOpenMPWorksharingDirective(getDirectiveKind()) || - isOpenMPTaskLoopDirective(getDirectiveKind()) || - isOpenMPDistributeDirective(getDirectiveKind())) && - "expected worksharing loop directive"); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 21:21:02 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 352C2D4882B; Thu, 20 Apr 2017 21:21:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E4A2B125F; Thu, 20 Apr 2017 21:21:01 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KLL1Xb002785; Thu, 20 Apr 2017 21:21:01 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLKxsw002764; Thu, 20 Apr 2017 21:20:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202120.v3KLKxsw002764@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:20:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317222 - in vendor/compiler-rt/dist: include/sanitizer lib/asan lib/asan/tests lib/dfsan lib/lsan lib/sanitizer_common lib/scudo lib/tsan/rtl lib/ubsan lib/xray test/asan/TestCases tes... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:21:02 -0000 Author: dim Date: Thu Apr 20 21:20:59 2017 New Revision: 317222 URL: https://svnweb.freebsd.org/changeset/base/317222 Log: Vendor import of compiler-rt trunk r300890: https://llvm.org/svn/llvm-project/compiler-rt/trunk@300890 Added: vendor/compiler-rt/dist/test/asan/TestCases/Posix/strchr.c (contents, props changed) Deleted: vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-caller-callee.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-caller-callee-total-count.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-reset.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-tracing.cc Modified: vendor/compiler-rt/dist/include/sanitizer/coverage_interface.h vendor/compiler-rt/dist/lib/asan/asan_thread.cc vendor/compiler-rt/dist/lib/asan/asan_thread.h vendor/compiler-rt/dist/lib/asan/tests/asan_test_main.cc vendor/compiler-rt/dist/lib/dfsan/done_abilist.txt vendor/compiler-rt/dist/lib/lsan/lsan_common.cc vendor/compiler-rt/dist/lib/lsan/lsan_common.h vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc vendor/compiler-rt/dist/lib/lsan/lsan_common_mac.cc vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc vendor/compiler-rt/dist/lib/lsan/lsan_thread.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_interface.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_internal_defs.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_common.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.cc vendor/compiler-rt/dist/lib/scudo/scudo_allocator.cpp vendor/compiler-rt/dist/lib/scudo/scudo_allocator.h vendor/compiler-rt/dist/lib/scudo/scudo_allocator_secondary.h vendor/compiler-rt/dist/lib/scudo/scudo_utils.cpp vendor/compiler-rt/dist/lib/scudo/scudo_utils.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_debugging.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_thread.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_flags.cc vendor/compiler-rt/dist/lib/xray/xray_fdr_logging.cc vendor/compiler-rt/dist/lib/xray/xray_inmemory_log.cc vendor/compiler-rt/dist/lib/xray/xray_trampoline_x86_64.S vendor/compiler-rt/dist/lib/xray/xray_x86_64.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-levels.cc vendor/compiler-rt/dist/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c vendor/compiler-rt/dist/test/lsan/TestCases/Linux/disabler_in_tsd_destructor.c vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_dynamic.cc vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cc vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_pthread_specific_static.cc vendor/compiler-rt/dist/test/lsan/TestCases/Linux/use_tls_static.cc vendor/compiler-rt/dist/test/lsan/TestCases/disabler.c vendor/compiler-rt/dist/test/lsan/TestCases/disabler.cc vendor/compiler-rt/dist/test/lsan/TestCases/do_leak_check_override.cc vendor/compiler-rt/dist/test/lsan/TestCases/high_allocator_contention.cc vendor/compiler-rt/dist/test/lsan/TestCases/ignore_object.c vendor/compiler-rt/dist/test/lsan/TestCases/ignore_object_errors.cc vendor/compiler-rt/dist/test/lsan/TestCases/large_allocation_leak.cc vendor/compiler-rt/dist/test/lsan/TestCases/leak_check_at_exit.cc vendor/compiler-rt/dist/test/lsan/TestCases/leak_check_before_thread_started.cc vendor/compiler-rt/dist/test/lsan/TestCases/link_turned_off.cc vendor/compiler-rt/dist/test/lsan/TestCases/pointer_to_self.cc vendor/compiler-rt/dist/test/lsan/TestCases/print_suppressions.cc vendor/compiler-rt/dist/test/lsan/TestCases/recoverable_leak_check.cc vendor/compiler-rt/dist/test/lsan/TestCases/register_root_region.cc vendor/compiler-rt/dist/test/lsan/TestCases/stale_stack_leak.cc vendor/compiler-rt/dist/test/lsan/TestCases/suppressions_default.cc vendor/compiler-rt/dist/test/lsan/TestCases/suppressions_file.cc vendor/compiler-rt/dist/test/lsan/TestCases/swapcontext.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_after_return.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_globals_initialized.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_globals_uninitialized.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_poisoned_asan.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_registers.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_stacks.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_stacks_threaded.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_unaligned.cc vendor/compiler-rt/dist/test/lsan/lit.common.cfg vendor/compiler-rt/dist/test/sanitizer_common/lit.common.cfg vendor/compiler-rt/dist/test/tsan/Darwin/main_tid.mm vendor/compiler-rt/dist/test/tsan/debug_alloc_stack.cc vendor/compiler-rt/dist/test/tsan/debugging.cc vendor/compiler-rt/dist/test/xray/TestCases/Linux/fdr-mode.cc vendor/compiler-rt/dist/test/xray/TestCases/Linux/fdr-thread-order.cc vendor/compiler-rt/dist/test/xray/lit.site.cfg.in Modified: vendor/compiler-rt/dist/include/sanitizer/coverage_interface.h ============================================================================== --- vendor/compiler-rt/dist/include/sanitizer/coverage_interface.h Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/include/sanitizer/coverage_interface.h Thu Apr 20 21:20:59 2017 (r317222) @@ -35,35 +35,6 @@ extern "C" { // Get the number of unique covered blocks (or edges). // This can be useful for coverage-directed in-process fuzzers. uintptr_t __sanitizer_get_total_unique_coverage(); - // Get the number of unique indirect caller-callee pairs. - uintptr_t __sanitizer_get_total_unique_caller_callee_pairs(); - - // Reset the basic-block (edge) coverage to the initial state. - // Useful for in-process fuzzing to start collecting coverage from scratch. - // Experimental, will likely not work for multi-threaded process. - void __sanitizer_reset_coverage(); - // Set *data to the array of covered PCs and return the size of that array. - // Some of the entries in *data will be zero. - uintptr_t __sanitizer_get_coverage_guards(uintptr_t **data); - - // The coverage instrumentation may optionally provide imprecise counters. - // Rather than exposing the counter values to the user we instead map - // the counters to a bitset. - // Every counter is associated with 8 bits in the bitset. - // We define 8 value ranges: 1, 2, 3, 4-7, 8-15, 16-31, 32-127, 128+ - // The i-th bit is set to 1 if the counter value is in the i-th range. - // This counter-based coverage implementation is *not* thread-safe. - - // Returns the number of registered coverage counters. - uintptr_t __sanitizer_get_number_of_counters(); - // Updates the counter 'bitset', clears the counters and returns the number of - // new bits in 'bitset'. - // If 'bitset' is nullptr, only clears the counters. - // Otherwise 'bitset' should be at least - // __sanitizer_get_number_of_counters bytes long and 8-aligned. - uintptr_t - __sanitizer_update_counter_bitset_and_clear_counters(uint8_t *bitset); - #ifdef __cplusplus } // extern "C" #endif Modified: vendor/compiler-rt/dist/lib/asan/asan_thread.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_thread.cc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/asan/asan_thread.cc Thu Apr 20 21:20:59 2017 (r317222) @@ -237,7 +237,7 @@ void AsanThread::Init() { } thread_return_t AsanThread::ThreadStart( - uptr os_id, atomic_uintptr_t *signal_thread_is_registered) { + tid_t os_id, atomic_uintptr_t *signal_thread_is_registered) { Init(); asanThreadRegistry().StartThread(tid(), os_id, /*workerthread*/ false, nullptr); @@ -395,7 +395,7 @@ void EnsureMainThreadIDIsCorrect() { context->os_id = GetTid(); } -__asan::AsanThread *GetAsanThreadByOsIDLocked(uptr os_id) { +__asan::AsanThread *GetAsanThreadByOsIDLocked(tid_t os_id) { __asan::AsanThreadContext *context = static_cast<__asan::AsanThreadContext *>( __asan::asanThreadRegistry().FindThreadContextByOsIDLocked(os_id)); if (!context) return nullptr; @@ -405,7 +405,7 @@ __asan::AsanThread *GetAsanThreadByOsIDL // --- Implementation of LSan-specific functions --- {{{1 namespace __lsan { -bool GetThreadRangesLocked(uptr os_id, uptr *stack_begin, uptr *stack_end, +bool GetThreadRangesLocked(tid_t os_id, uptr *stack_begin, uptr *stack_end, uptr *tls_begin, uptr *tls_end, uptr *cache_begin, uptr *cache_end, DTLS **dtls) { __asan::AsanThread *t = __asan::GetAsanThreadByOsIDLocked(os_id); @@ -421,7 +421,7 @@ bool GetThreadRangesLocked(uptr os_id, u return true; } -void ForEachExtraStackRange(uptr os_id, RangeIteratorCallback callback, +void ForEachExtraStackRange(tid_t os_id, RangeIteratorCallback callback, void *arg) { __asan::AsanThread *t = __asan::GetAsanThreadByOsIDLocked(os_id); if (t && t->has_fake_stack()) Modified: vendor/compiler-rt/dist/lib/asan/asan_thread.h ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_thread.h Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/asan/asan_thread.h Thu Apr 20 21:20:59 2017 (r317222) @@ -63,7 +63,7 @@ class AsanThread { void Destroy(); void Init(); // Should be called from the thread itself. - thread_return_t ThreadStart(uptr os_id, + thread_return_t ThreadStart(tid_t os_id, atomic_uintptr_t *signal_thread_is_registered); uptr stack_top(); Modified: vendor/compiler-rt/dist/lib/asan/tests/asan_test_main.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/tests/asan_test_main.cc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/asan/tests/asan_test_main.cc Thu Apr 20 21:20:59 2017 (r317222) @@ -13,15 +13,23 @@ #include "asan_test_utils.h" #include "sanitizer_common/sanitizer_platform.h" -// Default ASAN_OPTIONS for the unit tests. Let's turn symbolication off to -// speed up testing (unit tests don't use it anyway). +// Default ASAN_OPTIONS for the unit tests. extern "C" const char* __asan_default_options() { #if SANITIZER_MAC // On Darwin, we default to `abort_on_error=1`, which would make tests run - // much slower. Let's override this and run lit tests with 'abort_on_error=0'. - // Also, make sure we do not overwhelm the syslog while testing. + // much slower. Let's override this and run lit tests with 'abort_on_error=0' + // and make sure we do not overwhelm the syslog while testing. Also, let's + // turn symbolization off to speed up testing, especially when not running + // with llvm-symbolizer but with atos. return "symbolize=false:abort_on_error=0:log_to_syslog=0"; +#elif SANITIZER_SUPPRESS_LEAK_ON_PTHREAD_EXIT + // On PowerPC and ARM Thumb, a couple tests involving pthread_exit fail due to + // leaks detected by LSan. Symbolized leak report is required to apply a + // suppression for this known problem. + return ""; #else + // Let's turn symbolization off to speed up testing (more than 3 times speedup + // observed). return "symbolize=false"; #endif } Modified: vendor/compiler-rt/dist/lib/dfsan/done_abilist.txt ============================================================================== --- vendor/compiler-rt/dist/lib/dfsan/done_abilist.txt Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/dfsan/done_abilist.txt Thu Apr 20 21:20:59 2017 (r317222) @@ -285,22 +285,8 @@ fun:__sanitizer_cov_module_init=uninstru fun:__sanitizer_cov_module_init=discard fun:__sanitizer_cov_with_check=uninstrumented fun:__sanitizer_cov_with_check=discard -fun:__sanitizer_cov_indir_call16=uninstrumented -fun:__sanitizer_cov_indir_call16=discard -fun:__sanitizer_cov_indir_call16=uninstrumented -fun:__sanitizer_cov_indir_call16=discard -fun:__sanitizer_reset_coverage=uninstrumented -fun:__sanitizer_reset_coverage=discard fun:__sanitizer_set_death_callback=uninstrumented fun:__sanitizer_set_death_callback=discard -fun:__sanitizer_get_coverage_guards=uninstrumented -fun:__sanitizer_get_coverage_guards=discard -fun:__sanitizer_get_number_of_counters=uninstrumented -fun:__sanitizer_get_number_of_counters=discard -fun:__sanitizer_update_counter_bitset_and_clear_counters=uninstrumented -fun:__sanitizer_update_counter_bitset_and_clear_counters=discard -fun:__sanitizer_get_total_unique_coverage=uninstrumented -fun:__sanitizer_get_total_unique_coverage=discard fun:__sanitizer_get_total_unique_coverage=uninstrumented fun:__sanitizer_get_total_unique_coverage=discard fun:__sanitizer_update_counter_bitset_and_clear_counters=uninstrumented Modified: vendor/compiler-rt/dist/lib/lsan/lsan_common.cc ============================================================================== --- vendor/compiler-rt/dist/lib/lsan/lsan_common.cc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/lsan/lsan_common.cc Thu Apr 20 21:20:59 2017 (r317222) @@ -68,6 +68,14 @@ ALIGNED(64) static char suppression_plac static SuppressionContext *suppression_ctx = nullptr; static const char kSuppressionLeak[] = "leak"; static const char *kSuppressionTypes[] = { kSuppressionLeak }; +static const char kStdSuppressions[] = +#if SANITIZER_SUPPRESS_LEAK_ON_PTHREAD_EXIT + // The actual string allocation happens here (for more details refer to the + // SANITIZER_SUPPRESS_LEAK_ON_PTHREAD_EXIT definition). + "leak:*_dl_map_object_deps*"; +#else + ""; +#endif // SANITIZER_SUPPRESS_LEAK_ON_PTHREAD_EXIT void InitializeSuppressions() { CHECK_EQ(nullptr, suppression_ctx); @@ -76,6 +84,7 @@ void InitializeSuppressions() { suppression_ctx->ParseFromFile(flags()->suppressions); if (&__lsan_default_suppressions) suppression_ctx->Parse(__lsan_default_suppressions()); + suppression_ctx->Parse(kStdSuppressions); } static SuppressionContext *GetSuppressionContext() { @@ -83,12 +92,9 @@ static SuppressionContext *GetSuppressio return suppression_ctx; } -struct RootRegion { - const void *begin; - uptr size; -}; +static InternalMmapVector *root_regions; -InternalMmapVector *root_regions; +InternalMmapVector const *GetRootRegions() { return root_regions; } void InitializeRootRegions() { CHECK(!root_regions); @@ -200,11 +206,11 @@ void ForEachExtraStackRangeCb(uptr begin // Scans thread data (stacks and TLS) for heap pointers. static void ProcessThreads(SuspendedThreadsList const &suspended_threads, Frontier *frontier) { - InternalScopedBuffer registers(SuspendedThreadsList::RegisterCount()); + InternalScopedBuffer registers(suspended_threads.RegisterCount()); uptr registers_begin = reinterpret_cast(registers.data()); uptr registers_end = registers_begin + registers.size(); - for (uptr i = 0; i < suspended_threads.thread_count(); i++) { - uptr os_id = static_cast(suspended_threads.GetThreadID(i)); + for (uptr i = 0; i < suspended_threads.ThreadCount(); i++) { + tid_t os_id = static_cast(suspended_threads.GetThreadID(i)); LOG_THREADS("Processing thread %d.\n", os_id); uptr stack_begin, stack_end, tls_begin, tls_end, cache_begin, cache_end; DTLS *dtls; @@ -291,23 +297,29 @@ static void ProcessThreads(SuspendedThre } } -static void ProcessRootRegion(Frontier *frontier, uptr root_begin, - uptr root_end) { - MemoryMappingLayout proc_maps(/*cache_enabled*/true); +void ScanRootRegion(Frontier *frontier, const RootRegion &root_region, + uptr region_begin, uptr region_end, uptr prot) { + uptr intersection_begin = Max(root_region.begin, region_begin); + uptr intersection_end = Min(region_end, root_region.begin + root_region.size); + if (intersection_begin >= intersection_end) return; + bool is_readable = prot & MemoryMappingLayout::kProtectionRead; + LOG_POINTERS("Root region %p-%p intersects with mapped region %p-%p (%s)\n", + root_region.begin, root_region.begin + root_region.size, + region_begin, region_end, + is_readable ? "readable" : "unreadable"); + if (is_readable) + ScanRangeForPointers(intersection_begin, intersection_end, frontier, "ROOT", + kReachable); +} + +static void ProcessRootRegion(Frontier *frontier, + const RootRegion &root_region) { + MemoryMappingLayout proc_maps(/*cache_enabled*/ true); uptr begin, end, prot; while (proc_maps.Next(&begin, &end, /*offset*/ nullptr, /*filename*/ nullptr, /*filename_size*/ 0, &prot)) { - uptr intersection_begin = Max(root_begin, begin); - uptr intersection_end = Min(end, root_end); - if (intersection_begin >= intersection_end) continue; - bool is_readable = prot & MemoryMappingLayout::kProtectionRead; - LOG_POINTERS("Root region %p-%p intersects with mapped region %p-%p (%s)\n", - root_begin, root_end, begin, end, - is_readable ? "readable" : "unreadable"); - if (is_readable) - ScanRangeForPointers(intersection_begin, intersection_end, frontier, - "ROOT", kReachable); + ScanRootRegion(frontier, root_region, begin, end, prot); } } @@ -316,9 +328,7 @@ static void ProcessRootRegions(Frontier if (!flags()->use_root_regions) return; CHECK(root_regions); for (uptr i = 0; i < root_regions->size(); i++) { - RootRegion region = (*root_regions)[i]; - uptr begin_addr = reinterpret_cast(region.begin); - ProcessRootRegion(frontier, begin_addr, begin_addr + region.size); + ProcessRootRegion(frontier, (*root_regions)[i]); } } @@ -356,6 +366,72 @@ static void CollectIgnoredCb(uptr chunk, } } +static uptr GetCallerPC(u32 stack_id, StackDepotReverseMap *map) { + CHECK(stack_id); + StackTrace stack = map->Get(stack_id); + // The top frame is our malloc/calloc/etc. The next frame is the caller. + if (stack.size >= 2) + return stack.trace[1]; + return 0; +} + +struct InvalidPCParam { + Frontier *frontier; + StackDepotReverseMap *stack_depot_reverse_map; + bool skip_linker_allocations; +}; + +// ForEachChunk callback. If the caller pc is invalid or is within the linker, +// mark as reachable. Called by ProcessPlatformSpecificAllocations. +static void MarkInvalidPCCb(uptr chunk, void *arg) { + CHECK(arg); + InvalidPCParam *param = reinterpret_cast(arg); + chunk = GetUserBegin(chunk); + LsanMetadata m(chunk); + if (m.allocated() && m.tag() != kReachable && m.tag() != kIgnored) { + u32 stack_id = m.stack_trace_id(); + uptr caller_pc = 0; + if (stack_id > 0) + caller_pc = GetCallerPC(stack_id, param->stack_depot_reverse_map); + // If caller_pc is unknown, this chunk may be allocated in a coroutine. Mark + // it as reachable, as we can't properly report its allocation stack anyway. + if (caller_pc == 0 || (param->skip_linker_allocations && + GetLinker()->containsAddress(caller_pc))) { + m.set_tag(kReachable); + param->frontier->push_back(chunk); + } + } +} + +// On Linux, handles dynamically allocated TLS blocks by treating all chunks +// allocated from ld-linux.so as reachable. +// Dynamic TLS blocks contain the TLS variables of dynamically loaded modules. +// They are allocated with a __libc_memalign() call in allocate_and_init() +// (elf/dl-tls.c). Glibc won't tell us the address ranges occupied by those +// blocks, but we can make sure they come from our own allocator by intercepting +// __libc_memalign(). On top of that, there is no easy way to reach them. Their +// addresses are stored in a dynamically allocated array (the DTV) which is +// referenced from the static TLS. Unfortunately, we can't just rely on the DTV +// being reachable from the static TLS, and the dynamic TLS being reachable from +// the DTV. This is because the initial DTV is allocated before our interception +// mechanism kicks in, and thus we don't recognize it as allocated memory. We +// can't special-case it either, since we don't know its size. +// Our solution is to include in the root set all allocations made from +// ld-linux.so (which is where allocate_and_init() is implemented). This is +// guaranteed to include all dynamic TLS blocks (and possibly other allocations +// which we don't care about). +// On all other platforms, this simply checks to ensure that the caller pc is +// valid before reporting chunks as leaked. +void ProcessPC(Frontier *frontier) { + StackDepotReverseMap stack_depot_reverse_map; + InvalidPCParam arg; + arg.frontier = frontier; + arg.stack_depot_reverse_map = &stack_depot_reverse_map; + arg.skip_linker_allocations = + flags()->use_tls && flags()->use_ld_allocations && GetLinker() != nullptr; + ForEachChunk(MarkInvalidPCCb, &arg); +} + // Sets the appropriate tag on each chunk. static void ClassifyAllChunks(SuspendedThreadsList const &suspended_threads) { // Holds the flood fill frontier. @@ -367,11 +443,13 @@ static void ClassifyAllChunks(SuspendedT ProcessRootRegions(&frontier); FloodFillTag(&frontier, kReachable); + CHECK_EQ(0, frontier.size()); + ProcessPC(&frontier); + // The check here is relatively expensive, so we do this in a separate flood // fill. That way we can skip the check for chunks that are reachable // otherwise. LOG_POINTERS("Processing platform-specific allocations.\n"); - CHECK_EQ(0, frontier.size()); ProcessPlatformSpecificAllocations(&frontier); FloodFillTag(&frontier, kReachable); @@ -707,7 +785,7 @@ void __lsan_register_root_region(const v #if CAN_SANITIZE_LEAKS BlockingMutexLock l(&global_mutex); CHECK(root_regions); - RootRegion region = {begin, size}; + RootRegion region = {reinterpret_cast(begin), size}; root_regions->push_back(region); VReport(1, "Registered root region at %p of size %llu\n", begin, size); #endif // CAN_SANITIZE_LEAKS @@ -721,7 +799,7 @@ void __lsan_unregister_root_region(const bool removed = false; for (uptr i = 0; i < root_regions->size(); i++) { RootRegion region = (*root_regions)[i]; - if (region.begin == begin && region.size == size) { + if (region.begin == reinterpret_cast(begin) && region.size == size) { removed = true; uptr last_index = root_regions->size() - 1; (*root_regions)[i] = (*root_regions)[last_index]; Modified: vendor/compiler-rt/dist/lib/lsan/lsan_common.h ============================================================================== --- vendor/compiler-rt/dist/lib/lsan/lsan_common.h Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/lsan/lsan_common.h Thu Apr 20 21:20:59 2017 (r317222) @@ -118,6 +118,15 @@ typedef InternalMmapVector Frontie void InitializePlatformSpecificModules(); void ProcessGlobalRegions(Frontier *frontier); void ProcessPlatformSpecificAllocations(Frontier *frontier); + +struct RootRegion { + uptr begin; + uptr size; +}; + +InternalMmapVector const *GetRootRegions(); +void ScanRootRegion(Frontier *frontier, RootRegion const ®ion, + uptr region_begin, uptr region_end, uptr prot); // Run stoptheworld while holding any platform-specific locks. void DoStopTheWorld(StopTheWorldCallback callback, void* argument); @@ -193,10 +202,10 @@ bool WordIsPoisoned(uptr addr); // Wrappers for ThreadRegistry access. void LockThreadRegistry(); void UnlockThreadRegistry(); -bool GetThreadRangesLocked(uptr os_id, uptr *stack_begin, uptr *stack_end, +bool GetThreadRangesLocked(tid_t os_id, uptr *stack_begin, uptr *stack_end, uptr *tls_begin, uptr *tls_end, uptr *cache_begin, uptr *cache_end, DTLS **dtls); -void ForEachExtraStackRange(uptr os_id, RangeIteratorCallback callback, +void ForEachExtraStackRange(tid_t os_id, RangeIteratorCallback callback, void *arg); // If called from the main thread, updates the main thread's TID in the thread // registry. We need this to handle processes that fork() without a subsequent @@ -212,6 +221,10 @@ uptr PointsIntoChunk(void *p); uptr GetUserBegin(uptr chunk); // Helper for __lsan_ignore_object(). IgnoreObjectResult IgnoreObjectLocked(const void *p); + +// Return the linker module, if valid for the platform. +LoadedModule *GetLinker(); + // Wrapper for chunk metadata operations. class LsanMetadata { public: Modified: vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc ============================================================================== --- vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc Thu Apr 20 21:20:59 2017 (r317222) @@ -89,70 +89,9 @@ void ProcessGlobalRegions(Frontier *fron dl_iterate_phdr(ProcessGlobalRegionsCallback, frontier); } -static uptr GetCallerPC(u32 stack_id, StackDepotReverseMap *map) { - CHECK(stack_id); - StackTrace stack = map->Get(stack_id); - // The top frame is our malloc/calloc/etc. The next frame is the caller. - if (stack.size >= 2) - return stack.trace[1]; - return 0; -} - -struct ProcessPlatformAllocParam { - Frontier *frontier; - StackDepotReverseMap *stack_depot_reverse_map; - bool skip_linker_allocations; -}; +LoadedModule *GetLinker() { return linker; } -// ForEachChunk callback. Identifies unreachable chunks which must be treated as -// reachable. Marks them as reachable and adds them to the frontier. -static void ProcessPlatformSpecificAllocationsCb(uptr chunk, void *arg) { - CHECK(arg); - ProcessPlatformAllocParam *param = - reinterpret_cast(arg); - chunk = GetUserBegin(chunk); - LsanMetadata m(chunk); - if (m.allocated() && m.tag() != kReachable && m.tag() != kIgnored) { - u32 stack_id = m.stack_trace_id(); - uptr caller_pc = 0; - if (stack_id > 0) - caller_pc = GetCallerPC(stack_id, param->stack_depot_reverse_map); - // If caller_pc is unknown, this chunk may be allocated in a coroutine. Mark - // it as reachable, as we can't properly report its allocation stack anyway. - if (caller_pc == 0 || (param->skip_linker_allocations && - linker->containsAddress(caller_pc))) { - m.set_tag(kReachable); - param->frontier->push_back(chunk); - } - } -} - -// Handles dynamically allocated TLS blocks by treating all chunks allocated -// from ld-linux.so as reachable. -// Dynamic TLS blocks contain the TLS variables of dynamically loaded modules. -// They are allocated with a __libc_memalign() call in allocate_and_init() -// (elf/dl-tls.c). Glibc won't tell us the address ranges occupied by those -// blocks, but we can make sure they come from our own allocator by intercepting -// __libc_memalign(). On top of that, there is no easy way to reach them. Their -// addresses are stored in a dynamically allocated array (the DTV) which is -// referenced from the static TLS. Unfortunately, we can't just rely on the DTV -// being reachable from the static TLS, and the dynamic TLS being reachable from -// the DTV. This is because the initial DTV is allocated before our interception -// mechanism kicks in, and thus we don't recognize it as allocated memory. We -// can't special-case it either, since we don't know its size. -// Our solution is to include in the root set all allocations made from -// ld-linux.so (which is where allocate_and_init() is implemented). This is -// guaranteed to include all dynamic TLS blocks (and possibly other allocations -// which we don't care about). -void ProcessPlatformSpecificAllocations(Frontier *frontier) { - StackDepotReverseMap stack_depot_reverse_map; - ProcessPlatformAllocParam arg; - arg.frontier = frontier; - arg.stack_depot_reverse_map = &stack_depot_reverse_map; - arg.skip_linker_allocations = - flags()->use_tls && flags()->use_ld_allocations && linker != nullptr; - ForEachChunk(ProcessPlatformSpecificAllocationsCb, &arg); -} +void ProcessPlatformSpecificAllocations(Frontier *frontier) {} struct DoStopTheWorldParam { StopTheWorldCallback callback; Modified: vendor/compiler-rt/dist/lib/lsan/lsan_common_mac.cc ============================================================================== --- vendor/compiler-rt/dist/lib/lsan/lsan_common_mac.cc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/lsan/lsan_common_mac.cc Thu Apr 20 21:20:59 2017 (r317222) @@ -22,6 +22,8 @@ #include +#include + namespace __lsan { typedef struct { @@ -85,6 +87,8 @@ void SetCurrentThread(u32 tid) { get_tls AllocatorCache *GetAllocatorCache() { return &get_tls_val(true)->cache; } +LoadedModule *GetLinker() { return nullptr; } + // Required on Linux for initialization of TLS behavior, but should not be // required on Darwin. void InitializePlatformSpecificModules() { @@ -106,7 +110,7 @@ void ProcessGlobalRegions(Frontier *fron for (const __sanitizer::LoadedModule::AddressRange &range : modules[i].ranges()) { - if (range.executable) continue; + if (range.executable || !range.readable) continue; ScanGlobalRange(range.beg, range.end, frontier); } @@ -114,11 +118,54 @@ void ProcessGlobalRegions(Frontier *fron } void ProcessPlatformSpecificAllocations(Frontier *frontier) { - CHECK(0 && "unimplemented"); + mach_port_name_t port; + if (task_for_pid(mach_task_self(), internal_getpid(), &port) + != KERN_SUCCESS) { + return; + } + + unsigned depth = 1; + vm_size_t size = 0; + vm_address_t address = 0; + kern_return_t err = KERN_SUCCESS; + mach_msg_type_number_t count = VM_REGION_SUBMAP_INFO_COUNT_64; + + InternalMmapVector const *root_regions = GetRootRegions(); + + while (err == KERN_SUCCESS) { + struct vm_region_submap_info_64 info; + err = vm_region_recurse_64(port, &address, &size, &depth, + (vm_region_info_t)&info, &count); + + uptr end_address = address + size; + + // libxpc stashes some pointers in the Kernel Alloc Once page, + // make sure not to report those as leaks. + if (info.user_tag == VM_MEMORY_OS_ALLOC_ONCE) { + ScanRangeForPointers(address, end_address, frontier, "GLOBAL", + kReachable); + } + + // This additional root region scan is required on Darwin in order to + // detect root regions contained within mmap'd memory regions, because + // the Darwin implementation of sanitizer_procmaps traverses images + // as loaded by dyld, and not the complete set of all memory regions. + // + // TODO(fjricci) - remove this once sanitizer_procmaps_mac has the same + // behavior as sanitizer_procmaps_linux and traverses all memory regions + if (flags()->use_root_regions) { + for (uptr i = 0; i < root_regions->size(); i++) { + ScanRootRegion(frontier, (*root_regions)[i], address, end_address, + info.protection); + } + } + + address = end_address; + } } void DoStopTheWorld(StopTheWorldCallback callback, void *argument) { - CHECK(0 && "unimplemented"); + StopTheWorld(callback, argument); } } // namespace __lsan Modified: vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc ============================================================================== --- vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc Thu Apr 20 21:20:59 2017 (r317222) @@ -77,7 +77,7 @@ u32 ThreadCreate(u32 parent_tid, uptr us /* arg */ nullptr); } -void ThreadStart(u32 tid, uptr os_id) { +void ThreadStart(u32 tid, tid_t os_id) { OnStartedArgs args; uptr stack_size = 0; uptr tls_size = 0; @@ -127,7 +127,7 @@ void EnsureMainThreadIDIsCorrect() { ///// Interface to the common LSan module. ///// -bool GetThreadRangesLocked(uptr os_id, uptr *stack_begin, uptr *stack_end, +bool GetThreadRangesLocked(tid_t os_id, uptr *stack_begin, uptr *stack_end, uptr *tls_begin, uptr *tls_end, uptr *cache_begin, uptr *cache_end, DTLS **dtls) { ThreadContext *context = static_cast( @@ -143,7 +143,7 @@ bool GetThreadRangesLocked(uptr os_id, u return true; } -void ForEachExtraStackRange(uptr os_id, RangeIteratorCallback callback, +void ForEachExtraStackRange(tid_t os_id, RangeIteratorCallback callback, void *arg) { } Modified: vendor/compiler-rt/dist/lib/lsan/lsan_thread.h ============================================================================== --- vendor/compiler-rt/dist/lib/lsan/lsan_thread.h Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/lsan/lsan_thread.h Thu Apr 20 21:20:59 2017 (r317222) @@ -45,7 +45,7 @@ class ThreadContext : public ThreadConte void InitializeThreadRegistry(); -void ThreadStart(u32 tid, uptr os_id); +void ThreadStart(u32 tid, tid_t os_id); void ThreadFinish(); u32 ThreadCreate(u32 tid, uptr uid, bool detached); void ThreadJoin(u32 tid); Modified: vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.cc ============================================================================== --- vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.cc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.cc Thu Apr 20 21:20:59 2017 (r317222) @@ -284,9 +284,10 @@ void LoadedModule::clear() { } } -void LoadedModule::addAddressRange(uptr beg, uptr end, bool executable) { +void LoadedModule::addAddressRange(uptr beg, uptr end, bool executable, + bool readable) { void *mem = InternalAlloc(sizeof(AddressRange)); - AddressRange *r = new(mem) AddressRange(beg, end, executable); + AddressRange *r = new(mem) AddressRange(beg, end, executable, readable); ranges_.push_back(r); if (executable && end > max_executable_address_) max_executable_address_ = end; Modified: vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h ============================================================================== --- vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h Thu Apr 20 21:20:59 2017 (r317222) @@ -72,7 +72,7 @@ INLINE uptr GetPageSizeCached() { uptr GetMmapGranularity(); uptr GetMaxVirtualAddress(); // Threads -uptr GetTid(); +tid_t GetTid(); uptr GetThreadSelf(); void GetThreadStackTopAndBottom(bool at_initialization, uptr *stack_top, uptr *stack_bottom); @@ -717,7 +717,7 @@ class LoadedModule { void set(const char *module_name, uptr base_address, ModuleArch arch, u8 uuid[kModuleUUIDSize], bool instrumented); void clear(); - void addAddressRange(uptr beg, uptr end, bool executable); + void addAddressRange(uptr beg, uptr end, bool executable, bool readable); bool containsAddress(uptr address) const; const char *full_name() const { return full_name_; } @@ -732,9 +732,14 @@ class LoadedModule { uptr beg; uptr end; bool executable; + bool readable; - AddressRange(uptr beg, uptr end, bool executable) - : next(nullptr), beg(beg), end(end), executable(executable) {} + AddressRange(uptr beg, uptr end, bool executable, bool readable) + : next(nullptr), + beg(beg), + end(end), + executable(executable), + readable(readable) {} }; const IntrusiveList &ranges() const { return ranges_; } Modified: vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc ============================================================================== --- vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc Thu Apr 20 21:20:59 2017 (r317222) @@ -139,12 +139,9 @@ bool PlatformHasDifferentMemcpyAndMemmov #define COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED (0) #endif -#define COMMON_INTERCEPTOR_READ_STRING_OF_LEN(ctx, s, len, n) \ - COMMON_INTERCEPTOR_READ_RANGE((ctx), (s), \ - common_flags()->strict_string_checks ? (len) + 1 : (n) ) - #define COMMON_INTERCEPTOR_READ_STRING(ctx, s, n) \ - COMMON_INTERCEPTOR_READ_STRING_OF_LEN((ctx), (s), REAL(strlen)(s), (n)) + COMMON_INTERCEPTOR_READ_RANGE((ctx), (s), \ + common_flags()->strict_string_checks ? (REAL(strlen)(s)) + 1 : (n) ) #ifndef COMMON_INTERCEPTOR_ON_DLOPEN #define COMMON_INTERCEPTOR_ON_DLOPEN(filename, flag) \ @@ -450,8 +447,7 @@ static inline void StrstrCheck(void *ctx const char *s2) { uptr len1 = REAL(strlen)(s1); uptr len2 = REAL(strlen)(s2); - COMMON_INTERCEPTOR_READ_STRING_OF_LEN(ctx, s1, len1, - r ? r - s1 + len2 : len1 + 1); + COMMON_INTERCEPTOR_READ_STRING(ctx, s1, r ? r - s1 + len2 : len1 + 1); COMMON_INTERCEPTOR_READ_RANGE(ctx, s2, len2 + 1); } #endif @@ -577,10 +573,11 @@ INTERCEPTOR(char*, strchr, const char *s return internal_strchr(s, c); COMMON_INTERCEPTOR_ENTER(ctx, strchr, s, c); char *result = REAL(strchr)(s, c); - uptr len = internal_strlen(s); - uptr n = result ? result - s + 1 : len + 1; - if (common_flags()->intercept_strchr) - COMMON_INTERCEPTOR_READ_STRING_OF_LEN(ctx, s, len, n); + if (common_flags()->intercept_strchr) { + // Keep strlen as macro argument, as macro may ignore it. + COMMON_INTERCEPTOR_READ_STRING(ctx, s, + (result ? result - s : REAL(strlen)(s)) + 1); + } return result; } #define INIT_STRCHR COMMON_INTERCEPT_FUNCTION(strchr) @@ -609,9 +606,8 @@ INTERCEPTOR(char*, strrchr, const char * if (COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED) return internal_strrchr(s, c); COMMON_INTERCEPTOR_ENTER(ctx, strrchr, s, c); - uptr len = internal_strlen(s); if (common_flags()->intercept_strchr) - COMMON_INTERCEPTOR_READ_STRING_OF_LEN(ctx, s, len, len + 1); + COMMON_INTERCEPTOR_READ_RANGE(ctx, s, REAL(strlen)(s) + 1); return REAL(strrchr)(s, c); } #define INIT_STRRCHR COMMON_INTERCEPT_FUNCTION(strrchr) Modified: vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_interface.inc ============================================================================== --- vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_interface.inc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_interface.inc Thu Apr 20 21:20:59 2017 (r317222) @@ -10,21 +10,13 @@ //===----------------------------------------------------------------------===// INTERFACE_FUNCTION(__sanitizer_cov) INTERFACE_FUNCTION(__sanitizer_cov_dump) -INTERFACE_FUNCTION(__sanitizer_cov_indir_call16) INTERFACE_FUNCTION(__sanitizer_cov_init) INTERFACE_FUNCTION(__sanitizer_cov_module_init) -INTERFACE_FUNCTION(__sanitizer_cov_trace_basic_block) -INTERFACE_FUNCTION(__sanitizer_cov_trace_func_enter) INTERFACE_FUNCTION(__sanitizer_cov_with_check) INTERFACE_FUNCTION(__sanitizer_dump_coverage) INTERFACE_FUNCTION(__sanitizer_dump_trace_pc_guard_coverage) -INTERFACE_FUNCTION(__sanitizer_get_coverage_guards) -INTERFACE_FUNCTION(__sanitizer_get_number_of_counters) -INTERFACE_FUNCTION(__sanitizer_get_total_unique_caller_callee_pairs) INTERFACE_FUNCTION(__sanitizer_get_total_unique_coverage) INTERFACE_FUNCTION(__sanitizer_maybe_open_cov_file) -INTERFACE_FUNCTION(__sanitizer_reset_coverage) -INTERFACE_FUNCTION(__sanitizer_update_counter_bitset_and_clear_counters) INTERFACE_WEAK_FUNCTION(__sancov_default_options) INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_cmp) INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_cmp1) Modified: vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc ============================================================================== --- vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc Thu Apr 20 21:20:56 2017 (r317221) +++ vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc Thu Apr 20 21:20:59 2017 (r317222) @@ -57,12 +57,6 @@ static const u64 kMagic = SANITIZER_WORD static atomic_uint32_t dump_once_guard; // Ensure that CovDump runs only once. static atomic_uintptr_t coverage_counter; -static atomic_uintptr_t caller_callee_counter; - -static void ResetGlobalCounters() { - return atomic_store(&coverage_counter, 0, memory_order_relaxed); - return atomic_store(&caller_callee_counter, 0, memory_order_relaxed); -} // pc_array is the array containing the covered PCs. // To make the pc_array thread- and async-signal-safe it has to be large enough. @@ -90,25 +84,14 @@ class CoverageData { void AfterFork(int child_pid); void Extend(uptr npcs); void Add(uptr pc, u32 *guard); - void IndirCall(uptr caller, uptr callee, uptr callee_cache[], - uptr cache_size); - void DumpCallerCalleePairs(); - void DumpTrace(); void DumpAsBitSet(); - void DumpCounters(); void DumpOffsets(); void DumpAll(); - ALWAYS_INLINE - void TraceBasicBlock(u32 *id); - void InitializeGuardArray(s32 *guards); void InitializeGuards(s32 *guards, uptr n, const char *module_name, uptr caller_pc); - void InitializeCounters(u8 *counters, uptr n); void ReinitializeGuards(); - uptr GetNumberOf8bitCounters(); - uptr Update8bitCounterBitsetAndClearCounters(u8 *bitset); uptr *data(); uptr size() const; @@ -150,37 +133,6 @@ class CoverageData { InternalMmapVectorNoCtor comp_unit_name_vec; InternalMmapVectorNoCtor module_name_vec; - struct CounterAndSize { - u8 *counters; - uptr n; - }; - - InternalMmapVectorNoCtor counters_vec; - uptr num_8bit_counters; - - // Caller-Callee (cc) array, size and current index. - static const uptr kCcArrayMaxSize = FIRST_32_SECOND_64(1 << 18, 1 << 24); - uptr **cc_array; - atomic_uintptr_t cc_array_index; - atomic_uintptr_t cc_array_size; - - // Tracing event array, size and current pointer. - // We record all events (basic block entries) in a global buffer of u32 - // values. Each such value is the index in pc_array. - // So far the tracing is highly experimental: - // - not thread-safe; - // - does not support long traces; - // - not tuned for performance. - // Windows doesn't do overcommit (committed virtual memory costs swap), so - // programs can't reliably map such large amounts of virtual memory. - // TODO(etienneb): Find a way to support coverage of larger executable -static const uptr kTrEventArrayMaxSize = - (SANITIZER_WORDSIZE == 32 || SANITIZER_WINDOWS) ? 1 << 22 : 1 << 30; - u32 *tr_event_array; - uptr tr_event_array_size; - u32 *tr_event_pointer; - static const uptr kTrPcArrayMaxSize = FIRST_32_SECOND_64(1 << 22, 1 << 27); - StaticSpinMutex mu; }; @@ -217,23 +169,6 @@ void CoverageData::Enable() { } else { atomic_store(&pc_array_size, kPcArrayMaxSize, memory_order_relaxed); } - - cc_array = reinterpret_cast(MmapNoReserveOrDie( - sizeof(uptr *) * kCcArrayMaxSize, "CovInit::cc_array")); - atomic_store(&cc_array_size, kCcArrayMaxSize, memory_order_relaxed); - atomic_store(&cc_array_index, 0, memory_order_relaxed); - - // Allocate tr_event_array with a guard page at the end. - tr_event_array = reinterpret_cast(MmapNoReserveOrDie( - sizeof(tr_event_array[0]) * kTrEventArrayMaxSize + GetMmapGranularity(), - "CovInit::tr_event_array")); - MprotectNoAccess( - reinterpret_cast(&tr_event_array[kTrEventArrayMaxSize]), - GetMmapGranularity()); - tr_event_array_size = kTrEventArrayMaxSize; - tr_event_pointer = tr_event_array; - - num_8bit_counters = 0; } void CoverageData::InitializeGuardArray(s32 *guards) { @@ -251,17 +186,6 @@ void CoverageData::Disable() { UnmapOrDie(pc_array, sizeof(uptr) * kPcArrayMaxSize); pc_array = nullptr; } - if (cc_array) { - UnmapOrDie(cc_array, sizeof(uptr *) * kCcArrayMaxSize); - cc_array = nullptr; - } - if (tr_event_array) { - UnmapOrDie(tr_event_array, - sizeof(tr_event_array[0]) * kTrEventArrayMaxSize + - GetMmapGranularity()); - tr_event_array = nullptr; - tr_event_pointer = nullptr; - } if (pc_fd != kInvalidFd) { CloseFile(pc_fd); pc_fd = kInvalidFd; @@ -341,15 +265,6 @@ void CoverageData::Extend(uptr npcs) { atomic_store(&pc_array_size, size, memory_order_release); } -void CoverageData::InitializeCounters(u8 *counters, uptr n) { - if (!counters) return; - CHECK_EQ(reinterpret_cast(counters) % 16, 0); - n = RoundUpTo(n, 16); // The compiler must ensure that counters is 16-aligned. - SpinMutexLock l(&mu); - counters_vec.push_back({counters, n}); - num_8bit_counters += n; -} - void CoverageData::UpdateModuleNameVec(uptr caller_pc, uptr range_beg, uptr range_end) { auto sym = Symbolizer::GetOrInit(); @@ -424,98 +339,6 @@ void CoverageData::Add(uptr pc, u32 *gua pc_array[idx] = BundlePcAndCounter(pc, counter); } -// Registers a pair caller=>callee. -// When a given caller is seen for the first time, the callee_cache is added -// to the global array cc_array, callee_cache[0] is set to caller and -// callee_cache[1] is set to cache_size. -// Then we are trying to add callee to callee_cache [2,cache_size) if it is -// not there yet. -// If the cache is full we drop the callee (may want to fix this later). -void CoverageData::IndirCall(uptr caller, uptr callee, uptr callee_cache[], - uptr cache_size) { - if (!cc_array) return; - atomic_uintptr_t *atomic_callee_cache = - reinterpret_cast(callee_cache); - uptr zero = 0; - if (atomic_compare_exchange_strong(&atomic_callee_cache[0], &zero, caller, - memory_order_seq_cst)) { - uptr idx = atomic_fetch_add(&cc_array_index, 1, memory_order_relaxed); - CHECK_LT(idx * sizeof(uptr), - atomic_load(&cc_array_size, memory_order_acquire)); - callee_cache[1] = cache_size; - cc_array[idx] = callee_cache; - } - CHECK_EQ(atomic_load(&atomic_callee_cache[0], memory_order_relaxed), caller); - for (uptr i = 2; i < cache_size; i++) { - uptr was = 0; - if (atomic_compare_exchange_strong(&atomic_callee_cache[i], &was, callee, - memory_order_seq_cst)) { - atomic_fetch_add(&caller_callee_counter, 1, memory_order_relaxed); - return; - } - if (was == callee) // Already have this callee. - return; - } -} - -uptr CoverageData::GetNumberOf8bitCounters() { - return num_8bit_counters; -} - -// Map every 8bit counter to a 8-bit bitset and clear the counter. -uptr CoverageData::Update8bitCounterBitsetAndClearCounters(u8 *bitset) { - uptr num_new_bits = 0; - uptr cur = 0; - // For better speed we map 8 counters to 8 bytes of bitset at once. - static const uptr kBatchSize = 8; - CHECK_EQ(reinterpret_cast(bitset) % kBatchSize, 0); - for (uptr i = 0, len = counters_vec.size(); i < len; i++) { - u8 *c = counters_vec[i].counters; - uptr n = counters_vec[i].n; - CHECK_EQ(n % 16, 0); - CHECK_EQ(cur % kBatchSize, 0); - CHECK_EQ(reinterpret_cast(c) % kBatchSize, 0); - if (!bitset) { - internal_bzero_aligned16(c, n); - cur += n; - continue; - } - for (uptr j = 0; j < n; j += kBatchSize, cur += kBatchSize) { - CHECK_LT(cur, num_8bit_counters); - u64 *pc64 = reinterpret_cast(c + j); - u64 *pb64 = reinterpret_cast(bitset + cur); - u64 c64 = *pc64; - u64 old_bits_64 = *pb64; - u64 new_bits_64 = old_bits_64; - if (c64) { - *pc64 = 0; - for (uptr k = 0; k < kBatchSize; k++) { - u64 x = (c64 >> (8 * k)) & 0xff; - if (x) { - u64 bit = 0; - /**/ if (x >= 128) bit = 128; - else if (x >= 32) bit = 64; - else if (x >= 16) bit = 32; - else if (x >= 8) bit = 16; - else if (x >= 4) bit = 8; - else if (x >= 3) bit = 4; - else if (x >= 2) bit = 2; - else if (x >= 1) bit = 1; - u64 mask = bit << (8 * k); - if (!(new_bits_64 & mask)) { - num_new_bits++; - new_bits_64 |= mask; - } - } - } - *pb64 = new_bits_64; - } - } - } - CHECK_EQ(cur, num_8bit_counters); - return num_new_bits; -} - uptr *CoverageData::data() { return pc_array; } @@ -596,132 +419,6 @@ static fd_t CovOpenFile(InternalScopedSt return fd; } -// Dump trace PCs and trace events into two separate files. -void CoverageData::DumpTrace() { - uptr max_idx = tr_event_pointer - tr_event_array; - if (!max_idx) return; - auto sym = Symbolizer::GetOrInit(); - if (!sym) - return; - InternalScopedString out(32 << 20); - for (uptr i = 0, n = size(); i < n; i++) { - const char *module_name = ""; - uptr module_address = 0; - sym->GetModuleNameAndOffsetForPC(UnbundlePc(pc_array[i]), &module_name, - &module_address); - out.append("%s 0x%zx\n", module_name, module_address); - } - InternalScopedString path(kMaxPathLength); - fd_t fd = CovOpenFile(&path, false, "trace-points"); - if (fd == kInvalidFd) return; - WriteToFile(fd, out.data(), out.length()); - CloseFile(fd); - - fd = CovOpenFile(&path, false, "trace-compunits"); - if (fd == kInvalidFd) return; - out.clear(); - for (uptr i = 0; i < comp_unit_name_vec.size(); i++) - out.append("%s\n", comp_unit_name_vec[i].copied_module_name); - WriteToFile(fd, out.data(), out.length()); - CloseFile(fd); - - fd = CovOpenFile(&path, false, "trace-events"); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 21:20:57 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B921D48800; Thu, 20 Apr 2017 21:20:57 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 42E2A1233; Thu, 20 Apr 2017 21:20:57 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KLKufi002718; Thu, 20 Apr 2017 21:20:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLKuAI002717; Thu, 20 Apr 2017 21:20:56 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202120.v3KLKuAI002717@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:20:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317221 - vendor/clang/clang-trunk-r300890 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:20:57 -0000 Author: dim Date: Thu Apr 20 21:20:56 2017 New Revision: 317221 URL: https://svnweb.freebsd.org/changeset/base/317221 Log: Tag clang trunk r300890. Added: vendor/clang/clang-trunk-r300890/ - copied from r317220, vendor/clang/dist/ From owner-svn-src-all@freebsd.org Thu Apr 20 21:21:18 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 258B9D488CC; Thu, 20 Apr 2017 21:21:18 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D0538146F; Thu, 20 Apr 2017 21:21: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 v3KLLG0m002948; Thu, 20 Apr 2017 21:21:16 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLLGDP002947; Thu, 20 Apr 2017 21:21:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202121.v3KLLGDP002947@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:21:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317225 - vendor/libc++/libc++-trunk-r300890 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:21:18 -0000 Author: dim Date: Thu Apr 20 21:21:16 2017 New Revision: 317225 URL: https://svnweb.freebsd.org/changeset/base/317225 Log: Tag libc++ trunk r300890. Added: vendor/libc++/libc++-trunk-r300890/ - copied from r317224, vendor/libc++/dist/ From owner-svn-src-all@freebsd.org Thu Apr 20 21:21:06 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65086D48851; Thu, 20 Apr 2017 21:21:06 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EDD5E12D4; Thu, 20 Apr 2017 21:21: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 v3KLL589002834; Thu, 20 Apr 2017 21:21:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLL5GQ002833; Thu, 20 Apr 2017 21:21:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202121.v3KLL5GQ002833@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:21:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317223 - vendor/compiler-rt/compiler-rt-trunk-r300890 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:21:06 -0000 Author: dim Date: Thu Apr 20 21:21:04 2017 New Revision: 317223 URL: https://svnweb.freebsd.org/changeset/base/317223 Log: Tag compiler-rt trunk r300890. Added: vendor/compiler-rt/compiler-rt-trunk-r300890/ - copied from r317222, vendor/compiler-rt/dist/ From owner-svn-src-all@freebsd.org Thu Apr 20 21:21:36 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF062D489D2; Thu, 20 Apr 2017 21:21:36 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 76E0B169D; Thu, 20 Apr 2017 21:21:36 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KLLZnY003843; Thu, 20 Apr 2017 21:21:35 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLLZpv003842; Thu, 20 Apr 2017 21:21:35 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202121.v3KLLZpv003842@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:21:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317229 - vendor/lldb/lldb-trunk-r300890 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:21:36 -0000 Author: dim Date: Thu Apr 20 21:21:35 2017 New Revision: 317229 URL: https://svnweb.freebsd.org/changeset/base/317229 Log: Tag lldb trunk r300890. Added: vendor/lldb/lldb-trunk-r300890/ - copied from r317228, vendor/lldb/dist/ From owner-svn-src-all@freebsd.org Thu Apr 20 21:21:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 90379D48893; Thu, 20 Apr 2017 21:21:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 340B51394; Thu, 20 Apr 2017 21:21:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KLLC1O002900; Thu, 20 Apr 2017 21:21:12 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLLACK002880; Thu, 20 Apr 2017 21:21:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202121.v3KLLACK002880@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:21:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317224 - in vendor/libc++/dist: . benchmarks include include/ext lib src test/libcxx/containers/sequences/vector test/libcxx/iterators test/libcxx/strings test/libcxx/utilities/meta/me... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:21:13 -0000 Author: dim Date: Thu Apr 20 21:21:10 2017 New Revision: 317224 URL: https://svnweb.freebsd.org/changeset/base/317224 Log: Vendor import of libc++ trunk r300890: https://llvm.org/svn/llvm-project/libcxx/trunk@300890 Added: vendor/libc++/dist/appveyor.yml vendor/libc++/dist/test/std/language.support/support.initlist/include_cxx03.pass.cpp (contents, props changed) vendor/libc++/dist/utils/google-benchmark/cmake/Config.cmake.in (contents, props changed) vendor/libc++/dist/utils/google-benchmark/docs/ vendor/libc++/dist/utils/google-benchmark/docs/tools.md vendor/libc++/dist/utils/google-benchmark/mingw.py (contents, props changed) vendor/libc++/dist/utils/google-benchmark/src/counter.cc (contents, props changed) vendor/libc++/dist/utils/google-benchmark/src/counter.h (contents, props changed) Modified: vendor/libc++/dist/CMakeLists.txt vendor/libc++/dist/benchmarks/CMakeLists.txt vendor/libc++/dist/include/__functional_base vendor/libc++/dist/include/__hash_table vendor/libc++/dist/include/__mutex_base vendor/libc++/dist/include/__split_buffer vendor/libc++/dist/include/__tree vendor/libc++/dist/include/__tuple vendor/libc++/dist/include/algorithm vendor/libc++/dist/include/bitset vendor/libc++/dist/include/exception vendor/libc++/dist/include/ext/hash_map vendor/libc++/dist/include/fstream vendor/libc++/dist/include/functional vendor/libc++/dist/include/initializer_list vendor/libc++/dist/include/ios vendor/libc++/dist/include/istream vendor/libc++/dist/include/iterator vendor/libc++/dist/include/locale vendor/libc++/dist/include/map vendor/libc++/dist/include/memory vendor/libc++/dist/include/mutex vendor/libc++/dist/include/optional vendor/libc++/dist/include/ostream vendor/libc++/dist/include/queue vendor/libc++/dist/include/random vendor/libc++/dist/include/regex vendor/libc++/dist/include/set vendor/libc++/dist/include/sstream vendor/libc++/dist/include/stack vendor/libc++/dist/include/string vendor/libc++/dist/include/strstream vendor/libc++/dist/include/thread vendor/libc++/dist/include/tuple vendor/libc++/dist/include/unordered_map vendor/libc++/dist/include/unordered_set vendor/libc++/dist/include/utility vendor/libc++/dist/include/valarray vendor/libc++/dist/lib/CMakeLists.txt vendor/libc++/dist/src/iostream.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/asan_throw.pass.cpp vendor/libc++/dist/test/libcxx/iterators/trivial_iterators.pass.cpp vendor/libc++/dist/test/libcxx/strings/iterators.exceptions.pass.cpp vendor/libc++/dist/test/libcxx/strings/iterators.noexcept.pass.cpp vendor/libc++/dist/test/libcxx/utilities/meta/meta.unary/meta.unary.prop/__has_operator_addressof.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.remove/remove.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.swap/swap_ranges.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.unique/unique.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.unique/unique_pred.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/sort/sort_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp vendor/libc++/dist/test/std/containers/Emplaceable.h vendor/libc++/dist/test/std/containers/associative/map/map.access/index_tuple.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/initializer_list_compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/initializer_list_compare_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/insert_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_iter_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/initializer_list_compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/initializer_list_compare_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_iter_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/initializer_list_compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/initializer_list_compare_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_comp_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_comp_rcontainer.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_iter_iter_comp_rcont.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.members/emplace.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.members/push_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons.alloc/ctor_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons.alloc/ctor_container_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons.alloc/ctor_rcontainer_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons.alloc/ctor_rqueue_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/ctor_move.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/ctor_rcontainer.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/push_rv.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons.alloc/ctor_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons.alloc/ctor_container_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons.alloc/ctor_rcontainer_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons.alloc/ctor_rqueue_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/ctor_move.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/ctor_rcontainer.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/push_rv.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_hint_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_hint_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/move_alloc.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.assign/move_assign.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/filebuf.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/fstream.assign/move_assign.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/fstream.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/ifstream.assign/move_assign.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/ifstream.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/ofstream.assign/move_assign.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/ofstream.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/iostreamclass/iostream.assign/move_assign.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/iostreamclass/iostream.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream/istream.assign/move_assign.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.assign/move_assign.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.rvalue/CharT_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/istringstream/istringstream.assign/move.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/istringstream/istringstream.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/ostringstream/ostringstream.assign/move.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/ostringstream/ostringstream.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/stringstream.cons/move.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/stringstream.cons/move2.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/stringstream.cons/stringstream.assign/move.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp vendor/libc++/dist/test/std/language.support/support.initlist/support.initlist.access/access.pass.cpp vendor/libc++/dist/test/std/language.support/support.initlist/support.initlist.cons/default.pass.cpp vendor/libc++/dist/test/std/language.support/support.initlist/support.initlist.range/begin_end.pass.cpp vendor/libc++/dist/test/std/language.support/support.initlist/types.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.literals/literals.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.literals/literals1.fail.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.members/construct.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/double_float_explicit.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/double_float_implicit.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/double_long_double_explicit.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/float_double_explicit.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/float_long_double_explicit.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/long_double_double_explicit.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/long_double_double_implicit.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/long_double_float_explicit.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.special/long_double_float_implicit.pass.cpp vendor/libc++/dist/test/std/numerics/numarray/template.valarray/valarray.assign/initializer_list_assign.pass.cpp vendor/libc++/dist/test/std/numerics/numarray/template.valarray/valarray.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.discrete/ctor_init.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.discrete/param_ctor_default.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.discrete/param_ctor_init.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.pconst/ctor_default.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.pconst/ctor_init_func.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.pconst/param_ctor_init_func.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.plinear/ctor_default.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.plinear/ctor_init_func.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.plinear/param_ctor_init_func.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.util/rand.util.seedseq/initializer_list.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/init.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign.il.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/il.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/il_flg.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock.algorithm/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.once/thread.once.onceflag/default.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.help/integral_constant.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_union.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.hash/hash.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/greater_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/greater_than.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/less_equal.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/less_than.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.relops/not_equal.pass.cpp vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.runtime.pass.cpp vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/default.pass.cpp vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/move_convert.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.arithmetic/op_+.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.arithmetic/op_-.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/duration_cast.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.comparisons/op_equal.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.comparisons/op_less.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cons/convert_exact.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cons/convert_inexact.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cons/convert_int_to_float.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cons/default.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cons/rep.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cons/rep02.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.nonmember/op_+.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.nonmember/op_-.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.nonmember/op_divide_duration.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.nonmember/op_divide_rep.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.nonmember/op_mod_duration.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.nonmember/op_mod_rep.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.nonmember/op_times_rep.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/piecewise.pass.cpp vendor/libc++/dist/test/support/Counter.h vendor/libc++/dist/test/support/MoveOnly.h vendor/libc++/dist/test/support/allocators.h vendor/libc++/dist/test/support/nasty_containers.hpp vendor/libc++/dist/test/support/tracked_value.h vendor/libc++/dist/utils/google-benchmark/AUTHORS vendor/libc++/dist/utils/google-benchmark/CMakeLists.txt vendor/libc++/dist/utils/google-benchmark/CONTRIBUTORS vendor/libc++/dist/utils/google-benchmark/README.md vendor/libc++/dist/utils/google-benchmark/cmake/AddCXXCompilerFlag.cmake vendor/libc++/dist/utils/google-benchmark/cmake/CXXFeatureCheck.cmake vendor/libc++/dist/utils/google-benchmark/include/benchmark/benchmark_api.h vendor/libc++/dist/utils/google-benchmark/include/benchmark/reporter.h vendor/libc++/dist/utils/google-benchmark/src/CMakeLists.txt vendor/libc++/dist/utils/google-benchmark/src/benchmark.cc vendor/libc++/dist/utils/google-benchmark/src/benchmark_api_internal.h vendor/libc++/dist/utils/google-benchmark/src/benchmark_register.cc vendor/libc++/dist/utils/google-benchmark/src/complexity.cc vendor/libc++/dist/utils/google-benchmark/src/console_reporter.cc vendor/libc++/dist/utils/google-benchmark/src/csv_reporter.cc vendor/libc++/dist/utils/google-benchmark/src/cycleclock.h vendor/libc++/dist/utils/google-benchmark/src/internal_macros.h vendor/libc++/dist/utils/google-benchmark/src/json_reporter.cc vendor/libc++/dist/utils/google-benchmark/src/re.h vendor/libc++/dist/utils/google-benchmark/src/sleep.cc vendor/libc++/dist/utils/google-benchmark/src/sleep.h vendor/libc++/dist/utils/google-benchmark/src/string_util.cc vendor/libc++/dist/utils/google-benchmark/src/sysinfo.cc vendor/libc++/dist/utils/google-benchmark/src/timers.cc vendor/libc++/dist/utils/google-benchmark/test/CMakeLists.txt vendor/libc++/dist/utils/google-benchmark/test/benchmark_test.cc vendor/libc++/dist/utils/google-benchmark/test/cxx03_test.cc vendor/libc++/dist/utils/google-benchmark/test/diagnostics_test.cc vendor/libc++/dist/utils/google-benchmark/test/options_test.cc vendor/libc++/dist/utils/google-benchmark/test/output_test_helper.cc vendor/libc++/dist/utils/google-benchmark/test/reporter_output_test.cc vendor/libc++/dist/utils/google-benchmark/tools/compare_bench.py vendor/libc++/dist/utils/google-benchmark/tools/gbench/Inputs/test1_run1.json vendor/libc++/dist/utils/google-benchmark/tools/gbench/Inputs/test1_run2.json vendor/libc++/dist/utils/google-benchmark/tools/gbench/report.py vendor/libc++/dist/utils/google-benchmark/tools/gbench/util.py vendor/libc++/dist/utils/libcxx/test/config.py vendor/libc++/dist/www/cxx1z_status.html Modified: vendor/libc++/dist/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/CMakeLists.txt Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/CMakeLists.txt Thu Apr 20 21:21:10 2017 (r317224) @@ -64,8 +64,12 @@ option(LIBCXX_ENABLE_ASSERTIONS "Enable option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON) option(LIBCXX_ENABLE_STATIC "Build libc++ as a static library." ON) option(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY "Build libc++experimental.a" ON) -option(LIBCXX_ENABLE_FILESYSTEM - "Build filesystem as part of libc++experimental.a" ${LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY}) +set(ENABLE_FILESYSTEM_DEFAULT ${LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY}) +if (WIN32) + set(ENABLE_FILESYSTEM_DEFAULT OFF) +endif() +option(LIBCXX_ENABLE_FILESYSTEM "Build filesystem as part of libc++experimental.a" + ${ENABLE_FILESYSTEM_DEFAULT}) option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS}) # Benchmark options ----------------------------------------------------------- Added: vendor/libc++/dist/appveyor.yml ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/appveyor.yml Thu Apr 20 21:21:10 2017 (r317224) @@ -0,0 +1,97 @@ +version: '{build}' + +shallow_clone: true + +os: + - Visual Studio 2015 + +build: + verbosity: detailed + +branches: + only: + - master + +configuration: + - Debug + +environment: + matrix: + - COMPILER: Clang-CL 4.0 + +install: + ############################################################################ + # All external dependencies are installed in C:\projects\deps + ############################################################################ + - mkdir C:\projects\deps + - cd C:\projects\deps + + ############################################################################ + # Install Ninja + ############################################################################ + - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-win.zip" + - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip + - 7z x ninja.zip -oC:\projects\deps\ninja > nul + - set PATH=C:\projects\deps\ninja;%PATH% + - ninja --version + + ############################################################################ + # Install a recent CMake + ############################################################################ + - set CMAKE_URL="https://cmake.org/files/v3.7/cmake-3.7.2-win64-x64.zip" + - appveyor DownloadFile %CMAKE_URL% -FileName cmake.zip + - 7z x cmake.zip -oC:\projects\deps > nul + - move C:\projects\deps\cmake-* C:\projects\deps\cmake # Move to a version-agnostic directory + - set PATH=C:\projects\deps\cmake\bin;%PATH% + - cmake --version + + ############################################################################ + # Setup the path to Clang-cl + ############################################################################ + - set PATH="C:\Program Files\LLVM\bin";%PATH% + - clang-cl -v + + ############################################################################ + # Setup the cached copy of LLVM + ############################################################################ + - if exist llvm (git -C llvm pull --rebase=true --ff-only) + - if not exist llvm (git clone --depth=1 http://llvm.org/git/llvm.git) + + +before_build: + - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + - cd C:\projects\libcxx + +build_script: + - md C:\projects\build-libcxx + - cd C:\projects\build-libcxx + - echo %configuration% + + ############################################################################# + # Configuration Step + ############################################################################# + - cmake -G Ninja %extra_cmake_flags% + -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe + "-DCMAKE_BUILD_TYPE=%configuration%" + "-DLLVM_PATH=C:\projects\deps\llvm" -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLLVM_LIT_ARGS="-sv --no-progress-bar --show-xfail --show-unsupported" + C:\projects\libcxx + + ############################################################################# + # Build Step + ############################################################################# + - ninja + +test_script: + - ninja check-cxx + +on_failure: + - appveyor PushArtifact CMakeFiles/CMakeOutput.log + - appveyor PushArtifact CMakeFiles/CMakeError.log + +artifacts: + - path: '_build/CMakeFiles/*.log' + name: logs + +cache: + - C:\projects\deps\llvm Modified: vendor/libc++/dist/benchmarks/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/benchmarks/CMakeLists.txt Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/benchmarks/CMakeLists.txt Thu Apr 20 21:21:10 2017 (r317224) @@ -63,7 +63,7 @@ endif() # Benchmark tests configuration #============================================================================== add_custom_target(cxx-benchmarks) - +set(BENCHMARK_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(BENCHMARK_LIBCXX_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/benchmark-libcxx) set(BENCHMARK_NATIVE_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/benchmark-native) set(BENCHMARK_TEST_COMPILE_FLAGS @@ -111,6 +111,7 @@ macro(add_benchmark_test name source_fil set_target_properties(${libcxx_target} PROPERTIES OUTPUT_NAME "${name}.libcxx.out" + RUNTIME_OUTPUT_DIRECTORY "${BENCHMARK_OUTPUT_DIR}" COMPILE_FLAGS "${BENCHMARK_TEST_LIBCXX_COMPILE_FLAGS}" LINK_FLAGS "${BENCHMARK_TEST_LIBCXX_LINK_FLAGS}") if (LIBCXX_BENCHMARK_NATIVE_STDLIB) @@ -131,6 +132,7 @@ macro(add_benchmark_test name source_fil set_target_properties(${native_target} PROPERTIES OUTPUT_NAME "${name}.native.out" + RUNTIME_OUTPUT_DIRECTORY "${BENCHMARK_OUTPUT_DIR}" INCLUDE_DIRECTORIES "" COMPILE_FLAGS "${BENCHMARK_TEST_NATIVE_COMPILE_FLAGS}" LINK_FLAGS "${BENCHMARK_TEST_NATIVE_LINK_FLAGS}") Modified: vendor/libc++/dist/include/__functional_base ============================================================================== --- vendor/libc++/dist/include/__functional_base Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/__functional_base Thu Apr 20 21:21:10 2017 (r317224) @@ -251,7 +251,7 @@ struct __weak_result_type<_Rp (_Cp::*)(_ }; -#ifndef _LIBCPP_HAS_NO_VARIADICS +#ifndef _LIBCPP_CXX03_LANG // 3 or more arguments template @@ -296,10 +296,6 @@ struct __weak_result_type<_Rp (_Cp::*)(_ typedef _Rp result_type; }; -#endif // _LIBCPP_HAS_NO_VARIADICS - -#ifndef _LIBCPP_CXX03_LANG - template struct __invoke_return { @@ -316,7 +312,7 @@ struct __invoke_return template struct __invoke_void_return_wrapper { -#ifndef _LIBCPP_HAS_NO_VARIADICS +#ifndef _LIBCPP_CXX03_LANG template static _Ret __call(_Args&&... __args) { return __invoke(_VSTD::forward<_Args>(__args)...); @@ -347,7 +343,7 @@ struct __invoke_void_return_wrapper template <> struct __invoke_void_return_wrapper { -#ifndef _LIBCPP_HAS_NO_VARIADICS +#ifndef _LIBCPP_CXX03_LANG template static void __call(_Args&&... __args) { __invoke(_VSTD::forward<_Args>(__args)...); @@ -389,7 +385,7 @@ public: // construct/copy/destroy _LIBCPP_INLINE_VISIBILITY reference_wrapper(type& __f) _NOEXCEPT : __f_(_VSTD::addressof(__f)) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG private: reference_wrapper(type&&); public: // = delete; // do not bind to temps #endif @@ -397,7 +393,7 @@ public: _LIBCPP_INLINE_VISIBILITY operator type& () const _NOEXCEPT {return *__f_;} _LIBCPP_INLINE_VISIBILITY type& get() const _NOEXCEPT {return *__f_;} -#ifndef _LIBCPP_HAS_NO_VARIADICS +#ifndef _LIBCPP_CXX03_LANG // invoke template _LIBCPP_INLINE_VISIBILITY @@ -510,7 +506,7 @@ public: operator() (_A0 const& __a0, _A1 const& __a1, _A2 const& __a2) const { return __invoke(get(), __a0, __a1, __a2); } -#endif // _LIBCPP_HAS_NO_VARIADICS +#endif // _LIBCPP_CXX03_LANG }; @@ -568,7 +564,7 @@ public: struct _LIBCPP_TEMPLATE_VIS allocator_arg_t { }; -#if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_MEMORY) +#if defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_BUILDING_MEMORY) extern const allocator_arg_t allocator_arg; #else constexpr allocator_arg_t allocator_arg = allocator_arg_t(); @@ -611,7 +607,7 @@ template constexpr size_t uses_allocator_v = uses_allocator<_Tp, _Alloc>::value; #endif -#ifndef _LIBCPP_HAS_NO_VARIADICS +#ifndef _LIBCPP_CXX03_LANG // allocator construction @@ -663,7 +659,7 @@ void __user_alloc_construct (_Tp *__stor __storage, __a, _VSTD::forward<_Args>(__args)... ); } -#endif // _LIBCPP_HAS_NO_VARIADICS +#endif // _LIBCPP_CXX03_LANG _LIBCPP_END_NAMESPACE_STD Modified: vendor/libc++/dist/include/__hash_table ============================================================================== --- vendor/libc++/dist/include/__hash_table Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/__hash_table Thu Apr 20 21:21:10 2017 (r317224) @@ -798,8 +798,7 @@ public: _NOEXCEPT_(is_nothrow_copy_constructible::value) : __data_(__size, __a) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - +#ifndef _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY __bucket_list_deallocator(__bucket_list_deallocator&& __x) _NOEXCEPT_(is_nothrow_move_constructible::value) @@ -807,8 +806,7 @@ public: { __x.size() = 0; } - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif _LIBCPP_INLINE_VISIBILITY size_type& size() _NOEXCEPT {return __data_.first();} Modified: vendor/libc++/dist/include/__mutex_base ============================================================================== --- vendor/libc++/dist/include/__mutex_base Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/__mutex_base Thu Apr 20 21:21:10 2017 (r317224) @@ -34,7 +34,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability("mutex")) mutex { -#ifndef _LIBCPP_HAS_NO_CONSTEXPR +#ifndef _LIBCPP_CXX03_LANG __libcpp_mutex_t __m_ = _LIBCPP_MUTEX_INITIALIZER; #else __libcpp_mutex_t __m_; @@ -42,7 +42,7 @@ class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SA public: _LIBCPP_INLINE_VISIBILITY -#ifndef _LIBCPP_HAS_NO_CONSTEXPR +#ifndef _LIBCPP_CXX03_LANG constexpr mutex() _NOEXCEPT = default; #else mutex() _NOEXCEPT {__m_ = (__libcpp_mutex_t)_LIBCPP_MUTEX_INITIALIZER;} @@ -66,7 +66,7 @@ struct _LIBCPP_TYPE_VIS defer_lock_t {}; struct _LIBCPP_TYPE_VIS try_to_lock_t {}; struct _LIBCPP_TYPE_VIS adopt_lock_t {}; -#if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_MUTEX) +#if defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_BUILDING_MUTEX) extern const defer_lock_t defer_lock; extern const try_to_lock_t try_to_lock; @@ -150,7 +150,7 @@ private: unique_lock& operator=(unique_lock const&); // = delete; public: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY unique_lock(unique_lock&& __u) _NOEXCEPT : __m_(__u.__m_), __owns_(__u.__owns_) @@ -167,7 +167,7 @@ public: return *this; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG void lock(); bool try_lock(); @@ -279,7 +279,7 @@ _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(cv_st class _LIBCPP_TYPE_VIS condition_variable { -#ifndef _LIBCPP_HAS_NO_CONSTEXPR +#ifndef _LIBCPP_CXX03_LANG __libcpp_condvar_t __cv_ = _LIBCPP_CONDVAR_INITIALIZER; #else __libcpp_condvar_t __cv_; @@ -287,7 +287,7 @@ class _LIBCPP_TYPE_VIS condition_variabl public: _LIBCPP_INLINE_VISIBILITY -#ifndef _LIBCPP_HAS_NO_CONSTEXPR +#ifndef _LIBCPP_CXX03_LANG constexpr condition_variable() _NOEXCEPT = default; #else condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;} Modified: vendor/libc++/dist/include/__split_buffer ============================================================================== --- vendor/libc++/dist/include/__split_buffer Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/__split_buffer Thu Apr 20 21:21:10 2017 (r317224) @@ -66,7 +66,7 @@ public: __split_buffer(size_type __cap, size_type __start, __alloc_rr& __a); ~__split_buffer(); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG __split_buffer(__split_buffer&& __c) _NOEXCEPT_(is_nothrow_move_constructible::value); __split_buffer(__split_buffer&& __c, const __alloc_rr& __a); @@ -74,7 +74,7 @@ public: _NOEXCEPT_((__alloc_traits::propagate_on_container_move_assignment::value && is_nothrow_move_assignable::value) || !__alloc_traits::propagate_on_container_move_assignment::value); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY iterator begin() _NOEXCEPT {return __begin_;} _LIBCPP_INLINE_VISIBILITY const_iterator begin() const _NOEXCEPT {return __begin_;} @@ -99,14 +99,12 @@ public: void shrink_to_fit() _NOEXCEPT; void push_front(const_reference __x); _LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x); -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) +#ifndef _LIBCPP_CXX03_LANG void push_front(value_type&& __x); void push_back(value_type&& __x); -#if !defined(_LIBCPP_HAS_NO_VARIADICS) template void emplace_back(_Args&&... __args); -#endif // !defined(_LIBCPP_HAS_NO_VARIADICS) -#endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) +#endif // !defined(_LIBCPP_CXX03_LANG) _LIBCPP_INLINE_VISIBILITY void pop_front() {__destruct_at_begin(__begin_+1);} _LIBCPP_INLINE_VISIBILITY void pop_back() {__destruct_at_end(__end_-1);} @@ -343,7 +341,7 @@ __split_buffer<_Tp, _Allocator>::~__spli __alloc_traits::deallocate(__alloc(), __first_, capacity()); } -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template __split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c) @@ -405,7 +403,7 @@ __split_buffer<_Tp, _Allocator>::operato return *this; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template void @@ -492,7 +490,7 @@ __split_buffer<_Tp, _Allocator>::push_fr --__begin_; } -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template void @@ -524,7 +522,7 @@ __split_buffer<_Tp, _Allocator>::push_fr --__begin_; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template inline _LIBCPP_INLINE_VISIBILITY @@ -556,7 +554,7 @@ __split_buffer<_Tp, _Allocator>::push_ba ++__end_; } -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template void @@ -588,8 +586,6 @@ __split_buffer<_Tp, _Allocator>::push_ba ++__end_; } -#ifndef _LIBCPP_HAS_NO_VARIADICS - template template void @@ -621,9 +617,7 @@ __split_buffer<_Tp, _Allocator>::emplace ++__end_; } -#endif // _LIBCPP_HAS_NO_VARIADICS - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template inline _LIBCPP_INLINE_VISIBILITY Modified: vendor/libc++/dist/include/__tree ============================================================================== --- vendor/libc++/dist/include/__tree Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/__tree Thu Apr 20 21:21:10 2017 (r317224) @@ -1105,7 +1105,7 @@ public: void __assign_unique(_InputIterator __first, _InputIterator __last); template void __assign_multi(_InputIterator __first, _InputIterator __last); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG __tree(__tree&& __t) _NOEXCEPT_( is_nothrow_move_constructible<__node_allocator>::value && @@ -1116,7 +1116,7 @@ public: __node_traits::propagate_on_container_move_assignment::value && is_nothrow_move_assignable::value && is_nothrow_move_assignable<__node_allocator>::value); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG ~__tree(); @@ -1675,7 +1675,7 @@ __tree<_Tp, _Compare, _Allocator>::__tre __begin_node() = __end_node(); } -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t) @@ -1805,7 +1805,7 @@ __tree<_Tp, _Compare, _Allocator>::opera return *this; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template __tree<_Tp, _Compare, _Allocator>::~__tree() Modified: vendor/libc++/dist/include/__tuple ============================================================================== --- vendor/libc++/dist/include/__tuple Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/__tuple Thu Apr 20 21:21:10 2017 (r317224) @@ -85,7 +85,7 @@ template struct __tuple_like // tuple specializations -#if !defined(_LIBCPP_HAS_NO_VARIADICS) +#ifndef _LIBCPP_CXX03_LANG template struct __tuple_indices {}; @@ -189,7 +189,8 @@ template _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const typename tuple_element<_Ip, tuple<_Tp...> >::type&& get(const tuple<_Tp...>&&) _NOEXCEPT; -#endif + +#endif // !defined(_LIBCPP_CXX03_LANG) // pair specializations @@ -205,7 +206,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTE const typename tuple_element<_Ip, pair<_T1, _T2> >::type& get(const pair<_T1, _T2>&) _NOEXCEPT; -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) +#ifndef _LIBCPP_CXX03_LANG template _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 typename tuple_element<_Ip, pair<_T1, _T2> >::type&& @@ -233,7 +234,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTE const _Tp& get(const array<_Tp, _Size>&) _NOEXCEPT; -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) +#ifndef _LIBCPP_CXX03_LANG template _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 _Tp&& @@ -245,8 +246,7 @@ const _Tp&& get(const array<_Tp, _Size>&&) _NOEXCEPT; #endif -#if !defined(_LIBCPP_HAS_NO_VARIADICS) - +#ifndef _LIBCPP_CXX03_LANG // __tuple_types @@ -468,9 +468,6 @@ template using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type; #endif -#endif // _LIBCPP_HAS_NO_VARIADICS - -#ifndef _LIBCPP_CXX03_LANG template struct __tuple_like_with_size_imp : false_type {}; @@ -495,7 +492,7 @@ struct _LIBCPP_TYPE_VIS __check_tuple_co template static constexpr bool __enable_assign() { return false; } }; -#endif +#endif // !defined(_LIBCPP_CXX03_LANG) #if _LIBCPP_STD_VER > 14 Modified: vendor/libc++/dist/include/algorithm ============================================================================== --- vendor/libc++/dist/include/algorithm Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/algorithm Thu Apr 20 21:21:10 2017 (r317224) @@ -2548,7 +2548,7 @@ min(const _Tp& __a, const _Tp& __b) return _VSTD::min(__a, __b, __less<_Tp>()); } -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS +#ifndef _LIBCPP_CXX03_LANG template inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 @@ -2566,7 +2566,7 @@ min(initializer_list<_Tp> __t) return *_VSTD::min_element(__t.begin(), __t.end(), __less<_Tp>()); } -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS +#endif // _LIBCPP_CXX03_LANG // max_element @@ -2613,7 +2613,7 @@ max(const _Tp& __a, const _Tp& __b) return _VSTD::max(__a, __b, __less<_Tp>()); } -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS +#ifndef _LIBCPP_CXX03_LANG template inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 @@ -2631,7 +2631,7 @@ max(initializer_list<_Tp> __t) return *_VSTD::max_element(__t.begin(), __t.end(), __less<_Tp>()); } -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS +#endif // _LIBCPP_CXX03_LANG #if _LIBCPP_STD_VER > 14 // clamp @@ -2732,7 +2732,7 @@ minmax(const _Tp& __a, const _Tp& __b) return _VSTD::minmax(__a, __b, __less<_Tp>()); } -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS +#ifndef _LIBCPP_CXX03_LANG template inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 @@ -2779,7 +2779,7 @@ minmax(initializer_list<_Tp> __t) return _VSTD::minmax(__t, __less<_Tp>()); } -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS +#endif // _LIBCPP_CXX03_LANG // random_shuffle @@ -2837,7 +2837,7 @@ private: _Engine_result_type __mask0_; _Engine_result_type __mask1_; -#ifdef _LIBCPP_HAS_NO_CONSTEXPR +#ifdef _LIBCPP_CXX03_LANG static const _Working_result_type _Rp = _Engine::_Max - _Engine::_Min + _Working_result_type(1); #else @@ -3080,7 +3080,7 @@ random_shuffle(_RandomAccessIterator __f template void random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _RandomNumberGenerator&& __rand) #else _RandomNumberGenerator& __rand) @@ -3173,7 +3173,7 @@ _SampleIterator sample(_PopulationIterat template void shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _UniformRandomNumberGenerator&& __g) #else _UniformRandomNumberGenerator& __g) Modified: vendor/libc++/dist/include/bitset ============================================================================== --- vendor/libc++/dist/include/bitset Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/bitset Thu Apr 20 21:21:10 2017 (r317224) @@ -197,11 +197,11 @@ protected: _LIBCPP_INLINE_VISIBILITY size_t __hash_code() const _NOEXCEPT; private: -#ifdef _LIBCPP_HAS_NO_CONSTEXPR +#ifdef _LIBCPP_CXX03_LANG void __init(unsigned long long __v, false_type) _NOEXCEPT; _LIBCPP_INLINE_VISIBILITY void __init(unsigned long long __v, true_type) _NOEXCEPT; -#endif // _LIBCPP_HAS_NO_CONSTEXPR +#endif // _LIBCPP_CXX03_LANG unsigned long to_ulong(false_type) const; _LIBCPP_INLINE_VISIBILITY unsigned long to_ulong(true_type) const; @@ -217,16 +217,16 @@ template inline _LIBCPP_CONSTEXPR __bitset<_N_words, _Size>::__bitset() _NOEXCEPT -#ifndef _LIBCPP_HAS_NO_CONSTEXPR +#ifndef _LIBCPP_CXX03_LANG : __first_{0} #endif { -#ifdef _LIBCPP_HAS_NO_CONSTEXPR +#ifdef _LIBCPP_CXX03_LANG _VSTD::fill_n(__first_, _N_words, __storage_type(0)); #endif } -#ifdef _LIBCPP_HAS_NO_CONSTEXPR +#ifdef _LIBCPP_CXX03_LANG template void @@ -249,13 +249,13 @@ __bitset<_N_words, _Size>::__init(unsign _VSTD::fill(__first_ + 1, __first_ + sizeof(__first_)/sizeof(__first_[0]), __storage_type(0)); } -#endif // _LIBCPP_HAS_NO_CONSTEXPR +#endif // _LIBCPP_CXX03_LANG template inline _LIBCPP_CONSTEXPR __bitset<_N_words, _Size>::__bitset(unsigned long long __v) _NOEXCEPT -#ifndef _LIBCPP_HAS_NO_CONSTEXPR +#ifndef _LIBCPP_CXX03_LANG #if __SIZEOF_SIZE_T__ == 8 : __first_{__v} #elif __SIZEOF_SIZE_T__ == 4 @@ -265,7 +265,7 @@ __bitset<_N_words, _Size>::__bitset(unsi #endif #endif { -#ifdef _LIBCPP_HAS_NO_CONSTEXPR +#ifdef _LIBCPP_CXX03_LANG __init(__v, integral_constant()); #endif } Modified: vendor/libc++/dist/include/exception ============================================================================== --- vendor/libc++/dist/include/exception Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/exception Thu Apr 20 21:21:10 2017 (r317224) @@ -209,11 +209,11 @@ struct __throw_with_nested; template struct __throw_with_nested<_Tp, _Up, true> { _LIBCPP_NORETURN static inline _LIBCPP_ALWAYS_INLINE void - #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG __do_throw(_Tp&& __t) - #else +#else __do_throw (_Tp& __t) - #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG { throw __nested<_Up>(_VSTD::forward<_Tp>(__t)); } @@ -222,11 +222,11 @@ struct __throw_with_nested<_Tp, _Up, tru template struct __throw_with_nested<_Tp, _Up, false> { _LIBCPP_NORETURN static inline _LIBCPP_ALWAYS_INLINE void - #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG __do_throw(_Tp&& __t) - #else +#else __do_throw (_Tp& __t) - #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG { throw _VSTD::forward<_Tp>(__t); } @@ -236,11 +236,11 @@ struct __throw_with_nested<_Tp, _Up, fal template _LIBCPP_NORETURN void -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG throw_with_nested(_Tp&& __t) #else throw_with_nested (_Tp& __t) -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG { #ifndef _LIBCPP_NO_EXCEPTIONS typedef typename decay<_Tp>::type _Up; Modified: vendor/libc++/dist/include/ext/hash_map ============================================================================== --- vendor/libc++/dist/include/ext/hash_map Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/ext/hash_map Thu Apr 20 21:21:10 2017 (r317224) @@ -331,7 +331,7 @@ public: __second_constructed(false) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY __hash_map_node_destructor(__hash_node_destructor&& __x) : __na_(__x.__na_), @@ -340,7 +340,7 @@ public: { __x.__value_constructed = false; } -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#else // _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY __hash_map_node_destructor(const __hash_node_destructor& __x) : __na_(__x.__na_), @@ -349,7 +349,7 @@ public: { const_cast(__x.__value_constructed) = false; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY void operator()(pointer __p) Modified: vendor/libc++/dist/include/fstream ============================================================================== --- vendor/libc++/dist/include/fstream Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/fstream Thu Apr 20 21:21:10 2017 (r317224) @@ -193,13 +193,13 @@ public: // 27.9.1.2 Constructors/destructor: basic_filebuf(); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG basic_filebuf(basic_filebuf&& __rhs); #endif virtual ~basic_filebuf(); // 27.9.1.3 Assign/swap: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY basic_filebuf& operator=(basic_filebuf&& __rhs); #endif @@ -276,7 +276,7 @@ basic_filebuf<_CharT, _Traits>::basic_fi setbuf(0, 4096); } -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template basic_filebuf<_CharT, _Traits>::basic_filebuf(basic_filebuf&& __rhs) @@ -352,7 +352,7 @@ basic_filebuf<_CharT, _Traits>::operator return *this; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template basic_filebuf<_CharT, _Traits>::~basic_filebuf() @@ -1017,12 +1017,10 @@ public: _LIBCPP_INLINE_VISIBILITY explicit basic_ifstream(const string& __s, ios_base::openmode __mode = ios_base::in); #endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY basic_ifstream(basic_ifstream&& __rhs); -#endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES _LIBCPP_INLINE_VISIBILITY basic_ifstream& operator=(basic_ifstream&& __rhs); #endif @@ -1071,7 +1069,7 @@ basic_ifstream<_CharT, _Traits>::basic_i } #endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template inline @@ -1092,7 +1090,7 @@ basic_ifstream<_CharT, _Traits>::operato return *this; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template inline @@ -1177,12 +1175,10 @@ public: explicit basic_ofstream(const char* __s, ios_base::openmode __mode = ios_base::out); _LIBCPP_INLINE_VISIBILITY explicit basic_ofstream(const string& __s, ios_base::openmode __mode = ios_base::out); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY basic_ofstream(basic_ofstream&& __rhs); -#endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES _LIBCPP_INLINE_VISIBILITY basic_ofstream& operator=(basic_ofstream&& __rhs); #endif @@ -1231,7 +1227,7 @@ basic_ofstream<_CharT, _Traits>::basic_o } #endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template inline @@ -1252,7 +1248,7 @@ basic_ofstream<_CharT, _Traits>::operato return *this; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template inline @@ -1339,12 +1335,10 @@ public: _LIBCPP_INLINE_VISIBILITY explicit basic_fstream(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out); #endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _LIBCPP_INLINE_VISIBILITY basic_fstream(basic_fstream&& __rhs); -#endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES _LIBCPP_INLINE_VISIBILITY basic_fstream& operator=(basic_fstream&& __rhs); #endif @@ -1393,7 +1387,7 @@ basic_fstream<_CharT, _Traits>::basic_fs } #endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template inline @@ -1414,7 +1408,7 @@ basic_fstream<_CharT, _Traits>::operator return *this; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template inline Modified: vendor/libc++/dist/include/functional ============================================================================== --- vendor/libc++/dist/include/functional Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/functional Thu Apr 20 21:21:10 2017 (r317224) @@ -1264,7 +1264,7 @@ private: public: _LIBCPP_INLINE_VISIBILITY __mem_fn(type __f) _NOEXCEPT : __f_(__f) {} -#ifndef _LIBCPP_HAS_NO_VARIADICS +#ifndef _LIBCPP_CXX03_LANG // invoke template _LIBCPP_INLINE_VISIBILITY @@ -1454,7 +1454,7 @@ bool __not_null(function<_Fp> const& __f } // namespace __function -#ifndef _LIBCPP_HAS_NO_VARIADICS +#ifndef _LIBCPP_CXX03_LANG namespace __function { @@ -1983,7 +1983,7 @@ void swap(function<_Rp(_ArgTypes...)>& __x, function<_Rp(_ArgTypes...)>& __y) _NOEXCEPT {return __x.swap(__y);} -#else // _LIBCPP_HAS_NO_VARIADICS +#else // _LIBCPP_CXX03_LANG #include <__functional_03> @@ -2047,7 +2047,7 @@ struct __is_placeholder {}; -#ifndef _LIBCPP_HAS_NO_VARIADICS +#ifndef _LIBCPP_CXX03_LANG template inline _LIBCPP_INLINE_VISIBILITY @@ -2347,7 +2347,7 @@ bind(_Fp&& __f, _BoundArgs&&... __bound_ return type(_VSTD::forward<_Fp>(__f), _VSTD::forward<_BoundArgs>(__bound_args)...); } -#endif // _LIBCPP_HAS_NO_VARIADICS +#endif // _LIBCPP_CXX03_LANG #if _LIBCPP_STD_VER > 14 Modified: vendor/libc++/dist/include/initializer_list ============================================================================== --- vendor/libc++/dist/include/initializer_list Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/initializer_list Thu Apr 20 21:21:10 2017 (r317224) @@ -53,7 +53,7 @@ template const E* end(initializ namespace std // purposefully not versioned { -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS +#ifndef _LIBCPP_CXX03_LANG template class _LIBCPP_TEMPLATE_VIS initializer_list @@ -111,7 +111,7 @@ end(initializer_list<_Ep> __il) _NOEXCEP return __il.end(); } -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS +#endif // !defined(_LIBCPP_CXX03_LANG) } // std Modified: vendor/libc++/dist/include/ios ============================================================================== --- vendor/libc++/dist/include/ios Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/ios Thu Apr 20 21:21:10 2017 (r317224) @@ -657,7 +657,7 @@ protected: _LIBCPP_INLINE_VISIBILITY void move(basic_ios& __rhs); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG _LIBCPP_ALWAYS_INLINE void move(basic_ios&& __rhs) {move(__rhs);} #endif Modified: vendor/libc++/dist/include/istream ============================================================================== --- vendor/libc++/dist/include/istream Thu Apr 20 21:21:04 2017 (r317223) +++ vendor/libc++/dist/include/istream Thu Apr 20 21:21:10 2017 (r317224) @@ -189,12 +189,11 @@ public: { this->init(__sb); } virtual ~basic_istream(); protected: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG inline _LIBCPP_INLINE_VISIBILITY basic_istream(basic_istream&& __rhs); -#endif + // 27.7.1.1.2 Assign/swap: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES inline _LIBCPP_INLINE_VISIBILITY basic_istream& operator=(basic_istream&& __rhs); #endif @@ -332,7 +331,7 @@ basic_istream<_CharT, _Traits>::sentry:: __is.setstate(ios_base::failbit); } -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_CXX03_LANG template basic_istream<_CharT, _Traits>::basic_istream(basic_istream&& __rhs) @@ -350,7 +349,7 @@ basic_istream<_CharT, _Traits>::operator return *this; } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES +#endif // _LIBCPP_CXX03_LANG template basic_istream<_CharT, _Traits>::~basic_istream() @@ -1424,7 +1423,7 @@ ws(basic_istream<_CharT, _Traits>& __is) return __is; } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 21:21:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDC7DD488FB; Thu, 20 Apr 2017 21:21:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7B9EA14DD; Thu, 20 Apr 2017 21:21:21 +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 v3KLLKWA003009; Thu, 20 Apr 2017 21:21:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLLJBr002994; Thu, 20 Apr 2017 21:21:19 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202121.v3KLLJBr002994@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:21:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317226 - in vendor/lld/dist: COFF ELF test/COFF test/ELF X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:21:21 -0000 Author: dim Date: Thu Apr 20 21:21:19 2017 New Revision: 317226 URL: https://svnweb.freebsd.org/changeset/base/317226 Log: Vendor import of lld trunk r300890: https://llvm.org/svn/llvm-project/lld/trunk@300890 Added: vendor/lld/dist/test/ELF/compress-debug-sections.s (contents, props changed) Modified: vendor/lld/dist/COFF/Driver.cpp vendor/lld/dist/COFF/DriverUtils.cpp vendor/lld/dist/ELF/Config.h vendor/lld/dist/ELF/Driver.cpp vendor/lld/dist/ELF/LinkerScript.cpp vendor/lld/dist/ELF/LinkerScript.h vendor/lld/dist/ELF/Options.td vendor/lld/dist/ELF/OutputSections.cpp vendor/lld/dist/ELF/OutputSections.h vendor/lld/dist/ELF/Writer.cpp vendor/lld/dist/test/COFF/msvclto.ll vendor/lld/dist/test/ELF/tls-offset.s Modified: vendor/lld/dist/COFF/Driver.cpp ============================================================================== --- vendor/lld/dist/COFF/Driver.cpp Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/COFF/Driver.cpp Thu Apr 20 21:21:19 2017 (r317226) @@ -509,7 +509,7 @@ filterBitcodeFiles(StringRef Path, std:: // Create response file contents and invoke the MSVC linker. void LinkerDriver::invokeMSVC(opt::InputArgList &Args) { - std::string Rsp = "/nologo "; + std::string Rsp = "/nologo\n"; std::vector Temps; for (auto *Arg : Args) { @@ -528,14 +528,14 @@ void LinkerDriver::invokeMSVC(opt::Input case OPT_INPUT: { if (Optional Path = doFindFile(Arg->getValue())) { if (Optional S = filterBitcodeFiles(*Path, Temps)) - Rsp += quote(*S) + " "; + Rsp += quote(*S) + "\n"; continue; } - Rsp += quote(Arg->getValue()) + " "; + Rsp += quote(Arg->getValue()) + "\n"; break; } default: - Rsp += toString(Arg) + " "; + Rsp += toString(Arg) + "\n"; } } Modified: vendor/lld/dist/COFF/DriverUtils.cpp ============================================================================== --- vendor/lld/dist/COFF/DriverUtils.cpp Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/COFF/DriverUtils.cpp Thu Apr 20 21:21:19 2017 (r317226) @@ -634,7 +634,7 @@ void runMSVCLinker(std::string Rsp, Arra std::vector Temps; for (StringRef S : Objects) { Temps.emplace_back("lto", "obj", S); - Rsp += quote(Temps.back().Path) + " "; + Rsp += quote(Temps.back().Path) + "\n"; } log("link.exe " + Rsp); Modified: vendor/lld/dist/ELF/Config.h ============================================================================== --- vendor/lld/dist/ELF/Config.h Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/ELF/Config.h Thu Apr 20 21:21:19 2017 (r317226) @@ -104,6 +104,7 @@ struct Configuration { bool Bsymbolic; bool BsymbolicFunctions; bool ColorDiagnostics = false; + bool CompressDebugSections; bool DefineCommon; bool Demangle = true; bool DisableVerify; Modified: vendor/lld/dist/ELF/Driver.cpp ============================================================================== --- vendor/lld/dist/ELF/Driver.cpp Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/ELF/Driver.cpp Thu Apr 20 21:21:19 2017 (r317226) @@ -45,6 +45,7 @@ #include "llvm/ADT/StringSwitch.h" #include "llvm/Object/Decompressor.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/Compression.h" #include "llvm/Support/Path.h" #include "llvm/Support/TarWriter.h" #include "llvm/Support/TargetSelect.h" @@ -564,12 +565,24 @@ static std::vector getLines(M return Ret; } +static bool getCompressDebugSections(opt::InputArgList &Args) { + if (auto *Arg = Args.getLastArg(OPT_compress_debug_sections)) { + StringRef S = Arg->getValue(); + if (S == "zlib") + return zlib::isAvailable(); + if (S != "none") + error("unknown --compress-debug-sections value: " + S); + } + return false; +} + // Initializes Config members by the command line options. void LinkerDriver::readConfigs(opt::InputArgList &Args) { Config->AllowMultipleDefinition = Args.hasArg(OPT_allow_multiple_definition); Config->AuxiliaryList = getArgs(Args, OPT_auxiliary); Config->Bsymbolic = Args.hasArg(OPT_Bsymbolic); Config->BsymbolicFunctions = Args.hasArg(OPT_Bsymbolic_functions); + Config->CompressDebugSections = getCompressDebugSections(Args); Config->DefineCommon = getArg(Args, OPT_define_common, OPT_no_define_common, !Args.hasArg(OPT_relocatable)); Config->Demangle = getArg(Args, OPT_demangle, OPT_no_demangle, true); Modified: vendor/lld/dist/ELF/LinkerScript.cpp ============================================================================== --- vendor/lld/dist/ELF/LinkerScript.cpp Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/ELF/LinkerScript.cpp Thu Apr 20 21:21:19 2017 (r317226) @@ -413,6 +413,56 @@ void LinkerScript::processCommands(Outpu CurOutSec = nullptr; } +void LinkerScript::fabricateDefaultCommands(bool AllocateHeader) { + std::vector Commands; + + // Define start address + uint64_t StartAddr = Config->ImageBase; + if (AllocateHeader) + StartAddr += elf::getHeaderSize(); + + // The Sections with -T
are sorted in order of ascending address + // we must use this if it is lower than StartAddr as calls to setDot() must + // be monotonically increasing + if (!Config->SectionStartMap.empty()) { + uint64_t LowestSecStart = Config->SectionStartMap.begin()->second; + StartAddr = std::min(StartAddr, LowestSecStart); + } + Commands.push_back( + make(".", [=] { return StartAddr; }, "")); + + // For each OutputSection that needs a VA fabricate an OutputSectionCommand + // with an InputSectionDescription describing the InputSections + for (OutputSection *Sec : *OutputSections) { + if (!(Sec->Flags & SHF_ALLOC)) + continue; + + auto I = Config->SectionStartMap.find(Sec->Name); + if (I != Config->SectionStartMap.end()) + Commands.push_back( + make(".", [=] { return I->second; }, "")); + + auto *OSCmd = make(Sec->Name); + OSCmd->Sec = Sec; + if (Sec->PageAlign) + OSCmd->AddrExpr = [=] { + return alignTo(Script->getDot(), Config->MaxPageSize); + }; + Commands.push_back(OSCmd); + if (Sec->Sections.size()) { + auto *ISD = make(""); + OSCmd->Commands.push_back(ISD); + for (InputSection *ISec : Sec->Sections) { + ISD->Sections.push_back(ISec); + ISec->Assigned = true; + } + } + } + // SECTIONS commands run before other non SECTIONS commands + Commands.insert(Commands.end(), Opt.Commands.begin(), Opt.Commands.end()); + Opt.Commands = std::move(Commands); +} + // Add sections that didn't match any sections command. void LinkerScript::addOrphanSections(OutputSectionFactory &Factory) { for (InputSectionBase *S : InputSections) Modified: vendor/lld/dist/ELF/LinkerScript.h ============================================================================== --- vendor/lld/dist/ELF/LinkerScript.h Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/ELF/LinkerScript.h Thu Apr 20 21:21:19 2017 (r317226) @@ -256,6 +256,7 @@ public: bool isDefined(StringRef S); std::vector *OutputSections; + void fabricateDefaultCommands(bool AllocateHeader); void addOrphanSections(OutputSectionFactory &Factory); void removeEmptyCommands(); void adjustSectionsBeforeSorting(); Modified: vendor/lld/dist/ELF/Options.td ============================================================================== --- vendor/lld/dist/ELF/Options.td Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/ELF/Options.td Thu Apr 20 21:21:19 2017 (r317226) @@ -22,6 +22,9 @@ def build_id: F<"build-id">, HelpText<"G def build_id_eq: J<"build-id=">, HelpText<"Generate build ID note">; +def compress_debug_sections : J<"compress-debug-sections=">, + HelpText<"Compress DWARF debug sections">; + def L: JoinedOrSeparate<["-"], "L">, MetaVarName<"">, HelpText<"Add a directory to the library search path">; Modified: vendor/lld/dist/ELF/OutputSections.cpp ============================================================================== --- vendor/lld/dist/ELF/OutputSections.cpp Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/ELF/OutputSections.cpp Thu Apr 20 21:21:19 2017 (r317226) @@ -16,6 +16,7 @@ #include "SyntheticSections.h" #include "Target.h" #include "Threads.h" +#include "llvm/Support/Compression.h" #include "llvm/Support/Dwarf.h" #include "llvm/Support/MD5.h" #include "llvm/Support/MathExtras.h" @@ -83,6 +84,33 @@ static bool compareByFilePosition(InputS return LA->OutSecOff < LB->OutSecOff; } +// Compress section contents if this section contains debug info. +template void OutputSection::maybeCompress() { + typedef typename ELFT::Chdr Elf_Chdr; + + // Compress only DWARF debug sections. + if (!Config->CompressDebugSections || (Flags & SHF_ALLOC) || + !Name.startswith(".debug_")) + return; + + // Create a section header. + ZDebugHeader.resize(sizeof(Elf_Chdr)); + auto *Hdr = reinterpret_cast(ZDebugHeader.data()); + Hdr->ch_type = ELFCOMPRESS_ZLIB; + Hdr->ch_size = Size; + Hdr->ch_addralign = Alignment; + + // Write section contents to a temporary buffer and compress it. + std::vector Buf(Size); + writeTo(Buf.data()); + if (Error E = zlib::compress(toStringRef(Buf), CompressedData)) + fatal("compress failed: " + llvm::toString(std::move(E))); + + // Update section headers. + Size = sizeof(Elf_Chdr) + CompressedData.size(); + Flags |= SHF_COMPRESSED; +} + template void OutputSection::finalize() { if ((this->Flags & SHF_LINK_ORDER) && !this->Sections.empty()) { std::sort(Sections.begin(), Sections.end(), compareByFilePosition); @@ -245,6 +273,15 @@ uint32_t OutputSection::getFiller() { template void OutputSection::writeTo(uint8_t *Buf) { Loc = Buf; + // We may have already rendered compressed content when using + // -compress-debug-sections option. Write it together with header. + if (!CompressedData.empty()) { + memcpy(Buf, ZDebugHeader.data(), ZDebugHeader.size()); + memcpy(Buf + ZDebugHeader.size(), CompressedData.data(), + CompressedData.size()); + return; + } + // Write leading padding. uint32_t Filler = getFiller(); if (Filler) @@ -422,6 +459,11 @@ template void OutputSection::finalize(); template void OutputSection::finalize(); +template void OutputSection::maybeCompress(); +template void OutputSection::maybeCompress(); +template void OutputSection::maybeCompress(); +template void OutputSection::maybeCompress(); + template void OutputSection::writeTo(uint8_t *Buf); template void OutputSection::writeTo(uint8_t *Buf); template void OutputSection::writeTo(uint8_t *Buf); Modified: vendor/lld/dist/ELF/OutputSections.h ============================================================================== --- vendor/lld/dist/ELF/OutputSections.h Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/ELF/OutputSections.h Thu Apr 20 21:21:19 2017 (r317226) @@ -84,9 +84,14 @@ public: uint32_t getFiller(); template void writeTo(uint8_t *Buf); template void finalize(); + template void maybeCompress(); void assignOffsets(); std::vector Sections; + // Used for implementation of --compress-debug-sections option. + std::vector ZDebugHeader; + llvm::SmallVector CompressedData; + // Location in the output buffer. uint8_t *Loc = nullptr; }; Modified: vendor/lld/dist/ELF/Writer.cpp ============================================================================== --- vendor/lld/dist/ELF/Writer.cpp Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/ELF/Writer.cpp Thu Apr 20 21:21:19 2017 (r317226) @@ -19,6 +19,7 @@ #include "SymbolTable.h" #include "SyntheticSections.h" #include "Target.h" +#include "Threads.h" #include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/Support/FileOutputBuffer.h" @@ -58,7 +59,6 @@ private: std::vector createPhdrs(); void removeEmptyPTLoad(); void addPtArmExid(std::vector &Phdrs); - void assignAddresses(); void assignFileOffsets(); void assignFileOffsetsBinary(); void setPhdrs(); @@ -250,13 +250,11 @@ template void Writer: if (Config->Relocatable) { assignFileOffsets(); } else { - if (Script->Opt.HasSections) { - Script->assignAddresses(Phdrs); - } else { + if (!Script->Opt.HasSections) { fixSectionAlignments(); - assignAddresses(); - Script->processNonSectionCommands(); + Script->fabricateDefaultCommands(Config->MaxPageSize); } + Script->assignAddresses(Phdrs); // Remove empty PT_LOAD to avoid causing the dynamic linker to try to mmap a // 0 sized region. This has to be done late since only after assignAddresses @@ -1216,6 +1214,12 @@ template void Writer: for (OutputSection *Sec : OutputSections) Sec->finalize(); + // If -compressed-debug-sections is specified, we need to compress + // .debug_* sections. Do it right now because it changes the size of + // output sections. + parallelForEach(OutputSections.begin(), OutputSections.end(), + [](OutputSection *S) { S->maybeCompress(); }); + // createThunks may have added local symbols to the static symbol table applySynthetic({In::SymTab, In::ShStrTab, In::StrTab}, [](SyntheticSection *SS) { SS->postThunkContents(); }); @@ -1502,37 +1506,6 @@ template void Writer: AllocateHeader = allocateHeaders(Phdrs, OutputSections, Min); } -// Assign VAs (addresses at run-time) to output sections. -template void Writer::assignAddresses() { - uint64_t VA = Config->ImageBase; - uint64_t ThreadBssOffset = 0; - - if (AllocateHeader) - VA += getHeaderSize(); - - for (OutputSection *Sec : OutputSections) { - uint32_t Alignment = Sec->Alignment; - if (Sec->PageAlign) - Alignment = std::max(Alignment, Config->MaxPageSize); - - auto I = Config->SectionStartMap.find(Sec->Name); - if (I != Config->SectionStartMap.end()) - VA = I->second; - - // We only assign VAs to allocated sections. - if (needsPtLoad(Sec)) { - VA = alignTo(VA, Alignment); - Sec->Addr = VA; - VA += Sec->Size; - } else if (Sec->Flags & SHF_TLS && Sec->Type == SHT_NOBITS) { - uint64_t TVA = VA + ThreadBssOffset; - TVA = alignTo(TVA, Alignment); - Sec->Addr = TVA; - ThreadBssOffset = TVA - VA + Sec->Size; - } - } -} - // Adjusts the file alignment for a given output section and returns // its new file offset. The file offset must be the same with its // virtual address (modulo the page size) so that the loader can load Modified: vendor/lld/dist/test/COFF/msvclto.ll ============================================================================== --- vendor/lld/dist/test/COFF/msvclto.ll Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/test/COFF/msvclto.ll Thu Apr 20 21:21:19 2017 (r317226) @@ -5,7 +5,8 @@ ; RUN: /entry:main /verbose > %t.log || true ; RUN: FileCheck %s < %t.log -; CHECK: /opt:icf /entry:main /verbose +; CHECK: /opt:icf /entry:main +; CHECK: /verbose target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-pc-windows-msvc" Added: vendor/lld/dist/test/ELF/compress-debug-sections.s ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lld/dist/test/ELF/compress-debug-sections.s Thu Apr 20 21:21:19 2017 (r317226) @@ -0,0 +1,32 @@ +# REQUIRES: x86, zlib + +# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o +# RUN: ld.lld %t.o -o %t1 --compress-debug-sections=zlib + +# RUN: llvm-objdump -s %t1 | FileCheck %s --check-prefix=ZLIBCONTENT +# ZLIBCONTENT: Contents of section .debug_str: +# ZLIBCONTENT-NOT: AAAAAAAAA + +# RUN: llvm-readobj -s %t1 | FileCheck %s --check-prefix=ZLIBFLAGS +# ZLIBFLAGS: Section { +# ZLIBFLAGS: Index: +# ZLIBFLAGS: Name: .debug_str +# ZLIBFLAGS-NEXT: Type: SHT_PROGBITS +# ZLIBFLAGS-NEXT: Flags [ +# ZLIBFLAGS-NEXT: SHF_COMPRESSED + +# RUN: llvm-dwarfdump %t1 -debug-dump=str | \ +# RUN: FileCheck %s --check-prefix=DEBUGSTR +# DEBUGSTR: .debug_str contents: +# DEBUGSTR-NEXT: AAAAAAAAAAAAAAAAAAAAAAAAAAA +# DEBUGSTR-NEXT: BBBBBBBBBBBBBBBBBBBBBBBBBBB + +# RUN: not ld.lld %t.o -o %t1 --compress-debug-sections=zlib-gabi 2>&1 | \ +# RUN: FileCheck -check-prefix=ERR %s +# ERR: unknown --compress-debug-sections value: zlib-gabi + +.section .debug_str,"MS",@progbits,1 +.Linfo_string0: + .asciz "AAAAAAAAAAAAAAAAAAAAAAAAAAA" +.Linfo_string1: + .asciz "BBBBBBBBBBBBBBBBBBBBBBBBBBB" Modified: vendor/lld/dist/test/ELF/tls-offset.s ============================================================================== --- vendor/lld/dist/test/ELF/tls-offset.s Thu Apr 20 21:21:16 2017 (r317225) +++ vendor/lld/dist/test/ELF/tls-offset.s Thu Apr 20 21:21:19 2017 (r317226) @@ -2,7 +2,17 @@ // RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t // RUN: ld.lld %t -o %tout // RUN: llvm-readobj -s %tout | FileCheck %s - +// RUN: echo "SECTIONS { \ +// RUN: . = 0x201000; \ +// RUN: .text : { *(.text) } \ +// RUN: . = 0x202000; \ +// RUN: .tdata : { *(.tdata) } \ +// RUN: .tbss : { *(.tbss) } \ +// RUN: .data.rel.ro : { *(.data.rel.ro) } \ +// RUN: }" > %t.script + // RUN: ld.lld -T %t.script %t -o %tout2 +// RUN: echo SCRIPT +// RUN: llvm-readobj -s %tout2 | FileCheck %s .global _start _start: retq @@ -51,6 +61,6 @@ _start: // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x202004 -// CHECK-NEXT: Offset: 0x2004 +// CHECK-NEXT: Address: 0x202010 +// CHECK-NEXT: Offset: 0x2010 // CHECK-NEXT: Size: 4 From owner-svn-src-all@freebsd.org Thu Apr 20 21:21:26 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7FF52D4893D; Thu, 20 Apr 2017 21:21:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 377BD158B; Thu, 20 Apr 2017 21:21:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KLLPv5003056; Thu, 20 Apr 2017 21:21:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLLPAZ003055; Thu, 20 Apr 2017 21:21:25 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202121.v3KLLPAZ003055@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:21:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317227 - vendor/lld/lld-trunk-r300890 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:21:26 -0000 Author: dim Date: Thu Apr 20 21:21:25 2017 New Revision: 317227 URL: https://svnweb.freebsd.org/changeset/base/317227 Log: Tag lld trunk r300890. Added: vendor/lld/lld-trunk-r300890/ - copied from r317226, vendor/lld/dist/ From owner-svn-src-all@freebsd.org Thu Apr 20 21:21:32 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB875D48991; Thu, 20 Apr 2017 21:21: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 mx1.freebsd.org (Postfix) with ESMTPS id 64A24162C; Thu, 20 Apr 2017 21:21: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 v3KLLVva003133; Thu, 20 Apr 2017 21:21:31 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KLLSGs003104; Thu, 20 Apr 2017 21:21:28 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704202121.v3KLLSGs003104@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Apr 2017 21:21:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317228 - in vendor/lldb/dist: cmake/modules include/lldb/Core include/lldb/Expression include/lldb/Utility lldb.xcodeproj packages/Python/lldbsuite/test/functionalities/data-formatter/... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:21:33 -0000 Author: dim Date: Thu Apr 20 21:21:28 2017 New Revision: 317228 URL: https://svnweb.freebsd.org/changeset/base/317228 Log: Vendor import of lldb trunk r300890: https://llvm.org/svn/llvm-project/lldb/trunk@300890 Added: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/TestFrameVar.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/history/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/history/TestHistoryRecall.py (contents, props changed) vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.h (contents, props changed) Modified: vendor/lldb/dist/cmake/modules/LLDBConfig.cmake vendor/lldb/dist/include/lldb/Core/ArchSpec.h vendor/lldb/dist/include/lldb/Expression/DiagnosticManager.h vendor/lldb/dist/include/lldb/Utility/StringLexer.h vendor/lldb/dist/lldb.xcodeproj/project.pbxproj vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/TestLinuxCore.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/gcore/TestGCore.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/thread_crash/TestLinuxCoreThreads.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/register_variables/test.c vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py vendor/lldb/dist/source/Commands/CommandObjectCommands.cpp vendor/lldb/dist/source/Commands/CommandObjectFrame.cpp vendor/lldb/dist/source/Core/ArchSpec.cpp vendor/lldb/dist/source/Core/Scalar.cpp vendor/lldb/dist/source/Expression/DiagnosticManager.cpp vendor/lldb/dist/source/Interpreter/CommandHistory.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/CMakeLists.txt vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp vendor/lldb/dist/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_x86_64.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h vendor/lldb/dist/source/Symbol/ClangASTContext.cpp vendor/lldb/dist/source/Utility/StringLexer.cpp vendor/lldb/dist/unittests/Core/ArchSpecTest.cpp Modified: vendor/lldb/dist/cmake/modules/LLDBConfig.cmake ============================================================================== --- vendor/lldb/dist/cmake/modules/LLDBConfig.cmake Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/cmake/modules/LLDBConfig.cmake Thu Apr 20 21:21:28 2017 (r317228) @@ -433,7 +433,9 @@ endif() find_package(Backtrace) +include(CheckIncludeFile) check_include_file(termios.h HAVE_TERMIOS_H) +check_include_file(sys/event.h HAVE_SYS_EVENT_H) # These checks exist in LLVM's configuration, so I want to match the LLVM names # so that the check isn't duplicated, but we translate them into the LLDB names Modified: vendor/lldb/dist/include/lldb/Core/ArchSpec.h ============================================================================== --- vendor/lldb/dist/include/lldb/Core/ArchSpec.h Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/include/lldb/Core/ArchSpec.h Thu Apr 20 21:21:28 2017 (r317228) @@ -625,6 +625,7 @@ public: protected: bool IsEqualTo(const ArchSpec &rhs, bool exact_match) const; + void UpdateCore(); llvm::Triple m_triple; Core m_core = kCore_invalid; Modified: vendor/lldb/dist/include/lldb/Expression/DiagnosticManager.h ============================================================================== --- vendor/lldb/dist/include/lldb/Expression/DiagnosticManager.h Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/include/lldb/Expression/DiagnosticManager.h Thu Apr 20 21:21:28 2017 (r317228) @@ -128,6 +128,8 @@ public: m_diagnostics.push_back(diagnostic); } + void CopyDiagnostics(DiagnosticManager &otherDiagnostics); + size_t Printf(DiagnosticSeverity severity, const char *format, ...) __attribute__((format(printf, 3, 4))); size_t PutString(DiagnosticSeverity severity, llvm::StringRef str); Modified: vendor/lldb/dist/include/lldb/Utility/StringLexer.h ============================================================================== --- vendor/lldb/dist/include/lldb/Utility/StringLexer.h Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/include/lldb/Utility/StringLexer.h Thu Apr 20 21:21:28 2017 (r317228) @@ -41,8 +41,6 @@ public: bool HasAtLeast(Size s); - bool HasAny(Character c); - std::string GetUnlexed(); // This will assert if there are less than s characters preceding the cursor. Modified: vendor/lldb/dist/lldb.xcodeproj/project.pbxproj ============================================================================== --- vendor/lldb/dist/lldb.xcodeproj/project.pbxproj Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/lldb.xcodeproj/project.pbxproj Thu Apr 20 21:21:28 2017 (r317228) @@ -923,6 +923,8 @@ AF33B4BE1C1FA441001B28D9 /* NetBSDSignals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AF33B4BC1C1FA441001B28D9 /* NetBSDSignals.cpp */; }; AF33B4BF1C1FA441001B28D9 /* NetBSDSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = AF33B4BD1C1FA441001B28D9 /* NetBSDSignals.h */; }; AF37E10A17C861F20061E18E /* ProcessRunLock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AF37E10917C861F20061E18E /* ProcessRunLock.cpp */; }; + AF3A4AD21EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AF3A4AD01EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.cpp */; }; + AF3A4AD31EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = AF3A4AD11EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.h */; }; AF415AE71D949E4400FCE0D4 /* x86AssemblyInspectionEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AF415AE51D949E4400FCE0D4 /* x86AssemblyInspectionEngine.cpp */; }; AF415AE81D949E4400FCE0D4 /* x86AssemblyInspectionEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = AF415AE61D949E4400FCE0D4 /* x86AssemblyInspectionEngine.h */; }; AF45FDE518A1F3AC0007051C /* AppleGetThreadItemInfoHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AF45FDE318A1F3AC0007051C /* AppleGetThreadItemInfoHandler.cpp */; }; @@ -2937,6 +2939,8 @@ AF33B4BC1C1FA441001B28D9 /* NetBSDSignals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetBSDSignals.cpp; path = Utility/NetBSDSignals.cpp; sourceTree = ""; }; AF33B4BD1C1FA441001B28D9 /* NetBSDSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetBSDSignals.h; path = Utility/NetBSDSignals.h; sourceTree = ""; }; AF37E10917C861F20061E18E /* ProcessRunLock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProcessRunLock.cpp; sourceTree = ""; }; + AF3A4AD01EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformRemoteDarwinDevice.cpp; sourceTree = ""; }; + AF3A4AD11EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformRemoteDarwinDevice.h; sourceTree = ""; }; AF3F54AE1B3BA59C00186E73 /* CrashReason.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CrashReason.cpp; sourceTree = ""; }; AF3F54AF1B3BA59C00186E73 /* CrashReason.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrashReason.h; sourceTree = ""; }; AF3F54B21B3BA5D500186E73 /* POSIXStopInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = POSIXStopInfo.cpp; sourceTree = ""; }; @@ -5426,6 +5430,8 @@ 9455630D1BEAD0570073F75F /* PlatformiOSSimulatorCoreSimulatorSupport.mm */, 26C5577B132575AD008FD8FE /* PlatformMacOSX.cpp */, 26C5577C132575AD008FD8FE /* PlatformMacOSX.h */, + AF3A4AD01EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.cpp */, + AF3A4AD11EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.h */, AF8AD6331BEC28C400150209 /* PlatformRemoteAppleTV.cpp */, AF8AD6341BEC28C400150209 /* PlatformRemoteAppleTV.h */, AF8AD6351BEC28C400150209 /* PlatformRemoteAppleWatch.cpp */, @@ -6469,6 +6475,7 @@ files = ( AF8AD6381BEC28C400150209 /* PlatformRemoteAppleTV.h in Headers */, 26EFB61C1BFE8D3E00544801 /* PlatformNetBSD.h in Headers */, + AF3A4AD31EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.h in Headers */, AF33B4BF1C1FA441001B28D9 /* NetBSDSignals.h in Headers */, AF6335E31C87B21E00F7D554 /* SymbolFilePDB.h in Headers */, 267F685A1CC02EBE0086832B /* RegisterInfos_s390x.h in Headers */, @@ -7284,6 +7291,7 @@ AE6897281B94F6DE0018845D /* DWARFASTParserGo.cpp in Sources */, 945261C41B9A11FC00BF138D /* LibCxxUnorderedMap.cpp in Sources */, 26CEB5F218762056008F575A /* CommandObjectGUI.cpp in Sources */, + AF3A4AD21EA05C4700B5DEB4 /* PlatformRemoteDarwinDevice.cpp in Sources */, 2689008013353E2200698AC0 /* CommandInterpreter.cpp in Sources */, AF77E0A41A033D360096C0EA /* RegisterContextPOSIX_powerpc.cpp in Sources */, 4CDB8D6D1DBA91B6006C5B13 /* LibStdcppUniquePointer.cpp in Sources */, Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py Thu Apr 20 21:21:28 2017 (r317228) @@ -23,8 +23,8 @@ class LibCxxAtomicTestCase(TestBase): var.SetPreferSyntheticValue(True) return var - @skipIf(compiler="gcc") - @skipIfWindows # libc++ not ported to Windows yet + @skipIf(compiler=["gcc"]) + @add_test_categories(["libc++"]) def test(self): """Test that std::atomic as defined by libc++ is correctly printed by LLDB""" self.build() Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py Thu Apr 20 21:21:28 2017 (r317228) @@ -30,8 +30,7 @@ class LibcxxListDataFormatterTestCase(Te self.line4 = line_number('main.cpp', '// Set fourth break point at this line.') - @skipIf(compiler="gcc") - @skipIfWindows # libc++ not ported to Windows yet + @add_test_categories(["libc++"]) def test_with_run_command(self): """Test that that file and class static variables display correctly.""" self.build() Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py Thu Apr 20 21:21:28 2017 (r317228) @@ -17,55 +17,112 @@ class LibcxxSetDataFormatterTestCase(Tes mydir = TestBase.compute_mydir(__file__) - @skipIf(compiler="gcc") - @skipIfWindows # libc++ not ported to Windows yet + def setUp(self): + TestBase.setUp(self) + ns = 'ndk' if lldbplatformutil.target_is_android() else '' + self.namespace = 'std::__' + ns + '1' + + def getVariableType(self, name): + var = self.frame().FindVariable(name) + self.assertTrue(var.IsValid()) + return var.GetType().GetCanonicalType().GetName() + + @add_test_categories(["libc++"]) def test_with_run_command(self): """Test that that file and class static variables display correctly.""" self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) -# bkpt = self.target().FindBreakpointByID(lldbutil.run_break_set_by_source_regexp (self, "Set break point at this line.")) + bkpt = self.target().FindBreakpointByID( + lldbutil.run_break_set_by_source_regexp(self, "Set break point at this line.")) self.runCmd("run", RUN_SUCCEEDED) -# lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+")) -# -# # The stop reason of the thread should be breakpoint. -# self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, -# substrs = ['stopped', -# 'stop reason = breakpoint']) -# -# # This is the function to remove the custom formats in order to have a -# # clean slate for the next test case. -# def cleanup(): -# self.runCmd('type format clear', check=False) -# self.runCmd('type summary clear', check=False) -# self.runCmd('type filter clear', check=False) -# self.runCmd('type synth clear', check=False) -# self.runCmd("settings set target.max-children-count 256", check=False) -# -# # Execute the cleanup function during test case tear down. -# self.addTearDownHook(cleanup) -# -# self.expect('image list', substrs = self.getLibcPlusPlusLibs()) -# -# self.expect("frame variable ii",substrs = ["size=0","{}"]) -# lldbutil.continue_to_breakpoint(self.process(), bkpt) -# self.expect("frame variable ii",substrs = ["size=6","[0] = 0","[1] = 1", "[2] = 2", "[3] = 3", "[4] = 4", "[5] = 5"]) -# lldbutil.continue_to_breakpoint(self.process(), bkpt) -# self.expect("frame variable ii",substrs = ["size=7","[2] = 2", "[3] = 3", "[6] = 6"]) -# self.expect("frame variable ii[2]",substrs = [" = 2"]) -# self.expect("p ii",substrs = ["size=7","[2] = 2", "[3] = 3", "[6] = 6"]) -# lldbutil.continue_to_breakpoint(self.process(), bkpt) -# self.expect("frame variable ii",substrs = ["size=0","{}"]) -# lldbutil.continue_to_breakpoint(self.process(), bkpt) -# self.expect("frame variable ii",substrs = ["size=0","{}"]) -# self.expect("frame variable ss",substrs = ["size=0","{}"]) -# lldbutil.continue_to_breakpoint(self.process(), bkpt) -# self.expect("frame variable ss",substrs = ["size=2",'[0] = "a"','[1] = "a very long string is right here"']) -# lldbutil.continue_to_breakpoint(self.process(), bkpt) -# self.expect("frame variable ss",substrs = ["size=4",'[2] = "b"','[3] = "c"','[0] = "a"','[1] = "a very long string is right here"']) -# self.expect("p ss",substrs = ["size=4",'[2] = "b"','[3] = "c"','[0] = "a"','[1] = "a very long string is right here"']) -# self.expect("frame variable ss[2]",substrs = [' = "b"']) -# lldbutil.continue_to_breakpoint(self.process(), bkpt) -# self.expect("frame variable ss",substrs = ["size=3",'[0] = "a"','[1] = "a very long string is right here"','[2] = "c"']) + # The stop reason of the thread should be breakpoint. + self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, + substrs=['stopped', + 'stop reason = breakpoint']) + + # This is the function to remove the custom formats in order to have a + # clean slate for the next test case. + def cleanup(): + self.runCmd('type format clear', check=False) + self.runCmd('type summary clear', check=False) + self.runCmd('type filter clear', check=False) + self.runCmd('type synth clear', check=False) + self.runCmd( + "settings set target.max-children-count 256", + check=False) + + # Execute the cleanup function during test case tear down. + self.addTearDownHook(cleanup) + + ii_type = self.getVariableType("ii") + self.assertTrue(ii_type.startswith(self.namespace + "::set"), + "Type: " + ii_type) + + self.expect("frame variable ii", substrs=["size=0", "{}"]) + lldbutil.continue_to_breakpoint(self.process(), bkpt) + self.expect( + "frame variable ii", + substrs=["size=6", + "[0] = 0", + "[1] = 1", + "[2] = 2", + "[3] = 3", + "[4] = 4", + "[5] = 5"]) + lldbutil.continue_to_breakpoint(self.process(), bkpt) + self.expect( + "frame variable ii", + substrs=["size=7", + "[2] = 2", + "[3] = 3", + "[6] = 6"]) + self.expect("frame variable ii[2]", substrs=[" = 2"]) + self.expect( + "p ii", + substrs=[ + "size=7", + "[2] = 2", + "[3] = 3", + "[6] = 6"]) + lldbutil.continue_to_breakpoint(self.process(), bkpt) + self.expect("frame variable ii", substrs=["size=0", "{}"]) + lldbutil.continue_to_breakpoint(self.process(), bkpt) + self.expect("frame variable ii", substrs=["size=0", "{}"]) + + ss_type = self.getVariableType("ss") + self.assertTrue(ii_type.startswith(self.namespace + "::set"), + "Type: " + ss_type) + + self.expect("frame variable ss", substrs=["size=0", "{}"]) + lldbutil.continue_to_breakpoint(self.process(), bkpt) + self.expect( + "frame variable ss", + substrs=["size=2", + '[0] = "a"', + '[1] = "a very long string is right here"']) + lldbutil.continue_to_breakpoint(self.process(), bkpt) + self.expect( + "frame variable ss", + substrs=["size=4", + '[2] = "b"', + '[3] = "c"', + '[0] = "a"', + '[1] = "a very long string is right here"']) + self.expect( + "p ss", + substrs=["size=4", + '[2] = "b"', + '[3] = "c"', + '[0] = "a"', + '[1] = "a very long string is right here"']) + self.expect("frame variable ss[2]", substrs=[' = "b"']) + lldbutil.continue_to_breakpoint(self.process(), bkpt) + self.expect( + "frame variable ss", + substrs=["size=3", + '[0] = "a"', + '[1] = "a very long string is right here"', + '[2] = "c"']) Added: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/Makefile Thu Apr 20 21:21:28 2017 (r317228) @@ -0,0 +1,6 @@ +LEVEL = ../../make + +C_SOURCES := main.c +CFLAGS_EXTRAS += -std=c99 + +include $(LEVEL)/Makefile.rules Added: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/TestFrameVar.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/TestFrameVar.py Thu Apr 20 21:21:28 2017 (r317228) @@ -0,0 +1,99 @@ +""" +Make sure the frame variable -g, -a, and -l flags work. +""" + +from __future__ import print_function + + +import os +import time +import re +import lldb +import lldbsuite.test.lldbutil as lldbutil +from lldbsuite.test.lldbtest import * + + +class TestFrameVar(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + # If your test case doesn't stress debug info, the + # set this to true. That way it won't be run once for + # each debug info format. + NO_DEBUG_INFO_TESTCASE = True + + def test_frame_var(self): + self.build() + self.do_test() + + def setUp(self): + # Call super's setUp(). + TestBase.setUp(self) + + def do_test(self): + exe = os.path.join(os.getcwd(), "a.out") + + # Create a target by the debugger. + target = self.dbg.CreateTarget(exe) + self.assertTrue(target, VALID_TARGET) + + # Now create a breakpoint in main.c at the source matching + # "Set a breakpoint here" + breakpoint = target.BreakpointCreateBySourceRegex( + "Set a breakpoint here", lldb.SBFileSpec("main.c")) + self.assertTrue(breakpoint and + breakpoint.GetNumLocations() >= 1, + VALID_BREAKPOINT) + + error = lldb.SBError() + # This is the launch info. If you want to launch with arguments or + # environment variables, add them using SetArguments or + # SetEnvironmentEntries + + launch_info = lldb.SBLaunchInfo(None) + process = target.Launch(launch_info, error) + self.assertTrue(process, PROCESS_IS_VALID) + + # Did we hit our breakpoint? + from lldbsuite.test.lldbutil import get_threads_stopped_at_breakpoint + threads = get_threads_stopped_at_breakpoint(process, breakpoint) + self.assertTrue( + len(threads) == 1, + "There should be a thread stopped at our breakpoint") + + # The hit count for the breakpoint should be 1. + self.assertTrue(breakpoint.GetHitCount() == 1) + + frame = threads[0].GetFrameAtIndex(0) + command_result = lldb.SBCommandReturnObject() + interp = self.dbg.GetCommandInterpreter() + + # Just get args: + result = interp.HandleCommand("frame var -l", command_result) + self.assertEqual(result, lldb.eReturnStatusSuccessFinishResult, "frame var -a didn't succeed") + output = command_result.GetOutput() + self.assertTrue("argc" in output, "Args didn't find argc") + self.assertTrue("argv" in output, "Args didn't find argv") + self.assertTrue("test_var" not in output, "Args found a local") + self.assertTrue("g_var" not in output, "Args found a global") + + # Just get locals: + result = interp.HandleCommand("frame var -a", command_result) + self.assertEqual(result, lldb.eReturnStatusSuccessFinishResult, "frame var -a didn't succeed") + output = command_result.GetOutput() + self.assertTrue("argc" not in output, "Locals found argc") + self.assertTrue("argv" not in output, "Locals found argv") + self.assertTrue("test_var" in output, "Locals didn't find test_var") + self.assertTrue("g_var" not in output, "Locals found a global") + + # Get the file statics: + result = interp.HandleCommand("frame var -l -a -g", command_result) + self.assertEqual(result, lldb.eReturnStatusSuccessFinishResult, "frame var -a didn't succeed") + output = command_result.GetOutput() + self.assertTrue("argc" not in output, "Globals found argc") + self.assertTrue("argv" not in output, "Globals found argv") + self.assertTrue("test_var" not in output, "Globals found test_var") + self.assertTrue("g_var" in output, "Globals didn't find g_var") + + + Added: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/main.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/frame_var/main.c Thu Apr 20 21:21:28 2017 (r317228) @@ -0,0 +1,11 @@ +#include + +int g_var = 200; + +int +main(int argc, char **argv) +{ + int test_var = 10; + printf ("Set a breakpoint here: %d %d.\n", test_var, g_var); + return 0; +} Added: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/history/TestHistoryRecall.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/history/TestHistoryRecall.py Thu Apr 20 21:21:28 2017 (r317228) @@ -0,0 +1,45 @@ +""" +Make sure the !N and !-N commands work properly. +""" + +from __future__ import print_function + + +import os +import time +import re +import lldb +import lldbsuite.test.lldbutil as lldbutil +from lldbsuite.test.lldbtest import * + + +class TestHistoryRecall(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + # If your test case doesn't stress debug info, the + # set this to true. That way it won't be run once for + # each debug info format. + NO_DEBUG_INFO_TESTCASE = True + + def test_history_recall(self): + """Test the !N and !-N functionality of the command interpreter.""" + self.sample_test() + + def setUp(self): + # Call super's setUp(). + TestBase.setUp(self) + + def sample_test(self): + interp = self.dbg.GetCommandInterpreter() + result = lldb.SBCommandReturnObject() + interp.HandleCommand("command history", result, True) + interp.HandleCommand("platform list", result, True) + + interp.HandleCommand("!0", result, False) + self.assertTrue(result.Succeeded(), "!0 command did not work: %s"%(result.GetError())) + self.assertTrue("command history" in result.GetOutput(), "!0 didn't rerun command history") + + interp.HandleCommand("!-1", result, False) + self.assertTrue(result.Succeeded(), "!-1 command did not work: %s"%(result.GetError())) + self.assertTrue("host:" in result.GetOutput(), "!-1 didn't rerun platform list.") Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/TestLinuxCore.py ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/TestLinuxCore.py Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/TestLinuxCore.py Thu Apr 20 21:21:28 2017 (r317228) @@ -39,7 +39,6 @@ class LinuxCoreTestCase(TestBase): super(LinuxCoreTestCase, self).tearDown() @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_i386(self): """Test that lldb can read the process information from an i386 linux core file.""" @@ -58,21 +57,18 @@ class LinuxCoreTestCase(TestBase): self.do_test("linux-mips64el-gnuabi64", self._mips64_n64_pid, self._mips_regions) @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_x86_64(self): """Test that lldb can read the process information from an x86_64 linux core file.""" self.do_test("linux-x86_64", self._x86_64_pid, self._x86_64_regions) @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_s390x(self): """Test that lldb can read the process information from an s390x linux core file.""" self.do_test("linux-s390x", self._s390x_pid, self._s390x_regions) @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_same_pid_running(self): """Test that we read the information from the core correctly even if we have a running @@ -102,7 +98,6 @@ class LinuxCoreTestCase(TestBase): self.RemoveTempFile("linux-x86_64-pid.core") @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_two_cores_same_pid(self): """Test that we handle the situation if we have two core files with the same PID @@ -132,7 +127,6 @@ class LinuxCoreTestCase(TestBase): self.do_test("linux-x86_64", self._x86_64_pid, self._x86_64_regions) @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_FPR_SSE(self): # check x86_64 core file Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/gcore/TestGCore.py ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/gcore/TestGCore.py Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/gcore/TestGCore.py Thu Apr 20 21:21:28 2017 (r317228) @@ -23,14 +23,12 @@ class GCoreTestCase(TestBase): _x86_64_pid = 5669 @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_i386(self): """Test that lldb can read the process information from an i386 linux core file.""" self.do_test("linux-i386", self._i386_pid) @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_x86_64(self): """Test that lldb can read the process information from an x86_64 linux core file.""" Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/thread_crash/TestLinuxCoreThreads.py ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/thread_crash/TestLinuxCoreThreads.py Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/elf-core/thread_crash/TestLinuxCoreThreads.py Thu Apr 20 21:21:28 2017 (r317228) @@ -27,14 +27,12 @@ class LinuxCoreThreadsTestCase(TestBase) _x86_64_tid = 5250 @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_i386(self): """Test that lldb can read the process information from an i386 linux core file.""" self.do_test("linux-i386", self._i386_pid, self._i386_tid) @skipIf(oslist=['windows']) - @skipIfDarwin # , fails started happening with r299199 @skipIf(triple='^mips') def test_x86_64(self): """Test that lldb can read the process information from an x86_64 linux core file.""" Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/register_variables/test.c ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/register_variables/test.c Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/register_variables/test.c Thu Apr 20 21:21:28 2017 (r317228) @@ -1,17 +1,26 @@ #include +#if defined(__arm__) || defined(__aarch64__) +// Clang does not accept regparm attribute on these platforms. +// Fortunately, the default calling convention passes arguments in registers +// anyway. +#define REGPARM(N) +#else +#define REGPARM(N) __attribute__((regparm(N))) +#endif + struct bar { int m1; int m2; }; -void f1(int a, struct bar *b) __attribute__((noinline)) __attribute__((regparm(2))); +void f1(int a, struct bar *b) __attribute__((noinline)) REGPARM(2); void f1(int a, struct bar *b) { b->m2 = b->m1 + a; // set breakpoint here } -void f2(struct bar *b) __attribute__((noinline)) __attribute__((regparm(1))); +void f2(struct bar *b) __attribute__((noinline)) REGPARM(1); void f2(struct bar *b) { int c = b->m2; Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py Thu Apr 20 21:21:28 2017 (r317228) @@ -57,16 +57,12 @@ class StaticVariableTestCase(TestBase): startstr="(int) A::g_points[1].x = 11") @expectedFailureAll( - oslist=lldbplatformutil.getDarwinOSTriples(), - bugnumber="") - @expectedFailureAll( - compiler=[ - "clang", - "gcc"], + compiler=["gcc"], bugnumber="Compiler emits incomplete debug info") @expectedFailureAll( - oslist=['freebsd'], - bugnumber='llvm.org/pr20550 failing on FreeBSD-11') + compiler=["clang"], + compiler_version=["<", "3.8"], + bugnumber='llvm.org/pr20550') @add_test_categories(['pyapi']) def test_with_python_api(self): """Test Python APIs on file and class static variables.""" @@ -105,11 +101,11 @@ class StaticVariableTestCase(TestBase): if name == 'g_points': self.assertTrue( val.GetValueType() == lldb.eValueTypeVariableStatic) - self.assertTrue(val.GetNumChildren() == 2) + self.assertEqual(val.GetNumChildren(), 2) elif name == 'A::g_points': self.assertTrue( val.GetValueType() == lldb.eValueTypeVariableGlobal) - self.assertTrue(val.GetNumChildren() == 2) + self.assertEqual(val.GetNumChildren(), 2) child1 = val.GetChildAtIndex(1) self.DebugSBValue(child1) child1_x = child1.GetChildAtIndex(0) Modified: vendor/lldb/dist/source/Commands/CommandObjectCommands.cpp ============================================================================== --- vendor/lldb/dist/source/Commands/CommandObjectCommands.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Commands/CommandObjectCommands.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -50,7 +50,11 @@ class CommandObjectCommandsHistory : pub public: CommandObjectCommandsHistory(CommandInterpreter &interpreter) : CommandObjectParsed(interpreter, "command history", - "Dump the history of commands in this session.", + "Dump the history of commands in this session.\n" + "Commands in the history list can be run again " + "using \"!\". \"!-\" will re-run " + "the command that is commands from the end" + " of the list (counting the current command).", nullptr), m_options() {} Modified: vendor/lldb/dist/source/Commands/CommandObjectFrame.cpp ============================================================================== --- vendor/lldb/dist/source/Commands/CommandObjectFrame.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Commands/CommandObjectFrame.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -655,42 +655,62 @@ protected: if (num_variables > 0) { for (size_t i = 0; i < num_variables; i++) { var_sp = variable_list->GetVariableAtIndex(i); - bool dump_variable = true; - std::string scope_string; - if (dump_variable && m_option_variable.show_scope) - scope_string = GetScopeString(var_sp).str(); - - if (dump_variable) { - // Use the variable object code to make sure we are - // using the same APIs as the public API will be - // using... - valobj_sp = frame->GetValueObjectForFrameVariable( - var_sp, m_varobj_options.use_dynamic); - if (valobj_sp) { - // When dumping all variables, don't print any variables - // that are not in scope to avoid extra unneeded output - if (valobj_sp->IsInScope()) { - if (!valobj_sp->GetTargetSP() - ->GetDisplayRuntimeSupportValues() && - valobj_sp->IsRuntimeSupportValue()) - continue; - - if (!scope_string.empty()) - s.PutCString(scope_string); - - if (m_option_variable.show_decl && - var_sp->GetDeclaration().GetFile()) { - var_sp->GetDeclaration().DumpStopContext(&s, false); - s.PutCString(": "); - } - - options.SetFormat(format); - options.SetVariableFormatDisplayLanguage( - valobj_sp->GetPreferredDisplayLanguage()); - options.SetRootValueObjectName( - var_sp ? var_sp->GetName().AsCString() : nullptr); - valobj_sp->Dump(result.GetOutputStream(), options); + switch (var_sp->GetScope()) + { + case eValueTypeVariableGlobal: + if (!m_option_variable.show_globals) + continue; + break; + case eValueTypeVariableStatic: + if (!m_option_variable.show_globals) + continue; + break; + case eValueTypeVariableArgument: + if (!m_option_variable.show_args) + continue; + break; + case eValueTypeVariableLocal: + if (!m_option_variable.show_locals) + continue; + break; + default: + continue; + break; + + } + std::string scope_string; + if (m_option_variable.show_scope) + scope_string = GetScopeString(var_sp).str(); + + // Use the variable object code to make sure we are + // using the same APIs as the public API will be + // using... + valobj_sp = frame->GetValueObjectForFrameVariable( + var_sp, m_varobj_options.use_dynamic); + if (valobj_sp) { + // When dumping all variables, don't print any variables + // that are not in scope to avoid extra unneeded output + if (valobj_sp->IsInScope()) { + if (!valobj_sp->GetTargetSP() + ->GetDisplayRuntimeSupportValues() && + valobj_sp->IsRuntimeSupportValue()) + continue; + + if (!scope_string.empty()) + s.PutCString(scope_string); + + if (m_option_variable.show_decl && + var_sp->GetDeclaration().GetFile()) { + var_sp->GetDeclaration().DumpStopContext(&s, false); + s.PutCString(": "); } + + options.SetFormat(format); + options.SetVariableFormatDisplayLanguage( + valobj_sp->GetPreferredDisplayLanguage()); + options.SetRootValueObjectName( + var_sp ? var_sp->GetName().AsCString() : nullptr); + valobj_sp->Dump(result.GetOutputStream(), options); } } } Modified: vendor/lldb/dist/source/Core/ArchSpec.cpp ============================================================================== --- vendor/lldb/dist/source/Core/ArchSpec.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Core/ArchSpec.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -834,19 +834,7 @@ lldb::ByteOrder ArchSpec::GetByteOrder() bool ArchSpec::SetTriple(const llvm::Triple &triple) { m_triple = triple; - - llvm::StringRef arch_name(m_triple.getArchName()); - const CoreDefinition *core_def = FindCoreDefinition(arch_name); - if (core_def) { - m_core = core_def->core; - // Set the byte order to the default byte order for an architecture. - // This can be modified if needed for cases when cores handle both - // big and little endian - m_byte_order = core_def->default_byte_order; - } else { - Clear(); - } - + UpdateCore(); return IsValid(); } @@ -994,8 +982,10 @@ void ArchSpec::MergeFrom(const ArchSpec GetTriple().setVendor(other.GetTriple().getVendor()); if (TripleOSIsUnspecifiedUnknown() && !other.TripleOSIsUnspecifiedUnknown()) GetTriple().setOS(other.GetTriple().getOS()); - if (GetTriple().getArch() == llvm::Triple::UnknownArch) + if (GetTriple().getArch() == llvm::Triple::UnknownArch) { GetTriple().setArch(other.GetTriple().getArch()); + UpdateCore(); + } if (GetTriple().getEnvironment() == llvm::Triple::UnknownEnvironment && !TripleVendorWasSpecified()) { if (other.TripleVendorWasSpecified()) @@ -1190,6 +1180,20 @@ bool ArchSpec::IsEqualTo(const ArchSpec return false; } +void ArchSpec::UpdateCore() { + llvm::StringRef arch_name(m_triple.getArchName()); + const CoreDefinition *core_def = FindCoreDefinition(arch_name); + if (core_def) { + m_core = core_def->core; + // Set the byte order to the default byte order for an architecture. + // This can be modified if needed for cases when cores handle both + // big and little endian + m_byte_order = core_def->default_byte_order; + } else { + Clear(); + } +} + //===----------------------------------------------------------------------===// // Helper methods. Modified: vendor/lldb/dist/source/Core/Scalar.cpp ============================================================================== --- vendor/lldb/dist/source/Core/Scalar.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Core/Scalar.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -2745,7 +2745,7 @@ bool Scalar::SignExtend(uint32_t sign_bi if (max_bit_pos == sign_bit_pos) return true; else if (sign_bit_pos < (max_bit_pos - 1)) { - llvm::APInt sign_bit = llvm::APInt::getSignBit(sign_bit_pos + 1); + llvm::APInt sign_bit = llvm::APInt::getSignMask(sign_bit_pos + 1); llvm::APInt bitwize_and = m_integer & sign_bit; if (bitwize_and.getBoolValue()) { const llvm::APInt mask = Modified: vendor/lldb/dist/source/Expression/DiagnosticManager.cpp ============================================================================== --- vendor/lldb/dist/source/Expression/DiagnosticManager.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Expression/DiagnosticManager.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -79,3 +79,12 @@ size_t DiagnosticManager::PutString(Diag AddDiagnostic(str, severity, eDiagnosticOriginLLDB); return str.size(); } + +void DiagnosticManager::CopyDiagnostics(DiagnosticManager &otherDiagnostics) { + for (const DiagnosticList::value_type &other_diagnostic: + otherDiagnostics.Diagnostics()) { + AddDiagnostic( + other_diagnostic->GetMessage(), other_diagnostic->GetSeverity(), + other_diagnostic->getKind(), other_diagnostic->GetCompilerID()); + } +} Modified: vendor/lldb/dist/source/Interpreter/CommandHistory.cpp ============================================================================== --- vendor/lldb/dist/source/Interpreter/CommandHistory.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Interpreter/CommandHistory.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -47,13 +47,13 @@ CommandHistory::FindString(llvm::StringR size_t idx = 0; if (input_str.front() == '-') { - if (input_str.drop_front(2).getAsInteger(0, idx)) + if (input_str.drop_front(1).getAsInteger(0, idx)) return llvm::None; if (idx >= m_history.size()) return llvm::None; idx = m_history.size() - idx; } else { - if (input_str.drop_front().getAsInteger(0, idx)) + if (input_str.getAsInteger(0, idx)) return llvm::None; if (idx >= m_history.size()) return llvm::None; Modified: vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp ============================================================================== --- vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -1810,6 +1810,7 @@ enum ExpressionStrings { const int jit_max_expr_size = 512; // Retrieve the string to JIT for the given expression +#define JIT_TEMPLATE_CONTEXT "void* ctxt = (void*)rsDebugGetContextWrapper(0x%" PRIx64 "); " const char *JITTemplate(ExpressionStrings e) { // Format strings containing the expressions we may need to evaluate. static std::array runtime_expressions = { @@ -1817,57 +1818,65 @@ const char *JITTemplate(ExpressionString "(int*)_" "Z12GetOffsetPtrPKN7android12renderscript10AllocationEjjjj23RsAllocation" "CubemapFace" - "(0x%" PRIx64 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", 0, 0)", + "(0x%" PRIx64 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", 0, 0)", // eExprGetOffsetPtr // Type* rsaAllocationGetType(Context*, Allocation*) - "(void*)rsaAllocationGetType(0x%" PRIx64 ", 0x%" PRIx64 ")", + JIT_TEMPLATE_CONTEXT "(void*)rsaAllocationGetType(ctxt, 0x%" PRIx64 ")", // eExprAllocGetType // rsaTypeGetNativeData(Context*, Type*, void* typeData, size) Pack the // data in the following way mHal.state.dimX; mHal.state.dimY; // mHal.state.dimZ; mHal.state.lodCount; mHal.state.faces; mElement; into // typeData Need to specify 32 or 64 bit for uint_t since this differs // between devices - "uint%" PRIu32 "_t data[6]; (void*)rsaTypeGetNativeData(0x%" PRIx64 - ", 0x%" PRIx64 ", data, 6); data[0]", // X dim - "uint%" PRIu32 "_t data[6]; (void*)rsaTypeGetNativeData(0x%" PRIx64 - ", 0x%" PRIx64 ", data, 6); data[1]", // Y dim - "uint%" PRIu32 "_t data[6]; (void*)rsaTypeGetNativeData(0x%" PRIx64 - ", 0x%" PRIx64 ", data, 6); data[2]", // Z dim - "uint%" PRIu32 "_t data[6]; (void*)rsaTypeGetNativeData(0x%" PRIx64 - ", 0x%" PRIx64 ", data, 6); data[5]", // Element ptr + JIT_TEMPLATE_CONTEXT + "uint%" PRIu32 "_t data[6]; (void*)rsaTypeGetNativeData(ctxt" + ", 0x%" PRIx64 ", data, 6); data[0]", // eExprTypeDimX + JIT_TEMPLATE_CONTEXT + "uint%" PRIu32 "_t data[6]; (void*)rsaTypeGetNativeData(ctxt" + ", 0x%" PRIx64 ", data, 6); data[1]", // eExprTypeDimY + JIT_TEMPLATE_CONTEXT + "uint%" PRIu32 "_t data[6]; (void*)rsaTypeGetNativeData(ctxt" + ", 0x%" PRIx64 ", data, 6); data[2]", // eExprTypeDimZ + JIT_TEMPLATE_CONTEXT + "uint%" PRIu32 "_t data[6]; (void*)rsaTypeGetNativeData(ctxt" + ", 0x%" PRIx64 ", data, 6); data[5]", // eExprTypeElemPtr // rsaElementGetNativeData(Context*, Element*, uint32_t* elemData,size) // Pack mType; mKind; mNormalized; mVectorSize; NumSubElements into // elemData - "uint32_t data[5]; (void*)rsaElementGetNativeData(0x%" PRIx64 - ", 0x%" PRIx64 ", data, 5); data[0]", // Type - "uint32_t data[5]; (void*)rsaElementGetNativeData(0x%" PRIx64 - ", 0x%" PRIx64 ", data, 5); data[1]", // Kind - "uint32_t data[5]; (void*)rsaElementGetNativeData(0x%" PRIx64 - ", 0x%" PRIx64 ", data, 5); data[3]", // Vector Size - "uint32_t data[5]; (void*)rsaElementGetNativeData(0x%" PRIx64 - ", 0x%" PRIx64 ", data, 5); data[4]", // Field Count + JIT_TEMPLATE_CONTEXT + "uint32_t data[5]; (void*)rsaElementGetNativeData(ctxt" + ", 0x%" PRIx64 ", data, 5); data[0]", // eExprElementType + JIT_TEMPLATE_CONTEXT + "uint32_t data[5]; (void*)rsaElementGetNativeData(ctxt" + ", 0x%" PRIx64 ", data, 5); data[1]", // eExprElementKind + JIT_TEMPLATE_CONTEXT + "uint32_t data[5]; (void*)rsaElementGetNativeData(ctxt" + ", 0x%" PRIx64 ", data, 5); data[3]", // eExprElementVec + JIT_TEMPLATE_CONTEXT + "uint32_t data[5]; (void*)rsaElementGetNativeData(ctxt" + ", 0x%" PRIx64 ", data, 5); data[4]", // eExprElementFieldCount // rsaElementGetSubElements(RsContext con, RsElement elem, uintptr_t // *ids, const char **names, size_t *arraySizes, uint32_t dataSize) // Needed for Allocations of structs to gather details about // fields/Subelements Element* of field - "void* ids[%" PRIu32 "]; const char* names[%" PRIu32 + JIT_TEMPLATE_CONTEXT "void* ids[%" PRIu32 "]; const char* names[%" PRIu32 "]; size_t arr_size[%" PRIu32 "];" - "(void*)rsaElementGetSubElements(0x%" PRIx64 ", 0x%" PRIx64 - ", ids, names, arr_size, %" PRIu32 "); ids[%" PRIu32 "]", + "(void*)rsaElementGetSubElements(ctxt, 0x%" PRIx64 + ", ids, names, arr_size, %" PRIu32 "); ids[%" PRIu32 "]", // eExprSubelementsId // Name of field - "void* ids[%" PRIu32 "]; const char* names[%" PRIu32 + JIT_TEMPLATE_CONTEXT "void* ids[%" PRIu32 "]; const char* names[%" PRIu32 "]; size_t arr_size[%" PRIu32 "];" - "(void*)rsaElementGetSubElements(0x%" PRIx64 ", 0x%" PRIx64 - ", ids, names, arr_size, %" PRIu32 "); names[%" PRIu32 "]", + "(void*)rsaElementGetSubElements(ctxt, 0x%" PRIx64 + ", ids, names, arr_size, %" PRIu32 "); names[%" PRIu32 "]", // eExprSubelementsName // Array size of field - "void* ids[%" PRIu32 "]; const char* names[%" PRIu32 + JIT_TEMPLATE_CONTEXT "void* ids[%" PRIu32 "]; const char* names[%" PRIu32 "]; size_t arr_size[%" PRIu32 "];" - "(void*)rsaElementGetSubElements(0x%" PRIx64 ", 0x%" PRIx64 - ", ids, names, arr_size, %" PRIu32 "); arr_size[%" PRIu32 "]"}}; + "(void*)rsaElementGetSubElements(ctxt, 0x%" PRIx64 + ", ids, names, arr_size, %" PRIu32 "); arr_size[%" PRIu32 "]"}}; // eExprSubelementsArrSize return runtime_expressions[e]; } @@ -1979,8 +1988,8 @@ bool RenderScriptRuntime::JITTypePacked( for (uint32_t i = 0; i < num_exprs; ++i) { const char *fmt_str = JITTemplate(ExpressionStrings(eExprTypeDimX + i)); - int written = snprintf(expr_bufs[i], jit_max_expr_size, fmt_str, bits, - *alloc->context.get(), *alloc->type_ptr.get()); + int written = snprintf(expr_bufs[i], jit_max_expr_size, fmt_str, + *alloc->context.get(), bits, *alloc->type_ptr.get()); if (written < 0) { if (log) log->Printf("%s - encoding error in snprintf().", __FUNCTION__); @@ -2105,7 +2114,7 @@ bool RenderScriptRuntime::JITSubelements const char *fmt_str = JITTemplate(ExpressionStrings(eExprSubelementsId + expr_index)); int written = snprintf(expr_buffer, jit_max_expr_size, fmt_str, - field_count, field_count, field_count, context, + context, field_count, field_count, field_count, *elem.element_ptr.get(), field_count, field_index); if (written < 0) { if (log) Modified: vendor/lldb/dist/source/Plugins/Platform/MacOSX/CMakeLists.txt ============================================================================== --- vendor/lldb/dist/source/Plugins/Platform/MacOSX/CMakeLists.txt Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Plugins/Platform/MacOSX/CMakeLists.txt Thu Apr 20 21:21:28 2017 (r317228) @@ -5,6 +5,7 @@ list(APPEND PLUGIN_PLATFORM_MACOSX_SOURC PlatformRemoteiOS.cpp PlatformRemoteAppleTV.cpp PlatformRemoteAppleWatch.cpp + PlatformRemoteDarwinDevice.cpp ) list(APPEND PLUGIN_PLATFORM_MACOSX_DARWIN_ONLY_SOURCES Modified: vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp ============================================================================== --- vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -569,6 +569,8 @@ bool PlatformDarwin::ARMGetSupportedArch #define OSNAME "tvos" #elif defined(TARGET_OS_WATCH) && TARGET_OS_WATCH == 1 #define OSNAME "watchos" +#elif defined(TARGET_OS_BRIDGE) && TARGET_OS_BRIDGE == 1 +#define OSNAME "bridgeos" #else #define OSNAME "ios" #endif Modified: vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp ============================================================================== --- vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp Thu Apr 20 21:21:25 2017 (r317227) +++ vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp Thu Apr 20 21:21:28 2017 (r317228) @@ -508,9 +508,10 @@ PlatformDarwinKernel::GetKernelsAndKexts ConstString file_spec_extension = file_spec.GetFileNameExtension(); Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PLATFORM)); - if (log) - log->Printf("PlatformDarwinKernel examining %s", - file_spec.GetPath().c_str()); + Log *log_verbose(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PLATFORM | LLDB_LOG_OPTION_VERBOSE)); + + if (log_verbose) + log_verbose->Printf ("PlatformDarwinKernel examining '%s'", file_spec.GetPath().c_str()); PlatformDarwinKernel *thisp = (PlatformDarwinKernel *)baton; if (ft == llvm::sys::fs::file_type::regular_file || @@ -520,9 +521,21 @@ PlatformDarwinKernel::GetKernelsAndKexts strncmp(filename.GetCString(), "mach", 4) == 0) && file_spec_extension != g_dsym_suffix) { if (KernelHasdSYMSibling(file_spec)) + { + if (log) + { + log->Printf ("PlatformDarwinKernel registering kernel binary '%s' with dSYM sibling", file_spec.GetPath().c_str()); + } thisp->m_kernel_binaries_with_dsyms.push_back(file_spec); + } else + { + if (log) + { + log->Printf ("PlatformDarwinKernel registering kernel binary '%s', no dSYM", file_spec.GetPath().c_str()); + } thisp->m_kernel_binaries_without_dsyms.push_back(file_spec); + } return FileSpec::eEnumerateDirectoryResultNext; } } else if (ft == llvm::sys::fs::file_type::directory_file && @@ -556,6 +569,8 @@ PlatformDarwinKernel::GetKernelsAndKexts if (recurse && file_spec_extension != g_dsym_suffix && file_spec_extension != g_kext_suffix && file_spec_extension != g_bundle_suffix) { + if (log_verbose) + log_verbose->Printf ("PlatformDarwinKernel descending into directory '%s'", file_spec.GetPath().c_str()); return FileSpec::eEnumerateDirectoryResultEnter; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 21:29:18 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 260FAD48DF6; Thu, 20 Apr 2017 21:29:18 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "tensor.andric.com", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DFAEA39C; Thu, 20 Apr 2017 21:29:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [IPv6:2001:470:7a58::4c69:647b:8bdc:dcb] (unknown [IPv6:2001:470:7a58:0:4c69:647b:8bdc:dcb]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id B9711876F; Thu, 20 Apr 2017 23:29:08 +0200 (CEST) From: Dimitry Andric Message-Id: <0E80DA66-5D0B-4DC2-8AF9-F2136C1D627E@FreeBSD.org> Content-Type: multipart/signed; boundary="Apple-Mail=_737E4804-0F46-41B5-908C-ABDF0C75DFCE"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317215 - head/lib/clang Date: Thu, 20 Apr 2017 23:28:58 +0200 In-Reply-To: <21e86609-e5f6-48ae-b391-38e5e14fc29b@selasky.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org To: Hans Petter Selasky References: <201704202100.v3KL0938093345@repo.freebsd.org> <21e86609-e5f6-48ae-b391-38e5e14fc29b@selasky.org> X-Mailer: Apple Mail (2.3273) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 21:29:18 -0000 --Apple-Mail=_737E4804-0F46-41B5-908C-ABDF0C75DFCE Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 20 Apr 2017, at 23:03, Hans Petter Selasky wrote: >=20 > On 04/20/17 23:00, Dimitry Andric wrote: >> Author: dim >> Date: Thu Apr 20 21:00:09 2017 >> New Revision: 317215 >> URL: https://svnweb.freebsd.org/changeset/base/317215 >>=20 >> Log: >> Add function and data sections when building llvm, clang, lld and = lldb, >> and allow the linker to garbage collect them. This shaves off up to = a >> few MB from the final executables. >>=20 >> MFC after: 3 days >>=20 >=20 > Hi, >=20 > Just curious. Does the i386 and amd64 built "ld" utility support = garbage collection, or is this feature only intended for arm and = friends? As far as I know, GNU ld (ours is from ~2007) has supported GC'ing sections since a very long time. OTOH, if you meant LLVM's lld, then yes, that also supports --gc-sections. -Dimitry --Apple-Mail=_737E4804-0F46-41B5-908C-ABDF0C75DFCE Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.30 iEYEARECAAYFAlj5KCQACgkQsF6jCi4glqOTqwCfQyA9PAYf0I48KRt6tCq+8TbH VvIAn376GFS6OekSQ/374cwu4yZ2SR3S =9aIm -----END PGP SIGNATURE----- --Apple-Mail=_737E4804-0F46-41B5-908C-ABDF0C75DFCE-- From owner-svn-src-all@freebsd.org Thu Apr 20 22:30:40 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E04BD484D8; Thu, 20 Apr 2017 22:30:40 +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 mx1.freebsd.org (Postfix) with ESMTPS id 5FA26D76; Thu, 20 Apr 2017 22:30:40 +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 v3KMUds4030763; Thu, 20 Apr 2017 22:30:39 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KMUdAm030762; Thu, 20 Apr 2017 22:30:39 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201704202230.v3KMUdAm030762@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 20 Apr 2017 22:30:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317231 - head/usr.bin/systat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 22:30:40 -0000 Author: jkim Date: Thu Apr 20 22:30:39 2017 New Revision: 317231 URL: https://svnweb.freebsd.org/changeset/base/317231 Log: Fix systat(1) regression. It was broken by r317061. Modified: head/usr.bin/systat/vmstat.c Modified: head/usr.bin/systat/vmstat.c ============================================================================== --- head/usr.bin/systat/vmstat.c Thu Apr 20 21:48:54 2017 (r317230) +++ head/usr.bin/systat/vmstat.c Thu Apr 20 22:30:39 2017 (r317231) @@ -70,35 +70,35 @@ static const char sccsid[] = "@(#)vmstat static struct Info { long time[CPUSTATES]; - u_int v_swtch; /* context switches */ - u_int v_trap; /* calls to trap */ - u_int v_syscall; /* calls to syscall() */ - u_int v_intr; /* device interrupts */ - u_int v_soft; /* software interrupts */ + uint64_t v_swtch; /* context switches */ + uint64_t v_trap; /* calls to trap */ + uint64_t v_syscall; /* calls to syscall() */ + uint64_t v_intr; /* device interrupts */ + uint64_t v_soft; /* software interrupts */ /* * Virtual memory activity. */ - u_int v_vm_faults; /* number of address memory faults */ - u_int v_io_faults; /* page faults requiring I/O */ - u_int v_cow_faults; /* number of copy-on-writes */ - u_int v_zfod; /* pages zero filled on demand */ - u_int v_ozfod; /* optimized zero fill pages */ - u_int v_swapin; /* swap pager pageins */ - u_int v_swapout; /* swap pager pageouts */ - u_int v_swappgsin; /* swap pager pages paged in */ - u_int v_swappgsout; /* swap pager pages paged out */ - u_int v_vnodein; /* vnode pager pageins */ - u_int v_vnodeout; /* vnode pager pageouts */ - u_int v_vnodepgsin; /* vnode_pager pages paged in */ - u_int v_vnodepgsout; /* vnode pager pages paged out */ - u_int v_intrans; /* intransit blocking page faults */ - u_int v_reactivated; /* number of pages reactivated by pagedaemon */ - u_int v_pdwakeups; /* number of times daemon has awaken from sleep */ - u_int v_pdpages; /* number of pages analyzed by daemon */ - - u_int v_dfree; /* pages freed by daemon */ - u_int v_pfree; /* pages freed by exiting processes */ - u_int v_tfree; /* total pages freed */ + uint64_t v_vm_faults; /* number of address memory faults */ + uint64_t v_io_faults; /* page faults requiring I/O */ + uint64_t v_cow_faults; /* number of copy-on-writes */ + uint64_t v_zfod; /* pages zero filled on demand */ + uint64_t v_ozfod; /* optimized zero fill pages */ + uint64_t v_swapin; /* swap pager pageins */ + uint64_t v_swapout; /* swap pager pageouts */ + uint64_t v_swappgsin; /* swap pager pages paged in */ + uint64_t v_swappgsout; /* swap pager pages paged out */ + uint64_t v_vnodein; /* vnode pager pageins */ + uint64_t v_vnodeout; /* vnode pager pageouts */ + uint64_t v_vnodepgsin; /* vnode_pager pages paged in */ + uint64_t v_vnodepgsout; /* vnode pager pages paged out */ + uint64_t v_intrans; /* intransit blocking page faults */ + uint64_t v_reactivated; /* number of pages reactivated by pagedaemon */ + uint64_t v_pdwakeups; /* number of times daemon has awaken from sleep */ + uint64_t v_pdpages; /* number of pages analyzed by daemon */ + + uint64_t v_dfree; /* pages freed by daemon */ + uint64_t v_pfree; /* pages freed by exiting processes */ + uint64_t v_tfree; /* total pages freed */ /* * Distribution of page usages. */ From owner-svn-src-all@freebsd.org Thu Apr 20 22:36:34 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48027D487A4; Thu, 20 Apr 2017 22:36:34 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 352DF1E2; Thu, 20 Apr 2017 22:36:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id v3KMaQIW007371 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 20 Apr 2017 15:36:26 -0700 (PDT) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id v3KMaQ8Z007370; Thu, 20 Apr 2017 15:36:26 -0700 (PDT) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Thu, 20 Apr 2017 15:36:26 -0700 From: Gleb Smirnoff To: Jung-uk Kim Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317231 - head/usr.bin/systat Message-ID: <20170420223626.GX1033@FreeBSD.org> References: <201704202230.v3KMUdAm030762@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201704202230.v3KMUdAm030762@repo.freebsd.org> User-Agent: Mutt/1.8.0 (2017-02-23) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 22:36:34 -0000 Thanks, Jung-uk! On Thu, Apr 20, 2017 at 10:30:39PM +0000, Jung-uk Kim wrote: J> Author: jkim J> Date: Thu Apr 20 22:30:39 2017 J> New Revision: 317231 J> URL: https://svnweb.freebsd.org/changeset/base/317231 J> J> Log: J> Fix systat(1) regression. It was broken by r317061. J> J> Modified: J> head/usr.bin/systat/vmstat.c J> J> Modified: head/usr.bin/systat/vmstat.c J> ============================================================================== J> --- head/usr.bin/systat/vmstat.c Thu Apr 20 21:48:54 2017 (r317230) J> +++ head/usr.bin/systat/vmstat.c Thu Apr 20 22:30:39 2017 (r317231) J> @@ -70,35 +70,35 @@ static const char sccsid[] = "@(#)vmstat J> J> static struct Info { J> long time[CPUSTATES]; J> - u_int v_swtch; /* context switches */ J> - u_int v_trap; /* calls to trap */ J> - u_int v_syscall; /* calls to syscall() */ J> - u_int v_intr; /* device interrupts */ J> - u_int v_soft; /* software interrupts */ J> + uint64_t v_swtch; /* context switches */ J> + uint64_t v_trap; /* calls to trap */ J> + uint64_t v_syscall; /* calls to syscall() */ J> + uint64_t v_intr; /* device interrupts */ J> + uint64_t v_soft; /* software interrupts */ J> /* J> * Virtual memory activity. J> */ J> - u_int v_vm_faults; /* number of address memory faults */ J> - u_int v_io_faults; /* page faults requiring I/O */ J> - u_int v_cow_faults; /* number of copy-on-writes */ J> - u_int v_zfod; /* pages zero filled on demand */ J> - u_int v_ozfod; /* optimized zero fill pages */ J> - u_int v_swapin; /* swap pager pageins */ J> - u_int v_swapout; /* swap pager pageouts */ J> - u_int v_swappgsin; /* swap pager pages paged in */ J> - u_int v_swappgsout; /* swap pager pages paged out */ J> - u_int v_vnodein; /* vnode pager pageins */ J> - u_int v_vnodeout; /* vnode pager pageouts */ J> - u_int v_vnodepgsin; /* vnode_pager pages paged in */ J> - u_int v_vnodepgsout; /* vnode pager pages paged out */ J> - u_int v_intrans; /* intransit blocking page faults */ J> - u_int v_reactivated; /* number of pages reactivated by pagedaemon */ J> - u_int v_pdwakeups; /* number of times daemon has awaken from sleep */ J> - u_int v_pdpages; /* number of pages analyzed by daemon */ J> - J> - u_int v_dfree; /* pages freed by daemon */ J> - u_int v_pfree; /* pages freed by exiting processes */ J> - u_int v_tfree; /* total pages freed */ J> + uint64_t v_vm_faults; /* number of address memory faults */ J> + uint64_t v_io_faults; /* page faults requiring I/O */ J> + uint64_t v_cow_faults; /* number of copy-on-writes */ J> + uint64_t v_zfod; /* pages zero filled on demand */ J> + uint64_t v_ozfod; /* optimized zero fill pages */ J> + uint64_t v_swapin; /* swap pager pageins */ J> + uint64_t v_swapout; /* swap pager pageouts */ J> + uint64_t v_swappgsin; /* swap pager pages paged in */ J> + uint64_t v_swappgsout; /* swap pager pages paged out */ J> + uint64_t v_vnodein; /* vnode pager pageins */ J> + uint64_t v_vnodeout; /* vnode pager pageouts */ J> + uint64_t v_vnodepgsin; /* vnode_pager pages paged in */ J> + uint64_t v_vnodepgsout; /* vnode pager pages paged out */ J> + uint64_t v_intrans; /* intransit blocking page faults */ J> + uint64_t v_reactivated; /* number of pages reactivated by pagedaemon */ J> + uint64_t v_pdwakeups; /* number of times daemon has awaken from sleep */ J> + uint64_t v_pdpages; /* number of pages analyzed by daemon */ J> + J> + uint64_t v_dfree; /* pages freed by daemon */ J> + uint64_t v_pfree; /* pages freed by exiting processes */ J> + uint64_t v_tfree; /* total pages freed */ J> /* J> * Distribution of page usages. J> */ J> _______________________________________________ J> svn-src-all@freebsd.org mailing list J> https://lists.freebsd.org/mailman/listinfo/svn-src-all J> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Thu Apr 20 23:12:40 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54626D48157; Thu, 20 Apr 2017 23:12:40 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1C986161E; Thu, 20 Apr 2017 23:12:40 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KNCd5C051013; Thu, 20 Apr 2017 23:12:39 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KNCbQu050997; Thu, 20 Apr 2017 23:12:37 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201704202312.v3KNCbQu050997@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Thu, 20 Apr 2017 23:12:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317232 - in vendor/NetBSD/bmake/dist: . mk X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 23:12:40 -0000 Author: sjg Date: Thu Apr 20 23:12:37 2017 New Revision: 317232 URL: https://svnweb.freebsd.org/changeset/base/317232 Log: Import bmake-20170420 Only use -C arg "as is" if it contains no relative component. Fix Main_SetObjdir() for relative paths (eg obj). Fix a number of coverity complaints. Modified: vendor/NetBSD/bmake/dist/ChangeLog vendor/NetBSD/bmake/dist/Makefile vendor/NetBSD/bmake/dist/arch.c vendor/NetBSD/bmake/dist/cond.c vendor/NetBSD/bmake/dist/dir.c vendor/NetBSD/bmake/dist/for.c vendor/NetBSD/bmake/dist/job.c vendor/NetBSD/bmake/dist/main.c vendor/NetBSD/bmake/dist/make_malloc.c vendor/NetBSD/bmake/dist/mk/ChangeLog vendor/NetBSD/bmake/dist/mk/auto.obj.mk vendor/NetBSD/bmake/dist/mk/install-mk vendor/NetBSD/bmake/dist/parse.c vendor/NetBSD/bmake/dist/suff.c vendor/NetBSD/bmake/dist/targ.c vendor/NetBSD/bmake/dist/var.c Modified: vendor/NetBSD/bmake/dist/ChangeLog ============================================================================== --- vendor/NetBSD/bmake/dist/ChangeLog Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/ChangeLog Thu Apr 20 23:12:37 2017 (r317232) @@ -1,3 +1,29 @@ +2017-04-20 Simon J. Gerraty + + * Makefile (_MAKE_VERSION): 20170420 + Merge with NetBSD make, pick up + o main.c: only use -C arg "as is" if it contains no + relative component. + +2017-04-18 Simon J. Gerraty + + * Makefile (_MAKE_VERSION): 20170418 + Merge with NetBSD make, pick up + o main.c: fix Main_SetObjdir() for relative paths (eg obj). + +2017-04-17 Simon J. Gerraty + + * Makefile (_MAKE_VERSION): 20170417 + Merge with NetBSD make, pick up + o fixes a number of coverity complaints + - check return value of fseek, fcntl + - plug memory leak in Dir_FindFile, Var_LoopExpand, + JobPrintCommand, ParseTraditionalInclude + - use bmake_malloc() where NULL is not tollerated + - use MAKE_ATTR_UNUSED rather that kludges like + return(unused ? 0 : 0) + - use purge_cached_realpaths() rather than abuse cached_realpath() + 2017-04-13 Simon J. Gerraty * Makefile (_MAKE_VERSION): 20170413 Modified: vendor/NetBSD/bmake/dist/Makefile ============================================================================== --- vendor/NetBSD/bmake/dist/Makefile Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/Makefile Thu Apr 20 23:12:37 2017 (r317232) @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.85 2017/04/13 16:29:40 sjg Exp $ +# $Id: Makefile,v 1.88 2017/04/20 14:51:14 sjg Exp $ # Base version on src date -_MAKE_VERSION= 20170413 +_MAKE_VERSION= 20170420 PROG= bmake Modified: vendor/NetBSD/bmake/dist/arch.c ============================================================================== --- vendor/NetBSD/bmake/dist/arch.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/arch.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: arch.c,v 1.69 2016/04/06 09:57:00 gson Exp $ */ +/* $NetBSD: arch.c,v 1.70 2017/04/16 20:49:09 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: arch.c,v 1.69 2016/04/06 09:57:00 gson Exp $"; +static char rcsid[] = "$NetBSD: arch.c,v 1.70 2017/04/16 20:49:09 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)arch.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: arch.c,v 1.69 2016/04/06 09:57:00 gson Exp $"); +__RCSID("$NetBSD: arch.c,v 1.70 2017/04/16 20:49:09 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -726,7 +726,8 @@ ArchStatMember(char *archive, char *memb if (fread(memName, elen, 1, arch) != 1) goto badarch; memName[elen] = '\0'; - fseek(arch, -elen, SEEK_CUR); + if (fseek(arch, -elen, SEEK_CUR) != 0) + goto badarch; if (DEBUG(ARCH) || DEBUG(MAKE)) { fprintf(debug_file, "ArchStat: Extended format entry for %s\n", memName); } @@ -737,7 +738,8 @@ ArchStatMember(char *archive, char *memb Hash_SetValue(he, bmake_malloc(sizeof(struct ar_hdr))); memcpy(Hash_GetValue(he), &arh, sizeof(struct ar_hdr)); } - fseek(arch, (size + 1) & ~1, SEEK_CUR); + if (fseek(arch, (size + 1) & ~1, SEEK_CUR) != 0) + goto badarch; } fclose(arch); @@ -956,7 +958,10 @@ ArchFindMember(char *archive, char *memb * the file at the actual member, rather than its header, but * not here... */ - fseek(arch, -sizeof(struct ar_hdr), SEEK_CUR); + if (fseek(arch, -sizeof(struct ar_hdr), SEEK_CUR) != 0) { + fclose(arch); + return NULL; + } return (arch); } } else @@ -986,10 +991,17 @@ ArchFindMember(char *archive, char *memb } if (strncmp(ename, member, len) == 0) { /* Found as extended name */ - fseek(arch, -sizeof(struct ar_hdr) - elen, SEEK_CUR); + if (fseek(arch, -sizeof(struct ar_hdr) - elen, + SEEK_CUR) != 0) { + fclose(arch); + return NULL; + } return (arch); } - fseek(arch, -elen, SEEK_CUR); + if (fseek(arch, -elen, SEEK_CUR) != 0) { + fclose(arch); + return NULL; + } goto skip; } else #endif @@ -1002,9 +1014,12 @@ skip: * extract the size of the file from the 'size' field of the * header and round it up during the seek. */ - arhPtr->ar_size[sizeof(arhPtr->AR_SIZE)-1] = '\0'; + arhPtr->AR_SIZE[sizeof(arhPtr->AR_SIZE)-1] = '\0'; size = (int)strtol(arhPtr->AR_SIZE, NULL, 10); - fseek(arch, (size + 1) & ~1, SEEK_CUR); + if (fseek(arch, (size + 1) & ~1, SEEK_CUR) != 0) { + fclose(arch); + return NULL; + } } } Modified: vendor/NetBSD/bmake/dist/cond.c ============================================================================== --- vendor/NetBSD/bmake/dist/cond.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/cond.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: cond.c,v 1.74 2016/02/18 18:29:14 christos Exp $ */ +/* $NetBSD: cond.c,v 1.75 2017/04/16 20:59:04 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: cond.c,v 1.74 2016/02/18 18:29:14 christos Exp $"; +static char rcsid[] = "$NetBSD: cond.c,v 1.75 2017/04/16 20:59:04 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)cond.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: cond.c,v 1.74 2016/02/18 18:29:14 christos Exp $"); +__RCSID("$NetBSD: cond.c,v 1.75 2017/04/16 20:59:04 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -91,6 +91,7 @@ __RCSID("$NetBSD: cond.c,v 1.74 2016/02/ * */ +#include #include #include /* For strtoul() error checking */ @@ -1174,8 +1175,9 @@ Cond_EvalExpression(const struct If *inf break; dflt_info = info; } + assert(info != NULL); - if_info = info != NULL ? info : ifs + 4; + if_info = info; condExpr = line; condPushBack = TOK_NONE; Modified: vendor/NetBSD/bmake/dist/dir.c ============================================================================== --- vendor/NetBSD/bmake/dist/dir.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/dir.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: dir.c,v 1.69 2017/01/31 06:54:23 sjg Exp $ */ +/* $NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: dir.c,v 1.69 2017/01/31 06:54:23 sjg Exp $"; +static char rcsid[] = "$NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)dir.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: dir.c,v 1.69 2017/01/31 06:54:23 sjg Exp $"); +__RCSID("$NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -803,11 +803,11 @@ DirExpandInt(const char *word, Lst path, *----------------------------------------------------------------------- */ static int -DirPrintWord(void *word, void *dummy) +DirPrintWord(void *word, void *dummy MAKE_ATTR_UNUSED) { fprintf(debug_file, "%s ", (char *)word); - return(dummy ? 0 : 0); + return 0; } /*- @@ -1315,8 +1315,14 @@ Dir_FindFile(const char *name, Lst path) fprintf(debug_file, " Trying exact path matches...\n"); } - if (!hasLastDot && cur && (file = DirLookupAbs(cur, name, cp)) != NULL) - return *file?file:NULL; + if (!hasLastDot && cur && ((file = DirLookupAbs(cur, name, cp)) + != NULL)) { + if (file[0] == '\0') { + free(file); + return NULL; + } + return file; + } (void)Lst_Open(path); while ((ln = Lst_Next(path)) != NULL) { @@ -1325,13 +1331,23 @@ Dir_FindFile(const char *name, Lst path) continue; if ((file = DirLookupAbs(p, name, cp)) != NULL) { Lst_Close(path); - return *file?file:NULL; + if (file[0] == '\0') { + free(file); + return NULL; + } + return file; } } Lst_Close(path); - if (hasLastDot && cur && (file = DirLookupAbs(cur, name, cp)) != NULL) - return *file?file:NULL; + if (hasLastDot && cur && ((file = DirLookupAbs(cur, name, cp)) + != NULL)) { + if (file[0] == '\0') { + free(file); + return NULL; + } + return file; + } } /* @@ -1851,10 +1867,10 @@ Dir_PrintDirectories(void) } static int -DirPrintDir(void *p, void *dummy) +DirPrintDir(void *p, void *dummy MAKE_ATTR_UNUSED) { fprintf(debug_file, "%s ", ((Path *)p)->name); - return (dummy ? 0 : 0); + return 0; } void Modified: vendor/NetBSD/bmake/dist/for.c ============================================================================== --- vendor/NetBSD/bmake/dist/for.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/for.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: for.c,v 1.52 2016/02/18 18:29:14 christos Exp $ */ +/* $NetBSD: for.c,v 1.53 2017/04/16 21:04:44 riastradh Exp $ */ /* * Copyright (c) 1992, The Regents of the University of California. @@ -30,14 +30,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: for.c,v 1.52 2016/02/18 18:29:14 christos Exp $"; +static char rcsid[] = "$NetBSD: for.c,v 1.53 2017/04/16 21:04:44 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)for.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: for.c,v 1.52 2016/02/18 18:29:14 christos Exp $"); +__RCSID("$NetBSD: for.c,v 1.53 2017/04/16 21:04:44 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -427,7 +427,7 @@ For_Iterate(void *v_arg, size_t *ret_len for (cp = cmd_cp; (cp = strchr(cp, '$')) != NULL;) { char ech; ch = *++cp; - if ((ch == '(' && (ech = ')')) || (ch == '{' && (ech = '}'))) { + if ((ch == '(' && (ech = ')', 1)) || (ch == '{' && (ech = '}', 1))) { cp++; /* Check variable name against the .for loop variables */ STRLIST_FOREACH(var, &arg->vars, i) { Modified: vendor/NetBSD/bmake/dist/job.c ============================================================================== --- vendor/NetBSD/bmake/dist/job.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/job.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: job.c,v 1.188 2016/08/26 23:28:39 dholland Exp $ */ +/* $NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: job.c,v 1.188 2016/08/26 23:28:39 dholland Exp $"; +static char rcsid[] = "$NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)job.c 8.2 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: job.c,v 1.188 2016/08/26 23:28:39 dholland Exp $"); +__RCSID("$NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -427,7 +427,7 @@ static void JobSigUnlock(sigset_t *omask static void JobCreatePipe(Job *job, int minfd) { - int i, fd; + int i, fd, flags; if (pipe(job->jobPipe) == -1) Punt("Cannot create pipe: %s", strerror(errno)); @@ -442,8 +442,10 @@ JobCreatePipe(Job *job, int minfd) } /* Set close-on-exec flag for both */ - (void)fcntl(job->jobPipe[0], F_SETFD, FD_CLOEXEC); - (void)fcntl(job->jobPipe[1], F_SETFD, FD_CLOEXEC); + if (fcntl(job->jobPipe[0], F_SETFD, FD_CLOEXEC) == -1) + Punt("Cannot set close-on-exec: %s", strerror(errno)); + if (fcntl(job->jobPipe[1], F_SETFD, FD_CLOEXEC) == -1) + Punt("Cannot set close-on-exec: %s", strerror(errno)); /* * We mark the input side of the pipe non-blocking; we poll(2) the @@ -451,8 +453,12 @@ JobCreatePipe(Job *job, int minfd) * race for the token when a new one becomes available, so the read * from the pipe should not block. */ - fcntl(job->jobPipe[0], F_SETFL, - fcntl(job->jobPipe[0], F_GETFL, 0) | O_NONBLOCK); + flags = fcntl(job->jobPipe[0], F_GETFL, 0); + if (flags == -1) + Punt("Cannot get flags: %s", strerror(errno)); + flags |= O_NONBLOCK; + if (fcntl(job->jobPipe[0], F_SETFL, flags) == -1) + Punt("Cannot set flags: %s", strerror(errno)); } /*- @@ -754,6 +760,7 @@ JobPrintCommand(void *cmdp, void *jobp) * but this one needs to be - use compat mode just for it. */ CompatRunCommand(cmdp, job->node); + free(cmdStart); return 0; } break; @@ -1382,15 +1389,27 @@ JobExec(Job *job, char **argv) execError("dup2", "job->cmdFILE"); _exit(1); } - (void)fcntl(0, F_SETFD, 0); - (void)lseek(0, (off_t)0, SEEK_SET); + if (fcntl(0, F_SETFD, 0) == -1) { + execError("fcntl clear close-on-exec", "stdin"); + _exit(1); + } + if (lseek(0, (off_t)0, SEEK_SET) == -1) { + execError("lseek to 0", "stdin"); + _exit(1); + } if (job->node->type & (OP_MAKE | OP_SUBMAKE)) { /* * Pass job token pipe to submakes. */ - fcntl(tokenWaitJob.inPipe, F_SETFD, 0); - fcntl(tokenWaitJob.outPipe, F_SETFD, 0); + if (fcntl(tokenWaitJob.inPipe, F_SETFD, 0) == -1) { + execError("clear close-on-exec", "tokenWaitJob.inPipe"); + _exit(1); + } + if (fcntl(tokenWaitJob.outPipe, F_SETFD, 0) == -1) { + execError("clear close-on-exec", "tokenWaitJob.outPipe"); + _exit(1); + } } /* @@ -1407,7 +1426,10 @@ JobExec(Job *job, char **argv) * it before routing the shell's error output to the same place as * its standard output. */ - (void)fcntl(1, F_SETFD, 0); + if (fcntl(1, F_SETFD, 0) == -1) { + execError("clear close-on-exec", "stdout"); + _exit(1); + } if (dup2(1, 2) == -1) { execError("dup2", "1, 2"); _exit(1); Modified: vendor/NetBSD/bmake/dist/main.c ============================================================================== --- vendor/NetBSD/bmake/dist/main.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/main.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.260 2017/04/13 13:55:23 christos Exp $ */ +/* $NetBSD: main.c,v 1.264 2017/04/20 03:57:27 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.260 2017/04/13 13:55:23 christos Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.264 2017/04/20 03:57:27 sjg Exp $"; #else #include #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19 #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.260 2017/04/13 13:55:23 christos Exp $"); +__RCSID("$NetBSD: main.c,v 1.264 2017/04/20 03:57:27 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -187,6 +187,7 @@ static const char * tracefile; static void MainParseArgs(int, char **); static int ReadMakefile(const void *, const void *); static void usage(void) MAKE_ATTR_DEAD; +static void purge_cached_realpaths(void); static Boolean ignorePWD; /* if we use -C, PWD is meaningless */ static char objdir[MAXPATHLEN + 1]; /* where we chdir'ed to */ @@ -336,7 +337,7 @@ parse_debug_options(const char *argvalue goto debug_setbuf; } len = strlen(modules); - fname = malloc(len + 20); + fname = bmake_malloc(len + 20); memcpy(fname, modules, len + 1); /* Let the filename be modified by the pid */ if (strcmp(fname + len - 3, ".%d") == 0) @@ -367,6 +368,32 @@ debug_setbuf: } } +/* + * does path contain any relative components + */ +static int +is_relpath(const char *path) +{ + const char *cp; + + if (path[0] != '/') + return TRUE; + cp = path; + do { + cp = strstr(cp, "/."); + if (!cp) + break; + cp += 2; + if (cp[0] == '/' || cp[0] == '\0') + return TRUE; + else if (cp[0] == '.') { + if (cp[1] == '/' || cp[1] == '\0') + return TRUE; + } + } while (cp); + return FALSE; +} + /*- * MainParseArgs -- * Parse a given argument vector. Called from main() and from @@ -458,7 +485,7 @@ rearg: (void)fprintf(stderr, "%s: %s.\n", progname, strerror(errno)); exit(2); } - if (argvalue[0] == '/' && + if (!is_relpath(argvalue) && stat(argvalue, &sa) != -1 && stat(curdir, &sb) != -1 && sa.st_ino == sb.st_ino && @@ -732,8 +759,10 @@ Main_SetObjdir(const char *fmt, ...) va_end(ap); if (path[0] != '/') { - snprintf(buf, MAXPATHLEN, "%s/%s", curdir, path); - path = buf; + char buf2[MAXPATHLEN + 1]; + + snprintf(buf2, MAXPATHLEN, "%s/%s", curdir, path); + path = buf2; } /* look for the directory and try to chdir there */ @@ -746,7 +775,7 @@ Main_SetObjdir(const char *fmt, ...) Var_Set(".OBJDIR", objdir, VAR_GLOBAL, 0); setenv("PWD", objdir, 1); Dir_InitDot(); - cached_realpath(".OBJDIR", NULL); /* purge */ + purge_cached_realpaths(); rc = TRUE; if (enterFlag && strcmp(objdir, curdir) != 0) enterFlagObj = TRUE; @@ -1907,42 +1936,56 @@ usage(void) exit(2); } - /* * realpath(3) can get expensive, cache results... */ +static GNode *cached_realpaths = NULL; + +static GNode * +get_cached_realpaths(void) +{ + + if (!cached_realpaths) { + cached_realpaths = Targ_NewGN("Realpath"); +#ifndef DEBUG_REALPATH_CACHE + cached_realpaths->flags = INTERNAL; +#endif + } + + return cached_realpaths; +} + +/* purge any relative paths */ +static void +purge_cached_realpaths(void) +{ + GNode *cache = get_cached_realpaths(); + Hash_Entry *he, *nhe; + Hash_Search hs; + + he = Hash_EnumFirst(&cache->context, &hs); + while (he) { + nhe = Hash_EnumNext(&hs); + if (he->name[0] != '/') { + if (DEBUG(DIR)) + fprintf(stderr, "cached_realpath: purging %s\n", he->name); + Hash_DeleteEntry(&cache->context, he); + } + he = nhe; + } +} + char * cached_realpath(const char *pathname, char *resolved) { - static GNode *cache; + GNode *cache; char *rp, *cp; if (!pathname || !pathname[0]) return NULL; - if (!cache) { - cache = Targ_NewGN("Realpath"); -#ifndef DEBUG_REALPATH_CACHE - cache->flags = INTERNAL; -#endif - } - if (resolved == NULL && strcmp(pathname, ".OBJDIR") == 0) { - /* purge any relative paths */ - Hash_Entry *he, *nhe; - Hash_Search hs; - - he = Hash_EnumFirst(&cache->context, &hs); - while (he) { - nhe = Hash_EnumNext(&hs); - if (he->name[0] != '/') { - if (DEBUG(DIR)) - fprintf(stderr, "cached_realpath: purging %s\n", he->name); - Hash_DeleteEntry(&cache->context, he); - } - he = nhe; - } - return NULL; - } + cache = get_cached_realpaths(); + if ((rp = Var_Value(pathname, cache, &cp)) != NULL) { /* a hit */ strlcpy(resolved, rp, MAXPATHLEN); Modified: vendor/NetBSD/bmake/dist/make_malloc.c ============================================================================== --- vendor/NetBSD/bmake/dist/make_malloc.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/make_malloc.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: make_malloc.c,v 1.10 2012/06/20 17:46:28 sjg Exp $ */ +/* $NetBSD: make_malloc.c,v 1.11 2017/04/16 20:20:24 dholland Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -28,7 +28,7 @@ #ifdef MAKE_NATIVE #include -__RCSID("$NetBSD: make_malloc.c,v 1.10 2012/06/20 17:46:28 sjg Exp $"); +__RCSID("$NetBSD: make_malloc.c,v 1.11 2017/04/16 20:20:24 dholland Exp $"); #endif #include @@ -39,13 +39,13 @@ __RCSID("$NetBSD: make_malloc.c,v 1.10 2 #include "make.h" #ifndef USE_EMALLOC -static void enomem(void) MAKE_ATTR_DEAD; +static MAKE_ATTR_DEAD void enomem(void); /* * enomem -- * die when out of memory. */ -static void +static MAKE_ATTR_DEAD void enomem(void) { (void)fprintf(stderr, "%s: %s.\n", progname, strerror(ENOMEM)); Modified: vendor/NetBSD/bmake/dist/mk/ChangeLog ============================================================================== --- vendor/NetBSD/bmake/dist/mk/ChangeLog Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/mk/ChangeLog Thu Apr 20 23:12:37 2017 (r317232) @@ -1,3 +1,10 @@ +2017-04-18 Simon J. Gerraty + + * install-mk (MK_VERSION): 20170418 + + * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a + prefix match for .CURDIR - in which case .CURDIR *is* __objdir. + 2017-04-01 Simon J. Gerraty * install-mk (MK_VERSION): 20170401 Modified: vendor/NetBSD/bmake/dist/mk/auto.obj.mk ============================================================================== --- vendor/NetBSD/bmake/dist/mk/auto.obj.mk Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/mk/auto.obj.mk Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -# $Id: auto.obj.mk,v 1.13 2017/03/24 20:53:22 sjg Exp $ +# $Id: auto.obj.mk,v 1.14 2017/04/18 23:53:18 sjg Exp $ # # @(#) Copyright (c) 2004, Simon J. Gerraty # @@ -41,6 +41,10 @@ MKOBJDIRS= auto # Use __objdir here so it is easier to tweak without impacting # the logic. .if !empty(MAKEOBJDIRPREFIX) +.if ${.CURDIR:M${MAKEOBJDIRPREFIX}/*} != "" +# we are already in obj tree! +__objdir?= ${.CURDIR} +.endif __objdir?= ${MAKEOBJDIRPREFIX}${.CURDIR} .endif __objdir?= ${MAKEOBJDIR:Uobj} Modified: vendor/NetBSD/bmake/dist/mk/install-mk ============================================================================== --- vendor/NetBSD/bmake/dist/mk/install-mk Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/mk/install-mk Thu Apr 20 23:12:37 2017 (r317232) @@ -55,7 +55,7 @@ # Simon J. Gerraty # RCSid: -# $Id: install-mk,v 1.140 2017/04/03 21:04:09 sjg Exp $ +# $Id: install-mk,v 1.141 2017/04/18 23:53:18 sjg Exp $ # # @(#) Copyright (c) 1994 Simon J. Gerraty # @@ -70,7 +70,7 @@ # sjg@crufty.net # -MK_VERSION=20170401 +MK_VERSION=20170418 OWNER= GROUP= MODE=444 Modified: vendor/NetBSD/bmake/dist/parse.c ============================================================================== --- vendor/NetBSD/bmake/dist/parse.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/parse.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: parse.c,v 1.218 2017/03/01 16:39:49 sjg Exp $ */ +/* $NetBSD: parse.c,v 1.225 2017/04/17 13:29:07 maya Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: parse.c,v 1.218 2017/03/01 16:39:49 sjg Exp $"; +static char rcsid[] = "$NetBSD: parse.c,v 1.225 2017/04/17 13:29:07 maya Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)parse.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: parse.c,v 1.218 2017/03/01 16:39:49 sjg Exp $"); +__RCSID("$NetBSD: parse.c,v 1.225 2017/04/17 13:29:07 maya Exp $"); #endif #endif /* not lint */ #endif @@ -130,6 +130,7 @@ __RCSID("$NetBSD: parse.c,v 1.218 2017/0 #include #include #include +#include #include "make.h" #include "hash.h" @@ -539,7 +540,7 @@ loadfile(const char *path, int fd) if (lf->buf != MAP_FAILED) { /* succeeded */ if (lf->len == lf->maplen && lf->buf[lf->len - 1] != '\n') { - char *b = malloc(lf->len + 1); + char *b = bmake_malloc(lf->len + 1); b[lf->len] = '\n'; memcpy(b, lf->buf, lf->len++); munmap(lf->buf, lf->maplen); @@ -560,9 +561,15 @@ loadfile(const char *path, int fd) while (1) { assert(bufpos <= lf->len); if (bufpos == lf->len) { + if (lf->len > SIZE_MAX/2) { + errno = EFBIG; + Error("%s: file too large", path); + exit(1); + } lf->len *= 2; lf->buf = bmake_realloc(lf->buf, lf->len); } + assert(bufpos < lf->len); result = read(fd, lf->buf + bufpos, lf->len - bufpos); if (result < 0) { Error("%s: read error: %s", path, strerror(errno)); @@ -1099,15 +1106,15 @@ ParseDoSrc(int tOp, const char *src) *----------------------------------------------------------------------- */ static int -ParseFindMain(void *gnp, void *dummy) +ParseFindMain(void *gnp, void *dummy MAKE_ATTR_UNUSED) { GNode *gn = (GNode *)gnp; if ((gn->type & OP_NOTARGET) == 0) { mainNode = gn; Targ_SetMain(gn); - return (dummy ? 1 : 1); + return 1; } else { - return (dummy ? 0 : 0); + return 0; } } @@ -1145,10 +1152,10 @@ ParseAddDir(void *path, void *name) *----------------------------------------------------------------------- */ static int -ParseClearPath(void *path, void *dummy) +ParseClearPath(void *path, void *dummy MAKE_ATTR_UNUSED) { Dir_ClearPath((Lst) path); - return(dummy ? 0 : 0); + return 0; } /*- @@ -1685,10 +1692,12 @@ ParseDoDependency(char *line) } if (paths) { Lst_Destroy(paths, NULL); + paths = NULL; } if (specType == ExPath) Dir_SetPATH(); } else { + assert(paths == NULL); while (*line) { /* * The targets take real sources, so we must beware of archive @@ -1747,6 +1756,7 @@ ParseDoDependency(char *line) } out: + assert(paths == NULL); if (curTargs) Lst_Destroy(curTargs, NULL); } @@ -2550,7 +2560,7 @@ ParseTraditionalInclude(char *line) if (*file == '\0') { Parse_Error(PARSE_FATAL, "Filename missing from \"include\""); - return; + goto out; } for (file = all_files; !done; file = cp + 1) { @@ -2565,6 +2575,7 @@ ParseTraditionalInclude(char *line) Parse_include_file(file, FALSE, FALSE, silent); } +out: free(all_files); } #endif @@ -2615,6 +2626,7 @@ ParseGmakeExport(char *line) */ value = Var_Subst(NULL, value, VAR_CMD, VARF_WANTRES); setenv(variable, value, 1); + free(value); } #endif Modified: vendor/NetBSD/bmake/dist/suff.c ============================================================================== --- vendor/NetBSD/bmake/dist/suff.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/suff.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $ */ +/* $NetBSD: suff.c,v 1.86 2017/04/16 20:38:18 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $"; +static char rcsid[] = "$NetBSD: suff.c,v 1.86 2017/04/16 20:38:18 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)suff.c 8.4 (Berkeley) 3/21/94"; #else -__RCSID("$NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $"); +__RCSID("$NetBSD: suff.c,v 1.86 2017/04/16 20:38:18 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -135,6 +135,7 @@ __RCSID("$NetBSD: suff.c,v 1.84 2016/06/ * order to find the node. */ +#include #include #include "make.h" #include "hash.h" @@ -762,12 +763,10 @@ Suff_AddTransform(char *line) *----------------------------------------------------------------------- */ int -Suff_EndTransform(void *gnp, void *dummy) +Suff_EndTransform(void *gnp, void *dummy MAKE_ATTR_UNUSED) { GNode *gn = (GNode *)gnp; - (void)dummy; - if ((gn->type & OP_DOUBLEDEP) && !Lst_IsEmpty (gn->cohorts)) gn = (GNode *)Lst_Datum(Lst_Last(gn->cohorts)); if ((gn->type & OP_TRANSFORM) && Lst_IsEmpty(gn->commands) && @@ -1908,6 +1907,13 @@ SuffFindArchiveDeps(GNode *gn, Lst slst) eoarch = strchr(gn->name, '('); eoname = strchr(eoarch, ')'); + /* + * Caller guarantees the format `libname(member)', via + * Arch_ParseArchive. + */ + assert(eoarch != NULL); + assert(eoname != NULL); + *eoname = '\0'; /* Nuke parentheses during suffix search */ *eoarch = '\0'; /* So a suffix can be found */ @@ -2597,23 +2603,20 @@ Suff_End(void) /********************* DEBUGGING FUNCTIONS **********************/ -static int SuffPrintName(void *s, void *dummy) +static int SuffPrintName(void *s, void *dummy MAKE_ATTR_UNUSED) { - (void)dummy; fprintf(debug_file, "%s ", ((Suff *)s)->name); return 0; } static int -SuffPrintSuff(void *sp, void *dummy) +SuffPrintSuff(void *sp, void *dummy MAKE_ATTR_UNUSED) { Suff *s = (Suff *)sp; int flags; int flag; - (void)dummy; - fprintf(debug_file, "# `%s' [%d] ", s->name, s->refCount); flags = s->flags; @@ -2650,12 +2653,10 @@ SuffPrintSuff(void *sp, void *dummy) } static int -SuffPrintTrans(void *tp, void *dummy) +SuffPrintTrans(void *tp, void *dummy MAKE_ATTR_UNUSED) { GNode *t = (GNode *)tp; - (void)dummy; - fprintf(debug_file, "%-16s: ", t->name); Targ_PrintType(t->type); fputc('\n', debug_file); Modified: vendor/NetBSD/bmake/dist/targ.c ============================================================================== --- vendor/NetBSD/bmake/dist/targ.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/targ.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: targ.c,v 1.61 2016/01/17 17:45:21 christos Exp $ */ +/* $NetBSD: targ.c,v 1.62 2017/04/16 19:53:58 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: targ.c,v 1.61 2016/01/17 17:45:21 christos Exp $"; +static char rcsid[] = "$NetBSD: targ.c,v 1.62 2017/04/16 19:53:58 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)targ.c 8.2 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: targ.c,v 1.61 2016/01/17 17:45:21 christos Exp $"); +__RCSID("$NetBSD: targ.c,v 1.62 2017/04/16 19:53:58 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -521,10 +521,10 @@ TargPrintName(void *gnp, void *pflags MA int -Targ_PrintCmd(void *cmd, void *dummy) +Targ_PrintCmd(void *cmd, void *dummy MAKE_ATTR_UNUSED) { fprintf(debug_file, "\t%s\n", (char *)cmd); - return (dummy ? 0 : 0); + return 0; } /*- Modified: vendor/NetBSD/bmake/dist/var.c ============================================================================== --- vendor/NetBSD/bmake/dist/var.c Thu Apr 20 22:30:39 2017 (r317231) +++ vendor/NetBSD/bmake/dist/var.c Thu Apr 20 23:12:37 2017 (r317232) @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.213 2017/02/01 18:39:27 sjg Exp $ */ +/* $NetBSD: var.c,v 1.215 2017/04/16 21:39:49 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: var.c,v 1.213 2017/02/01 18:39:27 sjg Exp $"; +static char rcsid[] = "$NetBSD: var.c,v 1.215 2017/04/16 21:39:49 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: var.c,v 1.213 2017/02/01 18:39:27 sjg Exp $"); +__RCSID("$NetBSD: var.c,v 1.215 2017/04/16 21:39:49 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -1181,7 +1181,7 @@ Var_Value(const char *name, GNode *ctxt, static Boolean *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Apr 20 23:12:51 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F41AD481B5; Thu, 20 Apr 2017 23:12:51 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1898516BA; Thu, 20 Apr 2017 23:12:51 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3KNCocD051063; Thu, 20 Apr 2017 23:12:50 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3KNCoW8051062; Thu, 20 Apr 2017 23:12:50 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201704202312.v3KNCoW8051062@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Thu, 20 Apr 2017 23:12:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317233 - vendor/NetBSD/bmake/20170420 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 23:12:51 -0000 Author: sjg Date: Thu Apr 20 23:12:50 2017 New Revision: 317233 URL: https://svnweb.freebsd.org/changeset/base/317233 Log: tag bmake-20170420 Added: vendor/NetBSD/bmake/20170420/ - copied from r317232, vendor/NetBSD/bmake/dist/ From owner-svn-src-all@freebsd.org Fri Apr 21 00:00:24 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 480FAD45028; Fri, 21 Apr 2017 00:00:24 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2292DAF1; Fri, 21 Apr 2017 00:00:24 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L00N3I070008; Fri, 21 Apr 2017 00:00:23 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L00NrH070007; Fri, 21 Apr 2017 00:00:23 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201704210000.v3L00NrH070007@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Fri, 21 Apr 2017 00:00:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317234 - head/usr.bin/vmstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 00:00:24 -0000 Author: glebius Date: Fri Apr 21 00:00:23 2017 New Revision: 317234 URL: https://svnweb.freebsd.org/changeset/base/317234 Log: - When reading VM stats, provide proper size argument to sysctl. - While here, remove unused arguments from mysysctl(). Modified: head/usr.bin/vmstat/vmstat.c Modified: head/usr.bin/vmstat/vmstat.c ============================================================================== --- head/usr.bin/vmstat/vmstat.c Thu Apr 20 23:12:50 2017 (r317233) +++ head/usr.bin/vmstat/vmstat.c Fri Apr 21 00:00:23 2017 (r317234) @@ -413,12 +413,11 @@ retry_nlist: } static int -mysysctl(const char *name, void *oldp, size_t *oldlenp, - void *newp, size_t newlen) +mysysctl(const char *name, void *oldp, size_t *oldlenp) { int error; - error = sysctlbyname(name, oldp, oldlenp, newp, newlen); + error = sysctlbyname(name, oldp, oldlenp, NULL, 0); if (error != 0 && errno != ENOMEM) xo_err(1, "sysctl(%s)", name); return (error); @@ -541,10 +540,12 @@ fill_vmmeter(struct __vmmeter *vmmp) GET_COUNTER(v_kthreadpages); #undef GET_COUNTER } else { - size_t size = sizeof(uint64_t); + size_t size; -#define GET_VM_STATS(cat, name) \ - mysysctl("vm.stats." #cat "." #name, &vmmp->name, &size, NULL, 0) +#define GET_VM_STATS(cat, name) do { \ + size = sizeof(vmmp->name); \ + mysysctl("vm.stats." #cat "." #name, &vmmp->name, &size); \ +} while (0) /* sys */ GET_VM_STATS(sys, v_swtch); GET_VM_STATS(sys, v_trap); @@ -609,7 +610,7 @@ fill_vmtotal(struct vmtotal *vmtp) xo_errx(1, "not implemented"); } else { size_t size = sizeof(*vmtp); - mysysctl("vm.vmtotal", vmtp, &size, NULL, 0); + mysysctl("vm.vmtotal", vmtp, &size); if (size != sizeof(*vmtp)) xo_errx(1, "vm.total size mismatch"); } @@ -633,14 +634,14 @@ getcpuinfo(u_long *maskp, int *maxidp) mask = 0; ncpus = 0; size = sizeof(maxcpu); - mysysctl("kern.smp.maxcpus", &maxcpu, &size, NULL, 0); + mysysctl("kern.smp.maxcpus", &maxcpu, &size); if (size != sizeof(maxcpu)) xo_errx(1, "sysctl kern.smp.maxcpus"); size = sizeof(long) * maxcpu * CPUSTATES; times = malloc(size); if (times == NULL) xo_err(1, "malloc %zd bytes", size); - mysysctl("kern.cp_times", times, &size, NULL, 0); + mysysctl("kern.cp_times", times, &size); maxid = (size / CPUSTATES / sizeof(long)) - 1; for (i = 0; i <= maxid; i++) { empty = 1; @@ -731,7 +732,7 @@ dovmstat(unsigned int interval, int reps struct clockinfo clockrate; size = sizeof(clockrate); - mysysctl("kern.clockrate", &clockrate, &size, NULL, 0); + mysysctl("kern.clockrate", &clockrate, &size); if (size != sizeof(clockrate)) xo_errx(1, "clockrate size mismatch"); hz = clockrate.hz; @@ -751,13 +752,13 @@ dovmstat(unsigned int interval, int reps xo_errx(1, "kvm_getcptime: %s", kvm_geterr(kd)); } else { size = sizeof(cur.cp_time); - mysysctl("kern.cp_time", &cur.cp_time, &size, NULL, 0); + mysysctl("kern.cp_time", &cur.cp_time, &size); if (size != sizeof(cur.cp_time)) xo_errx(1, "cp_time size mismatch"); } if (Pflag) { size = size_cp_times; - mysysctl("kern.cp_times", cur_cp_times, &size, NULL, 0); + mysysctl("kern.cp_times", cur_cp_times, &size); if (size != size_cp_times) xo_errx(1, "cp_times mismatch"); } @@ -1110,7 +1111,7 @@ dosum(void) kread(X_NCHSTATS, &lnchstats, sizeof(lnchstats)); } else { size_t size = sizeof(lnchstats); - mysysctl("vfs.cache.nchstats", &lnchstats, &size, NULL, 0); + mysysctl("vfs.cache.nchstats", &lnchstats, &size); if (size != sizeof(lnchstats)) xo_errx(1, "vfs.cache.nchstats size mismatch"); } @@ -1300,8 +1301,7 @@ read_intrcnts(unsigned long **intrcnts) *intrcnts = reallocf(*intrcnts, intrcntlen); if (*intrcnts == NULL) err(1, "reallocf()"); - if (mysysctl("hw.intrcnt", - *intrcnts, &intrcntlen, NULL, 0) == 0) + if (mysysctl("hw.intrcnt", *intrcnts, &intrcntlen) == 0) break; } } @@ -1369,8 +1369,7 @@ dointr(unsigned int interval, int reps) for (intrnames = NULL, inamlen = 1024; ; inamlen *= 2) { if ((intrnames = reallocf(intrnames, inamlen)) == NULL) xo_err(1, "reallocf()"); - if (mysysctl("hw.intrnames", - intrnames, &inamlen, NULL, 0) == 0) + if (mysysctl("hw.intrnames", intrnames, &inamlen) == 0) break; } } From owner-svn-src-all@freebsd.org Fri Apr 21 00:12:48 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9055D45432; Fri, 21 Apr 2017 00:12:48 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7B7B81298; Fri, 21 Apr 2017 00:12:48 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L0Clnw077480; Fri, 21 Apr 2017 00:12:47 GMT (envelope-from jpaetzel@FreeBSD.org) Received: (from jpaetzel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L0ClUK077476; Fri, 21 Apr 2017 00:12:47 GMT (envelope-from jpaetzel@FreeBSD.org) Message-Id: <201704210012.v3L0ClUK077476@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jpaetzel set sender to jpaetzel@FreeBSD.org using -f From: Josh Paetzel Date: Fri, 21 Apr 2017 00:12:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317235 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 00:12:48 -0000 Author: jpaetzel Date: Fri Apr 21 00:12:47 2017 New Revision: 317235 URL: https://svnweb.freebsd.org/changeset/base/317235 Log: MFV 316868 7430 Backfill metadnode more intelligently illumos/illumos-gate@af346df58864e8fe897b1ff1a3a4c12f9294391b https://github.com/illumos/illumos-gate/commit/af346df58864e8fe897b1ff1a3a4c12f9294391b https://www.illumos.org/issues/7430 Description and patch from brought over from the following ZoL commit: https:// github.com/zfsonlinux/zfs/commit/68cbd56e182ab949f58d004778d463aeb3f595c6 Only attempt to backfill lower metadnode object numbers if at least 4096 objects have been freed since the last rescan, and at most once per transaction group. This avoids a pathology in dmu_object_alloc() that caused O(N^2) behavior for create-heavy workloads and substantially improves object creation rates. As summarized by @mahrens in #4636: "Normally, the object allocator simply checks to see if the next object is available. The slow calls happened when dmu_object_alloc() checks to see if it can backfill lower object numbers. This happens every time we move on to a new L1 indirect block (i.e. every 32 * 128 = 4096 objects). When re-checking lower object numbers, we use the on-disk fill count (blkptr_t:blk_fill) to quickly skip over indirect blocks that don?t have enough free dnodes (defined as an L2 with at least 393,216 of 524,288 dnodes free). Therefore, we may find that a block of dnodes has a low (or zero) fill count, and yet we can?t allocate any of its dnodes, because they've been allocated in memory but not yet written to disk. In this case we have to hold each of the dnodes and then notice that it has been allocated in memory. The end result is that allocating N objects in the same TXG can require CPU usage proportional to N^2." Add a tunable dmu_rescan_dnode_threshold to define the number of objects that must be freed before a rescan is performed. Don't bother to export this as a module option because testing doesn't show a compelling reason to change it. The vast majority of the performance gain comes from limit the rescan to at most once per TXG. Reviewed by: Alek Pinchuk Reviewed by: Brian Behlendorf Reviewed by: Matthew Ahrens Approved by: Gordon Ross Author: Ned Bass Obtained from: Illumos Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c Fri Apr 21 00:00:23 2017 (r317234) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c Fri Apr 21 00:12:47 2017 (r317235) @@ -36,20 +36,22 @@ dmu_object_alloc(objset_t *os, dmu_objec dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx) { uint64_t object; - uint64_t L2_dnode_count = DNODES_PER_BLOCK << + uint64_t L1_dnode_count = DNODES_PER_BLOCK << (DMU_META_DNODE(os)->dn_indblkshift - SPA_BLKPTRSHIFT); dnode_t *dn = NULL; - int restarted = B_FALSE; mutex_enter(&os->os_obj_lock); for (;;) { object = os->os_obj_next; /* - * Each time we polish off an L2 bp worth of dnodes - * (2^13 objects), move to another L2 bp that's still - * reasonably sparse (at most 1/4 full). Look from the - * beginning once, but after that keep looking from here. - * If we can't find one, just keep going from here. + * Each time we polish off a L1 bp worth of dnodes (2^12 + * objects), move to another L1 bp that's still reasonably + * sparse (at most 1/4 full). Look from the beginning at most + * once per txg, but after that keep looking from here. + * os_scan_dnodes is set during txg sync if enough objects + * have been freed since the previous rescan to justify + * backfilling again. If we can't find a suitable block, just + * keep going from here. * * Note that dmu_traverse depends on the behavior that we use * multiple blocks of the dnode object before going back to @@ -57,12 +59,19 @@ dmu_object_alloc(objset_t *os, dmu_objec * that property or find another solution to the issues * described in traverse_visitbp. */ - if (P2PHASE(object, L2_dnode_count) == 0) { - uint64_t offset = restarted ? object << DNODE_SHIFT : 0; - int error = dnode_next_offset(DMU_META_DNODE(os), + + if (P2PHASE(object, L1_dnode_count) == 0) { + uint64_t offset; + int error; + if (os->os_rescan_dnodes) { + offset = 0; + os->os_rescan_dnodes = B_FALSE; + } else { + offset = object << DNODE_SHIFT; + } + error = dnode_next_offset(DMU_META_DNODE(os), DNODE_FIND_HOLE, &offset, 2, DNODES_PER_BLOCK >> 2, 0); - restarted = B_TRUE; if (error == 0) object = offset >> DNODE_SHIFT; } Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Fri Apr 21 00:00:23 2017 (r317234) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Fri Apr 21 00:12:47 2017 (r317235) @@ -67,6 +67,13 @@ krwlock_t os_lock; */ int dmu_find_threads = 0; +/* + * Backfill lower metadnode objects after this many have been freed. + * Backfilling negatively impacts object creation rates, so only do it + * if there are enough holes to fill. + */ +int dmu_rescan_dnode_threshold = 131072; + static void dmu_objset_find_dp_cb(void *arg); void @@ -1176,6 +1183,13 @@ dmu_objset_sync(objset_t *os, zio_t *pio if (dr->dr_zio) zio_nowait(dr->dr_zio); } + + /* Enable dnode backfill if enough objects have been freed. */ + if (os->os_freed_dnodes >= dmu_rescan_dnode_threshold) { + os->os_rescan_dnodes = B_TRUE; + os->os_freed_dnodes = 0; + } + /* * Free intent log blocks up to this tx. */ Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c Fri Apr 21 00:00:23 2017 (r317234) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c Fri Apr 21 00:12:47 2017 (r317235) @@ -672,6 +672,7 @@ dnode_sync(dnode_t *dn, dmu_tx_t *tx) } if (freeing_dnode) { + dn->dn_objset->os_freed_dnodes++; dnode_sync_free(dn, tx); return; } Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h Fri Apr 21 00:00:23 2017 (r317234) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h Fri Apr 21 00:12:47 2017 (r317235) @@ -112,6 +112,8 @@ struct objset { zil_header_t os_zil_header; list_t os_synced_dnodes; uint64_t os_flags; + uint64_t os_freed_dnodes; + boolean_t os_rescan_dnodes; /* Protected by os_obj_lock */ kmutex_t os_obj_lock; From owner-svn-src-all@freebsd.org Fri Apr 21 00:17:48 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 80B0BD45541; Fri, 21 Apr 2017 00:17:48 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 52756149D; Fri, 21 Apr 2017 00:17:48 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L0Hlbw077713; Fri, 21 Apr 2017 00:17:47 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L0Hlvi077712; Fri, 21 Apr 2017 00:17:47 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704210017.v3L0Hlvi077712@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Apr 2017 00:17:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317236 - head/sys/fs/nfsserver X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 00:17:48 -0000 Author: rmacklem Date: Fri Apr 21 00:17:47 2017 New Revision: 317236 URL: https://svnweb.freebsd.org/changeset/base/317236 Log: Fix the setting of atime for Linux client NFSv4 mounts. The FreeBSD NFSv4 server did not set the attribute bit for TimeAccess in the reply to an Open with exclusive_create, as required by the RFCs. (This is required since the FreeBSD NFS server stores the create_verifier in the va_atime attribute.) As such, the Linux NFSv4 client did not set the TimeAccess (atime) in the Setattr done in an RPC after the one with the Open/exclusive_create. This patch fixes the server to set the TimeAccess bit in the reply. I believe that storing the create_verifier in an extended attribute for file systems that support extended attributes might be a good idea, but I will wait for a discussion of this on the freebsd-fs@ email list before considering committing a patch to do this. Reported by: jim@ks.uiuc.edu Suggested by: dfr MFC after: 2 weeks Modified: head/sys/fs/nfsserver/nfs_nfsdport.c Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Fri Apr 21 00:12:47 2017 (r317235) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Fri Apr 21 00:17:47 2017 (r317236) @@ -1436,7 +1436,9 @@ nfsvno_open(struct nfsrv_descript *nd, s vput(ndp->ni_vp); ndp->ni_vp = NULL; nd->nd_repstat = NFSERR_NOTSUPP; - } + } else + NFSSETBIT_ATTRBIT(attrbitp, + NFSATTRBIT_TIMEACCESS); } else { nfsrv_fixattr(nd, ndp->ni_vp, nvap, aclp, p, attrbitp, exp); From owner-svn-src-all@freebsd.org Fri Apr 21 00:17:55 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1DA3D4556D; Fri, 21 Apr 2017 00:17:55 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A3E8114F2; Fri, 21 Apr 2017 00:17:55 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L0HsF0077762; Fri, 21 Apr 2017 00:17:54 GMT (envelope-from jpaetzel@FreeBSD.org) Received: (from jpaetzel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L0HsdH077760; Fri, 21 Apr 2017 00:17:54 GMT (envelope-from jpaetzel@FreeBSD.org) Message-Id: <201704210017.v3L0HsdH077760@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jpaetzel set sender to jpaetzel@FreeBSD.org using -f From: Josh Paetzel Date: Fri, 21 Apr 2017 00:17:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317237 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 00:17:56 -0000 Author: jpaetzel Date: Fri Apr 21 00:17:54 2017 New Revision: 317237 URL: https://svnweb.freebsd.org/changeset/base/317237 Log: MFV 316870 7448 ZFS doesn't notice when disk vdevs have no write cache illumos/illumos-gate@295438ba3230419314faaa889a2616f561658bd5 https://github.com/illumos/illumos-gate/commit/295438ba3230419314faaa889a2616f561658bd5 https://www.illumos.org/issues/7448 I built a SmartOS image with all the NVMe commits including 7372 (support NVMe volatile write cache) and repeated my dd testing: > #!/bin/bash > for i in `seq 1 1000`; do > dd if=/dev/zero of=file00 bs=1M count=102400 oflag=sync & > dd if=/dev/zero of=file01 bs=1M count=102400 oflag=sync & > wait > rm file00 file01 > done > Previously each dd command took ~145 seconds to finish, now it takes ~400 seconds. Eventually I figured out it is 7372 that causes unnecessary nvme_bd_sync() executions which wasted CPU cycles. If a NVMe device doesn't support a write cache, the nvme_bd_sync function will return ENOTSUP to indicate this to upper layers. It seems this returned value is ignored by ZFS, and as such this bug is not really specific to NVMe. In vdev_disk_io_start() ZFS sends the flush to the disk driver (blkdev) with a callback to vdev_disk_ioctl_done(). As nvme filled in the bd_sync_cache function pointer, blkdev will not return ENOTSUP, as the nvme driver in general does support cache flush. Instead it will issue an asynchronous flush to nvme and immediately return 0, and hence ZFS will not set vdev_nowritecache here. The nvme driver will at some point process the cache flush command, and if there is no write cache on the device it will return ENOTSUP, which will be delivered to the vdev_disk_ioctl_done() callback. This function will not check the error code and not set nowritecache. The right place to check the error code from the cache flush is in zio_vdev_io_assess(). This would catch both cases, synchronous and asynchronous cache flushes. This would also be independent of the implementation detail that some drivers can return ENOTSUP immediately. Reviewed by: Dan Fields Reviewed by: Alek Pinchuk Reviewed by: George Wilson Approved by: Dan McDonald Author: Hans Rosenfeld Obtained from: Illumos Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c Fri Apr 21 00:17:47 2017 (r317236) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c Fri Apr 21 00:17:54 2017 (r317237) @@ -21,7 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012, 2015 by Delphix. All rights reserved. - * Copyright 2013 Nexenta Systems, Inc. All rights reserved. + * Copyright 2016 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2013 Joyent, Inc. All rights reserved. */ @@ -743,16 +743,6 @@ vdev_disk_io_start(zio_t *zio) return; } - if (error == ENOTSUP || error == ENOTTY) { - /* - * If we get ENOTSUP or ENOTTY, we know that - * no future attempts will ever succeed. - * In this case we set a persistent bit so - * that we don't bother with the ioctl in the - * future. - */ - vd->vdev_nowritecache = B_TRUE; - } zio->io_error = error; break; Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Fri Apr 21 00:17:47 2017 (r317236) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Fri Apr 21 00:17:54 2017 (r317237) @@ -3302,6 +3302,16 @@ zio_vdev_io_assess(zio_t *zio) vd->vdev_cant_write = B_TRUE; } + /* + * If a cache flush returns ENOTSUP or ENOTTY, we know that no future + * attempts will ever succeed. In this case we set a persistent bit so + * that we don't bother with it in the future. + */ + if ((zio->io_error == ENOTSUP || zio->io_error == ENOTTY) && + zio->io_type == ZIO_TYPE_IOCTL && + zio->io_cmd == DKIOCFLUSHWRITECACHE && vd != NULL) + vd->vdev_nowritecache = B_TRUE; + if (zio->io_error) zio->io_pipeline = ZIO_INTERLOCK_PIPELINE; From owner-svn-src-all@freebsd.org Fri Apr 21 00:25:00 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95775D457E7; Fri, 21 Apr 2017 00:25:00 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 409261AD4; Fri, 21 Apr 2017 00:25:00 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L0OxRW081861; Fri, 21 Apr 2017 00:24:59 GMT (envelope-from jpaetzel@FreeBSD.org) Received: (from jpaetzel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L0OxAI081860; Fri, 21 Apr 2017 00:24:59 GMT (envelope-from jpaetzel@FreeBSD.org) Message-Id: <201704210024.v3L0OxAI081860@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jpaetzel set sender to jpaetzel@FreeBSD.org using -f From: Josh Paetzel Date: Fri, 21 Apr 2017 00:24:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317238 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 00:25:00 -0000 Author: jpaetzel Date: Fri Apr 21 00:24:59 2017 New Revision: 317238 URL: https://svnweb.freebsd.org/changeset/base/317238 Log: MFV 316871 7490 real checksum errors are silenced when zinject is on illumos/illumos-gate@6cedfc397d92d64e442f0aae4445ac507beaf58f https://github.com/illumos/illumos-gate/commit/6cedfc397d92d64e442f0aae4445ac507beaf58f https://www.illumos.org/issues/7490 When zinject is on, error codes from zfs_checksum_error() can be overwritten due to an incorrect and overly-complex if condition. Reviewed by: George Wilson Reviewed by: Paul Dagnelie Reviewed by: Dan Kimmel Reviewed by: Matthew Ahrens Approved by: Robert Mustacchi Author: Pavel Zakharov Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c Directory Properties: head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c Fri Apr 21 00:17:54 2017 (r317237) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c Fri Apr 21 00:24:59 2017 (r317238) @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2013, 2015 by Delphix. All rights reserved. + * Copyright (c) 2013, 2016 by Delphix. All rights reserved. * Copyright (c) 2013, Joyent, Inc. All rights reserved. * Copyright 2013 Saso Kiselkov. All rights reserved. */ @@ -392,12 +392,13 @@ zio_checksum_error(zio_t *zio, zio_bad_c error = zio_checksum_error_impl(spa, bp, checksum, data, size, offset, info); - if (error != 0 && zio_injection_enabled && !zio->io_error && - (error = zio_handle_fault_injection(zio, ECKSUM)) != 0) { - info->zbc_injected = 1; - return (error); + if (zio_injection_enabled && error == 0 && zio->io_error == 0) { + error = zio_handle_fault_injection(zio, ECKSUM); + if (error != 0) + info->zbc_injected = 1; } + return (error); } From owner-svn-src-all@freebsd.org Fri Apr 21 00:45:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20BB3D46126; Fri, 21 Apr 2017 00:45:47 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B7C797D9; Fri, 21 Apr 2017 00:45:46 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L0jkdp089900; Fri, 21 Apr 2017 00:45:46 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L0jiQk089883; Fri, 21 Apr 2017 00:45:44 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201704210045.v3L0jiQk089883@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Fri, 21 Apr 2017 00:45:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317239 - in head: contrib/bmake contrib/bmake/mk usr.bin/bmake X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 00:45:47 -0000 Author: sjg Date: Fri Apr 21 00:45:44 2017 New Revision: 317239 URL: https://svnweb.freebsd.org/changeset/base/317239 Log: Merge bmake-20170420 Modified: head/contrib/bmake/ChangeLog head/contrib/bmake/Makefile head/contrib/bmake/arch.c head/contrib/bmake/cond.c head/contrib/bmake/dir.c head/contrib/bmake/for.c head/contrib/bmake/job.c head/contrib/bmake/main.c head/contrib/bmake/make_malloc.c head/contrib/bmake/mk/ChangeLog head/contrib/bmake/mk/auto.obj.mk head/contrib/bmake/mk/install-mk head/contrib/bmake/parse.c head/contrib/bmake/suff.c head/contrib/bmake/targ.c head/contrib/bmake/var.c head/usr.bin/bmake/Makefile Directory Properties: head/contrib/bmake/ (props changed) Modified: head/contrib/bmake/ChangeLog ============================================================================== --- head/contrib/bmake/ChangeLog Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/ChangeLog Fri Apr 21 00:45:44 2017 (r317239) @@ -1,3 +1,29 @@ +2017-04-20 Simon J. Gerraty + + * Makefile (_MAKE_VERSION): 20170420 + Merge with NetBSD make, pick up + o main.c: only use -C arg "as is" if it contains no + relative component. + +2017-04-18 Simon J. Gerraty + + * Makefile (_MAKE_VERSION): 20170418 + Merge with NetBSD make, pick up + o main.c: fix Main_SetObjdir() for relative paths (eg obj). + +2017-04-17 Simon J. Gerraty + + * Makefile (_MAKE_VERSION): 20170417 + Merge with NetBSD make, pick up + o fixes a number of coverity complaints + - check return value of fseek, fcntl + - plug memory leak in Dir_FindFile, Var_LoopExpand, + JobPrintCommand, ParseTraditionalInclude + - use bmake_malloc() where NULL is not tollerated + - use MAKE_ATTR_UNUSED rather that kludges like + return(unused ? 0 : 0) + - use purge_cached_realpaths() rather than abuse cached_realpath() + 2017-04-13 Simon J. Gerraty * Makefile (_MAKE_VERSION): 20170413 Modified: head/contrib/bmake/Makefile ============================================================================== --- head/contrib/bmake/Makefile Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/Makefile Fri Apr 21 00:45:44 2017 (r317239) @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.85 2017/04/13 16:29:40 sjg Exp $ +# $Id: Makefile,v 1.88 2017/04/20 14:51:14 sjg Exp $ # Base version on src date -_MAKE_VERSION= 20170413 +_MAKE_VERSION= 20170420 PROG= bmake Modified: head/contrib/bmake/arch.c ============================================================================== --- head/contrib/bmake/arch.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/arch.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: arch.c,v 1.69 2016/04/06 09:57:00 gson Exp $ */ +/* $NetBSD: arch.c,v 1.70 2017/04/16 20:49:09 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: arch.c,v 1.69 2016/04/06 09:57:00 gson Exp $"; +static char rcsid[] = "$NetBSD: arch.c,v 1.70 2017/04/16 20:49:09 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)arch.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: arch.c,v 1.69 2016/04/06 09:57:00 gson Exp $"); +__RCSID("$NetBSD: arch.c,v 1.70 2017/04/16 20:49:09 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -726,7 +726,8 @@ ArchStatMember(char *archive, char *memb if (fread(memName, elen, 1, arch) != 1) goto badarch; memName[elen] = '\0'; - fseek(arch, -elen, SEEK_CUR); + if (fseek(arch, -elen, SEEK_CUR) != 0) + goto badarch; if (DEBUG(ARCH) || DEBUG(MAKE)) { fprintf(debug_file, "ArchStat: Extended format entry for %s\n", memName); } @@ -737,7 +738,8 @@ ArchStatMember(char *archive, char *memb Hash_SetValue(he, bmake_malloc(sizeof(struct ar_hdr))); memcpy(Hash_GetValue(he), &arh, sizeof(struct ar_hdr)); } - fseek(arch, (size + 1) & ~1, SEEK_CUR); + if (fseek(arch, (size + 1) & ~1, SEEK_CUR) != 0) + goto badarch; } fclose(arch); @@ -956,7 +958,10 @@ ArchFindMember(char *archive, char *memb * the file at the actual member, rather than its header, but * not here... */ - fseek(arch, -sizeof(struct ar_hdr), SEEK_CUR); + if (fseek(arch, -sizeof(struct ar_hdr), SEEK_CUR) != 0) { + fclose(arch); + return NULL; + } return (arch); } } else @@ -986,10 +991,17 @@ ArchFindMember(char *archive, char *memb } if (strncmp(ename, member, len) == 0) { /* Found as extended name */ - fseek(arch, -sizeof(struct ar_hdr) - elen, SEEK_CUR); + if (fseek(arch, -sizeof(struct ar_hdr) - elen, + SEEK_CUR) != 0) { + fclose(arch); + return NULL; + } return (arch); } - fseek(arch, -elen, SEEK_CUR); + if (fseek(arch, -elen, SEEK_CUR) != 0) { + fclose(arch); + return NULL; + } goto skip; } else #endif @@ -1002,9 +1014,12 @@ skip: * extract the size of the file from the 'size' field of the * header and round it up during the seek. */ - arhPtr->ar_size[sizeof(arhPtr->AR_SIZE)-1] = '\0'; + arhPtr->AR_SIZE[sizeof(arhPtr->AR_SIZE)-1] = '\0'; size = (int)strtol(arhPtr->AR_SIZE, NULL, 10); - fseek(arch, (size + 1) & ~1, SEEK_CUR); + if (fseek(arch, (size + 1) & ~1, SEEK_CUR) != 0) { + fclose(arch); + return NULL; + } } } Modified: head/contrib/bmake/cond.c ============================================================================== --- head/contrib/bmake/cond.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/cond.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: cond.c,v 1.74 2016/02/18 18:29:14 christos Exp $ */ +/* $NetBSD: cond.c,v 1.75 2017/04/16 20:59:04 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: cond.c,v 1.74 2016/02/18 18:29:14 christos Exp $"; +static char rcsid[] = "$NetBSD: cond.c,v 1.75 2017/04/16 20:59:04 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)cond.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: cond.c,v 1.74 2016/02/18 18:29:14 christos Exp $"); +__RCSID("$NetBSD: cond.c,v 1.75 2017/04/16 20:59:04 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -91,6 +91,7 @@ __RCSID("$NetBSD: cond.c,v 1.74 2016/02/ * */ +#include #include #include /* For strtoul() error checking */ @@ -1174,8 +1175,9 @@ Cond_EvalExpression(const struct If *inf break; dflt_info = info; } + assert(info != NULL); - if_info = info != NULL ? info : ifs + 4; + if_info = info; condExpr = line; condPushBack = TOK_NONE; Modified: head/contrib/bmake/dir.c ============================================================================== --- head/contrib/bmake/dir.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/dir.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: dir.c,v 1.69 2017/01/31 06:54:23 sjg Exp $ */ +/* $NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: dir.c,v 1.69 2017/01/31 06:54:23 sjg Exp $"; +static char rcsid[] = "$NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)dir.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: dir.c,v 1.69 2017/01/31 06:54:23 sjg Exp $"); +__RCSID("$NetBSD: dir.c,v 1.71 2017/04/16 21:14:47 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -803,11 +803,11 @@ DirExpandInt(const char *word, Lst path, *----------------------------------------------------------------------- */ static int -DirPrintWord(void *word, void *dummy) +DirPrintWord(void *word, void *dummy MAKE_ATTR_UNUSED) { fprintf(debug_file, "%s ", (char *)word); - return(dummy ? 0 : 0); + return 0; } /*- @@ -1315,8 +1315,14 @@ Dir_FindFile(const char *name, Lst path) fprintf(debug_file, " Trying exact path matches...\n"); } - if (!hasLastDot && cur && (file = DirLookupAbs(cur, name, cp)) != NULL) - return *file?file:NULL; + if (!hasLastDot && cur && ((file = DirLookupAbs(cur, name, cp)) + != NULL)) { + if (file[0] == '\0') { + free(file); + return NULL; + } + return file; + } (void)Lst_Open(path); while ((ln = Lst_Next(path)) != NULL) { @@ -1325,13 +1331,23 @@ Dir_FindFile(const char *name, Lst path) continue; if ((file = DirLookupAbs(p, name, cp)) != NULL) { Lst_Close(path); - return *file?file:NULL; + if (file[0] == '\0') { + free(file); + return NULL; + } + return file; } } Lst_Close(path); - if (hasLastDot && cur && (file = DirLookupAbs(cur, name, cp)) != NULL) - return *file?file:NULL; + if (hasLastDot && cur && ((file = DirLookupAbs(cur, name, cp)) + != NULL)) { + if (file[0] == '\0') { + free(file); + return NULL; + } + return file; + } } /* @@ -1851,10 +1867,10 @@ Dir_PrintDirectories(void) } static int -DirPrintDir(void *p, void *dummy) +DirPrintDir(void *p, void *dummy MAKE_ATTR_UNUSED) { fprintf(debug_file, "%s ", ((Path *)p)->name); - return (dummy ? 0 : 0); + return 0; } void Modified: head/contrib/bmake/for.c ============================================================================== --- head/contrib/bmake/for.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/for.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: for.c,v 1.52 2016/02/18 18:29:14 christos Exp $ */ +/* $NetBSD: for.c,v 1.53 2017/04/16 21:04:44 riastradh Exp $ */ /* * Copyright (c) 1992, The Regents of the University of California. @@ -30,14 +30,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: for.c,v 1.52 2016/02/18 18:29:14 christos Exp $"; +static char rcsid[] = "$NetBSD: for.c,v 1.53 2017/04/16 21:04:44 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)for.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: for.c,v 1.52 2016/02/18 18:29:14 christos Exp $"); +__RCSID("$NetBSD: for.c,v 1.53 2017/04/16 21:04:44 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -427,7 +427,7 @@ For_Iterate(void *v_arg, size_t *ret_len for (cp = cmd_cp; (cp = strchr(cp, '$')) != NULL;) { char ech; ch = *++cp; - if ((ch == '(' && (ech = ')')) || (ch == '{' && (ech = '}'))) { + if ((ch == '(' && (ech = ')', 1)) || (ch == '{' && (ech = '}', 1))) { cp++; /* Check variable name against the .for loop variables */ STRLIST_FOREACH(var, &arg->vars, i) { Modified: head/contrib/bmake/job.c ============================================================================== --- head/contrib/bmake/job.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/job.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: job.c,v 1.188 2016/08/26 23:28:39 dholland Exp $ */ +/* $NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: job.c,v 1.188 2016/08/26 23:28:39 dholland Exp $"; +static char rcsid[] = "$NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)job.c 8.2 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: job.c,v 1.188 2016/08/26 23:28:39 dholland Exp $"); +__RCSID("$NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -443,7 +443,7 @@ static void JobSigUnlock(sigset_t *omask static void JobCreatePipe(Job *job, int minfd) { - int i, fd; + int i, fd, flags; if (pipe(job->jobPipe) == -1) Punt("Cannot create pipe: %s", strerror(errno)); @@ -458,8 +458,10 @@ JobCreatePipe(Job *job, int minfd) } /* Set close-on-exec flag for both */ - (void)fcntl(job->jobPipe[0], F_SETFD, FD_CLOEXEC); - (void)fcntl(job->jobPipe[1], F_SETFD, FD_CLOEXEC); + if (fcntl(job->jobPipe[0], F_SETFD, FD_CLOEXEC) == -1) + Punt("Cannot set close-on-exec: %s", strerror(errno)); + if (fcntl(job->jobPipe[1], F_SETFD, FD_CLOEXEC) == -1) + Punt("Cannot set close-on-exec: %s", strerror(errno)); /* * We mark the input side of the pipe non-blocking; we poll(2) the @@ -467,8 +469,12 @@ JobCreatePipe(Job *job, int minfd) * race for the token when a new one becomes available, so the read * from the pipe should not block. */ - fcntl(job->jobPipe[0], F_SETFL, - fcntl(job->jobPipe[0], F_GETFL, 0) | O_NONBLOCK); + flags = fcntl(job->jobPipe[0], F_GETFL, 0); + if (flags == -1) + Punt("Cannot get flags: %s", strerror(errno)); + flags |= O_NONBLOCK; + if (fcntl(job->jobPipe[0], F_SETFL, flags) == -1) + Punt("Cannot set flags: %s", strerror(errno)); } /*- @@ -770,6 +776,7 @@ JobPrintCommand(void *cmdp, void *jobp) * but this one needs to be - use compat mode just for it. */ CompatRunCommand(cmdp, job->node); + free(cmdStart); return 0; } break; @@ -1398,16 +1405,28 @@ JobExec(Job *job, char **argv) execError("dup2", "job->cmdFILE"); _exit(1); } - (void)fcntl(0, F_SETFD, 0); - (void)lseek(0, (off_t)0, SEEK_SET); + if (fcntl(0, F_SETFD, 0) == -1) { + execError("fcntl clear close-on-exec", "stdin"); + _exit(1); + } + if (lseek(0, (off_t)0, SEEK_SET) == -1) { + execError("lseek to 0", "stdin"); + _exit(1); + } if (Always_pass_job_queue || (job->node->type & (OP_MAKE | OP_SUBMAKE))) { /* * Pass job token pipe to submakes. */ - fcntl(tokenWaitJob.inPipe, F_SETFD, 0); - fcntl(tokenWaitJob.outPipe, F_SETFD, 0); + if (fcntl(tokenWaitJob.inPipe, F_SETFD, 0) == -1) { + execError("clear close-on-exec", "tokenWaitJob.inPipe"); + _exit(1); + } + if (fcntl(tokenWaitJob.outPipe, F_SETFD, 0) == -1) { + execError("clear close-on-exec", "tokenWaitJob.outPipe"); + _exit(1); + } } /* @@ -1424,7 +1443,10 @@ JobExec(Job *job, char **argv) * it before routing the shell's error output to the same place as * its standard output. */ - (void)fcntl(1, F_SETFD, 0); + if (fcntl(1, F_SETFD, 0) == -1) { + execError("clear close-on-exec", "stdout"); + _exit(1); + } if (dup2(1, 2) == -1) { execError("dup2", "1, 2"); _exit(1); Modified: head/contrib/bmake/main.c ============================================================================== --- head/contrib/bmake/main.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/main.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.260 2017/04/13 13:55:23 christos Exp $ */ +/* $NetBSD: main.c,v 1.264 2017/04/20 03:57:27 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.260 2017/04/13 13:55:23 christos Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.264 2017/04/20 03:57:27 sjg Exp $"; #else #include #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19 #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.260 2017/04/13 13:55:23 christos Exp $"); +__RCSID("$NetBSD: main.c,v 1.264 2017/04/20 03:57:27 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -187,6 +187,7 @@ static const char * tracefile; static void MainParseArgs(int, char **); static int ReadMakefile(const void *, const void *); static void usage(void) MAKE_ATTR_DEAD; +static void purge_cached_realpaths(void); static Boolean ignorePWD; /* if we use -C, PWD is meaningless */ static char objdir[MAXPATHLEN + 1]; /* where we chdir'ed to */ @@ -336,7 +337,7 @@ parse_debug_options(const char *argvalue goto debug_setbuf; } len = strlen(modules); - fname = malloc(len + 20); + fname = bmake_malloc(len + 20); memcpy(fname, modules, len + 1); /* Let the filename be modified by the pid */ if (strcmp(fname + len - 3, ".%d") == 0) @@ -367,6 +368,32 @@ debug_setbuf: } } +/* + * does path contain any relative components + */ +static int +is_relpath(const char *path) +{ + const char *cp; + + if (path[0] != '/') + return TRUE; + cp = path; + do { + cp = strstr(cp, "/."); + if (!cp) + break; + cp += 2; + if (cp[0] == '/' || cp[0] == '\0') + return TRUE; + else if (cp[0] == '.') { + if (cp[1] == '/' || cp[1] == '\0') + return TRUE; + } + } while (cp); + return FALSE; +} + /*- * MainParseArgs -- * Parse a given argument vector. Called from main() and from @@ -458,7 +485,7 @@ rearg: (void)fprintf(stderr, "%s: %s.\n", progname, strerror(errno)); exit(2); } - if (argvalue[0] == '/' && + if (!is_relpath(argvalue) && stat(argvalue, &sa) != -1 && stat(curdir, &sb) != -1 && sa.st_ino == sb.st_ino && @@ -732,8 +759,10 @@ Main_SetObjdir(const char *fmt, ...) va_end(ap); if (path[0] != '/') { - snprintf(buf, MAXPATHLEN, "%s/%s", curdir, path); - path = buf; + char buf2[MAXPATHLEN + 1]; + + snprintf(buf2, MAXPATHLEN, "%s/%s", curdir, path); + path = buf2; } /* look for the directory and try to chdir there */ @@ -746,7 +775,7 @@ Main_SetObjdir(const char *fmt, ...) Var_Set(".OBJDIR", objdir, VAR_GLOBAL, 0); setenv("PWD", objdir, 1); Dir_InitDot(); - cached_realpath(".OBJDIR", NULL); /* purge */ + purge_cached_realpaths(); rc = TRUE; if (enterFlag && strcmp(objdir, curdir) != 0) enterFlagObj = TRUE; @@ -1907,42 +1936,56 @@ usage(void) exit(2); } - /* * realpath(3) can get expensive, cache results... */ +static GNode *cached_realpaths = NULL; + +static GNode * +get_cached_realpaths(void) +{ + + if (!cached_realpaths) { + cached_realpaths = Targ_NewGN("Realpath"); +#ifndef DEBUG_REALPATH_CACHE + cached_realpaths->flags = INTERNAL; +#endif + } + + return cached_realpaths; +} + +/* purge any relative paths */ +static void +purge_cached_realpaths(void) +{ + GNode *cache = get_cached_realpaths(); + Hash_Entry *he, *nhe; + Hash_Search hs; + + he = Hash_EnumFirst(&cache->context, &hs); + while (he) { + nhe = Hash_EnumNext(&hs); + if (he->name[0] != '/') { + if (DEBUG(DIR)) + fprintf(stderr, "cached_realpath: purging %s\n", he->name); + Hash_DeleteEntry(&cache->context, he); + } + he = nhe; + } +} + char * cached_realpath(const char *pathname, char *resolved) { - static GNode *cache; + GNode *cache; char *rp, *cp; if (!pathname || !pathname[0]) return NULL; - if (!cache) { - cache = Targ_NewGN("Realpath"); -#ifndef DEBUG_REALPATH_CACHE - cache->flags = INTERNAL; -#endif - } - if (resolved == NULL && strcmp(pathname, ".OBJDIR") == 0) { - /* purge any relative paths */ - Hash_Entry *he, *nhe; - Hash_Search hs; - - he = Hash_EnumFirst(&cache->context, &hs); - while (he) { - nhe = Hash_EnumNext(&hs); - if (he->name[0] != '/') { - if (DEBUG(DIR)) - fprintf(stderr, "cached_realpath: purging %s\n", he->name); - Hash_DeleteEntry(&cache->context, he); - } - he = nhe; - } - return NULL; - } + cache = get_cached_realpaths(); + if ((rp = Var_Value(pathname, cache, &cp)) != NULL) { /* a hit */ strlcpy(resolved, rp, MAXPATHLEN); Modified: head/contrib/bmake/make_malloc.c ============================================================================== --- head/contrib/bmake/make_malloc.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/make_malloc.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: make_malloc.c,v 1.10 2012/06/20 17:46:28 sjg Exp $ */ +/* $NetBSD: make_malloc.c,v 1.11 2017/04/16 20:20:24 dholland Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -28,7 +28,7 @@ #ifdef MAKE_NATIVE #include -__RCSID("$NetBSD: make_malloc.c,v 1.10 2012/06/20 17:46:28 sjg Exp $"); +__RCSID("$NetBSD: make_malloc.c,v 1.11 2017/04/16 20:20:24 dholland Exp $"); #endif #include @@ -39,13 +39,13 @@ __RCSID("$NetBSD: make_malloc.c,v 1.10 2 #include "make.h" #ifndef USE_EMALLOC -static void enomem(void) MAKE_ATTR_DEAD; +static MAKE_ATTR_DEAD void enomem(void); /* * enomem -- * die when out of memory. */ -static void +static MAKE_ATTR_DEAD void enomem(void) { (void)fprintf(stderr, "%s: %s.\n", progname, strerror(ENOMEM)); Modified: head/contrib/bmake/mk/ChangeLog ============================================================================== --- head/contrib/bmake/mk/ChangeLog Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/mk/ChangeLog Fri Apr 21 00:45:44 2017 (r317239) @@ -1,3 +1,10 @@ +2017-04-18 Simon J. Gerraty + + * install-mk (MK_VERSION): 20170418 + + * auto.obj.mk: if using MAKEOBJDIRPREFIX check if it is a + prefix match for .CURDIR - in which case .CURDIR *is* __objdir. + 2017-04-01 Simon J. Gerraty * install-mk (MK_VERSION): 20170401 Modified: head/contrib/bmake/mk/auto.obj.mk ============================================================================== --- head/contrib/bmake/mk/auto.obj.mk Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/mk/auto.obj.mk Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -# $Id: auto.obj.mk,v 1.13 2017/03/24 20:53:22 sjg Exp $ +# $Id: auto.obj.mk,v 1.14 2017/04/18 23:53:18 sjg Exp $ # # @(#) Copyright (c) 2004, Simon J. Gerraty # @@ -41,6 +41,10 @@ MKOBJDIRS= auto # Use __objdir here so it is easier to tweak without impacting # the logic. .if !empty(MAKEOBJDIRPREFIX) +.if ${.CURDIR:M${MAKEOBJDIRPREFIX}/*} != "" +# we are already in obj tree! +__objdir?= ${.CURDIR} +.endif __objdir?= ${MAKEOBJDIRPREFIX}${.CURDIR} .endif __objdir?= ${MAKEOBJDIR:Uobj} Modified: head/contrib/bmake/mk/install-mk ============================================================================== --- head/contrib/bmake/mk/install-mk Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/mk/install-mk Fri Apr 21 00:45:44 2017 (r317239) @@ -55,7 +55,7 @@ # Simon J. Gerraty # RCSid: -# $Id: install-mk,v 1.140 2017/04/03 21:04:09 sjg Exp $ +# $Id: install-mk,v 1.141 2017/04/18 23:53:18 sjg Exp $ # # @(#) Copyright (c) 1994 Simon J. Gerraty # @@ -70,7 +70,7 @@ # sjg@crufty.net # -MK_VERSION=20170401 +MK_VERSION=20170418 OWNER= GROUP= MODE=444 Modified: head/contrib/bmake/parse.c ============================================================================== --- head/contrib/bmake/parse.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/parse.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: parse.c,v 1.218 2017/03/01 16:39:49 sjg Exp $ */ +/* $NetBSD: parse.c,v 1.225 2017/04/17 13:29:07 maya Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: parse.c,v 1.218 2017/03/01 16:39:49 sjg Exp $"; +static char rcsid[] = "$NetBSD: parse.c,v 1.225 2017/04/17 13:29:07 maya Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)parse.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: parse.c,v 1.218 2017/03/01 16:39:49 sjg Exp $"); +__RCSID("$NetBSD: parse.c,v 1.225 2017/04/17 13:29:07 maya Exp $"); #endif #endif /* not lint */ #endif @@ -130,6 +130,7 @@ __RCSID("$NetBSD: parse.c,v 1.218 2017/0 #include #include #include +#include #include "make.h" #include "hash.h" @@ -539,7 +540,7 @@ loadfile(const char *path, int fd) if (lf->buf != MAP_FAILED) { /* succeeded */ if (lf->len == lf->maplen && lf->buf[lf->len - 1] != '\n') { - char *b = malloc(lf->len + 1); + char *b = bmake_malloc(lf->len + 1); b[lf->len] = '\n'; memcpy(b, lf->buf, lf->len++); munmap(lf->buf, lf->maplen); @@ -560,9 +561,15 @@ loadfile(const char *path, int fd) while (1) { assert(bufpos <= lf->len); if (bufpos == lf->len) { + if (lf->len > SIZE_MAX/2) { + errno = EFBIG; + Error("%s: file too large", path); + exit(1); + } lf->len *= 2; lf->buf = bmake_realloc(lf->buf, lf->len); } + assert(bufpos < lf->len); result = read(fd, lf->buf + bufpos, lf->len - bufpos); if (result < 0) { Error("%s: read error: %s", path, strerror(errno)); @@ -1099,15 +1106,15 @@ ParseDoSrc(int tOp, const char *src) *----------------------------------------------------------------------- */ static int -ParseFindMain(void *gnp, void *dummy) +ParseFindMain(void *gnp, void *dummy MAKE_ATTR_UNUSED) { GNode *gn = (GNode *)gnp; if ((gn->type & OP_NOTARGET) == 0) { mainNode = gn; Targ_SetMain(gn); - return (dummy ? 1 : 1); + return 1; } else { - return (dummy ? 0 : 0); + return 0; } } @@ -1145,10 +1152,10 @@ ParseAddDir(void *path, void *name) *----------------------------------------------------------------------- */ static int -ParseClearPath(void *path, void *dummy) +ParseClearPath(void *path, void *dummy MAKE_ATTR_UNUSED) { Dir_ClearPath((Lst) path); - return(dummy ? 0 : 0); + return 0; } /*- @@ -1685,10 +1692,12 @@ ParseDoDependency(char *line) } if (paths) { Lst_Destroy(paths, NULL); + paths = NULL; } if (specType == ExPath) Dir_SetPATH(); } else { + assert(paths == NULL); while (*line) { /* * The targets take real sources, so we must beware of archive @@ -1747,6 +1756,7 @@ ParseDoDependency(char *line) } out: + assert(paths == NULL); if (curTargs) Lst_Destroy(curTargs, NULL); } @@ -2550,7 +2560,7 @@ ParseTraditionalInclude(char *line) if (*file == '\0') { Parse_Error(PARSE_FATAL, "Filename missing from \"include\""); - return; + goto out; } for (file = all_files; !done; file = cp + 1) { @@ -2565,6 +2575,7 @@ ParseTraditionalInclude(char *line) Parse_include_file(file, FALSE, FALSE, silent); } +out: free(all_files); } #endif @@ -2615,6 +2626,7 @@ ParseGmakeExport(char *line) */ value = Var_Subst(NULL, value, VAR_CMD, VARF_WANTRES); setenv(variable, value, 1); + free(value); } #endif Modified: head/contrib/bmake/suff.c ============================================================================== --- head/contrib/bmake/suff.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/suff.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $ */ +/* $NetBSD: suff.c,v 1.86 2017/04/16 20:38:18 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $"; +static char rcsid[] = "$NetBSD: suff.c,v 1.86 2017/04/16 20:38:18 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)suff.c 8.4 (Berkeley) 3/21/94"; #else -__RCSID("$NetBSD: suff.c,v 1.84 2016/06/30 05:34:04 dholland Exp $"); +__RCSID("$NetBSD: suff.c,v 1.86 2017/04/16 20:38:18 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -135,6 +135,7 @@ __RCSID("$NetBSD: suff.c,v 1.84 2016/06/ * order to find the node. */ +#include #include #include "make.h" #include "hash.h" @@ -762,12 +763,10 @@ Suff_AddTransform(char *line) *----------------------------------------------------------------------- */ int -Suff_EndTransform(void *gnp, void *dummy) +Suff_EndTransform(void *gnp, void *dummy MAKE_ATTR_UNUSED) { GNode *gn = (GNode *)gnp; - (void)dummy; - if ((gn->type & OP_DOUBLEDEP) && !Lst_IsEmpty (gn->cohorts)) gn = (GNode *)Lst_Datum(Lst_Last(gn->cohorts)); if ((gn->type & OP_TRANSFORM) && Lst_IsEmpty(gn->commands) && @@ -1908,6 +1907,13 @@ SuffFindArchiveDeps(GNode *gn, Lst slst) eoarch = strchr(gn->name, '('); eoname = strchr(eoarch, ')'); + /* + * Caller guarantees the format `libname(member)', via + * Arch_ParseArchive. + */ + assert(eoarch != NULL); + assert(eoname != NULL); + *eoname = '\0'; /* Nuke parentheses during suffix search */ *eoarch = '\0'; /* So a suffix can be found */ @@ -2597,23 +2603,20 @@ Suff_End(void) /********************* DEBUGGING FUNCTIONS **********************/ -static int SuffPrintName(void *s, void *dummy) +static int SuffPrintName(void *s, void *dummy MAKE_ATTR_UNUSED) { - (void)dummy; fprintf(debug_file, "%s ", ((Suff *)s)->name); return 0; } static int -SuffPrintSuff(void *sp, void *dummy) +SuffPrintSuff(void *sp, void *dummy MAKE_ATTR_UNUSED) { Suff *s = (Suff *)sp; int flags; int flag; - (void)dummy; - fprintf(debug_file, "# `%s' [%d] ", s->name, s->refCount); flags = s->flags; @@ -2650,12 +2653,10 @@ SuffPrintSuff(void *sp, void *dummy) } static int -SuffPrintTrans(void *tp, void *dummy) +SuffPrintTrans(void *tp, void *dummy MAKE_ATTR_UNUSED) { GNode *t = (GNode *)tp; - (void)dummy; - fprintf(debug_file, "%-16s: ", t->name); Targ_PrintType(t->type); fputc('\n', debug_file); Modified: head/contrib/bmake/targ.c ============================================================================== --- head/contrib/bmake/targ.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/targ.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: targ.c,v 1.61 2016/01/17 17:45:21 christos Exp $ */ +/* $NetBSD: targ.c,v 1.62 2017/04/16 19:53:58 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: targ.c,v 1.61 2016/01/17 17:45:21 christos Exp $"; +static char rcsid[] = "$NetBSD: targ.c,v 1.62 2017/04/16 19:53:58 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)targ.c 8.2 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: targ.c,v 1.61 2016/01/17 17:45:21 christos Exp $"); +__RCSID("$NetBSD: targ.c,v 1.62 2017/04/16 19:53:58 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -521,10 +521,10 @@ TargPrintName(void *gnp, void *pflags MA int -Targ_PrintCmd(void *cmd, void *dummy) +Targ_PrintCmd(void *cmd, void *dummy MAKE_ATTR_UNUSED) { fprintf(debug_file, "\t%s\n", (char *)cmd); - return (dummy ? 0 : 0); + return 0; } /*- Modified: head/contrib/bmake/var.c ============================================================================== --- head/contrib/bmake/var.c Fri Apr 21 00:24:59 2017 (r317238) +++ head/contrib/bmake/var.c Fri Apr 21 00:45:44 2017 (r317239) @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.213 2017/02/01 18:39:27 sjg Exp $ */ +/* $NetBSD: var.c,v 1.215 2017/04/16 21:39:49 riastradh Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: var.c,v 1.213 2017/02/01 18:39:27 sjg Exp $"; +static char rcsid[] = "$NetBSD: var.c,v 1.215 2017/04/16 21:39:49 riastradh Exp $"; #else #include #ifndef lint #if 0 static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: var.c,v 1.213 2017/02/01 18:39:27 sjg Exp $"); +__RCSID("$NetBSD: var.c,v 1.215 2017/04/16 21:39:49 riastradh Exp $"); #endif #endif /* not lint */ #endif @@ -1181,7 +1181,7 @@ Var_Value(const char *name, GNode *ctxt, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Apr 21 01:43:21 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B15F9D47375; Fri, 21 Apr 2017 01:43:21 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 5EF692E2; Fri, 21 Apr 2017 01:43:20 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id 1NbLdilfVBVcj1NbMd7G4g; Thu, 20 Apr 2017 19:43:13 -0600 X-Authority-Analysis: v=2.2 cv=RoC1FGuK c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=kj9zAlcOel0A:10 a=AzvcPWV-tVgA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=itYTvNewW3kXQSC1HmMA:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id C3ECE1081; Thu, 20 Apr 2017 18:43:10 -0700 (PDT) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id v3L1h99s037727; Thu, 20 Apr 2017 18:43:09 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201704210143.v3L1h99s037727@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Michael Tuexen cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317208 - head/sys/netinet In-Reply-To: Message from Michael Tuexen of "Thu, 20 Apr 2017 19:19:34 -0000." <201704201919.v3KJJYko052651@repo.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 20 Apr 2017 18:43:09 -0700 X-CMAE-Envelope: MS4wfK0SGfBkCSKZwTbNI4oj8uL6BQ78Ywaae7YMY168DrJjRyQpEUUItuiIofQRbySS24qPtLFoAbUD9XoNUO1xbU/0h3vvC0sMtQronvHzLrTthaYrjZ5w FVByustbOPxvpDkauYAonL5lRnRA4QBGw5oU/1mkT8XHckE6GDbta9TP41LtlLZSAh+dtWrd7AXIstCHZQTsWnAJ+YWGII6qA9qsmgsbwjR8/TY6OcWLL/sZ 4698hCxj1w0jyxuKV9sak20DAS3BqG0clavr1RpKDADFAjeWRUBVns5IzchxbhzE X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 01:43:21 -0000 In message <201704201919.v3KJJYko052651@repo.freebsd.org>, Michael Tuexen write s: > Author: tuexen > Date: Thu Apr 20 19:19:33 2017 > New Revision: 317208 > URL: https://svnweb.freebsd.org/changeset/base/317208 > > Log: > Syncoockies can be used in combination with the syncache. If the cache > overflows, syncookies are used. > This patch restricts the usage of syncookies in this case: accept > syncookies only if there was an overflow of the syncache recently. > This mitigates a problem reported in PR217637, where is syncookie was > accepted without any recent drops. > Thanks to glebius@ for suggesting an improvement. > > PR: 217637 > Reviewed by: gnn, glebius > MFC after: 1 week > Sponsored by: Netflix, Inc. > Differential Revision: https://reviews.freebsd.org/D10272 > > Modified: > head/sys/netinet/tcp_syncache.c > head/sys/netinet/tcp_syncache.h > > Modified: head/sys/netinet/tcp_syncache.c > ============================================================================= > = > --- head/sys/netinet/tcp_syncache.c Thu Apr 20 19:14:52 2017 (r31720 > 7) > +++ head/sys/netinet/tcp_syncache.c Thu Apr 20 19:19:33 2017 (r31720 > 8) > @@ -260,6 +260,7 @@ syncache_init(void) > &V_tcp_syncache.hashbase[i].sch_mtx, 0); > V_tcp_syncache.hashbase[i].sch_length = 0; > V_tcp_syncache.hashbase[i].sch_sc = &V_tcp_syncache; > + V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; Hi Michael, This line produced the following on i386: /opt/src/svn-current/sys/netinet/tcp_syncache.c:263:50: error: implicit conversion from 'long long' to 'time_t' (aka 'int') changes value from -9223372036854775808 to 0 [-Werror,-Wconstant-conversion] V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; ~ ^~~~~~~~~ ./x86/_stdint.h:91:41: note: expanded from macro 'INT64_MIN' #define INT64_MIN (-0x7fffffffffffffffLL-1) ~~~~~~~~~~~~~~~~~~~~~^~ Looks like it needs a time_t cast. > [...] -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-all@freebsd.org Fri Apr 21 01:50:43 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07FEAD474E1; Fri, 21 Apr 2017 01:50:43 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C368D75F; Fri, 21 Apr 2017 01:50:42 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L1ofV4014510; Fri, 21 Apr 2017 01:50:41 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L1ofgl014509; Fri, 21 Apr 2017 01:50:41 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704210150.v3L1ofgl014509@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Apr 2017 01:50:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317240 - head/sys/fs/nfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 01:50:43 -0000 Author: rmacklem Date: Fri Apr 21 01:50:41 2017 New Revision: 317240 URL: https://svnweb.freebsd.org/changeset/base/317240 Log: Set default uid/gid to nobody/nogroup for NFSv4 mapping. The default uid/gid for NFSv4 are set by the nfsuserd(8) daemon. However, they were 0 until the nfsuserd(8) was run. Since it is possible to use NFSv4 without running the nfsuserd(8) daemon, set them to nobody/nogroup initially. Without this patch, the values would be set by the nfsuserd(8) daemon and left changed even if the nfsuserd(8) daemon was killed. Also, the default values of 0 meant that setting a group to "wheel" would fail even when done by root and this patch fixes this issue. MFC after: 2 weeks Modified: head/sys/fs/nfs/nfs_commonsubs.c Modified: head/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 00:45:44 2017 (r317239) +++ head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 01:50:41 2017 (r317240) @@ -63,8 +63,8 @@ int nfsrv_useacl = 1; struct nfssockreq nfsrv_nfsuserdsock; int nfsrv_nfsuserd = 0; struct nfsreqhead nfsd_reqq; -uid_t nfsrv_defaultuid; -gid_t nfsrv_defaultgid; +uid_t nfsrv_defaultuid = 65534; +gid_t nfsrv_defaultgid = 65533; int nfsrv_lease = NFSRV_LEASE; int ncl_mbuf_mlen = MLEN; int nfsd_enable_stringtouid = 0; From owner-svn-src-all@freebsd.org Fri Apr 21 01:51:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C2235D476BC; Fri, 21 Apr 2017 01:51:50 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 911B9ACB; Fri, 21 Apr 2017 01:51:50 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L1pnjN016228; Fri, 21 Apr 2017 01:51:49 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L1pn3F016215; Fri, 21 Apr 2017 01:51:49 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704210151.v3L1pn3F016215@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Apr 2017 01:51:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317241 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 01:51:50 -0000 Author: cy Date: Fri Apr 21 01:51:49 2017 New Revision: 317241 URL: https://svnweb.freebsd.org/changeset/base/317241 Log: MFC r316809: Fix a use after free panic in ipfilter's fragment processing. Memory is malloc'd, then a search for a match in the fragment table is made and if the fragment matches, the wrong fragment table is freed, causing a use after free panic. This commit fixes this. A symptom of the problem is a kernel page fault in bcopy() called by ipf_frag_lookup() at line 715 in ip_frag.c. Another symptom is a kernel page fault in ipf_frag_delete() when called by ipf_frag_expire() via ipf_slowtimer(). Modified: stable/10/sys/contrib/ipfilter/netinet/ip_frag.c Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/contrib/ipfilter/netinet/ip_frag.c Directory Properties: stable/11/ (props changed) Modified: stable/10/sys/contrib/ipfilter/netinet/ip_frag.c ============================================================================== --- stable/10/sys/contrib/ipfilter/netinet/ip_frag.c Fri Apr 21 01:50:41 2017 (r317240) +++ stable/10/sys/contrib/ipfilter/netinet/ip_frag.c Fri Apr 21 01:51:49 2017 (r317241) @@ -474,7 +474,7 @@ ipfr_frag_new(softc, softf, fin, pass, t IPFR_CMPSZ)) { RWLOCK_EXIT(lock); FBUMPD(ifs_exists); - KFREE(fra); + KFREE(fran); return NULL; } From owner-svn-src-all@freebsd.org Fri Apr 21 01:51:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C62BD476B8; Fri, 21 Apr 2017 01:51:50 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4DDF9ACA; Fri, 21 Apr 2017 01:51:50 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L1pnFa015790; Fri, 21 Apr 2017 01:51:49 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L1pn8r015775; Fri, 21 Apr 2017 01:51:49 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704210151.v3L1pn8r015775@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Apr 2017 01:51:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317241 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 01:51:50 -0000 Author: cy Date: Fri Apr 21 01:51:49 2017 New Revision: 317241 URL: https://svnweb.freebsd.org/changeset/base/317241 Log: MFC r316809: Fix a use after free panic in ipfilter's fragment processing. Memory is malloc'd, then a search for a match in the fragment table is made and if the fragment matches, the wrong fragment table is freed, causing a use after free panic. This commit fixes this. A symptom of the problem is a kernel page fault in bcopy() called by ipf_frag_lookup() at line 715 in ip_frag.c. Another symptom is a kernel page fault in ipf_frag_delete() when called by ipf_frag_expire() via ipf_slowtimer(). Modified: stable/11/sys/contrib/ipfilter/netinet/ip_frag.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/10/sys/contrib/ipfilter/netinet/ip_frag.c Directory Properties: stable/10/ (props changed) Modified: stable/11/sys/contrib/ipfilter/netinet/ip_frag.c ============================================================================== --- stable/11/sys/contrib/ipfilter/netinet/ip_frag.c Fri Apr 21 01:50:41 2017 (r317240) +++ stable/11/sys/contrib/ipfilter/netinet/ip_frag.c Fri Apr 21 01:51:49 2017 (r317241) @@ -474,7 +474,7 @@ ipfr_frag_new(softc, softf, fin, pass, t IPFR_CMPSZ)) { RWLOCK_EXIT(lock); FBUMPD(ifs_exists); - KFREE(fra); + KFREE(fran); return NULL; } From owner-svn-src-all@freebsd.org Fri Apr 21 02:02:53 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BED39D479D4; Fri, 21 Apr 2017 02:02:53 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8D936180; Fri, 21 Apr 2017 02:02:53 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L22qgo022078; Fri, 21 Apr 2017 02:02:52 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L22qvY022077; Fri, 21 Apr 2017 02:02:52 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704210202.v3L22qvY022077@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Apr 2017 02:02:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317242 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 02:02:53 -0000 Author: cy Date: Fri Apr 21 02:02:52 2017 New Revision: 317242 URL: https://svnweb.freebsd.org/changeset/base/317242 Log: MFC r316811, r317139: Add missing free()'s after calls to randomize(). PR: NetBSD PR/50559 Obtained from: Netbsd radix_ipf.c r1.6 Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/11/ (props changed) Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c ============================================================================== --- stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Fri Apr 21 01:51:49 2017 (r317241) +++ stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Fri Apr 21 02:02:52 2017 (r317242) @@ -36,7 +36,7 @@ static void buildnodes __P((addrfamily_t static ipf_rdx_node_t *ipf_rx_find_addr __P((ipf_rdx_node_t *, u_32_t *)); static ipf_rdx_node_t *ipf_rx_lookup __P((ipf_rdx_head_t *, addrfamily_t *, addrfamily_t *)); -static ipf_rdx_node_t *ipf_rx_match __P((ipf_rdx_head_t *, addrfamily_t *)); +/* $NetBSD: radix_ipf.c,v 1.6 2015/12/15 12:30:34 christos Exp $ */ /* * Foreword. @@ -1507,6 +1507,8 @@ random_add(rnh) add_addr(rnh, i, order[i]); checktree(rnh); } + + free(order); } @@ -1524,5 +1526,7 @@ random_delete(rnh) delete_addr(rnh, i); checktree(rnh); } + + free(order); } #endif /* RDX_DEBUG */ From owner-svn-src-all@freebsd.org Fri Apr 21 02:02:53 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8477AD479CE; Fri, 21 Apr 2017 02:02:53 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5400917F; Fri, 21 Apr 2017 02:02:53 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L22qI8022072; Fri, 21 Apr 2017 02:02:52 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L22q7U022071; Fri, 21 Apr 2017 02:02:52 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704210202.v3L22q7U022071@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Apr 2017 02:02: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: r317242 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 02:02:53 -0000 Author: cy Date: Fri Apr 21 02:02:52 2017 New Revision: 317242 URL: https://svnweb.freebsd.org/changeset/base/317242 Log: MFC r316811, r317139: Add missing free()'s after calls to randomize(). PR: NetBSD PR/50559 Obtained from: Netbsd radix_ipf.c r1.6 Modified: stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/10/ (props changed) Modified: stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c ============================================================================== --- stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c Fri Apr 21 01:51:49 2017 (r317241) +++ stable/11/sys/contrib/ipfilter/netinet/radix_ipf.c Fri Apr 21 02:02:52 2017 (r317242) @@ -1509,6 +1509,8 @@ random_add(rnh) add_addr(rnh, i, order[i]); checktree(rnh); } + + free(order); } @@ -1526,5 +1528,7 @@ random_delete(rnh) delete_addr(rnh, i); checktree(rnh); } + + free(order); } #endif /* RDX_DEBUG */ From owner-svn-src-all@freebsd.org Fri Apr 21 02:11:45 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A95A4D47E45; Fri, 21 Apr 2017 02:11:45 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 77F868B9; Fri, 21 Apr 2017 02:11:45 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L2Bi6t026275; Fri, 21 Apr 2017 02:11:44 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L2BiF0026274; Fri, 21 Apr 2017 02:11:44 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201704210211.v3L2BiF0026274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Apr 2017 02:11:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317243 - stable/10/sys/contrib/ipfilter/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 02:11:45 -0000 Author: cy Date: Fri Apr 21 02:11:44 2017 New Revision: 317243 URL: https://svnweb.freebsd.org/changeset/base/317243 Log: MFC r317139 for real. Restore prototype accidently removed by r316811. Also remove $NetBSD$ accidentally added. Reported by: hps, lwhsu Pointy hat to: cy Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c ============================================================================== --- stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Fri Apr 21 02:02:52 2017 (r317242) +++ stable/10/sys/contrib/ipfilter/netinet/radix_ipf.c Fri Apr 21 02:11:44 2017 (r317243) @@ -36,7 +36,7 @@ static void buildnodes __P((addrfamily_t static ipf_rdx_node_t *ipf_rx_find_addr __P((ipf_rdx_node_t *, u_32_t *)); static ipf_rdx_node_t *ipf_rx_lookup __P((ipf_rdx_head_t *, addrfamily_t *, addrfamily_t *)); -/* $NetBSD: radix_ipf.c,v 1.6 2015/12/15 12:30:34 christos Exp $ */ +static ipf_rdx_node_t *ipf_rx_match __P((ipf_rdx_head_t *, addrfamily_t *)); /* * Foreword. From owner-svn-src-all@freebsd.org Fri Apr 21 03:12:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8329D4901F; Fri, 21 Apr 2017 03:12:41 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 5D0E21D16; Fri, 21 Apr 2017 03:12:41 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id 1Ozndde7lol5Z1OzodEyxq; Thu, 20 Apr 2017 21:12:33 -0600 X-Authority-Analysis: v=2.2 cv=B8rJ6KlM c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=kj9zAlcOel0A:10 a=AzvcPWV-tVgA:10 a=VxmjJ2MpAAAA:8 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=v2JZ80VQ7frUTbXu9uYA:9 a=CjuIK1q_8ugA:10 a=7gXAzLPJhVmCkEl4_tsf:22 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 949061131; Thu, 20 Apr 2017 20:12:31 -0700 (PDT) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id v3L3CTKK086513; Thu, 20 Apr 2017 20:12:29 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201704210312.v3L3CTKK086513@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Cy Schubert cc: Michael Tuexen , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317208 - head/sys/netinet In-Reply-To: Message from Cy Schubert of "Thu, 20 Apr 2017 18:43:09 -0700." <201704210143.v3L1h99s037727@slippy.cwsent.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 20 Apr 2017 20:12:29 -0700 X-CMAE-Envelope: MS4wfIWaH47o5IWxTyDRD3uChj6EeFi9h0QcO6dEKep/zzytTdexXqldNN1td3J7r/RBpeZgjGMUL/1RrWy9l+xYxlZYrAFkFvNhTH06F4WH1PCoAR85TSlR 48sg4708RbZhW4jPh+mFdbNaR4igm97MMD0l1JN54FiGQPdQSeAEiMwpNYIrxsrKoFB7WeJWaYnc15LgWdKkEuHkwkv82NS0I2PT+Gg2GiUI9nVr1lbHW+R9 Swmwl9A3UUR9oKmYSPb8wHUwu9t1H3C1SvJDxElkwt1Fxk0nNKCFsPtruxJq/6nE X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 03:12:41 -0000 In message <201704210143.v3L1h99s037727@slippy.cwsent.com>, Cy Schubert writes: > In message <201704201919.v3KJJYko052651@repo.freebsd.org>, Michael Tuexen > write > s: > > Author: tuexen > > Date: Thu Apr 20 19:19:33 2017 > > New Revision: 317208 > > URL: https://svnweb.freebsd.org/changeset/base/317208 > > > > Log: > > Syncoockies can be used in combination with the syncache. If the cache > > overflows, syncookies are used. > > This patch restricts the usage of syncookies in this case: accept > > syncookies only if there was an overflow of the syncache recently. > > This mitigates a problem reported in PR217637, where is syncookie was > > accepted without any recent drops. > > Thanks to glebius@ for suggesting an improvement. > > > > PR: 217637 > > Reviewed by: gnn, glebius > > MFC after: 1 week > > Sponsored by: Netflix, Inc. > > Differential Revision: https://reviews.freebsd.org/D10272 > > > > Modified: > > head/sys/netinet/tcp_syncache.c > > head/sys/netinet/tcp_syncache.h > > > > Modified: head/sys/netinet/tcp_syncache.c > > =========================================================================== > == > > = > > --- head/sys/netinet/tcp_syncache.c Thu Apr 20 19:14:52 2017 (r31720 > > 7) > > +++ head/sys/netinet/tcp_syncache.c Thu Apr 20 19:19:33 2017 (r31720 > > 8) > > @@ -260,6 +260,7 @@ syncache_init(void) > > &V_tcp_syncache.hashbase[i].sch_mtx, 0); > > V_tcp_syncache.hashbase[i].sch_length = 0; > > V_tcp_syncache.hashbase[i].sch_sc = &V_tcp_syncache; > > + V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; > > > Hi Michael, > > This line produced the following on i386: > > /opt/src/svn-current/sys/netinet/tcp_syncache.c:263:50: error: implicit > conversion from 'long long' to 'time_t' (aka 'int') changes value from > -9223372036854775808 to 0 [-Werror,-Wconstant-conversion] > V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; > ~ ^~~~~~~~~ > ./x86/_stdint.h:91:41: note: expanded from macro 'INT64_MIN' > #define INT64_MIN (-0x7fffffffffffffffLL-1) > ~~~~~~~~~~~~~~~~~~~~~^~ > > Looks like it needs a time_t cast. Playing with it for a short while, a cast doesn't produce the desired results. My solution is ugly so far. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-all@freebsd.org Fri Apr 21 03:16:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04ABED490B2; Fri, 21 Apr 2017 03:16:50 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail108.syd.optusnet.com.au (mail108.syd.optusnet.com.au [211.29.132.59]) by mx1.freebsd.org (Postfix) with ESMTP id C21241E97; Fri, 21 Apr 2017 03:16:49 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c122-106-153-191.carlnfd1.nsw.optusnet.com.au [122.106.153.191]) by mail108.syd.optusnet.com.au (Postfix) with ESMTPS id 783D11A38A1; Fri, 21 Apr 2017 13:16:40 +1000 (AEST) Date: Fri, 21 Apr 2017 13:16:44 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Cy Schubert cc: Michael Tuexen , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317208 - head/sys/netinet In-Reply-To: <201704210143.v3L1h99s037727@slippy.cwsent.com> Message-ID: <20170421131041.G966@besplex.bde.org> References: <201704210143.v3L1h99s037727@slippy.cwsent.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=VbSHBBh9 c=1 sm=1 tr=0 a=Tj3pCpwHnMupdyZSltBt7Q==:117 a=Tj3pCpwHnMupdyZSltBt7Q==:17 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=JOBH9iDo1MMysTRtogwA:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 03:16:50 -0000 On Thu, 20 Apr 2017, Cy Schubert wrote: Please trim quotes. > In message <201704201919.v3KJJYko052651@repo.freebsd.org>, Michael Tuexen > write > s: [>> ... 5 lines trimmed] >> Log: >> Syncoockies can be used in combination with the syncache. If the cache >> overflows, syncookies are used. [>> ... 16 lines trimmed] >> Modified: head/sys/netinet/tcp_syncache.c >> ============================================================================= >> = >> --- head/sys/netinet/tcp_syncache.c Thu Apr 20 19:14:52 2017 (r31720 >> 7) >> +++ head/sys/netinet/tcp_syncache.c Thu Apr 20 19:19:33 2017 (r31720 >> 8) >> @@ -260,6 +260,7 @@ syncache_init(void) >> &V_tcp_syncache.hashbase[i].sch_mtx, 0); >> V_tcp_syncache.hashbase[i].sch_length = 0; >> V_tcp_syncache.hashbase[i].sch_sc = &V_tcp_syncache; >> + V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; > ... > This line produced the following on i386: > > /opt/src/svn-current/sys/netinet/tcp_syncache.c:263:50: error: implicit > conversion from 'long long' to 'time_t' (aka 'int') changes value from > -9223372036854775808 to 0 [-Werror,-Wconstant-conversion] > V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; > ~ ^~~~~~~~~ > ./x86/_stdint.h:91:41: note: expanded from macro 'INT64_MIN' > #define INT64_MIN (-0x7fffffffffffffffLL-1) > ~~~~~~~~~~~~~~~~~~~~~^~ > > Looks like it needs a time_t cast. A cast would just break the warning. INT64_MIN has nothing to do with time_t. The expression (time_t)INT64_MIN would be more obviously garbage since in the above it is not clear that sch_last_overflow has a type unrelated to the constant. INT64_MIN is also broken if time_t is 64 bits but unsigned. Then it is converted to half of plus infinity instead of the intended minus infinity. Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 04:15:30 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE207D49C53; Fri, 21 Apr 2017 04:15:30 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id 791D316C1; Fri, 21 Apr 2017 04:15:30 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c122-106-153-191.carlnfd1.nsw.optusnet.com.au [122.106.153.191]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id 3D60C104F969; Fri, 21 Apr 2017 14:15:22 +1000 (AEST) Date: Fri, 21 Apr 2017 14:15:19 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Jung-uk Kim cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317231 - head/usr.bin/systat In-Reply-To: <201704202230.v3KMUdAm030762@repo.freebsd.org> Message-ID: <20170421131652.P966@besplex.bde.org> References: <201704202230.v3KMUdAm030762@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=KeqiiUQD c=1 sm=1 tr=0 a=Tj3pCpwHnMupdyZSltBt7Q==:117 a=Tj3pCpwHnMupdyZSltBt7Q==:17 a=kj9zAlcOel0A:10 a=Fda5ZpxS8tIVVS_qyfgA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 04:15:31 -0000 On Thu, 20 Apr 2017, Jung-uk Kim wrote: > Log: > Fix systat(1) regression. It was broken by r317061. It is more broken than before. Now it fails when the kernel is older than the utility instead of vice versa. When it fails, the failures are more serious than before. systat -v actually does complete checking for errors (some are only errors in itself), but mishandles them. It reports the errors on the status line and continues. The error message overwrites the previous one. Continuing is more broken than before: Previously, reading 64-bit values into 32-bit variables truncated them, just like a correct fix would do except for the error messages. Large values often never occur, and used to be truncated in the kernel, so noting would be lost by truncating. The support for 64-bit types would just remain intentionally unfinished instead of wrong. systat has a lot of modes and fields in which it only reports delta values. Then truncation doesn't matter unless it occurs more often than the refresh interval. Now, reading 32-bit values into 64-bit variabeles leaves garbage in the top bits. I think the garbage is initially 0 and remains 0, since the variables are statically initializated and short reads by sysctl() don't change the top bits. But delta-values are broken if values that need 64-bit types actually occur. E.g., after increasing a 32-bit value of 0xffffffff with overflow to 1, 32-bit subtraction gave the correct delta of 2, but 64-bit subtraction gives 1 - (2**32 - 1) = 2 - 2**32 = 0xffffffff00000002. > Modified: head/usr.bin/systat/vmstat.c > ============================================================================== > --- head/usr.bin/systat/vmstat.c Thu Apr 20 21:48:54 2017 (r317230) > +++ head/usr.bin/systat/vmstat.c Thu Apr 20 22:30:39 2017 (r317231) > @@ -70,35 +70,35 @@ static const char sccsid[] = "@(#)vmstat > > static struct Info { > long time[CPUSTATES]; > - u_int v_swtch; /* context switches */ > - u_int v_trap; /* calls to trap */ > - u_int v_syscall; /* calls to syscall() */ > - u_int v_intr; /* device interrupts */ > - u_int v_soft; /* software interrupts */ > + uint64_t v_swtch; /* context switches */ > + uint64_t v_trap; /* calls to trap */ > + uint64_t v_syscall; /* calls to syscall() */ > + uint64_t v_intr; /* device interrupts */ > + uint64_t v_soft; /* software interrupts */ systat -v may also have problems printing large values. It mostly uses PUTRATE(), and I think that handles 64-bit types not very badly, though compilers tend to have bugs converting uint64_t to floating point and systat -v uses float since it doesn't need much precision. PUTRATE() on a uint64_t calculates the delta in that type and then scales in double precision and then prints in single precision. The overflowed value 0xffffffff00000002 gives a huge rate, say only 1e17 = 100P (P = peta) after scaling down the value from 1.8e19 = 18E (E = exa). putfloat() only supports up to small numbers of mega and prints larger values as '*'s. systat -v thus doesn't actually support 64-bit values. 32-bit values only go up to 4G or 4294M. With no scaling, 4294M stays large, but some fields are wide enough to print it so it is not printed as '*'s. 64-bit values go up to 18E. PUTRATE() already had to be careful with types to get suitable overflow when calculating the deltas. It is careful enough. It assigns to unsigned integer fields. This gives modular arithmetic. Expressions like (new.fld - old.fld) / (float)rate would give sign extension/overflow bugs depending on the type of fld in a MD way. Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 05:19:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE1CAD48A33; Fri, 21 Apr 2017 05:19:47 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 66B271299; Fri, 21 Apr 2017 05:19:47 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c122-106-153-191.carlnfd1.nsw.optusnet.com.au [122.106.153.191]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id F34C4424158; Fri, 21 Apr 2017 15:19:26 +1000 (AEST) Date: Fri, 21 Apr 2017 15:19:25 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Rick Macklem cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317240 - head/sys/fs/nfs In-Reply-To: <201704210150.v3L1ofgl014509@repo.freebsd.org> Message-ID: <20170421141623.A1141@besplex.bde.org> References: <201704210150.v3L1ofgl014509@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=AYLBJzfG c=1 sm=1 tr=0 a=Tj3pCpwHnMupdyZSltBt7Q==:117 a=Tj3pCpwHnMupdyZSltBt7Q==:17 a=kj9zAlcOel0A:10 a=t3nMVfT35bfJNYdJFxsA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 05:19:47 -0000 On Fri, 21 Apr 2017, Rick Macklem wrote: > Log: > Set default uid/gid to nobody/nogroup for NFSv4 mapping. > > The default uid/gid for NFSv4 are set by the nfsuserd(8) daemon. > However, they were 0 until the nfsuserd(8) was run. Since it is > possible to use NFSv4 without running the nfsuserd(8) daemon, set them > to nobody/nogroup initially. > Without this patch, the values would be set by the nfsuserd(8) daemon > and left changed even if the nfsuserd(8) daemon was killed. Also, the default > values of 0 meant that setting a group to "wheel" would fail even when > done by root and this patch fixes this issue. Hard-coding these values is wrong, and the actual values seem wronger. The values in nfsuserd(8) are clearly wrong. It hard-codes 32767 (with bogus casts) for both the default uid and the default gid. These values are in the user namespace have nothing to do with nobody/nogroup. > and left changed even if the nfsuserd(8) daemon was killed. Also, the default > ... > Modified: head/sys/fs/nfs/nfs_commonsubs.c > ============================================================================== > --- head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 00:45:44 2017 (r317239) > +++ head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 01:50:41 2017 (r317240) > @@ -63,8 +63,8 @@ int nfsrv_useacl = 1; > struct nfssockreq nfsrv_nfsuserdsock; > int nfsrv_nfsuserd = 0; > struct nfsreqhead nfsd_reqq; > -uid_t nfsrv_defaultuid; > -gid_t nfsrv_defaultgid; > +uid_t nfsrv_defaultuid = 65534; > +gid_t nfsrv_defaultgid = 65533; > int nfsrv_lease = NFSRV_LEASE; > int ncl_mbuf_mlen = MLEN; > int nfsd_enable_stringtouid = 0; These are the traditional values in /etc/group. It is bogus but traditional to have a uid in /etc/group. nobody doesn't actually have group nogroup. nobody is also in the correct place (/etc/passwd) provided the sysadmin didn't meddle with this, but it has group 65534 there. Group 65533 is traditionally for kmem and tty in /etc/passwd. mountd uses the less bogus values with more bogus casts (uid_t)-2 and (gid_t)-2. These are obfuscated spellings of 0xfffffffe. You don't really want these values to depend on the types because then the values break when the types are expanded, like they already did for the expansion to 32 bits. These values should be reserved in /etc/passwd and /etc/group, but they still aren't, 20-25 years after the expansion. You don't want to spell these values in decimal because decimal values much larger than 65534 are too hard to convert back to hex to see what they mean. The bogus casts are to break warnings about converting the easy-to-remember (but wrong becaus they are negative) values of -2 to unsigned. The magic values are still incompletely documented in exports(8) as pure -2:-2. It doesn't mention nobody or any other magic numbers or any bugs in defaulting or specifying the numbers. Last time I looked, most utilities and even basic library functions had the usual errors for parsing large and negative values by misusing atoi() or strtol(). Many can't parse 0xfffffffe or even this value in decimal, so the value has to be spelled -2 so that undocumented overflow bugs can convert it to the correct value of 0xffffffffe. On 64-bit systems, it might be first converted to 0xffffffffffffffffe so another layer of overflow bugs is needed to get back to 0xfffffffe. Since library functions are buggy, it is at best unportable to put any of -2, 0xfffffffe or this value in hex in /etc/passwd or /etc/group. 65534 always worked there since it is much smaller than 32-bit LONG_MAX and the library was probably never bad enough to use atoi() and 16-bit ints. IIRC, -2 doesn't wrok in /etc/passwd, but is the only spelling that works near mountd. Checking now shows mountd using many different misparsing methods: - it uses only atoi() in parescred(). This can read -2 in /etc/exports, but misparses the correct value of 0xfffffffe to 0 and the correct value of this in decimal to 0x7fffffffl; it silently ignores errors in both cases; it blindly assigns to uid_t/gid_t, so -2 becomes the correct value - it uses strtol() with mostly missing and half wrong error checking for masklen - it uses strtoul() with mostly wrong but not so much missing error checking for -p. First it truncates the value to break its subsequent range checks... - its use of atoi() implicitly forces base 10. This is forced explicitly for the strtol() and strtoul(). This makes sure that hex never works. Hex is always misparsed as 0, and the resulting garbage after the 0 is only checked for after the strtoul() call. Kernel code shouldn't hard-code any user ids, starting with 0 for root (this is worse than 65534 for nobody since 0 is so special), but for devices I hard-coded many ids in . This works well enough and is better than implicit 0 for root provided everything uses the #defined values. It is better than scattered values of 32767, 65534, 65533 and 0xfffffffe and -2. Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 06:05:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8760D46D39; Fri, 21 Apr 2017 06:05:35 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6B19AA8E; Fri, 21 Apr 2017 06:05:35 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L65Ya5020750; Fri, 21 Apr 2017 06:05:34 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L65Yx1020749; Fri, 21 Apr 2017 06:05:34 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201704210605.v3L65Yx1020749@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Fri, 21 Apr 2017 06:05:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317244 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 06:05:35 -0000 Author: tuexen Date: Fri Apr 21 06:05:34 2017 New Revision: 317244 URL: https://svnweb.freebsd.org/changeset/base/317244 Log: Represent "a syncache overflow hasn't happend yet" by using -(SYNCOOKIE_LIFETIME + 1) instead of INT64_MIN, since it is good enough and works when time_t is int32 or int64. This fixes the issue reported by cy@ on i386. Reported by: cy MFC after: 1 week Sponsored by: Netflix, Inc. Modified: head/sys/netinet/tcp_syncache.c Modified: head/sys/netinet/tcp_syncache.c ============================================================================== --- head/sys/netinet/tcp_syncache.c Fri Apr 21 02:11:44 2017 (r317243) +++ head/sys/netinet/tcp_syncache.c Fri Apr 21 06:05:34 2017 (r317244) @@ -260,7 +260,8 @@ syncache_init(void) &V_tcp_syncache.hashbase[i].sch_mtx, 0); V_tcp_syncache.hashbase[i].sch_length = 0; V_tcp_syncache.hashbase[i].sch_sc = &V_tcp_syncache; - V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; + V_tcp_syncache.hashbase[i].sch_last_overflow = + -(SYNCOOKIE_LIFETIME + 1); } /* Create the syncache entry zone. */ From owner-svn-src-all@freebsd.org Fri Apr 21 06:09:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2498ED46DF1; Fri, 21 Apr 2017 06:09:11 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from drew.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.franken.de", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DF4A0C21; Fri, 21 Apr 2017 06:09:10 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from [IPv6:2003:cd:6bd7:7400:8f3:efd8:6932:24f0] (p200300CD6BD7740008F3EFD8693224F0.dip0.t-ipconnect.de [IPv6:2003:cd:6bd7:7400:8f3:efd8:6932:24f0]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTPSA id EC63B721E281E; Fri, 21 Apr 2017 08:09:03 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317208 - head/sys/netinet From: Michael Tuexen In-Reply-To: <201704210143.v3L1h99s037727@slippy.cwsent.com> Date: Fri, 21 Apr 2017 08:09:02 +0200 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: 7bit Message-Id: <5381DC80-1E0A-416C-BD05-99B01F0A066F@freebsd.org> References: <201704210143.v3L1h99s037727@slippy.cwsent.com> To: Cy Schubert X-Mailer: Apple Mail (2.3273) X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=disabled version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on mail-n.franken.de X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 06:09:11 -0000 > On 21. Apr 2017, at 03:43, Cy Schubert wrote: > > In message <201704201919.v3KJJYko052651@repo.freebsd.org>, Michael Tuexen > writes: > [...] > Hi Michael, > > This line produced the following on i386: > > /opt/src/svn-current/sys/netinet/tcp_syncache.c:263:50: error: implicit > conversion from 'long long' to 'time_t' (aka 'int') changes value from > -9223372036854775808 to 0 [-Werror,-Wconstant-conversion] > V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; > ~ ^~~~~~~~~ > ./x86/_stdint.h:91:41: note: expanded from macro 'INT64_MIN' > #define INT64_MIN (-0x7fffffffffffffffLL-1) > ~~~~~~~~~~~~~~~~~~~~~^~ > > Looks like it needs a time_t cast. Fixed in https://svnweb.freebsd.org/changeset/base/317244. Thanks for reporting and sorry for the breakage. Best regards Michael > >> [...] > > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: http://www.FreeBSD.org > > The need of the many outweighs the greed of the few. > > > From owner-svn-src-all@freebsd.org Fri Apr 21 06:10:34 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28C3BD46ED4; Fri, 21 Apr 2017 06:10:34 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from drew.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.franken.de", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E25F3DAD; Fri, 21 Apr 2017 06:10:33 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from [IPv6:2003:cd:6bd7:7400:8f3:efd8:6932:24f0] (p200300CD6BD7740008F3EFD8693224F0.dip0.t-ipconnect.de [IPv6:2003:cd:6bd7:7400:8f3:efd8:6932:24f0]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTPSA id 3E3AD721E280D; Fri, 21 Apr 2017 08:10:31 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r317208 - head/sys/netinet From: Michael Tuexen In-Reply-To: <20170421131041.G966@besplex.bde.org> Date: Fri, 21 Apr 2017 08:10:30 +0200 Cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <8BBC38A0-DDBA-4C04-9654-98755B3E4E13@freebsd.org> References: <201704210143.v3L1h99s037727@slippy.cwsent.com> <20170421131041.G966@besplex.bde.org> To: Bruce Evans X-Mailer: Apple Mail (2.3273) X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=disabled version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on mail-n.franken.de X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 06:10:34 -0000 > On 21. Apr 2017, at 05:16, Bruce Evans wrote: >=20 > On Thu, 20 Apr 2017, Cy Schubert wrote: >=20 > Please trim quotes. >=20 >> In message <201704201919.v3KJJYko052651@repo.freebsd.org>, Michael = Tuexen >> write >> s: >=20 > [>> ... 5 lines trimmed] >=20 >>> Log: >>> Syncoockies can be used in combination with the syncache. If the = cache >>> overflows, syncookies are used. >=20 > [>> ... 16 lines trimmed] >=20 >>> Modified: head/sys/netinet/tcp_syncache.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D >>> =3D >>> --- head/sys/netinet/tcp_syncache.c Thu Apr 20 19:14:52 2017 = (r31720 >>> 7) >>> +++ head/sys/netinet/tcp_syncache.c Thu Apr 20 19:19:33 2017 = (r31720 >>> 8) >>> @@ -260,6 +260,7 @@ syncache_init(void) >>> &V_tcp_syncache.hashbase[i].sch_mtx, 0); >>> V_tcp_syncache.hashbase[i].sch_length =3D 0; >>> V_tcp_syncache.hashbase[i].sch_sc =3D &V_tcp_syncache; >>> + V_tcp_syncache.hashbase[i].sch_last_overflow =3D = INT64_MIN; >> ... >> This line produced the following on i386: >>=20 >> /opt/src/svn-current/sys/netinet/tcp_syncache.c:263:50: error: = implicit >> conversion from 'long long' to 'time_t' (aka 'int') changes value = from >> -9223372036854775808 to 0 [-Werror,-Wconstant-conversion] >> V_tcp_syncache.hashbase[i].sch_last_overflow =3D = INT64_MIN; >> ~ = ^~~~~~~~~ >> ./x86/_stdint.h:91:41: note: expanded from macro 'INT64_MIN' >> #define INT64_MIN (-0x7fffffffffffffffLL-1) >> ~~~~~~~~~~~~~~~~~~~~~^~ >>=20 >> Looks like it needs a time_t cast. >=20 > A cast would just break the warning. INT64_MIN has nothing to do with > time_t. The expression (time_t)INT64_MIN would be more obviously = garbage > since in the above it is not clear that sch_last_overflow has a type > unrelated to the constant. Fixed in https://svnweb.freebsd.org/changeset/base/317244 >=20 > INT64_MIN is also broken if time_t is 64 bits but unsigned. Then it = is > converted to half of plus infinity instead of the intended minus = infinity. The patch assumes that time_t is signed, which is true for FreeBSD on = all platforms. Or am I missing a platform? Best regards Michael >=20 > Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 06:55:18 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78A4AD48B7A; Fri, 21 Apr 2017 06:55:18 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3F56D90C; Fri, 21 Apr 2017 06:55:18 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L6tHi0041618; Fri, 21 Apr 2017 06:55:17 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L6tHFF041617; Fri, 21 Apr 2017 06:55:17 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704210655.v3L6tHFF041617@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Fri, 21 Apr 2017 06:55:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317245 - head/sys/dev/syscons X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 06:55:18 -0000 Author: bde Date: Fri Apr 21 06:55:17 2017 New Revision: 317245 URL: https://svnweb.freebsd.org/changeset/base/317245 Log: Oops, the previous commit swapped the main ega method with the main vga planar method (for testing that was supposed to be local that the former still works). The ega method works on vga but is about twice as slow. The vga method doesn't work on ega. Optimize the main vga planar method a little. For changing the background color (which was otherwise optimized better than most things), don't switch the write mode from 3 to 0 just to select the pixel mask of 0xff obscurely by writing 0. Just write 0xff directly. Modified: head/sys/dev/syscons/scvgarndr.c Modified: head/sys/dev/syscons/scvgarndr.c ============================================================================== --- head/sys/dev/syscons/scvgarndr.c Fri Apr 21 06:05:34 2017 (r317244) +++ head/sys/dev/syscons/scvgarndr.c Fri Apr 21 06:55:17 2017 (r317245) @@ -525,9 +525,9 @@ vga_rndrinit(scr_stat *scp) scp->rndr->clear = vga_pxlclear_planar; scp->rndr->draw_border = vga_pxlborder_planar; if (scp->sc->adp->va_type == KD_VGA) - scp->rndr->draw = vga_egadraw; - else scp->rndr->draw = vga_vgadraw_planar; + else + scp->rndr->draw = vga_egadraw; scp->rndr->draw_cursor = vga_pxlcursor_planar; scp->rndr->blink_cursor = vga_pxlblink_planar; scp->rndr->draw_mouse = vga_pxlmouse_planar; @@ -828,11 +828,9 @@ vga_vgadraw_planar(scr_stat *scp, int fr /* set background color in EGA/VGA latch */ if (bg != col2) { bg = col2; - outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */ outw(GDCIDX, bg | 0x00); /* set/reset */ - writeb(d, 0); + writeb(d, 0xff); c = readb(d); /* set bg color in the latch */ - outw(GDCIDX, 0x0305); /* read mode 0, write mode 3 */ } /* foreground color */ outw(GDCIDX, col1 | 0x00); /* set/reset */ From owner-svn-src-all@freebsd.org Fri Apr 21 07:16:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27098D49030; Fri, 21 Apr 2017 07:16:09 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C76FE10D4; Fri, 21 Apr 2017 07:16: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 v3L7G7wM049705; Fri, 21 Apr 2017 07:16:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L7G7Aa049703; Fri, 21 Apr 2017 07:16:07 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704210716.v3L7G7Aa049703@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 21 Apr 2017 07:16:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317246 - in head: sbin/geom/class/eli sys/geom/eli X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 07:16:09 -0000 Author: mav Date: Fri Apr 21 07:16:07 2017 New Revision: 317246 URL: https://svnweb.freebsd.org/changeset/base/317246 Log: Always allow setting number of iterations for the first time. Before this change it was impossible to set number of PKCS#5v2 iterations, required to set passphrase, if it has two keys and never had any passphrase. Due to present metadata format limitations there are still cases when number of iterations can not be changed, but now it works in cases when it can. PR: 218512 MFC after: 2 weeks Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D10338 Modified: head/sbin/geom/class/eli/geom_eli.c head/sys/geom/eli/g_eli_ctl.c Modified: head/sbin/geom/class/eli/geom_eli.c ============================================================================== --- head/sbin/geom/class/eli/geom_eli.c Fri Apr 21 06:55:17 2017 (r317245) +++ head/sbin/geom/class/eli/geom_eli.c Fri Apr 21 07:16:07 2017 (r317246) @@ -1118,7 +1118,9 @@ eli_setkey_detached(struct gctl_req *req val = gctl_get_intmax(req, "iterations"); /* Check if iterations number should and can be changed. */ - if (val != -1) { + if (val != -1 && md->md_iterations == -1) { + md->md_iterations = val; + } else if (val != -1 && val != md->md_iterations) { if (bitcount32(md->md_keys) != 1) { gctl_error(req, "To be able to use '-i' option, only " "one key can be defined."); Modified: head/sys/geom/eli/g_eli_ctl.c ============================================================================== --- head/sys/geom/eli/g_eli_ctl.c Fri Apr 21 06:55:17 2017 (r317245) +++ head/sys/geom/eli/g_eli_ctl.c Fri Apr 21 07:16:07 2017 (r317246) @@ -618,7 +618,9 @@ g_eli_ctl_setkey(struct gctl_req *req, s return; } /* Check if iterations number should and can be changed. */ - if (*valp != -1) { + if (*valp != -1 && md.md_iterations == -1) { + md.md_iterations = *valp; + } else if (*valp != -1 && *valp != md.md_iterations) { if (bitcount32(md.md_keys) != 1) { gctl_error(req, "To be able to use '-i' option, only " "one key can be defined."); From owner-svn-src-all@freebsd.org Fri Apr 21 07:43:45 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5AA01D49A0E; Fri, 21 Apr 2017 07:43: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 mx1.freebsd.org (Postfix) with ESMTPS id 29F41BC1; Fri, 21 Apr 2017 07:43: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 v3L7hiZS063228; Fri, 21 Apr 2017 07:43:44 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3L7hiBP063227; Fri, 21 Apr 2017 07:43:44 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704210743.v3L7hiBP063227@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 21 Apr 2017 07:43:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317247 - head/sys/geom/eli X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 07:43:45 -0000 Author: mav Date: Fri Apr 21 07:43:44 2017 New Revision: 317247 URL: https://svnweb.freebsd.org/changeset/base/317247 Log: Dump md_iterations as signed, which it really is. PR: 208305 PR: 196834 MFC after: 2 weeks Modified: head/sys/geom/eli/g_eli.h Modified: head/sys/geom/eli/g_eli.h ============================================================================== --- head/sys/geom/eli/g_eli.h Fri Apr 21 07:16:07 2017 (r317246) +++ head/sys/geom/eli/g_eli.h Fri Apr 21 07:43:44 2017 (r317247) @@ -510,7 +510,7 @@ eli_metadata_dump(const struct g_eli_met printf(" provsize: %ju\n", (uintmax_t)md->md_provsize); printf("sectorsize: %u\n", (u_int)md->md_sectorsize); printf(" keys: 0x%02x\n", (u_int)md->md_keys); - printf("iterations: %u\n", (u_int)md->md_iterations); + printf("iterations: %d\n", (int)md->md_iterations); bzero(str, sizeof(str)); for (i = 0; i < sizeof(md->md_salt); i++) { str[i * 2] = hex[md->md_salt[i] >> 4]; From owner-svn-src-all@freebsd.org Fri Apr 21 08:10:25 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA8EFD494E1; Fri, 21 Apr 2017 08:10:25 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id 628DB1C49; Fri, 21 Apr 2017 08:10:25 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c122-106-153-191.carlnfd1.nsw.optusnet.com.au [122.106.153.191]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id D7DEC3C6324; Fri, 21 Apr 2017 18:10:15 +1000 (AEST) Date: Fri, 21 Apr 2017 18:10:08 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Michael Tuexen cc: Bruce Evans , Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317208 - head/sys/netinet In-Reply-To: <8BBC38A0-DDBA-4C04-9654-98755B3E4E13@freebsd.org> Message-ID: <20170421173453.J1735@besplex.bde.org> References: <201704210143.v3L1h99s037727@slippy.cwsent.com> <20170421131041.G966@besplex.bde.org> <8BBC38A0-DDBA-4C04-9654-98755B3E4E13@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=VbSHBBh9 c=1 sm=1 tr=0 a=Tj3pCpwHnMupdyZSltBt7Q==:117 a=Tj3pCpwHnMupdyZSltBt7Q==:17 a=kj9zAlcOel0A:10 a=PO7r1zJSAAAA:8 a=6I5d2MoRAAAA:8 a=Mk1zjkTLLVCeTCkj1yEA:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 08:10:25 -0000 On Fri, 21 Apr 2017, Michael Tuexen wrote: >> On 21. Apr 2017, at 05:16, Bruce Evans wrote: >> >> On Thu, 20 Apr 2017, Cy Schubert wrote: >> >> Please trim quotes. >> >>> In message <201704201919.v3KJJYko052651@repo.freebsd.org>, Michael Tuexen >>> write >>> s: >> >> [>> ... 5 lines trimmed] >> >>>> Log: >>>> Syncoockies can be used in combination with the syncache. If the cache >>>> overflows, syncookies are used. >> >> [>> ... 16 lines trimmed] >> >>>> Modified: head/sys/netinet/tcp_syncache.c >>>> ============================================================================= >>>> = >>>> --- head/sys/netinet/tcp_syncache.c Thu Apr 20 19:14:52 2017 (r31720 >>>> 7) >>>> +++ head/sys/netinet/tcp_syncache.c Thu Apr 20 19:19:33 2017 (r31720 >>>> 8) >>>> @@ -260,6 +260,7 @@ syncache_init(void) >>>> &V_tcp_syncache.hashbase[i].sch_mtx, 0); >>>> V_tcp_syncache.hashbase[i].sch_length = 0; >>>> V_tcp_syncache.hashbase[i].sch_sc = &V_tcp_syncache; >>>> + V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; >>> ... >>> This line produced the following on i386: >>> >>> /opt/src/svn-current/sys/netinet/tcp_syncache.c:263:50: error: implicit >>> conversion from 'long long' to 'time_t' (aka 'int') changes value from >>> -9223372036854775808 to 0 [-Werror,-Wconstant-conversion] >>> V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; >>> ~ ^~~~~~~~~ >>> ./x86/_stdint.h:91:41: note: expanded from macro 'INT64_MIN' >>> #define INT64_MIN (-0x7fffffffffffffffLL-1) >>> ~~~~~~~~~~~~~~~~~~~~~^~ >>> >>> Looks like it needs a time_t cast. >> >> A cast would just break the warning. INT64_MIN has nothing to do with >> time_t. The expression (time_t)INT64_MIN would be more obviously garbage >> since in the above it is not clear that sch_last_overflow has a type >> unrelated to the constant. > Fixed in https://svnweb.freebsd.org/changeset/base/317244 >> >> INT64_MIN is also broken if time_t is 64 bits but unsigned. Then it is >> converted to half of plus infinity instead of the intended minus infinity. > The patch assumes that time_t is signed, which is true for FreeBSD on all > platforms. Or am I missing a platform? Only future platforms. i386 should use time_t = uint32_t to fully support years 2038-2106 instead of time_t = int32_t to partially support years 1902-1970 (even time 0 (the Epoch) and other early hours in 1970 are not fully supported now and would be broken by unsigned time_t, since subtraction of the timezone offset from 0 gives negative values with signed time_t and overflowing values with unsigned time_t). (time_t)-1 is special, so the time 1 second before the Epoch cannot work with signed time_t. This value works better with unsigned time_t because it is not in the middle of the range, but times before the Epoch are just unrepresentable with unsigned time_t. Changing the signedness of time_t would break the ABI less than changing its size, but it still causes problems with buggy software which assumes that time_t is signed or encodes special values in it. Negative times are at best unspecified by POSIX. They give a large range of magic out of band values below 0, provided nothing assumes that the system is better designed than POSIX so supports times before the Epoch. Even the Standard C library is not that bad, except POSIX forces a bad design for time_t so mktime() and friends are restricted to times. If time_t is unsigned, then no times before the Epoch can work, and if it is signed then times before the Epoch are unportable. netinet could use non-negative times far in the past as out-of-band values if there are any. But it mostly uses monotonic times. The Epoch for monotonic times starts at boot time (modulo other bugs), so there are not enough times far enough in the past shortly after booting. If time_t is unsigned, there just aren't enough, and if it is signed there are only enough by using unportable negative times. Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 09:26:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D386DD47044; Fri, 21 Apr 2017 09:26:54 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7FC82FAC; Fri, 21 Apr 2017 09:26:54 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 7ABBF1FE022; Fri, 21 Apr 2017 11:26:52 +0200 (CEST) Subject: Re: svn commit: r317208 - head/sys/netinet To: Bruce Evans , Michael Tuexen References: <201704210143.v3L1h99s037727@slippy.cwsent.com> <20170421131041.G966@besplex.bde.org> <8BBC38A0-DDBA-4C04-9654-98755B3E4E13@freebsd.org> <20170421173453.J1735@besplex.bde.org> Cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <1920616c-1993-07d5-4855-73264dce0980@selasky.org> Date: Fri, 21 Apr 2017 11:25:02 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <20170421173453.J1735@besplex.bde.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 09:26:54 -0000 On 04/21/17 10:10, Bruce Evans wrote: > On Fri, 21 Apr 2017, Michael Tuexen wrote: > >>> On 21. Apr 2017, at 05:16, Bruce Evans wrote: >>> >>> On Thu, 20 Apr 2017, Cy Schubert wrote: >>> >>> Please trim quotes. >>> >>>> In message <201704201919.v3KJJYko052651@repo.freebsd.org>, Michael >>>> Tuexen >>>> write >>>> s: >>> >>> [>> ... 5 lines trimmed] >>> >>>>> Log: >>>>> Syncoockies can be used in combination with the syncache. If the >>>>> cache >>>>> overflows, syncookies are used. >>> >>> [>> ... 16 lines trimmed] >>> >>>>> Modified: head/sys/netinet/tcp_syncache.c >>>>> ============================================================================= >>>>> >>>>> = >>>>> --- head/sys/netinet/tcp_syncache.c Thu Apr 20 19:14:52 2017 >>>>> (r31720 >>>>> 7) >>>>> +++ head/sys/netinet/tcp_syncache.c Thu Apr 20 19:19:33 2017 >>>>> (r31720 >>>>> 8) >>>>> @@ -260,6 +260,7 @@ syncache_init(void) >>>>> &V_tcp_syncache.hashbase[i].sch_mtx, 0); >>>>> V_tcp_syncache.hashbase[i].sch_length = 0; >>>>> V_tcp_syncache.hashbase[i].sch_sc = &V_tcp_syncache; >>>>> + V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; >>>> ... >>>> This line produced the following on i386: >>>> >>>> /opt/src/svn-current/sys/netinet/tcp_syncache.c:263:50: error: implicit >>>> conversion from 'long long' to 'time_t' (aka 'int') changes value from >>>> -9223372036854775808 to 0 [-Werror,-Wconstant-conversion] >>>> V_tcp_syncache.hashbase[i].sch_last_overflow = INT64_MIN; >>>> ~ ^~~~~~~~~ >>>> ./x86/_stdint.h:91:41: note: expanded from macro 'INT64_MIN' >>>> #define INT64_MIN (-0x7fffffffffffffffLL-1) >>>> ~~~~~~~~~~~~~~~~~~~~~^~ >>>> >>>> Looks like it needs a time_t cast. >>> >>> A cast would just break the warning. INT64_MIN has nothing to do with >>> time_t. The expression (time_t)INT64_MIN would be more obviously >>> garbage >>> since in the above it is not clear that sch_last_overflow has a type >>> unrelated to the constant. >> Fixed in https://svnweb.freebsd.org/changeset/base/317244 >>> >>> INT64_MIN is also broken if time_t is 64 bits but unsigned. Then it is >>> converted to half of plus infinity instead of the intended minus >>> infinity. >> The patch assumes that time_t is signed, which is true for FreeBSD on all >> platforms. Or am I missing a platform? > > Only future platforms. > > i386 should use time_t = uint32_t to fully support years 2038-2106 instead > of time_t = int32_t to partially support years 1902-1970 > (even time 0 (the Epoch) and other early hours in 1970 are not fully > supported now and would be broken by unsigned time_t, since subtraction > of the timezone offset from 0 gives negative values with signed time_t > and overflowing values with unsigned time_t). (time_t)-1 is special, > so the time 1 second before the Epoch cannot work with signed time_t. > This value works better with unsigned time_t because it is not in the > middle of the range, but times before the Epoch are just unrepresentable > with unsigned time_t. > > Changing the signedness of time_t would break the ABI less than changing > its size, but it still causes problems with buggy software which assumes > that time_t is signed or encodes special values in it. Negative times > are at best unspecified by POSIX. They give a large range of magic out > of band values below 0, provided nothing assumes that the system is better > designed than POSIX so supports times before the Epoch. Even the Standard > C library is not that bad, except POSIX forces a bad design for time_t so > mktime() and friends are restricted to times. If time_t is unsigned, > then no times before the Epoch can work, and if it is signed then times > before > the Epoch are unportable. > > netinet could use non-negative times far in the past as out-of-band > values if there are any. But it mostly uses monotonic times. The > Epoch for monotonic times starts at boot time (modulo other bugs), so > there are not enough times far enough in the past shortly after booting. > If time_t is unsigned, there just aren't enough, and if it is signed > there are only enough by using unportable negative times. Hi, Your proposal to change time_t to unsigned type is potentially dangerous in combination with NTP, where negative time deltas may occur. Consider existing code like this, both in three and outside the tree. static time_t last; time_t now = time(); time_t delta delta = now - last; if (delta > 0) { /* do something */ } else { /* ignore */ } If time_t is now unsigned, then the check above becomes true for alomost all values of time_t, except zero, which is wrong! Can C-compilers assert signedness of a variable? I propose, utime_t -> unsigned time and stime_t -> signed time. --HPS From owner-svn-src-all@freebsd.org Fri Apr 21 10:11:10 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4306AD48106; Fri, 21 Apr 2017 10:11: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 mx1.freebsd.org (Postfix) with ESMTPS id 121D99FD; Fri, 21 Apr 2017 10:11:09 +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 v3LAB9qZ026114; Fri, 21 Apr 2017 10:11:09 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LAB9af026113; Fri, 21 Apr 2017 10:11:09 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704211011.v3LAB9af026113@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 21 Apr 2017 10:11:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317248 - stable/11/sys/x86/iommu X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 10:11:10 -0000 Author: kib Date: Fri Apr 21 10:11:08 2017 New Revision: 317248 URL: https://svnweb.freebsd.org/changeset/base/317248 Log: MFC r316851: Correct calculation of the entry->free_down in the invariants-checking code. Modified: stable/11/sys/x86/iommu/intel_gas.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/x86/iommu/intel_gas.c ============================================================================== --- stable/11/sys/x86/iommu/intel_gas.c Fri Apr 21 07:43:44 2017 (r317247) +++ stable/11/sys/x86/iommu/intel_gas.c Fri Apr 21 10:11:08 2017 (r317248) @@ -198,7 +198,7 @@ dmar_gas_check_free(struct dmar_domain * l->free_down)); } else { v = MAX(entry->free_after, l->free_down); - v = MAX(entry->free_down, r->free_down); + v = MAX(v, r->free_down); MPASS(entry->free_down == v); } } From owner-svn-src-all@freebsd.org Fri Apr 21 10:13:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F3BDFD482D1; Fri, 21 Apr 2017 10:13:08 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C329BD90; Fri, 21 Apr 2017 10:13:08 +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 v3LAD7QS026237; Fri, 21 Apr 2017 10:13:07 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LAD7fF026236; Fri, 21 Apr 2017 10:13:07 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704211013.v3LAD7fF026236@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 21 Apr 2017 10:13: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: r317249 - stable/11/sbin/fsck_ffs X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 10:13:09 -0000 Author: kib Date: Fri Apr 21 10:13:07 2017 New Revision: 317249 URL: https://svnweb.freebsd.org/changeset/base/317249 Log: MFC r316852: In fsck_ffs pass1, prevent the inosused variable from wrapping. PR: 218592 Modified: stable/11/sbin/fsck_ffs/pass1.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/fsck_ffs/pass1.c ============================================================================== --- stable/11/sbin/fsck_ffs/pass1.c Fri Apr 21 10:11:08 2017 (r317248) +++ stable/11/sbin/fsck_ffs/pass1.c Fri Apr 21 10:13:07 2017 (r317249) @@ -133,9 +133,14 @@ pass1(void) */ if ((preen || inoopt) && usedsoftdep && !rebuildcg) { cp = &cg_inosused(cgp)[(inosused - 1) / CHAR_BIT]; - for ( ; inosused > 0; inosused -= CHAR_BIT, cp--) { - if (*cp == 0) + for ( ; inosused != 0; cp--) { + if (*cp == 0) { + if (inosused > CHAR_BIT) + inosused -= CHAR_BIT; + else + inosused = 0; continue; + } for (i = 1 << (CHAR_BIT - 1); i > 0; i >>= 1) { if (*cp & i) break; @@ -143,8 +148,6 @@ pass1(void) } break; } - if (inosused < 0) - inosused = 0; } /* * Allocate inoinfo structures for the allocated inodes. From owner-svn-src-all@freebsd.org Fri Apr 21 10:16:36 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D252D4842E; Fri, 21 Apr 2017 10:16:36 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F12ECFAA; Fri, 21 Apr 2017 10:16:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LAGZ45026434; Fri, 21 Apr 2017 10:16:35 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LAGZMx026433; Fri, 21 Apr 2017 10:16:35 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201704211016.v3LAGZMx026433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 21 Apr 2017 10:16:35 +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: r317250 - stable/10/sbin/fsck_ffs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 10:16:36 -0000 Author: kib Date: Fri Apr 21 10:16:34 2017 New Revision: 317250 URL: https://svnweb.freebsd.org/changeset/base/317250 Log: MFC r316852: In fsck_ffs pass1, prevent the inosused variable from wrapping. PR: 218592 Modified: stable/10/sbin/fsck_ffs/pass1.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/fsck_ffs/pass1.c ============================================================================== --- stable/10/sbin/fsck_ffs/pass1.c Fri Apr 21 10:13:07 2017 (r317249) +++ stable/10/sbin/fsck_ffs/pass1.c Fri Apr 21 10:16:34 2017 (r317250) @@ -133,9 +133,14 @@ pass1(void) */ if ((preen || inoopt) && usedsoftdep && !rebuildcg) { cp = &cg_inosused(cgp)[(inosused - 1) / CHAR_BIT]; - for ( ; inosused > 0; inosused -= CHAR_BIT, cp--) { - if (*cp == 0) + for ( ; inosused != 0; cp--) { + if (*cp == 0) { + if (inosused > CHAR_BIT) + inosused -= CHAR_BIT; + else + inosused = 0; continue; + } for (i = 1 << (CHAR_BIT - 1); i > 0; i >>= 1) { if (*cp & i) break; @@ -143,8 +148,6 @@ pass1(void) } break; } - if (inosused < 0) - inosused = 0; } /* * Allocate inoinfo structures for the allocated inodes. From owner-svn-src-all@freebsd.org Fri Apr 21 11:41:44 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8FB26D49BC7; Fri, 21 Apr 2017 11:41:44 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-TO1-obe.outbound.protection.outlook.com (mail-eopbgr670061.outbound.protection.outlook.com [40.107.67.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 42F67ACF; Fri, 21 Apr 2017 11:41:43 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM (10.165.218.133) by YTXPR01MB0190.CANPRD01.PROD.OUTLOOK.COM (10.165.218.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.10; Fri, 21 Apr 2017 11:41:41 +0000 Received: from YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM ([10.165.218.133]) by YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM ([10.165.218.133]) with mapi id 15.01.1034.015; Fri, 21 Apr 2017 11:41:40 +0000 From: Rick Macklem To: Bruce Evans , Rick Macklem CC: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r317240 - head/sys/fs/nfs Thread-Topic: svn commit: r317240 - head/sys/fs/nfs Thread-Index: AQHSukG4mqORxxi2eUqFpYoQywI2x6HPSSuAgABqG6Y= Date: Fri, 21 Apr 2017 11:41:40 +0000 Message-ID: References: <201704210150.v3L1ofgl014509@repo.freebsd.org>, <20170421141623.A1141@besplex.bde.org> In-Reply-To: <20170421141623.A1141@besplex.bde.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: optusnet.com.au; dkim=none (message not signed) header.d=none;optusnet.com.au; dmarc=none action=none header.from=uoguelph.ca; x-microsoft-exchange-diagnostics: 1; YTXPR01MB0190; 7:zM5sS+ykvx9HtncusFOFSZXaNOiL2tfeg/20EtWWz4x58RNN0Q4CtvFc+7USUq4drIQRi08blGrb5ovYLCKMaHS0x+O74DvoOqKcBycWy4A1DFeTvC49WaB/rlCNr8s4oKt1Wm3/XwjrZ5Mjg0om/Hum2+F1CSkCpB5D3Bk779Uq3ENec82HyLNXQNsH0aZqNvRQxkz14AWzFnklRERijptbs7HWNrbovrMsiEph8qMPGurGAxDCKpWW3XWU+MImquHkXIFLMHlRLNiuVSlHZyVNtSsT1PEPxeIACYmhB5v4UwA7M6S+l+OvkvC1Jm3C1HPlqHv3y/VZGInnxPemRw== x-ms-office365-filtering-correlation-id: caedf6bf-5f62-4fde-ca9a-08d488ab60bb x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:YTXPR01MB0190; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(46150409022019)(96448707832919); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(6041248)(20161123560025)(201703131423075)(201702281529075)(201702281528075)(201703061421075)(20161123555025)(20161123564025)(20161123562025)(6072148); SRVR:YTXPR01MB0190; BCL:0; PCL:0; RULEID:; SRVR:YTXPR01MB0190; x-forefront-prvs: 02843AA9E0 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39400400002)(39840400002)(39450400003)(39850400002)(39410400002)(24454002)(377454003)(6246003)(305945005)(5660300001)(229853002)(8676002)(122556002)(74316002)(77096006)(54356999)(53546009)(9686003)(2900100001)(4326008)(102836003)(6506006)(76176999)(38730400002)(25786009)(551544002)(3280700002)(3660700001)(6436002)(7696004)(189998001)(50986999)(2906002)(54906002)(86362001)(55016002)(33656002)(74482002)(2950100002)(8936002)(53936002)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:YTXPR01MB0190; H:YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; MLV:sfv; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Apr 2017 11:41:40.8926 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR01MB0190 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 11:41:44 -0000 Yes, I agree that hardcoded values are bad. Thanks for pointing out the constants in sys/conf.h, I can use those instea= d. sys/conf.h does not have an entry for "nogroup", which is what has been use= d by nfsuserd since it was written. Is adding an entry to sys/conf.h for GID_NOGROUP ok to do? rick ps: I hope you don't mind the top post... ________________________________________ From: Bruce Evans Sent: Friday, April 21, 2017 1:19:25 AM To: Rick Macklem Cc: src-committers@freebsd.org; svn-src-all@freebsd.org; svn-src-head@freeb= sd.org Subject: Re: svn commit: r317240 - head/sys/fs/nfs On Fri, 21 Apr 2017, Rick Macklem wrote: > Log: > Set default uid/gid to nobody/nogroup for NFSv4 mapping. > > The default uid/gid for NFSv4 are set by the nfsuserd(8) daemon. > However, they were 0 until the nfsuserd(8) was run. Since it is > possible to use NFSv4 without running the nfsuserd(8) daemon, set them > to nobody/nogroup initially. > Without this patch, the values would be set by the nfsuserd(8) daemon > and left changed even if the nfsuserd(8) daemon was killed. Also, the de= fault > values of 0 meant that setting a group to "wheel" would fail even when > done by root and this patch fixes this issue. Hard-coding these values is wrong, and the actual values seem wronger. The values in nfsuserd(8) are clearly wrong. It hard-codes 32767 (with bogus casts) for both the default uid and the default gid. These values are in the user namespace have nothing to do with nobody/nogroup. > and left changed even if the nfsuserd(8) daemon was killed. Also, the de= fault > ... > Modified: head/sys/fs/nfs/nfs_commonsubs.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 00:45:44 2017 (r3= 17239) > +++ head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 01:50:41 2017 (r3= 17240) > @@ -63,8 +63,8 @@ int nfsrv_useacl =3D 1; > struct nfssockreq nfsrv_nfsuserdsock; > int nfsrv_nfsuserd =3D 0; > struct nfsreqhead nfsd_reqq; > -uid_t nfsrv_defaultuid; > -gid_t nfsrv_defaultgid; > +uid_t nfsrv_defaultuid =3D 65534; > +gid_t nfsrv_defaultgid =3D 65533; > int nfsrv_lease =3D NFSRV_LEASE; > int ncl_mbuf_mlen =3D MLEN; > int nfsd_enable_stringtouid =3D 0; These are the traditional values in /etc/group. It is bogus but traditiona= l to have a uid in /etc/group. nobody doesn't actually have group nogroup. nobody is also in the correct place (/etc/passwd) provided the sysadmin didn't meddle with this, but it has group 65534 there. Group 65533 is traditionally for kmem and tty in /etc/passwd. mountd uses the less bogus values with more bogus casts (uid_t)-2 and (gid_t)-2. These are obfuscated spellings of 0xfffffffe. You don't really want these values to depend on the types because then the values break when the types are expanded, like they already did for the expansion to 32 bits. These values should be reserved in /etc/passwd and /etc/group, but they still aren't, 20-25 years after the expansion. You don't want to spell these values in decimal because decimal values much larger than 65534 are too hard to convert back to hex to see what they mean. The bogus casts are to break warnings about converting the easy-to-remember (but wrong becaus they are negative) values of -2 to unsigned. The magic values are still incompletely documented in exports(8) as pure -2:-2. It doesn't mention nobody or any other magic numbers or any bugs in defaulting or specifying the numbers. Last time I looked, most utilities and even basic library functions had the usual errors for parsing large and negative values by misusing atoi() or strtol(). Many can't parse 0xfffffffe or even this value in decimal, so the value has to be spelled -2 so that undocumented overflow bugs can convert it to the correct value of 0xffffffffe. On 64-bit systems, it might be first converted to 0xffffffffffffffffe so another layer of overflow bugs is needed to get back to 0xfffffffe. Since library functions are buggy, it is at best unportable to put any of -2, 0xfffffffe or this value in hex in /etc/passwd or /etc/group. 65534 always worked there since it is much smaller than 32-bit LONG_MAX and the library was probably never bad enough to use atoi() and 16-bit ints. IIRC, -2 doesn't wrok in /etc/passwd, but is the only spelling that works near mountd. Checking now shows mountd using many different misparsing methods: - it uses only atoi() in parescred(). This can read -2 in /etc/exports, but misparses the correct value of 0xfffffffe to 0 and the correct value of this in decimal to 0x7fffffffl; it silently ignores errors in both cases; it blindly assigns to uid_t/gid_t, so -2 becomes the correct value - it uses strtol() with mostly missing and half wrong error checking for masklen - it uses strtoul() with mostly wrong but not so much missing error checking for -p. First it truncates the value to break its subsequent range checks... - its use of atoi() implicitly forces base 10. This is forced explicitly for the strtol() and strtoul(). This makes sure that hex never works. Hex is always misparsed as 0, and the resulting garbage after the 0 is only checked for after the strtoul() call. Kernel code shouldn't hard-code any user ids, starting with 0 for root (this is worse than 65534 for nobody since 0 is so special), but for devices I hard-coded many ids in . This works well enough and is better than implicit 0 for root provided everything uses the #defined values. It is better than scattered values of 32767, 65534, 65533 and 0xfffffffe and -2. Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 11:48:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61768D49CD4; Fri, 21 Apr 2017 11:48:13 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31A3FF0F; Fri, 21 Apr 2017 11:48:13 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LBmCKR064953; Fri, 21 Apr 2017 11:48:12 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LBmCOX064952; Fri, 21 Apr 2017 11:48:12 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704211148.v3LBmCOX064952@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Apr 2017 11:48:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317251 - head/sys/fs/nfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 11:48:13 -0000 Author: rmacklem Date: Fri Apr 21 11:48:12 2017 New Revision: 317251 URL: https://svnweb.freebsd.org/changeset/base/317251 Log: Revert r317240. I didn't realize there were defined constants for uid/gid values in sys/conf.h. I will do another commit using those. Modified: head/sys/fs/nfs/nfs_commonsubs.c Modified: head/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 10:16:34 2017 (r317250) +++ head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 11:48:12 2017 (r317251) @@ -63,8 +63,8 @@ int nfsrv_useacl = 1; struct nfssockreq nfsrv_nfsuserdsock; int nfsrv_nfsuserd = 0; struct nfsreqhead nfsd_reqq; -uid_t nfsrv_defaultuid = 65534; -gid_t nfsrv_defaultgid = 65533; +uid_t nfsrv_defaultuid; +gid_t nfsrv_defaultgid; int nfsrv_lease = NFSRV_LEASE; int ncl_mbuf_mlen = MLEN; int nfsd_enable_stringtouid = 0; From owner-svn-src-all@freebsd.org Fri Apr 21 11:53:28 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C33D8D49EF6; Fri, 21 Apr 2017 11:53:28 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id 55FF361F; Fri, 21 Apr 2017 11:53:27 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c122-106-153-191.carlnfd1.nsw.optusnet.com.au [122.106.153.191]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id 08AB91041A66; Fri, 21 Apr 2017 21:53:22 +1000 (AEST) Date: Fri, 21 Apr 2017 21:53:21 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Hans Petter Selasky cc: Bruce Evans , Michael Tuexen , Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317208 - head/sys/netinet In-Reply-To: <1920616c-1993-07d5-4855-73264dce0980@selasky.org> Message-ID: <20170421211348.I2311@besplex.bde.org> References: <201704210143.v3L1h99s037727@slippy.cwsent.com> <20170421131041.G966@besplex.bde.org> <8BBC38A0-DDBA-4C04-9654-98755B3E4E13@freebsd.org> <20170421173453.J1735@besplex.bde.org> <1920616c-1993-07d5-4855-73264dce0980@selasky.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=KeqiiUQD c=1 sm=1 tr=0 a=Tj3pCpwHnMupdyZSltBt7Q==:117 a=Tj3pCpwHnMupdyZSltBt7Q==:17 a=kj9zAlcOel0A:10 a=fC9__l7nNtu63dUNZJMA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 11:53:28 -0000 On Fri, 21 Apr 2017, Hans Petter Selasky wrote: > On 04/21/17 10:10, Bruce Evans wrote: >> ... >> i386 should use time_t = uint32_t to fully support years 2038-2106 instead >> of time_t = int32_t to partially support years 1902-1970 >> (even time 0 (the Epoch) and other early hours in 1970 are not fully >> supported now and would be broken by unsigned time_t, since subtraction >> of the timezone offset from 0 gives negative values with signed time_t >> and overflowing values with unsigned time_t). (time_t)-1 is special, >> so the time 1 second before the Epoch cannot work with signed time_t. >> This value works better with unsigned time_t because it is not in the >> middle of the range, but times before the Epoch are just unrepresentable >> with unsigned time_t. >> >> Changing the signedness of time_t would break the ABI less than changing >> its size, but it still causes problems with buggy software which assumes >> that time_t is signed or encodes special values in it. Negative times >> are at best unspecified by POSIX. They give a large range of magic out >> of band values below 0, provided nothing assumes that the system is better >> designed than POSIX so supports times before the Epoch. Even the Standard >> C library is not that bad, except POSIX forces a bad design for time_t so >> mktime() and friends are restricted to times. If time_t is unsigned, >> then no times before the Epoch can work, and if it is signed then times >> before >> the Epoch are unportable. > ... > > Your proposal to change time_t to unsigned type is potentially dangerous in > combination with NTP, where negative time deltas may occur. Consider existing > code like this, both in three and outside the tree. Yes, I already pointed out that there is a lot of buggy software out there. Maybe ntp understansd time_t, but its users might not. > static time_t last; > time_t now = time(); > time_t delta > > delta = now - last; This assumes something like POSIX plus signed time_t. In standard C, time_t can be almost anything so the subtraction is invalid. You have to use difftime(). difftime() was heavyweight when C was young, but now with time_t = double and difftime() inline, it is probably lighter and faster than POSIX timespecs. difftime(x, y) can be just x - y in 64-bit double precision, while timespecs may be bloated to 128 bits and are in a non-binary format that is hard to subtract. Timespecs do have a larger range. The precision of 64-bit double is only enough for microseconds resolution over 272 years. So it can easily replace timevals but not timespecs. In original POSIX, time_t could be any arithmetic type. This allowed it to be double. Good for userland but bad for kernels and sysctls, so few or no POSIX systems made it double. time_t is now integral in POSIX. It could be unsigned the last time I looked. > if (delta > 0) { > /* do something */ > } else { > /* ignore */ > } > > If time_t is now unsigned, then the check above becomes true for alomost all > values of time_t, except zero, which is wrong! Who would write such buggy code? :-) Practical POSIX code near ntp would probably use timespecs or timevals, and they can't be subtracted or compared easily anyway. FreeBSD has macros for this, but they are unportable and not as easy to use as difftime or simple conversion to floating point (except for timespecs, the conversion is not so simple since it may lose resolution). > Can C-compilers assert signedness of a variable? Yes, but they don't since this would find too many errors and non-errors for conversions. > I propose, utime_t -> unsigned time and stime_t -> signed time. That would just increase unportability and not help to avoid changing the size of time_t in standard APIs that require it. With another hat on, I lecture about the error of using unsigned types except in emergency. int32_t time_t rollover in 2038 is getting a bit closer to an emergency. Even for variables and types that were misdesigned to be unsigned, it is easy to forget this and use them in things like delta-calculations which require signed types. Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 11:58:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94A6CD47191; Fri, 21 Apr 2017 11:58:39 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id 5AC0F99C; Fri, 21 Apr 2017 11:58:38 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c122-106-153-191.carlnfd1.nsw.optusnet.com.au [122.106.153.191]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id 45E2ED66337; Fri, 21 Apr 2017 21:58:32 +1000 (AEST) Date: Fri, 21 Apr 2017 21:58:30 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Rick Macklem cc: Bruce Evans , Rick Macklem , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r317240 - head/sys/fs/nfs In-Reply-To: Message-ID: <20170421215452.R2416@besplex.bde.org> References: <201704210150.v3L1ofgl014509@repo.freebsd.org>, <20170421141623.A1141@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=AYLBJzfG c=1 sm=1 tr=0 a=Tj3pCpwHnMupdyZSltBt7Q==:117 a=Tj3pCpwHnMupdyZSltBt7Q==:17 a=kj9zAlcOel0A:10 a=p2sOvODb33Ro217gv_8A:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 11:58:39 -0000 On Fri, 21 Apr 2017, Rick Macklem wrote: > Yes, I agree that hardcoded values are bad. > Thanks for pointing out the constants in sys/conf.h, I can use those instead. > sys/conf.h does not have an entry for "nogroup", which is what has been used > by nfsuserd since it was written. > > Is adding an entry to sys/conf.h for GID_NOGROUP ok to do? It is currently mostly for device configuration, but the user/group defines in it are already misplaced (for convenience) so a couple more wouldn't hurt. > rick > ps: I hope you don't mind the top post... I prefer not. Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 13:39:16 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 393B3D4123A; Fri, 21 Apr 2017 13:39:16 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0AE9D1A24; Fri, 21 Apr 2017 13:39:15 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LDdFHR009447; Fri, 21 Apr 2017 13:39:15 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LDdFxk009446; Fri, 21 Apr 2017 13:39:15 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704211339.v3LDdFxk009446@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 21 Apr 2017 13:39:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317252 - head/gnu/usr.bin X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 13:39:16 -0000 Author: emaste Date: Fri Apr 21 13:39:14 2017 New Revision: 317252 URL: https://svnweb.freebsd.org/changeset/base/317252 Log: Simplify gnu/usr.bin Makefile conditions After r307655 MK_GDB is forced to no if MK_BINUTILS is no, and similarly MK_GROFF is forced to no if MK_CXX is no, so we can remove nested conditionals. Reviewed by: bapt, brooks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8287 Modified: head/gnu/usr.bin/Makefile Modified: head/gnu/usr.bin/Makefile ============================================================================== --- head/gnu/usr.bin/Makefile Fri Apr 21 11:48:12 2017 (r317251) +++ head/gnu/usr.bin/Makefile Fri Apr 21 13:39:14 2017 (r317252) @@ -5,21 +5,17 @@ .if ${MK_CXX} != "no" SUBDIR.${MK_GCC}+= gperf -SUBDIR.${MK_GROFF}+= groff .endif SUBDIR.${MK_BINUTILS}+= binutils SUBDIR.${MK_DIALOG}+= dialog - -.if ${MK_BINUTILS} != "no" -SUBDIR.${MK_GDB}+= gdb -SUBDIR_DEPEND_gdb= binutils -.endif - SUBDIR.${MK_GCC}+= cc SUBDIR.${MK_GNU_DIFF}+= diff3 SUBDIR.${MK_GNU_GREP}+= grep +SUBDIR.${MK_GDB}+= gdb +SUBDIR_DEPEND_gdb= binutils SUBDIR.${MK_GPL_DTC}+= dtc +SUBDIR.${MK_GROFF}+= groff SUBDIR.${MK_TESTS}+= tests SUBDIR_PARALLEL= From owner-svn-src-all@freebsd.org Fri Apr 21 13:45:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 308A8D415EC; Fri, 21 Apr 2017 13:45:03 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E6010242; Fri, 21 Apr 2017 13:45:02 +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 v3LDj2xr013801; Fri, 21 Apr 2017 13:45:02 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LDj2jK013800; Fri, 21 Apr 2017 13:45:02 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704211345.v3LDj2jK013800@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 21 Apr 2017 13:45:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317253 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 13:45:03 -0000 Author: mav Date: Fri Apr 21 13:45:01 2017 New Revision: 317253 URL: https://svnweb.freebsd.org/changeset/base/317253 Log: Add interface reference counting to if_lagg. Using plain ifunit() looks like request for troubles. MFC after: 2 weeks Modified: head/sys/net/if_lagg.c Modified: head/sys/net/if_lagg.c ============================================================================== --- head/sys/net/if_lagg.c Fri Apr 21 13:39:14 2017 (r317252) +++ head/sys/net/if_lagg.c Fri Apr 21 13:45:01 2017 (r317253) @@ -683,6 +683,7 @@ lagg_port_lladdr(struct lagg_port *lp, u if (llq == NULL) /* XXX what to do */ return; + if_ref(ifp); llq->llq_ifp = ifp; llq->llq_type = llq_type; bcopy(lladdr, llq->llq_lladdr, ETHER_ADDR_LEN); @@ -731,6 +732,7 @@ lagg_port_setlladdr(void *arg, int pendi EVENTHANDLER_INVOKE(iflladdr_event, ifp); CURVNET_RESTORE(); head = SLIST_NEXT(llq, llq_entries); + if_rele(ifp); free(llq, M_DEVBUF); } } @@ -805,6 +807,7 @@ lagg_port_create(struct lagg_softc *sc, lp->lp_output = ifp->if_output; ifp->if_output = lagg_port_output; + if_ref(ifp); lp->lp_ifp = ifp; lp->lp_softc = sc; @@ -958,6 +961,7 @@ lagg_port_destroy(struct lagg_port *lp, if (llq->llq_ifp == ifp) { SLIST_REMOVE(&sc->sc_llq_head, llq, lagg_llq, llq_entries); + if_rele(llq->llq_ifp); free(llq, M_DEVBUF); break; /* Only appears once */ } @@ -967,6 +971,7 @@ lagg_port_destroy(struct lagg_port *lp, if (lp->lp_ifflags) if_printf(ifp, "%s: lp_ifflags unclean\n", __func__); + if_rele(ifp); free(lp, M_DEVBUF); /* Update lagg capabilities */ @@ -1443,7 +1448,7 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd break; case SIOCGLAGGPORT: if (rp->rp_portname[0] == '\0' || - (tpif = ifunit(rp->rp_portname)) == NULL) { + (tpif = ifunit_ref(rp->rp_portname)) == NULL) { error = EINVAL; break; } @@ -1453,18 +1458,20 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd lp->lp_softc != sc) { error = ENOENT; LAGG_RUNLOCK(sc, &tracker); + if_rele(tpif); break; } lagg_port2req(lp, rp); LAGG_RUNLOCK(sc, &tracker); + if_rele(tpif); break; case SIOCSLAGGPORT: error = priv_check(td, PRIV_NET_LAGG); if (error) break; if (rp->rp_portname[0] == '\0' || - (tpif = ifunit(rp->rp_portname)) == NULL) { + (tpif = ifunit_ref(rp->rp_portname)) == NULL) { error = EINVAL; break; } @@ -1491,13 +1498,14 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd LAGG_WLOCK(sc); error = lagg_port_create(sc, tpif); LAGG_WUNLOCK(sc); + if_rele(tpif); break; case SIOCSLAGGDELPORT: error = priv_check(td, PRIV_NET_LAGG); if (error) break; if (rp->rp_portname[0] == '\0' || - (tpif = ifunit(rp->rp_portname)) == NULL) { + (tpif = ifunit_ref(rp->rp_portname)) == NULL) { error = EINVAL; break; } @@ -1507,11 +1515,13 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd lp->lp_softc != sc) { error = ENOENT; LAGG_WUNLOCK(sc); + if_rele(tpif); break; } error = lagg_port_destroy(lp, 1); LAGG_WUNLOCK(sc); + if_rele(tpif); break; case SIOCSIFFLAGS: /* Set flags on ports too */ From owner-svn-src-all@freebsd.org Fri Apr 21 14:22:31 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4EB5DD48724; Fri, 21 Apr 2017 14:22:31 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id CE5488E1; Fri, 21 Apr 2017 14:22:30 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c122-106-153-191.carlnfd1.nsw.optusnet.com.au [122.106.153.191]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id 2004C10C774; Sat, 22 Apr 2017 00:22:28 +1000 (AEST) Date: Sat, 22 Apr 2017 00:22:27 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Bruce Evans cc: Jung-uk Kim , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317231 - head/usr.bin/systat In-Reply-To: <20170421131652.P966@besplex.bde.org> Message-ID: <20170421232411.H2704@besplex.bde.org> References: <201704202230.v3KMUdAm030762@repo.freebsd.org> <20170421131652.P966@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=AYLBJzfG c=1 sm=1 tr=0 a=Tj3pCpwHnMupdyZSltBt7Q==:117 a=Tj3pCpwHnMupdyZSltBt7Q==:17 a=kj9zAlcOel0A:10 a=j1YcvcGwAk2caA5GzGUA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 14:22:31 -0000 On Fri, 21 Apr 2017, Bruce Evans wrote: > On Thu, 20 Apr 2017, Jung-uk Kim wrote: > >> Log: >> Fix systat(1) regression. It was broken by r317061. > > It is more broken than before. Now it fails when the kernel is older > than the utility instead of vice versa. When it fails, the failures > are more serious than before. systat -v actually does complete > checking for errors (some are only errors in itself), but mishandles > them. It reports the errors on the status line and continues. The > error message overwrites the previous one. Continuing is more broken > than before: The follow patch reduces the ABI breakage as much as possible. On a lightly loaded system, the maximum value in any counter used by top, vmstat or systat -v is growing at a rate of 1M per hour, so the 32-bit variables in the application are enough for about 166 days. I only applied the fix to some counter sysctls with broken ABIs, but wrote it for general use. It doesn't handle SYSCTL_IN(), and assumes unsigned counters. X Index: subr_counter.c X =================================================================== X --- subr_counter.c (revision 317243) X +++ subr_counter.c (working copy) X @@ -74,6 +75,95 @@ X uma_zfree(pcpu_zone_64, c); X } X X +/* Output a signed integer with the caller's size as well as possible. */ X +__unused X +static int X +sysctl_out_i(struct sysctl_req *req, intmax_t val) X +{ X + intmax_t valtrunc; X + int64_t val64; X + int32_t val32; X + int16_t val16; X + int8_t val8; X + int error; X + X + switch (req->oldlen) { X + case 1: X + valtrunc = val8 = val; X + error = SYSCTL_OUT(req, &val8, 1); X + break; X + case 2: X + valtrunc = val16 = val; X + error = SYSCTL_OUT(req, &val16, 2); X + break; X + case 4: X + valtrunc = val32 = val; X + error = SYSCTL_OUT(req, &val32, 4); X + break; X + case 8: X + valtrunc = val64 = val; X + error = SYSCTL_OUT(req, &val64, 8); X + break; X + default: X + valtrunc = val; X + error = SYSCTL_OUT(req, &val, sizeof(val)); X + break; X + } X + if (valtrunc != val && error == 0) X + error = EOVERFLOW; X + return (error); X +} X + X +uintmax_t sysoui_max; X + X +/* Output an unsigned integer with the caller's size as well as possible. */ X +static int X +sysctl_out_ui(struct sysctl_req *req, uintmax_t val) X +{ X + uintmax_t valtrunc; X + uint64_t val64; X + uint32_t val32; X + uint16_t val16; X + uint8_t val8; X + int error; X + X + if (sysoui_max < val) { X + sysoui_max = val; X + if ((val & 0xffff) == 0) X + printf("new sysoui_max %#jx\n", val); X + } X + val64 = val32 = val16 = val8 = 0; X + switch (req->oldlen) { X + case 1: X + valtrunc = val8 = val; X + error = SYSCTL_OUT(req, &val8, 1); X + break; X + case 2: X + valtrunc = val16 = val; X + error = SYSCTL_OUT(req, &val16, 2); X + break; X + case 4: X + valtrunc = val32 = val; X + error = SYSCTL_OUT(req, &val32, 4); X + break; X + case 8: X + valtrunc = val64 = val; X + error = SYSCTL_OUT(req, &val64, 8); X + break; X + default: X + valtrunc = val; X + error = SYSCTL_OUT(req, &val, sizeof(val)); X + break; X + } X + if (valtrunc != val && error == 0) { X + printf( X + "val %#jx, valtrunc %#jx, val64 %#jx, val32 %#x, val16 %#x, val8 %#x\n", X + val, valtrunc, val64, val32, val16, val8); X + error = EOVERFLOW; X + } X + return (error); X +} X + X int X sysctl_handle_counter_u64(SYSCTL_HANDLER_ARGS) X { X @@ -82,7 +172,7 @@ X X out = counter_u64_fetch(*(counter_u64_t *)arg1); X X - error = SYSCTL_OUT(req, &out, sizeof(uint64_t)); X + error = sysctl_out_ui(req, out); X X if (error || !req->newptr) X return (error); Bruce From owner-svn-src-all@freebsd.org Fri Apr 21 14:36:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B63DFD48A53; Fri, 21 Apr 2017 14:36:11 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 79784E0A; Fri, 21 Apr 2017 14:36:11 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LEaA4B035525; Fri, 21 Apr 2017 14:36:10 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LEa9Ns035517; Fri, 21 Apr 2017 14:36:09 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704211436.v3LEa9Ns035517@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 21 Apr 2017 14:36:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317254 - in head: share/man/man5 share/mk tools/build/options usr.bin/grep X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 14:36:11 -0000 Author: emaste Date: Fri Apr 21 14:36:09 2017 New Revision: 317254 URL: https://svnweb.freebsd.org/changeset/base/317254 Log: bsdgrep: add BSD_GREP_FASTMATCH knob for built-in fastmatch Bugs have been found in the fastmatch implementation as used in bsdgrep. Some have been fixed (r316495) while fixes for others are in review (D10098). In comparison with the fastmatch implementation, Kyle Evans found that: - regex(3)'s performance with literal expressions offers a speed improvement over fastmatch - regex(3)'s performance, both with simple BREs and EREs, seems to be comparable The regex implementation was imported in r226035, and the commit message reports: This is a temporary solution until the whole regex library is not replaced so that BSD grep development can continue and the backported code gets some review and testing. This change only improves scalability slightly, there is no big performance boost yet but several minor bugs have been found and fixed. Introduce a WITH_/WITHOUT_BSD_GREP_FASTMATCH knob to support testing of both approaches. PR: 175314, 194823 Submitted by: Kyle Evans Reviewed by: bdrewery (in part) Differential Revision: https://reviews.freebsd.org/D10282 Added: head/tools/build/options/WITHOUT_BSD_GREP_FASTMATCH (contents, props changed) Modified: head/share/man/man5/src.conf.5 head/share/mk/src.opts.mk head/usr.bin/grep/Makefile head/usr.bin/grep/grep.c head/usr.bin/grep/grep.h head/usr.bin/grep/util.c Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Fri Apr 21 13:45:01 2017 (r317253) +++ head/share/man/man5/src.conf.5 Fri Apr 21 14:36:09 2017 (r317254) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd April 19, 2017 +.Dd April 21, 2017 .Dt SRC.CONF 5 .Os .Sh NAME @@ -215,6 +215,11 @@ Set to not build the BSD licensed versio .Xr libarchive 3 . .It Va WITH_BSD_GREP Install BSD-licensed grep as '[ef]grep' instead of GNU grep. +.It Va WITHOUT_BSD_GREP_FASTMATCH +Set this option to exclude the fastmatch implementation from +.Xr bsdgrep 1 , +instead using only +.Xr regex 3 . .It Va WITHOUT_BSNMP Set to not build or install .Xr bsnmpd 1 Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Fri Apr 21 13:45:01 2017 (r317253) +++ head/share/mk/src.opts.mk Fri Apr 21 14:36:09 2017 (r317254) @@ -62,6 +62,7 @@ __DEFAULT_YES_OPTIONS = \ BOOTPARAMD \ BOOTPD \ BSD_CPIO \ + BSD_GREP_FASTMATCH \ BSDINSTALL \ BSNMP \ BZIP2 \ Added: head/tools/build/options/WITHOUT_BSD_GREP_FASTMATCH ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/options/WITHOUT_BSD_GREP_FASTMATCH Fri Apr 21 14:36:09 2017 (r317254) @@ -0,0 +1,5 @@ +.\" $FreeBSD$ +Set this option to exclude the fastmatch implementation from +.Xr bsdgrep 1 , +instead using only +.Xr regex 3 . Modified: head/usr.bin/grep/Makefile ============================================================================== --- head/usr.bin/grep/Makefile Fri Apr 21 13:45:01 2017 (r317253) +++ head/usr.bin/grep/Makefile Fri Apr 21 14:36:09 2017 (r317254) @@ -15,10 +15,14 @@ bsdgrep.1: grep.1 .endif SRCS= file.c grep.c queue.c util.c -# Extra files ported backported form some regex improvements +.if ${MK_BSD_GREP_FASTMATCH} == "yes" +# Extra files ported backported for some regex improvements .PATH: ${.CURDIR}/regex SRCS+= fastmatch.c hashtable.c tre-compile.c tre-fastmatch.c CFLAGS+=-I${.CURDIR}/regex +.else +CFLAGS+= -DWITHOUT_FASTMATCH +.endif CFLAGS.gcc+= --param max-inline-insns-single=500 Modified: head/usr.bin/grep/grep.c ============================================================================== --- head/usr.bin/grep/grep.c Fri Apr 21 13:45:01 2017 (r317253) +++ head/usr.bin/grep/grep.c Fri Apr 21 14:36:09 2017 (r317254) @@ -49,7 +49,9 @@ __FBSDID("$FreeBSD$"); #include #include +#ifndef WITHOUT_FASTMATCH #include "fastmatch.h" +#endif #include "grep.h" #ifndef WITHOUT_NLS @@ -86,7 +88,9 @@ unsigned int patterns; static unsigned int pattern_sz; struct pat *pattern; regex_t *r_pattern; +#ifndef WITHOUT_FASTMATCH fastmatch_t *fg_pattern; +#endif /* Filename exclusion/inclusion patterns */ unsigned int fpatterns, dpatterns; @@ -715,20 +719,25 @@ main(int argc, char *argv[]) usage(); } +#ifndef WITHOUT_FASTMATCH fg_pattern = grep_calloc(patterns, sizeof(*fg_pattern)); +#endif r_pattern = grep_calloc(patterns, sizeof(*r_pattern)); /* Check if cheating is allowed (always is for fgrep). */ for (i = 0; i < patterns; ++i) { +#ifndef WITHOUT_FASTMATCH + /* Attempt compilation with fastmatch regex and fallback to + regex(3) if it fails. */ if (fastncomp(&fg_pattern[i], pattern[i].pat, - pattern[i].len, cflags) != 0) { - /* Fall back to full regex library */ - c = regcomp(&r_pattern[i], pattern[i].pat, cflags); - if (c != 0) { - regerror(c, &r_pattern[i], re_error, - RE_ERROR_BUF); - errx(2, "%s", re_error); - } + pattern[i].len, cflags) == 0) + continue; +#endif + c = regcomp(&r_pattern[i], pattern[i].pat, cflags); + if (c != 0) { + regerror(c, &r_pattern[i], re_error, + RE_ERROR_BUF); + errx(2, "%s", re_error); } } Modified: head/usr.bin/grep/grep.h ============================================================================== --- head/usr.bin/grep/grep.h Fri Apr 21 13:45:01 2017 (r317253) +++ head/usr.bin/grep/grep.h Fri Apr 21 14:36:09 2017 (r317254) @@ -36,7 +36,9 @@ #include #include +#ifndef WITHOUT_FASTMATCH #include "fastmatch.h" +#endif #ifdef WITHOUT_NLS #define getstr(n) errstr[n] @@ -127,7 +129,9 @@ extern unsigned int dpatterns, fpatterns extern struct pat *pattern; extern struct epat *dpattern, *fpattern; extern regex_t *er_pattern, *r_pattern; +#ifndef WITHOUT_FASTMATCH extern fastmatch_t *fg_pattern; +#endif /* For regex errors */ #define RE_ERROR_BUF 512 Modified: head/usr.bin/grep/util.c ============================================================================== --- head/usr.bin/grep/util.c Fri Apr 21 13:45:01 2017 (r317253) +++ head/usr.bin/grep/util.c Fri Apr 21 14:36:09 2017 (r317254) @@ -49,7 +49,9 @@ __FBSDID("$FreeBSD$"); #include #include +#ifndef WITHOUT_FASTMATCH #include "fastmatch.h" +#endif #include "grep.h" static int linesqueued; @@ -317,10 +319,12 @@ procline(struct str *l, int nottext) for (i = 0; i < patterns; i++) { pmatch.rm_so = st; pmatch.rm_eo = l->len; +#ifndef WITHOUT_FASTMATCH if (fg_pattern[i].pattern) r = fastexec(&fg_pattern[i], l->dat, 1, &pmatch, leflags); else +#endif r = regexec(&r_pattern[i], l->dat, 1, &pmatch, leflags); r = (r == 0) ? 0 : REG_NOMATCH; @@ -332,7 +336,11 @@ procline(struct str *l, int nottext) (size_t)pmatch.rm_eo != l->len) r = REG_NOMATCH; /* Check for whole word match */ +#ifndef WITHOUT_FASTMATCH if (r == 0 && (wflag || fg_pattern[i].word)) { +#else + if (r == 0 && wflag) { +#endif wchar_t wbegin, wend; wbegin = wend = L' '; From owner-svn-src-all@freebsd.org Fri Apr 21 14:39:29 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F33BBD48C40 for ; Fri, 21 Apr 2017 14:39:29 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1a.eu.mailhop.org (outbound1a.eu.mailhop.org [52.58.109.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8CB43108D for ; Fri, 21 Apr 2017 14:39:28 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: 4ed58442-26a0-11e7-b96e-2378c10e3beb X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound1.eu.mailhop.org (Halon) with ESMTPSA id 4ed58442-26a0-11e7-b96e-2378c10e3beb; Fri, 21 Apr 2017 14:39:23 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id v3LEdH8P003681; Fri, 21 Apr 2017 08:39:17 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1492785557.56859.9.camel@freebsd.org> Subject: Re: svn commit: r317208 - head/sys/netinet From: Ian Lepore To: Bruce Evans , Hans Petter Selasky Cc: Michael Tuexen , Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Fri, 21 Apr 2017 08:39:17 -0600 In-Reply-To: <20170421211348.I2311@besplex.bde.org> References: <201704210143.v3L1h99s037727@slippy.cwsent.com> <20170421131041.G966@besplex.bde.org> <8BBC38A0-DDBA-4C04-9654-98755B3E4E13@freebsd.org> <20170421173453.J1735@besplex.bde.org> <1920616c-1993-07d5-4855-73264dce0980@selasky.org> <20170421211348.I2311@besplex.bde.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 14:39:30 -0000 On Fri, 2017-04-21 at 21:53 +1000, Bruce Evans wrote: > On Fri, 21 Apr 2017, Hans Petter Selasky wrote: > > > On 04/21/17 10:10, Bruce Evans wrote: > >> ... > >> [...] > > With another hat on, I lecture about the error of using unsigned types > except in emergency.  int32_t time_t rollover in 2038 is getting a bit > closer to an emergency.  Even for variables and types that were > misdesigned to be unsigned, it is easy to forget this and use them in > things like delta-calculations which require signed types. > > Bruce > In freebsd, only i386 and powerpc32 use 32-bit time_t.  So we have 21 years left to wither-away all use of those 32-bit arches. :) With laptops and other portable devices increasingly being built around arm chips, and powerpc32 being relegated mostly to special purpose embedded systems, it may just happen naturally.  (As someone who builds special purpose embedded systems related to timekeeping, it probably won't be as easy or natural for me.) -- Ian From owner-svn-src-all@freebsd.org Fri Apr 21 14:50:30 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8874D48182; Fri, 21 Apr 2017 14:50:30 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6B74A18D5; Fri, 21 Apr 2017 14:50:30 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LEoTEK039854; Fri, 21 Apr 2017 14:50:29 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LEoTIl039851; Fri, 21 Apr 2017 14:50:29 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201704211450.v3LEoTIl039851@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 21 Apr 2017 14:50:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317255 - in head: share/man/man5 share/mk tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 14:50:30 -0000 Author: emaste Date: Fri Apr 21 14:50:29 2017 New Revision: 317255 URL: https://svnweb.freebsd.org/changeset/base/317255 Log: bsdgrep: disable GNU_GREP_COMPAT by default The GNU extension bits in the base system are old, no longer faithful to upstream, and surprising in some regards. Switch to documenting WITH_GNU_GREP_COMPAT and default GNU_GREP_COMPAT to OFF in the name of good behavior. According to http://www.regular-expressions.info, GNU extensions: - Add missing quantifiers to BREs: \?, \+ - Add branching to BREs: \| - Add backreferences (\1 through \9) to EREs - Add \w, \W, \s, and \S corresponding to :alnum:, [^[:alnum:]], :space:, and [^[:space:]] respectively - Add word boundaries and anchors: \b: word boundary \B: not word boundary \<: Strt of word \>: End of word \`: Start of subject string \': End of subject string These extensions are still available in /usr/bin/grep by default today, as it is still GNU grep. As part of the bsdgrep migration plan these extensions may be added to bsdgrep's regex support if necessary. Submitted by: Kyle Evans Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D10114 Added: head/tools/build/options/WITH_GNU_GREP_COMPAT (contents, props changed) Modified: head/share/man/man5/src.conf.5 head/share/mk/src.opts.mk Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Fri Apr 21 14:36:09 2017 (r317254) +++ head/share/man/man5/src.conf.5 Fri Apr 21 14:50:29 2017 (r317255) @@ -732,9 +732,10 @@ and .It Va WITHOUT_GNU_GREP Set to not build GNU .Xr grep 1 . -.It Va WITHOUT_GNU_GREP_COMPAT -Set this option to omit the gnu extensions to grep from being included in -BSD grep. +.It Va WITH_GNU_GREP_COMPAT +Set this option to include GNU extensions in +.Xr bsdgrep 1 +by linking against libgnuregex. .It Va WITHOUT_GPIO Set to not build .Xr gpioctl 8 Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Fri Apr 21 14:36:09 2017 (r317254) +++ head/share/mk/src.opts.mk Fri Apr 21 14:50:29 2017 (r317255) @@ -99,7 +99,6 @@ __DEFAULT_YES_OPTIONS = \ GCOV \ GNU_DIFF \ GNU_GREP \ - GNU_GREP_COMPAT \ GPIO \ GPL_DTC \ GROFF \ @@ -181,6 +180,7 @@ __DEFAULT_NO_OPTIONS = \ BSD_GREP \ CLANG_EXTRAS \ DTRACE_TESTS \ + GNU_GREP_COMPAT \ HESIOD \ LIBSOFT \ NAND \ Added: head/tools/build/options/WITH_GNU_GREP_COMPAT ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/options/WITH_GNU_GREP_COMPAT Fri Apr 21 14:50:29 2017 (r317255) @@ -0,0 +1,4 @@ +.\" $FreeBSD$ +Set this option to include GNU extensions in +.Xr bsdgrep 1 +by linking against libgnuregex. From owner-svn-src-all@freebsd.org Fri Apr 21 15:12:44 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E28C0D488EB; Fri, 21 Apr 2017 15:12:44 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9BC68A63; Fri, 21 Apr 2017 15:12:44 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LFChuv052102; Fri, 21 Apr 2017 15:12:43 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LFChXG052101; Fri, 21 Apr 2017 15:12:43 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704211512.v3LFChXG052101@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Fri, 21 Apr 2017 15:12:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317256 - head/sys/dev/syscons X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 15:12:45 -0000 Author: bde Date: Fri Apr 21 15:12:43 2017 New Revision: 317256 URL: https://svnweb.freebsd.org/changeset/base/317256 Log: Merge the main ega drawing method into the main vga planar method and remove the former. All other EGA/VGA methods were already shared, with VGA-only features mostly not used and no decisions in inner loops to optimize fof VGA, but this method was split up because it is the only important one and using VGA methods if possible is about twice as fast. The speed is mostly not from splitting to reduce branches but from doing half as many bus accesses, so make this easier to maintain by not splitting. There is now 1 extra branch in an inner loop where it costs less than 1% of the bus access overhead on Haswell even if the compiler schedules it poorly. Modified: head/sys/dev/syscons/scvgarndr.c Modified: head/sys/dev/syscons/scvgarndr.c ============================================================================== --- head/sys/dev/syscons/scvgarndr.c Fri Apr 21 14:50:29 2017 (r317255) +++ head/sys/dev/syscons/scvgarndr.c Fri Apr 21 15:12:43 2017 (r317256) @@ -71,7 +71,6 @@ static vr_clear_t vga_pxlclear_direct; static vr_clear_t vga_pxlclear_planar; static vr_draw_border_t vga_pxlborder_direct; static vr_draw_border_t vga_pxlborder_planar; -static vr_draw_t vga_egadraw; static vr_draw_t vga_vgadraw_direct; static vr_draw_t vga_vgadraw_planar; static vr_set_cursor_t vga_pxlcursor_shape; @@ -524,10 +523,7 @@ vga_rndrinit(scr_stat *scp) if (scp->sc->adp->va_info.vi_mem_model == V_INFO_MM_PLANAR) { scp->rndr->clear = vga_pxlclear_planar; scp->rndr->draw_border = vga_pxlborder_planar; - if (scp->sc->adp->va_type == KD_VGA) - scp->rndr->draw = vga_vgadraw_planar; - else - scp->rndr->draw = vga_egadraw; + scp->rndr->draw = vga_vgadraw_planar; scp->rndr->draw_cursor = vga_pxlcursor_planar; scp->rndr->blink_cursor = vga_pxlblink_planar; scp->rndr->draw_mouse = vga_pxlmouse_planar; @@ -684,64 +680,6 @@ vga_pxlborder_planar(scr_stat *scp, int outw(GDCIDX, 0x0001); /* set/reset enable */ } -static void -vga_egadraw(scr_stat *scp, int from, int count, int flip) -{ - vm_offset_t d; - vm_offset_t e; - u_char *f; - u_short bg; - u_short col1, col2; - int line_width; - int i, j; - int a; - u_char c; - - line_width = scp->sc->adp->va_line_width; - - d = GET_PIXEL(scp, from, 1, line_width); - - outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */ - outw(GDCIDX, 0x0003); /* data rotate/function select */ - outw(GDCIDX, 0x0f01); /* set/reset enable */ - bg = -1; - if (from + count > scp->xsize*scp->ysize) - count = scp->xsize*scp->ysize - from; - for (i = from; count-- > 0; ++i) { - a = sc_vtb_geta(&scp->vtb, i); - if (flip) { - col1 = ((a & 0x7000) >> 4) | (a & 0x0800); - col2 = ((a & 0x8000) >> 4) | (a & 0x0700); - } else { - col1 = (a & 0x0f00); - col2 = (a & 0xf000) >> 4; - } - /* set background color in EGA/VGA latch */ - if (bg != col2) { - bg = col2; - outw(GDCIDX, bg | 0x00); /* set/reset */ - outw(GDCIDX, 0xff08); /* bit mask */ - writeb(d, 0); - c = readb(d); /* set bg color in the latch */ - } - /* foreground color */ - outw(GDCIDX, col1 | 0x00); /* set/reset */ - e = d; - f = &(scp->font[sc_vtb_getc(&scp->vtb, i)*scp->font_size]); - for (j = 0; j < scp->font_size; ++j, ++f) { - outw(GDCIDX, (*f << 8) | 0x08); /* bit mask */ - writeb(e, 0); - e += line_width; - } - ++d; - if ((i % scp->xsize) == scp->xsize - 1) - d += scp->font_size * line_width - scp->xsize; - } - outw(GDCIDX, 0x0000); /* set/reset */ - outw(GDCIDX, 0x0001); /* set/reset enable */ - outw(GDCIDX, 0xff08); /* bit mask */ -} - static void vga_vgadraw_direct(scr_stat *scp, int from, int count, int flip) { @@ -809,10 +747,13 @@ vga_vgadraw_planar(scr_stat *scp, int fr d = GET_PIXEL(scp, from, 1, line_width); - outw(GDCIDX, 0x0305); /* read mode 0, write mode 3 */ + if (scp->sc->adp->va_type == KD_VGA) { + outw(GDCIDX, 0x0305); /* read mode 0, write mode 3 */ + outw(GDCIDX, 0xff08); /* bit mask */ + } else + outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */ outw(GDCIDX, 0x0003); /* data rotate/function select */ outw(GDCIDX, 0x0f01); /* set/reset enable */ - outw(GDCIDX, 0xff08); /* bit mask */ bg = -1; if (from + count > scp->xsize*scp->ysize) count = scp->xsize*scp->ysize - from; @@ -829,6 +770,8 @@ vga_vgadraw_planar(scr_stat *scp, int fr if (bg != col2) { bg = col2; outw(GDCIDX, bg | 0x00); /* set/reset */ + if (scp->sc->adp->va_type != KD_VGA) + outw(GDCIDX, 0xff08); /* bit mask */ writeb(d, 0xff); c = readb(d); /* set bg color in the latch */ } @@ -837,14 +780,22 @@ vga_vgadraw_planar(scr_stat *scp, int fr e = d; f = &(scp->font[sc_vtb_getc(&scp->vtb, i)*scp->font_size]); for (j = 0; j < scp->font_size; ++j, ++f) { - writeb(e, *f); + if (scp->sc->adp->va_type == KD_VGA) + writeb(e, *f); + else { + outw(GDCIDX, (*f << 8) | 0x08); /* bit mask */ + writeb(e, 0); + } e += line_width; } ++d; if ((i % scp->xsize) == scp->xsize - 1) d += scp->font_size * line_width - scp->xsize; } - outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */ + if (scp->sc->adp->va_type == KD_VGA) + outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */ + else + outw(GDCIDX, 0xff08); /* bit mask */ outw(GDCIDX, 0x0000); /* set/reset */ outw(GDCIDX, 0x0001); /* set/reset enable */ } From owner-svn-src-all@freebsd.org Fri Apr 21 15:15:34 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86DA0D4897B; Fri, 21 Apr 2017 15:15:34 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-qk0-x22c.google.com (mail-qk0-x22c.google.com [IPv6:2607:f8b0:400d:c09::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3E8BAC0B; Fri, 21 Apr 2017 15:15:34 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-qk0-x22c.google.com with SMTP id y63so44062137qkd.1; Fri, 21 Apr 2017 08:15:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=4VAH0G2/GkNQ9vdkxRJf4mzykPiFaY0li5XbbuVE2E0=; b=IqV04+O7k8mwm9pkD53uz47LQVjrYNl66qojO6Fhdh3LIJxg4T+9ijDGyzeF44/C2K Y4fDx38SNKJZQPCT85ISZG/+aUg7OmUJLVANjpIRwpBLduc/MumYGNVSYkHkOjJda4x6 kU995+h4lOs6s87erhN/r/QfX/XfdLrEYfhJ5wMJqzpTQOunwASUgQ12djZguqcLAYZs zwC8ykdrQRhW2N9ly+7+Z9ZJ2HosXo4pklFjMFdWzPpDte0h17toLNvKU0IXoMUVrni7 YqrQn2GCTWgLLHnIaQ9zuwCBDyaIZXJ4FIw5tkpOgmuXjzuYd55bmL8Pj6gr8fXWiWQj TVKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=4VAH0G2/GkNQ9vdkxRJf4mzykPiFaY0li5XbbuVE2E0=; b=D0bHTNp9sRAmiZ1sa6beoKgCBzAICM3rGoUU0DuNTYo6xL34qvpwwEVtS2r+rSh8HK dhyYBThHDF0ckvLR6AnEAOU+madgANm2Ku98W3yOTnr5qvcCNS6R4ThyDtDoWViq/+v+ K0a65mmYWE8UMrVGkVGaYuto3yunJHqYkpcH0c6EpjZTw8uT9BoWwGlwcgFKL5A5ov/f K/wAJgW3KbXiF+ro+u5+arv9HsGeZd0P8zp1b/oNstN+sDQD0+FohfraOkguv9NjzQPE YlASpCxxPf9nVJvwwFVrnb+78gtVCBn9OU9oLt47uUfOiXl/duPxfOz02OEJF7+H6MnE DKPg== X-Gm-Message-State: AN3rC/5HP66D882XJzoxLdWLjKvwivawqKCQ6f1mqDyj6xOmQFXXaojs jnjFMzarPQQVoO9nlujh7tApmBPgvQ== X-Received: by 10.55.168.9 with SMTP id r9mr14484813qke.239.1492787733345; Fri, 21 Apr 2017 08:15:33 -0700 (PDT) MIME-Version: 1.0 Sender: chmeeedalf@gmail.com Received: by 10.12.178.219 with HTTP; Fri, 21 Apr 2017 08:15:32 -0700 (PDT) In-Reply-To: <1492785557.56859.9.camel@freebsd.org> References: <201704210143.v3L1h99s037727@slippy.cwsent.com> <20170421131041.G966@besplex.bde.org> <8BBC38A0-DDBA-4C04-9654-98755B3E4E13@freebsd.org> <20170421173453.J1735@besplex.bde.org> <1920616c-1993-07d5-4855-73264dce0980@selasky.org> <20170421211348.I2311@besplex.bde.org> <1492785557.56859.9.camel@freebsd.org> From: Justin Hibbits Date: Fri, 21 Apr 2017 10:15:32 -0500 X-Google-Sender-Auth: BnExYivl89LvipkeZqRke8HIYcA Message-ID: Subject: Re: svn commit: r317208 - head/sys/netinet To: Ian Lepore Cc: Bruce Evans , Hans Petter Selasky , Michael Tuexen , Cy Schubert , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 15:15:34 -0000 On Fri, Apr 21, 2017 at 9:39 AM, Ian Lepore wrote: > On Fri, 2017-04-21 at 21:53 +1000, Bruce Evans wrote: >> On Fri, 21 Apr 2017, Hans Petter Selasky wrote: >> >> > On 04/21/17 10:10, Bruce Evans wrote: >> >> ... >> >> [...] >> >> With another hat on, I lecture about the error of using unsigned types >> except in emergency. int32_t time_t rollover in 2038 is getting a bit >> closer to an emergency. Even for variables and types that were >> misdesigned to be unsigned, it is easy to forget this and use them in >> things like delta-calculations which require signed types. >> >> Bruce >> > > In freebsd, only i386 and powerpc32 use 32-bit time_t. So we have 21 > years left to wither-away all use of those 32-bit arches. :) > Talking with kib yesterday I intend to move powerpc/powerpc{,spe} to 64-bit time_t for 12, unless there are any objections (will start the bikeshed sometime in the next few months). Since it's Tier-2 I don't have to worry too much about compatibility (but will make some token effort). - Justin From owner-svn-src-all@freebsd.org Fri Apr 21 16:45:44 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2538D484D3; Fri, 21 Apr 2017 16:45:44 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8AB0A1B79; Fri, 21 Apr 2017 16:45:44 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LGjhGZ090607; Fri, 21 Apr 2017 16:45:43 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LGjhEt090606; Fri, 21 Apr 2017 16:45:43 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704211645.v3LGjhEt090606@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Fri, 21 Apr 2017 16:45:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317258 - stable/11/sys/kern X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 16:45:44 -0000 Author: ae Date: Fri Apr 21 16:45:43 2017 New Revision: 317258 URL: https://svnweb.freebsd.org/changeset/base/317258 Log: MFC r316770: Clear h/w csum flags on mbuf handled by UDP. When checksums of received IP and UDP header already checked, UDP uses sbappendaddr_locked() to pass received data to the socket. sbappendaddr_locked() uses given mbuf as is, and if NIC supports checksum offloading, mbuf contains csum_data and csum_flags that were calculated for already stripped headers. Some NICs support only limited checksums offloading and do not use CSUM_PSEUDO_HDR flag, and csum_data contains some value that UDP/TCP should use for pseudo header checksum calculation. When L2TP is used for tunneling with mpd5, ng_ksocket receives mbuf with filled csum_flags and csum_data, that were calculated for outer headers. When L2TP header is stripped, a packet that was tunneled goes to the IP layer and due to presence of csum_flags (without CSUM_PSEUDO_HDR) and csum_data, the UDP/TCP checksum check fails for this packet. Reported by: Irina Liakh Tested by: Irina Liakh MFC r316822,316823: Rework r316770 to make it protocol independent and general, like we do for streaming sockets. And do more cleanup in the sbappendaddr_locked_internal() to prevent leak information from existing mbuf to the one, that will be possible created later by netgraph. Suggested by: glebius Tested by: Irina Liakh Modified: stable/11/sys/kern/uipc_sockbuf.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/uipc_sockbuf.c ============================================================================== --- stable/11/sys/kern/uipc_sockbuf.c Fri Apr 21 15:59:58 2017 (r317257) +++ stable/11/sys/kern/uipc_sockbuf.c Fri Apr 21 16:45:43 2017 (r317258) @@ -794,8 +794,20 @@ sbappendaddr_locked_internal(struct sock return (0); m->m_len = asa->sa_len; bcopy(asa, mtod(m, caddr_t), asa->sa_len); - if (m0) + if (m0) { m_clrprotoflags(m0); + m_tag_delete_chain(m0, NULL); + /* + * Clear some persistent info from pkthdr. + * We don't use m_demote(), because some netgraph consumers + * expect M_PKTHDR presence. + */ + m0->m_pkthdr.rcvif = NULL; + m0->m_pkthdr.flowid = 0; + m0->m_pkthdr.csum_flags = 0; + m0->m_pkthdr.fibnum = 0; + m0->m_pkthdr.rsstype = 0; + } if (ctrl_last) ctrl_last->m_next = m0; /* concatenate data to control */ else From owner-svn-src-all@freebsd.org Fri Apr 21 16:47:10 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0559D4857F; Fri, 21 Apr 2017 16:47:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8B8A21CC7; Fri, 21 Apr 2017 16:47:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LGl9I8090724; Fri, 21 Apr 2017 16:47:09 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LGl9wA090721; Fri, 21 Apr 2017 16:47:09 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201704211647.v3LGl9wA090721@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 21 Apr 2017 16:47:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317259 - in stable/11: . release/scripts share/mk X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 16:47:10 -0000 Author: gjb Date: Fri Apr 21 16:47:09 2017 New Revision: 317259 URL: https://svnweb.freebsd.org/changeset/base/317259 Log: MFC r310181 (matthew) (originally r309314): Allow a user-overridable setting 'PKG_CMD' to control the command used to create a repo during 'make packages'. Sponsored by: The FreeBSD Foundation Modified: stable/11/Makefile.inc1 stable/11/release/scripts/make-pkg-package.sh stable/11/share/mk/bsd.own.mk Directory Properties: stable/11/ (props changed) Modified: stable/11/Makefile.inc1 ============================================================================== --- stable/11/Makefile.inc1 Fri Apr 21 16:45:43 2017 (r317258) +++ stable/11/Makefile.inc1 Fri Apr 21 16:47:09 2017 (r317259) @@ -1355,7 +1355,8 @@ packages: .PHONY package-pkg: .PHONY rm -rf /tmp/ports.${TARGET} || : env ${WMAKEENV:Q} SRCDIR=${.CURDIR} PORTSDIR=${PORTSDIR} REVISION=${_REVISION} \ - PKG_VERSION=${PKG_VERSION} REPODIR=${REPODIR} WSTAGEDIR=${WSTAGEDIR} \ + PKG_CMD=${PKG_CMD} PKG_VERSION=${PKG_VERSION} REPODIR=${REPODIR} \ + WSTAGEDIR=${WSTAGEDIR} \ sh ${.CURDIR}/release/scripts/make-pkg-package.sh real-packages: stage-packages create-packages sign-packages .PHONY @@ -1393,11 +1394,11 @@ create-world-packages: _pkgbootstrap .PH /^name/ { printf("===> Creating %s-", $$2); next } \ /^version/ { print $$2; next } \ ' ${WSTAGEDIR}/$${pkgname}.ucl ; \ - pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \ + ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \ create -M ${WSTAGEDIR}/$${pkgname}.ucl \ -p ${WSTAGEDIR}/$${pkgname}.plist \ -r ${WSTAGEDIR} \ - -o ${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} ; \ + -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} ; \ done create-kernel-packages: _pkgbootstrap .PHONY @@ -1421,11 +1422,11 @@ create-kernel-packages: _pkgbootstrap .P /name/ { printf("===> Creating %s-", $$2); next } \ /version/ {print $$2; next } ' \ ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl ; \ - pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \ + ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \ create -M ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl \ -p ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.plist \ -r ${KSTAGEDIR}/${DISTDIR} \ - -o ${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} + -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} .endfor .endif .if ${BUILDKERNELS:[#]} > 1 && ${NO_INSTALLEXTRAKERNELS} != "yes" @@ -1450,25 +1451,25 @@ create-kernel-packages: _pkgbootstrap .P /name/ { printf("===> Creating %s-", $$2); next } \ /version/ {print $$2; next } ' \ ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl ; \ - pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \ + ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \ create -M ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl \ -p ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.plist \ -r ${KSTAGEDIR}/kernel.${_kernel} \ - -o ${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} + -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} .endfor .endif .endfor .endif sign-packages: _pkgbootstrap .PHONY - @[ -L "${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest" ] && \ - unlink ${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest ; \ - pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh repo \ - -o ${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ - ${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ + @[ -L "${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest" ] && \ + unlink ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest ; \ + ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh repo \ + -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ + ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ ${PKGSIGNKEY} ; \ - ln -s ${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ - ${REPODIR}/$$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest + ln -s ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ + ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest # # Modified: stable/11/release/scripts/make-pkg-package.sh ============================================================================== --- stable/11/release/scripts/make-pkg-package.sh Fri Apr 21 16:45:43 2017 (r317258) +++ stable/11/release/scripts/make-pkg-package.sh Fri Apr 21 16:47:09 2017 (r317259) @@ -8,6 +8,7 @@ eval $(make -C ${SRCDIR} TARGET=${TARGET export WRKDIRPREFIX=/tmp/ports.${TARGET} export WSTAGEDIR=${WSTAGEDIR} export REPODIR=${REPODIR} +export PKG_CMD=${PKG_CMD} export PKG_VERSION=${PKG_VERSION} export WRKDIR=$(make -C ${PORTSDIR}/ports-mgmt/pkg -V WRKDIR) @@ -15,11 +16,11 @@ make -C ${PORTSDIR}/ports-mgmt/pkg TARGE CONFIGURE_ARGS="--host=$(uname -m)-portbld-freebsd${REVISION}" \ stage create-manifest -pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh \ +${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh \ create -v -m ${WRKDIR}/.metadir/ \ -r ${WRKDIR}/stage \ -p ${WRKDIR}/.PLIST.mktmp \ - -o ${REPODIR}/$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} -mkdir -p ${REPODIR}/$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION}/Latest/ -cd ${REPODIR}/$(pkg -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION}/Latest/ && \ + -o ${REPODIR}/$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} +mkdir -p ${REPODIR}/$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION}/Latest/ +cd ${REPODIR}/$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION}/Latest/ && \ ln -s ../pkg-*.txz Modified: stable/11/share/mk/bsd.own.mk ============================================================================== --- stable/11/share/mk/bsd.own.mk Fri Apr 21 16:45:43 2017 (r317258) +++ stable/11/share/mk/bsd.own.mk Fri Apr 21 16:47:09 2017 (r317259) @@ -116,6 +116,9 @@ # NLSMODE National Language Support files mode. [${NOBINMODE}] # # INCLUDEDIR Base path for standard C include files [/usr/include] +# +# PKG_CMD Program for creating and manipulating packages. +# [pkg] .if !target(____) ____: @@ -249,6 +252,8 @@ XZ_CMD?= xz -T ${XZ_THREADS} XZ_CMD?= xz .endif +PKG_CMD?= pkg + # Pointer to the top directory into which tests are installed. Should not be # overriden by Makefiles, but the user may choose to set this in src.conf(5). TESTSBASE?= /usr/tests From owner-svn-src-all@freebsd.org Fri Apr 21 16:47:58 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C252DD485EF; Fri, 21 Apr 2017 16:47:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 945871DF7; Fri, 21 Apr 2017 16:47:58 +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 v3LGlvXM090812; Fri, 21 Apr 2017 16:47:57 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LGlvQv090811; Fri, 21 Apr 2017 16:47:57 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201704211647.v3LGlvQv090811@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 21 Apr 2017 16:47: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: r317260 - stable/11 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 16:47:58 -0000 Author: gjb Date: Fri Apr 21 16:47:57 2017 New Revision: 317260 URL: https://svnweb.freebsd.org/changeset/base/317260 Log: MFC r317100: Use relative symlink for 'latest' to allow repo to work after being moved. PR: 217197 Sponsored by: The FreeBSD Foundation Modified: stable/11/Makefile.inc1 Directory Properties: stable/11/ (props changed) Modified: stable/11/Makefile.inc1 ============================================================================== --- stable/11/Makefile.inc1 Fri Apr 21 16:47:09 2017 (r317259) +++ stable/11/Makefile.inc1 Fri Apr 21 16:47:57 2017 (r317260) @@ -1468,8 +1468,8 @@ sign-packages: _pkgbootstrap .PHONY -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ ${PKGSIGNKEY} ; \ - ln -s ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \ - ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest + cd ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI); \ + ln -s ${PKG_VERSION} latest # # From owner-svn-src-all@freebsd.org Fri Apr 21 17:03:49 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 85A63D48E1F; Fri, 21 Apr 2017 17:03:49 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5F299A96; Fri, 21 Apr 2017 17:03:49 +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 v3LH3mA5098691; Fri, 21 Apr 2017 17:03:48 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LH3mVL098689; Fri, 21 Apr 2017 17:03:48 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201704211703.v3LH3mVL098689@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Apr 2017 17:03: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: r317261 - stable/11/contrib/llvm/lib/Target/X86 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 17:03:49 -0000 Author: dim Date: Fri Apr 21 17:03:48 2017 New Revision: 317261 URL: https://svnweb.freebsd.org/changeset/base/317261 Log: MFC r316989: Pull in r300404 from upstream llvm trunk (by me): Use correct registers for "A" inline asm constraint Summary: In PR32594, inline assembly using the 'A' constraint on x86_64 causes llvm to crash with a "Cannot select" stack trace. This is because `X86TargetLowering::getRegForInlineAsmConstraint` hardcodes that 'A' means the EAX and EDX registers. However, on x86_64 it means the RAX and RDX registers, and on 16-bit x86 (ia16?) it means the old AX and DX registers. Add new register classes in `X86RegisterInfo.td` to support these cases, and amend the logic in `getRegForInlineAsmConstraint` to cope with different subtargets. Also add a test case, derived from PR32594. Reviewers: craig.topper, qcolombet, RKSimon, ab Reviewed By: ab Subscribers: ab, emaste, royger, llvm-commits Differential Revision: https://reviews.llvm.org/D31902 This should fix crashes when using the 'A' constraint on amd64, for example as it is being used in Xen. Reported by: royger MFC r317079: Pull in r300429 from upstream llvm trunk (by Benjamin Kramer): [X86] Remove special handling for 16 bit for A asm constraints. Our 16 bit support is assembler-only + the terrible hack that is .code16gcc. Simply using 32 bit registers does the right thing for the latter. Fixes PR32681. This fixes some cases of assembling 16 bit code (i.e. SeaBIOS) that uses the 'A' inline asm constraint, after r316989. Modified: stable/11/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp stable/11/contrib/llvm/lib/Target/X86/X86RegisterInfo.td Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp ============================================================================== --- stable/11/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Fri Apr 21 16:47:57 2017 (r317260) +++ stable/11/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Fri Apr 21 17:03:48 2017 (r317261) @@ -34717,10 +34717,17 @@ X86TargetLowering::getRegForInlineAsmCon return Res; } - // 'A' means EAX + EDX. + // 'A' means [ER]AX + [ER]DX. if (Constraint == "A") { - Res.first = X86::EAX; - Res.second = &X86::GR32_ADRegClass; + if (Subtarget.is64Bit()) { + Res.first = X86::RAX; + Res.second = &X86::GR64_ADRegClass; + } else { + assert((Subtarget.is32Bit() || Subtarget.is16Bit()) && + "Expecting 64, 32 or 16 bit subtarget"); + Res.first = X86::EAX; + Res.second = &X86::GR32_ADRegClass; + } return Res; } return Res; Modified: stable/11/contrib/llvm/lib/Target/X86/X86RegisterInfo.td ============================================================================== --- stable/11/contrib/llvm/lib/Target/X86/X86RegisterInfo.td Fri Apr 21 16:47:57 2017 (r317260) +++ stable/11/contrib/llvm/lib/Target/X86/X86RegisterInfo.td Fri Apr 21 17:03:48 2017 (r317261) @@ -437,8 +437,9 @@ def LOW32_ADDR_ACCESS : RegisterClass<"X def LOW32_ADDR_ACCESS_RBP : RegisterClass<"X86", [i32], 32, (add LOW32_ADDR_ACCESS, RBP)>; -// A class to support the 'A' assembler constraint: EAX then EDX. +// A class to support the 'A' assembler constraint: [ER]AX then [ER]DX. def GR32_AD : RegisterClass<"X86", [i32], 32, (add EAX, EDX)>; +def GR64_AD : RegisterClass<"X86", [i64], 64, (add RAX, RDX)>; // Scalar SSE2 floating point registers. def FR32 : RegisterClass<"X86", [f32], 32, (sequence "XMM%u", 0, 15)>; From owner-svn-src-all@freebsd.org Fri Apr 21 17:09:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26234D48EE0; Fri, 21 Apr 2017 17:09:39 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C56B5C51; Fri, 21 Apr 2017 17:09:38 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LH9btF098943; Fri, 21 Apr 2017 17:09:37 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LH9bTI098942; Fri, 21 Apr 2017 17:09:37 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201704211709.v3LH9bTI098942@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Fri, 21 Apr 2017 17:09: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: r317262 - stable/11/sys/netpfil/ipfw X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 17:09:39 -0000 Author: ae Date: Fri Apr 21 17:09:37 2017 New Revision: 317262 URL: https://svnweb.freebsd.org/changeset/base/317262 Log: MFC r316824: The rule field in the ipfw_dyn_rule structure is used as storage to pass rule number and rule set to userland. In r272840 the kernel internal rule representation was changed and the rulenum field of struct ip_fw_rule got the type uint32_t, but userlevel representation still have the type uint16_t. To not overflow the size of pointer on the systems with 32-bit pointer size use separate variable to copy rulenum and set. Reported by: PVS-Studio Modified: stable/11/sys/netpfil/ipfw/ip_fw_dynamic.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netpfil/ipfw/ip_fw_dynamic.c ============================================================================== --- stable/11/sys/netpfil/ipfw/ip_fw_dynamic.c Fri Apr 21 17:03:48 2017 (r317261) +++ stable/11/sys/netpfil/ipfw/ip_fw_dynamic.c Fri Apr 21 17:09:37 2017 (r317262) @@ -1710,15 +1710,17 @@ ipfw_dyn_get_count(void) static void export_dyn_rule(ipfw_dyn_rule *src, ipfw_dyn_rule *dst) { + uint16_t rulenum; + rulenum = (uint16_t)src->rule->rulenum; memcpy(dst, src, sizeof(*src)); - memcpy(&(dst->rule), &(src->rule->rulenum), sizeof(src->rule->rulenum)); + memcpy(&dst->rule, &rulenum, sizeof(rulenum)); /* * store set number into high word of * dst->rule pointer. */ - memcpy((char *)&dst->rule + sizeof(src->rule->rulenum), - &(src->rule->set), sizeof(src->rule->set)); + memcpy((char *)&dst->rule + sizeof(rulenum), &src->rule->set, + sizeof(src->rule->set)); /* * store a non-null value in "next". * The userland code will interpret a @@ -1726,8 +1728,8 @@ export_dyn_rule(ipfw_dyn_rule *src, ipfw * for the last dynamic rule. */ memcpy(&dst->next, &dst, sizeof(dst)); - dst->expire = - TIME_LEQ(dst->expire, time_uptime) ? 0 : dst->expire - time_uptime; + dst->expire = TIME_LEQ(dst->expire, time_uptime) ? 0: + dst->expire - time_uptime; } /* From owner-svn-src-all@freebsd.org Fri Apr 21 17:57:25 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F84FD4997F; Fri, 21 Apr 2017 17:57:25 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1C81A86B; Fri, 21 Apr 2017 17:57:25 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LHvOiv019418; Fri, 21 Apr 2017 17:57:24 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LHvOj3019417; Fri, 21 Apr 2017 17:57:24 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201704211757.v3LHvOj3019417@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Fri, 21 Apr 2017 17:57:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317264 - head/sys/dev/syscons X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 17:57:25 -0000 Author: bde Date: Fri Apr 21 17:57:23 2017 New Revision: 317264 URL: https://svnweb.freebsd.org/changeset/base/317264 Log: Optimize setting of the foreground color in the main planar method much like for the background color. This is a about 5% faster for output that actually reaches the screen. Modified: head/sys/dev/syscons/scvgarndr.c Modified: head/sys/dev/syscons/scvgarndr.c ============================================================================== --- head/sys/dev/syscons/scvgarndr.c Fri Apr 21 17:42:48 2017 (r317263) +++ head/sys/dev/syscons/scvgarndr.c Fri Apr 21 17:57:23 2017 (r317264) @@ -736,7 +736,7 @@ vga_vgadraw_planar(scr_stat *scp, int fr vm_offset_t d; vm_offset_t e; u_char *f; - u_short bg; + u_short bg, fg; u_short col1, col2; int line_width; int i, j; @@ -754,7 +754,7 @@ vga_vgadraw_planar(scr_stat *scp, int fr outw(GDCIDX, 0x0005); /* read mode 0, write mode 0 */ outw(GDCIDX, 0x0003); /* data rotate/function select */ outw(GDCIDX, 0x0f01); /* set/reset enable */ - bg = -1; + fg = bg = -1; if (from + count > scp->xsize*scp->ysize) count = scp->xsize*scp->ysize - from; for (i = from; count-- > 0; ++i) { @@ -769,6 +769,7 @@ vga_vgadraw_planar(scr_stat *scp, int fr /* set background color in EGA/VGA latch */ if (bg != col2) { bg = col2; + fg = -1; outw(GDCIDX, bg | 0x00); /* set/reset */ if (scp->sc->adp->va_type != KD_VGA) outw(GDCIDX, 0xff08); /* bit mask */ @@ -776,7 +777,10 @@ vga_vgadraw_planar(scr_stat *scp, int fr c = readb(d); /* set bg color in the latch */ } /* foreground color */ - outw(GDCIDX, col1 | 0x00); /* set/reset */ + if (fg != col1) { + fg = col1; + outw(GDCIDX, col1 | 0x00); /* set/reset */ + } e = d; f = &(scp->font[sc_vtb_getc(&scp->vtb, i)*scp->font_size]); for (j = 0; j < scp->font_size; ++j, ++f) { From owner-svn-src-all@freebsd.org Fri Apr 21 19:27:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9957FD498B1; Fri, 21 Apr 2017 19:27:35 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 74A20177; Fri, 21 Apr 2017 19:27:35 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LJRYOO058187; Fri, 21 Apr 2017 19:27:34 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LJRYHj058182; Fri, 21 Apr 2017 19:27:34 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704211927.v3LJRYHj058182@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Fri, 21 Apr 2017 19:27:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317265 - in head/lib: libgssapi libiconv_modules/ISO2022 libutil X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 19:27:35 -0000 Author: pfg Date: Fri Apr 21 19:27:33 2017 New Revision: 317265 URL: https://svnweb.freebsd.org/changeset/base/317265 Log: lib: initial use of reallocarray(3). Make some use of reallocarray, attempting to limit it to cases where the parameters are unsigned and there is some theoretical chance of overflow. MFC afer: 2 weeks Differential Revision: https://reviews.freebsd.org/D9980 Modified: head/lib/libgssapi/gss_buffer_set.c head/lib/libiconv_modules/ISO2022/citrus_iso2022.c head/lib/libutil/gr_util.c head/lib/libutil/login_cap.c head/lib/libutil/pw_util.c Modified: head/lib/libgssapi/gss_buffer_set.c ============================================================================== --- head/lib/libgssapi/gss_buffer_set.c Fri Apr 21 17:57:23 2017 (r317264) +++ head/lib/libgssapi/gss_buffer_set.c Fri Apr 21 19:27:33 2017 (r317265) @@ -76,8 +76,8 @@ gss_add_buffer_set_member(OM_uint32 * mi } set = *buffer_set; - set->elements = realloc(set->elements, - (set->count + 1) * sizeof(set->elements[0])); + set->elements = reallocarray(set->elements, set->count + 1, + sizeof(set->elements[0])); if (set->elements == NULL) { *minor_status = ENOMEM; return (GSS_S_FAILURE); Modified: head/lib/libiconv_modules/ISO2022/citrus_iso2022.c ============================================================================== --- head/lib/libiconv_modules/ISO2022/citrus_iso2022.c Fri Apr 21 17:57:23 2017 (r317264) +++ head/lib/libiconv_modules/ISO2022/citrus_iso2022.c Fri Apr 21 19:27:33 2017 (r317265) @@ -259,8 +259,8 @@ get_recommend(_ISO2022EncodingInfo * __r if (!ei->recommend[i]) ei->recommend[i] = malloc(sizeof(_ISO2022Charset)); else { - p = realloc(ei->recommend[i], - sizeof(_ISO2022Charset) * (ei->recommendsize[i] + 1)); + p = reallocarray(ei->recommend[i], ei->recommendsize[i] + 1, + sizeof(_ISO2022Charset)); if (!p) return (_PARSEFAIL); ei->recommend[i] = p; Modified: head/lib/libutil/gr_util.c ============================================================================== --- head/lib/libutil/gr_util.c Fri Apr 21 17:57:23 2017 (r317264) +++ head/lib/libutil/gr_util.c Fri Apr 21 19:27:33 2017 (r317265) @@ -205,7 +205,7 @@ gr_copy(int ffd, int tfd, const struct g if (eof) break; while ((size_t)(q - p) >= size) { - if ((tmp = realloc(buf, size * 2)) == NULL) { + if ((tmp = reallocarray(buf, 2, size)) == NULL) { warnx("group line too long"); goto err; } Modified: head/lib/libutil/login_cap.c ============================================================================== --- head/lib/libutil/login_cap.c Fri Apr 21 17:57:23 2017 (r317264) +++ head/lib/libutil/login_cap.c Fri Apr 21 19:27:33 2017 (r317265) @@ -86,7 +86,7 @@ allocarray(size_t sz) if (sz <= internal_arraysz) p = internal_array; - else if ((p = realloc(internal_array, sz * sizeof(char*))) != NULL) { + else if ((p = reallocarray(internal_array, sz, sizeof(char*))) != NULL) { internal_arraysz = sz; internal_array = p; } Modified: head/lib/libutil/pw_util.c ============================================================================== --- head/lib/libutil/pw_util.c Fri Apr 21 17:57:23 2017 (r317264) +++ head/lib/libutil/pw_util.c Fri Apr 21 19:27:33 2017 (r317265) @@ -468,7 +468,7 @@ pw_copy(int ffd, int tfd, const struct p if (eof) break; while ((size_t)(q - p) >= size) { - if ((tmp = realloc(buf, size * 2)) == NULL) { + if ((tmp = reallocarray(buf, 2, size)) == NULL) { warnx("passwd line too long"); goto err; } From owner-svn-src-all@freebsd.org Fri Apr 21 19:41:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0385DD49DF5; Fri, 21 Apr 2017 19:41:35 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AE3ABE70; Fri, 21 Apr 2017 19:41:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LJfXCQ064877; Fri, 21 Apr 2017 19:41:33 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LJfX4W064875; Fri, 21 Apr 2017 19:41:33 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201704211941.v3LJfX4W064875@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 21 Apr 2017 19:41: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: r317266 - in stable: 10/release/doc/share/xml 11/release/doc/share/xml X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 19:41:35 -0000 Author: gjb Date: Fri Apr 21 19:41:33 2017 New Revision: 317266 URL: https://svnweb.freebsd.org/changeset/base/317266 Log: Document EN-17:01 through EN-17:05, SA-16:39 through SA-17:03 Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/share/xml/errata.xml stable/10/release/doc/share/xml/security.xml Changes in other areas also in this revision: Modified: stable/11/release/doc/share/xml/errata.xml stable/11/release/doc/share/xml/security.xml Modified: stable/10/release/doc/share/xml/errata.xml ============================================================================== --- stable/10/release/doc/share/xml/errata.xml Fri Apr 21 19:27:33 2017 (r317265) +++ stable/10/release/doc/share/xml/errata.xml Fri Apr 21 19:41:33 2017 (r317266) @@ -127,6 +127,13 @@ Update timezone database information + + + FreeBSD-EN-17:05.xen + 23 February 2017 + Xen migration enhancements + Modified: stable/10/release/doc/share/xml/security.xml ============================================================================== --- stable/10/release/doc/share/xml/security.xml Fri Apr 21 19:27:33 2017 (r317265) +++ stable/10/release/doc/share/xml/security.xml Fri Apr 21 19:41:33 2017 (r317266) @@ -170,6 +170,35 @@ Possible escape from &man.bhyve.8; virtual machine + + + FreeBSD-SA-16:39.ntp + 22 December 2016 + Multiple vulnerabilities + + + + FreeBSD-SA-17:01.openssh + 10 January 2017 + Multiple vulnerabilities + + + + FreeBSD-SA-17:02.openssl + 23 February 2017 + Fix OpenSSL RC4_MD5 cipher + vulnerability + + + + FreeBSD-SA-17:03.ntp + 12 April 2017 + Multiple vulnerabilities + From owner-svn-src-all@freebsd.org Fri Apr 21 19:41:35 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20B30D49DF9; Fri, 21 Apr 2017 19:41:35 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F1EBFE71; Fri, 21 Apr 2017 19:41:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LJfYoc064884; Fri, 21 Apr 2017 19:41:34 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LJfYn7064882; Fri, 21 Apr 2017 19:41:34 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201704211941.v3LJfYn7064882@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 21 Apr 2017 19:41:34 +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: r317266 - in stable: 10/release/doc/share/xml 11/release/doc/share/xml X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 19:41:35 -0000 Author: gjb Date: Fri Apr 21 19:41:33 2017 New Revision: 317266 URL: https://svnweb.freebsd.org/changeset/base/317266 Log: Document EN-17:01 through EN-17:05, SA-16:39 through SA-17:03 Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/share/xml/errata.xml stable/11/release/doc/share/xml/security.xml Changes in other areas also in this revision: Modified: stable/10/release/doc/share/xml/errata.xml stable/10/release/doc/share/xml/security.xml Modified: stable/11/release/doc/share/xml/errata.xml ============================================================================== --- stable/11/release/doc/share/xml/errata.xml Fri Apr 21 19:27:33 2017 (r317265) +++ stable/11/release/doc/share/xml/errata.xml Fri Apr 21 19:41:33 2017 (r317266) @@ -48,6 +48,45 @@ Fix incorrectly defined unicode characters + + + FreeBSD-EN-17:01.pcie + 23 February 2017 + Fix system hang when booting when PCI-express + HotPlug is enabled + + + + FreeBSD-EN-17:02.yp + 23 February 2017 + Fix NIS master updates are not pushed to an NIS + slave + + + + FreeBSD-EN-17:03.hyperv + 23 February 2017 + Fix compatibility with Hyper-V/storage after + KB3172614 or KB3179574 + + + + FreeBSD-EN-17:04.mandoc + 23 February 2017 + Make &man.makewhatis.1; output + reproducible + + + + FreeBSD-EN-17:05.xen + 23 February 2017 + Xen migration enhancements + Modified: stable/11/release/doc/share/xml/security.xml ============================================================================== --- stable/11/release/doc/share/xml/security.xml Fri Apr 21 19:27:33 2017 (r317265) +++ stable/11/release/doc/share/xml/security.xml Fri Apr 21 19:41:33 2017 (r317266) @@ -55,6 +55,34 @@ Possible escape from &man.bhyve.8; virtual machine + + + FreeBSD-SA-16:39.ntp + 22 December 2016 + Multiple vulnerabilities + + + + FreeBSD-SA-17:01.openssh + 10 January 2017 + Multiple vulnerabilities + + + + FreeBSD-SA-17:02.openssl + 23 February 2017 + Multiple vulnerabilities + + + + FreeBSD-SA-17:03.ntp + 12 April 2017 + Multiple vulnerabilities + From owner-svn-src-all@freebsd.org Fri Apr 21 19:53:54 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8871FD49258; Fri, 21 Apr 2017 19:53:54 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5227FC25; Fri, 21 Apr 2017 19:53:54 +0000 (UTC) (envelope-from jpaetzel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LJrrif070840; Fri, 21 Apr 2017 19:53:53 GMT (envelope-from jpaetzel@FreeBSD.org) Received: (from jpaetzel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LJrqRH070833; Fri, 21 Apr 2017 19:53:52 GMT (envelope-from jpaetzel@FreeBSD.org) Message-Id: <201704211953.v3LJrqRH070833@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jpaetzel set sender to jpaetzel@FreeBSD.org using -f From: Josh Paetzel Date: Fri, 21 Apr 2017 19:53:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317267 - in head: cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/common/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 19:53:54 -0000 Author: jpaetzel Date: Fri Apr 21 19:53:52 2017 New Revision: 317267 URL: https://svnweb.freebsd.org/changeset/base/317267 Log: MFV 316891 7386 zfs get does not work properly with bookmarks illumos/illumos-gate@edb901aab9c738b5eb15aa55933e82b0f2f9d9a2 https://github.com/illumos/illumos-gate/commit/edb901aab9c738b5eb15aa55933e82b0f2f9d9a2 https://www.illumos.org/issues/7386 The zfs get command does not work with the bookmark parameter while it works properly with both filesystem and snapshot: # zfs get -t all -r creation rpool/test NAME PROPERTY VALUE SOURCE rpool/test creation Fri Sep 16 15:00 2016 - rpool/test@snap creation Fri Sep 16 15:00 2016 - rpool/test#bkmark creation Fri Sep 16 15:00 2016 - # zfs get -t all -r creation rpool/test@snap NAME PROPERTY VALUE SOURCE rpool/test@snap creation Fri Sep 16 15:00 2016 - # zfs get -t all -r creation rpool/test#bkmark cannot open 'rpool/test#bkmark': invalid dataset name # The zfs get command should be modified to work properly with bookmarks too. Reviewed by: Simon Klinkert Reviewed by: Paul Dagnelie Approved by: Matthew Ahrens Author: Marcel Telka Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c head/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c head/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h Directory Properties: head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/cmd/zfs/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) head/sys/cddl/contrib/opensolaris/ (props changed) Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Apr 21 19:41:33 2017 (r317266) +++ head/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Apr 21 19:53:52 2017 (r317267) @@ -25,13 +25,13 @@ .\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved. .\" Copyright (c) 2014, Joyent, Inc. All rights reserved. .\" Copyright (c) 2013, Steven Hartland -.\" Copyright (c) 2014 Nexenta Systems, Inc. All Rights Reserved. +.\" Copyright (c) 2016 Nexenta Systems, Inc. All Rights Reserved. .\" Copyright (c) 2014, Xin LI .\" Copyright (c) 2014-2015, The FreeBSD Foundation, All Rights Reserved. .\" .\" $FreeBSD$ .\" -.Dd May 31, 2016 +.Dd September 16, 2016 .Dt ZFS 8 .Os .Sh NAME @@ -114,7 +114,7 @@ .Op Fl t Ar type Ns Oo , Ns type Ns Oc Ns ... .Oo Fl s Ar property Oc Ns ... .Oo Fl S Ar property Oc Ns ... -.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot +.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot | Ns Ar bookmark Ns ... .Nm .Cm set .Ar property Ns = Ns Ar value Oo Ar property Ns = Ns Ar value Oc Ns ... @@ -2156,7 +2156,7 @@ section. .Op Fl t Ar type Ns Oo , Ns Ar type Oc Ns ... .Op Fl s Ar source Ns Oo , Ns Ar source Oc Ns ... .Ar all | property Ns Oo , Ns Ar property Oc Ns ... -.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot Ns ... +.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot Ns | Ns Ar bookmark Ns ... .Xc .Pp Displays properties for the given datasets. If no datasets are specified, then Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Fri Apr 21 19:41:33 2017 (r317266) +++ head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Fri Apr 21 19:53:52 2017 (r317267) @@ -243,7 +243,7 @@ get_usage(zfs_help_t idx) "[-o \"all\" | field[,...]]\n" "\t [-t type[,...]] [-s source[,...]]\n" "\t <\"all\" | property[,...]> " - "[filesystem|volume|snapshot] ...\n")); + "[filesystem|volume|snapshot|bookmark] ...\n")); case HELP_INHERIT: return (gettext("\tinherit [-rS] " " ...\n")); @@ -1622,7 +1622,7 @@ zfs_do_get(int argc, char **argv) { zprop_get_cbdata_t cb = { 0 }; int i, c, flags = ZFS_ITER_ARGS_CAN_BE_PATHS; - int types = ZFS_TYPE_DATASET; + int types = ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK; char *value, *fields; int ret = 0; int limit = 0; Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Fri Apr 21 19:41:33 2017 (r317266) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Fri Apr 21 19:53:52 2017 (r317267) @@ -103,7 +103,7 @@ zfs_validate_name(libzfs_handle_t *hdl, char what; (void) zfs_prop_get_table(); - if (dataset_namecheck(path, &why, &what) != 0) { + if (entity_namecheck(path, &why, &what) != 0) { if (hdl != NULL) { switch (why) { case NAME_ERR_TOOLONG: @@ -132,9 +132,10 @@ zfs_validate_name(libzfs_handle_t *hdl, "'%c' in name"), what); break; - case NAME_ERR_MULTIPLE_AT: + case NAME_ERR_MULTIPLE_DELIMITERS: zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "multiple '@' delimiters in name")); + "multiple '@' and/or '#' delimiters in " + "name")); break; case NAME_ERR_NOLETTER: @@ -165,7 +166,7 @@ zfs_validate_name(libzfs_handle_t *hdl, if (!(type & ZFS_TYPE_SNAPSHOT) && strchr(path, '@') != NULL) { if (hdl != NULL) zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "snapshot delimiter '@' in filesystem name")); + "snapshot delimiter '@' is not expected here")); return (0); } @@ -176,6 +177,20 @@ zfs_validate_name(libzfs_handle_t *hdl, return (0); } + if (!(type & ZFS_TYPE_BOOKMARK) && strchr(path, '#') != NULL) { + if (hdl != NULL) + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "bookmark delimiter '#' is not expected here")); + return (0); + } + + if (type == ZFS_TYPE_BOOKMARK && strchr(path, '#') == NULL) { + if (hdl != NULL) + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "missing '#' delimiter in bookmark name")); + return (0); + } + if (modifying && strchr(path, '%') != NULL) { if (hdl != NULL) zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, @@ -613,8 +628,36 @@ make_bookmark_handle(zfs_handle_t *paren return (zhp); } +struct zfs_open_bookmarks_cb_data { + const char *path; + zfs_handle_t *zhp; +}; + +static int +zfs_open_bookmarks_cb(zfs_handle_t *zhp, void *data) +{ + struct zfs_open_bookmarks_cb_data *dp = data; + + /* + * Is it the one we are looking for? + */ + if (strcmp(dp->path, zfs_get_name(zhp)) == 0) { + /* + * We found it. Save it and let the caller know we are done. + */ + dp->zhp = zhp; + return (EEXIST); + } + + /* + * Not found. Close the handle and ask for another one. + */ + zfs_close(zhp); + return (0); +} + /* - * Opens the given snapshot, filesystem, or volume. The 'types' + * Opens the given snapshot, bookmark, filesystem, or volume. The 'types' * argument is a mask of acceptable types. The function will print an * appropriate error message and return NULL if it can't be opened. */ @@ -623,6 +666,7 @@ zfs_open(libzfs_handle_t *hdl, const cha { zfs_handle_t *zhp; char errbuf[1024]; + char *bookp; (void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN, "cannot open '%s'"), path); @@ -630,20 +674,68 @@ zfs_open(libzfs_handle_t *hdl, const cha /* * Validate the name before we even try to open it. */ - if (!zfs_validate_name(hdl, path, ZFS_TYPE_DATASET, B_FALSE)) { - zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "invalid dataset name")); + if (!zfs_validate_name(hdl, path, types, B_FALSE)) { (void) zfs_error(hdl, EZFS_INVALIDNAME, errbuf); return (NULL); } /* - * Try to get stats for the dataset, which will tell us if it exists. + * Bookmarks needs to be handled separately. */ - errno = 0; - if ((zhp = make_dataset_handle(hdl, path)) == NULL) { - (void) zfs_standard_error(hdl, errno, errbuf); - return (NULL); + bookp = strchr(path, '#'); + if (bookp == NULL) { + /* + * Try to get stats for the dataset, which will tell us if it + * exists. + */ + errno = 0; + if ((zhp = make_dataset_handle(hdl, path)) == NULL) { + (void) zfs_standard_error(hdl, errno, errbuf); + return (NULL); + } + } else { + char dsname[ZFS_MAX_DATASET_NAME_LEN]; + zfs_handle_t *pzhp; + struct zfs_open_bookmarks_cb_data cb_data = {path, NULL}; + + /* + * We need to cut out '#' and everything after '#' + * to get the parent dataset name only. + */ + assert(bookp - path < sizeof (dsname)); + (void) strncpy(dsname, path, bookp - path); + dsname[bookp - path] = '\0'; + + /* + * Create handle for the parent dataset. + */ + errno = 0; + if ((pzhp = make_dataset_handle(hdl, dsname)) == NULL) { + (void) zfs_standard_error(hdl, errno, errbuf); + return (NULL); + } + + /* + * Iterate bookmarks to find the right one. + */ + errno = 0; + if ((zfs_iter_bookmarks(pzhp, zfs_open_bookmarks_cb, + &cb_data) == 0) && (cb_data.zhp == NULL)) { + (void) zfs_error(hdl, EZFS_NOENT, errbuf); + zfs_close(pzhp); + return (NULL); + } + if (cb_data.zhp == NULL) { + (void) zfs_standard_error(hdl, errno, errbuf); + zfs_close(pzhp); + return (NULL); + } + zhp = cb_data.zhp; + + /* + * Cleanup. + */ + zfs_close(pzhp); } if (zhp == NULL) { Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Fri Apr 21 19:41:33 2017 (r317266) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Fri Apr 21 19:53:52 2017 (r317267) @@ -947,9 +947,10 @@ zpool_name_valid(libzfs_handle_t *hdl, b "trailing slash in name")); break; - case NAME_ERR_MULTIPLE_AT: + case NAME_ERR_MULTIPLE_DELIMITERS: zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, - "multiple '@' delimiters in name")); + "multiple '@' and/or '#' delimiters in " + "name")); break; default: Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Fri Apr 21 19:41:33 2017 (r317266) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Fri Apr 21 19:53:52 2017 (r317267) @@ -718,7 +718,7 @@ zfs_get_pool_handle(const zfs_handle_t * * Given a name, determine whether or not it's a valid path * (starts with '/' or "./"). If so, walk the mnttab trying * to match the device number. If not, treat the path as an - * fs/vol/snap name. + * fs/vol/snap/bkmark name. */ zfs_handle_t * zfs_path_to_zhandle(libzfs_handle_t *hdl, char *path, zfs_type_t argtype) Modified: head/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c Fri Apr 21 19:41:33 2017 (r317266) +++ head/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c Fri Apr 21 19:53:52 2017 (r317267) @@ -120,9 +120,9 @@ permset_namecheck(const char *path, name } /* - * Dataset names must be of the following form: + * Entity names must be of the following form: * - * [component][/]*[component][@component] + * [component/]*[component][(@|#)component]? * * Where each component is made up of alphanumeric characters plus the following * characters: @@ -133,10 +133,10 @@ permset_namecheck(const char *path, name * names for temporary clones (for online recv). */ int -dataset_namecheck(const char *path, namecheck_err_t *why, char *what) +entity_namecheck(const char *path, namecheck_err_t *why, char *what) { - const char *loc, *end; - int found_snapshot; + const char *start, *end; + int found_delim; /* * Make sure the name is not too long. @@ -161,12 +161,13 @@ dataset_namecheck(const char *path, name return (-1); } - loc = path; - found_snapshot = 0; + start = path; + found_delim = 0; for (;;) { /* Find the end of this component */ - end = loc; - while (*end != '/' && *end != '@' && *end != '\0') + end = start; + while (*end != '/' && *end != '@' && *end != '#' && + *end != '\0') end++; if (*end == '\0' && end[-1] == '/') { @@ -176,25 +177,8 @@ dataset_namecheck(const char *path, name return (-1); } - /* Zero-length components are not allowed */ - if (loc == end) { - if (why) { - /* - * Make sure this is really a zero-length - * component and not a '@@'. - */ - if (*end == '@' && found_snapshot) { - *why = NAME_ERR_MULTIPLE_AT; - } else { - *why = NAME_ERR_EMPTY_COMPONENT; - } - } - - return (-1); - } - /* Validate the contents of this component */ - while (loc != end) { + for (const char *loc = start; loc != end; loc++) { if (!valid_char(*loc) && *loc != '%') { if (why) { *why = NAME_ERR_INVALCHAR; @@ -202,43 +186,64 @@ dataset_namecheck(const char *path, name } return (-1); } - loc++; } - /* If we've reached the end of the string, we're OK */ - if (*end == '\0') - return (0); - - if (*end == '@') { - /* - * If we've found an @ symbol, indicate that we're in - * the snapshot component, and report a second '@' - * character as an error. - */ - if (found_snapshot) { + /* Snapshot or bookmark delimiter found */ + if (*end == '@' || *end == '#') { + /* Multiple delimiters are not allowed */ + if (found_delim != 0) { if (why) - *why = NAME_ERR_MULTIPLE_AT; + *why = NAME_ERR_MULTIPLE_DELIMITERS; return (-1); } - found_snapshot = 1; + found_delim = 1; + } + + /* Zero-length components are not allowed */ + if (start == end) { + if (why) + *why = NAME_ERR_EMPTY_COMPONENT; + return (-1); } + /* If we've reached the end of the string, we're OK */ + if (*end == '\0') + return (0); + /* - * If there is a '/' in a snapshot name + * If there is a '/' in a snapshot or bookmark name * then report an error */ - if (*end == '/' && found_snapshot) { + if (*end == '/' && found_delim != 0) { if (why) *why = NAME_ERR_TRAILING_SLASH; return (-1); } /* Update to the next component */ - loc = end + 1; + start = end + 1; } } +/* + * Dataset is any entity, except bookmark + */ +int +dataset_namecheck(const char *path, namecheck_err_t *why, char *what) +{ + int ret = entity_namecheck(path, why, what); + + if (ret == 0 && strchr(path, '#') != NULL) { + if (why != NULL) { + *why = NAME_ERR_INVALCHAR; + *what = '#'; + } + return (-1); + } + + return (ret); +} /* * mountpoint names must be of the following form: Modified: head/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h Fri Apr 21 19:41:33 2017 (r317266) +++ head/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h Fri Apr 21 19:53:52 2017 (r317267) @@ -38,7 +38,7 @@ typedef enum { NAME_ERR_EMPTY_COMPONENT, /* name contains an empty component */ NAME_ERR_TRAILING_SLASH, /* name ends with a slash */ NAME_ERR_INVALCHAR, /* invalid character found */ - NAME_ERR_MULTIPLE_AT, /* multiple '@' characters found */ + NAME_ERR_MULTIPLE_DELIMITERS, /* multiple '@'/'#' delimiters found */ NAME_ERR_NOLETTER, /* pool doesn't begin with a letter */ NAME_ERR_RESERVED, /* entire name is reserved */ NAME_ERR_DISKLIKE, /* reserved disk name (c[0-9].*) */ @@ -49,6 +49,7 @@ typedef enum { #define ZFS_PERMSET_MAXLEN 64 int pool_namecheck(const char *, namecheck_err_t *, char *); +int entity_namecheck(const char *, namecheck_err_t *, char *); int dataset_namecheck(const char *, namecheck_err_t *, char *); int mountpoint_namecheck(const char *, namecheck_err_t *); int zfs_component_namecheck(const char *, namecheck_err_t *, char *); From owner-svn-src-all@freebsd.org Fri Apr 21 20:03:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5CA6AD495F9; Fri, 21 Apr 2017 20:03:09 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1438B275; Fri, 21 Apr 2017 20:03:09 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LK38VH074854; Fri, 21 Apr 2017 20:03:08 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LK38RA074853; Fri, 21 Apr 2017 20:03:08 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704212003.v3LK38RA074853@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Fri, 21 Apr 2017 20:03: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: r317268 - stable/11/usr.bin/mkimg X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 20:03:09 -0000 Author: pfg Date: Fri Apr 21 20:03:08 2017 New Revision: 317268 URL: https://svnweb.freebsd.org/changeset/base/317268 Log: MFC r302664: mkimg(1): minor cleanups with argument order in calloc(3). Generally the first argument in calloc is supposed to stand for a count and the second for a size. Try to make that consistent. While here, attempt to make some use of the overflow detection capability in calloc(3). Requested by: manu Modified: stable/11/usr.bin/mkimg/vmdk.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/mkimg/vmdk.c ============================================================================== --- stable/11/usr.bin/mkimg/vmdk.c Fri Apr 21 19:53:52 2017 (r317267) +++ stable/11/usr.bin/mkimg/vmdk.c Fri Apr 21 20:03:08 2017 (r317268) @@ -149,7 +149,7 @@ vmdk_write(int fd) gdsz = (ngts * sizeof(uint32_t) + VMDK_SECTOR_SIZE - 1) & ~(VMDK_SECTOR_SIZE - 1); - gd = calloc(gdsz, 1); + gd = calloc(1, gdsz); if (gd == NULL) { free(desc); return (ENOMEM); @@ -161,7 +161,7 @@ vmdk_write(int fd) sec += VMDK_NGTES * sizeof(uint32_t) / VMDK_SECTOR_SIZE; } - rgd = calloc(gdsz, 1); + rgd = calloc(1, gdsz); if (rgd == NULL) { free(gd); free(desc); @@ -183,14 +183,14 @@ vmdk_write(int fd) le64enc(&hdr.overhead, sec); be32enc(&hdr.nl_test, VMDK_NL_TEST); - gtsz = ngts * VMDK_NGTES * sizeof(uint32_t); - gt = calloc(gtsz, 1); + gt = calloc(ngts, VMDK_NGTES * sizeof(uint32_t)); if (gt == NULL) { free(rgd); free(gd); free(desc); return (ENOMEM); } + gtsz = ngts * VMDK_NGTES * sizeof(uint32_t); cursec = sec; blkcnt = (grainsz * VMDK_SECTOR_SIZE) / secsz; @@ -225,7 +225,7 @@ vmdk_write(int fd) cur = VMDK_SECTOR_SIZE + desc_len + (gdsz + gtsz) * 2; lim = sec * VMDK_SECTOR_SIZE; if (cur < lim) { - buf = calloc(VMDK_SECTOR_SIZE, 1); + buf = calloc(1, VMDK_SECTOR_SIZE); if (buf == NULL) error = ENOMEM; while (!error && cur < lim) { From owner-svn-src-all@freebsd.org Fri Apr 21 20:08:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91D73D496B6; Fri, 21 Apr 2017 20:08:11 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4B3EA67D; Fri, 21 Apr 2017 20:08:11 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LK8ATl075170; Fri, 21 Apr 2017 20:08:10 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LK8AVg075168; Fri, 21 Apr 2017 20:08:10 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704212008.v3LK8AVg075168@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Apr 2017 20:08:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317269 - in head/sys: fs/nfs sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 20:08:11 -0000 Author: rmacklem Date: Fri Apr 21 20:08:10 2017 New Revision: 317269 URL: https://svnweb.freebsd.org/changeset/base/317269 Log: Set default uid/gid to nobody/nogroup for NFSv4 mapping. The default uid/gid for NFSv4 are set by the nfsuserd(8) daemon. However, they were 0 until the nfsuserd(8) was run. Since it is possible to use NFSv4 without running the nfsuserd(8) daemon, set them to nobody/nogroup initially. Without this patch, the values would be set by the nfsuserd(8) daemon and left changed even if the nfsuserd(8) daemon was killed. The default values of 0 meant that setting a group to "wheel" would fail even when done by root. It also adds a definition of GID_NOGROUP to sys/conf.h. Discussed on: freebsd-current@ MFC after: 2 weeks Modified: head/sys/fs/nfs/nfs_commonsubs.c head/sys/sys/conf.h Modified: head/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 20:03:08 2017 (r317268) +++ head/sys/fs/nfs/nfs_commonsubs.c Fri Apr 21 20:08:10 2017 (r317269) @@ -63,8 +63,8 @@ int nfsrv_useacl = 1; struct nfssockreq nfsrv_nfsuserdsock; int nfsrv_nfsuserd = 0; struct nfsreqhead nfsd_reqq; -uid_t nfsrv_defaultuid; -gid_t nfsrv_defaultgid; +uid_t nfsrv_defaultuid = UID_NOBODY; +gid_t nfsrv_defaultgid = GID_NOGROUP; int nfsrv_lease = NFSRV_LEASE; int ncl_mbuf_mlen = MLEN; int nfsd_enable_stringtouid = 0; Modified: head/sys/sys/conf.h ============================================================================== --- head/sys/sys/conf.h Fri Apr 21 20:03:08 2017 (r317268) +++ head/sys/sys/conf.h Fri Apr 21 20:08:10 2017 (r317269) @@ -315,6 +315,7 @@ void devfs_free_cdp_inode(ino_t ino); #define GID_GAMES 13 #define GID_VIDEO 44 #define GID_DIALER 68 +#define GID_NOGROUP 65533 #define GID_NOBODY 65534 typedef void (*dev_clone_fn)(void *arg, struct ucred *cred, char *name, From owner-svn-src-all@freebsd.org Fri Apr 21 20:53:53 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3752CD497B8; Fri, 21 Apr 2017 20:53:53 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 092AB5DF; Fri, 21 Apr 2017 20:53:52 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LKrqAS096260; Fri, 21 Apr 2017 20:53:52 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LKrqVd096259; Fri, 21 Apr 2017 20:53:52 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704212053.v3LKrqVd096259@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Apr 2017 20:53:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317270 - head/usr.sbin/nfsuserd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 20:53:53 -0000 Author: rmacklem Date: Fri Apr 21 20:53:51 2017 New Revision: 317270 URL: https://svnweb.freebsd.org/changeset/base/317270 Log: Get rid of bogus statement in the nfsuserd.8 man page. The nfsuserd.8 man page stated that a usertimeout of 0 would disable the cache timeout. This was simply not true, so this patch deletes the sentence. This is a content change. PR: 217406 MFC after: 2 weeks Modified: head/usr.sbin/nfsuserd/nfsuserd.8 Modified: head/usr.sbin/nfsuserd/nfsuserd.8 ============================================================================== --- head/usr.sbin/nfsuserd/nfsuserd.8 Fri Apr 21 20:08:10 2017 (r317269) +++ head/usr.sbin/nfsuserd/nfsuserd.8 Fri Apr 21 20:53:51 2017 (r317270) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 1, 2015 +.Dd April 21, 2017 .Dt NFSUSERD 8 .Os .Sh NAME @@ -64,8 +64,8 @@ if that name is not a fully qualified ho reported by .Xr getaddrinfo 3 . .It Fl usertimeout Ar minutes -Overrides the default timeout for cache entries, in minutes. If the -timeout is specified as 0, cache entries never time out. The longer the +Overrides the default timeout for cache entries, in minutes. +The longer the time out, the better the performance, but the longer it takes for replaced entries to be seen. If your user/group database management system almost never re-uses the same names or id numbers, a large timeout is recommended. From owner-svn-src-all@freebsd.org Fri Apr 21 21:43:02 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E63CD4964A; Fri, 21 Apr 2017 21:43:02 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E176CF06; Fri, 21 Apr 2017 21:43:01 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LLh1PA016664; Fri, 21 Apr 2017 21:43:01 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LLh1bd016663; Fri, 21 Apr 2017 21:43:01 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704212143.v3LLh1bd016663@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Apr 2017 21:43:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317272 - head/sys/fs/nfsclient X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 21:43:02 -0000 Author: rmacklem Date: Fri Apr 21 21:43:00 2017 New Revision: 317272 URL: https://svnweb.freebsd.org/changeset/base/317272 Log: Add checks for failed operations to the NFSv4 client function nfscl_mtofh(). The nfscl_mtofh() function didn't check for failed operations and, as such, would have returned EBADRPC for these cases, due to parsing failure. This patch adds checks, so that it returns with ND_NOMOREDATA set. This is needed for future use in the pNFS server and acts as a safety belt in the meantime. MFC after: 2 weeks Modified: head/sys/fs/nfsclient/nfs_clcomsubs.c Modified: head/sys/fs/nfsclient/nfs_clcomsubs.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clcomsubs.c Fri Apr 21 21:06:11 2017 (r317271) +++ head/sys/fs/nfsclient/nfs_clcomsubs.c Fri Apr 21 21:43:00 2017 (r317272) @@ -471,6 +471,11 @@ nfscl_mtofh(struct nfsrv_descript *nd, s flag = fxdr_unsigned(int, *tl); } else if (nd->nd_flag & ND_NFSV4) { NFSM_DISSECT(tl, u_int32_t *, 2 * NFSX_UNSIGNED); + /* If the GetFH failed, clear flag. */ + if (*++tl != 0) { + nd->nd_flag |= ND_NOMOREDATA; + flag = 0; + } } if (flag) { error = nfsm_getfh(nd, nfhpp); @@ -481,8 +486,12 @@ nfscl_mtofh(struct nfsrv_descript *nd, s /* * Now, get the attributes. */ - if (nd->nd_flag & ND_NFSV4) { + if (flag != 0 && (nd->nd_flag & ND_NFSV4) != 0) { NFSM_DISSECT(tl, u_int32_t *, 2 * NFSX_UNSIGNED); + if (*++tl != 0) { + nd->nd_flag |= ND_NOMOREDATA; + flag = 0; + } } else if (nd->nd_flag & ND_NFSV3) { NFSM_DISSECT(tl, u_int32_t *, NFSX_UNSIGNED); if (flag) { From owner-svn-src-all@freebsd.org Fri Apr 21 22:00:23 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B44C1D49908; Fri, 21 Apr 2017 22:00:23 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 865EB15BC; Fri, 21 Apr 2017 22:00:23 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LM0MuO021011; Fri, 21 Apr 2017 22:00:22 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LM0M88021010; Fri, 21 Apr 2017 22:00:22 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201704212200.v3LM0M88021010@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Fri, 21 Apr 2017 22:00:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317273 - head/sys/fs/fuse X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 22:00:23 -0000 Author: cem Date: Fri Apr 21 22:00:22 2017 New Revision: 317273 URL: https://svnweb.freebsd.org/changeset/base/317273 Log: fuse: Implement FOPEN_KEEP_CACHE flag Implement FUSE open flag FOPEN_KEEP_CACHE. Without this flag, cached file contents should be invalidated on open. Apparently, fusefs-encfs relies upon this behavior. PR: 218636 Submitted by: Ben RUBSON Modified: head/sys/fs/fuse/fuse_node.c Modified: head/sys/fs/fuse/fuse_node.c ============================================================================== --- head/sys/fs/fuse/fuse_node.c Fri Apr 21 21:43:00 2017 (r317272) +++ head/sys/fs/fuse/fuse_node.c Fri Apr 21 22:00:22 2017 (r317273) @@ -272,8 +272,6 @@ fuse_vnode_open(struct vnode *vp, int32_ /* * Funcation is called for every vnode open. * Merge fuse_open_flags it may be 0 - * - * XXXIP: Handle FOPEN_KEEP_CACHE */ /* * Ideally speaking, direct io should be enabled on @@ -293,6 +291,8 @@ fuse_vnode_open(struct vnode *vp, int32_ VTOFUD(vp)->flag |= FN_DIRECTIO; fuse_io_invalbuf(vp, td); } else { + if ((fuse_open_flags & FOPEN_KEEP_CACHE) == 0) + fuse_io_invalbuf(vp, td); VTOFUD(vp)->flag &= ~FN_DIRECTIO; } From owner-svn-src-all@freebsd.org Fri Apr 21 22:19:15 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8304ED49CEF; Fri, 21 Apr 2017 22:19:15 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 39EA51F02; Fri, 21 Apr 2017 22:19:15 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LMJEg9029096; Fri, 21 Apr 2017 22:19:14 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LMJEYt029093; Fri, 21 Apr 2017 22:19:14 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201704212219.v3LMJEYt029093@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Fri, 21 Apr 2017 22:19:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317274 - in head/contrib/bmake: . unit-tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 22:19:15 -0000 Author: sjg Date: Fri Apr 21 22:19:13 2017 New Revision: 317274 URL: https://svnweb.freebsd.org/changeset/base/317274 Log: Str_Match: fix closure tests for [^] and add unit-test. Modified: head/contrib/bmake/str.c head/contrib/bmake/unit-tests/modmatch.exp head/contrib/bmake/unit-tests/modmatch.mk Modified: head/contrib/bmake/str.c ============================================================================== --- head/contrib/bmake/str.c Fri Apr 21 22:00:22 2017 (r317273) +++ head/contrib/bmake/str.c Fri Apr 21 22:19:13 2017 (r317274) @@ -382,8 +382,11 @@ Str_Match(const char *string, const char } else nomatch = 0; for (;;) { - if ((*pattern == ']') || (*pattern == 0)) - return(nomatch); + if ((*pattern == ']') || (*pattern == 0)) { + if (nomatch) + break; + return(0); + } if (*pattern == *string) break; if (pattern[1] == '-') { @@ -400,7 +403,7 @@ Str_Match(const char *string, const char } ++pattern; } - if (nomatch) + if (nomatch && (*pattern != ']') && (*pattern != 0)) return 0; while ((*pattern != ']') && (*pattern != 0)) ++pattern; Modified: head/contrib/bmake/unit-tests/modmatch.exp ============================================================================== --- head/contrib/bmake/unit-tests/modmatch.exp Fri Apr 21 22:00:22 2017 (r317273) +++ head/contrib/bmake/unit-tests/modmatch.exp Fri Apr 21 22:19:13 2017 (r317274) @@ -16,4 +16,5 @@ LIB=e X_LIBS:M*/lib${LIB}.a:tu is "/TMP/ Mscanner=OK Upper=One Two Three Four Lower=five six seven +nose=One Three five exit status 0 Modified: head/contrib/bmake/unit-tests/modmatch.mk ============================================================================== --- head/contrib/bmake/unit-tests/modmatch.mk Fri Apr 21 22:00:22 2017 (r317273) +++ head/contrib/bmake/unit-tests/modmatch.mk Fri Apr 21 22:19:13 2017 (r317274) @@ -31,3 +31,4 @@ LIST= One Two Three Four five six seven check-cclass: @echo Upper=${LIST:M[A-Z]*} @echo Lower=${LIST:M[^A-Z]*} + @echo nose=${LIST:M[^s]*[ex]} From owner-svn-src-all@freebsd.org Fri Apr 21 22:29:50 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E147D49FEC; Fri, 21 Apr 2017 22:29:50 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C0B3B754; Fri, 21 Apr 2017 22:29:49 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1d1h3d-000454-4R; Sat, 22 Apr 2017 01:29:41 +0300 Date: Sat, 22 Apr 2017 01:29:41 +0300 From: Slawa Olhovchenkov To: Rick Macklem Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r317269 - in head/sys: fs/nfs sys Message-ID: <20170421222941.GE83631@zxy.spb.ru> References: <201704212008.v3LK8AVg075168@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201704212008.v3LK8AVg075168@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 22:29:50 -0000 On Fri, Apr 21, 2017 at 08:08:10PM +0000, Rick Macklem wrote: > Author: rmacklem > Date: Fri Apr 21 20:08:10 2017 > New Revision: 317269 > URL: https://svnweb.freebsd.org/changeset/base/317269 > > Log: > Set default uid/gid to nobody/nogroup for NFSv4 mapping. > > The default uid/gid for NFSv4 are set by the nfsuserd(8) daemon. > However, they were 0 until the nfsuserd(8) was run. Since it is > possible to use NFSv4 without running the nfsuserd(8) daemon, set them > to nobody/nogroup initially. > Without this patch, the values would be set by the nfsuserd(8) daemon > and left changed even if the nfsuserd(8) daemon was killed. The default > values of 0 meant that setting a group to "wheel" would fail even when > done by root. > It also adds a definition of GID_NOGROUP to sys/conf.h. > > Discussed on: freebsd-current@ > MFC after: 2 weeks Can you also look to this problem https://lists.freebsd.org/pipermail/freebsd-stable/2012-March/066868.html ? From owner-svn-src-all@freebsd.org Fri Apr 21 22:38:27 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 97FB9D492F9; Fri, 21 Apr 2017 22:38:27 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 616F4C80; Fri, 21 Apr 2017 22:38:27 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LMcQJG037121; Fri, 21 Apr 2017 22:38:26 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LMcQrj037120; Fri, 21 Apr 2017 22:38:26 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704212238.v3LMcQrj037120@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Apr 2017 22:38:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317275 - head/sys/fs/nfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 22:38:27 -0000 Author: rmacklem Date: Fri Apr 21 22:38:26 2017 New Revision: 317275 URL: https://svnweb.freebsd.org/changeset/base/317275 Log: Don't create a backchannel for a DS connection. An NFSv4.1 client connection to a Data Server (DS) should not have a backchannel. This patch fixes the NFSv4.1/pNFS client to not do a backchannel for this case. Found during recent testing with the pNFS server under development. MFC after: 2 weeks Modified: head/sys/fs/nfs/nfs_commonkrpc.c Modified: head/sys/fs/nfs/nfs_commonkrpc.c ============================================================================== --- head/sys/fs/nfs/nfs_commonkrpc.c Fri Apr 21 22:19:13 2017 (r317274) +++ head/sys/fs/nfs/nfs_commonkrpc.c Fri Apr 21 22:38:26 2017 (r317275) @@ -280,7 +280,8 @@ newnfs_connect(struct nfsmount *nmp, str retries = nmp->nm_retry; } else retries = INT_MAX; - if (NFSHASNFSV4N(nmp)) { + /* cred == NULL for DS connects. */ + if (NFSHASNFSV4N(nmp) && cred != NULL) { /* * Make sure the nfscbd_pool doesn't get destroyed * while doing this. From owner-svn-src-all@freebsd.org Fri Apr 21 23:01:33 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7B963D49959; Fri, 21 Apr 2017 23:01:33 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4DA2C93C; Fri, 21 Apr 2017 23:01:33 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LN1WgQ045378; Fri, 21 Apr 2017 23:01:32 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3LN1Wl9045377; Fri, 21 Apr 2017 23:01:32 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704212301.v3LN1Wl9045377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Apr 2017 23:01:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317276 - head/sys/fs/nfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 23:01:33 -0000 Author: rmacklem Date: Fri Apr 21 23:01:32 2017 New Revision: 317276 URL: https://svnweb.freebsd.org/changeset/base/317276 Log: Don't set ND_NOMOREDATA for a failed Setattr operation (NFSv4). The NFSv4 Setattr operation always has reply data even when it fails, so don't set the ND_NOMOREDATA for it. This would only affect unusual cases where Setattr fails and the RPC code wants to parse the rest of the compound. Detected during recent development related to the pNFS server. MFC after: 2 weeks Modified: head/sys/fs/nfs/nfs_commonkrpc.c Modified: head/sys/fs/nfs/nfs_commonkrpc.c ============================================================================== --- head/sys/fs/nfs/nfs_commonkrpc.c Fri Apr 21 22:38:26 2017 (r317275) +++ head/sys/fs/nfs/nfs_commonkrpc.c Fri Apr 21 23:01:32 2017 (r317276) @@ -1043,8 +1043,10 @@ tryagain: /* * If this op's status is non-zero, mark * that there is no more data to process. + * The exception is Setattr, which always has xdr + * when it has failed. */ - if (j) + if (j != 0 && i != NFSV4OP_SETATTR) nd->nd_flag |= ND_NOMOREDATA; /* From owner-svn-src-all@freebsd.org Sat Apr 22 01:06:24 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E58E2D40601; Sat, 22 Apr 2017 01:06:24 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B4F3CDC7; Sat, 22 Apr 2017 01:06:24 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3M16N16097823; Sat, 22 Apr 2017 01:06:23 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3M16NLH097822; Sat, 22 Apr 2017 01:06:23 GMT (envelope-from des@FreeBSD.org) Message-Id: <201704220106.v3M16NLH097822@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 22 Apr 2017 01:06:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317277 - head/sys/crypto/chacha20 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 01:06:25 -0000 Author: des Date: Sat Apr 22 01:06:23 2017 New Revision: 317277 URL: https://svnweb.freebsd.org/changeset/base/317277 Log: Fix counter increment in Salsa and ChaCha. In my eagerness to eliminate a branch which is taken once per 2^38 bytes of keystream, I forgot that the state words are in host order. Thus, the counter increment code worked fine on little-endian machines, but not on big-endian ones. Switch to a simpler (branchful) solution. Modified: head/sys/crypto/chacha20/chacha20.c Modified: head/sys/crypto/chacha20/chacha20.c ============================================================================== --- head/sys/crypto/chacha20/chacha20.c Fri Apr 21 23:01:32 2017 (r317276) +++ head/sys/crypto/chacha20/chacha20.c Sat Apr 22 01:06:23 2017 (r317277) @@ -130,7 +130,6 @@ size_t chacha20_encrypt(chacha20_ctx *ctx, const void *vpt, uint8_t *ct, size_t len) { const uint8_t *pt = vpt; - uint64_t ctr; uint32_t mix[16]; uint8_t ks[64]; unsigned int b, i; @@ -157,8 +156,8 @@ chacha20_encrypt(chacha20_ctx *ctx, cons for (i = 0; i < 64 && i < len; ++i) *ct++ = *pt++ ^ ks[i]; } - ctr = le64dec(ctx->state + 12); - le64enc(ctx->state + 12, ++ctr); + if (++ctx->state[12] == 0) + ++ctx->state[13]; } return (len); } From owner-svn-src-all@freebsd.org Sat Apr 22 01:28:34 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1950D46A06; Sat, 22 Apr 2017 01:28:34 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9F49DE0B; Sat, 22 Apr 2017 01:28:34 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 7151210A82D; Fri, 21 Apr 2017 21:28:32 -0400 (EDT) From: John Baldwin To: Eric Badger 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: r315949 - in stable: 10/sys/kern 10/sys/sys 10/tests/sys/kern 11/sys/kern 11/sys/sys 11/tests/sys/kern Date: Fri, 21 Apr 2017 15:11 -0700 Message-ID: <6768216.Fy5yUeFf9F@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-STABLE; KDE/4.14.10; amd64; ; ) In-Reply-To: <201703251333.v2PDXOmS004369@repo.freebsd.org> References: <201703251333.v2PDXOmS004369@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Fri, 21 Apr 2017 21:28:32 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 01:28:34 -0000 On Saturday, March 25, 2017 01:33:24 PM Eric Badger wrote: > Author: badger > Date: Sat Mar 25 13:33:23 2017 > New Revision: 315949 > URL: https://svnweb.freebsd.org/changeset/base/315949 > > Log: > MFC r313992, r314075, r314118, r315484: > > r315484: > ptrace_test: eliminate assumption about thread scheduling > > A couple of the ptrace tests make assumptions about which thread in a > multithreaded process will run after a halt. This makes the tests less > portable across branches, and susceptible to future breakage. Instead, > twiddle thread scheduling and priorities to match the tests' > expectation. > > r314118: > Actually fix buildworlds other than i386/amd64/sparc64 after r313992 > > Disable offending test for platforms without a userspace visible > breakpoint(). > > r314075: > Fix world build for archs where __builtin_debugtrap() does not work. > > The offending code was introduced in r313992. > > r313992: > Defer ptracestop() signals that cannot be delivered immediately > > When a thread is stopped in ptracestop(), the ptrace(2) user may request > a signal be delivered upon resumption of the thread. Heretofore, those signals > were discarded unless ptracestop()'s caller was issignal(). Fix this by > modifying ptracestop() to queue up signals requested by the ptrace user that > will be delivered when possible. Take special care when the signal is SIGKILL > (usually generated from a PT_KILL request); no new stop events should be > triggered after a PT_KILL. > > Add a number of tests for the new functionality. Several tests were authored > by jhb. > > PR: 212607 > Sponsored by: Dell EMC So this MFC happens to break the KBI of 'struct thread' because 'struct sigqueue' is embedded in 'struct thread' (rather than a pointer). This apparently results in panics if you use an nvidia-driver package built on 11.0-release on 11.0-stable, and that's the type of KBI we try to preserve. (We tend to only add new fields to the end of 'struct thread' and 'struct proc' in stable for example.) This one is a bit ugly to deal with though. I wonder if for the stable branches only if we could move the sq_ptrace out of the sigqueue struct and add it as a new field to the end of 'struct thread' explicitly? It would probably be pretty hacky, but it would be good to fix this before 11.1 so that the KBI wouldn't be broken for a user going from 11.0 to 11.1. -- John Baldwin From owner-svn-src-all@freebsd.org Sat Apr 22 02:12:09 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E4E4D4913A; Sat, 22 Apr 2017 02:12:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 27DEAAAE; Sat, 22 Apr 2017 02:12:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3M2C8XT023608; Sat, 22 Apr 2017 02:12:08 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3M2C8I4023606; Sat, 22 Apr 2017 02:12:08 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201704220212.v3M2C8I4023606@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 22 Apr 2017 02:12:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317278 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 02:12:09 -0000 Author: adrian Date: Sat Apr 22 02:12:07 2017 New Revision: 317278 URL: https://svnweb.freebsd.org/changeset/base/317278 Log: [net80211] add methods to fetch the global and per-VAP WME parameters. For now there isn't any per-VAP WME state. The eventual aim is to migrate the driver direct use of WME parameters over to use these methods as appropriate (global for most devices, per-VAP for firmware NICs that support it) in preparation for actual per-VAP WME (and other thing) state change support. Modified: head/sys/net80211/ieee80211_proto.c head/sys/net80211/ieee80211_proto.h Modified: head/sys/net80211/ieee80211_proto.c ============================================================================== --- head/sys/net80211/ieee80211_proto.c Sat Apr 22 01:06:23 2017 (r317277) +++ head/sys/net80211/ieee80211_proto.c Sat Apr 22 02:12:07 2017 (r317278) @@ -1306,6 +1306,20 @@ ieee80211_wme_updateparams(struct ieee80 } } +void +ieee80211_wme_vap_getparams(struct ieee80211vap *vap, struct chanAccParams *wp) +{ + + memcpy(wp, &vap->iv_ic->ic_wme.wme_chanParams, sizeof(*wp)); +} + +void +ieee80211_wme_ic_getparams(struct ieee80211com *ic, struct chanAccParams *wp) +{ + + memcpy(wp, &ic->ic_wme.wme_chanParams, sizeof(*wp)); +} + static void parent_updown(void *arg, int npending) { Modified: head/sys/net80211/ieee80211_proto.h ============================================================================== --- head/sys/net80211/ieee80211_proto.h Sat Apr 22 01:06:23 2017 (r317277) +++ head/sys/net80211/ieee80211_proto.h Sat Apr 22 02:12:07 2017 (r317278) @@ -292,6 +292,10 @@ struct ieee80211_wme_state { void ieee80211_wme_initparams(struct ieee80211vap *); void ieee80211_wme_updateparams(struct ieee80211vap *); void ieee80211_wme_updateparams_locked(struct ieee80211vap *); +void ieee80211_wme_vap_getparams(struct ieee80211vap *vap, + struct chanAccParams *); +void ieee80211_wme_ic_getparams(struct ieee80211com *ic, + struct chanAccParams *); /* * Return the WME TID from a QoS frame. If no TID From owner-svn-src-all@freebsd.org Sat Apr 22 02:34:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E831ED49CF1; Sat, 22 Apr 2017 02:34:03 +0000 (UTC) (envelope-from rpaulo@me.com) Received: from st13p97im-ztdg18291001.me.com (st13p97im-ztdg18291001.me.com [17.41.193.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BDE428B6; Sat, 22 Apr 2017 02:34:03 +0000 (UTC) (envelope-from rpaulo@me.com) Received: from process-dkim-sign-daemon.st13p97im-ztdg18291001.me.com by st13p97im-ztdg18291001.me.com (Oracle Communications Messaging Server 7.0.5.38.0 64bit (built Feb 26 2016)) id <0OOS00L00HSA6P00@st13p97im-ztdg18291001.me.com>; Sat, 22 Apr 2017 02:33:57 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=4d515a; t=1492828437; bh=ma39r/1DDrkFNp97kb3uiwHoMS3Q8ly41myM2FeGoBQ=; h=Date:From:Subject:To:Message-id:MIME-version:Content-type; b=pw87NrXvmhOIGK4l+zOcwuC9ePAdqKCe9Br00Qol4ltcBK3VWKS1efdlz08Mfzk9C 1aP4Z5Ay+oiwUG27Z3m8vg9ir8wF+RcdgFBb1fDh8Twp80bRMG6hABvjKKcKTgaetD 19t2QkegYxmv0zfRPS2jpOI1kugJnC8fR+2ptKxPdkAh4vjRNN390ZxJPGwCRjeErq 9mOg5UBvrFizMksrdFpllT0hbO+DhXVuDUR8O6qblG6jedEUbTUgamOKZzz3sLfmbJ hG28QVUeKlb33BVNYsIxSjPsB39iZNLyah5LgdUORnNc1mT0Y2xQGyE2rV4zL/CdQE b4QkR2eJfQf9w== Received: from icloud.com ([127.0.0.1]) by st13p97im-ztdg18291001.me.com (Oracle Communications Messaging Server 7.0.5.38.0 64bit (built Feb 26 2016)) id <0OOS00L00HSK9I00@st13p97im-ztdg18291001.me.com>; Sat, 22 Apr 2017 02:33:56 +0000 (GMT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-04-21_20:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 clxscore=1034 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1701120000 definitions=main-1704220034 Received: from icloud.com ([127.0.0.1]) by st13p97im-ztdg18291001.me.com (Oracle Communications Messaging Server 7.0.5.38.0 64bit (built Feb 26 2016)) with ESMTPSA id <0OOS00HC7HS2HI20@st13p97im-ztdg18291001.me.com>; Sat, 22 Apr 2017 02:33:56 +0000 (GMT) Date: Fri, 21 Apr 2017 19:33:38 -0700 From: Rui Paulo Subject: Re: svn commit: r317277 - head/sys/crypto/chacha20 In-reply-to: <201704220106.v3M16NLH097822@repo.freebsd.org> To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-id: MIME-version: 1.0 (Mac OS X Mail 10.3 \(3273\)) X-Mailer: Apple Mail (2.3273) Content-type: text/plain; charset=utf-8 Content-transfer-encoding: quoted-printable References: <201704220106.v3M16NLH097822@repo.freebsd.org> X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 02:34:04 -0000 On Apr 21, 2017, at 18:06, Dag-Erling Sm=C3=B8rgrav = wrote: >=20 > Author: des > Date: Sat Apr 22 01:06:23 2017 > New Revision: 317277 > URL: https://svnweb.freebsd.org/changeset/base/317277 >=20 > Log: > Fix counter increment in Salsa and ChaCha. >=20 > In my eagerness to eliminate a branch which is taken once per 2^38 > bytes of keystream, I forgot that the state words are in host order. > Thus, the counter increment code worked fine on little-endian > machines, but not on big-endian ones. Switch to a simpler = (branchful) > solution. I=E2=80=99m surprised there=E2=80=99s no mention of who reviewed your = change, especially when you=E2=80=99re changing crypto code.= From owner-svn-src-all@freebsd.org Sat Apr 22 02:39:10 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A51ABD49EDC for ; Sat, 22 Apr 2017 02:39:10 +0000 (UTC) (envelope-from 0100015b9386e2b1-ac40d981-d38e-43f2-9fb5-39e19f928733-000000@amazonses.com) Received: from a8-26.smtp-out.amazonses.com (a8-26.smtp-out.amazonses.com [54.240.8.26]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6ADDCA9B for ; Sat, 22 Apr 2017 02:39:09 +0000 (UTC) (envelope-from 0100015b9386e2b1-ac40d981-d38e-43f2-9fb5-39e19f928733-000000@amazonses.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ae7m2yrxjw65l2cqdpjxuucyrvy564tn; d=tarsnap.com; t=1492828742; h=Subject:To:References:Cc:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; bh=Nh3gLOq5f2id/40/aafYhVBtMU/HVgkhDyhDNaQs1yo=; b=SQ3sdaQQ16ZFFToImiqrs7S/cYG2xEuHDGgTCweBQE0fQvOI0EEjHjvaRpKv6Oxd 0J1ZmQqTzYgClUD4kaai4woEACUqQJyRPaAjN5pKphbI+iK5BjHAViAhAEPRmwLk+dv BcxmoYPumfZg2I9gdL24gexJEXZTS/QIE8iLON0k= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=224i4yxa5dv7c2xz3womw6peuasteono; d=amazonses.com; t=1492828742; h=Subject:To:References:Cc:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding:Feedback-ID; bh=Nh3gLOq5f2id/40/aafYhVBtMU/HVgkhDyhDNaQs1yo=; b=C9I+UZdtkL+sDgaj42ixgSZkvRVaCS/gXOA8tbhMGcoizHLhs3kz7OgcmGAbo22v xpH0HtT537J4xZGb2gGdY/0rpU8eCtoNdkf3KCawdtYrSRK/WMLpM3ikR6ECJ1FpbxM mgBJA6mwD56Uwa0LbpqZuqKEhPtm+UpWfS1oyx1E= Subject: Re: svn commit: r317277 - head/sys/crypto/chacha20 To: Rui Paulo , =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= References: <201704220106.v3M16NLH097822@repo.freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Colin Percival Message-ID: <0100015b9386e2b1-ac40d981-d38e-43f2-9fb5-39e19f928733-000000@email.amazonses.com> Date: Sat, 22 Apr 2017 02:39:02 +0000 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SES-Outgoing: 2017.04.22-54.240.8.26 Feedback-ID: 1.us-east-1.Lv9FVjaNvvR5llaqfLoOVbo2VxOELl7cjN0AOyXnPlk=:AmazonSES X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 02:39:10 -0000 On 04/21/17 19:33, Rui Paulo wrote: > On Apr 21, 2017, at 18:06, Dag-Erling Smørgrav wrote: >> Author: des >> Date: Sat Apr 22 01:06:23 2017 >> New Revision: 317277 >> URL: https://svnweb.freebsd.org/changeset/base/317277 >> >> Log: >> Fix counter increment in Salsa and ChaCha. >> >> In my eagerness to eliminate a branch which is taken once per 2^38 >> bytes of keystream, I forgot that the state words are in host order. >> Thus, the counter increment code worked fine on little-endian >> machines, but not on big-endian ones. Switch to a simpler (branchful) >> solution. > > I’m surprised there’s no mention of who reviewed your change, especially when you’re changing crypto code. Reviewed by: cperciva -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@freebsd.org Sat Apr 22 05:41:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D70AED4AEF0; Sat, 22 Apr 2017 05:41:03 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 52C2A779; Sat, 22 Apr 2017 05:41:03 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id v3M5ewfI034526 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 22 Apr 2017 08:40:58 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua v3M5ewfI034526 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id v3M5ewjh034525; Sat, 22 Apr 2017 08:40:58 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 22 Apr 2017 08:40:58 +0300 From: Konstantin Belousov To: John Baldwin Cc: Eric Badger , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r315949 - in stable: 10/sys/kern 10/sys/sys 10/tests/sys/kern 11/sys/kern 11/sys/sys 11/tests/sys/kern Message-ID: <20170422054058.GM1788@kib.kiev.ua> References: <201703251333.v2PDXOmS004369@repo.freebsd.org> <6768216.Fy5yUeFf9F@ralph.baldwin.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6768216.Fy5yUeFf9F@ralph.baldwin.cx> User-Agent: Mutt/1.8.0 (2017-02-23) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 05:41:03 -0000 On Fri, Apr 21, 2017 at 03:11:00PM -0700, John Baldwin wrote: > So this MFC happens to break the KBI of 'struct thread' because > 'struct sigqueue' is embedded in 'struct thread' (rather than > a pointer). This apparently results in panics if you use an > nvidia-driver package built on 11.0-release on 11.0-stable, and > that's the type of KBI we try to preserve. (We tend to only add new > fields to the end of 'struct thread' and 'struct proc' in stable for > example.) This one is a bit ugly to deal with though. I wonder if > for the stable branches only if we could move the sq_ptrace out of > the sigqueue struct and add it as a new field to the end of 'struct > thread' explicitly? It would probably be pretty hacky, but it would be > good to fix this before 11.1 so that the KBI wouldn't be broken for a > user going from 11.0 to 11.1. It might be easier to repurpose existing td_sigqueue as padding with corrected size, and place real sigqueue at the end of the structure. add From owner-svn-src-all@freebsd.org Sat Apr 22 08:38:51 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A110D49C34; Sat, 22 Apr 2017 08:38:51 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DB699FD3; Sat, 22 Apr 2017 08:38:50 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3M8cnHj080326; Sat, 22 Apr 2017 08:38:49 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3M8cnh2080325; Sat, 22 Apr 2017 08:38:49 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201704220838.v3M8cnh2080325@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 22 Apr 2017 08:38:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317279 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 08:38:51 -0000 Author: mav Date: Sat Apr 22 08:38:49 2017 New Revision: 317279 URL: https://svnweb.freebsd.org/changeset/base/317279 Log: Remove unneeded conditions. MFC after: 2 weeks Modified: head/sys/net/if_lagg.c Modified: head/sys/net/if_lagg.c ============================================================================== --- head/sys/net/if_lagg.c Sat Apr 22 02:12:07 2017 (r317278) +++ head/sys/net/if_lagg.c Sat Apr 22 08:38:49 2017 (r317279) @@ -439,10 +439,8 @@ lagg_register_vlan(void *arg, struct ifn return; LAGG_RLOCK(sc, &tracker); - if (!SLIST_EMPTY(&sc->sc_ports)) { - SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) - EVENTHANDLER_INVOKE(vlan_config, lp->lp_ifp, vtag); - } + SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) + EVENTHANDLER_INVOKE(vlan_config, lp->lp_ifp, vtag); LAGG_RUNLOCK(sc, &tracker); } @@ -461,10 +459,8 @@ lagg_unregister_vlan(void *arg, struct i return; LAGG_RLOCK(sc, &tracker); - if (!SLIST_EMPTY(&sc->sc_ports)) { - SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) - EVENTHANDLER_INVOKE(vlan_unconfig, lp->lp_ifp, vtag); - } + SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) + EVENTHANDLER_INVOKE(vlan_unconfig, lp->lp_ifp, vtag); LAGG_RUNLOCK(sc, &tracker); } From owner-svn-src-all@freebsd.org Sat Apr 22 09:38:44 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DAF4BD47AAA; Sat, 22 Apr 2017 09:38:44 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AA5EA7C4; Sat, 22 Apr 2017 09:38:44 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3M9chHm005077; Sat, 22 Apr 2017 09:38:43 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3M9cheI005076; Sat, 22 Apr 2017 09:38:43 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201704220938.v3M9cheI005076@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 22 Apr 2017 09:38:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317280 - head/usr.bin/tip/tip X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 09:38:45 -0000 Author: trasz Date: Sat Apr 22 09:38:43 2017 New Revision: 317280 URL: https://svnweb.freebsd.org/changeset/base/317280 Log: Add basic example to the cu(1) man page. Srsly, folks, you don't need to install minicom for this... MFC after: 2 weeks Modified: head/usr.bin/tip/tip/cu.1 Modified: head/usr.bin/tip/tip/cu.1 ============================================================================== --- head/usr.bin/tip/tip/cu.1 Sat Apr 22 08:38:49 2017 (r317279) +++ head/usr.bin/tip/tip/cu.1 Sat Apr 22 09:38:43 2017 (r317280) @@ -30,7 +30,7 @@ .\" @(#)tip.1 8.4 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd September 1, 2006 +.Dd April 22, 2017 .Dt CU 1 .Os .Sh NAME @@ -494,6 +494,11 @@ line access log lock file to avoid conflicts with .Xr uucp 1 Pq Pa ports/net/freebsd-uucp .El +.Sh EXAMPLES +Connect to the first USB serial port at the speed of 115200 baud: +.Bd -literal -offset indent +cu -s 115200 -l /dev/cuaU0 +.Ed .Sh SEE ALSO .Xr tip 1 .Sh HISTORY From owner-svn-src-all@freebsd.org Sat Apr 22 13:04:37 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC5D8D49FD3; Sat, 22 Apr 2017 13:04:37 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 56E42BBA; Sat, 22 Apr 2017 13:04:37 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MD4a23092578; Sat, 22 Apr 2017 13:04:36 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MD4ahb092577; Sat, 22 Apr 2017 13:04:36 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201704221304.v3MD4ahb092577@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sat, 22 Apr 2017 13:04:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317282 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 13:04:37 -0000 Author: kp Date: Sat Apr 22 13:04:36 2017 New Revision: 317282 URL: https://svnweb.freebsd.org/changeset/base/317282 Log: Rename variable for clarity Rename the mtu variable in ip6_fragment(), because mtu is misleading. The variable actually holds the fragment length. No functional change. Suggested by: ae Modified: head/sys/netinet6/ip6_output.c Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Sat Apr 22 11:30:07 2017 (r317281) +++ head/sys/netinet6/ip6_output.c Sat Apr 22 13:04:36 2017 (r317282) @@ -217,7 +217,7 @@ in6_delayed_cksum(struct mbuf *m, uint32 int ip6_fragment(struct ifnet *ifp, struct mbuf *m0, int hlen, u_char nextproto, - int mtu, uint32_t id) + int fraglen , uint32_t id) { struct mbuf *m, **mnext, *m_frgpart; struct ip6_hdr *ip6, *mhip6; @@ -226,13 +226,13 @@ ip6_fragment(struct ifnet *ifp, struct m int error; int tlen = m0->m_pkthdr.len; - KASSERT(( mtu % 8 == 0), ("Fragment length must be a multiple of 8")); + KASSERT((fraglen % 8 == 0), ("Fragment length must be a multiple of 8")); m = m0; ip6 = mtod(m, struct ip6_hdr *); mnext = &m->m_nextpkt; - for (off = hlen; off < tlen; off += mtu) { + for (off = hlen; off < tlen; off += fraglen) { m = m_gethdr(M_NOWAIT, MT_DATA); if (!m) { IP6STAT_INC(ip6s_odropped); @@ -251,18 +251,18 @@ ip6_fragment(struct ifnet *ifp, struct m return (error); } ip6f->ip6f_offlg = htons((u_short)((off - hlen) & ~7)); - if (off + mtu >= tlen) - mtu = tlen - off; + if (off + fraglen >= tlen) + fraglen = tlen - off; else ip6f->ip6f_offlg |= IP6F_MORE_FRAG; - mhip6->ip6_plen = htons((u_short)(mtu + hlen + + mhip6->ip6_plen = htons((u_short)(fraglen + hlen + sizeof(*ip6f) - sizeof(struct ip6_hdr))); - if ((m_frgpart = m_copym(m0, off, mtu, M_NOWAIT)) == NULL) { + if ((m_frgpart = m_copym(m0, off, fraglen, M_NOWAIT)) == NULL) { IP6STAT_INC(ip6s_odropped); return (ENOBUFS); } m_cat(m, m_frgpart); - m->m_pkthdr.len = mtu + hlen + sizeof(*ip6f); + m->m_pkthdr.len = fraglen + hlen + sizeof(*ip6f); m->m_pkthdr.fibnum = m0->m_pkthdr.fibnum; m->m_pkthdr.rcvif = NULL; ip6f->ip6f_reserved = 0; From owner-svn-src-all@freebsd.org Sat Apr 22 14:50:13 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7DC84D4A3E2; Sat, 22 Apr 2017 14:50:13 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 551ED3D8; Sat, 22 Apr 2017 14:50:13 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MEoC9m033956; Sat, 22 Apr 2017 14:50:12 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MEoC2I033952; Sat, 22 Apr 2017 14:50:12 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704221450.v3MEoC2I033952@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sat, 22 Apr 2017 14:50:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317283 - head/sbin/fsck_ffs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 14:50:13 -0000 Author: pfg Date: Sat Apr 22 14:50:11 2017 New Revision: 317283 URL: https://svnweb.freebsd.org/changeset/base/317283 Log: fsck_ffs: Unsign some variables and make use of reallocarray(3). Instead of casting listmax and numdirs to unsigned values just define them as unsigned and avoid the casts. Use reallocarray(3). While here, fs_ncg is already unsigned so the cast is unnecessary. Reviewed by: mckusick MFC after: 2 weeks Modified: head/sbin/fsck_ffs/fsck.h head/sbin/fsck_ffs/globs.c head/sbin/fsck_ffs/inode.c head/sbin/fsck_ffs/setup.c Modified: head/sbin/fsck_ffs/fsck.h ============================================================================== --- head/sbin/fsck_ffs/fsck.h Sat Apr 22 13:04:36 2017 (r317282) +++ head/sbin/fsck_ffs/fsck.h Sat Apr 22 14:50:11 2017 (r317283) @@ -282,7 +282,8 @@ struct inoinfo { u_int i_numblks; /* size of block array in bytes */ ufs2_daddr_t i_blks[1]; /* actually longer */ } **inphead, **inpsort; -extern long numdirs, dirhash, listmax, inplast; +extern long dirhash, inplast; +extern unsigned long numdirs, listmax; extern long countdirs; /* number of directories we actually found */ #define MIBSIZE 3 /* size of fsck sysctl MIBs */ Modified: head/sbin/fsck_ffs/globs.c ============================================================================== --- head/sbin/fsck_ffs/globs.c Sat Apr 22 13:04:36 2017 (r317282) +++ head/sbin/fsck_ffs/globs.c Sat Apr 22 14:50:11 2017 (r317283) @@ -56,7 +56,8 @@ struct bufarea sblk; /* file system sup struct bufarea *pdirbp; /* current directory contents */ struct bufarea *pbp; /* current inode block */ ino_t cursnapshot; -long numdirs, dirhash, listmax, inplast; +long dirhash, inplast; +unsigned long numdirs, listmax; long countdirs; /* number of directories we actually found */ int adjrefcnt[MIBSIZE]; /* MIB command to adjust inode reference cnt */ int adjblkcnt[MIBSIZE]; /* MIB command to adjust inode block count */ @@ -123,7 +124,7 @@ fsckinit(void) pdirbp = NULL; pbp = NULL; cursnapshot = 0; - numdirs = dirhash = listmax = inplast = 0; + listmax = numdirs = dirhash = inplast = 0; countdirs = 0; bzero(adjrefcnt, sizeof(int) * MIBSIZE); bzero(adjblkcnt, sizeof(int) * MIBSIZE); Modified: head/sbin/fsck_ffs/inode.c ============================================================================== --- head/sbin/fsck_ffs/inode.c Sat Apr 22 13:04:36 2017 (r317282) +++ head/sbin/fsck_ffs/inode.c Sat Apr 22 14:50:11 2017 (r317283) @@ -472,8 +472,8 @@ cacheino(union dinode *dp, ino_t inumber inp->i_blks[UFS_NDADDR + i] = DIP(dp, di_ib[i]); if (inplast == listmax) { listmax += 100; - inpsort = (struct inoinfo **)realloc((char *)inpsort, - (unsigned)listmax * sizeof(struct inoinfo *)); + inpsort = (struct inoinfo **)reallocarray((char *)inpsort, + listmax, sizeof(struct inoinfo *)); if (inpsort == NULL) errx(EEXIT, "cannot increase directory list"); } Modified: head/sbin/fsck_ffs/setup.c ============================================================================== --- head/sbin/fsck_ffs/setup.c Sat Apr 22 13:04:36 2017 (r317282) +++ head/sbin/fsck_ffs/setup.c Sat Apr 22 14:50:11 2017 (r317283) @@ -268,8 +268,7 @@ setup(char *dev) (unsigned)bmapsize); goto badsb; } - inostathead = Calloc((unsigned)(sblock.fs_ncg), - sizeof(struct inostatlist)); + inostathead = Calloc(sblock.fs_ncg, sizeof(struct inostatlist)); if (inostathead == NULL) { printf("cannot alloc %u bytes for inostathead\n", (unsigned)(sizeof(struct inostatlist) * (sblock.fs_ncg))); @@ -279,10 +278,8 @@ setup(char *dev) dirhash = numdirs; inplast = 0; listmax = numdirs + 10; - inpsort = (struct inoinfo **)Calloc((unsigned)listmax, - sizeof(struct inoinfo *)); - inphead = (struct inoinfo **)Calloc((unsigned)numdirs, - sizeof(struct inoinfo *)); + inpsort = (struct inoinfo **)Calloc(listmax, sizeof(struct inoinfo *)); + inphead = (struct inoinfo **)Calloc(numdirs, sizeof(struct inoinfo *)); if (inpsort == NULL || inphead == NULL) { printf("cannot alloc %ju bytes for inphead\n", (uintmax_t)numdirs * sizeof(struct inoinfo *)); From owner-svn-src-all@freebsd.org Sat Apr 22 16:02:42 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08874D4BBB2; Sat, 22 Apr 2017 16:02:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D275AC1E; Sat, 22 Apr 2017 16:02:41 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MG2eGg065980; Sat, 22 Apr 2017 16:02:40 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MG2eC3065978; Sat, 22 Apr 2017 16:02:40 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201704221602.v3MG2eC3065978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sat, 22 Apr 2017 16:02:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317284 - head/usr.sbin/pmcstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 16:02:42 -0000 Author: pfg Date: Sat Apr 22 16:02:40 2017 New Revision: 317284 URL: https://svnweb.freebsd.org/changeset/base/317284 Log: pmcstat(8); unsign some allocation variables and use reallocarray(3). Use unsigned values in some internal variables that will be used during allocation. The variables are used in reduced scope and have no chance of becoming negative. Provide bounds checking through reallocarray(3). MFC after: 2 weeks Modified: head/usr.sbin/pmcstat/pmcpl_calltree.c head/usr.sbin/pmcstat/pmcstat_log.c Modified: head/usr.sbin/pmcstat/pmcpl_calltree.c ============================================================================== --- head/usr.sbin/pmcstat/pmcpl_calltree.c Sat Apr 22 14:50:11 2017 (r317283) +++ head/usr.sbin/pmcstat/pmcpl_calltree.c Sat Apr 22 16:02:40 2017 (r317284) @@ -185,7 +185,7 @@ pmcpl_ct_samples_free(struct pmcpl_ct_sa static void pmcpl_ct_samples_grow(struct pmcpl_ct_sample *samples) { - int npmcs; + unsigned int npmcs; /* Enough storage. */ if (pmcstat_npmcs <= samples->npmcs) @@ -193,7 +193,7 @@ pmcpl_ct_samples_grow(struct pmcpl_ct_sa npmcs = samples->npmcs + max(pmcstat_npmcs - samples->npmcs, PMCPL_CT_GROWSIZE); - samples->sb = realloc(samples->sb, npmcs * sizeof(unsigned)); + samples->sb = reallocarray(samples->sb, npmcs, sizeof(unsigned)); if (samples->sb == NULL) errx(EX_SOFTWARE, "ERROR: out of memory"); bzero((char *)samples->sb + samples->npmcs * sizeof(unsigned), @@ -226,13 +226,13 @@ pmcpl_ct_samples_root(struct pmcpl_ct_sa static void pmcpl_ct_arc_grow(int cursize, int *maxsize, struct pmcpl_ct_arc **items) { - int nmaxsize; + unsigned int nmaxsize; if (cursize < *maxsize) return; nmaxsize = *maxsize + max(cursize + 1 - *maxsize, PMCPL_CT_GROWSIZE); - *items = realloc(*items, nmaxsize * sizeof(struct pmcpl_ct_arc)); + *items = reallocarray(*items, nmaxsize, sizeof(struct pmcpl_ct_arc)); if (*items == NULL) errx(EX_SOFTWARE, "ERROR: out of memory"); bzero((char *)*items + *maxsize * sizeof(struct pmcpl_ct_arc), @@ -247,13 +247,13 @@ pmcpl_ct_arc_grow(int cursize, int *maxs static void pmcpl_ct_instr_grow(int cursize, int *maxsize, struct pmcpl_ct_instr **items) { - int nmaxsize; + unsigned int nmaxsize; if (cursize < *maxsize) return; nmaxsize = *maxsize + max(cursize + 1 - *maxsize, PMCPL_CT_GROWSIZE); - *items = realloc(*items, nmaxsize * sizeof(struct pmcpl_ct_instr)); + *items = reallocarray(*items, nmaxsize, sizeof(struct pmcpl_ct_instr)); if (*items == NULL) errx(EX_SOFTWARE, "ERROR: out of memory"); bzero((char *)*items + *maxsize * sizeof(struct pmcpl_ct_instr), Modified: head/usr.sbin/pmcstat/pmcstat_log.c ============================================================================== --- head/usr.sbin/pmcstat/pmcstat_log.c Sat Apr 22 14:50:11 2017 (r317283) +++ head/usr.sbin/pmcstat/pmcstat_log.c Sat Apr 22 16:02:40 2017 (r317284) @@ -535,8 +535,8 @@ pmcstat_image_add_symbols(struct pmcstat * Allocate space for the new entries. */ firsttime = image->pi_symbols == NULL; - symptr = realloc(image->pi_symbols, - sizeof(*symptr) * (image->pi_symcount + nfuncsyms)); + symptr = reallocarray(image->pi_symbols, + image->pi_symcount + nfuncsyms, sizeof(*symptr)); if (symptr == image->pi_symbols) /* realloc() failed. */ return; image->pi_symbols = symptr; @@ -587,8 +587,8 @@ pmcstat_image_add_symbols(struct pmcstat * Return space to the system if there were duplicates. */ if (newsyms < nfuncsyms) - image->pi_symbols = realloc(image->pi_symbols, - sizeof(*symptr) * image->pi_symcount); + image->pi_symbols = reallocarray(image->pi_symbols, + image->pi_symcount, sizeof(*symptr)); /* * Keep the list of symbols sorted. From owner-svn-src-all@freebsd.org Sat Apr 22 18:55:27 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 501FBD4BAE9; Sat, 22 Apr 2017 18:55:27 +0000 (UTC) (envelope-from karels@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1533EE45; Sat, 22 Apr 2017 18:55:27 +0000 (UTC) (envelope-from karels@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MItQdS035539; Sat, 22 Apr 2017 18:55:26 GMT (envelope-from karels@FreeBSD.org) Received: (from karels@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MItQOD035538; Sat, 22 Apr 2017 18:55:26 GMT (envelope-from karels@FreeBSD.org) Message-Id: <201704221855.v3MItQOD035538@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: karels set sender to karels@FreeBSD.org using -f From: Mike Karels Date: Sat, 22 Apr 2017 18:55:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317286 - stable/11/sys/netinet X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 18:55:27 -0000 Author: karels Date: Sat Apr 22 18:55:25 2017 New Revision: 317286 URL: https://svnweb.freebsd.org/changeset/base/317286 Log: MFC r316065: Enable route and LLE (ndp) caching in TCP/IPv6 tcp_output.c was using a route on the stack for IPv6, which does not allow route caching or LLE/ndp caching. Switch to using the route (v6 flavor) in the in_pcb, which was already present, which caches both L3 and L2 lookups. Reviewed by: gnn hiren Modified: stable/11/sys/netinet/tcp_output.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet/tcp_output.c ============================================================================== --- stable/11/sys/netinet/tcp_output.c Sat Apr 22 18:43:15 2017 (r317285) +++ stable/11/sys/netinet/tcp_output.c Sat Apr 22 18:55:25 2017 (r317286) @@ -1365,9 +1365,6 @@ send: */ #ifdef INET6 if (isipv6) { - struct route_in6 ro; - - bzero(&ro, sizeof(ro)); /* * we separately set hoplimit for every segment, since the * user might want to change the value via setsockopt. @@ -1399,13 +1396,13 @@ send: #endif /* TODO: IPv6 IP6TOS_ECT bit on */ - error = ip6_output(m, tp->t_inpcb->in6p_outputopts, &ro, + error = ip6_output(m, tp->t_inpcb->in6p_outputopts, + &tp->t_inpcb->inp_route6, ((so->so_options & SO_DONTROUTE) ? IP_ROUTETOIF : 0), NULL, NULL, tp->t_inpcb); - if (error == EMSGSIZE && ro.ro_rt != NULL) - mtu = ro.ro_rt->rt_mtu; - RO_RTFREE(&ro); + if (error == EMSGSIZE && tp->t_inpcb->inp_route6.ro_rt != NULL) + mtu = tp->t_inpcb->inp_route6.ro_rt->rt_mtu; } #endif /* INET6 */ #if defined(INET) && defined(INET6) From owner-svn-src-all@freebsd.org Sat Apr 22 19:11:39 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 335ADD4BD5E; Sat, 22 Apr 2017 19:11:39 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DDFD7894; Sat, 22 Apr 2017 19:11:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MJBcU3042737; Sat, 22 Apr 2017 19:11:38 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MJBcZx042736; Sat, 22 Apr 2017 19:11:38 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704221911.v3MJBcZx042736@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 19:11:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317288 - head/lib/libgeom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 19:11:39 -0000 Author: ngie Date: Sat Apr 22 19:11:37 2017 New Revision: 317288 URL: https://svnweb.freebsd.org/changeset/base/317288 Log: libgeom(3): apply minor polish - Use .Dv when mentioning NULL per mdoc(7). - Reword `g_device_path`, `g_open_by_ident`, and `g_providername`'s descriptions so they're less wordy. - Fix a typo in `g_device_path` (can not -> cannot). MFC after: 5 weeks Tested with: igor, make manlint Sponsored by: Dell EMC Isilon Modified: head/lib/libgeom/libgeom.3 Modified: head/lib/libgeom/libgeom.3 ============================================================================== --- head/lib/libgeom/libgeom.3 Sat Apr 22 18:59:50 2017 (r317287) +++ head/lib/libgeom/libgeom.3 Sat Apr 22 19:11:37 2017 (r317288) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 4, 2010 +.Dd April 22, 2017 .Dt LIBGEOM 3 .Os .Sh NAME @@ -324,8 +324,8 @@ The .Fn g_device_path function returns the full path to a provider given a partial or full path to the device node. -If the device can not be found or is not a valid geom provider, NULL is -returned. +.Dv NULL +is returned if the device cannot be found or is not a valid geom provider. .Pp The .Fn g_get_ident @@ -344,20 +344,19 @@ string. .Pp The .Fn g_open_by_ident -function opens provider using its ident, unlike +function opens provider using its identification, unlike .Fn g_open -which uses provider's name. -If the +which uses the provider's name. +The function will store the provider's name in the .Fa name -argument is not -.Dv NULL , -the function will store provider's name there. +parameter if it is not +.Dv NULL . .Pp The .Fn g_providername function returns the provider name of an open file descriptor. -If the file descriptor does not point to a valid geom provider, NULL is -returned. +.Dv NULL +is returned the file descriptor does not point to a valid geom provider. .Pp All functions except .Fn g_providername From owner-svn-src-all@freebsd.org Sat Apr 22 19:32:24 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB3DED4B7DF; Sat, 22 Apr 2017 19:32:24 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 97DB567D; Sat, 22 Apr 2017 19:32:24 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MJWN3Q051637; Sat, 22 Apr 2017 19:32:23 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MJWNpj051636; Sat, 22 Apr 2017 19:32:23 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704221932.v3MJWNpj051636@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 19:32:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317289 - head/lib/libgeom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 19:32:24 -0000 Author: ngie Date: Sat Apr 22 19:32:23 2017 New Revision: 317289 URL: https://svnweb.freebsd.org/changeset/base/317289 Log: libgeom(3): note that stdio.h is required when referencing gctl_dump(3) gctl_dump(3) is only exposed when stdio.h is #include'd first, per its addition in r112510. The reasoning noted for the conditional "exposure" of the function was to "limit #include pollution". This addresses an issue I found with the documentation when looking at bug 218809, which in turn addresses a -Wimplicit-function-declaration compiler warning in `tools/regression/geom_gpt/test.c` (it uses gctl_dump(3)). MFC after: 5 weeks Sponsored by: Dell EMC Isilon Modified: head/lib/libgeom/libgeom.3 Modified: head/lib/libgeom/libgeom.3 ============================================================================== --- head/lib/libgeom/libgeom.3 Sat Apr 22 19:11:37 2017 (r317288) +++ head/lib/libgeom/libgeom.3 Sat Apr 22 19:32:23 2017 (r317289) @@ -63,6 +63,10 @@ .Sh LIBRARY .Lb libgeom .Sh SYNOPSIS +.Bd -literal +/* stdio.h is only required for `gctl_dump` */ +.Ed +.In stdio.h .In libgeom.h .Ss "Statistics Functions" .Ft void From owner-svn-src-all@freebsd.org Sat Apr 22 20:00:53 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D5237D4BE12; Sat, 22 Apr 2017 20:00:53 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A54F01FA; Sat, 22 Apr 2017 20:00:53 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MK0qA4060656; Sat, 22 Apr 2017 20:00:52 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MK0qM2060655; Sat, 22 Apr 2017 20:00:52 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222000.v3MK0qM2060655@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 20:00:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317290 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:00:53 -0000 Author: ngie Date: Sat Apr 22 20:00:52 2017 New Revision: 317290 URL: https://svnweb.freebsd.org/changeset/base/317290 Log: Fix -Wimplicit-function-declaration compilation warning by moving libgeom.h #include below the stdio.h #include. gctl_dump(3) needs stdio.h, per reasoning noted in r317289. MFC after: 5 weeks PR: 218809 Submitted by: Chang-Hsien Tsai Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/test.c Modified: head/tools/regression/geom_gpt/test.c ============================================================================== --- head/tools/regression/geom_gpt/test.c Sat Apr 22 19:32:23 2017 (r317289) +++ head/tools/regression/geom_gpt/test.c Sat Apr 22 20:00:52 2017 (r317290) @@ -29,12 +29,12 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include #include #include +#include struct retval { struct retval *retval; From owner-svn-src-all@freebsd.org Sat Apr 22 20:06:12 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7DEAED4BFBB; Sat, 22 Apr 2017 20:06:12 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31B1786D; Sat, 22 Apr 2017 20:06:12 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MK6B1h064376; Sat, 22 Apr 2017 20:06:11 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MK6Bfr064374; Sat, 22 Apr 2017 20:06:11 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222006.v3MK6Bfr064374@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 20:06:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317291 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:06:12 -0000 Author: ngie Date: Sat Apr 22 20:06:11 2017 New Revision: 317291 URL: https://svnweb.freebsd.org/changeset/base/317291 Log: Rename gctl.t to gctl_test.t and test.c to gctl_test_helper.c This is being done to reduce ambiguity and to make the tests more portable in the future to other locations in the source tree. MFC after: 5 weeks Sponsored by: Dell EMC Isilon Added: head/tools/regression/geom_gpt/gctl_test.t - copied, changed from r317290, head/tools/regression/geom_gpt/gctl.t head/tools/regression/geom_gpt/gctl_test_helper.c - copied unchanged from r317290, head/tools/regression/geom_gpt/test.c Deleted: head/tools/regression/geom_gpt/gctl.t head/tools/regression/geom_gpt/test.c Copied and modified: head/tools/regression/geom_gpt/gctl_test.t (from r317290, head/tools/regression/geom_gpt/gctl.t) ============================================================================== --- head/tools/regression/geom_gpt/gctl.t Sat Apr 22 20:00:52 2017 (r317290, copy source) +++ head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 20:06:11 2017 (r317291) @@ -132,7 +132,7 @@ if (exists $ENV{'TEST_VERBOSE'}) { } # Compile the driver... -my $st = system("cc -o $cmd -g $srcdir/test.c -lgeom"); +my $st = system("cc -o $cmd -g $srcdir/gctl_test_helper.c -lgeom"); if ($st != 0) { print "1..0 # SKIP error compiling test.c\n"; exit 0; Copied: head/tools/regression/geom_gpt/gctl_test_helper.c (from r317290, head/tools/regression/geom_gpt/test.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/geom_gpt/gctl_test_helper.c Sat Apr 22 20:06:11 2017 (r317291, copy of r317290, head/tools/regression/geom_gpt/test.c) @@ -0,0 +1,165 @@ +/*- + * Copyright (c) 2005, 2006 Marcel Moolenaar + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +struct retval { + struct retval *retval; + const char *param; + char *value; +}; + +struct retval *retval; +int verbose; + +static void +usage() +{ + fprintf(stdout, "usage: %s [-v] param[:len][=value] ...\n", + getprogname()); + exit(1); +} + +static int +parse(char *arg, char **param, char **value, int *len) +{ + char *e, *colon, *equal; + + if (*arg == '\0') + return (EINVAL); + + colon = strchr(arg, ':'); + equal = strchr(arg, '='); + if (colon == NULL && equal == NULL) + return (EINVAL); + if (colon == arg || equal == arg) + return (EINVAL); + if (colon != NULL && equal != NULL && equal < colon) + return (EINVAL); + + if (colon != NULL) + *colon++ = '\0'; + if (equal != NULL) + *equal++ = '\0'; + + *param = arg; + if (colon != NULL) { + /* Length specification. This parameter is RW. */ + if (*colon == '\0') + return (EINVAL); + *len = strtol(colon, &e, 0); + if (*e != '\0') + return (EINVAL); + if (*len <= 0 || *len > PATH_MAX) + return (EINVAL); + *value = malloc(*len); + if (*value == NULL) + return (ENOMEM); + memset(*value, 0, *len); + if (equal != NULL) { + if (strlen(equal) >= PATH_MAX) + return (ENOMEM); + strcpy(*value, equal); + } + } else { + /* This parameter is RO. */ + *len = -1; + if (*equal == '\0') + return (EINVAL); + *value = equal; + } + + return (0); +} + +int main(int argc, char *argv[]) +{ + struct retval *rv; + struct gctl_req *req; + char *param, *value; + const char *s; + int c, len; + + req = gctl_get_handle(); + gctl_ro_param(req, "class", -1, "GPT"); + + while ((c = getopt(argc, argv, "v")) != -1) { + switch (c) { + case 'v': + verbose = 1; + break; + case '?': + default: + usage(); + /* NOTREACHED */ + break; + } + } + + while (optind < argc) { + if (!parse(argv[optind++], ¶m, &value, &len)) { + if (len > 0) { + rv = malloc(sizeof(struct retval)); + rv->param = param; + rv->value = value; + rv->retval = retval; + retval = rv; + gctl_rw_param(req, param, len, value); + } else + gctl_ro_param(req, param, -1, value); + } + } + + if (verbose) + gctl_dump(req, stdout); + + s = gctl_issue(req); + if (s == NULL) { + printf("PASS"); + while (retval != NULL) { + rv = retval->retval; + printf(" %s=%s", retval->param, retval->value); + free(retval->value); + free(retval); + retval = rv; + } + printf("\n"); + } else + printf("FAIL %s\n", s); + + gctl_free(req); + return (0); +} From owner-svn-src-all@freebsd.org Sat Apr 22 20:06:43 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45A8CD4A01B; Sat, 22 Apr 2017 20:06:43 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1F0189AB; Sat, 22 Apr 2017 20:06:43 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3MK6foK047693; Sat, 22 Apr 2017 13:06:42 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3MK6fYX047692; Sat, 22 Apr 2017 13:06:41 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704222006.v3MK6fYX047692@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317290 - head/tools/regression/geom_gpt In-Reply-To: <201704222000.v3MK0qM2060655@repo.freebsd.org> To: Ngie Cooper Date: Sat, 22 Apr 2017 13:06:41 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:06:43 -0000 > Author: ngie > Date: Sat Apr 22 20:00:52 2017 > New Revision: 317290 > URL: https://svnweb.freebsd.org/changeset/base/317290 > > Log: > Fix -Wimplicit-function-declaration compilation warning by moving libgeom.h > #include below the stdio.h #include. > > gctl_dump(3) needs stdio.h, per reasoning noted in r317289. > > MFC after: 5 weeks > PR: 218809 > Submitted by: Chang-Hsien Tsai > Sponsored by: Dell EMC Isilon > > Modified: > head/tools/regression/geom_gpt/test.c > > Modified: head/tools/regression/geom_gpt/test.c > ============================================================================== > --- head/tools/regression/geom_gpt/test.c Sat Apr 22 19:32:23 2017 (r317289) > +++ head/tools/regression/geom_gpt/test.c Sat Apr 22 20:00:52 2017 (r317290) > @@ -29,12 +29,12 @@ __FBSDID("$FreeBSD$"); > > #include > #include > -#include > #include > #include > #include > #include > #include > +#include #include /* This is not in alphabetic order per r317289 */ > > struct retval { > struct retval *retval; Might it be a good idea to mark this in the test.c file as to why these are not sorted in order to prevent regressions of this in the future? -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sat Apr 22 20:15:48 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7ACDD4A24E; Sat, 22 Apr 2017 20:15:48 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8C8ADDD8; Sat, 22 Apr 2017 20:15:48 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MKFlg5068456; Sat, 22 Apr 2017 20:15:47 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MKFl4u068454; Sat, 22 Apr 2017 20:15:47 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222015.v3MKFl4u068454@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 20:15:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317292 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:15:48 -0000 Author: ngie Date: Sat Apr 22 20:15:47 2017 New Revision: 317292 URL: https://svnweb.freebsd.org/changeset/base/317292 Log: gctl_test.t: use make to compile gctl_test_helper instead of calling cc directly MFC after: 5 weeks Sponsored by: Dell EMC Isilon Added: head/tools/regression/geom_gpt/Makefile (contents, props changed) Modified: head/tools/regression/geom_gpt/gctl_test.t Added: head/tools/regression/geom_gpt/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/geom_gpt/Makefile Sat Apr 22 20:15:47 2017 (r317292) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +PROG= gctl_test_helper +MAN= + +LIBADD+= geom + +.include Modified: head/tools/regression/geom_gpt/gctl_test.t ============================================================================== --- head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 20:06:11 2017 (r317291) +++ head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 20:15:47 2017 (r317292) @@ -26,11 +26,6 @@ # # $FreeBSD$ -my $srcdir = `dirname $0`; -chomp $srcdir; - -my $cmd = "/tmp/gctl-$$"; -my $out = "$cmd.out"; my $disk = "/tmp/disk-$$"; my $mntpt = "/tmp/mount-$$"; @@ -132,11 +127,14 @@ if (exists $ENV{'TEST_VERBOSE'}) { } # Compile the driver... -my $st = system("cc -o $cmd -g $srcdir/gctl_test_helper.c -lgeom"); +my $st = system("make obj && make all"); if ($st != 0) { print "1..0 # SKIP error compiling test.c\n"; exit 0; } +chomp(my $cmd = `make '-V\${.OBJDIR}/\${PROG}'`); + +my $out = "/tmp/$cmd.out"; # Make sure we have permission to use gctl... if (`$cmd` =~ "^FAIL Permission denied") { From owner-svn-src-all@freebsd.org Sat Apr 22 20:27:47 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 692CCD4A502; Sat, 22 Apr 2017 20:27:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2D6C62FF; Sat, 22 Apr 2017 20:27:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MKRkUQ072522; Sat, 22 Apr 2017 20:27:46 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MKRkNI072521; Sat, 22 Apr 2017 20:27:46 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222027.v3MKRkNI072521@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 20:27:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317293 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:27:47 -0000 Author: ngie Date: Sat Apr 22 20:27:46 2017 New Revision: 317293 URL: https://svnweb.freebsd.org/changeset/base/317293 Log: gctl_test_helper: apply polish - Staticize variables to fix warnings. - Sprinkle asserts around for calls that can fail - Apply style(9) for main(..) definition. - ANSIify usage(..) definition. MFC after: 5 weeks Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/gctl_test_helper.c Modified: head/tools/regression/geom_gpt/gctl_test_helper.c ============================================================================== --- head/tools/regression/geom_gpt/gctl_test_helper.c Sat Apr 22 20:15:47 2017 (r317292) +++ head/tools/regression/geom_gpt/gctl_test_helper.c Sat Apr 22 20:27:46 2017 (r317293) @@ -28,6 +28,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -42,11 +43,11 @@ struct retval { char *value; }; -struct retval *retval; -int verbose; +static struct retval *retval; +static int verbose; static void -usage() +usage(void) { fprintf(stdout, "usage: %s [-v] param[:len][=value] ...\n", getprogname()); @@ -105,7 +106,8 @@ parse(char *arg, char **param, char **va return (0); } -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { struct retval *rv; struct gctl_req *req; @@ -114,6 +116,7 @@ int main(int argc, char *argv[]) int c, len; req = gctl_get_handle(); + assert(req != NULL); gctl_ro_param(req, "class", -1, "GPT"); while ((c = getopt(argc, argv, "v")) != -1) { @@ -133,6 +136,7 @@ int main(int argc, char *argv[]) if (!parse(argv[optind++], ¶m, &value, &len)) { if (len > 0) { rv = malloc(sizeof(struct retval)); + assert(rv != NULL); rv->param = param; rv->value = value; rv->retval = retval; From owner-svn-src-all@freebsd.org Sat Apr 22 20:29:57 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50CCAD4A5E9; Sat, 22 Apr 2017 20:29:57 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 207486B1; Sat, 22 Apr 2017 20:29:57 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MKTucK072646; Sat, 22 Apr 2017 20:29:56 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MKTuDG072645; Sat, 22 Apr 2017 20:29:56 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222029.v3MKTuDG072645@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 20:29:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317294 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:29:57 -0000 Author: ngie Date: Sat Apr 22 20:29:56 2017 New Revision: 317294 URL: https://svnweb.freebsd.org/changeset/base/317294 Log: Bump WARNS to 6 per previous commits which fixed warnings MFC after: 5 weeks Tested with: clang (4.0), gcc (4.2.1, 6.3.0) Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/Makefile Modified: head/tools/regression/geom_gpt/Makefile ============================================================================== --- head/tools/regression/geom_gpt/Makefile Sat Apr 22 20:27:46 2017 (r317293) +++ head/tools/regression/geom_gpt/Makefile Sat Apr 22 20:29:56 2017 (r317294) @@ -5,4 +5,6 @@ MAN= LIBADD+= geom +WARNS?= 6 + .include From owner-svn-src-all@freebsd.org Sat Apr 22 20:51:55 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8823CD4AD94; Sat, 22 Apr 2017 20:51:55 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 57A17223; Sat, 22 Apr 2017 20:51:55 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MKpsY0083673; Sat, 22 Apr 2017 20:51:54 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MKps6w083658; Sat, 22 Apr 2017 20:51:54 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222051.v3MKps6w083658@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 20:51:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317295 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:51:55 -0000 Author: ngie Date: Sat Apr 22 20:51:54 2017 New Revision: 317295 URL: https://svnweb.freebsd.org/changeset/base/317295 Log: The GPT class no longer exists; use the PART class instead MFC after: 5 weeks Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/gctl_test_helper.c Modified: head/tools/regression/geom_gpt/gctl_test_helper.c ============================================================================== --- head/tools/regression/geom_gpt/gctl_test_helper.c Sat Apr 22 20:29:56 2017 (r317294) +++ head/tools/regression/geom_gpt/gctl_test_helper.c Sat Apr 22 20:51:54 2017 (r317295) @@ -117,7 +117,7 @@ main(int argc, char *argv[]) req = gctl_get_handle(); assert(req != NULL); - gctl_ro_param(req, "class", -1, "GPT"); + gctl_ro_param(req, "class", -1, "PART"); while ((c = getopt(argc, argv, "v")) != -1) { switch (c) { From owner-svn-src-all@freebsd.org Sat Apr 22 20:55:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 372E1D4AFB5; Sat, 22 Apr 2017 20:55:41 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EE6786C1; Sat, 22 Apr 2017 20:55:40 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MKteje084693; Sat, 22 Apr 2017 20:55:40 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MKteHa084691; Sat, 22 Apr 2017 20:55:40 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704222055.v3MKteHa084691@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sat, 22 Apr 2017 20:55:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317296 - head/sys/fs/nfsclient X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:55:41 -0000 Author: rmacklem Date: Sat Apr 22 20:55:39 2017 New Revision: 317296 URL: https://svnweb.freebsd.org/changeset/base/317296 Log: Fix some krpc leaks for the NFSv4.1/pNFS client. The NFSv4.1/pNFS client wasn't doing a newnfs_disconnect() call for the connection to the Data Server (DS) under some circumstances. The main effect of this was a leak of malloc'd structures in the krpc. This patch adds the newnfs_disconnect() calls to fix this. Detected during recent testing against the pNFS server under development. MFC after: 2 weeks Modified: head/sys/fs/nfsclient/nfs_clrpcops.c head/sys/fs/nfsclient/nfs_clvfsops.c Modified: head/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clrpcops.c Sat Apr 22 20:51:54 2017 (r317295) +++ head/sys/fs/nfsclient/nfs_clrpcops.c Sat Apr 22 20:55:39 2017 (r317296) @@ -5399,10 +5399,13 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru NFSCL_DEBUG(3, "DS connect=%d\n", error); /* Now, do the exchangeid and create session. */ - if (error == 0) + if (error == 0) { error = nfsrpc_exchangeid(nmp, clp, nrp, NFSV4EXCH_USEPNFSDS, &dsp, nrp->nr_cred, p); - NFSCL_DEBUG(3, "DS exchangeid=%d\n", error); + NFSCL_DEBUG(3, "DS exchangeid=%d\n", error); + if (error != 0) + newnfs_disconnect(nrp); + } if (error == 0) { dsp->nfsclds_sockp = nrp; NFSLOCKMNT(nmp); @@ -5445,8 +5448,10 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru TAILQ_INSERT_TAIL(&nmp->nm_sess, dsp, nfsclds_list); NFSUNLOCKMNT(nmp); *dspp = dsp; - } else if (dsp != NULL) + } else if (dsp != NULL) { + newnfs_disconnect(nrp); nfscl_freenfsclds(dsp); + } return (error); } Modified: head/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clvfsops.c Sat Apr 22 20:51:54 2017 (r317295) +++ head/sys/fs/nfsclient/nfs_clvfsops.c Sat Apr 22 20:55:39 2017 (r317296) @@ -1643,8 +1643,12 @@ bad: NFSUNLOCKCLSTATE(); free(nmp->nm_clp, M_NFSCLCLIENT); } - TAILQ_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) + TAILQ_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) { + if (dsp != TAILQ_FIRST(&nmp->nm_sess) && + dsp->nfsclds_sockp != NULL) + newnfs_disconnect(dsp->nfsclds_sockp); nfscl_freenfsclds(dsp); + } FREE(nmp, M_NEWNFSMNT); FREE(nam, M_SONAME); return (error); @@ -1709,8 +1713,12 @@ nfs_unmount(struct mount *mp, int mntfla AUTH_DESTROY(nmp->nm_sockreq.nr_auth); mtx_destroy(&nmp->nm_sockreq.nr_mtx); mtx_destroy(&nmp->nm_mtx); - TAILQ_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) + TAILQ_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) { + if (dsp != TAILQ_FIRST(&nmp->nm_sess) && + dsp->nfsclds_sockp != NULL) + newnfs_disconnect(dsp->nfsclds_sockp); nfscl_freenfsclds(dsp); + } FREE(nmp, M_NEWNFSMNT); out: return (error); From owner-svn-src-all@freebsd.org Sat Apr 22 20:59:32 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5107D4B097; Sat, 22 Apr 2017 20:59:32 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-io0-x244.google.com (mail-io0-x244.google.com [IPv6:2607:f8b0:4001:c06::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6ED048FF; Sat, 22 Apr 2017 20:59:32 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-io0-x244.google.com with SMTP id k87so38461730ioi.0; Sat, 22 Apr 2017 13:59:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:mime-version:from:in-reply-to:date:cc:message-id:references :to; bh=lmao55jtrqoXc8UH4D+QZaWGXEwSz4cW2128BYAisjk=; b=G0BqOF9tzsj//cbwpo/S9LZasAlxusjKyeD9bY+dlHqgaI4X5/gYk0KCVxhR2YK8e1 GOF7ruGTIfkHJmgwYWcAPghL6geAG7n0phcPohLqZYu+UDW4TPKCiGmjWVlWxpHUctBv HhJrKA2+yxy3KbB6ifWEmW5M2SQ7IZBfb9YK883fOYw3kbkZ/kl8xtuL4ePzOE6q9NWk 7eEZMq8TCKuyRZg4VZbQ5wNkniK/Ikv+Thq4KWBPB8xjLcRj99Mk4Wby+T8U46Uo1gLj MvArFAMCeCZ0mXPCFhwTMn1xwIhEPny1Aye/nRcEhbPjXr9RPm4+IKN8qgvh3AcKZ2Lh htzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:mime-version:from:in-reply-to:date:cc :message-id:references:to; bh=lmao55jtrqoXc8UH4D+QZaWGXEwSz4cW2128BYAisjk=; b=iEElcI1SH3JrVy08WEzPKa84AzNk3gilqN3gY1SvPf6DSHlteJx3zssIHheGmdRl97 BkwbUfZj5EfNNfEZwnlsslRKYVXuNg9aZ9wacY+wF7Gc0DISMJcNCPh6l+jqiOs941zc QVkzYMxYfLXRR/n9CtkA7mWSKN9rKgPCijXTexpJTgpyJK7+rFyB3b575FlCNl2/LUtb f1CB/4jz6LDlbPor42cK6weOo9anpAj3rB6urpCuNU4t9D9nV9B9VF/8ApE73G4iCdQf AwwB1mnySrdDzK0VmikjnQeon2PEzYos7qsaOc/DtSQbrprNFJKV9GXkbMRRAg833X2W nZqA== X-Gm-Message-State: AN3rC/5TTOkfFS9HjphbaaZSAJtWv3ivUe1Js472k9fhlH8AGoJMXy3Y LpEMV4JdhjAUu9KlPlM= X-Received: by 10.98.100.75 with SMTP id y72mr17970903pfb.44.1492894771589; Sat, 22 Apr 2017 13:59:31 -0700 (PDT) Received: from pinklady.local (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id p2sm22907022pfj.93.2017.04.22.13.59.30 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 22 Apr 2017 13:59:30 -0700 (PDT) Subject: Re: svn commit: r317290 - head/tools/regression/geom_gpt Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Content-Type: multipart/signed; boundary="Apple-Mail=_FE4CD735-896B-4905-8281-979374D404D9"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail From: "Ngie Cooper (yaneurabeya)" In-Reply-To: <201704222006.v3MK6fYX047692@pdx.rh.CN85.dnsmgr.net> Date: Sat, 22 Apr 2017 13:59:29 -0700 Cc: Ngie Cooper , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-Id: <3238ED82-1FAA-4E7C-81B9-A9E9E417E860@gmail.com> References: <201704222006.v3MK6fYX047692@pdx.rh.CN85.dnsmgr.net> To: rgrimes@freebsd.org X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 20:59:32 -0000 --Apple-Mail=_FE4CD735-896B-4905-8281-979374D404D9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Apr 22, 2017, at 13:06, Rodney W. Grimes = wrote: >=20 >> Author: ngie >> Date: Sat Apr 22 20:00:52 2017 >> New Revision: 317290 >> URL: https://svnweb.freebsd.org/changeset/base/317290 >>=20 >> Log: >> Fix -Wimplicit-function-declaration compilation warning by moving = libgeom.h >> #include below the stdio.h #include. >>=20 >> gctl_dump(3) needs stdio.h, per reasoning noted in r317289. >>=20 >> MFC after: 5 weeks >> PR: 218809 >> Submitted by: Chang-Hsien Tsai >> Sponsored by: Dell EMC Isilon >>=20 >> Modified: >> head/tools/regression/geom_gpt/test.c >>=20 >> Modified: head/tools/regression/geom_gpt/test.c >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/tools/regression/geom_gpt/test.c Sat Apr 22 19:32:23 2017 = (r317289) >> +++ head/tools/regression/geom_gpt/test.c Sat Apr 22 20:00:52 2017 = (r317290) >> @@ -29,12 +29,12 @@ __FBSDID("$FreeBSD$"); >>=20 >> #include >> #include >> -#include >> #include >> #include >> #include >> #include >> #include >> +#include > #include /* This is not in alphabetic order per r317289 = */ >>=20 >> struct retval { >> struct retval *retval; >=20 > Might it be a good idea to mark this in the test.c file as to why > these are not sorted in order to prevent regressions of this in > the future? Please see r317289. There was an omission in the documentation that = allowed this to happen. This also won=E2=80=99t happen again given that the test is now being = compiled with WARNS?=3D 6 :). -Ngie --Apple-Mail=_FE4CD735-896B-4905-8281-979374D404D9 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJY+8QxAAoJEPWDqSZpMIYVg3oQAJXWvqhBMF2vVI9deaeRO1OR op1hutymdCABzoQBME+7sVHYZLxCPFBqShtEu5/1TPBaIBKlnVx2cFjKstAvyeaj 7j1+qiO+xh4x6FpknZUNf380A8P9R5zk5o9ZKx6SBAQvGZHHgs7JSXdWyhsMaAcq DHejMJp6nut/nuy5h2PSE4T97n3YgpdIOeiLVAGaYamdkvwht3I2uN6grB6GhDPy NjN9zUBVXA3Z0rNU+WoJQtVnTgtPUVXu++GJxKpg4zyHNwvJ1HqsISUcvD/QwXlB UFpLifVUUNM13rfC7q64tHNu7WVsDOlzI9c7MtlsEO2lqqCDHh49Ie6NaXVnRD5p E0tQjlTlU//Y0JO2AkIup+fgoFqEt0CrkVbvKe+RgmifeaVrHQd4v1KFNF9iz77U pvk8PKNFu/fNFmqUj1TulNl5yikuFsRj4tpD1iJSllrJgp35UfTDWZvU+4txT8kr 5+VldmKnsRWg/z4JUwYsE4whyyPfzSDVyh99xy/jJKmETxbocv7maDOvYYVZeWu1 b5tgfDXGU5AYZy1gLZxXTgNb+qf14USyOxB0cAkS5ygDOIFKDkYS3384N5V46+/Q MAleFCfz8sJzXMzoTIoxm6+EqSeM6jVxRS8e3nk1YnpvNPTsSaxSugottRgs7iNv /AvAB7IoJLNfgYo8yFvI =ltO5 -----END PGP SIGNATURE----- --Apple-Mail=_FE4CD735-896B-4905-8281-979374D404D9-- From owner-svn-src-all@freebsd.org Sat Apr 22 21:09:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08CD0D4B35D; Sat, 22 Apr 2017 21:09:41 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B5E4CDBD; Sat, 22 Apr 2017 21:09:40 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v3ML9aWB047900; Sat, 22 Apr 2017 14:09:36 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v3ML9ahr047899; Sat, 22 Apr 2017 14:09:36 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201704222109.v3ML9ahr047899@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r317290 - head/tools/regression/geom_gpt In-Reply-To: <3238ED82-1FAA-4E7C-81B9-A9E9E417E860@gmail.com> To: "Ngie Cooper (yaneurabeya)" Date: Sat, 22 Apr 2017 14:09:36 -0700 (PDT) CC: rgrimes@freebsd.org, Ngie Cooper , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:09:41 -0000 -- Start of PGP signed section. [ Charset UTF-8 unsupported, converting... ] > > > On Apr 22, 2017, at 13:06, Rodney W. Grimes wrote: > > > >> Author: ngie > >> Date: Sat Apr 22 20:00:52 2017 > >> New Revision: 317290 > >> URL: https://svnweb.freebsd.org/changeset/base/317290 > >> > >> Log: > >> Fix -Wimplicit-function-declaration compilation warning by moving libgeom.h > >> #include below the stdio.h #include. > >> > >> gctl_dump(3) needs stdio.h, per reasoning noted in r317289. > >> > >> MFC after: 5 weeks > >> PR: 218809 > >> Submitted by: Chang-Hsien Tsai > >> Sponsored by: Dell EMC Isilon > >> > >> Modified: > >> head/tools/regression/geom_gpt/test.c > >> > >> Modified: head/tools/regression/geom_gpt/test.c > >> ============================================================================== > >> --- head/tools/regression/geom_gpt/test.c Sat Apr 22 19:32:23 2017 (r317289) > >> +++ head/tools/regression/geom_gpt/test.c Sat Apr 22 20:00:52 2017 (r317290) > >> @@ -29,12 +29,12 @@ __FBSDID("$FreeBSD$"); > >> > >> #include > >> #include > >> -#include > >> #include > >> #include > >> #include > >> #include > >> #include > >> +#include > > #include /* This is not in alphabetic order per r317289 */ > >> > >> struct retval { > >> struct retval *retval; > > > > Might it be a good idea to mark this in the test.c file as to why > > these are not sorted in order to prevent regressions of this in > > the future? > > Please see r317289. There was an omission in the documentation that allowed this to happen. I had seen that already when I made my post, that docuement is not going to stop someone from going "Oh, these are out of order I am going to sort them since I am here" They well then probably have issues due to your next statement about WARNS and go hum, what is that all about. And either investigate and hopefully find the right thing, or do more wrong things. When #includes are out of order for good reason the source code file should be market as such and not dependend on the near 0 likelyhood someone is going to go read a man page to find out why. > > This also won?t happen again given that the test is now being compiled with WARNS?= 6 :). > > -Ngie -- End of PGP section, PGP failed! -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sat Apr 22 21:19:51 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF4AFD4B549; Sat, 22 Apr 2017 21:19:51 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-it0-x243.google.com (mail-it0-x243.google.com [IPv6:2607:f8b0:4001:c0b::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 93419210; Sat, 22 Apr 2017 21:19:51 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-it0-x243.google.com with SMTP id e132so6515117ite.2; Sat, 22 Apr 2017 14:19:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:mime-version:from:in-reply-to:date:cc:message-id:references :to; bh=ECcEhPwZup27ttw1zWq+ZYl4ckLCU8N3E93V5xsOQSs=; b=ToZQj4YTH+JHm45jEhXb6cZ6n8+mgC6iN47gPhWa1JVFr8PT2Xwb2NHUpXOtdKAhM5 SeiX2PHsJZmjiLgrbQod6RIbbb5TgedpAuawJGhqHu0QrW0w/S/oJQ/pZuNq60DKcnk8 TxAU6RVh1UYqi8BRnqtzdMZdrARO5357Px3ljdc1hABPhVcdu9n2gs07RzOmKNTC4D7I 7l4TBvO6LOoxLNiDa1D7Q4e6l+m0/e4DzkSSJcILKg0A+lspccH8EdgpR7sNfz9z3wcs Ju5UowEQo9Qbi8l9xKlhB6vVS1oC5/1eA0gsgVck3ZvAxaBPhGsnzUam/TRde6dQxl31 lI0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:mime-version:from:in-reply-to:date:cc :message-id:references:to; bh=ECcEhPwZup27ttw1zWq+ZYl4ckLCU8N3E93V5xsOQSs=; b=tMI9Uri3LJbgD7xVZtvjTP3+549u/9X6cZAcfp1A4tL3jkCZ98GF1Bpujz40DfkldA e/0rPiUQ6OnWV6KhPpqHn5JKBC63cw70kNAjjC2B5hgd6BhW4OO4rjqSYhtGt1JAPxXd QAGfTIb/np72qjyHv0NvDYlGrfuL/OrH+EdX2kbtVrEu1xQodB5wkfbevn+5UMShqPiJ HD7b6faAoq/L0Ljv5EBhv+sosJJ7R8OE00TfjvpQSDU01aUG1xnNmBbRCfuYBILBkCJ2 iBCw5AfCWkQdT0CM05+bh0JHSuYDD2B8o10Op9xGkNiwCv4jR0MlgeoiAcngQhVzFvN6 rB9w== X-Gm-Message-State: AN3rC/54dlSxvWn8ts3xAuLutEJcEHAy85gOXWP0RLvfCDoAuT1iGu1L yX0SpFibBijjqd9MbBY= X-Received: by 10.84.217.215 with SMTP id d23mr23301677plj.59.1492895990677; Sat, 22 Apr 2017 14:19:50 -0700 (PDT) Received: from pinklady.local (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id c83sm22897272pfd.113.2017.04.22.14.19.49 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 22 Apr 2017 14:19:49 -0700 (PDT) Subject: Re: svn commit: r317290 - head/tools/regression/geom_gpt Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Content-Type: multipart/signed; boundary="Apple-Mail=_E8EF0A77-B3FC-48AE-914B-B14721A7887F"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail From: "Ngie Cooper (yaneurabeya)" In-Reply-To: <201704222109.v3ML9ahr047899@pdx.rh.CN85.dnsmgr.net> Date: Sat, 22 Apr 2017 14:19:48 -0700 Cc: Ngie Cooper , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-Id: References: <201704222109.v3ML9ahr047899@pdx.rh.CN85.dnsmgr.net> To: rgrimes@freebsd.org X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:19:51 -0000 --Apple-Mail=_E8EF0A77-B3FC-48AE-914B-B14721A7887F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Apr 22, 2017, at 14:09, Rodney W. Grimes = wrote: =E2=80=A6 > I had seen that already when I made my post, that docuement is not = going > to stop someone from going "Oh, these are out of order I am going to = sort > them since I am here" They well then probably have issues due to your = next > statement about WARNS and go hum, what is that all about. And either > investigate and hopefully find the right thing, or do more wrong = things. >=20 > When #includes are out of order for good reason the source code file = should > be market as such and not dependend on the near 0 likelyhood someone > is going to go read a man page to find out why. The issue you=E2=80=99re noting is no different from someone = removing/shuffling around another header in the C file. If someone does = that, the least they need to do is build test their changes, and ideally = they should runtime test the changes as well. WARNS is insurance against someone sorting headers and things breaking = again, because gctl_dump will not be defined (per the compiler message = noted in the PR). At which point the party should do =E2=80=9Cman = gctl_dump=E2=80=9D and see the comment about stdio.h being required for = it: $ man gctl_dump ... SYNOPSIS /* stdio.h is only required for `gctl_dump` */ #include #include =E2=80=A6 Put differently, this is no different of an issue than anything else and = I really don=E2=80=99t see the value in adding a comment stating that = the order is such because of gctl_dump needing stdio.h to be = #include=E2=80=99d first. Thanks, -Ngie --Apple-Mail=_E8EF0A77-B3FC-48AE-914B-B14721A7887F Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJY+8j1AAoJEPWDqSZpMIYVSz8QAMyDE0nHWs6O3oe+3SyYovnJ Yhqz3/FxWeId4bImQIdwMJNM6CroYHY3DkGWfnO8l7RPeKQv5R1a3sA5UvB/rPUS oBZGWwEPAKlUL+TttI0rnNKCRSP6XyttknU2wiccpFAloBXD2aL5XTD8sbOdTgUo Pu7t8NEXCqtG5PmDKtc5a6vl+fNl0ev3srJDAecX9J9DdaeoNAcltWOBN80HcbVU wS3mGW3KjPAohl/cwKUyig3iVeuSZ0f0arSKVymPtFWN+4MiV5Rfifl98UrreDD5 +JpzuTMacCWZhCPlhOvohymOMFr28/VW2AOXXTJY+JEvN0yCmgNBsTYy00oZs5+I PO6a5n/and7eRx/UmcfnxcdG639930kilmV8x3oKDzYSSz8RDCXKQAC0z1EdfF09 lkk93jQOeSvxWqi1N9rupzYuATTHS0nUWIf1Lrht1aJa+Fz4EVMEMKx3ShVW3KGK L0v4dYGT5lveTFOQ6xjRKx2wjKLP3XhDx9d29lReOZE/iIxXi/EZdmLzQ2LsvMVr pyDAF3YGQSNtyYq+MEGpINaPNNYWb6B9TGVlqgBBneaIYOeB9Mj8fpilvJK5uT35 0A9I3gvzpGTZeypMbo10vg3y73TxrLh5hX9OWLLVJHxqFdoDhp+rLpCB3CEtJTRB kQ6E2RGZYnENvRkgmn4v =PXbU -----END PGP SIGNATURE----- --Apple-Mail=_E8EF0A77-B3FC-48AE-914B-B14721A7887F-- From owner-svn-src-all@freebsd.org Sat Apr 22 21:26:16 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75D90D4B732; Sat, 22 Apr 2017 21:26:16 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 37ECF8EA; Sat, 22 Apr 2017 21:26:16 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MLQF2o096851; Sat, 22 Apr 2017 21:26:15 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MLQFgJ096850; Sat, 22 Apr 2017 21:26:15 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222126.v3MLQFgJ096850@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 21:26:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317297 - head/contrib/netbsd-tests/usr.bin/grep X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:26:16 -0000 Author: ngie Date: Sat Apr 22 21:26:15 2017 New Revision: 317297 URL: https://svnweb.freebsd.org/changeset/base/317297 Log: Remove the expected failures for :context and :context2 with bsdgrep(1) They're no longer needed after recent fixes made to bsdgrep(1). Submitted by: Kyle Evans (via a previous diff in D10433) Sponsored by: Dell EMC Isilon Modified: head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Modified: head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh ============================================================================== --- head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Sat Apr 22 20:55:39 2017 (r317296) +++ head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Sat Apr 22 21:26:15 2017 (r317297) @@ -159,12 +159,6 @@ context_head() } context_body() { - # Begin FreeBSD - grep_type - if [ $? -eq $GREP_TYPE_BSD ]; then - atf_expect_fail "this test doesn't pass with BSD grep yet" - fi - # End FreeBSD cp $(atf_get_srcdir)/d_context_*.* . atf_check -o file:d_context_a.out grep -C2 bamboo d_context_a.in @@ -226,12 +220,6 @@ context2_head() } context2_body() { - # Begin FreeBSD - grep_type - if [ $? -eq $GREP_TYPE_BSD ]; then - atf_expect_fail "this test doesn't pass with BSD grep yet" - fi - # End FreeBSD printf "haddock\000cod\000plaice\000" > test1 printf "mackeral\000cod\000crab\000" > test2 From owner-svn-src-all@freebsd.org Sat Apr 22 21:31:38 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC905D4B95F; Sat, 22 Apr 2017 21:31:38 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E72EB54; Sat, 22 Apr 2017 21:31:38 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MLVbX1097762; Sat, 22 Apr 2017 21:31:37 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MLVb6k097759; Sat, 22 Apr 2017 21:31:37 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201704222131.v3MLVb6k097759@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sat, 22 Apr 2017 21:31:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317298 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:31:38 -0000 Author: jilles Date: Sat Apr 22 21:31:37 2017 New Revision: 317298 URL: https://svnweb.freebsd.org/changeset/base/317298 Log: sh: Simplify setinteractive(). setsignal() does nothing if the signal disposition is already set correctly. Modified: head/bin/sh/options.c head/bin/sh/trap.c head/bin/sh/trap.h Modified: head/bin/sh/options.c ============================================================================== --- head/bin/sh/options.c Sat Apr 22 21:26:15 2017 (r317297) +++ head/bin/sh/options.c Sat Apr 22 21:31:37 2017 (r317298) @@ -131,7 +131,7 @@ procargs(int argc, char **argv) void optschanged(void) { - setinteractive(iflag); + setinteractive(); #ifndef NO_HISTORY histedit(); #endif Modified: head/bin/sh/trap.c ============================================================================== --- head/bin/sh/trap.c Sat Apr 22 21:26:15 2017 (r317297) +++ head/bin/sh/trap.c Sat Apr 22 21:31:37 2017 (r317298) @@ -478,19 +478,14 @@ dotrap(void) /* - * Controls whether the shell is interactive or not. + * Controls whether the shell is interactive or not based on iflag. */ void -setinteractive(int on) +setinteractive(void) { - static int is_interactive = -1; - - if (on == is_interactive) - return; setsignal(SIGINT); setsignal(SIGQUIT); setsignal(SIGTERM); - is_interactive = on; } Modified: head/bin/sh/trap.h ============================================================================== --- head/bin/sh/trap.h Sat Apr 22 21:26:15 2017 (r317297) +++ head/bin/sh/trap.h Sat Apr 22 21:31:37 2017 (r317298) @@ -43,6 +43,6 @@ void ignoresig(int); int issigchldtrapped(void); void onsig(int); void dotrap(void); -void setinteractive(int); +void setinteractive(void); void exitshell(int) __dead2; void exitshell_savedstatus(void) __dead2; From owner-svn-src-all@freebsd.org Sat Apr 22 21:40:11 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7ACDAD4BA3F; Sat, 22 Apr 2017 21:40:11 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3E0CFEF5; Sat, 22 Apr 2017 21:40:11 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MLeAbT001110; Sat, 22 Apr 2017 21:40:10 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MLeAik001109; Sat, 22 Apr 2017 21:40:10 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222140.v3MLeAik001109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 21:40:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317299 - head/contrib/netbsd-tests/usr.bin/grep X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:40:11 -0000 Author: ngie Date: Sat Apr 22 21:40:10 2017 New Revision: 317299 URL: https://svnweb.freebsd.org/changeset/base/317299 Log: Add more sanity tests for grep, egrep, and fgrep The test suite currently lacks basic sanity checks to ensure that egrep, fgrep, and grep are actually matching the right expression types, i.e. passing the right flags to regcomp(3). Amend the test suite to make sure that not only are the individual versions doing the right thing, but also that we don't have some kind of frankenregex situation happening where egrep is accepting a BRE or grep an ERE. I've chosen to not expand the 'basic' test but to add the 'grep_sanity' checks to their own test case since this is testing for more than just 'grep matches things', but actual expression types. Differential Revision: D10444 Reviewed by: emaste, ngie Submitted by: Kyle Evans Tested with: bsdgrep, gnu grep (base, ports) Sponsored by: Dell EMC Isilon Modified: head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Modified: head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh ============================================================================== --- head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Sat Apr 22 21:31:37 2017 (r317298) +++ head/contrib/netbsd-tests/usr.bin/grep/t_grep.sh Sat Apr 22 21:40:10 2017 (r317299) @@ -379,6 +379,66 @@ zerolen_body() atf_check -o inline:"Eggs\nCheese\n" grep -v -e "^$" test1 } + +atf_test_case fgrep_sanity +fgrep_sanity_head() +{ + atf_set "descr" "Check for fgrep sanity, literal expressions only" +} +fgrep_sanity_body() +{ + printf "Foo" > test1 + + atf_check -o inline:"Foo\n" fgrep -e "Foo" test1 + + atf_check -s exit:1 -o empty fgrep -e "Fo." test1 +} + +atf_test_case egrep_sanity +egrep_sanity_head() +{ + atf_set "descr" "Check for egrep sanity, EREs only" +} +egrep_sanity_body() +{ + printf "Foobar(ed)" > test1 + printf "M{1}" > test2 + + atf_check -o inline:"Foo\n" egrep -o -e "F.." test1 + + atf_check -o inline:"Foobar\n" egrep -o -e "F[a-z]*" test1 + + atf_check -o inline:"Fo\n" egrep -o -e "F(o|p)" test1 + + atf_check -o inline:"(ed)\n" egrep -o -e "\(ed\)" test1 + + atf_check -o inline:"M\n" egrep -o -e "M{1}" test2 + + atf_check -o inline:"M{1}\n" egrep -o -e "M\{1\}" test2 +} + +atf_test_case grep_sanity +grep_sanity_head() +{ + atf_set "descr" "Check for basic grep sanity, BREs only" +} +grep_sanity_body() +{ + printf "Foobar(ed)" > test1 + printf "M{1}" > test2 + + atf_check -o inline:"Foo\n" grep -o -e "F.." test1 + + atf_check -o inline:"Foobar\n" grep -o -e "F[a-z]*" test1 + + atf_check -o inline:"Fo\n" grep -o -e "F\(o\)" test1 + + atf_check -o inline:"(ed)\n" grep -o -e "(ed)" test1 + + atf_check -o inline:"M{1}\n" grep -o -e "M{1}" test2 + + atf_check -o inline:"M\n" grep -o -e "M\{1\}" test2 +} # End FreeBSD atf_init_test_cases() @@ -407,5 +467,8 @@ atf_init_test_cases() atf_add_test_case escmap atf_add_test_case egrep_empty_invalid atf_add_test_case zerolen + atf_add_test_case fgrep_sanity + atf_add_test_case egrep_sanity + atf_add_test_case grep_sanity # End FreeBSD } From owner-svn-src-all@freebsd.org Sat Apr 22 21:40:33 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 073FED4BAA2; Sat, 22 Apr 2017 21:40:33 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CBC31A2; Sat, 22 Apr 2017 21:40:32 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MLeVep001168; Sat, 22 Apr 2017 21:40:31 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MLeV1D001167; Sat, 22 Apr 2017 21:40:31 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222140.v3MLeV1D001167@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 21:40:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317300 - head/usr.bin/grep/tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:40:33 -0000 Author: ngie Date: Sat Apr 22 21:40:31 2017 New Revision: 317300 URL: https://svnweb.freebsd.org/changeset/base/317300 Log: Only expect :grep_r_implied to pass with bsdgrep(1) The test fails with gnu grep from base and ports. Sponsored by: Dell EMC Isilon Modified: head/usr.bin/grep/tests/grep_freebsd_test.sh Modified: head/usr.bin/grep/tests/grep_freebsd_test.sh ============================================================================== --- head/usr.bin/grep/tests/grep_freebsd_test.sh Sat Apr 22 21:40:10 2017 (r317299) +++ head/usr.bin/grep/tests/grep_freebsd_test.sh Sat Apr 22 21:40:31 2017 (r317300) @@ -25,11 +25,45 @@ # # $FreeBSD$ +# What grep(1) are we working with? +# - 0 : bsdgrep +# - 1 : gnu grep 2.51 (base) +# - 2 : gnu grep (ports) +GREP_TYPE_BSD=0 +GREP_TYPE_GNU_FREEBSD=1 +GREP_TYPE_GNU=2 +GREP_TYPE_UNKNOWN=3 + +grep_type() +{ + local grep_version=$(grep --version) + + case "$grep_version" in + *"BSD grep"*) + return $GREP_TYPE_BSD + ;; + *"GNU grep"*) + case "$grep_version" in + *2.5.1-FreeBSD*) + return $GREP_TYPE_GNU_FREEBSD + ;; + *) + return $GREP_TYPE_GNU + ;; + esac + ;; + esac + atf_fail "unknown grep type: $grep_version" +} + atf_test_case grep_r_implied grep_r_implied_body() { - (cd "$(atf_get_srcdir)" && grep -r -e "test" < /dev/null) || - atf_skip "Implied working directory is not supported with your version of grep(1)" + grep_type + if [ $? -ne $GREP_TYPE_BSD ]; then + atf_skip "this test only works with bsdgrep(1)" + fi + (cd "$(atf_get_srcdir)" && grep -r --exclude="*.out" -e "test" .) > d_grep_r_implied.out atf_check -s exit:0 -x \ From owner-svn-src-all@freebsd.org Sat Apr 22 21:50:01 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4918BD4BDDB; Sat, 22 Apr 2017 21:50:01 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0CE46809; Sat, 22 Apr 2017 21:50:00 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MLo0rP005569; Sat, 22 Apr 2017 21:50:00 GMT (envelope-from rgrimes@FreeBSD.org) Received: (from rgrimes@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MLo02f005568; Sat, 22 Apr 2017 21:50:00 GMT (envelope-from rgrimes@FreeBSD.org) Message-Id: <201704222150.v3MLo02f005568@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to rgrimes@FreeBSD.org using -f From: "Rodney W. Grimes" Date: Sat, 22 Apr 2017 21:50:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r317301 - stable/11/share/man/man7 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:50:01 -0000 Author: rgrimes Date: Sat Apr 22 21:49:59 2017 New Revision: 317301 URL: https://svnweb.freebsd.org/changeset/base/317301 Log: MFC r314691: Document 3 more src/ directories Approved by: grehan (mentor) Modified: stable/11/share/man/man7/hier.7 Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man7/hier.7 ============================================================================== --- stable/11/share/man/man7/hier.7 Sat Apr 22 21:40:31 2017 (r317300) +++ stable/11/share/man/man7/hier.7 Sat Apr 22 21:49:59 2017 (r317301) @@ -702,6 +702,9 @@ source code for files in files required to produce a .Fx release +.It Pa rescue/ +source code for files in +.Pa /rescue .It Pa sbin/ source code for files in .Pa /sbin @@ -713,6 +716,11 @@ source for files in .Pa /usr/share .It Pa sys/ kernel source code +.It Pa targets/ +support for experimental DIRDEPS_BUILD +.It Pa tests/ +source code for files in +.Pa /usr/tests .It Pa tools/ tools used for maintenance and testing of .Fx From owner-svn-src-all@freebsd.org Sat Apr 22 21:57:27 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC50BD4BFD6; Sat, 22 Apr 2017 21:57:27 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 87E46C0D; Sat, 22 Apr 2017 21:57:27 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MLvQr0009392; Sat, 22 Apr 2017 21:57:26 GMT (envelope-from rgrimes@FreeBSD.org) Received: (from rgrimes@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MLvQxm009391; Sat, 22 Apr 2017 21:57:26 GMT (envelope-from rgrimes@FreeBSD.org) Message-Id: <201704222157.v3MLvQxm009391@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to rgrimes@FreeBSD.org using -f From: "Rodney W. Grimes" Date: Sat, 22 Apr 2017 21:57:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r317302 - stable/10/share/man/man7 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:57:27 -0000 Author: rgrimes Date: Sat Apr 22 21:57:26 2017 New Revision: 317302 URL: https://svnweb.freebsd.org/changeset/base/317302 Log: MFC: r314691 Document 3 more src/ directories Approved by: grehan (mentor) Modified: stable/10/share/man/man7/hier.7 Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man7/hier.7 ============================================================================== --- stable/10/share/man/man7/hier.7 Sat Apr 22 21:49:59 2017 (r317301) +++ stable/10/share/man/man7/hier.7 Sat Apr 22 21:57:26 2017 (r317302) @@ -714,6 +714,9 @@ source code for files in files required to produce a .Fx release +.It Pa rescue/ +source code for files in +.Pa /rescue .It Pa sbin/ source code for files in .Pa /sbin @@ -725,6 +728,11 @@ source for files in .Pa /usr/share .It Pa sys/ kernel source code +.It Pa targets/ +support for experimental DIRDEPS_BUILD +.It Pa tests/ +source code for files in +.Pa /usr/tests .It Pa tools/ tools used for maintenance and testing of .Fx From owner-svn-src-all@freebsd.org Sat Apr 22 22:05:25 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0C095D4B1CC; Sat, 22 Apr 2017 22:05:25 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CF4CB6C; Sat, 22 Apr 2017 22:05:24 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MM5NiM013277; Sat, 22 Apr 2017 22:05:23 GMT (envelope-from rgrimes@FreeBSD.org) Received: (from rgrimes@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MM5NgG013276; Sat, 22 Apr 2017 22:05:23 GMT (envelope-from rgrimes@FreeBSD.org) Message-Id: <201704222205.v3MM5NgG013276@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to rgrimes@FreeBSD.org using -f From: "Rodney W. Grimes" Date: Sat, 22 Apr 2017 22:05:23 +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: r317303 - in stable: 10/share/examples/bhyve 11/share/examples/bhyve X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 22:05:25 -0000 Author: rgrimes Date: Sat Apr 22 22:05:23 2017 New Revision: 317303 URL: https://svnweb.freebsd.org/changeset/base/317303 Log: MFC: r314694 Make vmrun.sh passthrough -u and -w to bhybe PR: 214273 Submitted by: Martin Birgmeier Approved by: grehan (mentor) Modified: stable/10/share/examples/bhyve/vmrun.sh Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/11/share/examples/bhyve/vmrun.sh Directory Properties: stable/11/ (props changed) Modified: stable/10/share/examples/bhyve/vmrun.sh ============================================================================== --- stable/10/share/examples/bhyve/vmrun.sh Sat Apr 22 21:57:26 2017 (r317302) +++ stable/10/share/examples/bhyve/vmrun.sh Sat Apr 22 22:05:23 2017 (r317303) @@ -65,6 +65,8 @@ usage() { echo " -m: memory size (default is ${DEFAULT_MEMSIZE})" echo " -p: pass-through a host PCI device at bus/slot/func (e.g. 10/0/0)" echo " -t: tap device for virtio-net (default is $DEFAULT_TAPDEV)" + echo " -u: RTC keeps UTC time" + echo " -w: ignore unimplemented MSRs" echo "" [ -n "$msg" ] && errmsg "$msg" exit 1 @@ -93,7 +95,7 @@ loader_opt="" bhyverun_opt="-H -A -P" pass_total=0 -while getopts ac:C:d:e:g:hH:iI:l:m:p:t: c ; do +while getopts ac:C:d:e:g:hH:iI:l:m:p:t:uw c ; do case $c in a) bhyverun_opt="${bhyverun_opt} -a" @@ -140,6 +142,12 @@ while getopts ac:C:d:e:g:hH:iI:l:m:p:t: eval "tap_dev${tap_total}=\"${OPTARG}\"" tap_total=$(($tap_total + 1)) ;; + u) + bhyverun_opt="${bhyverun_opt} -u" + ;; + w) + bhyverun_opt="${bhyverun_opt} -w" + ;; *) usage ;; From owner-svn-src-all@freebsd.org Sat Apr 22 22:05:25 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45B9BD4B1D1; Sat, 22 Apr 2017 22:05:25 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1462A6E; Sat, 22 Apr 2017 22:05:25 +0000 (UTC) (envelope-from rgrimes@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MM5OVa013283; Sat, 22 Apr 2017 22:05:24 GMT (envelope-from rgrimes@FreeBSD.org) Received: (from rgrimes@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MM5Ou6013282; Sat, 22 Apr 2017 22:05:24 GMT (envelope-from rgrimes@FreeBSD.org) Message-Id: <201704222205.v3MM5Ou6013282@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to rgrimes@FreeBSD.org using -f From: "Rodney W. Grimes" Date: Sat, 22 Apr 2017 22:05: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: r317303 - in stable: 10/share/examples/bhyve 11/share/examples/bhyve X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 22:05:25 -0000 Author: rgrimes Date: Sat Apr 22 22:05:23 2017 New Revision: 317303 URL: https://svnweb.freebsd.org/changeset/base/317303 Log: MFC: r314694 Make vmrun.sh passthrough -u and -w to bhybe PR: 214273 Submitted by: Martin Birgmeier Approved by: grehan (mentor) Modified: stable/11/share/examples/bhyve/vmrun.sh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/10/share/examples/bhyve/vmrun.sh Directory Properties: stable/10/ (props changed) Modified: stable/11/share/examples/bhyve/vmrun.sh ============================================================================== --- stable/11/share/examples/bhyve/vmrun.sh Sat Apr 22 21:57:26 2017 (r317302) +++ stable/11/share/examples/bhyve/vmrun.sh Sat Apr 22 22:05:23 2017 (r317303) @@ -65,6 +65,8 @@ usage() { echo " -m: memory size (default is ${DEFAULT_MEMSIZE})" echo " -p: pass-through a host PCI device at bus/slot/func (e.g. 10/0/0)" echo " -t: tap device for virtio-net (default is $DEFAULT_TAPDEV)" + echo " -u: RTC keeps UTC time" + echo " -w: ignore unimplemented MSRs" echo "" [ -n "$msg" ] && errmsg "$msg" exit 1 @@ -93,7 +95,7 @@ loader_opt="" bhyverun_opt="-H -A -P" pass_total=0 -while getopts ac:C:d:e:g:hH:iI:l:m:p:t: c ; do +while getopts ac:C:d:e:g:hH:iI:l:m:p:t:uw c ; do case $c in a) bhyverun_opt="${bhyverun_opt} -a" @@ -140,6 +142,12 @@ while getopts ac:C:d:e:g:hH:iI:l:m:p:t: eval "tap_dev${tap_total}=\"${OPTARG}\"" tap_total=$(($tap_total + 1)) ;; + u) + bhyverun_opt="${bhyverun_opt} -u" + ;; + w) + bhyverun_opt="${bhyverun_opt} -w" + ;; *) usage ;; From owner-svn-src-all@freebsd.org Sat Apr 22 22:05:43 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5DFECD4B20F for ; Sat, 22 Apr 2017 22:05:43 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1a.eu.mailhop.org (outbound1a.eu.mailhop.org [52.58.109.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E73F519A for ; Sat, 22 Apr 2017 22:05:42 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: cd73eff9-27a7-11e7-b96e-2378c10e3beb X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound1.eu.mailhop.org (Halon) with ESMTPSA id cd73eff9-27a7-11e7-b96e-2378c10e3beb; Sat, 22 Apr 2017 22:05:33 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id v3MM5S64006736; Sat, 22 Apr 2017 16:05:28 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1492898728.56859.13.camel@freebsd.org> Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd From: Ian Lepore To: Baptiste Daroussin , rgrimes@freebsd.org Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sat, 22 Apr 2017 16:05:28 -0600 In-Reply-To: <20170416073551.557czdcksdmmuz24@ivaldir.net> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> <20170416073551.557czdcksdmmuz24@ivaldir.net> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 22:05:43 -0000 On Sun, 2017-04-16 at 09:35 +0200, Baptiste Daroussin wrote: > On Sat, Apr 15, 2017 at 04:37:02PM -0700, Rodney W. Grimes wrote: > > > > And we need this in base for what great purpose??? > > > zstandard is the successor to lz4, there are attempts to integrate > zstandard in > ZFS, Allan Jude is working on that, I am working on integrating in > libstand to > allow to boot a kernel compressed with zstandard or a mfsroot with > zstandard, > which would benefit lots of pxe users. > > I have also added it to newsyslog(8) so users can benefit zstandard > compression > for the log files, which will consume less CPUs for greater > compression that > bzip2. On low ended boxes with low storage this is actually very > useful as well. > > I haven't checked yet the performances on my armv6 boxes, but on the > low ended > recent atom laptops I can tell this is already very useful. > > Bapt Does it also need to be added to the toolkit in /rescue?  The other major compression tools in base are there. -- Ian From owner-svn-src-all@freebsd.org Sat Apr 22 22:34:46 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3C72FD4B83F; Sat, 22 Apr 2017 22:34:46 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0E6AC10C0; Sat, 22 Apr 2017 22:34:45 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MMYjlm025413; Sat, 22 Apr 2017 22:34:45 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MMYjSj025412; Sat, 22 Apr 2017 22:34:45 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222234.v3MMYjSj025412@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 22:34:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317304 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 22:34:46 -0000 Author: ngie Date: Sat Apr 22 22:34:45 2017 New Revision: 317304 URL: https://svnweb.freebsd.org/changeset/base/317304 Log: gctl_test_helper: add diagnostic output for parse_retval(..) This will help end-users better diagnose issues with the function. MFC after: 5 weeks Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/gctl_test_helper.c Modified: head/tools/regression/geom_gpt/gctl_test_helper.c ============================================================================== --- head/tools/regression/geom_gpt/gctl_test_helper.c Sat Apr 22 22:05:23 2017 (r317303) +++ head/tools/regression/geom_gpt/gctl_test_helper.c Sat Apr 22 22:34:45 2017 (r317304) @@ -29,6 +29,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -113,7 +114,7 @@ main(int argc, char *argv[]) struct gctl_req *req; char *param, *value; const char *s; - int c, len; + int c, len, parse_retval; req = gctl_get_handle(); assert(req != NULL); @@ -132,8 +133,9 @@ main(int argc, char *argv[]) } } - while (optind < argc) { - if (!parse(argv[optind++], ¶m, &value, &len)) { + for (; optind < argc; optind++) { + parse_retval = parse(argv[optind], ¶m, &value, &len); + if (parse_retval == 0) { if (len > 0) { rv = malloc(sizeof(struct retval)); assert(rv != NULL); @@ -144,7 +146,9 @@ main(int argc, char *argv[]) gctl_rw_param(req, param, len, value); } else gctl_ro_param(req, param, -1, value); - } + } else + warnc(parse_retval, "failed to parse argument (%s)", + argv[optind]); } if (verbose) From owner-svn-src-all@freebsd.org Sat Apr 22 22:37:46 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3FDF5D4B96D; Sat, 22 Apr 2017 22:37:46 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 02B1C136C; Sat, 22 Apr 2017 22:37:45 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MMbjiX025732; Sat, 22 Apr 2017 22:37:45 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MMbjcL025731; Sat, 22 Apr 2017 22:37:45 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201704222237.v3MMbjcL025731@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sat, 22 Apr 2017 22:37:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317305 - head/sys/fs/nfsclient X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 22:37:46 -0000 Author: rmacklem Date: Sat Apr 22 22:37:44 2017 New Revision: 317305 URL: https://svnweb.freebsd.org/changeset/base/317305 Log: Fix the NFSv4.1/pNFS client return layout on close. The "return layout on close" case in the pNFS client was badly broken. Fortunately, extant pNFS servers that I have tested against do not do this. This patch fixes it. It also changes the way the layout stateid.seqid is set for LayoutReturn. I think this change is correct w.r.t. the RFC, but I am not 100% sure. This was found during recent testing of the pNFS server under development. MFC after: 2 weeks Modified: head/sys/fs/nfsclient/nfs_clstate.c Modified: head/sys/fs/nfsclient/nfs_clstate.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clstate.c Sat Apr 22 22:34:45 2017 (r317304) +++ head/sys/fs/nfsclient/nfs_clstate.c Sat Apr 22 22:37:44 2017 (r317305) @@ -88,6 +88,8 @@ extern struct nfsstatsv1 nfsstatsv1; extern struct nfsreqhead nfsd_reqq; extern u_int32_t newnfs_false, newnfs_true; extern int nfscl_debuglevel; +extern int nfscl_enablecallb; +extern int nfs_numnfscbd; NFSREQSPINLOCK; NFSCLSTATEMUTEX; int nfscl_inited = 0; @@ -118,7 +120,8 @@ static struct nfsclclient *nfscl_getclnt static struct nfsclclient *nfscl_getclntsess(uint8_t *); static struct nfscldeleg *nfscl_finddeleg(struct nfsclclient *, u_int8_t *, int); -static void nfscl_retoncloselayout(struct nfsclclient *, uint8_t *, int); +static void nfscl_retoncloselayout(vnode_t, struct nfsclclient *, uint8_t *, + int, struct nfsclrecalllayout **); static void nfscl_reldevinfo_locked(struct nfscldevinfo *); static struct nfscllayout *nfscl_findlayout(struct nfsclclient *, u_int8_t *, int); @@ -3121,6 +3124,7 @@ nfscl_doclose(vnode_t vp, struct nfsclcl struct nfsclopen *op; struct nfscldeleg *dp; struct nfsfh *nfhp; + struct nfsclrecalllayout *recallp; int error; error = nfscl_getcl(vnode_mount(vp), NULL, NULL, 1, &clp); @@ -3129,6 +3133,7 @@ nfscl_doclose(vnode_t vp, struct nfsclcl *clpp = clp; nfhp = VTONFS(vp)->n_fhp; + recallp = malloc(sizeof(*recallp), M_NFSLAYRECALL, M_WAITOK); NFSLOCKCLSTATE(); /* * First get rid of the local Open structures, which should be no @@ -3148,7 +3153,7 @@ nfscl_doclose(vnode_t vp, struct nfsclcl } /* Return any layouts marked return on close. */ - nfscl_retoncloselayout(clp, nfhp->nfh_fh, nfhp->nfh_len); + nfscl_retoncloselayout(vp, clp, nfhp->nfh_fh, nfhp->nfh_len, &recallp); /* Now process the opens against the server. */ lookformore: @@ -3171,6 +3176,11 @@ lookformore: } } NFSUNLOCKCLSTATE(); + /* + * recallp has been set NULL by nfscl_retoncloselayout() if it was + * used by the function, but calling free() with a NULL pointer is ok. + */ + free(recallp, M_NFSLAYRECALL); return (0); } @@ -4890,28 +4900,32 @@ nfscl_getlayout(struct nfsclclient *clp, } /* - * Search for a layout by MDS file handle. If one is found that is marked - * "return on close", delete it, since it should now be forgotten. + * Search for a layout by MDS file handle. If one is found, mark in to be + * recalled, if it already marked "return on close". */ static void -nfscl_retoncloselayout(struct nfsclclient *clp, uint8_t *fhp, int fhlen) +nfscl_retoncloselayout(vnode_t vp, struct nfsclclient *clp, uint8_t *fhp, + int fhlen, struct nfsclrecalllayout **recallpp) { struct nfscllayout *lyp; + uint32_t iomode; -tryagain: + if (vp->v_type != VREG || !NFSHASPNFS(VFSTONFS(vnode_mount(vp))) || + nfscl_enablecallb == 0 || nfs_numnfscbd == 0 || + (VTONFS(vp)->n_flag & NNOLAYOUT) != 0) + return; lyp = nfscl_findlayout(clp, fhp, fhlen); - if (lyp != NULL && (lyp->nfsly_flags & NFSLY_RETONCLOSE) != 0) { - /* - * Wait for outstanding I/O ops to be done. - */ - if (lyp->nfsly_lock.nfslock_usecnt != 0 || - lyp->nfsly_lock.nfslock_lock != 0) { - lyp->nfsly_lock.nfslock_lock |= NFSV4LOCK_WANTED; - (void)mtx_sleep(&lyp->nfsly_lock, - NFSCLSTATEMUTEXPTR, PZERO, "nfslyc", 0); - goto tryagain; - } - nfscl_freelayout(lyp); + if (lyp != NULL && (lyp->nfsly_flags & (NFSLY_RETONCLOSE | + NFSLY_RECALL)) == NFSLY_RETONCLOSE) { + iomode = 0; + if (!LIST_EMPTY(&lyp->nfsly_flayread)) + iomode |= NFSLAYOUTIOMODE_READ; + if (!LIST_EMPTY(&lyp->nfsly_flayrw)) + iomode |= NFSLAYOUTIOMODE_RW; + (void)nfscl_layoutrecall(NFSLAYOUTRETURN_FILE, lyp, iomode, + 0, UINT64_MAX, lyp->nfsly_stateid.seqid, *recallpp); + NFSCL_DEBUG(4, "retoncls recall iomode=%d\n", iomode); + *recallpp = NULL; } } @@ -5195,8 +5209,8 @@ nfscl_layoutreturn(struct nfsmount *nmp, nfsv4stateid_t stateid; NFSBCOPY(lyp->nfsly_stateid.other, stateid.other, NFSX_STATEIDOTHER); + stateid.seqid = lyp->nfsly_stateid.seqid; LIST_FOREACH(rp, &lyp->nfsly_recall, nfsrecly_list) { - stateid.seqid = rp->nfsrecly_stateseqid; (void)nfsrpc_layoutreturn(nmp, lyp->nfsly_fh, lyp->nfsly_fhlen, 0, NFSLAYOUT_NFSV4_1_FILES, rp->nfsrecly_iomode, rp->nfsrecly_recalltype, From owner-svn-src-all@freebsd.org Sat Apr 22 22:40:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B373D4BA54; Sat, 22 Apr 2017 22:40:41 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DF3B41576; Sat, 22 Apr 2017 22:40:40 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MMeeTr025902; Sat, 22 Apr 2017 22:40:40 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MMeevR025901; Sat, 22 Apr 2017 22:40:40 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222240.v3MMeevR025901@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 22:40:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317306 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 22:40:41 -0000 Author: ngie Date: Sat Apr 22 22:40:39 2017 New Revision: 317306 URL: https://svnweb.freebsd.org/changeset/base/317306 Log: gctl_test.t: minor tweaks - Declare $count with the `my` scope operator to permit `use strict`. - Add `use strict`. - Use `use warnings` instead of using `-w` in the shebang. - Don't unlink $cmd when done (prevents unnecessary rebuilding). - Improve the error message when running with insufficient permissions, e.g., non-root. MFC after: 5 weeks Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/gctl_test.t Modified: head/tools/regression/geom_gpt/gctl_test.t ============================================================================== --- head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 22:37:44 2017 (r317305) +++ head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 22:40:39 2017 (r317306) @@ -1,4 +1,4 @@ -#!/usr/bin/env perl -w +#!/usr/bin/env perl # # Copyright (c) 2005, 2006 Marcel Moolenaar # All rights reserved. @@ -26,6 +26,9 @@ # # $FreeBSD$ +use strict; +use warnings; + my $disk = "/tmp/disk-$$"; my $mntpt = "/tmp/mount-$$"; @@ -138,12 +141,12 @@ my $out = "/tmp/$cmd.out"; # Make sure we have permission to use gctl... if (`$cmd` =~ "^FAIL Permission denied") { - print "1..0 # SKIP not enough permission\n"; + print "1..0 # SKIP insufficient permissions\n"; unlink $cmd; exit 0; } -$count = keys (%steps); +my $count = keys (%steps); print "1..$count\n"; my $nr = 1; @@ -200,6 +203,4 @@ foreach my $key (sort keys %steps) { } $nr += 1; } - -unlink $cmd; exit 0; From owner-svn-src-all@freebsd.org Sat Apr 22 23:06:55 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2CC5ED4B22C; Sat, 22 Apr 2017 23:06:55 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F276A23B; Sat, 22 Apr 2017 23:06:54 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MN6sXQ038112; Sat, 22 Apr 2017 23:06:54 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MN6sZd038111; Sat, 22 Apr 2017 23:06:54 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222306.v3MN6sZd038111@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 23:06:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317307 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 23:06:55 -0000 Author: ngie Date: Sat Apr 22 23:06:53 2017 New Revision: 317307 URL: https://svnweb.freebsd.org/changeset/base/317307 Log: Use verb=delete not verb=remove The `remove` verb hasn't been present in geom_part*(4) for well over a decade, if ever. I couldn't find any references to it in ^/stable/5 at least, which is around the timeframe that this test was written. MFC after: 5 weeks Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/gctl_test.t Modified: head/tools/regression/geom_gpt/gctl_test.t ============================================================================== --- head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 22:40:39 2017 (r317306) +++ head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 23:06:53 2017 (r317307) @@ -68,9 +68,9 @@ my %steps = ( "054" => "conf", "060" => "gctl verb=add geom=%dev% type=516e7cb6-6ecf-11d6-8ff8-00022d09712b start=34 end=546 entry:8=1", "061" => "mount %dev%p1", - "062" => "gctl verb=remove geom=%dev% entry=1", + "062" => "gctl verb=delete geom=%dev% entry=1", "063" => "umount %dev%p1", - "064" => "gctl verb=remove geom=%dev% entry=1", + "064" => "gctl verb=delete geom=%dev% entry=1", "065" => "conf", "100" => "mdcfg destroy", "110" => "mdcfg create corrupted", From owner-svn-src-all@freebsd.org Sat Apr 22 23:27:08 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC8FBD4B6D6; Sat, 22 Apr 2017 23:27:08 +0000 (UTC) (envelope-from bapt@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8B78ED20; Sat, 22 Apr 2017 23:27:08 +0000 (UTC) (envelope-from bapt@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1235) id AD2A8145; Sat, 22 Apr 2017 23:27:07 +0000 (UTC) Date: Sun, 23 Apr 2017 01:27:07 +0200 From: Baptiste Daroussin To: Ian Lepore Cc: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd Message-ID: <20170422232707.uds2qkumtxm4ex54@ivaldir.net> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> <20170416073551.557czdcksdmmuz24@ivaldir.net> <1492898728.56859.13.camel@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="kvzbyrcxqyfoous5" Content-Disposition: inline In-Reply-To: <1492898728.56859.13.camel@freebsd.org> User-Agent: NeoMutt/20170306 (1.8.0) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 23:27:08 -0000 --kvzbyrcxqyfoous5 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Apr 22, 2017 at 04:05:28PM -0600, Ian Lepore wrote: > On Sun, 2017-04-16 at 09:35 +0200, Baptiste Daroussin wrote: > > On Sat, Apr 15, 2017 at 04:37:02PM -0700, Rodney W. Grimes wrote: > > >=20 > > > And we need this in base for what great purpose??? > > >=20 > > zstandard is the successor to lz4, there are attempts to integrate > > zstandard in > > ZFS, Allan Jude is working on that, I am working on integrating in > > libstand to > > allow to boot a kernel compressed with zstandard or a mfsroot with > > zstandard, > > which would benefit lots of pxe users. > >=20 > > I have also added it to newsyslog(8) so users can benefit zstandard > > compression > > for the log files, which will consume less CPUs for greater > > compression that > > bzip2. On low ended boxes with low storage this is actually very > > useful as well. > >=20 > > I haven't checked yet the performances on my armv6 boxes, but on the > > low ended > > recent atom laptops I can tell this is already very useful. > >=20 > > Bapt >=20 > Does it also need to be added to the toolkit in /rescue? =A0The other > major compression tools in base are there. I'm not sure it is worth it, is it? Bapt --kvzbyrcxqyfoous5 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAlj75sgACgkQY4mL3PG3 Plo96w/9FU09MoVXEIOAkQGxuwi5higqNBvDtzoKu0Xg8khTQ0QpuQDPJU8+HrCC kZNPsK4/kpyI5ek/gt6not5oy0YL/Uk/je5eYsYBvcKFAliCrB8bzLLc53wZsIWz ruXTRXQC6bDubWzUhki6fa5r0Zav0/kAssyjDBTCGG7qo35CAiFiqMYGvBdkNvtq daah4CRKwQbMXJ7+RJVERmU8Yzp65FXpGsgQgCOQrayCDt2xYTqNjLey3axOezou AgDV1I6d9JRFu6pJKIhj3YwQydFZh/UavEY9Inj9I48gtZ6Yji0OKm9PMGuFpWPe Nj41ke+/Z02u1rgFa5YtA3MFWAw0bjsBiw+xZuX//lZF6X+HN1t/0AfbB0hMjBH3 FznAuBdx9y/RdnD2DaVFY3HqpI2lDZ5bxBLG3c2OTdux2OjnCeBFspoeONP+lPcG q5i9V91jKLlrJJs3XBqhHcJt2Syurhybq2uBy/ATM0jb4BwZM5Nw4EfLAoy9xEA1 URpio346m+dpcI19z/AE0euuZnZpmibQqvGlq+1ph818s9MG5MMeQ/3p4Twjnd+i Kd16mEfQ+7cbE/hVr9XRKEphDiUSvgudTifhVQJvYIAWQ+DrPwmEPBRmIZgojJm2 N5I299wUA8qZQoxfyNp4Qi5xdqfm/1Rxe9xeCg2dDgZtt8N5Sdg= =qkp8 -----END PGP SIGNATURE----- --kvzbyrcxqyfoous5-- From owner-svn-src-all@freebsd.org Sat Apr 22 23:27:41 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9D46D4B74B; Sat, 22 Apr 2017 23:27:41 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91F6EE6E; Sat, 22 Apr 2017 23:27:41 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MNReBK046134; Sat, 22 Apr 2017 23:27:40 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MNRemm046133; Sat, 22 Apr 2017 23:27:40 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222327.v3MNRemm046133@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 23:27:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317308 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 23:27:42 -0000 Author: ngie Date: Sat Apr 22 23:27:40 2017 New Revision: 317308 URL: https://svnweb.freebsd.org/changeset/base/317308 Log: gctl_test.t: more tweaks to try and update the code and get it functional (again?) - Make the logfile for $out be built off the basename for $cmd, instead of $cmd. (r317292 broke this assumption). - Rename $mntpt to $mntpt_prefix for clarity, as this variable is a prefix for mountpoints. - Reindent the umount directive block while here to match the rest of the code. MFC after: 5 weeks Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/gctl_test.t Modified: head/tools/regression/geom_gpt/gctl_test.t ============================================================================== --- head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 23:06:53 2017 (r317307) +++ head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 23:27:40 2017 (r317308) @@ -29,8 +29,10 @@ use strict; use warnings; +use File::Basename; + my $disk = "/tmp/disk-$$"; -my $mntpt = "/tmp/mount-$$"; +my $mntpt_prefix = "/tmp/mount-$$"; my %steps = ( "000" => "gctl", @@ -137,7 +139,7 @@ if ($st != 0) { } chomp(my $cmd = `make '-V\${.OBJDIR}/\${PROG}'`); -my $out = "/tmp/$cmd.out"; +my $out = basename($cmd) . ".out"; # Make sure we have permission to use gctl... if (`$cmd` =~ "^FAIL Permission denied") { @@ -192,14 +194,14 @@ foreach my $key (sort keys %steps) { } unlink $out; } elsif ($action =~ "^mount") { - system("mkdir $mntpt-$args"); + system("mkdir $mntpt_prefix-$args"); system("newfs $args"); - system("mount -t ufs /dev/$args $mntpt-$args"); + system("mount -t ufs /dev/$args $mntpt_prefix-$args"); print "ok $nr \# mount($key)\n"; } elsif ($action =~ "^umount") { - system("umount $mntpt-$args"); - system("rmdir $mntpt-$args"); - print "ok $nr \# umount($key)\n"; + system("umount $mntpt_prefix-$args"); + system("rmdir $mntpt_prefix-$args"); + print "ok $nr \# umount($key)\n"; } $nr += 1; } From owner-svn-src-all@freebsd.org Sat Apr 22 23:30:04 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D242D4B7F3; Sat, 22 Apr 2017 23:30:04 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D97F1FD9; Sat, 22 Apr 2017 23:30:03 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MNU34D046281; Sat, 22 Apr 2017 23:30:03 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v3MNU3el046280; Sat, 22 Apr 2017 23:30:03 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201704222330.v3MNU3el046280@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 22 Apr 2017 23:30:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317309 - head/tools/regression/geom_gpt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 23:30:04 -0000 Author: ngie Date: Sat Apr 22 23:30:02 2017 New Revision: 317309 URL: https://svnweb.freebsd.org/changeset/base/317309 Log: gctl_test.t: improve error reporting with mdcfg and mount directives If the commands had failed previously, it would press on and result in a series of cascading failures. Fail early and continue on to the next case instead of executing additional commands after a previously failed series of steps. MFC after: 5 weeks Sponsored by: Dell EMC Isilon Modified: head/tools/regression/geom_gpt/gctl_test.t Modified: head/tools/regression/geom_gpt/gctl_test.t ============================================================================== --- head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 23:27:40 2017 (r317308) +++ head/tools/regression/geom_gpt/gctl_test.t Sat Apr 22 23:30:02 2017 (r317309) @@ -161,13 +161,15 @@ foreach my $key (sort keys %steps) { $res =~ s/%dev%/$dev/g; if ($action =~ "^gctl") { + my $errmsg = ""; system("$cmd $verbose $args | tee $out 2>&1"); - $st = `tail -1 $out`; - if ($st =~ "^$res") { - print "ok $nr \# gctl($key)\n"; - } else { - print "not ok $nr \# gctl($key) - $st\n"; + chomp($st = `tail -1 $out`); + if ($st ne $res) { + $errmsg = "\"$st\" (actual) != \"$res\" (expected)\n"; } + printf("%sok $nr \# gctl($key)%s\n", + ($errmsg eq "" ? "" : "not "), + ($errmsg eq "" ? "" : " - $errmsg")); unlink $out; } elsif ($action =~ "^mdcfg") { if ($args =~ "^create") { @@ -194,10 +196,18 @@ foreach my $key (sort keys %steps) { } unlink $out; } elsif ($action =~ "^mount") { - system("mkdir $mntpt_prefix-$args"); - system("newfs $args"); - system("mount -t ufs /dev/$args $mntpt_prefix-$args"); - print "ok $nr \# mount($key)\n"; + my $errmsg = ""; + mkdir("$mntpt_prefix-$args"); + if (system("newfs /dev/$args") == 0) { + if (system("mount /dev/$args $mntpt_prefix-$args") != 0) { + $errmsg = "mount failed"; + } + } else { + $errmsg = "newfs failed"; + } + printf("%sok $nr # mount($key)%s\n", + ($errmsg eq "" ? "" : "not "), + ($errmsg eq "" ? "" : " - $errmsg")); } elsif ($action =~ "^umount") { system("umount $mntpt_prefix-$args"); system("rmdir $mntpt_prefix-$args"); From owner-svn-src-all@freebsd.org Sat Apr 22 23:32:03 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E11CFD4BA40 for ; Sat, 22 Apr 2017 23:32:03 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1a.eu.mailhop.org (outbound1a.eu.mailhop.org [52.58.109.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7A45513B8 for ; Sat, 22 Apr 2017 23:32:03 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: e06389ce-27b3-11e7-b96e-2378c10e3beb X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound1.eu.mailhop.org (Halon) with ESMTPSA id e06389ce-27b3-11e7-b96e-2378c10e3beb; Sat, 22 Apr 2017 23:31:59 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id v3MNVsEr006858; Sat, 22 Apr 2017 17:31:54 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1492903914.56859.31.camel@freebsd.org> Subject: Re: svn commit: r316978 - in head: contrib/zstd etc/mtree lib lib/libzstd share/mk usr.bin usr.bin/zstd From: Ian Lepore To: Baptiste Daroussin Cc: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sat, 22 Apr 2017 17:31:54 -0600 In-Reply-To: <20170422232707.uds2qkumtxm4ex54@ivaldir.net> References: <201704152005.v3FK5M2j002459@repo.freebsd.org> <201704152337.v3FNb2m1014053@pdx.rh.CN85.dnsmgr.net> <20170416073551.557czdcksdmmuz24@ivaldir.net> <1492898728.56859.13.camel@freebsd.org> <20170422232707.uds2qkumtxm4ex54@ivaldir.net> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 23:32:04 -0000 On Sun, 2017-04-23 at 01:27 +0200, Baptiste Daroussin wrote: > On Sat, Apr 22, 2017 at 04:05:28PM -0600, Ian Lepore wrote: > > > > On Sun, 2017-04-16 at 09:35 +0200, Baptiste Daroussin wrote: > > > > > > On Sat, Apr 15, 2017 at 04:37:02PM -0700, Rodney W. Grimes wrote: > > > > > > > > > > > > And we need this in base for what great purpose??? > > > > > > > zstandard is the successor to lz4, there are attempts to > > > integrate > > > zstandard in > > > ZFS, Allan Jude is working on that, I am working on integrating > > > in > > > libstand to > > > allow to boot a kernel compressed with zstandard or a mfsroot > > > with > > > zstandard, > > > which would benefit lots of pxe users. > > > > > > I have also added it to newsyslog(8) so users can benefit > > > zstandard > > > compression > > > for the log files, which will consume less CPUs for greater > > > compression that > > > bzip2. On low ended boxes with low storage this is actually very > > > useful as well. > > > > > > I haven't checked yet the performances on my armv6 boxes, but on > > > the > > > low ended > > > recent atom laptops I can tell this is already very useful. > > > > > > Bapt > > Does it also need to be added to the toolkit in /rescue?  The other > > major compression tools in base are there. > I'm not sure it is worth it, is it? > > Bapt I'm not sure what "worth it" means.  The other compression tools are in there, I assume because there are recovery scenarios that require them.  If this new compression gets used in the base system, then perhaps it also would need to be in there. For example, if logs are compressed this new way, and you get into a recovery situation, then you might need to view the logs to figure out how to recover the system. -- Ian