From owner-svn-src-stable@freebsd.org Sun Apr 7 12:57:39 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A612E155185E; Sun, 7 Apr 2019 12:57:39 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47B248F57B; Sun, 7 Apr 2019 12:57:39 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1F342C756; Sun, 7 Apr 2019 12:57:39 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37Cvcn4022012; Sun, 7 Apr 2019 12:57:38 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37CvcKL022010; Sun, 7 Apr 2019 12:57:38 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201904071257.x37CvcKL022010@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 7 Apr 2019 12:57: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: r346003 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Group: stable-11 X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Commit-Revision: 346003 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 47B248F57B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.956,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 12:57:39 -0000 Author: avos Date: Sun Apr 7 12:57:38 2019 New Revision: 346003 URL: https://svnweb.freebsd.org/changeset/base/346003 Log: MFC r345729: urtw(4): export TSF timestamp for received frames via radiotap Was tested with Netgear WG111 v3 (RTL8187B), STA mode. Modified: stable/11/sys/dev/usb/wlan/if_urtw.c stable/11/sys/dev/usb/wlan/if_urtwvar.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/usb/wlan/if_urtw.c stable/12/sys/dev/usb/wlan/if_urtwvar.h Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/usb/wlan/if_urtw.c ============================================================================== --- stable/11/sys/dev/usb/wlan/if_urtw.c Sun Apr 7 12:20:17 2019 (r346002) +++ stable/11/sys/dev/usb/wlan/if_urtw.c Sun Apr 7 12:57:38 2019 (r346003) @@ -3937,6 +3937,7 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da struct urtw_softc *sc = data->sc; struct ieee80211com *ic = &sc->sc_ic; uint8_t noise = 0, rate; + uint64_t mactime; usbd_xfer_status(xfer, &actlen, NULL, NULL, NULL); @@ -3956,6 +3957,9 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da /* XXX correct? */ rssi = rx->rssi & URTW_RX_RSSI_MASK; noise = rx->noise; + + if (ieee80211_radiotap_active(ic)) + mactime = rx->mactime; } else { struct urtw_8187l_rxhdr *rx; @@ -3972,6 +3976,9 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da /* XXX correct? */ rssi = rx->rssi & URTW_RX_8187L_RSSI_MASK; noise = rx->noise; + + if (ieee80211_radiotap_active(ic)) + mactime = rx->mactime; } if (flen < IEEE80211_ACK_LEN) @@ -3991,6 +3998,7 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da if (ieee80211_radiotap_active(ic)) { struct urtw_rx_radiotap_header *tap = &sc->sc_rxtap; + tap->wr_tsf = mactime; tap->wr_flags = 0; tap->wr_dbm_antsignal = (int8_t)rssi; } Modified: stable/11/sys/dev/usb/wlan/if_urtwvar.h ============================================================================== --- stable/11/sys/dev/usb/wlan/if_urtwvar.h Sun Apr 7 12:20:17 2019 (r346002) +++ stable/11/sys/dev/usb/wlan/if_urtwvar.h Sun Apr 7 12:57:38 2019 (r346003) @@ -55,6 +55,7 @@ typedef STAILQ_HEAD(, urtw_data) urtw_datahead; struct urtw_rx_radiotap_header { struct ieee80211_radiotap_header wr_ihdr; + uint64_t wr_tsf; uint8_t wr_flags; uint8_t wr_pad; uint16_t wr_chan_freq; @@ -63,7 +64,8 @@ struct urtw_rx_radiotap_header { } __packed __aligned(8); #define URTW_RX_RADIOTAP_PRESENT \ - ((1 << IEEE80211_RADIOTAP_FLAGS) | \ + ((1 << IEEE80211_RADIOTAP_TSFT) | \ + (1 << IEEE80211_RADIOTAP_FLAGS) | \ (1 << IEEE80211_RADIOTAP_CHANNEL) | \ (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL)) From owner-svn-src-stable@freebsd.org Sun Apr 7 12:57:40 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 68B1C1551862; Sun, 7 Apr 2019 12:57:40 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 067838F57C; Sun, 7 Apr 2019 12:57:40 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BBFEDC757; Sun, 7 Apr 2019 12:57:39 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37Cvdub022019; Sun, 7 Apr 2019 12:57:39 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37CvdSD022017; Sun, 7 Apr 2019 12:57:39 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201904071257.x37CvdSD022017@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 7 Apr 2019 12:57:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346003 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Group: stable-12 X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Commit-Revision: 346003 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 067838F57C X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.956,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 12:57:40 -0000 Author: avos Date: Sun Apr 7 12:57:38 2019 New Revision: 346003 URL: https://svnweb.freebsd.org/changeset/base/346003 Log: MFC r345729: urtw(4): export TSF timestamp for received frames via radiotap Was tested with Netgear WG111 v3 (RTL8187B), STA mode. Modified: stable/12/sys/dev/usb/wlan/if_urtw.c stable/12/sys/dev/usb/wlan/if_urtwvar.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/usb/wlan/if_urtw.c stable/11/sys/dev/usb/wlan/if_urtwvar.h Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/usb/wlan/if_urtw.c ============================================================================== --- stable/12/sys/dev/usb/wlan/if_urtw.c Sun Apr 7 12:20:17 2019 (r346002) +++ stable/12/sys/dev/usb/wlan/if_urtw.c Sun Apr 7 12:57:38 2019 (r346003) @@ -3932,6 +3932,7 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da struct urtw_softc *sc = data->sc; struct ieee80211com *ic = &sc->sc_ic; uint8_t noise = 0, rate; + uint64_t mactime; usbd_xfer_status(xfer, &actlen, NULL, NULL, NULL); @@ -3951,6 +3952,9 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da /* XXX correct? */ rssi = rx->rssi & URTW_RX_RSSI_MASK; noise = rx->noise; + + if (ieee80211_radiotap_active(ic)) + mactime = rx->mactime; } else { struct urtw_8187l_rxhdr *rx; @@ -3967,6 +3971,9 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da /* XXX correct? */ rssi = rx->rssi & URTW_RX_8187L_RSSI_MASK; noise = rx->noise; + + if (ieee80211_radiotap_active(ic)) + mactime = rx->mactime; } if (flen < IEEE80211_ACK_LEN) @@ -3986,6 +3993,7 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da if (ieee80211_radiotap_active(ic)) { struct urtw_rx_radiotap_header *tap = &sc->sc_rxtap; + tap->wr_tsf = mactime; tap->wr_flags = 0; tap->wr_dbm_antsignal = (int8_t)rssi; } Modified: stable/12/sys/dev/usb/wlan/if_urtwvar.h ============================================================================== --- stable/12/sys/dev/usb/wlan/if_urtwvar.h Sun Apr 7 12:20:17 2019 (r346002) +++ stable/12/sys/dev/usb/wlan/if_urtwvar.h Sun Apr 7 12:57:38 2019 (r346003) @@ -55,6 +55,7 @@ typedef STAILQ_HEAD(, urtw_data) urtw_datahead; struct urtw_rx_radiotap_header { struct ieee80211_radiotap_header wr_ihdr; + uint64_t wr_tsf; uint8_t wr_flags; uint8_t wr_pad; uint16_t wr_chan_freq; @@ -63,7 +64,8 @@ struct urtw_rx_radiotap_header { } __packed __aligned(8); #define URTW_RX_RADIOTAP_PRESENT \ - ((1 << IEEE80211_RADIOTAP_FLAGS) | \ + ((1 << IEEE80211_RADIOTAP_TSFT) | \ + (1 << IEEE80211_RADIOTAP_FLAGS) | \ (1 << IEEE80211_RADIOTAP_CHANNEL) | \ (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL)) From owner-svn-src-stable@freebsd.org Sun Apr 7 13:04:27 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 282BC1551B4A; Sun, 7 Apr 2019 13:04:27 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C0AA28FAB2; Sun, 7 Apr 2019 13:04:26 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 99B1BC911; Sun, 7 Apr 2019 13:04:26 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37D4QxH026910; Sun, 7 Apr 2019 13:04:26 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37D4Q0C026909; Sun, 7 Apr 2019 13:04:26 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201904071304.x37D4Q0C026909@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 7 Apr 2019 13:04:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346004 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Group: stable-12 X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Commit-Revision: 346004 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C0AA28FAB2 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.955,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 13:04:27 -0000 Author: avos Date: Sun Apr 7 13:04:25 2019 New Revision: 346004 URL: https://svnweb.freebsd.org/changeset/base/346004 Log: MFC r345753: run(4): do not clear PROTECTED bit if frame was not decrypted by NIC. Was tested with D-Link DWA-140 rev B3, STA / MONITOR modes. Modified: stable/12/sys/dev/usb/wlan/if_run.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/usb/wlan/if_run.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/usb/wlan/if_run.c ============================================================================== --- stable/12/sys/dev/usb/wlan/if_run.c Sun Apr 7 12:57:38 2019 (r346003) +++ stable/12/sys/dev/usb/wlan/if_run.c Sun Apr 7 13:04:25 2019 (r346004) @@ -2865,8 +2865,8 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uin wh = mtod(m, struct ieee80211_frame *); - /* XXX wrong for monitor mode */ - if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if ((wh->i_fc[1] & IEEE80211_FC1_PROTECTED) != 0 && + (flags & RT2860_RX_DEC) != 0) { wh->i_fc[1] &= ~IEEE80211_FC1_PROTECTED; m->m_flags |= M_WEP; } From owner-svn-src-stable@freebsd.org Sun Apr 7 13:04:26 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D7F101551B45; Sun, 7 Apr 2019 13:04:26 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7767A8FAB1; Sun, 7 Apr 2019 13:04:26 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ACE1C910; Sun, 7 Apr 2019 13:04:26 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37D4Qgv026904; Sun, 7 Apr 2019 13:04:26 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37D4QmL026903; Sun, 7 Apr 2019 13:04:26 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201904071304.x37D4QmL026903@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 7 Apr 2019 13:04: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: r346004 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Group: stable-11 X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Commit-Revision: 346004 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7767A8FAB1 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.955,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 13:04:27 -0000 Author: avos Date: Sun Apr 7 13:04:25 2019 New Revision: 346004 URL: https://svnweb.freebsd.org/changeset/base/346004 Log: MFC r345753: run(4): do not clear PROTECTED bit if frame was not decrypted by NIC. Was tested with D-Link DWA-140 rev B3, STA / MONITOR modes. Modified: stable/11/sys/dev/usb/wlan/if_run.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/usb/wlan/if_run.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/usb/wlan/if_run.c ============================================================================== --- stable/11/sys/dev/usb/wlan/if_run.c Sun Apr 7 12:57:38 2019 (r346003) +++ stable/11/sys/dev/usb/wlan/if_run.c Sun Apr 7 13:04:25 2019 (r346004) @@ -2796,8 +2796,8 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uin wh = mtod(m, struct ieee80211_frame *); - /* XXX wrong for monitor mode */ - if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if ((wh->i_fc[1] & IEEE80211_FC1_PROTECTED) != 0 && + (flags & RT2860_RX_DEC) != 0) { wh->i_fc[1] &= ~IEEE80211_FC1_PROTECTED; m->m_flags |= M_WEP; } From owner-svn-src-stable@freebsd.org Sun Apr 7 13:11:41 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CF731551EF7; Sun, 7 Apr 2019 13:11:41 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1299D8FFC2; Sun, 7 Apr 2019 13:11:41 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DD301C963; Sun, 7 Apr 2019 13:11:40 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37DBeGw031119; Sun, 7 Apr 2019 13:11:40 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37DBeFT031117; Sun, 7 Apr 2019 13:11:40 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201904071311.x37DBeFT031117@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 7 Apr 2019 13:11:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r346005 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Group: stable-11 X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Commit-Revision: 346005 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1299D8FFC2 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 13:11:41 -0000 Author: avos Date: Sun Apr 7 13:11:40 2019 New Revision: 346005 URL: https://svnweb.freebsd.org/changeset/base/346005 Log: MFC r345751: uath(4), urtw(4): restart driver if device does not respond after Tx request Modified: stable/11/sys/dev/usb/wlan/if_uath.c stable/11/sys/dev/usb/wlan/if_urtw.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/usb/wlan/if_uath.c stable/12/sys/dev/usb/wlan/if_urtw.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/usb/wlan/if_uath.c ============================================================================== --- stable/11/sys/dev/usb/wlan/if_uath.c Sun Apr 7 13:04:25 2019 (r346004) +++ stable/11/sys/dev/usb/wlan/if_uath.c Sun Apr 7 13:11:40 2019 (r346005) @@ -1271,8 +1271,8 @@ uath_watchdog(void *arg) if (sc->sc_tx_timer > 0) { if (--sc->sc_tx_timer == 0) { device_printf(sc->sc_dev, "device timeout\n"); - /*uath_init(sc); XXX needs a process context! */ counter_u64_add(ic->ic_oerrors, 1); + ieee80211_restart_all(ic); return; } callout_reset(&sc->watchdog_ch, hz, uath_watchdog, sc); Modified: stable/11/sys/dev/usb/wlan/if_urtw.c ============================================================================== --- stable/11/sys/dev/usb/wlan/if_urtw.c Sun Apr 7 13:04:25 2019 (r346004) +++ stable/11/sys/dev/usb/wlan/if_urtw.c Sun Apr 7 13:11:40 2019 (r346005) @@ -1883,11 +1883,13 @@ static void urtw_watchdog(void *arg) { struct urtw_softc *sc = arg; + struct ieee80211com *ic = &sc->sc_ic; if (sc->sc_txtimer > 0) { if (--sc->sc_txtimer == 0) { device_printf(sc->sc_dev, "device timeout\n"); - counter_u64_add(sc->sc_ic.ic_oerrors, 1); + counter_u64_add(ic->ic_oerrors, 1); + ieee80211_restart_all(ic); return; } callout_reset(&sc->sc_watchdog_ch, hz, urtw_watchdog, sc); From owner-svn-src-stable@freebsd.org Sun Apr 7 13:11:42 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 032031551EFF; Sun, 7 Apr 2019 13:11:42 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9B5A18FFC4; Sun, 7 Apr 2019 13:11:41 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7636AC964; Sun, 7 Apr 2019 13:11:41 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37DBf8b031126; Sun, 7 Apr 2019 13:11:41 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37DBfnx031124; Sun, 7 Apr 2019 13:11:41 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201904071311.x37DBfnx031124@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 7 Apr 2019 13:11:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346005 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Group: stable-12 X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Commit-Revision: 346005 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9B5A18FFC4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 13:11:42 -0000 Author: avos Date: Sun Apr 7 13:11:40 2019 New Revision: 346005 URL: https://svnweb.freebsd.org/changeset/base/346005 Log: MFC r345751: uath(4), urtw(4): restart driver if device does not respond after Tx request Modified: stable/12/sys/dev/usb/wlan/if_uath.c stable/12/sys/dev/usb/wlan/if_urtw.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/usb/wlan/if_uath.c stable/11/sys/dev/usb/wlan/if_urtw.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/usb/wlan/if_uath.c ============================================================================== --- stable/12/sys/dev/usb/wlan/if_uath.c Sun Apr 7 13:04:25 2019 (r346004) +++ stable/12/sys/dev/usb/wlan/if_uath.c Sun Apr 7 13:11:40 2019 (r346005) @@ -1276,8 +1276,8 @@ uath_watchdog(void *arg) if (sc->sc_tx_timer > 0) { if (--sc->sc_tx_timer == 0) { device_printf(sc->sc_dev, "device timeout\n"); - /*uath_init(sc); XXX needs a process context! */ counter_u64_add(ic->ic_oerrors, 1); + ieee80211_restart_all(ic); return; } callout_reset(&sc->watchdog_ch, hz, uath_watchdog, sc); Modified: stable/12/sys/dev/usb/wlan/if_urtw.c ============================================================================== --- stable/12/sys/dev/usb/wlan/if_urtw.c Sun Apr 7 13:04:25 2019 (r346004) +++ stable/12/sys/dev/usb/wlan/if_urtw.c Sun Apr 7 13:11:40 2019 (r346005) @@ -1891,11 +1891,13 @@ static void urtw_watchdog(void *arg) { struct urtw_softc *sc = arg; + struct ieee80211com *ic = &sc->sc_ic; if (sc->sc_txtimer > 0) { if (--sc->sc_txtimer == 0) { device_printf(sc->sc_dev, "device timeout\n"); - counter_u64_add(sc->sc_ic.ic_oerrors, 1); + counter_u64_add(ic->ic_oerrors, 1); + ieee80211_restart_all(ic); return; } callout_reset(&sc->sc_watchdog_ch, hz, urtw_watchdog, sc); From owner-svn-src-stable@freebsd.org Sun Apr 7 13:26:48 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B2901552646; Sun, 7 Apr 2019 13:26:48 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A6854905E1; Sun, 7 Apr 2019 13:26:46 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7A933CC5E; Sun, 7 Apr 2019 13:26:46 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37DQkuD037604; Sun, 7 Apr 2019 13:26:46 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37DQk5w037603; Sun, 7 Apr 2019 13:26:46 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201904071326.x37DQk5w037603@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 7 Apr 2019 13:26:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346006 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Group: stable-12 X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Commit-Revision: 346006 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A6854905E1 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 13:26:48 -0000 Author: avos Date: Sun Apr 7 13:26:45 2019 New Revision: 346006 URL: https://svnweb.freebsd.org/changeset/base/346006 Log: MFC r345754: run(4): properly set F_DATAPAD radiotap flag if frame has padding between frame header and data. This will fix 'Mysterious OLPC stuff' for received frames and wrong CCMP / TKIP / data decoding for transmitted frames in net/wireshark dissector. While here, drop unneeded comment - net80211 handles padding requirements for Tx & Rx without driver adjustment. Was tested with D-Link DWA-140 rev B3, STA mode. Modified: stable/12/sys/dev/usb/wlan/if_run.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/usb/wlan/if_run.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/usb/wlan/if_run.c ============================================================================== --- stable/12/sys/dev/usb/wlan/if_run.c Sun Apr 7 13:11:40 2019 (r346005) +++ stable/12/sys/dev/usb/wlan/if_run.c Sun Apr 7 13:26:45 2019 (r346006) @@ -2851,10 +2851,6 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uin } if (flags & RT2860_RX_L2PAD) { - /* - * XXX OpenBSD removes padding between header - * and payload here... - */ RUN_DPRINTF(sc, RUN_DEBUG_RECV, "received RT2860_RX_L2PAD frame\n"); len += 2; @@ -2896,6 +2892,8 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uin uint16_t phy; tap->wr_flags = 0; + if (flags & RT2860_RX_L2PAD) + tap->wr_flags |= IEEE80211_RADIOTAP_F_DATAPAD; tap->wr_antsignal = rssi; tap->wr_antenna = ant; tap->wr_dbm_antsignal = run_rssi2dbm(sc, rssi, ant); @@ -3162,14 +3160,23 @@ tr_setup: vap = data->ni->ni_vap; if (ieee80211_radiotap_active_vap(vap)) { + const struct ieee80211_frame *wh; struct run_tx_radiotap_header *tap = &sc->sc_txtap; struct rt2860_txwi *txwi = (struct rt2860_txwi *)(&data->desc + sizeof(struct rt2870_txd)); + int has_l2pad; + + wh = mtod(m, struct ieee80211_frame *); + has_l2pad = IEEE80211_HAS_ADDR4(wh) != + IEEE80211_QOS_HAS_SEQ(wh); + tap->wt_flags = 0; tap->wt_rate = rt2860_rates[data->ridx].rate; tap->wt_hwqueue = index; if (le16toh(txwi->phy) & RT2860_PHY_SHPRE) tap->wt_flags |= IEEE80211_RADIOTAP_F_SHORTPRE; + if (has_l2pad) + tap->wt_flags |= IEEE80211_RADIOTAP_F_DATAPAD; ieee80211_radiotap_tx(vap, m); } From owner-svn-src-stable@freebsd.org Sun Apr 7 13:26:48 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27B111552649; Sun, 7 Apr 2019 13:26:48 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5CC4C905E0; Sun, 7 Apr 2019 13:26:46 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 31B13CC5D; Sun, 7 Apr 2019 13:26:46 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37DQkhP037598; Sun, 7 Apr 2019 13:26:46 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37DQklu037597; Sun, 7 Apr 2019 13:26:46 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201904071326.x37DQklu037597@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 7 Apr 2019 13:26:46 +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: r346006 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Group: stable-11 X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan X-SVN-Commit-Revision: 346006 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5CC4C905E0 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 13:26:48 -0000 Author: avos Date: Sun Apr 7 13:26:45 2019 New Revision: 346006 URL: https://svnweb.freebsd.org/changeset/base/346006 Log: MFC r345754: run(4): properly set F_DATAPAD radiotap flag if frame has padding between frame header and data. This will fix 'Mysterious OLPC stuff' for received frames and wrong CCMP / TKIP / data decoding for transmitted frames in net/wireshark dissector. While here, drop unneeded comment - net80211 handles padding requirements for Tx & Rx without driver adjustment. Was tested with D-Link DWA-140 rev B3, STA mode. Modified: stable/11/sys/dev/usb/wlan/if_run.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/usb/wlan/if_run.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/usb/wlan/if_run.c ============================================================================== --- stable/11/sys/dev/usb/wlan/if_run.c Sun Apr 7 13:11:40 2019 (r346005) +++ stable/11/sys/dev/usb/wlan/if_run.c Sun Apr 7 13:26:45 2019 (r346006) @@ -2783,10 +2783,6 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uin } if (flags & RT2860_RX_L2PAD) { - /* - * XXX OpenBSD removes padding between header - * and payload here... - */ DPRINTFN(8, "received RT2860_RX_L2PAD frame\n"); len += 2; } @@ -2826,6 +2822,8 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uin uint16_t phy; tap->wr_flags = 0; + if (flags & RT2860_RX_L2PAD) + tap->wr_flags |= IEEE80211_RADIOTAP_F_DATAPAD; tap->wr_antsignal = rssi; tap->wr_antenna = ant; tap->wr_dbm_antsignal = run_rssi2dbm(sc, rssi, ant); @@ -3085,14 +3083,23 @@ tr_setup: vap = data->ni->ni_vap; if (ieee80211_radiotap_active_vap(vap)) { + const struct ieee80211_frame *wh; struct run_tx_radiotap_header *tap = &sc->sc_txtap; struct rt2860_txwi *txwi = (struct rt2860_txwi *)(&data->desc + sizeof(struct rt2870_txd)); + int has_l2pad; + + wh = mtod(m, struct ieee80211_frame *); + has_l2pad = IEEE80211_HAS_ADDR4(wh) != + IEEE80211_QOS_HAS_SEQ(wh); + tap->wt_flags = 0; tap->wt_rate = rt2860_rates[data->ridx].rate; tap->wt_hwqueue = index; if (le16toh(txwi->phy) & RT2860_PHY_SHPRE) tap->wt_flags |= IEEE80211_RADIOTAP_F_SHORTPRE; + if (has_l2pad) + tap->wt_flags |= IEEE80211_RADIOTAP_F_DATAPAD; ieee80211_radiotap_tx(vap, m); } From owner-svn-src-stable@freebsd.org Sun Apr 7 19:02:34 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 10F941567E8C; Sun, 7 Apr 2019 19:02:34 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9DB336D9BE; Sun, 7 Apr 2019 19:02:33 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7A8C51861B; Sun, 7 Apr 2019 19:02:33 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37J2X0k017585; Sun, 7 Apr 2019 19:02:33 GMT (envelope-from jah@FreeBSD.org) Received: (from jah@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37J2Xmv017584; Sun, 7 Apr 2019 19:02:33 GMT (envelope-from jah@FreeBSD.org) Message-Id: <201904071902.x37J2Xmv017584@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jah set sender to jah@FreeBSD.org using -f From: "Jason A. Harmening" Date: Sun, 7 Apr 2019 19:02:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346019 - stable/12/sys/compat/freebsd32 X-SVN-Group: stable-12 X-SVN-Commit-Author: jah X-SVN-Commit-Paths: stable/12/sys/compat/freebsd32 X-SVN-Commit-Revision: 346019 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9DB336D9BE X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.95)[-0.950,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 19:02:34 -0000 Author: jah Date: Sun Apr 7 19:02:33 2019 New Revision: 346019 URL: https://svnweb.freebsd.org/changeset/base/346019 Log: MFC r345741: freebsd32: fix padding of computed control message length for recvmsg() Each control message region must be aligned on a 4-byte boundary on 32-bit architectures. The 32-bit compat shim for recvmsg() gets the actual layout right, but doesn't pad the payload length when computing msg_controllen for the output message header. If a control message contains an unaligned payload, such as the 1-byte TTL field in the example attached to PR 236737, this can produce control message payload boundaries that extend beyond the boundary reported by msg_controllen. PR: 236737 Modified: stable/12/sys/compat/freebsd32/freebsd32_misc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/compat/freebsd32/freebsd32_misc.c ============================================================================== --- stable/12/sys/compat/freebsd32/freebsd32_misc.c Sun Apr 7 18:39:55 2019 (r346018) +++ stable/12/sys/compat/freebsd32/freebsd32_misc.c Sun Apr 7 19:02:33 2019 (r346019) @@ -1183,8 +1183,8 @@ freebsd32_copy_msg_out(struct msghdr *msg, struct mbuf cm = NULL; } - msg->msg_controllen += FREEBSD32_ALIGN(sizeof(*cm)) + - datalen_out; + msg->msg_controllen += + FREEBSD32_CMSG_SPACE(datalen_out); } } if (len == 0 && m != NULL) { From owner-svn-src-stable@freebsd.org Sun Apr 7 19:08:08 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2A2791567F24; Sun, 7 Apr 2019 19:08:08 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A38966DB23; Sun, 7 Apr 2019 19:08:07 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 796D11861E; Sun, 7 Apr 2019 19:08:07 +0000 (UTC) (envelope-from jah@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x37J87j9017882; Sun, 7 Apr 2019 19:08:07 GMT (envelope-from jah@FreeBSD.org) Received: (from jah@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x37J87Hd017881; Sun, 7 Apr 2019 19:08:07 GMT (envelope-from jah@FreeBSD.org) Message-Id: <201904071908.x37J87Hd017881@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jah set sender to jah@FreeBSD.org using -f From: "Jason A. Harmening" Date: Sun, 7 Apr 2019 19:08: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: r346020 - stable/11/sys/compat/freebsd32 X-SVN-Group: stable-11 X-SVN-Commit-Author: jah X-SVN-Commit-Paths: stable/11/sys/compat/freebsd32 X-SVN-Commit-Revision: 346020 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A38966DB23 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.950,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2019 19:08:08 -0000 Author: jah Date: Sun Apr 7 19:08:07 2019 New Revision: 346020 URL: https://svnweb.freebsd.org/changeset/base/346020 Log: MFC r345741: freebsd32: fix padding of computed control message length for recvmsg() Each control message region must be aligned on a 4-byte boundary on 32-bit architectures. The 32-bit compat shim for recvmsg() gets the actual layout right, but doesn't pad the payload length when computing msg_controllen for the output message header. If a control message contains an unaligned payload, such as the 1-byte TTL field in the example attached to PR 236737, this can produce control message payload boundaries that extend beyond the boundary reported by msg_controllen. PR: 236737 Modified: stable/11/sys/compat/freebsd32/freebsd32_misc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/compat/freebsd32/freebsd32_misc.c ============================================================================== --- stable/11/sys/compat/freebsd32/freebsd32_misc.c Sun Apr 7 19:02:33 2019 (r346019) +++ stable/11/sys/compat/freebsd32/freebsd32_misc.c Sun Apr 7 19:08:07 2019 (r346020) @@ -1035,8 +1035,8 @@ freebsd32_copy_msg_out(struct msghdr *msg, struct mbuf cm = NULL; } - msg->msg_controllen += FREEBSD32_ALIGN(sizeof(*cm)) + - datalen_out; + msg->msg_controllen += + FREEBSD32_CMSG_SPACE(datalen_out); } } if (len == 0 && m != NULL) { From owner-svn-src-stable@freebsd.org Mon Apr 8 11:53:38 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2162157D427; Mon, 8 Apr 2019 11:53:38 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 889086E0C0; Mon, 8 Apr 2019 11:53:38 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1E9B723055; Mon, 8 Apr 2019 11:53: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 x38Brctm047733; Mon, 8 Apr 2019 11:53:38 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38Brb6O047732; Mon, 8 Apr 2019 11:53:37 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201904081153.x38Brb6O047732@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 8 Apr 2019 11:53:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346026 - stable/12/contrib/bsnmp/snmpd X-SVN-Group: stable-12 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/12/contrib/bsnmp/snmpd X-SVN-Commit-Revision: 346026 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 889086E0C0 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.96)[-0.955,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 11:53:39 -0000 Author: ae Date: Mon Apr 8 11:53:37 2019 New Revision: 346026 URL: https://svnweb.freebsd.org/changeset/base/346026 Log: MFC r345763: Correct a port number assignment. PR: 236930 Modified: stable/12/contrib/bsnmp/snmpd/trap.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/bsnmp/snmpd/trap.c ============================================================================== --- stable/12/contrib/bsnmp/snmpd/trap.c Mon Apr 8 04:54:15 2019 (r346025) +++ stable/12/contrib/bsnmp/snmpd/trap.c Mon Apr 8 11:53:37 2019 (r346026) @@ -726,8 +726,7 @@ target_activate_address(struct target_address *addrs) sa.sin_addr.s_addr = htonl((addrs->address[0] << 24) | (addrs->address[1] << 16) | (addrs->address[2] << 8) | (addrs->address[3] << 0)); - sa.sin_port = htons(addrs->address[4]) << 8 | - htons(addrs->address[5]) << 0; + sa.sin_port = htons(addrs->address[4] << 8 | addrs->address[5]); if (connect(addrs->socket, (struct sockaddr *)&sa, sa.sin_len) == -1) { syslog(LOG_ERR, "connect(%s,%u): %m", From owner-svn-src-stable@freebsd.org Mon Apr 8 11:54:46 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FF15157D511; Mon, 8 Apr 2019 11:54:46 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C39486E2B5; Mon, 8 Apr 2019 11:54:45 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9F88123057; Mon, 8 Apr 2019 11:54:45 +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 x38BsjHh047849; Mon, 8 Apr 2019 11:54:45 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38BsjfS047848; Mon, 8 Apr 2019 11:54:45 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201904081154.x38BsjfS047848@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 8 Apr 2019 11:54:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r346027 - stable/11/contrib/bsnmp/snmpd X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/contrib/bsnmp/snmpd X-SVN-Commit-Revision: 346027 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C39486E2B5 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.96)[-0.955,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 11:54:46 -0000 Author: ae Date: Mon Apr 8 11:54:45 2019 New Revision: 346027 URL: https://svnweb.freebsd.org/changeset/base/346027 Log: MFC r345763: Correct a port number assignment. PR: 236930 Modified: stable/11/contrib/bsnmp/snmpd/trap.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/bsnmp/snmpd/trap.c ============================================================================== --- stable/11/contrib/bsnmp/snmpd/trap.c Mon Apr 8 11:53:37 2019 (r346026) +++ stable/11/contrib/bsnmp/snmpd/trap.c Mon Apr 8 11:54:45 2019 (r346027) @@ -724,8 +724,7 @@ target_activate_address(struct target_address *addrs) sa.sin_addr.s_addr = htonl((addrs->address[0] << 24) | (addrs->address[1] << 16) | (addrs->address[2] << 8) | (addrs->address[3] << 0)); - sa.sin_port = htons(addrs->address[4]) << 8 | - htons(addrs->address[5]) << 0; + sa.sin_port = htons(addrs->address[4] << 8 | addrs->address[5]); if (connect(addrs->socket, (struct sockaddr *)&sa, sa.sin_len) == -1) { syslog(LOG_ERR, "connect(%s,%u): %m", From owner-svn-src-stable@freebsd.org Mon Apr 8 15:52:15 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21DF91551B44; Mon, 8 Apr 2019 15:52:15 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B78C776FD1; Mon, 8 Apr 2019 15:52:14 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C60A258AF; Mon, 8 Apr 2019 15:52:14 +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 x38FqELY069892; Mon, 8 Apr 2019 15:52:14 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38FqDhN069887; Mon, 8 Apr 2019 15:52:13 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201904081552.x38FqDhN069887@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Mon, 8 Apr 2019 15:52:13 +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: r346032 - in stable/11/sys: cddl/contrib/opensolaris/uts/common/fs/zfs fs/nandfs fs/nfsclient kern ufs/ufs X-SVN-Group: stable-11 X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: in stable/11/sys: cddl/contrib/opensolaris/uts/common/fs/zfs fs/nandfs fs/nfsclient kern ufs/ufs X-SVN-Commit-Revision: 346032 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B78C776FD1 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 15:52:15 -0000 Author: sjg Date: Mon Apr 8 15:52:13 2019 New Revision: 346032 URL: https://svnweb.freebsd.org/changeset/base/346032 Log: Add _PC_ACL_* to vop_stdpathconf This avoid EINVAL from tmpfs etc. Merge of r345024 Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D19512 Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c stable/11/sys/fs/nandfs/nandfs_vnops.c stable/11/sys/fs/nfsclient/nfs_clvnops.c stable/11/sys/kern/vfs_default.c stable/11/sys/ufs/ufs/ufs_vnops.c Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Mon Apr 8 15:20:05 2019 (r346031) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Mon Apr 8 15:52:13 2019 (r346032) @@ -755,10 +755,6 @@ zfsctl_common_pathconf(ap) *ap->a_retval = (int)SPA_MINBLOCKSIZE; return (0); - case _PC_ACL_EXTENDED: - *ap->a_retval = 0; - return (0); - case _PC_ACL_NFS4: *ap->a_retval = 1; return (0); Modified: stable/11/sys/fs/nandfs/nandfs_vnops.c ============================================================================== --- stable/11/sys/fs/nandfs/nandfs_vnops.c Mon Apr 8 15:20:05 2019 (r346031) +++ stable/11/sys/fs/nandfs/nandfs_vnops.c Mon Apr 8 15:52:13 2019 (r346032) @@ -2255,9 +2255,6 @@ nandfs_pathconf(struct vop_pathconf_args *ap) case _PC_NO_TRUNC: *ap->a_retval = 1; break; - case _PC_ACL_EXTENDED: - *ap->a_retval = 0; - break; case _PC_ALLOC_SIZE_MIN: *ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_bsize; break; Modified: stable/11/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- stable/11/sys/fs/nfsclient/nfs_clvnops.c Mon Apr 8 15:20:05 2019 (r346031) +++ stable/11/sys/fs/nfsclient/nfs_clvnops.c Mon Apr 8 15:52:13 2019 (r346032) @@ -3481,9 +3481,6 @@ nfs_pathconf(struct vop_pathconf_args *ap) case _PC_NO_TRUNC: *ap->a_retval = pc.pc_notrunc; break; - case _PC_ACL_EXTENDED: - *ap->a_retval = 0; - break; case _PC_ACL_NFS4: if (NFS_ISV4(vp) && nfsrv_useacl != 0 && attrflag != 0 && NFSISSET_ATTRBIT(&nfsva.na_suppattr, NFSATTRBIT_ACL)) @@ -3496,9 +3493,6 @@ nfs_pathconf(struct vop_pathconf_args *ap) *ap->a_retval = ACL_MAX_ENTRIES; else *ap->a_retval = 3; - break; - case _PC_MAC_PRESENT: - *ap->a_retval = 0; break; case _PC_PRIO_IO: *ap->a_retval = 0; Modified: stable/11/sys/kern/vfs_default.c ============================================================================== --- stable/11/sys/kern/vfs_default.c Mon Apr 8 15:20:05 2019 (r346031) +++ stable/11/sys/kern/vfs_default.c Mon Apr 8 15:52:13 2019 (r346032) @@ -480,6 +480,13 @@ vop_stdpathconf(ap) case _PC_PATH_MAX: *ap->a_retval = PATH_MAX; return (0); + case _PC_ACL_EXTENDED: + case _PC_ACL_NFS4: + case _PC_CAP_PRESENT: + case _PC_INF_PRESENT: + case _PC_MAC_PRESENT: + *ap->a_retval = 0; + return (0); default: return (EINVAL); } Modified: stable/11/sys/ufs/ufs/ufs_vnops.c ============================================================================== --- stable/11/sys/ufs/ufs/ufs_vnops.c Mon Apr 8 15:20:05 2019 (r346031) +++ stable/11/sys/ufs/ufs/ufs_vnops.c Mon Apr 8 15:52:13 2019 (r346032) @@ -2415,28 +2415,20 @@ ufs_pathconf(ap) case _PC_NO_TRUNC: *ap->a_retval = 1; break; - case _PC_ACL_EXTENDED: #ifdef UFS_ACL + case _PC_ACL_EXTENDED: if (ap->a_vp->v_mount->mnt_flag & MNT_ACLS) *ap->a_retval = 1; else *ap->a_retval = 0; -#else - *ap->a_retval = 0; -#endif break; - case _PC_ACL_NFS4: -#ifdef UFS_ACL if (ap->a_vp->v_mount->mnt_flag & MNT_NFS4ACLS) *ap->a_retval = 1; else *ap->a_retval = 0; -#else - *ap->a_retval = 0; -#endif break; - +#endif case _PC_ACL_PATH_MAX: #ifdef UFS_ACL if (ap->a_vp->v_mount->mnt_flag & (MNT_ACLS | MNT_NFS4ACLS)) @@ -2447,16 +2439,14 @@ ufs_pathconf(ap) *ap->a_retval = 3; #endif break; - case _PC_MAC_PRESENT: #ifdef MAC + case _PC_MAC_PRESENT: if (ap->a_vp->v_mount->mnt_flag & MNT_MULTILABEL) *ap->a_retval = 1; else *ap->a_retval = 0; -#else - *ap->a_retval = 0; -#endif break; +#endif case _PC_MIN_HOLE_SIZE: *ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize; break; From owner-svn-src-stable@freebsd.org Mon Apr 8 17:36:26 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E31B21562DA1; Mon, 8 Apr 2019 17:36:25 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8397082FF3; Mon, 8 Apr 2019 17:36:25 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BF616269E6; Mon, 8 Apr 2019 17:36:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38HaOq6027099; Mon, 8 Apr 2019 17:36:24 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38HaORe027098; Mon, 8 Apr 2019 17:36:24 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081736.x38HaORe027098@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 17:36:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346033 - stable/12/lib/libbe X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/lib/libbe X-SVN-Commit-Revision: 346033 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8397082FF3 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 17:36:26 -0000 Author: kevans Date: Mon Apr 8 17:36:24 2019 New Revision: 346033 URL: https://svnweb.freebsd.org/changeset/base/346033 Log: MFC r345848: libbe(3): Add a serial to the generated snapshot names To use bectl in an example, when one creates a new boot environment with either `bectl create ` or `bectl create -e `, libbe will take a snapshot of the original boot environment to clone. Previously, this used %F-%T date format as the snapshot name, but this has some limitations- attempting to create multiple boot environments in quick succession may collide if done within the same second. Tack a serial onto it to reduce the chances of a collision... we could still collide if multiple processes/threads are creating boot environments at the same time, but this is likely not a big concern as this has only been reported as occurring in freebsd-ci setup. Modified: stable/12/lib/libbe/be.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libbe/be.c ============================================================================== --- stable/12/lib/libbe/be.c Mon Apr 8 15:52:13 2019 (r346032) +++ stable/12/lib/libbe/be.c Mon Apr 8 17:36:24 2019 (r346033) @@ -51,6 +51,9 @@ static int be_create_child_noent(libbe_handle_t *lbh, static int be_create_child_cloned(libbe_handle_t *lbh, const char *active); #endif +/* Arbitrary... should tune */ +#define BE_SNAP_SERIAL_MAX 1024 + /* * Iterator function for locating the rootfs amongst the children of the * zfs_be_root set by loader(8). data is expected to be a libbe_handle_t *. @@ -252,13 +255,32 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } +static void +be_setup_snapshot_name(libbe_handle_t *lbh, char *buf, size_t buflen) +{ + time_t rawtime; + int len, serial; + + time(&rawtime); + len = strlen(buf); + len += strftime(buf + len, buflen - len, "@%F-%T", localtime(&rawtime)); + /* No room for serial... caller will do its best */ + if (buflen - len < 2) + return; + + for (serial = 0; serial < BE_SNAP_SERIAL_MAX; ++serial) { + snprintf(buf + len, buflen - len, "-%d", serial); + if (!zfs_dataset_exists(lbh->lzh, buf, ZFS_TYPE_SNAPSHOT)) + return; + } +} + int be_snapshot(libbe_handle_t *lbh, const char *source, const char *snap_name, bool recursive, char *result) { char buf[BE_MAXPATHLEN]; - time_t rawtime; - int len, err; + int err; be_root_concat(lbh, source, buf); @@ -276,10 +298,8 @@ be_snapshot(libbe_handle_t *lbh, const char *source, c snprintf(result, BE_MAXPATHLEN, "%s@%s", source, snap_name); } else { - time(&rawtime); - len = strlen(buf); - strftime(buf + len, sizeof(buf) - len, - "@%F-%T", localtime(&rawtime)); + be_setup_snapshot_name(lbh, buf, sizeof(buf)); + if (result != NULL && strlcpy(result, strrchr(buf, '/') + 1, sizeof(buf)) >= sizeof(buf)) return (set_error(lbh, BE_ERR_INVALIDNAME)); From owner-svn-src-stable@freebsd.org Mon Apr 8 17:41:41 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 64B3E1562EEA; Mon, 8 Apr 2019 17:41:41 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 13A6783261; Mon, 8 Apr 2019 17:41:41 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA5EA26B5B; Mon, 8 Apr 2019 17:41:40 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38Hfei6029043; Mon, 8 Apr 2019 17:41:40 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38HfdTE029036; Mon, 8 Apr 2019 17:41:39 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081741.x38HfdTE029036@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 17:41:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346034 - in stable/12: lib/libbe sbin/bectl sbin/bectl/tests X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12: lib/libbe sbin/bectl sbin/bectl/tests X-SVN-Commit-Revision: 346034 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 13A6783261 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 17:41:41 -0000 Author: kevans Date: Mon Apr 8 17:41:39 2019 New Revision: 346034 URL: https://svnweb.freebsd.org/changeset/base/346034 Log: MFC r343335, r343977, r343993-r343994, r344034, r344084, r345302, r345769 r343335: libbe(3): simplify import, allow replication streams Previously, we directly used libzfs_core's lzc_receive to import to a temporary snapshot, then cloned the snapshot and setup the properties. This failed when attempting to import replication streams with questionable error. libzfs's zfs_receive is a much better fit here, so we now use it instead with the destination dataset and let libzfs take care of the dirty details. be_import is greatly simplified as a result. r343977: libbe(3): Add a destroy option for removing the origin Currently origin snapshots are left behind when a BE is destroyed, whether it was an auto-created snapshot or explicitly specified via, for example, `bectl create -e be@mysnap ...`. Removing it automatically could be argued as a POLA violation in some circumstances, so provide a flag to be_destroy for it. An accompanying option will be added to bectl(8) to utilize this. Some minor style/consistency nits in the affected areas also addressed. r343993: bectl(8): Add -o flag to destroy to clean up the origin snapshot of BE We can't predict when destruction of origin is needed, and currently we have a precedent for not prompting for things. Leave the decision up to the user of bectl(8) if they want the origin snapshot to be destroyed or not. Emits a warning when -o isn't used and an origin snapshot is left to be cleaned up, for the time being. This is handy when one drops the -o flag but really did want to clean up the origin. A couple of -e ignore's have been sprinkled around the test suite for places that we don't care that the origin's not been cleaned up. -o functionality tests will be added in the future, but are omitted for now to reduce conflicts with work in flight to fix bits of the tests. r343994: bectl(8): commit missing test modifications from r343993 r344034: libbe(3): Belatedly note the BE_DESTROY_ORIGIN option added in r343977 r344084: libbe(3): Fix be_destroy behavior w.r.t. deep BE snapshots and -o be_destroy is documented to recursively destroy a boot environment. In the case of snapshots, one would take this to mean that these are also recursively destroyed. However, this was previously not the case. be_destroy would descend into the be_destroy callback and attempt to zfs_iter_children on the top-level snapshot, which is bogus. Our alternative approach is to take note of the snapshot name and iterate through all of fs children of the BE to try destruction in the children. The -o option is also fixed to work properly with deep BEs. If the BE was created with `bectl create -e otherDeepBE newDeepBE`, for instance, then a recursive snapshot of otherDeepBE would have been taken for construction of newDeepBE but a subsequent destroy with BE_DESTROY_ORIGIN set would only clean up the snapshot at the root of otherDeepBE: ${BEROOT}/otherDeepBE@... The most recent iteration instead pretends not to know how these things work, verifies that the origin is another BE and then passes that back through be_destroy to DTRT when snapshots and deep BEs may be in play. r345302: bectl(8): change jail command to execute jail(8) The jail(8) command provides a variety of jail pseudo-parameters that are useful to consumers of bectl, mount.devfs being the most-often-requested paramater by bectl users. command, exec.start, nopersist, and persist may not be specified via -o to bectl. The command/exec.start remains passed as it always has at the end of bectl, and persistence is dictated by -b/-U bectl jail arguments. r345769: libbe: Fix zfs_is_mounted check w/ snapshots 'be_destroy' can destroy a boot environment (by name) or a given snapshot. If the target to be destroyed is a dataset, check if it's mounted. We don't want to check if the origin dataset is mounted when destroying a snapshot. PR: 236043 Modified: stable/12/lib/libbe/be.c stable/12/lib/libbe/be.h stable/12/lib/libbe/be_error.c stable/12/lib/libbe/libbe.3 stable/12/sbin/bectl/bectl.8 stable/12/sbin/bectl/bectl.c stable/12/sbin/bectl/bectl_jail.c stable/12/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libbe/be.c ============================================================================== --- stable/12/lib/libbe/be.c Mon Apr 8 17:36:24 2019 (r346033) +++ stable/12/lib/libbe/be.c Mon Apr 8 17:41:39 2019 (r346034) @@ -45,6 +45,11 @@ __FBSDID("$FreeBSD$"); #include "be.h" #include "be_impl.h" +struct be_destroy_data { + libbe_handle_t *lbh; + char *snapname; +}; + #if SOON static int be_create_child_noent(libbe_handle_t *lbh, const char *active, const char *child_path); @@ -189,12 +194,38 @@ be_nicenum(uint64_t num, char *buf, size_t buflen) static int be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) { + char path[BE_MAXPATHLEN]; + struct be_destroy_data *bdd; + zfs_handle_t *snap; int err; - if ((err = zfs_iter_children(zfs_hdl, be_destroy_cb, data)) != 0) + bdd = (struct be_destroy_data *)data; + if (bdd->snapname == NULL) { + err = zfs_iter_children(zfs_hdl, be_destroy_cb, data); + if (err != 0) + return (err); + return (zfs_destroy(zfs_hdl, false)); + } + /* If we're dealing with snapshots instead, delete that one alone */ + err = zfs_iter_filesystems(zfs_hdl, be_destroy_cb, data); + if (err != 0) return (err); - if ((err = zfs_destroy(zfs_hdl, false)) != 0) - return (err); + /* + * This part is intentionally glossing over any potential errors, + * because there's a lot less potential for errors when we're cleaning + * up snapshots rather than a full deep BE. The primary error case + * here being if the snapshot doesn't exist in the first place, which + * the caller will likely deem insignificant as long as it doesn't + * exist after the call. Thus, such a missing snapshot shouldn't jam + * up the destruction. + */ + snprintf(path, sizeof(path), "%s@%s", zfs_get_name(zfs_hdl), + bdd->snapname); + if (!zfs_dataset_exists(bdd->lbh->lzh, path, ZFS_TYPE_SNAPSHOT)) + return (0); + snap = zfs_open(bdd->lbh->lzh, path, ZFS_TYPE_SNAPSHOT); + if (snap != NULL) + zfs_destroy(snap, false); return (0); } @@ -202,21 +233,26 @@ be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) * Destroy the boot environment or snapshot specified by the name * parameter. Options are or'd together with the possible values: * BE_DESTROY_FORCE : forces operation on mounted datasets + * BE_DESTROY_ORIGIN: destroy the origin snapshot as well */ int be_destroy(libbe_handle_t *lbh, const char *name, int options) { + struct be_destroy_data bdd; + char origin[BE_MAXPATHLEN], path[BE_MAXPATHLEN]; zfs_handle_t *fs; - char path[BE_MAXPATHLEN]; - char *p; + char *snapdelim; int err, force, mounted; + size_t rootlen; - p = path; + bdd.lbh = lbh; + bdd.snapname = NULL; force = options & BE_DESTROY_FORCE; + *origin = '\0'; be_root_concat(lbh, name, path); - if (strchr(name, '@') == NULL) { + if ((snapdelim = strchr(path, '@')) == NULL) { if (!zfs_dataset_exists(lbh->lzh, path, ZFS_TYPE_FILESYSTEM)) return (set_error(lbh, BE_ERR_NOENT)); @@ -224,37 +260,69 @@ be_destroy(libbe_handle_t *lbh, const char *name, int strcmp(path, lbh->bootfs) == 0) return (set_error(lbh, BE_ERR_DESTROYACT)); - fs = zfs_open(lbh->lzh, p, ZFS_TYPE_FILESYSTEM); - } else { + fs = zfs_open(lbh->lzh, path, ZFS_TYPE_FILESYSTEM); + if (fs == NULL) + return (set_error(lbh, BE_ERR_ZFSOPEN)); + if ((options & BE_DESTROY_ORIGIN) != 0 && + zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), + NULL, NULL, 0, 1) != 0) + return (set_error(lbh, BE_ERR_NOORIGIN)); + + /* Don't destroy a mounted dataset unless force is specified */ + if ((mounted = zfs_is_mounted(fs, NULL)) != 0) { + if (force) { + zfs_unmount(fs, NULL, 0); + } else { + free(bdd.snapname); + return (set_error(lbh, BE_ERR_DESTROYMNT)); + } + } + } else { if (!zfs_dataset_exists(lbh->lzh, path, ZFS_TYPE_SNAPSHOT)) return (set_error(lbh, BE_ERR_NOENT)); - fs = zfs_open(lbh->lzh, p, ZFS_TYPE_SNAPSHOT); + bdd.snapname = strdup(snapdelim + 1); + if (bdd.snapname == NULL) + return (set_error(lbh, BE_ERR_NOMEM)); + *snapdelim = '\0'; + fs = zfs_open(lbh->lzh, path, ZFS_TYPE_DATASET); + if (fs == NULL) { + free(bdd.snapname); + return (set_error(lbh, BE_ERR_ZFSOPEN)); + } } - if (fs == NULL) - return (set_error(lbh, BE_ERR_ZFSOPEN)); - - /* Check if mounted, unmount if force is specified */ - if ((mounted = zfs_is_mounted(fs, NULL)) != 0) { - if (force) - zfs_unmount(fs, NULL, 0); - else - return (set_error(lbh, BE_ERR_DESTROYMNT)); - } - - if ((err = be_destroy_cb(fs, NULL)) != 0) { + err = be_destroy_cb(fs, &bdd); + zfs_close(fs); + free(bdd.snapname); + if (err != 0) { /* Children are still present or the mount is referenced */ if (err == EBUSY) return (set_error(lbh, BE_ERR_DESTROYMNT)); return (set_error(lbh, BE_ERR_UNKNOWN)); } - return (0); -} + if ((options & BE_DESTROY_ORIGIN) == 0) + return (0); + /* The origin can't possibly be shorter than the BE root */ + rootlen = strlen(lbh->root); + if (*origin == '\0' || strlen(origin) <= rootlen + 1) + return (set_error(lbh, BE_ERR_INVORIGIN)); + /* + * We'll be chopping off the BE root and running this back through + * be_destroy, so that we properly handle the origin snapshot whether + * it be that of a deep BE or not. + */ + if (strncmp(origin, lbh->root, rootlen) != 0 || origin[rootlen] != '/') + return (0); + + return (be_destroy(lbh, origin + rootlen + 1, + options & ~BE_DESTROY_ORIGIN)); +} + static void be_setup_snapshot_name(libbe_handle_t *lbh, char *buf, size_t buflen) { @@ -669,32 +737,14 @@ int be_import(libbe_handle_t *lbh, const char *bootenv, int fd) { char buf[BE_MAXPATHLEN]; - time_t rawtime; nvlist_t *props; zfs_handle_t *zfs; - int err, len; - char nbuf[24]; + recvflags_t flags = { .nomount = 1 }; + int err; - /* - * We don't need this to be incredibly random, just unique enough that - * it won't conflict with an existing dataset name. Chopping time - * down to 32 bits is probably good enough for this. - */ - snprintf(nbuf, 24, "tmp%u", - (uint32_t)(time(NULL) & 0xFFFFFFFF)); - if ((err = be_root_concat(lbh, nbuf, buf)) != 0) - /* - * Technically this is our problem, but we try to use short - * enough names that we won't run into problems except in - * worst-case BE root approaching MAXPATHLEN. - */ - return (set_error(lbh, BE_ERR_PATHLEN)); + be_root_concat(lbh, bootenv, buf); - time(&rawtime); - len = strlen(buf); - strftime(buf + len, sizeof(buf) - len, "@%F-%T", localtime(&rawtime)); - - if ((err = lzc_receive(buf, NULL, NULL, false, fd)) != 0) { + if ((err = zfs_receive(lbh->lzh, buf, NULL, &flags, fd, NULL)) != 0) { switch (err) { case EINVAL: return (set_error(lbh, BE_ERR_NOORIGIN)); @@ -707,39 +757,22 @@ be_import(libbe_handle_t *lbh, const char *bootenv, in } } - if ((zfs = zfs_open(lbh->lzh, buf, ZFS_TYPE_SNAPSHOT)) == NULL) + if ((zfs = zfs_open(lbh->lzh, buf, ZFS_TYPE_FILESYSTEM)) == NULL) return (set_error(lbh, BE_ERR_ZFSOPEN)); nvlist_alloc(&props, NV_UNIQUE_NAME, KM_SLEEP); nvlist_add_string(props, "canmount", "noauto"); nvlist_add_string(props, "mountpoint", "/"); - be_root_concat(lbh, bootenv, buf); - - err = zfs_clone(zfs, buf, props); - zfs_close(zfs); + err = zfs_prop_set_list(zfs, props); nvlist_free(props); - if (err != 0) - return (set_error(lbh, BE_ERR_UNKNOWN)); - - /* - * Finally, we open up the dataset we just cloned the snapshot so that - * we may promote it. This is necessary in order to clean up the ghost - * snapshot that doesn't need to be seen after the operation is - * complete. - */ - if ((zfs = zfs_open(lbh->lzh, buf, ZFS_TYPE_DATASET)) == NULL) - return (set_error(lbh, BE_ERR_ZFSOPEN)); - - err = zfs_promote(zfs); zfs_close(zfs); if (err != 0) return (set_error(lbh, BE_ERR_UNKNOWN)); - /* Clean up the temporary snapshot */ - return (be_destroy(lbh, nbuf, 0)); + return (0); } #if SOON Modified: stable/12/lib/libbe/be.h ============================================================================== --- stable/12/lib/libbe/be.h Mon Apr 8 17:36:24 2019 (r346033) +++ stable/12/lib/libbe/be.h Mon Apr 8 17:41:39 2019 (r346034) @@ -59,6 +59,7 @@ typedef enum be_error { BE_ERR_NOPOOL, /* operation not supported on this pool */ BE_ERR_NOMEM, /* insufficient memory */ BE_ERR_UNKNOWN, /* unknown error */ + BE_ERR_INVORIGIN, /* invalid origin */ } be_error_t; @@ -93,7 +94,8 @@ int be_rename(libbe_handle_t *, const char *, const ch /* Bootenv removal functions */ typedef enum { - BE_DESTROY_FORCE = 1 << 0, + BE_DESTROY_FORCE = 1 << 0, + BE_DESTROY_ORIGIN = 1 << 1, } be_destroy_opt_t; int be_destroy(libbe_handle_t *, const char *, int); @@ -102,7 +104,7 @@ int be_destroy(libbe_handle_t *, const char *, int); typedef enum { BE_MNT_FORCE = 1 << 0, - BE_MNT_DEEP = 1 << 1, + BE_MNT_DEEP = 1 << 1, } be_mount_opt_t; int be_mount(libbe_handle_t *, char *, char *, int, char *); Modified: stable/12/lib/libbe/be_error.c ============================================================================== --- stable/12/lib/libbe/be_error.c Mon Apr 8 17:36:24 2019 (r346033) +++ stable/12/lib/libbe/be_error.c Mon Apr 8 17:41:39 2019 (r346034) @@ -105,6 +105,9 @@ libbe_error_description(libbe_handle_t *lbh) case BE_ERR_UNKNOWN: return ("unknown error"); + case BE_ERR_INVORIGIN: + return ("invalid origin"); + default: assert(lbh->error == BE_ERR_SUCCESS); return ("no error"); Modified: stable/12/lib/libbe/libbe.3 ============================================================================== --- stable/12/lib/libbe/libbe.3 Mon Apr 8 17:36:24 2019 (r346033) +++ stable/12/lib/libbe/libbe.3 Mon Apr 8 17:41:39 2019 (r346034) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 21, 2018 +.Dd February 12, 2019 .Dt LIBBE 3 .Os .Sh NAME @@ -253,6 +253,13 @@ It will not destroy a mounted boot environment unless .Dv BE_DESTROY_FORCE option is set in .Fa options . +If the +.Dv BE_DESTROY_ORIGIN +option is set in +.Fa options , +the +.Fn be_destroy +function will destroy the origin snapshot to this boot environment as well. .Pp The .Fn be_nicenum @@ -482,6 +489,8 @@ BE_ERR_NOPOOL BE_ERR_NOMEM .It BE_ERR_UNKNOWN +.It +BE_ERR_INVORIGIN .El .Sh SEE ALSO .Xr bectl 8 Modified: stable/12/sbin/bectl/bectl.8 ============================================================================== --- stable/12/sbin/bectl/bectl.8 Mon Apr 8 17:36:24 2019 (r346033) +++ stable/12/sbin/bectl/bectl.8 Mon Apr 8 17:41:39 2019 (r346034) @@ -18,7 +18,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 25, 2018 +.Dd February 10, 2019 .Dt BECTL 8 .Os .Sh NAME @@ -40,7 +40,7 @@ .Ar beName@snapshot .Nm .Cm destroy -.Op Fl F +.Op Fl \&Fo .Brq Ar beName | beName@snapshot .Nm .Cm export @@ -124,7 +124,7 @@ If the flag is given, a recursive boot environment will be made. .It Xo .Cm destroy -.Op Fl F +.Op Fl \&Fo .Brq Ar beName | beName@snapshot .Xc Destroys the given @@ -136,6 +136,14 @@ snapshot without confirmation, unlike in Specifying .Fl F will automatically unmount without confirmation. +.Pp +By default, +.Nm +will warn that it is not destroying the origin of +.Ar beName . +The +.Fl o +flag may be specified to destroy the origin as well. .It Cm export Ar sourceBe Export .Ar sourceBe Modified: stable/12/sbin/bectl/bectl.c ============================================================================== --- stable/12/sbin/bectl/bectl.c Mon Apr 8 17:36:24 2019 (r346033) +++ stable/12/sbin/bectl/bectl.c Mon Apr 8 17:41:39 2019 (r346034) @@ -341,16 +341,19 @@ bectl_cmd_add(int argc, char *argv[]) static int bectl_cmd_destroy(int argc, char *argv[]) { - char *target; - int opt, err; - bool force; + nvlist_t *props; + char *origin, *target, targetds[BE_MAXPATHLEN]; + int err, flags, opt; - force = false; - while ((opt = getopt(argc, argv, "F")) != -1) { + flags = 0; + while ((opt = getopt(argc, argv, "Fo")) != -1) { switch (opt) { case 'F': - force = true; + flags |= BE_DESTROY_FORCE; break; + case 'o': + flags |= BE_DESTROY_ORIGIN; + break; default: fprintf(stderr, "bectl destroy: unknown option '-%c'\n", optopt); @@ -368,7 +371,24 @@ bectl_cmd_destroy(int argc, char *argv[]) target = argv[0]; - err = be_destroy(be, target, force); + /* We'll emit a notice if there's an origin to be cleaned up */ + if ((flags & BE_DESTROY_ORIGIN) == 0 && strchr(target, '@') == NULL) { + if (be_root_concat(be, target, targetds) != 0) + goto destroy; + if (be_prop_list_alloc(&props) != 0) + goto destroy; + if (be_get_dataset_props(be, targetds, props) != 0) { + be_prop_list_free(props); + goto destroy; + } + if (nvlist_lookup_string(props, "origin", &origin) == 0) + fprintf(stderr, "bectl destroy: leaving origin '%s' intact\n", + origin); + be_prop_list_free(props); + } + +destroy: + err = be_destroy(be, target, flags); return (err); } Modified: stable/12/sbin/bectl/bectl_jail.c ============================================================================== --- stable/12/sbin/bectl/bectl_jail.c Mon Apr 8 17:36:24 2019 (r346033) +++ stable/12/sbin/bectl/bectl_jail.c Mon Apr 8 17:41:39 2019 (r346034) @@ -40,10 +40,10 @@ __FBSDID("$FreeBSD$"); #include #include - #include "bectl.h" -static void jailparam_grow(void); +#define MNTTYPE_ZFS 222 + static void jailparam_add(const char *name, const char *val); static int jailparam_del(const char *name); static bool jailparam_addarg(char *arg); @@ -51,84 +51,28 @@ static int jailparam_delarg(char *arg); static int bectl_search_jail_paths(const char *mnt); static int bectl_locate_jail(const char *ident); +static int bectl_jail_cleanup(char *mountpoint, int jid); -/* We'll start with 8 parameters initially and grow as needed. */ -#define INIT_PARAMCOUNT 8 - -static struct jailparam *jp; -static int jpcnt; -static int jpused; static char mnt_loc[BE_MAXPATHLEN]; +static nvlist_t *jailparams; -static void -jailparam_grow(void) -{ +static const char *disabled_params[] = { + "command", "exec.start", "nopersist", "persist", NULL +}; - jpcnt *= 2; - jp = realloc(jp, jpcnt * sizeof(*jp)); - if (jp == NULL) - err(2, "realloc"); -} static void jailparam_add(const char *name, const char *val) { - int i; - for (i = 0; i < jpused; ++i) { - if (strcmp(name, jp[i].jp_name) == 0) - break; - } - - if (i < jpused) - jailparam_free(&jp[i], 1); - else if (jpused == jpcnt) - /* The next slot isn't allocated yet */ - jailparam_grow(); - - if (jailparam_init(&jp[i], name) != 0) - return; - if (jailparam_import(&jp[i], val) != 0) - return; - ++jpused; + nvlist_add_string(jailparams, name, val); } static int jailparam_del(const char *name) { - int i; - char *val; - for (i = 0; i < jpused; ++i) { - if (strcmp(name, jp[i].jp_name) == 0) - break; - } - - if (i == jpused) - return (ENOENT); - - for (; i < jpused - 1; ++i) { - val = jailparam_export(&jp[i + 1]); - - jailparam_free(&jp[i], 1); - /* - * Given the context, the following will really only fail if - * they can't allocate the copy of the name or value. - */ - if (jailparam_init(&jp[i], jp[i + 1].jp_name) != 0) { - free(val); - return (ENOMEM); - } - if (jailparam_import(&jp[i], val) != 0) { - jailparam_free(&jp[i], 1); - free(val); - return (ENOMEM); - } - free(val); - } - - jailparam_free(&jp[i], 1); - --jpused; + nvlist_remove_all(jailparams, name); return (0); } @@ -136,6 +80,7 @@ static bool jailparam_addarg(char *arg) { char *name, *val; + size_t i, len; if (arg == NULL) return (false); @@ -156,6 +101,15 @@ jailparam_addarg(char *arg) } strlcpy(mnt_loc, val, sizeof(mnt_loc)); } + + for (i = 0; disabled_params[i] != NULL; i++) { + len = strlen(disabled_params[i]); + if (strncmp(disabled_params[i], name, len) == 0) { + fprintf(stderr, "invalid jail parameter: %s\n", name); + return (false); + } + } + jailparam_add(name, val); return (true); } @@ -176,22 +130,128 @@ jailparam_delarg(char *arg) return (jailparam_del(name)); } +static int +build_jailcmd(char ***argvp, bool interactive, int argc, char *argv[]) +{ + char *cmd, **jargv, *name, *val; + nvpair_t *nvp; + size_t i, iarg, nargv; + + cmd = NULL; + nvp = NULL; + iarg = i = 0; + if (nvlist_size(jailparams, &nargv, NV_ENCODE_NATIVE) != 0) + return (1); + + /* + * Number of args + "/usr/sbin/jail", "-c", and ending NULL. + * If interactive also include command. + */ + nargv += 3; + if (interactive) { + if (argc == 0) + nargv++; + else + nargv += argc; + } + + jargv = *argvp = calloc(nargv, sizeof(jargv)); + if (jargv == NULL) + err(2, "calloc"); + + jargv[iarg++] = strdup("/usr/sbin/jail"); + jargv[iarg++] = strdup("-c"); + while ((nvp = nvlist_next_nvpair(jailparams, nvp)) != NULL) { + name = nvpair_name(nvp); + if (nvpair_value_string(nvp, &val) != 0) + continue; + + if (asprintf(&jargv[iarg++], "%s=%s", name, val) < 0) + goto error; + } + if (interactive) { + if (argc < 1) + cmd = strdup("/bin/sh"); + else { + cmd = argv[0]; + argc--; + argv++; + } + + if (asprintf(&jargv[iarg++], "command=%s", cmd) < 0) { + goto error; + } + if (argc < 1) { + free(cmd); + cmd = NULL; + } + + for (; argc > 0; argc--) { + if (asprintf(&jargv[iarg++], "%s", argv[0]) < 0) + goto error; + argv++; + } + } + + return (0); + +error: + if (interactive && argc < 1) + free(cmd); + for (; i < iarg - 1; i++) { + free(jargv[i]); + } + free(jargv); + return (1); +} + +/* Remove jail and cleanup any non zfs mounts. */ +static int +bectl_jail_cleanup(char *mountpoint, int jid) +{ + struct statfs *mntbuf; + size_t i, searchlen, mntsize; + + if (jid >= 0 && jail_remove(jid) != 0) { + fprintf(stderr, "unable to remove jail"); + return (1); + } + + searchlen = strnlen(mountpoint, MAXPATHLEN); + mntsize = getmntinfo(&mntbuf, MNT_NOWAIT); + for (i = 0; i < mntsize; i++) { + if (strncmp(mountpoint, mntbuf[i].f_mntonname, searchlen) == 0 && + mntbuf[i].f_type != MNTTYPE_ZFS) { + + if (unmount(mntbuf[i].f_mntonname, 0) != 0) { + fprintf(stderr, "bectl jail: unable to unmount filesystem %s", + mntbuf[i].f_mntonname); + return (1); + } + } + } + + return (0); +} + int bectl_cmd_jail(int argc, char *argv[]) { - char *bootenv, *mountpoint; - int jid, mntflags, opt, ret; + char *bootenv, **jargv, *mountpoint; + int i, jid, mntflags, opt, ret; bool default_hostname, interactive, unjail; pid_t pid; + /* XXX TODO: Allow shallow */ mntflags = BE_MNT_DEEP; default_hostname = interactive = unjail = true; - jpcnt = INIT_PARAMCOUNT; - jp = malloc(jpcnt * sizeof(*jp)); - if (jp == NULL) - err(2, "malloc"); + if ((nvlist_alloc(&jailparams, NV_UNIQUE_NAME, 0)) != 0) { + fprintf(stderr, "nvlist_alloc() failed\n"); + return (1); + } + jailparam_add("persist", "true"); jailparam_add("allow.mount", "true"); jailparam_add("allow.mount.devfs", "true"); @@ -210,6 +270,8 @@ bectl_cmd_jail(int argc, char *argv[]) */ if (strcmp(optarg, "host.hostname") == 0) default_hostname = false; + } else { + return (1); } break; case 'U': @@ -236,13 +298,14 @@ bectl_cmd_jail(int argc, char *argv[]) argc -= optind; argv += optind; - /* struct jail be_jail = { 0 }; */ if (argc < 1) { fprintf(stderr, "bectl jail: missing boot environment name\n"); return (usage(false)); } bootenv = argv[0]; + argc--; + argv++; /* * XXX TODO: if its already mounted, perhaps there should be a flag to @@ -264,45 +327,46 @@ bectl_cmd_jail(int argc, char *argv[]) * This is our indicator that path was not set by the user, so we'll use * the path that libbe generated for us. */ - if (mountpoint == NULL) + if (mountpoint == NULL) { jailparam_add("path", mnt_loc); - /* Create the jail for now, attach later as-needed */ - jid = jailparam_set(jp, jpused, JAIL_CREATE); - if (jid == -1) { - fprintf(stderr, "unable to create jail. error: %d\n", errno); + mountpoint = mnt_loc; + } + + if ((build_jailcmd(&jargv, interactive, argc, argv)) != 0) { + fprintf(stderr, "unable to build argument list for jail command\n"); return (1); } - jailparam_free(jp, jpused); - free(jp); - - /* We're not interactive, nothing more to do here. */ - if (!interactive) - return (0); - pid = fork(); - switch(pid) { + + switch (pid) { case -1: perror("fork"); return (1); case 0: - jail_attach(jid); - /* We're attached within the jail... good bye! */ - chdir("/"); - if (argc > 1) - execve(argv[1], &argv[1], NULL); - else - execl("/bin/sh", "/bin/sh", NULL); - fprintf(stderr, "bectl jail: failed to execute %s\n", - (argc > 1 ? argv[1] : "/bin/sh")); - _exit(1); + execv("/usr/sbin/jail", jargv); + fprintf(stderr, "bectl jail: failed to execute\n"); default: - /* Wait for the child to get back, see if we need to unjail */ waitpid(pid, NULL, 0); } + for (i = 0; jargv[i] != NULL; i++) { + free(jargv[i]); + } + free(jargv); + + if (!interactive) + return (0); + if (unjail) { - jail_remove(jid); + /* + * We're not checking the jail id result here because in the + * case of invalid param, or last command in jail was an error + * the jail will not exist upon exit. bectl_jail_cleanup will + * only jail_remove if the jid is >= 0. + */ + jid = bectl_locate_jail(bootenv); + bectl_jail_cleanup(mountpoint, jid); be_unmount(be, bootenv, 0); } @@ -319,7 +383,6 @@ bectl_search_jail_paths(const char *mnt) /* jail_getv expects name/value strings */ snprintf(lastjid, sizeof(lastjid), "%d", 0); - jid = 0; while ((jid = jail_getv(0, "lastjid", lastjid, "path", &jailpath, NULL)) != -1) { @@ -416,7 +479,7 @@ bectl_cmd_unjail(int argc, char *argv[]) return (1); } - jail_remove(jid); + bectl_jail_cleanup(path, jid); be_unmount(be, target, 0); return (0); Modified: stable/12/sbin/bectl/tests/bectl_test.sh ============================================================================== --- stable/12/sbin/bectl/tests/bectl_test.sh Mon Apr 8 17:36:24 2019 (r346033) +++ stable/12/sbin/bectl/tests/bectl_test.sh Mon Apr 8 17:41:39 2019 (r346034) @@ -123,12 +123,21 @@ bectl_destroy_body() zpool=$(make_zpool_name) disk=${cwd}/disk.img mount=${cwd}/mnt + root=${mount}/root bectl_create_setup ${zpool} ${disk} ${mount} atf_check bectl -r ${zpool}/ROOT create -e default default2 atf_check -o not-empty zfs get mountpoint ${zpool}/ROOT/default2 - atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check -e ignore bectl -r ${zpool}/ROOT destroy default2 atf_check -e not-empty -s not-exit:0 zfs get mountpoint ${zpool}/ROOT/default2 + + # Test origin snapshot deletion when the snapshot to be destroyed + # belongs to a mounted dataset, see PR 236043. + atf_check mkdir -p ${root} + atf_check -o not-empty bectl -r ${zpool}/ROOT mount default ${root} + atf_check bectl -r ${zpool}/ROOT create -e default default3 + atf_check bectl -r ${zpool}/ROOT destroy -o default3 + atf_check bectl -r ${zpool}/ROOT unmount default } bectl_destroy_cleanup() { @@ -154,7 +163,7 @@ bectl_export_import_body() atf_check -o save:exported bectl -r ${zpool}/ROOT export default atf_check -x "bectl -r ${zpool}/ROOT import default2 < exported" atf_check -o not-empty zfs get mountpoint ${zpool}/ROOT/default2 - atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check -e ignore bectl -r ${zpool}/ROOT destroy default2 atf_check -e not-empty -s not-exit:0 zfs get mountpoint \ ${zpool}/ROOT/default2 } @@ -188,7 +197,7 @@ bectl_list_body() atf_check bectl -r ${zpool}/ROOT create -e default default2 atf_check -o save:list.out bectl -r ${zpool}/ROOT list atf_check -o not-empty grep 'default2' list.out - atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check -e ignore bectl -r ${zpool}/ROOT destroy default2 atf_check -o save:list.out bectl -r ${zpool}/ROOT list atf_check -s not-exit:0 grep 'default2' list.out # XXX TODO: Formatting checks From owner-svn-src-stable@freebsd.org Mon Apr 8 17:55:05 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 951441563399; Mon, 8 Apr 2019 17:55:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 361E383B3B; Mon, 8 Apr 2019 17:55:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0C1A226D7F; Mon, 8 Apr 2019 17:55:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38Ht4lb037724; Mon, 8 Apr 2019 17:55:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38Ht4OZ037723; Mon, 8 Apr 2019 17:55:04 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081755.x38Ht4OZ037723@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 17:55:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346035 - in stable: 11/sys/dev/iwm 12/sys/dev/iwm X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/dev/iwm 12/sys/dev/iwm X-SVN-Commit-Revision: 346035 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 361E383B3B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 17:55:05 -0000 Author: kevans Date: Mon Apr 8 17:55:04 2019 New Revision: 346035 URL: https://svnweb.freebsd.org/changeset/base/346035 Log: MFC r343240: iwm(4): Fix possible null pointer indirection Modified: stable/12/sys/dev/iwm/if_iwm.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/iwm/if_iwm.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/iwm/if_iwm.c ============================================================================== --- stable/12/sys/dev/iwm/if_iwm.c Mon Apr 8 17:41:39 2019 (r346034) +++ stable/12/sys/dev/iwm/if_iwm.c Mon Apr 8 17:55:04 2019 (r346035) @@ -1033,7 +1033,8 @@ iwm_reset_rx_ring(struct iwm_softc *sc, struct iwm_rx_ * The hw rx ring index in shared memory must also be cleared, * otherwise the discrepancy can cause reprocessing chaos. */ - memset(sc->rxq.stat, 0, sizeof(*sc->rxq.stat)); + if (sc->rxq.stat) + memset(sc->rxq.stat, 0, sizeof(*sc->rxq.stat)); } static void From owner-svn-src-stable@freebsd.org Mon Apr 8 17:55:05 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D2A41563395; Mon, 8 Apr 2019 17:55:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F2A2883B3A; Mon, 8 Apr 2019 17:55:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B844826D7E; Mon, 8 Apr 2019 17:55:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38Ht4BM037718; Mon, 8 Apr 2019 17:55:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38Ht4BD037717; Mon, 8 Apr 2019 17:55:04 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081755.x38Ht4BD037717@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 17:55:04 +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: r346035 - in stable: 11/sys/dev/iwm 12/sys/dev/iwm X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/dev/iwm 12/sys/dev/iwm X-SVN-Commit-Revision: 346035 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: F2A2883B3A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 17:55:05 -0000 Author: kevans Date: Mon Apr 8 17:55:04 2019 New Revision: 346035 URL: https://svnweb.freebsd.org/changeset/base/346035 Log: MFC r343240: iwm(4): Fix possible null pointer indirection Modified: stable/11/sys/dev/iwm/if_iwm.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/iwm/if_iwm.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/iwm/if_iwm.c ============================================================================== --- stable/11/sys/dev/iwm/if_iwm.c Mon Apr 8 17:41:39 2019 (r346034) +++ stable/11/sys/dev/iwm/if_iwm.c Mon Apr 8 17:55:04 2019 (r346035) @@ -1032,7 +1032,8 @@ iwm_reset_rx_ring(struct iwm_softc *sc, struct iwm_rx_ * The hw rx ring index in shared memory must also be cleared, * otherwise the discrepancy can cause reprocessing chaos. */ - memset(sc->rxq.stat, 0, sizeof(*sc->rxq.stat)); + if (sc->rxq.stat) + memset(sc->rxq.stat, 0, sizeof(*sc->rxq.stat)); } static void From owner-svn-src-stable@freebsd.org Mon Apr 8 17:59:43 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB207156364D; Mon, 8 Apr 2019 17:59:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 619A883F2C; Mon, 8 Apr 2019 17:59:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3971026D81; Mon, 8 Apr 2019 17:59:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38Hxh9S037958; Mon, 8 Apr 2019 17:59:43 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38Hxguv037957; Mon, 8 Apr 2019 17:59:43 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081759.x38Hxguv037957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 17:59:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346036 - stable/12/sys/arm/allwinner X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/sys/arm/allwinner X-SVN-Commit-Revision: 346036 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 619A883F2C X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 17:59:43 -0000 Author: kevans Date: Mon Apr 8 17:59:42 2019 New Revision: 346036 URL: https://svnweb.freebsd.org/changeset/base/346036 Log: MFC r343255: awg: fix soft reset failure with no link U-Boot will leave the ephy reset de-asserted and the MAC soft reset will fail on these boards with internal PHY and no link established. Toggle reset again before proceeding to attach/init. Modified: stable/12/sys/arm/allwinner/if_awg.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm/allwinner/if_awg.c ============================================================================== --- stable/12/sys/arm/allwinner/if_awg.c Mon Apr 8 17:55:04 2019 (r346035) +++ stable/12/sys/arm/allwinner/if_awg.c Mon Apr 8 17:59:42 2019 (r346036) @@ -1466,6 +1466,12 @@ awg_setup_extres(device_t dev) goto fail; } if (rst_ephy != NULL) { + /* + * The ephy reset is left de-asserted by U-Boot. Assert it + * here to make sure that we're in a known good state going + * into the PHY reset. + */ + hwreset_assert(rst_ephy); error = hwreset_deassert(rst_ephy); if (error != 0) { device_printf(dev, "cannot de-assert ephy reset\n"); From owner-svn-src-stable@freebsd.org Mon Apr 8 18:15:12 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CFB72156421A; Mon, 8 Apr 2019 18:15:11 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 761BE84FF8; Mon, 8 Apr 2019 18:15:11 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4D67A270FF; Mon, 8 Apr 2019 18:15:11 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38IFBod049175; Mon, 8 Apr 2019 18:15:11 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38IFBVv049173; Mon, 8 Apr 2019 18:15:11 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081815.x38IFBVv049173@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 18:15:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346037 - stable/12/sys/dev/iwm X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/sys/dev/iwm X-SVN-Commit-Revision: 346037 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 761BE84FF8 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 18:15:12 -0000 Author: kevans Date: Mon Apr 8 18:15:10 2019 New Revision: 346037 URL: https://svnweb.freebsd.org/changeset/base/346037 Log: MFC r343065, r343373-r343390, r343477 r343065: With the sync from Dragonfly BSD in r318216 a bug slipped in (also still present upstream it seems). The tlv variable was changed to a pointer but the advancement of the data pointer was left as sizeof(tlv). While the sizeof the (now) pointer equals the sizeof 2 x uint32_t (size of the struct) on 64bit platforms, on 32bit platforms the size of the advancement of the data pointer was wrong leading to firmware load issues. Correctly advance the data pointer by the size of the structure and not by the size of a pointer. r343373: if_iwm - Update firmware rs table, instead of indexing the table in tx cmds. * Rather than providing a non-zero index into the firmware RS table, we should always use index 0 and update the firmware RS table whenever our chosen tx rate for data-frames changes. * Send IWM_LQ_CMD updates when the tx rate gets updated by the net80211 rate control (which is after we tell the tx status to the net80211 rate-control in iwm_mvm_rx_tx_cmd_single()). * Disregard frames transferred with a different tx rate than the currently selected rate for the rate-control calculations. This way we avoid counting management frames (which are sent at a slow, and fixed rate), as well as frames we added to the tx queue just before a new IWM_LQ_CMD update took effect. r343374: if_iwm - The iwm_prepare_card_hw() in iwm_attach() is only needed on 8K hw. * Doing the iwm_prepare_card_hw() call in iwm_attach() only on Family 8000 hardware matches the code in Linux iwlwifi. * While there remove DEFAULT_MAX_TX_POWER definition which is unused, and has a value different from IWL_DEFAULT_MAX_TX_POWER in iwlwifi. r343375: if_iwm - Move iwm_read_firmware() call into iwm_attach(). * We should load the firmware exactly once before the driver really initializes the hardware the first time, and unload it at detach time. There is no need to retrieve the firmware during execution of iwm_mvm_load_ucode_wait_alive(), we should make sure we already have the firmware data at hand before that. * The existing sc_preinit_hook code fails to deal with the case where if_iwm is loaded by the loader (or is statically linked) and the firmware needs to be loaded from disk. So we can just call iwm_read_firmware() from iwm_attach() directly. * A separate solution will have to be added to properly defer the firmware loading during bootup, until the necessary filesystem is mounted. r343376: if_iwm - Check sc->sc_attached flag in suspend/resume callbacks. * There is (almost) nothing to do in suspend/resume if if_iwm has failed during initialization (e.g. because of firmware load failure) and was already uninitialized by iwm_detach_local(). r343377: iwm - Reduce gratuitous differences with Linux iwlwifi in struct naming. * Rename some structs and struct members for firmware handling. r343378: if_iwm - Update struct iwm_scan_results_notif. Remove old/unused definitions * Remove outdated notifications IWM_SCAN_ABORT_CMD, IWM_SCAN_START_NOTIFICATION and IWM_SCAN_RESULTS_NOTIFICATION. * Remove unused enum iwm_scan_complete_status. * Use the updated FW Api version 3 of struct iwm_scan_results_notif. * No functional change, since struct iwm_scan_results_notif is never accessed in iwm at the moment. Taken-From: Linux iwlwifi commits 1083fd7391e989be52022f0f338e9dadc048b063 and 75118fdb63496e4611ab50380499ddd62b9de69f. r343379: if_iwm - Configure the PCIe LTR, fix PCI express capability accesses. Taken-From: Linux iwlwifi r343380: if_iwm - Add firmware API definitions for TX power commands. * While there remove unused IWM_UCODE_TLV_CAPA_LMAC_UPLOAD definition, which isn't defined in iwlwifi. Taken-From: Linux iwlwifi r343381: iwm - Track firmware state better, and improve handling in iwm_newstate(). * This avoids firmware resets in all the cases in iwm_newstate(). Instead iwm_bring_down_firmware() is called, which tears down all the STA connection state, according to the sc->sc_firmware_state value. * Improve the behaviour of the LED blinking a bit, so it only blinks when there really is a wireless scan going on. * Print the newstate arg in debug output of iwm_newstate(), to help in debugging. This is inspired by the firmware state maintaining change in OpenBSD's iwm, by stsp@openbsd.org (OpenBSD Git 0ddb056fb7370664b1d4b84392697cb17d1a414a). r343382: iwm - Avoid Tx watchdog timeout, when dropping a connection. r343383: iwm - Improve firmware Time Event handling. * This is a mix of the OpenBSD Git 7fd9664469d1b717a307eebd74aeececbd3c41cc change, and syncing with the Linux iwlwifi code. Taken-From: Linux iwlwifi, and OpenBSD r343384: iwm - Clear Time Event active state, when receiving End Notification. * This hopefully avoids some firmware panics, I was occasionally seeing, when iwm disconnects upon losing signal to an access point at some point. * This is synchronizing the if_iwm_time_event.c file a bit more from the corresponding Linux iwlwifi/mvm/time-event.c. Taken-From: Linux iwlwifi r343385: iwm - Always clear watchdog timer, when bringing down firmware state. r343386: if_iwm - Stop iwm_watchdog callout when idle. r343387: iwm - Fix race during detach, where a callout is left after driver is gone. r343388: iwm - Update alive response handling, add v4 and remove old versions. r343389: iwm - Remove unused REPLY_MAX Taken-From: Linux git e4eb275ac5cfe71686612d929a9829345b2a4ada r343390: iwm - Remove unused TX_CMD_NEXT_FRAME_* Taken-From: Linux git b1e06c65fb69c5e3fddcd91987561e225eaa9bfa r343477: Fix logic errors in iwm_pcie_load_firmware_chunk introduced in r314065. * There's no reason to have a while() loop here, because: - if msleep returns 0, that means we were woken up by the interrupt handler, and we are going to exit immediately as sc_fw_chunk_done will now be 1 (there is nothing else that sleeps on sc_fw.) - if msleep doesn't return 0 (i.e. it returned ETIMEDOUT) then we will exit immediately because of the if-test. So, just use a single msleep() and then check sc_fw_chunk_done as before. * The comment said we were sleeping for 5 seconds, but the msleep was only for 1. Before r314065, this was 1 second and so was the comment, and in that commit the comment was changed and the function call wasn't. Possibly fixes failures to initialize uCode on certain devices. PR: 219683 Modified: stable/12/sys/dev/iwm/if_iwm.c stable/12/sys/dev/iwm/if_iwm_config.h stable/12/sys/dev/iwm/if_iwm_debug.h stable/12/sys/dev/iwm/if_iwm_fw.c stable/12/sys/dev/iwm/if_iwm_fw.h stable/12/sys/dev/iwm/if_iwm_led.c stable/12/sys/dev/iwm/if_iwm_mac_ctxt.c stable/12/sys/dev/iwm/if_iwm_pcie_trans.c stable/12/sys/dev/iwm/if_iwm_phy_db.c stable/12/sys/dev/iwm/if_iwm_scan.c stable/12/sys/dev/iwm/if_iwm_sta.c stable/12/sys/dev/iwm/if_iwm_time_event.c stable/12/sys/dev/iwm/if_iwm_time_event.h stable/12/sys/dev/iwm/if_iwmreg.h stable/12/sys/dev/iwm/if_iwmvar.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/iwm/if_iwm.c ============================================================================== --- stable/12/sys/dev/iwm/if_iwm.c Mon Apr 8 17:59:42 2019 (r346036) +++ stable/12/sys/dev/iwm/if_iwm.c Mon Apr 8 18:15:10 2019 (r346037) @@ -245,7 +245,7 @@ static int iwm_firmware_store_section(struct iwm_softc const uint8_t *, size_t); static int iwm_set_default_calib(struct iwm_softc *, const void *); static void iwm_fw_info_free(struct iwm_fw_info *); -static int iwm_read_firmware(struct iwm_softc *, enum iwm_ucode_type); +static int iwm_read_firmware(struct iwm_softc *); static int iwm_alloc_fwmem(struct iwm_softc *); static int iwm_alloc_sched(struct iwm_softc *); static int iwm_alloc_kw(struct iwm_softc *); @@ -305,21 +305,22 @@ static int iwm_pcie_load_section(struct iwm_softc *, u static int iwm_pcie_load_firmware_chunk(struct iwm_softc *, uint32_t, bus_addr_t, uint32_t); static int iwm_pcie_load_cpu_sections_8000(struct iwm_softc *sc, - const struct iwm_fw_sects *, + const struct iwm_fw_img *, int, int *); static int iwm_pcie_load_cpu_sections(struct iwm_softc *, - const struct iwm_fw_sects *, + const struct iwm_fw_img *, int, int *); static int iwm_pcie_load_given_ucode_8000(struct iwm_softc *, - const struct iwm_fw_sects *); + const struct iwm_fw_img *); static int iwm_pcie_load_given_ucode(struct iwm_softc *, - const struct iwm_fw_sects *); -static int iwm_start_fw(struct iwm_softc *, const struct iwm_fw_sects *); + const struct iwm_fw_img *); +static int iwm_start_fw(struct iwm_softc *, const struct iwm_fw_img *); static int iwm_send_tx_ant_cfg(struct iwm_softc *, uint8_t); static int iwm_send_phy_cfg_cmd(struct iwm_softc *); static int iwm_mvm_load_ucode_wait_alive(struct iwm_softc *, enum iwm_ucode_type); static int iwm_run_init_mvm_ucode(struct iwm_softc *, int); +static int iwm_mvm_config_ltr(struct iwm_softc *sc); static int iwm_rx_addbuf(struct iwm_softc *, int, int); static int iwm_mvm_get_signal_strength(struct iwm_softc *, struct iwm_rx_phy_info *); @@ -349,11 +350,12 @@ static int iwm_raw_xmit(struct ieee80211_node *, struc const struct ieee80211_bpf_params *); static int iwm_mvm_update_quotas(struct iwm_softc *, struct iwm_vap *); static int iwm_auth(struct ieee80211vap *, struct iwm_softc *); -static int iwm_release(struct iwm_softc *, struct iwm_node *); static struct ieee80211_node * iwm_node_alloc(struct ieee80211vap *, const uint8_t[IEEE80211_ADDR_LEN]); -static void iwm_setrates(struct iwm_softc *, struct iwm_node *); +static uint8_t iwm_rate_from_ucode_rate(uint32_t); +static int iwm_rate2ridx(struct iwm_softc *, uint8_t); +static void iwm_setrates(struct iwm_softc *, struct iwm_node *, int); static int iwm_media_change(struct ifnet *); static int iwm_newstate(struct ieee80211vap *, enum ieee80211_state, int); static void iwm_endscan_cb(void *, int); @@ -424,7 +426,7 @@ static int iwm_firmware_store_section(struct iwm_softc *sc, enum iwm_ucode_type type, const uint8_t *data, size_t dlen) { - struct iwm_fw_sects *fws; + struct iwm_fw_img *fws; struct iwm_fw_desc *fwone; if (type >= IWM_UCODE_TYPE_MAX) @@ -432,11 +434,11 @@ iwm_firmware_store_section(struct iwm_softc *sc, if (dlen < sizeof(uint32_t)) return EINVAL; - fws = &sc->sc_fw.fw_sects[type]; + fws = &sc->sc_fw.img[type]; if (fws->fw_count >= IWM_UCODE_SECTION_MAX) return EINVAL; - fwone = &fws->fw_sect[fws->fw_count]; + fwone = &fws->sec[fws->fw_count]; /* first 32bit are device load offset */ memcpy(&fwone->offset, data, sizeof(uint32_t)); @@ -534,17 +536,16 @@ iwm_fw_info_free(struct iwm_fw_info *fw) { firmware_put(fw->fw_fp, FIRMWARE_UNLOAD); fw->fw_fp = NULL; - /* don't touch fw->fw_status */ - memset(fw->fw_sects, 0, sizeof(fw->fw_sects)); + memset(fw->img, 0, sizeof(fw->img)); } static int -iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode_type ucode_type) +iwm_read_firmware(struct iwm_softc *sc) { struct iwm_fw_info *fw = &sc->sc_fw; const struct iwm_tlv_ucode_header *uhdr; const struct iwm_ucode_tlv *tlv; - struct iwm_ucode_capabilities *capa = &sc->ucode_capa; + struct iwm_ucode_capabilities *capa = &sc->sc_fw.ucode_capa; enum iwm_ucode_tlv_type tlv_type; const struct firmware *fwp; const uint8_t *data; @@ -556,24 +557,11 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode int error = 0; size_t len; - if (fw->fw_status == IWM_FW_STATUS_DONE && - ucode_type != IWM_UCODE_INIT) - return 0; - - while (fw->fw_status == IWM_FW_STATUS_INPROGRESS) - msleep(&sc->sc_fw, &sc->sc_mtx, 0, "iwmfwp", 0); - fw->fw_status = IWM_FW_STATUS_INPROGRESS; - - if (fw->fw_fp != NULL) - iwm_fw_info_free(fw); - /* * Load firmware into driver memory. * fw_fp will be set. */ - IWM_UNLOCK(sc); fwp = firmware_get(sc->cfg->fw_name); - IWM_LOCK(sc); if (fwp == NULL) { device_printf(sc->sc_dev, "could not read firmware %s (error %d)\n", @@ -626,15 +614,14 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode goto parse_out; } len -= roundup2(tlv_len, 4); - data += sizeof(tlv) + roundup2(tlv_len, 4); + data += sizeof(*tlv) + roundup2(tlv_len, 4); switch ((int)tlv_type) { case IWM_UCODE_TLV_PROBE_MAX_LEN: if (tlv_len != sizeof(uint32_t)) { device_printf(sc->sc_dev, - "%s: PROBE_MAX_LEN (%d) != sizeof(uint32_t)\n", - __func__, - (int) tlv_len); + "%s: PROBE_MAX_LEN (%u) != sizeof(uint32_t)\n", + __func__, tlv_len); error = EINVAL; goto parse_out; } @@ -653,9 +640,8 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode case IWM_UCODE_TLV_PAN: if (tlv_len) { device_printf(sc->sc_dev, - "%s: IWM_UCODE_TLV_PAN: tlv_len (%d) > 0\n", - __func__, - (int) tlv_len); + "%s: IWM_UCODE_TLV_PAN: tlv_len (%u) > 0\n", + __func__, tlv_len); error = EINVAL; goto parse_out; } @@ -664,17 +650,15 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode case IWM_UCODE_TLV_FLAGS: if (tlv_len < sizeof(uint32_t)) { device_printf(sc->sc_dev, - "%s: IWM_UCODE_TLV_FLAGS: tlv_len (%d) < sizeof(uint32_t)\n", - __func__, - (int) tlv_len); + "%s: IWM_UCODE_TLV_FLAGS: tlv_len (%u) < sizeof(uint32_t)\n", + __func__, tlv_len); error = EINVAL; goto parse_out; } if (tlv_len % sizeof(uint32_t)) { device_printf(sc->sc_dev, - "%s: IWM_UCODE_TLV_FLAGS: tlv_len (%d) %% sizeof(uint32_t)\n", - __func__, - (int) tlv_len); + "%s: IWM_UCODE_TLV_FLAGS: tlv_len (%u) %% sizeof(uint32_t)\n", + __func__, tlv_len); error = EINVAL; goto parse_out; } @@ -696,27 +680,25 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode tlv_data, tlv_len)) != 0) { device_printf(sc->sc_dev, "%s: iwm_store_cscheme(): returned %d\n", - __func__, - error); + __func__, error); goto parse_out; } break; case IWM_UCODE_TLV_NUM_OF_CPU: if (tlv_len != sizeof(uint32_t)) { device_printf(sc->sc_dev, - "%s: IWM_UCODE_TLV_NUM_OF_CPU: tlv_len (%d) != sizeof(uint32_t)\n", - __func__, - (int) tlv_len); + "%s: IWM_UCODE_TLV_NUM_OF_CPU: tlv_len (%u) != sizeof(uint32_t)\n", + __func__, tlv_len); error = EINVAL; goto parse_out; } num_of_cpus = le32_to_cpup((const uint32_t *)tlv_data); if (num_of_cpus == 2) { - fw->fw_sects[IWM_UCODE_REGULAR].is_dual_cpus = + fw->img[IWM_UCODE_REGULAR].is_dual_cpus = TRUE; - fw->fw_sects[IWM_UCODE_INIT].is_dual_cpus = + fw->img[IWM_UCODE_INIT].is_dual_cpus = TRUE; - fw->fw_sects[IWM_UCODE_WOWLAN].is_dual_cpus = + fw->img[IWM_UCODE_WOWLAN].is_dual_cpus = TRUE; } else if ((num_of_cpus > 2) || (num_of_cpus < 1)) { device_printf(sc->sc_dev, @@ -731,8 +713,7 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode IWM_UCODE_REGULAR, tlv_data, tlv_len)) != 0) { device_printf(sc->sc_dev, "%s: IWM_UCODE_REGULAR: iwm_firmware_store_section() failed; %d\n", - __func__, - error); + __func__, error); goto parse_out; } break; @@ -741,8 +722,7 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode IWM_UCODE_INIT, tlv_data, tlv_len)) != 0) { device_printf(sc->sc_dev, "%s: IWM_UCODE_INIT: iwm_firmware_store_section() failed; %d\n", - __func__, - error); + __func__, error); goto parse_out; } break; @@ -751,26 +731,23 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode IWM_UCODE_WOWLAN, tlv_data, tlv_len)) != 0) { device_printf(sc->sc_dev, "%s: IWM_UCODE_WOWLAN: iwm_firmware_store_section() failed; %d\n", - __func__, - error); + __func__, error); goto parse_out; } break; case IWM_UCODE_TLV_DEF_CALIB: if (tlv_len != sizeof(struct iwm_tlv_calib_data)) { device_printf(sc->sc_dev, - "%s: IWM_UCODE_TLV_DEV_CALIB: tlv_len (%d) < sizeof(iwm_tlv_calib_data) (%d)\n", - __func__, - (int) tlv_len, - (int) sizeof(struct iwm_tlv_calib_data)); + "%s: IWM_UCODE_TLV_DEV_CALIB: tlv_len (%u) < sizeof(iwm_tlv_calib_data) (%zu)\n", + __func__, tlv_len, + sizeof(struct iwm_tlv_calib_data)); error = EINVAL; goto parse_out; } if ((error = iwm_set_default_calib(sc, tlv_data)) != 0) { device_printf(sc->sc_dev, "%s: iwm_set_default_calib() failed: %d\n", - __func__, - error); + __func__, error); goto parse_out; } break; @@ -778,9 +755,8 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode if (tlv_len != sizeof(uint32_t)) { error = EINVAL; device_printf(sc->sc_dev, - "%s: IWM_UCODE_TLV_PHY_SKU: tlv_len (%d) < sizeof(uint32_t)\n", - __func__, - (int) tlv_len); + "%s: IWM_UCODE_TLV_PHY_SKU: tlv_len (%u) < sizeof(uint32_t)\n", + __func__, tlv_len); goto parse_out; } sc->sc_fw.phy_config = @@ -855,10 +831,10 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode goto out; } - sc->sc_fw.fw_sects[IWM_UCODE_REGULAR].paging_mem_size = + sc->sc_fw.img[IWM_UCODE_REGULAR].paging_mem_size = paging_mem_size; usniffer_img = IWM_UCODE_REGULAR_USNIFFER; - sc->sc_fw.fw_sects[usniffer_img].paging_mem_size = + sc->sc_fw.img[usniffer_img].paging_mem_size = paging_mem_size; break; @@ -905,12 +881,9 @@ iwm_read_firmware(struct iwm_softc *sc, enum iwm_ucode out: if (error) { - fw->fw_status = IWM_FW_STATUS_NONE; if (fw->fw_fp != NULL) iwm_fw_info_free(fw); - } else - fw->fw_status = IWM_FW_STATUS_DONE; - wakeup(&sc->sc_fw); + } return error; } @@ -1289,6 +1262,8 @@ iwm_stop_device(struct iwm_softc *sc) iv->phy_ctxt = NULL; iv->is_uploaded = 0; } + sc->sc_firmware_state = 0; + sc->sc_flags &= ~IWM_FLAG_TE_ACTIVE; /* device going down, Stop using ICT table */ sc->sc_flags &= ~IWM_FLAG_USE_ICT; @@ -1910,8 +1885,6 @@ enum nvm_sku_bits { #define IWM_NVM_RF_CFG_TX_ANT_MSK_8000(x) ((x >> 24) & 0xF) #define IWM_NVM_RF_CFG_RX_ANT_MSK_8000(x) ((x >> 28) & 0xF) -#define DEFAULT_MAX_TX_POWER 16 - /** * enum iwm_nvm_channel_flags - channel flags in NVM * @IWM_NVM_CHANNEL_VALID: channel is usable for this SKU/geo @@ -2426,8 +2399,6 @@ static int iwm_pcie_load_firmware_chunk(struct iwm_softc *sc, uint32_t dst_addr, bus_addr_t phy_addr, uint32_t byte_cnt) { - int ret; - sc->sc_fw_chunk_done = 0; if (!iwm_nic_lock(sc)) @@ -2459,14 +2430,9 @@ iwm_pcie_load_firmware_chunk(struct iwm_softc *sc, uin iwm_nic_unlock(sc); /* wait up to 5s for this segment to load */ - ret = 0; - while (!sc->sc_fw_chunk_done) { - ret = msleep(&sc->sc_fw, &sc->sc_mtx, 0, "iwmfw", hz); - if (ret) - break; - } + msleep(&sc->sc_fw, &sc->sc_mtx, 0, "iwmfw", hz * 5); - if (ret != 0) { + if (!sc->sc_fw_chunk_done) { device_printf(sc->sc_dev, "fw chunk addr 0x%x len %d failed to load\n", dst_addr, byte_cnt); @@ -2478,7 +2444,7 @@ iwm_pcie_load_firmware_chunk(struct iwm_softc *sc, uin static int iwm_pcie_load_cpu_sections_8000(struct iwm_softc *sc, - const struct iwm_fw_sects *image, int cpu, int *first_ucode_section) + const struct iwm_fw_img *image, int cpu, int *first_ucode_section) { int shift_param; int i, ret = 0, sec_num = 0x1; @@ -2501,15 +2467,15 @@ iwm_pcie_load_cpu_sections_8000(struct iwm_softc *sc, * PAGING_SEPARATOR_SECTION delimiter - separate between * CPU2 non paged to CPU2 paging sec. */ - if (!image->fw_sect[i].data || - image->fw_sect[i].offset == IWM_CPU1_CPU2_SEPARATOR_SECTION || - image->fw_sect[i].offset == IWM_PAGING_SEPARATOR_SECTION) { + if (!image->sec[i].data || + image->sec[i].offset == IWM_CPU1_CPU2_SEPARATOR_SECTION || + image->sec[i].offset == IWM_PAGING_SEPARATOR_SECTION) { IWM_DPRINTF(sc, IWM_DEBUG_RESET, "Break since Data not valid or Empty section, sec = %d\n", i); break; } - ret = iwm_pcie_load_section(sc, i, &image->fw_sect[i]); + ret = iwm_pcie_load_section(sc, i, &image->sec[i]); if (ret) return ret; @@ -2540,7 +2506,7 @@ iwm_pcie_load_cpu_sections_8000(struct iwm_softc *sc, static int iwm_pcie_load_cpu_sections(struct iwm_softc *sc, - const struct iwm_fw_sects *image, int cpu, int *first_ucode_section) + const struct iwm_fw_img *image, int cpu, int *first_ucode_section) { int shift_param; int i, ret = 0; @@ -2563,16 +2529,16 @@ iwm_pcie_load_cpu_sections(struct iwm_softc *sc, * PAGING_SEPARATOR_SECTION delimiter - separate between * CPU2 non paged to CPU2 paging sec. */ - if (!image->fw_sect[i].data || - image->fw_sect[i].offset == IWM_CPU1_CPU2_SEPARATOR_SECTION || - image->fw_sect[i].offset == IWM_PAGING_SEPARATOR_SECTION) { + if (!image->sec[i].data || + image->sec[i].offset == IWM_CPU1_CPU2_SEPARATOR_SECTION || + image->sec[i].offset == IWM_PAGING_SEPARATOR_SECTION) { IWM_DPRINTF(sc, IWM_DEBUG_RESET, "Break since Data not valid or Empty section, sec = %d\n", i); break; } - ret = iwm_pcie_load_section(sc, i, &image->fw_sect[i]); + ret = iwm_pcie_load_section(sc, i, &image->sec[i]); if (ret) return ret; } @@ -2584,8 +2550,7 @@ iwm_pcie_load_cpu_sections(struct iwm_softc *sc, } static int -iwm_pcie_load_given_ucode(struct iwm_softc *sc, - const struct iwm_fw_sects *image) +iwm_pcie_load_given_ucode(struct iwm_softc *sc, const struct iwm_fw_img *image) { int ret = 0; int first_ucode_section; @@ -2624,7 +2589,7 @@ iwm_pcie_load_given_ucode(struct iwm_softc *sc, int iwm_pcie_load_given_ucode_8000(struct iwm_softc *sc, - const struct iwm_fw_sects *image) + const struct iwm_fw_img *image) { int ret = 0; int first_ucode_section; @@ -2662,8 +2627,7 @@ iwm_enable_fw_load_int(struct iwm_softc *sc) /* XXX Add proper rfkill support code */ static int -iwm_start_fw(struct iwm_softc *sc, - const struct iwm_fw_sects *fw) +iwm_start_fw(struct iwm_softc *sc, const struct iwm_fw_img *fw) { int ret; @@ -2754,75 +2718,48 @@ static int iwm_alive_fn(struct iwm_softc *sc, struct iwm_rx_packet *pkt, void *data) { struct iwm_mvm_alive_data *alive_data = data; - struct iwm_mvm_alive_resp_ver1 *palive1; - struct iwm_mvm_alive_resp_ver2 *palive2; + struct iwm_mvm_alive_resp_v3 *palive3; struct iwm_mvm_alive_resp *palive; + struct iwm_umac_alive *umac; + struct iwm_lmac_alive *lmac1; + struct iwm_lmac_alive *lmac2 = NULL; + uint16_t status; - if (iwm_rx_packet_payload_len(pkt) == sizeof(*palive1)) { - palive1 = (void *)pkt->data; - - sc->support_umac_log = FALSE; - sc->error_event_table = - le32toh(palive1->error_event_table_ptr); - sc->log_event_table = - le32toh(palive1->log_event_table_ptr); - alive_data->scd_base_addr = le32toh(palive1->scd_base_ptr); - - alive_data->valid = le16toh(palive1->status) == - IWM_ALIVE_STATUS_OK; - IWM_DPRINTF(sc, IWM_DEBUG_RESET, - "Alive VER1 ucode status 0x%04x revision 0x%01X 0x%01X flags 0x%01X\n", - le16toh(palive1->status), palive1->ver_type, - palive1->ver_subtype, palive1->flags); - } else if (iwm_rx_packet_payload_len(pkt) == sizeof(*palive2)) { - palive2 = (void *)pkt->data; - sc->error_event_table = - le32toh(palive2->error_event_table_ptr); - sc->log_event_table = - le32toh(palive2->log_event_table_ptr); - alive_data->scd_base_addr = le32toh(palive2->scd_base_ptr); - sc->umac_error_event_table = - le32toh(palive2->error_info_addr); - - alive_data->valid = le16toh(palive2->status) == - IWM_ALIVE_STATUS_OK; - if (sc->umac_error_event_table) - sc->support_umac_log = TRUE; - - IWM_DPRINTF(sc, IWM_DEBUG_RESET, - "Alive VER2 ucode status 0x%04x revision 0x%01X 0x%01X flags 0x%01X\n", - le16toh(palive2->status), palive2->ver_type, - palive2->ver_subtype, palive2->flags); - - IWM_DPRINTF(sc, IWM_DEBUG_RESET, - "UMAC version: Major - 0x%x, Minor - 0x%x\n", - palive2->umac_major, palive2->umac_minor); - } else if (iwm_rx_packet_payload_len(pkt) == sizeof(*palive)) { + if (iwm_rx_packet_payload_len(pkt) == sizeof(*palive)) { palive = (void *)pkt->data; + umac = &palive->umac_data; + lmac1 = &palive->lmac_data[0]; + lmac2 = &palive->lmac_data[1]; + status = le16toh(palive->status); + } else { + palive3 = (void *)pkt->data; + umac = &palive3->umac_data; + lmac1 = &palive3->lmac_data; + status = le16toh(palive3->status); + } - sc->error_event_table = - le32toh(palive->error_event_table_ptr); - sc->log_event_table = - le32toh(palive->log_event_table_ptr); - alive_data->scd_base_addr = le32toh(palive->scd_base_ptr); - sc->umac_error_event_table = - le32toh(palive->error_info_addr); + sc->error_event_table[0] = le32toh(lmac1->error_event_table_ptr); + if (lmac2) + sc->error_event_table[1] = + le32toh(lmac2->error_event_table_ptr); + sc->log_event_table = le32toh(lmac1->log_event_table_ptr); + sc->umac_error_event_table = le32toh(umac->error_info_addr); + alive_data->scd_base_addr = le32toh(lmac1->scd_base_ptr); + alive_data->valid = status == IWM_ALIVE_STATUS_OK; + if (sc->umac_error_event_table) + sc->support_umac_log = TRUE; - alive_data->valid = le16toh(palive->status) == - IWM_ALIVE_STATUS_OK; - if (sc->umac_error_event_table) - sc->support_umac_log = TRUE; + IWM_DPRINTF(sc, IWM_DEBUG_FW, + "Alive ucode status 0x%04x revision 0x%01X 0x%01X\n", + status, lmac1->ver_type, lmac1->ver_subtype); - IWM_DPRINTF(sc, IWM_DEBUG_RESET, - "Alive VER3 ucode status 0x%04x revision 0x%01X 0x%01X flags 0x%01X\n", - le16toh(palive->status), palive->ver_type, - palive->ver_subtype, palive->flags); + if (lmac2) + IWM_DPRINTF(sc, IWM_DEBUG_FW, "Alive ucode CDB\n"); - IWM_DPRINTF(sc, IWM_DEBUG_RESET, - "UMAC version: Major - 0x%x, Minor - 0x%x\n", - le32toh(palive->umac_major), - le32toh(palive->umac_minor)); - } + IWM_DPRINTF(sc, IWM_DEBUG_FW, + "UMAC version: Major - 0x%x, Minor - 0x%x\n", + le32toh(umac->umac_major), + le32toh(umac->umac_minor)); return TRUE; } @@ -2855,17 +2792,12 @@ iwm_mvm_load_ucode_wait_alive(struct iwm_softc *sc, { struct iwm_notification_wait alive_wait; struct iwm_mvm_alive_data alive_data; - const struct iwm_fw_sects *fw; + const struct iwm_fw_img *fw; enum iwm_ucode_type old_type = sc->cur_ucode; int error; static const uint16_t alive_cmd[] = { IWM_MVM_ALIVE }; - if ((error = iwm_read_firmware(sc, ucode_type)) != 0) { - device_printf(sc->sc_dev, "iwm_read_firmware: failed %d\n", - error); - return error; - } - fw = &sc->sc_fw.fw_sects[ucode_type]; + fw = &sc->sc_fw.img[ucode_type]; sc->cur_ucode = ucode_type; sc->ucode_loaded = FALSE; @@ -3038,6 +2970,19 @@ out: return ret; } +static int +iwm_mvm_config_ltr(struct iwm_softc *sc) +{ + struct iwm_ltr_config_cmd cmd = { + .flags = htole32(IWM_LTR_CFG_FLAG_FEATURE_ENABLE), + }; + + if (!sc->sc_ltr_enabled) + return 0; + + return iwm_mvm_send_cmd_pdu(sc, IWM_LTR_CONFIG, 0, sizeof(cmd), &cmd); +} + /* * receive side */ @@ -3319,7 +3264,11 @@ iwm_mvm_rx_tx_cmd_single(struct iwm_softc *sc, struct struct iwm_mvm_tx_resp *tx_resp = (void *)pkt->data; struct ieee80211_ratectl_tx_status *txs = &sc->sc_txs; struct ieee80211_node *ni = &in->in_ni; + struct ieee80211vap *vap = ni->ni_vap; int status = le16toh(tx_resp->status.status) & IWM_TX_STATUS_MSK; + int new_rate, cur_rate = vap->iv_bss->ni_txrate; + boolean_t rate_matched; + uint8_t tx_resp_rate; KASSERT(tx_resp->frame_count == 1, ("too many frames")); @@ -3335,6 +3284,17 @@ iwm_mvm_rx_tx_cmd_single(struct iwm_softc *sc, struct le32toh(tx_resp->initial_rate), (int) le16toh(tx_resp->wireless_media_time)); + tx_resp_rate = iwm_rate_from_ucode_rate(le32toh(tx_resp->initial_rate)); + + /* For rate control, ignore frames sent at different initial rate */ + rate_matched = (tx_resp_rate != 0 && tx_resp_rate == cur_rate); + + if (tx_resp_rate != 0 && cur_rate != 0 && !rate_matched) { + IWM_DPRINTF(sc, IWM_DEBUG_TXRATE, + "tx_resp_rate doesn't match ni_txrate (tx_resp_rate=%u " + "ni_txrate=%d)\n", tx_resp_rate, cur_rate); + } + txs->flags = IEEE80211_RATECTL_STATUS_SHORT_RETRY | IEEE80211_RATECTL_STATUS_LONG_RETRY; txs->short_retries = tx_resp->failure_rts; @@ -3358,8 +3318,19 @@ iwm_mvm_rx_tx_cmd_single(struct iwm_softc *sc, struct } else { txs->status = IEEE80211_RATECTL_TX_SUCCESS; } - ieee80211_ratectl_tx_complete(ni, txs); + if (rate_matched) { + ieee80211_ratectl_tx_complete(ni, txs); + + int rix = ieee80211_ratectl_rate(vap->iv_bss, NULL, 0); + new_rate = vap->iv_bss->ni_txrate; + if (new_rate != 0 && new_rate != cur_rate) { + struct iwm_node *in = IWM_NODE(vap->iv_bss); + iwm_setrates(sc, in, rix); + iwm_mvm_send_lq_cmd(sc, &in->in_lq, FALSE); + } + } + return (txs->status != IEEE80211_RATECTL_TX_SUCCESS); } @@ -3484,38 +3455,7 @@ iwm_update_sched(struct iwm_softc *sc, int qid, int id } #endif -/* - * Take an 802.11 (non-n) rate, find the relevant rate - * table entry. return the index into in_ridx[]. - * - * The caller then uses that index back into in_ridx - * to figure out the rate index programmed /into/ - * the firmware for this given node. - */ static int -iwm_tx_rateidx_lookup(struct iwm_softc *sc, struct iwm_node *in, - uint8_t rate) -{ - int i; - uint8_t r; - - for (i = 0; i < nitems(in->in_ridx); i++) { - r = iwm_rates[in->in_ridx[i]].rate; - if (rate == r) - return (i); - } - - IWM_DPRINTF(sc, IWM_DEBUG_XMIT | IWM_DEBUG_TXRATE, - "%s: couldn't find an entry for rate=%d\n", - __func__, - rate); - - /* XXX Return the first */ - /* XXX TODO: have it return the /lowest/ */ - return (0); -} - -static int iwm_tx_rateidx_global_lookup(struct iwm_softc *sc, uint8_t rate) { int i; @@ -3567,22 +3507,15 @@ iwm_tx_fill_cmd(struct iwm_softc *sc, struct iwm_node IWM_DPRINTF(sc, IWM_DEBUG_TXRATE, "%s: FIXED_RATE (%d)\n", __func__, tp->ucastrate); } else { - int i; - /* for data frames, use RS table */ IWM_DPRINTF(sc, IWM_DEBUG_TXRATE, "%s: DATA\n", __func__); - /* XXX pass pktlen */ - (void) ieee80211_ratectl_rate(ni, NULL, 0); - i = iwm_tx_rateidx_lookup(sc, in, ni->ni_txrate); - ridx = in->in_ridx[i]; + ridx = iwm_rate2ridx(sc, ni->ni_txrate); + if (ridx == -1) + ridx = 0; /* This is the index into the programmed table */ - tx->initial_rate_index = i; + tx->initial_rate_index = 0; tx->tx_flags |= htole32(IWM_TX_CMD_FLG_STA_RATE); - - IWM_DPRINTF(sc, IWM_DEBUG_XMIT | IWM_DEBUG_TXRATE, - "%s: start with i=%d, txrate %d\n", - __func__, i, iwm_rates[ridx].rate); } IWM_DPRINTF(sc, IWM_DEBUG_XMIT | IWM_DEBUG_TXRATE, @@ -3849,6 +3782,8 @@ iwm_raw_xmit(struct ieee80211_node *ni, struct mbuf *m } else { error = iwm_tx(sc, m, ni, 0); } + if (sc->sc_tx_timer == 0) + callout_reset(&sc->sc_watchdog_to, hz, iwm_watchdog, sc); sc->sc_tx_timer = 5; IWM_UNLOCK(sc); @@ -3987,8 +3922,11 @@ iwm_auth(struct ieee80211vap *vap, struct iwm_softc *s __func__, vap, ni); + IWM_DPRINTF(sc, IWM_DEBUG_STATE, "%s: Current node bssid: %s\n", + __func__, ether_sprintf(ni->ni_bssid)); in->in_assoc = 0; + iv->iv_auth = 1; /* * Firmware bug - it'll crash if the beacon interval is less @@ -4040,6 +3978,7 @@ iwm_auth(struct ieee80211vap *vap, struct iwm_softc *s goto out; } } + sc->sc_firmware_state = 1; if ((error = iwm_mvm_phy_ctxt_changed(sc, &sc->sc_phyctxt[0], in->in_ni.ni_chan, 1, 1)) != 0) { @@ -4054,6 +3993,7 @@ iwm_auth(struct ieee80211vap *vap, struct iwm_softc *s "%s: binding update cmd\n", __func__); goto out; } + sc->sc_firmware_state = 2; /* * Authentication becomes unreliable when powersaving is left enabled * here. Powersaving will be activated again when association has @@ -4073,6 +4013,7 @@ iwm_auth(struct ieee80211vap *vap, struct iwm_softc *s "%s: failed to add sta\n", __func__); goto out; } + sc->sc_firmware_state = 3; /* * Prevent the FW from wandering off channel during association @@ -4080,86 +4021,16 @@ iwm_auth(struct ieee80211vap *vap, struct iwm_softc *s */ /* XXX duration is in units of TU, not MS */ duration = IWM_MVM_TE_SESSION_PROTECTION_MAX_TIME_MS; - iwm_mvm_protect_session(sc, iv, duration, 500 /* XXX magic number */); - DELAY(100); + iwm_mvm_protect_session(sc, iv, duration, 500 /* XXX magic number */, TRUE); error = 0; out: + if (error != 0) + iv->iv_auth = 0; ieee80211_free_node(ni); return (error); } -static int -iwm_release(struct iwm_softc *sc, struct iwm_node *in) -{ - uint32_t tfd_msk; - - /* - * Ok, so *technically* the proper set of calls for going - * from RUN back to SCAN is: - * - * iwm_mvm_power_mac_disable(sc, in); - * iwm_mvm_mac_ctxt_changed(sc, vap); - * iwm_mvm_rm_sta(sc, in); - * iwm_mvm_update_quotas(sc, NULL); - * iwm_mvm_mac_ctxt_changed(sc, in); - * iwm_mvm_binding_remove_vif(sc, IWM_VAP(in->in_ni.ni_vap)); - * iwm_mvm_mac_ctxt_remove(sc, in); - * - * However, that freezes the device not matter which permutations - * and modifications are attempted. Obviously, this driver is missing - * something since it works in the Linux driver, but figuring out what - * is missing is a little more complicated. Now, since we're going - * back to nothing anyway, we'll just do a complete device reset. - * Up your's, device! - */ - /* - * Just using 0xf for the queues mask is fine as long as we only - * get here from RUN state. - */ - tfd_msk = 0xf; - iwm_xmit_queue_drain(sc); - iwm_mvm_flush_tx_path(sc, tfd_msk, IWM_CMD_SYNC); - /* - * We seem to get away with just synchronously sending the - * IWM_TXPATH_FLUSH command. - */ -// iwm_trans_wait_tx_queue_empty(sc, tfd_msk); - iwm_stop_device(sc); - iwm_init_hw(sc); - if (in) - in->in_assoc = 0; - return 0; - -#if 0 - int error; - - iwm_mvm_power_mac_disable(sc, in); - - if ((error = iwm_mvm_mac_ctxt_changed(sc, vap)) != 0) { - device_printf(sc->sc_dev, "mac ctxt change fail 1 %d\n", error); - return error; - } - - if ((error = iwm_mvm_rm_sta(sc, in)) != 0) { - device_printf(sc->sc_dev, "sta remove fail %d\n", error); - return error; - } - error = iwm_mvm_rm_sta(sc, in); - in->in_assoc = 0; - iwm_mvm_update_quotas(sc, NULL); - if ((error = iwm_mvm_mac_ctxt_changed(sc, vap)) != 0) { - device_printf(sc->sc_dev, "mac ctxt change fail 2 %d\n", error); - return error; - } - iwm_mvm_binding_remove_vif(sc, IWM_VAP(in->in_ni.ni_vap)); - - iwm_mvm_mac_ctxt_remove(sc, in); - - return error; -#endif -} - static struct ieee80211_node * iwm_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) { @@ -4167,6 +4038,19 @@ iwm_node_alloc(struct ieee80211vap *vap, const uint8_t M_NOWAIT | M_ZERO); } +static uint8_t +iwm_rate_from_ucode_rate(uint32_t rate_n_flags) +{ + uint8_t plcp = rate_n_flags & 0xff; + int i; + + for (i = 0; i <= IWM_RIDX_MAX; i++) { + if (iwm_rates[i].plcp == plcp) + return iwm_rates[i].rate; + } + return 0; +} + uint8_t iwm_ridx2rate(struct ieee80211_rateset *rs, int ridx) { @@ -4182,15 +4066,36 @@ iwm_ridx2rate(struct ieee80211_rateset *rs, int ridx) return 0; } +static int +iwm_rate2ridx(struct iwm_softc *sc, uint8_t rate) +{ + int i; + + for (i = 0; i <= IWM_RIDX_MAX; i++) { + if (iwm_rates[i].rate == rate) + return i; + } + + device_printf(sc->sc_dev, + "%s: WARNING: device rate for %u not found!\n", + __func__, rate); + + return -1; +} + + static void -iwm_setrates(struct iwm_softc *sc, struct iwm_node *in) +iwm_setrates(struct iwm_softc *sc, struct iwm_node *in, int rix) { struct ieee80211_node *ni = &in->in_ni; struct iwm_lq_cmd *lq = &in->in_lq; - int nrates = ni->ni_rates.rs_nrates; + struct ieee80211_rateset *rs = &ni->ni_rates; + int nrates = rs->rs_nrates; int i, ridx, tab = 0; // int txant = 0; + KASSERT(rix >= 0 && rix < nrates, ("invalid rix")); + if (nrates > nitems(lq->rs_table)) { device_printf(sc->sc_dev, "%s: node supports %d rates, driver handles " @@ -4202,45 +4107,11 @@ iwm_setrates(struct iwm_softc *sc, struct iwm_node *in "%s: node supports 0 rates, odd!\n", __func__); return; } + nrates = imin(rix + 1, nrates); - /* - * XXX .. and most of iwm_node is not initialised explicitly; - * it's all just 0x0 passed to the firmware. - */ - - /* first figure out which rates we should support */ - /* XXX TODO: this isn't 11n aware /at all/ */ - memset(&in->in_ridx, -1, sizeof(in->in_ridx)); IWM_DPRINTF(sc, IWM_DEBUG_TXRATE, "%s: nrates=%d\n", __func__, nrates); - /* - * Loop over nrates and populate in_ridx from the highest - * rate to the lowest rate. Remember, in_ridx[] has - * IEEE80211_RATE_MAXSIZE entries! - */ - for (i = 0; i < min(nrates, IEEE80211_RATE_MAXSIZE); i++) { - int rate = ni->ni_rates.rs_rates[(nrates - 1) - i] & IEEE80211_RATE_VAL; - - /* Map 802.11 rate to HW rate index. */ - for (ridx = 0; ridx <= IWM_RIDX_MAX; ridx++) - if (iwm_rates[ridx].rate == rate) - break; - if (ridx > IWM_RIDX_MAX) { - device_printf(sc->sc_dev, - "%s: WARNING: device rate for %d not found!\n", - __func__, rate); - } else { - IWM_DPRINTF(sc, IWM_DEBUG_TXRATE, - "%s: rate: i: %d, rate=%d, ridx=%d\n", - __func__, - i, - rate, - ridx); - in->in_ridx[i] = ridx; - } - } - /* then construct a lq_cmd based on those */ memset(lq, 0, sizeof(*lq)); lq->sta_id = IWM_STATION_ID; @@ -4264,13 +4135,15 @@ iwm_setrates(struct iwm_softc *sc, struct iwm_node *in * Note that we add the rates in the highest rate first * (opposite of ni_rates). */ - /* - * XXX TODO: this should be looping over the min of nrates - * and LQ_MAX_RETRY_NUM. Sigh. - */ for (i = 0; i < nrates; i++) { + int rate = rs->rs_rates[rix - i] & IEEE80211_RATE_VAL; int nextant; + /* Map 802.11 rate to HW rate index. */ + ridx = iwm_rate2ridx(sc, rate); + if (ridx == -1) + continue; + #if 0 if (txant == 0) txant = iwm_mvm_get_valid_tx_ant(sc); @@ -4279,12 +4152,6 @@ iwm_setrates(struct iwm_softc *sc, struct iwm_node *in #else nextant = iwm_mvm_get_valid_tx_ant(sc); #endif - /* - * Map the rate id into a rate index into - * our hardware table containing the - * configuration to use for this rate. - */ - ridx = in->in_ridx[i]; tab = iwm_rates[ridx].plcp; tab |= nextant << IWM_RATE_MCS_ANT_POS; if (IWM_RIDX_IS_CCK(ridx)) @@ -4322,7 +4189,101 @@ iwm_media_change(struct ifnet *ifp) return error; } +static void +iwm_bring_down_firmware(struct iwm_softc *sc, struct ieee80211vap *vap) +{ + struct iwm_vap *ivp = IWM_VAP(vap); + int error; + /* Avoid Tx watchdog triggering, when transfers get dropped here. */ + sc->sc_tx_timer = 0; + + ivp->iv_auth = 0; + if (sc->sc_firmware_state == 3) { + iwm_xmit_queue_drain(sc); +// iwm_mvm_flush_tx_path(sc, 0xf, IWM_CMD_SYNC); + error = iwm_mvm_rm_sta(sc, vap, TRUE); + if (error) { + device_printf(sc->sc_dev, + "%s: Failed to remove station: %d\n", + __func__, error); + } + } + if (sc->sc_firmware_state == 3) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Mon Apr 8 18:34:45 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2489715649F8; Mon, 8 Apr 2019 18:34:45 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BAD1785D4D; Mon, 8 Apr 2019 18:34:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A6B6D27475; Mon, 8 Apr 2019 18:34:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38IYi1H059876; Mon, 8 Apr 2019 18:34:44 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38IYiTD059874; Mon, 8 Apr 2019 18:34:44 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081834.x38IYiTD059874@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 18:34:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346040 - in stable/12/lib/libc/tests/stdlib: . dynthr_mod X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/12/lib/libc/tests/stdlib: . dynthr_mod X-SVN-Commit-Revision: 346040 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BAD1785D4D X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 18:34:45 -0000 Author: kevans Date: Mon Apr 8 18:34:43 2019 New Revision: 346040 URL: https://svnweb.freebsd.org/changeset/base/346040 Log: MFC r343599: libc/tests: Add test case for jemalloc/libthr bug fixed/r343566 Added: stable/12/lib/libc/tests/stdlib/dynthr_mod/ - copied from r343599, head/lib/libc/tests/stdlib/dynthr_mod/ stable/12/lib/libc/tests/stdlib/dynthr_test.c - copied unchanged from r343599, head/lib/libc/tests/stdlib/dynthr_test.c Modified: stable/12/lib/libc/tests/stdlib/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/tests/stdlib/Makefile ============================================================================== --- stable/12/lib/libc/tests/stdlib/Makefile Mon Apr 8 18:25:14 2019 (r346039) +++ stable/12/lib/libc/tests/stdlib/Makefile Mon Apr 8 18:34:43 2019 (r346040) @@ -2,6 +2,7 @@ .include +ATF_TESTS_C+= dynthr_test ATF_TESTS_C+= heapsort_test ATF_TESTS_C+= mergesort_test ATF_TESTS_C+= qsort_test @@ -60,5 +61,7 @@ LIBADD.${t}+= netbsd util .endfor LIBADD.strtod_test+= m + +SUBDIR+= dynthr_mod .include Copied: stable/12/lib/libc/tests/stdlib/dynthr_test.c (from r343599, head/lib/libc/tests/stdlib/dynthr_test.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/tests/stdlib/dynthr_test.c Mon Apr 8 18:34:43 2019 (r346040, copy of r343599, head/lib/libc/tests/stdlib/dynthr_test.c) @@ -0,0 +1,93 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (C) 2019 Andrew Gierth + * + * 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. + * + * Though this file is initially distributed under the 2-clause BSD license, + * the author grants permission for its redistribution under alternative + * licenses as set forth at . + * This paragraph and the RELICENSE.txt file are not part of the license and + * may be omitted in redistributions. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include + +typedef void (modfunc_t)(int op); + +/* + * Minimal test case for PR 235158; mutual dependencies between jemalloc and + * libthr causing issues in thread creation. Specifically to this case, libthr + * uses calloc to initialize pthread mutexes, and jemalloc uses pthread mutexes. + * + * Deferred initialization provided by jemalloc proved to be fragile, causing + * issues like in the referenced PR where thread creation in a shared object + * loaded via dlopen(3) would stall unless the calling application also linked + * against pthread. + */ +ATF_TC(maintc); +ATF_TC_HEAD(maintc, tc) +{ + + atf_tc_set_md_var(tc, "timeout", "3"); +} + +ATF_TC_BODY(maintc, tc) +{ + char *libpath; + modfunc_t *func; + void *mod_handle; + const char *srcdir; + dlfunc_t rawfunc; + + srcdir = atf_tc_get_config_var(tc, "srcdir"); + if (asprintf(&libpath, "%s/dynthr_mod.so", srcdir) < 0) + atf_tc_fail("failed to construct path to libthr"); + mod_handle = dlopen(libpath, RTLD_LOCAL); + free(libpath); + if (mod_handle == NULL) + atf_tc_fail("failed to open dynthr_mod.so: %s", dlerror()); + rawfunc = dlfunc(mod_handle, "mod_main"); + if (rawfunc == NULL) + atf_tc_fail("failed to resolve function mod_main"); + func = (modfunc_t *)rawfunc; + func(1); + func(0); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, maintc); + return (atf_no_error()); +} From owner-svn-src-stable@freebsd.org Mon Apr 8 18:36:49 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18DE11564B26; Mon, 8 Apr 2019 18:36:49 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B06C685F10; Mon, 8 Apr 2019 18:36:48 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8B14A27479; Mon, 8 Apr 2019 18:36:48 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38Iamub060037; Mon, 8 Apr 2019 18:36:48 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38Iamkr060036; Mon, 8 Apr 2019 18:36:48 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081836.x38Iamkr060036@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 18:36:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346041 - in stable: 11/sys/conf 12/sys/conf X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/conf 12/sys/conf X-SVN-Commit-Revision: 346041 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B06C685F10 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 18:36:49 -0000 Author: kevans Date: Mon Apr 8 18:36:47 2019 New Revision: 346041 URL: https://svnweb.freebsd.org/changeset/base/346041 Log: MFC r345680: NOTES: Use non-default value for BOOT_TAG Modified: stable/12/sys/conf/NOTES Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/conf/NOTES Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/conf/NOTES ============================================================================== --- stable/12/sys/conf/NOTES Mon Apr 8 18:34:43 2019 (r346040) +++ stable/12/sys/conf/NOTES Mon Apr 8 18:36:47 2019 (r346041) @@ -150,7 +150,7 @@ options BOOTHOWTO=RB_MULTIPLE # # Default boot tag; may use 'kern.boot_tag' loader tunable to override. The # current boot's tag is also exposed via the 'kern.boot_tag' sysctl. -options BOOT_TAG=\"---<>---\" +options BOOT_TAG=\"\" # Maximum boot tag size the kernel's static buffer should accomodate. Maximum # size for both BOOT_TAG and the assocated tunable. options BOOT_TAG_SZ=32 From owner-svn-src-stable@freebsd.org Mon Apr 8 18:36:48 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B559D1564B18; Mon, 8 Apr 2019 18:36:48 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5B8AA85F0E; Mon, 8 Apr 2019 18:36:48 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3675D27478; Mon, 8 Apr 2019 18:36:48 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38Iamub060031; Mon, 8 Apr 2019 18:36:48 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38Iame8060030; Mon, 8 Apr 2019 18:36:48 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081836.x38Iame8060030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 18:36: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: r346041 - in stable: 11/sys/conf 12/sys/conf X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/conf 12/sys/conf X-SVN-Commit-Revision: 346041 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5B8AA85F0E X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 18:36:48 -0000 Author: kevans Date: Mon Apr 8 18:36:47 2019 New Revision: 346041 URL: https://svnweb.freebsd.org/changeset/base/346041 Log: MFC r345680: NOTES: Use non-default value for BOOT_TAG Modified: stable/11/sys/conf/NOTES Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/conf/NOTES Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/conf/NOTES ============================================================================== --- stable/11/sys/conf/NOTES Mon Apr 8 18:34:43 2019 (r346040) +++ stable/11/sys/conf/NOTES Mon Apr 8 18:36:47 2019 (r346041) @@ -150,7 +150,7 @@ options BOOTHOWTO=RB_MULTIPLE # # Default boot tag; may use 'kern.boot_tag' loader tunable to override. The # current boot's tag is also exposed via the 'kern.boot_tag' sysctl. -options BOOT_TAG=\"\" +options BOOT_TAG=\"---<>---\" # Maximum boot tag size the kernel's static buffer should accomodate. Maximum # size for both BOOT_TAG and the assocated tunable. options BOOT_TAG_SZ=32 From owner-svn-src-stable@freebsd.org Mon Apr 8 18:38:20 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F122A1564D30; Mon, 8 Apr 2019 18:38:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AB5F186336; Mon, 8 Apr 2019 18:38:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 87A0C2747D; Mon, 8 Apr 2019 18:38:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38IcJsi060318; Mon, 8 Apr 2019 18:38:19 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38IcJJK060317; Mon, 8 Apr 2019 18:38:19 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081838.x38IcJJK060317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 18:38:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346042 - in stable: 11/stand/common 12/stand/common X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/common 12/stand/common X-SVN-Commit-Revision: 346042 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: AB5F186336 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 18:38:20 -0000 Author: kevans Date: Mon Apr 8 18:38:18 2019 New Revision: 346042 URL: https://svnweb.freebsd.org/changeset/base/346042 Log: MFC r344161: stand: dev_net: correct net_open's interpretation of params net_open previously casted the first vararg to a char * and this was half-OK: at first, it is passed to netif_open, which would cast it back to the struct devdesc * that it really is and use it properly. It is then strdup()d and used as the netdev_name, which is objectively wrong. Correct it so that the first vararg is properly casted to a struct devdesc * and the netdev_name gets set properly to make it more clear at a glance that it's not doing something horribly wrong. Modified: stable/12/stand/common/dev_net.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/stand/common/dev_net.c Directory Properties: stable/11/ (props changed) Modified: stable/12/stand/common/dev_net.c ============================================================================== --- stable/12/stand/common/dev_net.c Mon Apr 8 18:36:47 2019 (r346041) +++ stable/12/stand/common/dev_net.c Mon Apr 8 18:38:18 2019 (r346042) @@ -122,13 +122,15 @@ net_open(struct open_file *f, ...) { struct iodesc *d; va_list args; - char *devname; /* Device part of file name (or NULL). */ + struct devdesc *dev; + const char *devname; /* Device part of file name (or NULL). */ int error = 0; va_start(args, f); - devname = va_arg(args, char*); + dev = va_arg(args, struct devdesc *); va_end(args); + devname = dev->d_dev->dv_name; /* Before opening another interface, close the previous one first. */ if (netdev_sock >= 0 && strcmp(devname, netdev_name) != 0) net_cleanup(); @@ -137,7 +139,7 @@ net_open(struct open_file *f, ...) if (netdev_opens == 0) { /* Find network interface. */ if (netdev_sock < 0) { - netdev_sock = netif_open(devname); + netdev_sock = netif_open(dev); if (netdev_sock < 0) { printf("net_open: netif_open() failed\n"); return (ENXIO); From owner-svn-src-stable@freebsd.org Mon Apr 8 18:38:19 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AAC681564D2C; Mon, 8 Apr 2019 18:38:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 51B5B86334; Mon, 8 Apr 2019 18:38:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3699C2747C; Mon, 8 Apr 2019 18:38:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x38IcJ0K060312; Mon, 8 Apr 2019 18:38:19 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x38IcJqf060311; Mon, 8 Apr 2019 18:38:19 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201904081838.x38IcJqf060311@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 8 Apr 2019 18:38: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: r346042 - in stable: 11/stand/common 12/stand/common X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/common 12/stand/common X-SVN-Commit-Revision: 346042 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 51B5B86334 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2019 18:38:19 -0000 Author: kevans Date: Mon Apr 8 18:38:18 2019 New Revision: 346042 URL: https://svnweb.freebsd.org/changeset/base/346042 Log: MFC r344161: stand: dev_net: correct net_open's interpretation of params net_open previously casted the first vararg to a char * and this was half-OK: at first, it is passed to netif_open, which would cast it back to the struct devdesc * that it really is and use it properly. It is then strdup()d and used as the netdev_name, which is objectively wrong. Correct it so that the first vararg is properly casted to a struct devdesc * and the netdev_name gets set properly to make it more clear at a glance that it's not doing something horribly wrong. Modified: stable/11/stand/common/dev_net.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/stand/common/dev_net.c Directory Properties: stable/12/ (props changed) Modified: stable/11/stand/common/dev_net.c ============================================================================== --- stable/11/stand/common/dev_net.c Mon Apr 8 18:36:47 2019 (r346041) +++ stable/11/stand/common/dev_net.c Mon Apr 8 18:38:18 2019 (r346042) @@ -122,13 +122,15 @@ net_open(struct open_file *f, ...) { struct iodesc *d; va_list args; - char *devname; /* Device part of file name (or NULL). */ + struct devdesc *dev; + const char *devname; /* Device part of file name (or NULL). */ int error = 0; va_start(args, f); - devname = va_arg(args, char*); + dev = va_arg(args, struct devdesc *); va_end(args); + devname = dev->d_dev->dv_name; /* Before opening another interface, close the previous one first. */ if (netdev_sock >= 0 && strcmp(devname, netdev_name) != 0) net_cleanup(); @@ -137,7 +139,7 @@ net_open(struct open_file *f, ...) if (netdev_opens == 0) { /* Find network interface. */ if (netdev_sock < 0) { - netdev_sock = netif_open(devname); + netdev_sock = netif_open(dev); if (netdev_sock < 0) { printf("net_open: netif_open() failed\n"); return (ENXIO); From owner-svn-src-stable@freebsd.org Tue Apr 9 12:28:13 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 71354157FBD8; Tue, 9 Apr 2019 12:28:13 +0000 (UTC) (envelope-from grembo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 103438B5C7; Tue, 9 Apr 2019 12:28:13 +0000 (UTC) (envelope-from grembo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DFCBAAF0E; Tue, 9 Apr 2019 12:28:12 +0000 (UTC) (envelope-from grembo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x39CSC3b024417; Tue, 9 Apr 2019 12:28:12 GMT (envelope-from grembo@FreeBSD.org) Received: (from grembo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x39CSC7c024416; Tue, 9 Apr 2019 12:28:12 GMT (envelope-from grembo@FreeBSD.org) Message-Id: <201904091228.x39CSC7c024416@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: grembo set sender to grembo@FreeBSD.org using -f From: Michael Gmelin Date: Tue, 9 Apr 2019 12:28:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346051 - in stable: 11/usr.sbin/daemon 12/usr.sbin/daemon X-SVN-Group: stable-12 X-SVN-Commit-Author: grembo X-SVN-Commit-Paths: in stable: 11/usr.sbin/daemon 12/usr.sbin/daemon X-SVN-Commit-Revision: 346051 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 103438B5C7 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Apr 2019 12:28:13 -0000 Author: grembo (ports committer) Date: Tue Apr 9 12:28:12 2019 New Revision: 346051 URL: https://svnweb.freebsd.org/changeset/base/346051 Log: MFC r345512: Correct contradictory information on default syslog logging priority. Modified: stable/12/usr.sbin/daemon/daemon.8 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/daemon/daemon.8 Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/daemon/daemon.8 ============================================================================== --- stable/12/usr.sbin/daemon/daemon.8 Tue Apr 9 10:33:18 2019 (r346050) +++ stable/12/usr.sbin/daemon/daemon.8 Tue Apr 9 12:28:12 2019 (r346051) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 15, 2018 +.Dd March 25, 2019 .Dt DAEMON 8 .Os .Sh NAME @@ -129,7 +129,7 @@ Requires adequate superuser privileges. .It Fl s Ar syslog_priority These priorities are accepted: emerg, alert, crit, err, warning, notice, info, and debug. -The default is info. +The default is notice. .It Fl l Ar syslog_facility These facilities are accepted: auth, authpriv, console, cron, daemon, ftp, kern, lpr, mail, news, ntp, security, syslog, user, uucp, and From owner-svn-src-stable@freebsd.org Tue Apr 9 12:28:13 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 267A9157FBD2; Tue, 9 Apr 2019 12:28:13 +0000 (UTC) (envelope-from grembo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BF11A8B5C6; Tue, 9 Apr 2019 12:28:12 +0000 (UTC) (envelope-from grembo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9601BAF0D; Tue, 9 Apr 2019 12:28:12 +0000 (UTC) (envelope-from grembo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x39CSCwV024411; Tue, 9 Apr 2019 12:28:12 GMT (envelope-from grembo@FreeBSD.org) Received: (from grembo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x39CSCvt024410; Tue, 9 Apr 2019 12:28:12 GMT (envelope-from grembo@FreeBSD.org) Message-Id: <201904091228.x39CSCvt024410@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: grembo set sender to grembo@FreeBSD.org using -f From: Michael Gmelin Date: Tue, 9 Apr 2019 12:28: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: r346051 - in stable: 11/usr.sbin/daemon 12/usr.sbin/daemon X-SVN-Group: stable-11 X-SVN-Commit-Author: grembo X-SVN-Commit-Paths: in stable: 11/usr.sbin/daemon 12/usr.sbin/daemon X-SVN-Commit-Revision: 346051 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BF11A8B5C6 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Apr 2019 12:28:13 -0000 Author: grembo (ports committer) Date: Tue Apr 9 12:28:12 2019 New Revision: 346051 URL: https://svnweb.freebsd.org/changeset/base/346051 Log: MFC r345512: Correct contradictory information on default syslog logging priority. Modified: stable/11/usr.sbin/daemon/daemon.8 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/daemon/daemon.8 Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/daemon/daemon.8 ============================================================================== --- stable/11/usr.sbin/daemon/daemon.8 Tue Apr 9 10:33:18 2019 (r346050) +++ stable/11/usr.sbin/daemon/daemon.8 Tue Apr 9 12:28:12 2019 (r346051) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 15, 2018 +.Dd March 25, 2019 .Dt DAEMON 8 .Os .Sh NAME @@ -129,7 +129,7 @@ Requires adequate superuser privileges. .It Fl s Ar syslog_priority These priorities are accepted: emerg, alert, crit, err, warning, notice, info, and debug. -The default is info. +The default is notice. .It Fl l Ar syslog_facility These facilities are accepted: auth, authpriv, console, cron, daemon, ftp, kern, lpr, mail, news, ntp, security, syslog, user, uucp, and From owner-svn-src-stable@freebsd.org Tue Apr 9 16:16:11 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3FE991563719; Tue, 9 Apr 2019 16:16:11 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D6FDB6C6F4; Tue, 9 Apr 2019 16:16:10 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AF82FD845; Tue, 9 Apr 2019 16:16:10 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x39GGAlB049571; Tue, 9 Apr 2019 16:16:10 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x39GGAEs049570; Tue, 9 Apr 2019 16:16:10 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201904091616.x39GGAEs049570@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Enji Cooper Date: Tue, 9 Apr 2019 16:16:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346055 - stable/12/tests/sys/cddl/zfs/tests/delegate X-SVN-Group: stable-12 X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: stable/12/tests/sys/cddl/zfs/tests/delegate X-SVN-Commit-Revision: 346055 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D6FDB6C6F4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.95)[-0.952,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Apr 2019 16:16:11 -0000 Author: ngie Date: Tue Apr 9 16:16:10 2019 New Revision: 346055 URL: https://svnweb.freebsd.org/changeset/base/346055 Log: MFC r345216: Remove duplicate `${PACKAGE}FILES+= cleanup.ksh` line This mutes the duplicate target warning emitted via bsd.files.mk each build. Approved by: emaste (mentor) Differential Revision: https://reviews.freebsd.org/D19806 Modified: stable/12/tests/sys/cddl/zfs/tests/delegate/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/tests/sys/cddl/zfs/tests/delegate/Makefile ============================================================================== --- stable/12/tests/sys/cddl/zfs/tests/delegate/Makefile Tue Apr 9 15:52:18 2019 (r346054) +++ stable/12/tests/sys/cddl/zfs/tests/delegate/Makefile Tue Apr 9 16:16:10 2019 (r346055) @@ -12,7 +12,6 @@ TEST_METADATA+= required_user="root" TEST_METADATA+= is_exclusive=true ${PACKAGE}FILES+= cleanup.ksh -${PACKAGE}FILES+= cleanup.ksh ${PACKAGE}FILES+= delegate.cfg ${PACKAGE}FILES+= delegate_common.kshlib ${PACKAGE}FILES+= setup.ksh From owner-svn-src-stable@freebsd.org Tue Apr 9 16:35:24 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 983791563FF2; Tue, 9 Apr 2019 16:35:24 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 30BCE6D6EE; Tue, 9 Apr 2019 16:35: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0C216DBCE; Tue, 9 Apr 2019 16:35: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 x39GZN4A060063; Tue, 9 Apr 2019 16:35:23 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x39GZNEK060061; Tue, 9 Apr 2019 16:35:23 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201904091635.x39GZNEK060061@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Enji Cooper Date: Tue, 9 Apr 2019 16:35:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346059 - in stable/12: share/man/man4 sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: in stable/12: share/man/man4 sys/sys X-SVN-Commit-Revision: 346059 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 30BCE6D6EE X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Apr 2019 16:35:24 -0000 Author: ngie Date: Tue Apr 9 16:35:23 2019 New Revision: 346059 URL: https://svnweb.freebsd.org/changeset/base/346059 Log: MFC r344662: Remove references to pdwait4(2) and `CAP_PDWAIT` from rights(4) @cem removed references to pdwait4(2) (a nonexistent syscall) in r320058. This change removes references to pdwait4(2) and `CAP_PDWAIT` in rights(4) to not mislead the user into thinking that pdwait4(2)/`CAP_PDWAIT` is actually implemented in the stock FreeBSD kernel. The goal of this functionality was to simplify monitoring/manipulating processes started with `pdfork`, et al, and avoid races with waiting on pids. The syscall was never completed though--just discussed on the capsicum mailing list back in 2015: https://lists.cam.ac.uk/pipermail/cl-capsicum-discuss/2015-May/msg00012.html . That being said, there are members of the project (@rwatson, etc) who have longterm goals to implement this syscall to better secure pdfork(2) calls. PR: 235871 Approved by: emaste (mentor) Differential Revision: https://reviews.freebsd.org/D19805 Modified: stable/12/share/man/man4/rights.4 stable/12/sys/sys/capsicum.h Modified: stable/12/share/man/man4/rights.4 ============================================================================== --- stable/12/share/man/man4/rights.4 Tue Apr 9 16:31:30 2019 (r346058) +++ stable/12/share/man/man4/rights.4 Tue Apr 9 16:35:23 2019 (r346059) @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 30, 2018 +.Dd February 28, 2019 .Dt RIGHTS 4 .Os .Sh NAME @@ -467,9 +467,6 @@ Permit .It Dv CAP_PDKILL Permit .Xr pdkill 2 . -.It Dv CAP_PDWAIT -Permit -.Xr pdwait4 2 . .It Dv CAP_PEELOFF Permit .Xr sctp_peeloff 2 . Modified: stable/12/sys/sys/capsicum.h ============================================================================== --- stable/12/sys/sys/capsicum.h Tue Apr 9 16:31:30 2019 (r346058) +++ stable/12/sys/sys/capsicum.h Tue Apr 9 16:35:23 2019 (r346059) @@ -246,7 +246,12 @@ /* Process management via process descriptors. */ /* Allows for pdgetpid(2). */ #define CAP_PDGETPID CAPRIGHT(1, 0x0000000000000200ULL) -/* Allows for pdwait4(2). */ +/* + * Allows for pdwait4(2). + * + * XXX: this constant was imported unused, but is targeted to be implemented + * in the future (bug 235871). + */ #define CAP_PDWAIT CAPRIGHT(1, 0x0000000000000400ULL) /* Allows for pdkill(2). */ #define CAP_PDKILL CAPRIGHT(1, 0x0000000000000800ULL) From owner-svn-src-stable@freebsd.org Wed Apr 10 08:34:19 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DED27157C518; Wed, 10 Apr 2019 08:34:18 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7FC6F95DDA; Wed, 10 Apr 2019 08:34:18 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 551E61FFF3; Wed, 10 Apr 2019 08:34:18 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3A8YImx070745; Wed, 10 Apr 2019 08:34:18 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3A8YIm9070744; Wed, 10 Apr 2019 08:34:18 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201904100834.x3A8YIm9070744@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 10 Apr 2019 08:34:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346074 - stable/12/sys/fs/msdosfs X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/fs/msdosfs X-SVN-Commit-Revision: 346074 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7FC6F95DDA X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Apr 2019 08:34:19 -0000 Author: kib Date: Wed Apr 10 08:34:17 2019 New Revision: 346074 URL: https://svnweb.freebsd.org/changeset/base/346074 Log: MFC r345847: msdosfs: zero tail of the last block on truncation for VREG vnodes as well. Modified: stable/12/sys/fs/msdosfs/msdosfs_denode.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/fs/msdosfs/msdosfs_denode.c ============================================================================== --- stable/12/sys/fs/msdosfs/msdosfs_denode.c Wed Apr 10 08:17:56 2019 (r346073) +++ stable/12/sys/fs/msdosfs/msdosfs_denode.c Wed Apr 10 08:34:17 2019 (r346074) @@ -405,19 +405,21 @@ detrunc(struct denode *dep, u_long length, int flags, bn = cntobn(pmp, eofentry); error = bread(pmp->pm_devvp, bn, pmp->pm_bpcluster, NOCRED, &bp); - if (error) { - brelse(bp); + } else { + error = bread(DETOV(dep), de_cluster(pmp, length), + pmp->pm_bpcluster, cred, &bp); + } + if (error) { #ifdef MSDOSFS_DEBUG - printf("detrunc(): bread fails %d\n", error); + printf("detrunc(): bread fails %d\n", error); #endif - return (error); - } - memset(bp->b_data + boff, 0, pmp->pm_bpcluster - boff); - if (flags & IO_SYNC) - bwrite(bp); - else - bdwrite(bp); + return (error); } + memset(bp->b_data + boff, 0, pmp->pm_bpcluster - boff); + if ((flags & IO_SYNC) != 0) + bwrite(bp); + else + bdwrite(bp); } /* From owner-svn-src-stable@freebsd.org Wed Apr 10 10:50:50 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EAB86157EDDA; Wed, 10 Apr 2019 10:50:49 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8D32F6B767; Wed, 10 Apr 2019 10:50:49 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5EA302176E; Wed, 10 Apr 2019 10:50:49 +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 x3AAonFS039913; Wed, 10 Apr 2019 10:50:49 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3AAonWJ039912; Wed, 10 Apr 2019 10:50:49 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201904101050.x3AAonWJ039912@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 10 Apr 2019 10:50: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: r346077 - stable/11/sys/fs/msdosfs X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/fs/msdosfs X-SVN-Commit-Revision: 346077 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8D32F6B767 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Apr 2019 10:50:50 -0000 Author: kib Date: Wed Apr 10 10:50:48 2019 New Revision: 346077 URL: https://svnweb.freebsd.org/changeset/base/346077 Log: MFC r345847: msdosfs: zero tail of the last block on truncation for VREG vnodes as well. Modified: stable/11/sys/fs/msdosfs/msdosfs_denode.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/msdosfs/msdosfs_denode.c ============================================================================== --- stable/11/sys/fs/msdosfs/msdosfs_denode.c Wed Apr 10 10:21:14 2019 (r346076) +++ stable/11/sys/fs/msdosfs/msdosfs_denode.c Wed Apr 10 10:50:48 2019 (r346077) @@ -403,19 +403,21 @@ detrunc(struct denode *dep, u_long length, int flags, bn = cntobn(pmp, eofentry); error = bread(pmp->pm_devvp, bn, pmp->pm_bpcluster, NOCRED, &bp); - if (error) { - brelse(bp); + } else { + error = bread(DETOV(dep), de_cluster(pmp, length), + pmp->pm_bpcluster, cred, &bp); + } + if (error) { #ifdef MSDOSFS_DEBUG - printf("detrunc(): bread fails %d\n", error); + printf("detrunc(): bread fails %d\n", error); #endif - return (error); - } - bzero(bp->b_data + boff, pmp->pm_bpcluster - boff); - if (flags & IO_SYNC) - bwrite(bp); - else - bdwrite(bp); + return (error); } + bzero(bp->b_data + boff, pmp->pm_bpcluster - boff); + if ((flags & IO_SYNC) != 0) + bwrite(bp); + else + bdwrite(bp); } /* From owner-svn-src-stable@freebsd.org Wed Apr 10 21:45:27 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BFF8156E622; Wed, 10 Apr 2019 21:45:27 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B5FBF8D012; Wed, 10 Apr 2019 21:45:26 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 88BDF8B0; Wed, 10 Apr 2019 21:45:26 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3ALjQ7n089348; Wed, 10 Apr 2019 21:45:26 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3ALjOZX089335; Wed, 10 Apr 2019 21:45:24 GMT (envelope-from mm@FreeBSD.org) Message-Id: <201904102145.x3ALjOZX089335@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 10 Apr 2019 21:45:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346103 - in stable/12: contrib/libarchive/libarchive contrib/libarchive/libarchive/test lib/libarchive/tests X-SVN-Group: stable-12 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/12: contrib/libarchive/libarchive contrib/libarchive/libarchive/test lib/libarchive/tests X-SVN-Commit-Revision: 346103 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B5FBF8D012 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.92 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.92)[-0.923,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Apr 2019 21:45:27 -0000 Author: mm Date: Wed Apr 10 21:45:23 2019 New Revision: 346103 URL: https://svnweb.freebsd.org/changeset/base/346103 Log: MFC r345497: Sync libarchive with vendor. Relevant vendor changes: PR #1153: fixed 2 bugs in ZIP reader [1] PR #1143: ensure archive_read_disk_entry_from_file() uses ARCHIVE_READ_DISK Changes to file flags code, support more file flags on FreeBSD: UF_OFFLINE, UF_READONLY, UF_SPARSE, UF_REPARSE, UF_SYSTEM UF_ARCHIVE is not supported by intention (yet) PR: 236300 [1] Added: stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_bz2_hang.zip.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_bz2_hang.zip.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu Modified: stable/12/contrib/libarchive/libarchive/archive_blake2sp_ref.c stable/12/contrib/libarchive/libarchive/archive_entry.c stable/12/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_rar5.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/12/contrib/libarchive/libarchive/archive_string.c stable/12/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_7zip.c stable/12/contrib/libarchive/libarchive/test/test_entry.c stable/12/contrib/libarchive/libarchive/test/test_read_format_rar5.c stable/12/contrib/libarchive/libarchive/test/test_read_format_xar.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/12/lib/libarchive/tests/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/libarchive/libarchive/archive_blake2sp_ref.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_blake2sp_ref.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/archive_blake2sp_ref.c Wed Apr 10 21:45:23 2019 (r346103) @@ -89,7 +89,7 @@ int blake2sp_init( blake2sp_state *S, size_t outlen ) return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S->S[i], outlen, 0, (uint32_t)i ) < 0 ) return -1; S->R->last_node = 1; S->S[PARALLELISM_DEGREE - 1]->last_node = 1; @@ -112,7 +112,7 @@ int blake2sp_init_key( blake2sp_state *S, size_t outle return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S->S[i], outlen, keylen, (uint32_t)i ) < 0 ) return -1; S->R->last_node = 1; S->S[PARALLELISM_DEGREE - 1]->last_node = 1; @@ -230,7 +230,7 @@ int blake2sp( void *out, size_t outlen, const void *in if( keylen > BLAKE2S_KEYBYTES ) return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S[i], outlen, keylen, (uint32_t)i ) < 0 ) return -1; S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ Modified: stable/12/contrib/libarchive/libarchive/archive_entry.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/archive_entry.c Wed Apr 10 21:45:23 2019 (r346103) @@ -1632,6 +1632,51 @@ _archive_entry_acl_text_l(struct archive_entry *entry, * SUCH DAMAGE. */ +/* + * Supported file flags on FreeBSD and Mac OS: + * sappnd,sappend SF_APPEND + * arch,archived SF_ARCHIVED + * schg,schange,simmutable SF_IMMUTABLE + * sunlnk,sunlink SF_NOUNLINK (FreeBSD only) + * uappnd,uappend UF_APPEND + * compressed UF_COMPRESSED (Mac OS only) + * hidden,uhidden UF_HIDDEN + * uchg,uchange,uimmutable UF_IMMUTABLE + * nodump UF_NODUMP + * uunlnk,uunlink UF_NOUNLINK (FreeBSD only) + * offline,uoffline UF_OFFLINE (FreeBSD only) + * opaque UF_OPAQUE + * rdonly,urdonly,readonly UF_READONLY (FreeBSD only) + * reparse,ureparse UF_REPARSE (FreeBSD only) + * sparse,usparse UF_SPARSE (FreeBSD only) + * system,usystem UF_SYSTEM (FreeBSD only) + * + * See chflags(2) for more information + * + * Supported file attributes on Linux: + * a append only FS_APPEND_FL sappnd + * A no atime updates FS_NOATIME_FL atime + * c compress FS_COMPR_FL compress + * C no copy on write FS_NOCOW_FL cow + * d no dump FS_NODUMP_FL dump + * D synchronous directory updates FS_DIRSYNC_FL dirsync + * i immutable FS_IMMUTABLE_FL schg + * j data journalling FS_JOURNAL_DATA_FL journal + * P project hierarchy FS_PROJINHERIT_FL projinherit + * s secure deletion FS_SECRM_FL securedeletion + * S synchronous updates FS_SYNC_FL sync + * t no tail-merging FS_NOTAIL_FL tail + * T top of directory hierarchy FS_TOPDIR_FL topdir + * u undeletable FS_UNRM_FL undel + * + * See ioctl_iflags(2) for more information + * + * Equivalent file flags supported on FreeBSD / Mac OS and Linux: + * SF_APPEND FS_APPEND_FL sappnd + * SF_IMMUTABLE FS_IMMUTABLE_FL schg + * UF_NODUMP FS_NODUMP_FL nodump + */ + static const struct flag { const char *name; const wchar_t *wname; @@ -1640,190 +1685,149 @@ static const struct flag { } flags[] = { /* Preferred (shorter) names per flag first, all prefixed by "no" */ #ifdef SF_APPEND - { "nosappnd", L"nosappnd", SF_APPEND, 0 }, - { "nosappend", L"nosappend", SF_APPEND, 0 }, + { "nosappnd", L"nosappnd", SF_APPEND, 0}, + { "nosappend", L"nosappend", SF_APPEND, 0}, #endif #if defined(FS_APPEND_FL) /* 'a' */ - { "nosappnd", L"nosappnd", FS_APPEND_FL, 0 }, - { "nosappend", L"nosappend", FS_APPEND_FL, 0 }, + { "nosappnd", L"nosappnd", FS_APPEND_FL, 0}, + { "nosappend", L"nosappend", FS_APPEND_FL, 0}, #elif defined(EXT2_APPEND_FL) /* 'a' */ - { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0 }, - { "nosappend", L"nosappend", EXT2_APPEND_FL, 0 }, + { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0}, + { "nosappend", L"nosappend", EXT2_APPEND_FL, 0}, #endif #ifdef SF_ARCHIVED - { "noarch", L"noarch", SF_ARCHIVED, 0 }, - { "noarchived", L"noarchived", SF_ARCHIVED, 0 }, + { "noarch", L"noarch", SF_ARCHIVED, 0}, + { "noarchived", L"noarchived", SF_ARCHIVED, 0}, #endif #ifdef SF_IMMUTABLE - { "noschg", L"noschg", SF_IMMUTABLE, 0 }, - { "noschange", L"noschange", SF_IMMUTABLE, 0 }, - { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0 }, + { "noschg", L"noschg", SF_IMMUTABLE, 0}, + { "noschange", L"noschange", SF_IMMUTABLE, 0}, + { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0}, #endif #if defined(FS_IMMUTABLE_FL) /* 'i' */ - { "noschg", L"noschg", FS_IMMUTABLE_FL, 0 }, - { "noschange", L"noschange", FS_IMMUTABLE_FL, 0 }, - { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0 }, + { "noschg", L"noschg", FS_IMMUTABLE_FL, 0}, + { "noschange", L"noschange", FS_IMMUTABLE_FL, 0}, + { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0}, #elif defined(EXT2_IMMUTABLE_FL) /* 'i' */ - { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0 }, - { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0 }, - { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0 }, + { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0}, + { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0}, + { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0}, #endif #ifdef SF_NOUNLINK - { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0 }, - { "nosunlink", L"nosunlink", SF_NOUNLINK, 0 }, + { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0}, + { "nosunlink", L"nosunlink", SF_NOUNLINK, 0}, #endif -#ifdef SF_SNAPSHOT - { "nosnapshot", L"nosnapshot", SF_SNAPSHOT, 0 }, -#endif #ifdef UF_APPEND - { "nouappnd", L"nouappnd", UF_APPEND, 0 }, - { "nouappend", L"nouappend", UF_APPEND, 0 }, + { "nouappnd", L"nouappnd", UF_APPEND, 0}, + { "nouappend", L"nouappend", UF_APPEND, 0}, #endif #ifdef UF_IMMUTABLE - { "nouchg", L"nouchg", UF_IMMUTABLE, 0 }, - { "nouchange", L"nouchange", UF_IMMUTABLE, 0 }, - { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0 }, + { "nouchg", L"nouchg", UF_IMMUTABLE, 0}, + { "nouchange", L"nouchange", UF_IMMUTABLE, 0}, + { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0}, #endif #ifdef UF_NODUMP { "nodump", L"nodump", 0, UF_NODUMP}, #endif #if defined(FS_NODUMP_FL) /* 'd' */ { "nodump", L"nodump", 0, FS_NODUMP_FL}, -#elif defined(EXT2_NODUMP_FL) /* 'd' */ +#elif defined(EXT2_NODUMP_FL) { "nodump", L"nodump", 0, EXT2_NODUMP_FL}, #endif #ifdef UF_OPAQUE - { "noopaque", L"noopaque", UF_OPAQUE, 0 }, + { "noopaque", L"noopaque", UF_OPAQUE, 0}, #endif #ifdef UF_NOUNLINK - { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0 }, - { "nouunlink", L"nouunlink", UF_NOUNLINK, 0 }, + { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0}, + { "nouunlink", L"nouunlink", UF_NOUNLINK, 0}, #endif #ifdef UF_COMPRESSED - { "nocompressed",L"nocompressed", UF_COMPRESSED, 0 }, + /* Mac OS */ + { "nocompressed", L"nocompressed", UF_COMPRESSED, 0}, #endif #ifdef UF_HIDDEN - { "nohidden", L"nohidden", UF_HIDDEN, 0 }, + { "nohidden", L"nohidden", UF_HIDDEN, 0}, + { "nouhidden", L"nouhidden", UF_HIDDEN, 0}, #endif -#if defined(FS_UNRM_FL) - { "nouunlink", L"nouunlink", FS_UNRM_FL, 0}, -#elif defined(EXT2_UNRM_FL) - { "nouunlink", L"nouunlink", EXT2_UNRM_FL, 0}, +#ifdef UF_OFFLINE + { "nooffline", L"nooffline", UF_OFFLINE, 0}, + { "nouoffline", L"nouoffline", UF_OFFLINE, 0}, #endif - -#if defined(FS_BTREE_FL) - { "nobtree", L"nobtree", FS_BTREE_FL, 0 }, -#elif defined(EXT2_BTREE_FL) - { "nobtree", L"nobtree", EXT2_BTREE_FL, 0 }, +#ifdef UF_READONLY + { "nordonly", L"nordonly", UF_READONLY, 0}, + { "nourdonly", L"nourdonly", UF_READONLY, 0}, + { "noreadonly", L"noreadonly", UF_READONLY, 0}, #endif - -#if defined(FS_ECOMPR_FL) - { "nocomperr", L"nocomperr", FS_ECOMPR_FL, 0 }, -#elif defined(EXT2_ECOMPR_FL) - { "nocomperr", L"nocomperr", EXT2_ECOMPR_FL, 0 }, +#ifdef UF_SPARSE + { "nosparse", L"nosparse", UF_SPARSE, 0}, + { "nousparse", L"nousparse", UF_SPARSE, 0}, #endif - -#if defined(FS_COMPR_FL) /* 'c' */ - { "nocompress", L"nocompress", FS_COMPR_FL, 0 }, -#elif defined(EXT2_COMPR_FL) /* 'c' */ - { "nocompress", L"nocompress", EXT2_COMPR_FL, 0 }, +#ifdef UF_REPARSE + { "noreparse", L"noreparse", UF_REPARSE, 0}, + { "noureparse", L"noureparse", UF_REPARSE, 0}, #endif - -#if defined(FS_NOATIME_FL) /* 'A' */ - { "noatime", L"noatime", 0, FS_NOATIME_FL}, -#elif defined(EXT2_NOATIME_FL) /* 'A' */ - { "noatime", L"noatime", 0, EXT2_NOATIME_FL}, +#ifdef UF_SYSTEM + { "nosystem", L"nosystem", UF_SYSTEM, 0}, + { "nousystem", L"nousystem", UF_SYSTEM, 0}, #endif +#if defined(FS_UNRM_FL) /* 'u' */ + { "noundel", L"noundel", FS_UNRM_FL, 0}, +#elif defined(EXT2_UNRM_FL) + { "noundel", L"noundel", EXT2_UNRM_FL, 0}, +#endif -#if defined(FS_DIRTY_FL) - { "nocompdirty",L"nocompdirty", FS_DIRTY_FL, 0}, -#elif defined(EXT2_DIRTY_FL) - { "nocompdirty",L"nocompdirty", EXT2_DIRTY_FL, 0}, +#if defined(FS_COMPR_FL) /* 'c' */ + { "nocompress", L"nocompress", FS_COMPR_FL, 0}, +#elif defined(EXT2_COMPR_FL) + { "nocompress", L"nocompress", EXT2_COMPR_FL, 0}, #endif -#if defined(FS_COMPRBLK_FL) -#if defined(FS_NOCOMPR_FL) - { "nocomprblk", L"nocomprblk", FS_COMPRBLK_FL, FS_NOCOMPR_FL}, -#else - { "nocomprblk", L"nocomprblk", FS_COMPRBLK_FL, 0}, +#if defined(FS_NOATIME_FL) /* 'A' */ + { "noatime", L"noatime", 0, FS_NOATIME_FL}, +#elif defined(EXT2_NOATIME_FL) + { "noatime", L"noatime", 0, EXT2_NOATIME_FL}, #endif -#elif defined(EXT2_COMPRBLK_FL) -#if defined(EXT2_NOCOMPR_FL) - { "nocomprblk", L"nocomprblk", EXT2_COMPRBLK_FL, EXT2_NOCOMPR_FL}, -#else - { "nocomprblk", L"nocomprblk", EXT2_COMPRBLK_FL, 0}, -#endif -#endif -#if defined(FS_DIRSYNC_FL) - { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0}, +#if defined(FS_DIRSYNC_FL) /* 'D' */ + { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0}, #elif defined(EXT2_DIRSYNC_FL) - { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0}, + { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0}, #endif -#if defined(FS_INDEX_FL) - { "nohashidx", L"nohashidx", FS_INDEX_FL, 0}, -#elif defined(EXT2_INDEX_FL) - { "nohashidx", L"nohashidx", EXT2_INDEX_FL, 0}, -#endif -#if defined(FS_IMAGIC_FL) - { "noimagic", L"noimagic", FS_IMAGIC_FL, 0}, -#elif defined(EXT2_IMAGIC_FL) - { "noimagic", L"noimagic", EXT2_IMAGIC_FL, 0}, -#endif -#if defined(FS_JOURNAL_DATA_FL) - { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0}, +#if defined(FS_JOURNAL_DATA_FL) /* 'j' */ + { "nojournal-data",L"nojournal-data", FS_JOURNAL_DATA_FL, 0}, + { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0}, #elif defined(EXT3_JOURNAL_DATA_FL) - { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0}, + { "nojournal-data",L"nojournal-data", EXT3_JOURNAL_DATA_FL, 0}, + { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0}, #endif -#if defined(FS_SECRM_FL) - { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0}, +#if defined(FS_SECRM_FL) /* 's' */ + { "nosecdel", L"nosecdel", FS_SECRM_FL, 0}, + { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0}, #elif defined(EXT2_SECRM_FL) - { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0}, + { "nosecdel", L"nosecdel", EXT2_SECRM_FL, 0}, + { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0}, #endif -#if defined(FS_SYNC_FL) - { "nosync", L"nosync", FS_SYNC_FL, 0}, +#if defined(FS_SYNC_FL) /* 'S' */ + { "nosync", L"nosync", FS_SYNC_FL, 0}, #elif defined(EXT2_SYNC_FL) - { "nosync", L"nosync", EXT2_SYNC_FL, 0}, + { "nosync", L"nosync", EXT2_SYNC_FL, 0}, #endif -#if defined(FS_NOTAIL_FL) - { "notail", L"notail", 0, FS_NOTAIL_FL}, +#if defined(FS_NOTAIL_FL) /* 't' */ + { "notail", L"notail", 0, FS_NOTAIL_FL}, #elif defined(EXT2_NOTAIL_FL) - { "notail", L"notail", 0, EXT2_NOTAIL_FL}, + { "notail", L"notail", 0, EXT2_NOTAIL_FL}, #endif -#if defined(FS_TOPDIR_FL) - { "notopdir", L"notopdir", FS_TOPDIR_FL, 0}, +#if defined(FS_TOPDIR_FL) /* 'T' */ + { "notopdir", L"notopdir", FS_TOPDIR_FL, 0}, #elif defined(EXT2_TOPDIR_FL) - { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0}, + { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0}, #endif -#ifdef FS_ENCRYPT_FL - { "noencrypt", L"noencrypt", FS_ENCRYPT_FL, 0}, +#ifdef FS_NOCOW_FL /* 'C' */ + { "nocow", L"nocow", 0, FS_NOCOW_FL}, #endif -#ifdef FS_HUGE_FILE_FL - { "nohugefile", L"nohugefile", FS_HUGE_FILE_FL, 0}, +#ifdef FS_PROJINHERIT_FL /* 'P' */ + { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0}, #endif -#ifdef FS_EXTENT_FL - { "noextent", L"noextent", FS_EXTENT_FL, 0}, -#endif -#ifdef FS_EA_INODE_FL - { "noeainode", L"noeainode", FS_EA_INODE_FL, 0}, -#endif -#ifdef FS_EOFBLOCKS_FL - { "noeofblocks",L"noeofblocks", FS_EOFBLOCKS_FL, 0}, -#endif -#ifdef FS_NOCOW_FL - { "nocow", L"nocow", FS_NOCOW_FL, 0}, -#endif -#ifdef FS_INLINE_DATA_FL - { "noinlinedata",L"noinlinedata", FS_INLINE_DATA_FL, 0}, -#endif -#ifdef FS_PROJINHERIT_FL - { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0}, -#endif -#if defined(FS_RESERVED_FL) - { "noreserved", L"noreserved", FS_RESERVED_FL, 0}, -#elif defined(EXT2_RESERVED_FL) - { "noreserved", L"noreserved", EXT2_RESERVED_FL, 0}, -#endif - { NULL, NULL, 0, 0 } + { NULL, NULL, 0, 0} }; /* Modified: stable/12/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Apr 10 21:45:23 2019 (r346103) @@ -163,6 +163,9 @@ archive_read_disk_entry_from_file(struct archive *_a, int initial_fd = fd; int r, r1; + archive_check_magic(_a, ARCHIVE_READ_DISK_MAGIC, ARCHIVE_STATE_ANY, + "archive_read_disk_entry_from_file"); + archive_clear_error(_a); path = archive_entry_sourcepath(entry); if (path == NULL) Modified: stable/12/contrib/libarchive/libarchive/archive_read_support_format_rar5.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Wed Apr 10 21:45:23 2019 (r346103) @@ -517,15 +517,16 @@ static int run_e8e9_filter(struct rar5* rar, struct fi const uint32_t file_size = 0x1000000; ssize_t i; + const int mask = (int)rar->cstate.window_mask; circular_memcpy(rar->cstate.filtered_buf, rar->cstate.window_buf, - rar->cstate.window_mask, + mask, rar->cstate.solid_offset + flt->block_start, rar->cstate.solid_offset + flt->block_start + flt->block_length); for(i = 0; i < flt->block_length - 4;) { uint8_t b = rar->cstate.window_buf[(rar->cstate.solid_offset + - flt->block_start + i++) & rar->cstate.window_mask]; + flt->block_start + i++) & mask]; /* 0xE8 = x86's call (function call) * 0xE9 = x86's jmp (unconditional jump) */ @@ -534,17 +535,17 @@ static int run_e8e9_filter(struct rar5* rar, struct fi uint32_t addr; uint32_t offset = (i + flt->block_start) % file_size; - addr = read_filter_data(rar, (rar->cstate.solid_offset + + addr = read_filter_data(rar, (uint32_t)(rar->cstate.solid_offset + flt->block_start + i) & rar->cstate.window_mask); if(addr & 0x80000000) { if(((addr + offset) & 0x80000000) == 0) { - write_filter_data(rar, i, addr + file_size); + write_filter_data(rar, (uint32_t)i, addr + file_size); } } else { if((addr - file_size) & 0x80000000) { uint32_t naddr = addr - offset; - write_filter_data(rar, i, naddr); + write_filter_data(rar, (uint32_t)i, naddr); } } @@ -558,11 +559,11 @@ static int run_e8e9_filter(struct rar5* rar, struct fi static int run_arm_filter(struct rar5* rar, struct filter_info* flt) { ssize_t i = 0; uint32_t offset; - const int mask = rar->cstate.window_mask; + const int mask = (int)rar->cstate.window_mask; circular_memcpy(rar->cstate.filtered_buf, rar->cstate.window_buf, - rar->cstate.window_mask, + mask, rar->cstate.solid_offset + flt->block_start, rar->cstate.solid_offset + flt->block_start + flt->block_length); @@ -577,7 +578,7 @@ static int run_arm_filter(struct rar5* rar, struct fil offset -= (uint32_t) ((i + flt->block_start) / 4); offset = (offset & 0x00ffffff) | 0xeb000000; - write_filter_data(rar, i, offset); + write_filter_data(rar, (uint32_t)i, offset); } } @@ -643,7 +644,7 @@ static int run_filter(struct archive_read* a, struct f static void push_data(struct archive_read* a, struct rar5* rar, const uint8_t* buf, int64_t idx_begin, int64_t idx_end) { - const int wmask = rar->cstate.window_mask; + const int wmask = (int)rar->cstate.window_mask; const ssize_t solid_write_ptr = (rar->cstate.solid_offset + rar->cstate.last_write_ptr) & wmask; @@ -1716,8 +1717,8 @@ static int process_base_block(struct archive_read* a, rar->generic.split_after = (header_flags & HFL_SPLIT_AFTER) > 0; rar->generic.split_before = (header_flags & HFL_SPLIT_BEFORE) > 0; - rar->generic.size = hdr_size; - rar->generic.last_header_id = header_id; + rar->generic.size = (int)hdr_size; + rar->generic.last_header_id = (int)header_id; rar->main.endarc = 0; /* Those are possible header ids in RARv5. */ @@ -1933,7 +1934,7 @@ static int create_decode_tables(uint8_t* bit_length, } } - quick_data_size = 1 << table->quick_bits; + quick_data_size = (int64_t)1 << table->quick_bits; cur_len = 1; for(code = 0; code < quick_data_size; code++) { int bit_field = code << (16 - table->quick_bits); @@ -2364,7 +2365,7 @@ static int decode_code_length(struct rar5* rar, const static int copy_string(struct archive_read* a, int len, int dist) { struct rar5* rar = get_context(a); - const int cmask = rar->cstate.window_mask; + const int cmask = (int)rar->cstate.window_mask; const int64_t write_ptr = rar->cstate.write_ptr + rar->cstate.solid_offset; int i; @@ -2390,7 +2391,7 @@ static int do_uncompress_block(struct archive_read* a, uint16_t num; int ret; - const int cmask = rar->cstate.window_mask; + const int cmask = (int)rar->cstate.window_mask; const struct compressed_block_header* hdr = &rar->last_block_hdr; const uint8_t bit_size = 1 + bf_bit_size(hdr); Modified: stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Apr 10 21:45:23 2019 (r346103) @@ -194,6 +194,7 @@ struct zip { ssize_t zipx_ppmd_read_compressed; CPpmd8 ppmd8; char ppmd8_valid; + char ppmd8_stream_failed; struct archive_string_conv *sconv; struct archive_string_conv *sconv_default; @@ -254,9 +255,15 @@ ppmd_read(void* p) { /* Get the handle to current decompression context. */ struct archive_read *a = ((IByteIn*)p)->a; struct zip *zip = (struct zip*) a->format->data; + ssize_t bytes_avail = 0; /* Fetch next byte. */ - const uint8_t* data = __archive_read_ahead(a, 1, NULL); + const uint8_t* data = __archive_read_ahead(a, 1, &bytes_avail); + if(bytes_avail < 1) { + zip->ppmd8_stream_failed = 1; + return 0; + } + __archive_read_consume(a, 1); /* Increment the counter. */ @@ -1750,6 +1757,7 @@ zipx_ppmd8_init(struct archive_read *a, struct zip *zi /* Create a new decompression context. */ __archive_ppmd8_functions.Ppmd8_Construct(&zip->ppmd8); + zip->ppmd8_stream_failed = 0; /* Setup function pointers required by Ppmd8 decompressor. The * 'ppmd_read' function will feed new bytes to the decompressor, @@ -1869,6 +1877,14 @@ zip_read_data_zipx_ppmd(struct archive_read *a, const break; } + /* This field is set by ppmd_read() when there was no more data + * to be read. */ + if(zip->ppmd8_stream_failed) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Truncated PPMd8 file body"); + return (ARCHIVE_FATAL); + } + zip->uncompressed_buffer[consumed_bytes] = (uint8_t) sym; ++consumed_bytes; } while(consumed_bytes < zip->uncompressed_buffer_size); @@ -1902,7 +1918,7 @@ zipx_bzip2_init(struct archive_read *a, struct zip *zi { int r; - /* Deallocate already existing BZ2 decompression context if it + /* Deallocate already existing BZ2 decompression context if it * exists. */ if(zip->bzstream_valid) { BZ2_bzDecompressEnd(&zip->bzstream); @@ -1968,6 +1984,15 @@ zip_read_data_zipx_bzip2(struct archive_read *a, const } in_bytes = zipmin(zip->entry_bytes_remaining, bytes_avail); + if(in_bytes < 1) { + /* libbz2 doesn't complain when caller feeds avail_in == 0. It will + * actually return success in this case, which is undesirable. This is + * why we need to make this check manually. */ + + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Truncated bzip2 file body"); + return (ARCHIVE_FATAL); + } /* Setup buffer boundaries. */ zip->bzstream.next_in = (char*)(uintptr_t) compressed_buff; Modified: stable/12/contrib/libarchive/libarchive/archive_string.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_string.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/archive_string.c Wed Apr 10 21:45:23 2019 (r346103) @@ -1512,8 +1512,10 @@ get_current_codepage(void) p = strrchr(locale, '.'); if (p == NULL) return (GetACP()); + if (strcmp(p+1, "utf8") == 0) + return CP_UTF8; cp = my_atoi(p+1); - if (cp <= 0) + if ((int)cp <= 0) return (GetACP()); return (cp); } @@ -4050,6 +4052,7 @@ archive_mstring_copy_utf8(struct archive_mstring *aes, { if (utf8 == NULL) { aes->aes_set = 0; + return (0); } aes->aes_set = AES_SET_UTF8; archive_string_empty(&(aes->aes_mbs)); @@ -4064,6 +4067,7 @@ archive_mstring_copy_wcs_len(struct archive_mstring *a { if (wcs == NULL) { aes->aes_set = 0; + return (0); } aes->aes_set = AES_SET_WCS; /* Only WCS form set. */ archive_string_empty(&(aes->aes_mbs)); Modified: stable/12/contrib/libarchive/libarchive/archive_write_disk_posix.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_write_disk_posix.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/archive_write_disk_posix.c Wed Apr 10 21:45:23 2019 (r346103) @@ -2588,8 +2588,11 @@ check_symlinks_fsobj(char *path, int *a_eno, struct ar */ restore_pwd = open(".", O_RDONLY | O_BINARY | O_CLOEXEC); __archive_ensure_cloexec_flag(restore_pwd); - if (restore_pwd < 0) + if (restore_pwd < 0) { + fsobj_error(a_eno, a_estr, errno, + "Could not open ", path); return (ARCHIVE_FATAL); + } head = path; tail = path; last = 0; @@ -3128,12 +3131,14 @@ create_dir(struct archive_write_disk *a, char *path) static int set_ownership(struct archive_write_disk *a) { -#ifndef __CYGWIN__ -/* unfortunately, on win32 there is no 'root' user with uid 0, - so we just have to try the chown and see if it works */ - - /* If we know we can't change it, don't bother trying. */ - if (a->user_uid != 0 && a->user_uid != a->uid) { +#if !defined(__CYGWIN__) && !defined(__linux__) +/* + * On Linux, a process may have the CAP_CHOWN capability. + * On Windows there is no 'root' user with uid 0. + * Elsewhere we can skip calling chown if we are not root and the desired + * user id does not match the current user. + */ + if (a->user_uid != 0 && a->user_uid != a->uid) { archive_set_error(&a->archive, errno, "Can't set UID=%jd", (intmax_t)a->uid); return (ARCHIVE_WARN); @@ -3500,9 +3505,7 @@ set_fflags(struct archive_write_disk *a) struct fixup_entry *le; unsigned long set, clear; int r; - int critical_flags; mode_t mode = archive_entry_mode(a->entry); - /* * Make 'critical_flags' hold all file flags that can't be * immediately restored. For example, on BSD systems, @@ -3518,33 +3521,33 @@ set_fflags(struct archive_write_disk *a) * other programs that might try to muck with files as they're * being restored. */ - /* Hopefully, the compiler will optimize this mess into a constant. */ - critical_flags = 0; + const int critical_flags = 0 #ifdef SF_IMMUTABLE - critical_flags |= SF_IMMUTABLE; + | SF_IMMUTABLE #endif #ifdef UF_IMMUTABLE - critical_flags |= UF_IMMUTABLE; + | UF_IMMUTABLE #endif #ifdef SF_APPEND - critical_flags |= SF_APPEND; + | SF_APPEND #endif #ifdef UF_APPEND - critical_flags |= UF_APPEND; + | UF_APPEND #endif #if defined(FS_APPEND_FL) - critical_flags |= FS_APPEND_FL; + | FS_APPEND_FL #elif defined(EXT2_APPEND_FL) - critical_flags |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #if defined(FS_IMMUTABLE_FL) - critical_flags |= FS_IMMUTABLE_FL; + | FS_IMMUTABLE_FL #elif defined(EXT2_IMMUTABLE_FL) - critical_flags |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif #ifdef FS_JOURNAL_DATA_FL - critical_flags |= FS_JOURNAL_DATA_FL; + | FS_JOURNAL_DATA_FL #endif + ; if (a->todo & TODO_FFLAGS) { archive_entry_fflags(a->entry, &set, &clear); @@ -3575,29 +3578,27 @@ set_fflags(struct archive_write_disk *a) static int clear_nochange_fflags(struct archive_write_disk *a) { - int nochange_flags; mode_t mode = archive_entry_mode(a->entry); - - /* Hopefully, the compiler will optimize this mess into a constant. */ - nochange_flags = 0; + const int nochange_flags = 0 #ifdef SF_IMMUTABLE - nochange_flags |= SF_IMMUTABLE; + | SF_IMMUTABLE #endif #ifdef UF_IMMUTABLE - nochange_flags |= UF_IMMUTABLE; + | UF_IMMUTABLE #endif #ifdef SF_APPEND - nochange_flags |= SF_APPEND; + | SF_APPEND #endif #ifdef UF_APPEND - nochange_flags |= UF_APPEND; + | UF_APPEND #endif #ifdef EXT2_APPEND_FL - nochange_flags |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #ifdef EXT2_IMMUTABLE_FL - nochange_flags |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif + ; return (set_fflags_platform(a, a->fd, a->name, mode, 0, nochange_flags)); @@ -3613,8 +3614,22 @@ set_fflags_platform(struct archive_write_disk *a, int mode_t mode, unsigned long set, unsigned long clear) { int r; - + const int sf_mask = 0 +#ifdef SF_APPEND + | SF_APPEND +#endif +#ifdef SF_ARCHIVED + | SF_ARCHIVED +#endif +#ifdef SF_IMMUTABLE + | SF_IMMUTABLE +#endif +#ifdef SF_NOUNLINK + | SF_NOUNLINK +#endif + ; (void)mode; /* UNUSED */ + if (set == 0 && clear == 0) return (ARCHIVE_OK); @@ -3629,6 +3644,12 @@ set_fflags_platform(struct archive_write_disk *a, int a->st.st_flags &= ~clear; a->st.st_flags |= set; + + /* Only super-user may change SF_* flags */ + + if (a->user_uid != 0) + a->st.st_flags &= ~sf_mask; + #ifdef HAVE_FCHFLAGS /* If platform has fchflags() and we were given an fd, use it. */ if (fd >= 0 && fchflags(fd, a->st.st_flags) == 0) @@ -3670,22 +3691,6 @@ set_fflags_platform(struct archive_write_disk *a, int int ret; int myfd = fd; int newflags, oldflags; - int sf_mask = 0; - - if (set == 0 && clear == 0) - return (ARCHIVE_OK); - /* Only regular files and dirs can have flags. */ - if (!S_ISREG(mode) && !S_ISDIR(mode)) - return (ARCHIVE_OK); - - /* If we weren't given an fd, open it ourselves. */ - if (myfd < 0) { - myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | O_CLOEXEC); - __archive_ensure_cloexec_flag(myfd); - } - if (myfd < 0) - return (ARCHIVE_OK); - /* * Linux has no define for the flags that are only settable by * the root user. This code may seem a little complex, but @@ -3693,19 +3698,36 @@ set_fflags_platform(struct archive_write_disk *a, int * defines. (?) The code below degrades reasonably gracefully * if sf_mask is incomplete. */ + const int sf_mask = 0 #if defined(FS_IMMUTABLE_FL) - sf_mask |= FS_IMMUTABLE_FL; + | FS_IMMUTABLE_FL #elif defined(EXT2_IMMUTABLE_FL) - sf_mask |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif #if defined(FS_APPEND_FL) - sf_mask |= FS_APPEND_FL; + | FS_APPEND_FL #elif defined(EXT2_APPEND_FL) - sf_mask |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #if defined(FS_JOURNAL_DATA_FL) - sf_mask |= FS_JOURNAL_DATA_FL; + | FS_JOURNAL_DATA_FL #endif + ; + + if (set == 0 && clear == 0) + return (ARCHIVE_OK); + /* Only regular files and dirs can have flags. */ + if (!S_ISREG(mode) && !S_ISDIR(mode)) + return (ARCHIVE_OK); + + /* If we weren't given an fd, open it ourselves. */ + if (myfd < 0) { + myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | O_CLOEXEC); + __archive_ensure_cloexec_flag(myfd); + } + if (myfd < 0) + return (ARCHIVE_OK); + /* * XXX As above, this would be way simpler if we didn't have * to read the current flags from disk. XXX Modified: stable/12/contrib/libarchive/libarchive/archive_write_set_format_7zip.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Wed Apr 10 21:45:23 2019 (r346103) @@ -439,7 +439,8 @@ _7z_write_header(struct archive_write *a, struct archi r = file_new(a, entry, &file); if (r < ARCHIVE_WARN) { - file_free(file); + if (file != NULL) + file_free(file); return (r); } if (file->size == 0 && file->dir) { Modified: stable/12/contrib/libarchive/libarchive/test/test_entry.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/test/test_entry.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/test/test_entry.c Wed Apr 10 21:45:23 2019 (r346103) @@ -336,7 +336,7 @@ DEFINE_TEST(test_entry) /* Converting fflags bitmap to string is currently system-dependent. */ /* TODO: Make this system-independent. */ assertEqualString(archive_entry_fflags_text(e), - "uappnd,nouchg,nodump,noopaque,uunlnk"); + "uappnd,nouchg,nodump,noopaque,uunlnk,nosystem"); /* Test archive_entry_copy_fflags_text_w() */ archive_entry_copy_fflags_text_w(e, L" ,nouappnd, nouchg, dump,uunlnk"); archive_entry_fflags(e, &set, &clear); Modified: stable/12/contrib/libarchive/libarchive/test/test_read_format_rar5.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/test/test_read_format_rar5.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/test/test_read_format_rar5.c Wed Apr 10 21:45:23 2019 (r346103) @@ -96,7 +96,7 @@ int extract_one(struct archive* a, struct archive_entr int ret = 1; uint32_t computed_crc; - fsize = archive_entry_size(ae); + fsize = (la_ssize_t) archive_entry_size(ae); buf = malloc(fsize); if(buf == NULL) return 1; @@ -110,13 +110,13 @@ int extract_one(struct archive* a, struct archive_entr computed_crc = crc32(0, buf, fsize); assertEqualInt(computed_crc, crc); ret = 0; - + fn_exit: free(buf); return ret; } -DEFINE_TEST(test_read_format_rar5_stored) +DEFINE_TEST(test_read_format_rar5_stored) { const char helloworld_txt[] = "hello libarchive test suite!\n"; la_ssize_t file_size = sizeof(helloworld_txt) - 1; @@ -143,7 +143,7 @@ DEFINE_TEST(test_read_format_rar5_stored) DEFINE_TEST(test_read_format_rar5_compressed) { const int DATA_SIZE = 1200; - uint8_t buff[DATA_SIZE]; + uint8_t buff[1200]; PROLOGUE("test_read_format_rar5_compressed.rar"); @@ -161,7 +161,7 @@ DEFINE_TEST(test_read_format_rar5_compressed) DEFINE_TEST(test_read_format_rar5_multiple_files) { const int DATA_SIZE = 4096; - uint8_t buff[DATA_SIZE]; + uint8_t buff[4096]; PROLOGUE("test_read_format_rar5_multiple_files.rar"); @@ -173,7 +173,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files) assertEqualInt(DATA_SIZE, archive_entry_size(ae)); assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE)); assertA(verify_data(buff, 1, DATA_SIZE)); - + assertA(0 == archive_read_next_header(a, &ae)); assertEqualString("test2.bin", archive_entry_pathname(ae)); assertEqualInt(DATA_SIZE, archive_entry_size(ae)); @@ -207,7 +207,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files) DEFINE_TEST(test_read_format_rar5_multiple_files_solid) { const int DATA_SIZE = 4096; - uint8_t buff[DATA_SIZE]; + uint8_t buff[4096]; PROLOGUE("test_read_format_rar5_multiple_files_solid.rar"); @@ -216,7 +216,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files_solid assertEqualInt(DATA_SIZE, archive_entry_size(ae)); assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE)); assertA(verify_data(buff, 1, DATA_SIZE)); - + assertA(0 == archive_read_next_header(a, &ae)); assertEqualString("test2.bin", archive_entry_pathname(ae)); assertEqualInt(DATA_SIZE, archive_entry_size(ae)); @@ -309,7 +309,7 @@ DEFINE_TEST(test_read_format_rar5_multiarchive_skip_al DEFINE_TEST(test_read_format_rar5_blake2) { const la_ssize_t proper_size = 814; - uint8_t buf[proper_size]; + uint8_t buf[814]; PROLOGUE("test_read_format_rar5_blake2.rar"); assertA(0 == archive_read_next_header(a, &ae)); @@ -334,7 +334,7 @@ DEFINE_TEST(test_read_format_rar5_arm_filter) * test. */ const la_ssize_t proper_size = 90808; - uint8_t buf[proper_size]; + uint8_t buf[90808]; PROLOGUE("test_read_format_rar5_arm.rar"); assertA(0 == archive_read_next_header(a, &ae)); @@ -598,7 +598,7 @@ DEFINE_TEST(test_read_format_rar5_multiarchive_solid_s EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all) +DEFINE_TEST(test_read_format_rar5_solid_skip_all) { const char* reffile = "test_read_format_rar5_solid.rar"; @@ -623,7 +623,7 @@ DEFINE_TEST(test_read_format_rar5_solid_skip_all) EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_first) +DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_first) { const char* reffile = "test_read_format_rar5_solid.rar"; @@ -649,7 +649,7 @@ DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_f EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_second) +DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_second) { const char* reffile = "test_read_format_rar5_solid.rar"; Modified: stable/12/contrib/libarchive/libarchive/test/test_read_format_xar.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/test/test_read_format_xar.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/test/test_read_format_xar.c Wed Apr 10 21:45:23 2019 (r346103) @@ -799,7 +799,7 @@ static void verify(unsigned char *d, size_t s, static void verifyB(unsigned char *d, size_t s) { struct archive* a; struct archive_entry *entry = NULL; - la_int64_t buf_size; + size_t buf_size; unsigned char *buf; assert((a = archive_read_new()) != NULL); @@ -826,20 +826,20 @@ static void verifyB(unsigned char *d, size_t s) { // f1, content "onetwothree\n", size 12 bytes assertA(0 == archive_read_next_header(a, &entry)); - buf_size = archive_entry_size(entry); + buf_size = (size_t) archive_entry_size(entry); assertA(buf_size == 12); buf = (unsigned char*) malloc(buf_size); assertA(NULL != buf); - assertA(buf_size == archive_read_data(a, buf, buf_size)); + assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size)); free(buf); // f2, content "fourfivesix\n", size 12 bytes assertA(0 == archive_read_next_header(a, &entry)); - buf_size = archive_entry_size(entry); + buf_size = (size_t) archive_entry_size(entry); assertA(buf_size == 12); buf = (unsigned char*) malloc(buf_size); assertA(NULL != buf); - assertA(buf_size == archive_read_data(a, buf, buf_size)); + assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size)); free(buf); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); Modified: stable/12/contrib/libarchive/libarchive/test/test_read_format_zip.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/test/test_read_format_zip.c Wed Apr 10 21:29:37 2019 (r346102) +++ stable/12/contrib/libarchive/libarchive/test/test_read_format_zip.c Wed Apr 10 21:45:23 2019 (r346103) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Wed Apr 10 21:46:10 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED999156E735; Wed, 10 Apr 2019 21:46:09 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A0AA48D22D; Wed, 10 Apr 2019 21:46:09 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5EBBC8B2; Wed, 10 Apr 2019 21:46:09 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3ALk9Zg089450; Wed, 10 Apr 2019 21:46:09 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3ALk6xv089437; Wed, 10 Apr 2019 21:46:06 GMT (envelope-from mm@FreeBSD.org) Message-Id: <201904102146.x3ALk6xv089437@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 10 Apr 2019 21:46: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: r346104 - in stable/11: contrib/libarchive/libarchive contrib/libarchive/libarchive/test lib/libarchive/tests X-SVN-Group: stable-11 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/11: contrib/libarchive/libarchive contrib/libarchive/libarchive/test lib/libarchive/tests X-SVN-Commit-Revision: 346104 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A0AA48D22D X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.92 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.92)[-0.923,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Apr 2019 21:46:10 -0000 Author: mm Date: Wed Apr 10 21:46:06 2019 New Revision: 346104 URL: https://svnweb.freebsd.org/changeset/base/346104 Log: MFC r345497: Sync libarchive with vendor. Relevant vendor changes: PR #1153: fixed 2 bugs in ZIP reader [1] PR #1143: ensure archive_read_disk_entry_from_file() uses ARCHIVE_READ_DISK Changes to file flags code, support more file flags on FreeBSD: UF_OFFLINE, UF_READONLY, UF_SPARSE, UF_REPARSE, UF_SYSTEM UF_ARCHIVE is not supported by intention (yet) PR: 236300 [1] Added: stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_bz2_hang.zip.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_bz2_hang.zip.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu Modified: stable/11/contrib/libarchive/libarchive/archive_blake2sp_ref.c stable/11/contrib/libarchive/libarchive/archive_entry.c stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_rar5.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/11/contrib/libarchive/libarchive/archive_string.c stable/11/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_7zip.c stable/11/contrib/libarchive/libarchive/test/test_entry.c stable/11/contrib/libarchive/libarchive/test/test_read_format_rar5.c stable/11/contrib/libarchive/libarchive/test/test_read_format_xar.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/11/lib/libarchive/tests/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/libarchive/libarchive/archive_blake2sp_ref.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_blake2sp_ref.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/archive_blake2sp_ref.c Wed Apr 10 21:46:06 2019 (r346104) @@ -89,7 +89,7 @@ int blake2sp_init( blake2sp_state *S, size_t outlen ) return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S->S[i], outlen, 0, (uint32_t)i ) < 0 ) return -1; S->R->last_node = 1; S->S[PARALLELISM_DEGREE - 1]->last_node = 1; @@ -112,7 +112,7 @@ int blake2sp_init_key( blake2sp_state *S, size_t outle return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S->S[i], outlen, keylen, (uint32_t)i ) < 0 ) return -1; S->R->last_node = 1; S->S[PARALLELISM_DEGREE - 1]->last_node = 1; @@ -230,7 +230,7 @@ int blake2sp( void *out, size_t outlen, const void *in if( keylen > BLAKE2S_KEYBYTES ) return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S[i], outlen, keylen, (uint32_t)i ) < 0 ) return -1; S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ Modified: stable/11/contrib/libarchive/libarchive/archive_entry.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/archive_entry.c Wed Apr 10 21:46:06 2019 (r346104) @@ -1632,6 +1632,51 @@ _archive_entry_acl_text_l(struct archive_entry *entry, * SUCH DAMAGE. */ +/* + * Supported file flags on FreeBSD and Mac OS: + * sappnd,sappend SF_APPEND + * arch,archived SF_ARCHIVED + * schg,schange,simmutable SF_IMMUTABLE + * sunlnk,sunlink SF_NOUNLINK (FreeBSD only) + * uappnd,uappend UF_APPEND + * compressed UF_COMPRESSED (Mac OS only) + * hidden,uhidden UF_HIDDEN + * uchg,uchange,uimmutable UF_IMMUTABLE + * nodump UF_NODUMP + * uunlnk,uunlink UF_NOUNLINK (FreeBSD only) + * offline,uoffline UF_OFFLINE (FreeBSD only) + * opaque UF_OPAQUE + * rdonly,urdonly,readonly UF_READONLY (FreeBSD only) + * reparse,ureparse UF_REPARSE (FreeBSD only) + * sparse,usparse UF_SPARSE (FreeBSD only) + * system,usystem UF_SYSTEM (FreeBSD only) + * + * See chflags(2) for more information + * + * Supported file attributes on Linux: + * a append only FS_APPEND_FL sappnd + * A no atime updates FS_NOATIME_FL atime + * c compress FS_COMPR_FL compress + * C no copy on write FS_NOCOW_FL cow + * d no dump FS_NODUMP_FL dump + * D synchronous directory updates FS_DIRSYNC_FL dirsync + * i immutable FS_IMMUTABLE_FL schg + * j data journalling FS_JOURNAL_DATA_FL journal + * P project hierarchy FS_PROJINHERIT_FL projinherit + * s secure deletion FS_SECRM_FL securedeletion + * S synchronous updates FS_SYNC_FL sync + * t no tail-merging FS_NOTAIL_FL tail + * T top of directory hierarchy FS_TOPDIR_FL topdir + * u undeletable FS_UNRM_FL undel + * + * See ioctl_iflags(2) for more information + * + * Equivalent file flags supported on FreeBSD / Mac OS and Linux: + * SF_APPEND FS_APPEND_FL sappnd + * SF_IMMUTABLE FS_IMMUTABLE_FL schg + * UF_NODUMP FS_NODUMP_FL nodump + */ + static const struct flag { const char *name; const wchar_t *wname; @@ -1640,190 +1685,149 @@ static const struct flag { } flags[] = { /* Preferred (shorter) names per flag first, all prefixed by "no" */ #ifdef SF_APPEND - { "nosappnd", L"nosappnd", SF_APPEND, 0 }, - { "nosappend", L"nosappend", SF_APPEND, 0 }, + { "nosappnd", L"nosappnd", SF_APPEND, 0}, + { "nosappend", L"nosappend", SF_APPEND, 0}, #endif #if defined(FS_APPEND_FL) /* 'a' */ - { "nosappnd", L"nosappnd", FS_APPEND_FL, 0 }, - { "nosappend", L"nosappend", FS_APPEND_FL, 0 }, + { "nosappnd", L"nosappnd", FS_APPEND_FL, 0}, + { "nosappend", L"nosappend", FS_APPEND_FL, 0}, #elif defined(EXT2_APPEND_FL) /* 'a' */ - { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0 }, - { "nosappend", L"nosappend", EXT2_APPEND_FL, 0 }, + { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0}, + { "nosappend", L"nosappend", EXT2_APPEND_FL, 0}, #endif #ifdef SF_ARCHIVED - { "noarch", L"noarch", SF_ARCHIVED, 0 }, - { "noarchived", L"noarchived", SF_ARCHIVED, 0 }, + { "noarch", L"noarch", SF_ARCHIVED, 0}, + { "noarchived", L"noarchived", SF_ARCHIVED, 0}, #endif #ifdef SF_IMMUTABLE - { "noschg", L"noschg", SF_IMMUTABLE, 0 }, - { "noschange", L"noschange", SF_IMMUTABLE, 0 }, - { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0 }, + { "noschg", L"noschg", SF_IMMUTABLE, 0}, + { "noschange", L"noschange", SF_IMMUTABLE, 0}, + { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0}, #endif #if defined(FS_IMMUTABLE_FL) /* 'i' */ - { "noschg", L"noschg", FS_IMMUTABLE_FL, 0 }, - { "noschange", L"noschange", FS_IMMUTABLE_FL, 0 }, - { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0 }, + { "noschg", L"noschg", FS_IMMUTABLE_FL, 0}, + { "noschange", L"noschange", FS_IMMUTABLE_FL, 0}, + { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0}, #elif defined(EXT2_IMMUTABLE_FL) /* 'i' */ - { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0 }, - { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0 }, - { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0 }, + { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0}, + { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0}, + { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0}, #endif #ifdef SF_NOUNLINK - { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0 }, - { "nosunlink", L"nosunlink", SF_NOUNLINK, 0 }, + { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0}, + { "nosunlink", L"nosunlink", SF_NOUNLINK, 0}, #endif -#ifdef SF_SNAPSHOT - { "nosnapshot", L"nosnapshot", SF_SNAPSHOT, 0 }, -#endif #ifdef UF_APPEND - { "nouappnd", L"nouappnd", UF_APPEND, 0 }, - { "nouappend", L"nouappend", UF_APPEND, 0 }, + { "nouappnd", L"nouappnd", UF_APPEND, 0}, + { "nouappend", L"nouappend", UF_APPEND, 0}, #endif #ifdef UF_IMMUTABLE - { "nouchg", L"nouchg", UF_IMMUTABLE, 0 }, - { "nouchange", L"nouchange", UF_IMMUTABLE, 0 }, - { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0 }, + { "nouchg", L"nouchg", UF_IMMUTABLE, 0}, + { "nouchange", L"nouchange", UF_IMMUTABLE, 0}, + { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0}, #endif #ifdef UF_NODUMP { "nodump", L"nodump", 0, UF_NODUMP}, #endif #if defined(FS_NODUMP_FL) /* 'd' */ { "nodump", L"nodump", 0, FS_NODUMP_FL}, -#elif defined(EXT2_NODUMP_FL) /* 'd' */ +#elif defined(EXT2_NODUMP_FL) { "nodump", L"nodump", 0, EXT2_NODUMP_FL}, #endif #ifdef UF_OPAQUE - { "noopaque", L"noopaque", UF_OPAQUE, 0 }, + { "noopaque", L"noopaque", UF_OPAQUE, 0}, #endif #ifdef UF_NOUNLINK - { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0 }, - { "nouunlink", L"nouunlink", UF_NOUNLINK, 0 }, + { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0}, + { "nouunlink", L"nouunlink", UF_NOUNLINK, 0}, #endif #ifdef UF_COMPRESSED - { "nocompressed",L"nocompressed", UF_COMPRESSED, 0 }, + /* Mac OS */ + { "nocompressed", L"nocompressed", UF_COMPRESSED, 0}, #endif #ifdef UF_HIDDEN - { "nohidden", L"nohidden", UF_HIDDEN, 0 }, + { "nohidden", L"nohidden", UF_HIDDEN, 0}, + { "nouhidden", L"nouhidden", UF_HIDDEN, 0}, #endif -#if defined(FS_UNRM_FL) - { "nouunlink", L"nouunlink", FS_UNRM_FL, 0}, -#elif defined(EXT2_UNRM_FL) - { "nouunlink", L"nouunlink", EXT2_UNRM_FL, 0}, +#ifdef UF_OFFLINE + { "nooffline", L"nooffline", UF_OFFLINE, 0}, + { "nouoffline", L"nouoffline", UF_OFFLINE, 0}, #endif - -#if defined(FS_BTREE_FL) - { "nobtree", L"nobtree", FS_BTREE_FL, 0 }, -#elif defined(EXT2_BTREE_FL) - { "nobtree", L"nobtree", EXT2_BTREE_FL, 0 }, +#ifdef UF_READONLY + { "nordonly", L"nordonly", UF_READONLY, 0}, + { "nourdonly", L"nourdonly", UF_READONLY, 0}, + { "noreadonly", L"noreadonly", UF_READONLY, 0}, #endif - -#if defined(FS_ECOMPR_FL) - { "nocomperr", L"nocomperr", FS_ECOMPR_FL, 0 }, -#elif defined(EXT2_ECOMPR_FL) - { "nocomperr", L"nocomperr", EXT2_ECOMPR_FL, 0 }, +#ifdef UF_SPARSE + { "nosparse", L"nosparse", UF_SPARSE, 0}, + { "nousparse", L"nousparse", UF_SPARSE, 0}, #endif - -#if defined(FS_COMPR_FL) /* 'c' */ - { "nocompress", L"nocompress", FS_COMPR_FL, 0 }, -#elif defined(EXT2_COMPR_FL) /* 'c' */ - { "nocompress", L"nocompress", EXT2_COMPR_FL, 0 }, +#ifdef UF_REPARSE + { "noreparse", L"noreparse", UF_REPARSE, 0}, + { "noureparse", L"noureparse", UF_REPARSE, 0}, #endif - -#if defined(FS_NOATIME_FL) /* 'A' */ - { "noatime", L"noatime", 0, FS_NOATIME_FL}, -#elif defined(EXT2_NOATIME_FL) /* 'A' */ - { "noatime", L"noatime", 0, EXT2_NOATIME_FL}, +#ifdef UF_SYSTEM + { "nosystem", L"nosystem", UF_SYSTEM, 0}, + { "nousystem", L"nousystem", UF_SYSTEM, 0}, #endif +#if defined(FS_UNRM_FL) /* 'u' */ + { "noundel", L"noundel", FS_UNRM_FL, 0}, +#elif defined(EXT2_UNRM_FL) + { "noundel", L"noundel", EXT2_UNRM_FL, 0}, +#endif -#if defined(FS_DIRTY_FL) - { "nocompdirty",L"nocompdirty", FS_DIRTY_FL, 0}, -#elif defined(EXT2_DIRTY_FL) - { "nocompdirty",L"nocompdirty", EXT2_DIRTY_FL, 0}, +#if defined(FS_COMPR_FL) /* 'c' */ + { "nocompress", L"nocompress", FS_COMPR_FL, 0}, +#elif defined(EXT2_COMPR_FL) + { "nocompress", L"nocompress", EXT2_COMPR_FL, 0}, #endif -#if defined(FS_COMPRBLK_FL) -#if defined(FS_NOCOMPR_FL) - { "nocomprblk", L"nocomprblk", FS_COMPRBLK_FL, FS_NOCOMPR_FL}, -#else - { "nocomprblk", L"nocomprblk", FS_COMPRBLK_FL, 0}, +#if defined(FS_NOATIME_FL) /* 'A' */ + { "noatime", L"noatime", 0, FS_NOATIME_FL}, +#elif defined(EXT2_NOATIME_FL) + { "noatime", L"noatime", 0, EXT2_NOATIME_FL}, #endif -#elif defined(EXT2_COMPRBLK_FL) -#if defined(EXT2_NOCOMPR_FL) - { "nocomprblk", L"nocomprblk", EXT2_COMPRBLK_FL, EXT2_NOCOMPR_FL}, -#else - { "nocomprblk", L"nocomprblk", EXT2_COMPRBLK_FL, 0}, -#endif -#endif -#if defined(FS_DIRSYNC_FL) - { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0}, +#if defined(FS_DIRSYNC_FL) /* 'D' */ + { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0}, #elif defined(EXT2_DIRSYNC_FL) - { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0}, + { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0}, #endif -#if defined(FS_INDEX_FL) - { "nohashidx", L"nohashidx", FS_INDEX_FL, 0}, -#elif defined(EXT2_INDEX_FL) - { "nohashidx", L"nohashidx", EXT2_INDEX_FL, 0}, -#endif -#if defined(FS_IMAGIC_FL) - { "noimagic", L"noimagic", FS_IMAGIC_FL, 0}, -#elif defined(EXT2_IMAGIC_FL) - { "noimagic", L"noimagic", EXT2_IMAGIC_FL, 0}, -#endif -#if defined(FS_JOURNAL_DATA_FL) - { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0}, +#if defined(FS_JOURNAL_DATA_FL) /* 'j' */ + { "nojournal-data",L"nojournal-data", FS_JOURNAL_DATA_FL, 0}, + { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0}, #elif defined(EXT3_JOURNAL_DATA_FL) - { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0}, + { "nojournal-data",L"nojournal-data", EXT3_JOURNAL_DATA_FL, 0}, + { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0}, #endif -#if defined(FS_SECRM_FL) - { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0}, +#if defined(FS_SECRM_FL) /* 's' */ + { "nosecdel", L"nosecdel", FS_SECRM_FL, 0}, + { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0}, #elif defined(EXT2_SECRM_FL) - { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0}, + { "nosecdel", L"nosecdel", EXT2_SECRM_FL, 0}, + { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0}, #endif -#if defined(FS_SYNC_FL) - { "nosync", L"nosync", FS_SYNC_FL, 0}, +#if defined(FS_SYNC_FL) /* 'S' */ + { "nosync", L"nosync", FS_SYNC_FL, 0}, #elif defined(EXT2_SYNC_FL) - { "nosync", L"nosync", EXT2_SYNC_FL, 0}, + { "nosync", L"nosync", EXT2_SYNC_FL, 0}, #endif -#if defined(FS_NOTAIL_FL) - { "notail", L"notail", 0, FS_NOTAIL_FL}, +#if defined(FS_NOTAIL_FL) /* 't' */ + { "notail", L"notail", 0, FS_NOTAIL_FL}, #elif defined(EXT2_NOTAIL_FL) - { "notail", L"notail", 0, EXT2_NOTAIL_FL}, + { "notail", L"notail", 0, EXT2_NOTAIL_FL}, #endif -#if defined(FS_TOPDIR_FL) - { "notopdir", L"notopdir", FS_TOPDIR_FL, 0}, +#if defined(FS_TOPDIR_FL) /* 'T' */ + { "notopdir", L"notopdir", FS_TOPDIR_FL, 0}, #elif defined(EXT2_TOPDIR_FL) - { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0}, + { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0}, #endif -#ifdef FS_ENCRYPT_FL - { "noencrypt", L"noencrypt", FS_ENCRYPT_FL, 0}, +#ifdef FS_NOCOW_FL /* 'C' */ + { "nocow", L"nocow", 0, FS_NOCOW_FL}, #endif -#ifdef FS_HUGE_FILE_FL - { "nohugefile", L"nohugefile", FS_HUGE_FILE_FL, 0}, +#ifdef FS_PROJINHERIT_FL /* 'P' */ + { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0}, #endif -#ifdef FS_EXTENT_FL - { "noextent", L"noextent", FS_EXTENT_FL, 0}, -#endif -#ifdef FS_EA_INODE_FL - { "noeainode", L"noeainode", FS_EA_INODE_FL, 0}, -#endif -#ifdef FS_EOFBLOCKS_FL - { "noeofblocks",L"noeofblocks", FS_EOFBLOCKS_FL, 0}, -#endif -#ifdef FS_NOCOW_FL - { "nocow", L"nocow", FS_NOCOW_FL, 0}, -#endif -#ifdef FS_INLINE_DATA_FL - { "noinlinedata",L"noinlinedata", FS_INLINE_DATA_FL, 0}, -#endif -#ifdef FS_PROJINHERIT_FL - { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0}, -#endif -#if defined(FS_RESERVED_FL) - { "noreserved", L"noreserved", FS_RESERVED_FL, 0}, -#elif defined(EXT2_RESERVED_FL) - { "noreserved", L"noreserved", EXT2_RESERVED_FL, 0}, -#endif - { NULL, NULL, 0, 0 } + { NULL, NULL, 0, 0} }; /* Modified: stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Apr 10 21:46:06 2019 (r346104) @@ -163,6 +163,9 @@ archive_read_disk_entry_from_file(struct archive *_a, int initial_fd = fd; int r, r1; + archive_check_magic(_a, ARCHIVE_READ_DISK_MAGIC, ARCHIVE_STATE_ANY, + "archive_read_disk_entry_from_file"); + archive_clear_error(_a); path = archive_entry_sourcepath(entry); if (path == NULL) Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_format_rar5.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Wed Apr 10 21:46:06 2019 (r346104) @@ -517,15 +517,16 @@ static int run_e8e9_filter(struct rar5* rar, struct fi const uint32_t file_size = 0x1000000; ssize_t i; + const int mask = (int)rar->cstate.window_mask; circular_memcpy(rar->cstate.filtered_buf, rar->cstate.window_buf, - rar->cstate.window_mask, + mask, rar->cstate.solid_offset + flt->block_start, rar->cstate.solid_offset + flt->block_start + flt->block_length); for(i = 0; i < flt->block_length - 4;) { uint8_t b = rar->cstate.window_buf[(rar->cstate.solid_offset + - flt->block_start + i++) & rar->cstate.window_mask]; + flt->block_start + i++) & mask]; /* 0xE8 = x86's call (function call) * 0xE9 = x86's jmp (unconditional jump) */ @@ -534,17 +535,17 @@ static int run_e8e9_filter(struct rar5* rar, struct fi uint32_t addr; uint32_t offset = (i + flt->block_start) % file_size; - addr = read_filter_data(rar, (rar->cstate.solid_offset + + addr = read_filter_data(rar, (uint32_t)(rar->cstate.solid_offset + flt->block_start + i) & rar->cstate.window_mask); if(addr & 0x80000000) { if(((addr + offset) & 0x80000000) == 0) { - write_filter_data(rar, i, addr + file_size); + write_filter_data(rar, (uint32_t)i, addr + file_size); } } else { if((addr - file_size) & 0x80000000) { uint32_t naddr = addr - offset; - write_filter_data(rar, i, naddr); + write_filter_data(rar, (uint32_t)i, naddr); } } @@ -558,11 +559,11 @@ static int run_e8e9_filter(struct rar5* rar, struct fi static int run_arm_filter(struct rar5* rar, struct filter_info* flt) { ssize_t i = 0; uint32_t offset; - const int mask = rar->cstate.window_mask; + const int mask = (int)rar->cstate.window_mask; circular_memcpy(rar->cstate.filtered_buf, rar->cstate.window_buf, - rar->cstate.window_mask, + mask, rar->cstate.solid_offset + flt->block_start, rar->cstate.solid_offset + flt->block_start + flt->block_length); @@ -577,7 +578,7 @@ static int run_arm_filter(struct rar5* rar, struct fil offset -= (uint32_t) ((i + flt->block_start) / 4); offset = (offset & 0x00ffffff) | 0xeb000000; - write_filter_data(rar, i, offset); + write_filter_data(rar, (uint32_t)i, offset); } } @@ -643,7 +644,7 @@ static int run_filter(struct archive_read* a, struct f static void push_data(struct archive_read* a, struct rar5* rar, const uint8_t* buf, int64_t idx_begin, int64_t idx_end) { - const int wmask = rar->cstate.window_mask; + const int wmask = (int)rar->cstate.window_mask; const ssize_t solid_write_ptr = (rar->cstate.solid_offset + rar->cstate.last_write_ptr) & wmask; @@ -1716,8 +1717,8 @@ static int process_base_block(struct archive_read* a, rar->generic.split_after = (header_flags & HFL_SPLIT_AFTER) > 0; rar->generic.split_before = (header_flags & HFL_SPLIT_BEFORE) > 0; - rar->generic.size = hdr_size; - rar->generic.last_header_id = header_id; + rar->generic.size = (int)hdr_size; + rar->generic.last_header_id = (int)header_id; rar->main.endarc = 0; /* Those are possible header ids in RARv5. */ @@ -1933,7 +1934,7 @@ static int create_decode_tables(uint8_t* bit_length, } } - quick_data_size = 1 << table->quick_bits; + quick_data_size = (int64_t)1 << table->quick_bits; cur_len = 1; for(code = 0; code < quick_data_size; code++) { int bit_field = code << (16 - table->quick_bits); @@ -2364,7 +2365,7 @@ static int decode_code_length(struct rar5* rar, const static int copy_string(struct archive_read* a, int len, int dist) { struct rar5* rar = get_context(a); - const int cmask = rar->cstate.window_mask; + const int cmask = (int)rar->cstate.window_mask; const int64_t write_ptr = rar->cstate.write_ptr + rar->cstate.solid_offset; int i; @@ -2390,7 +2391,7 @@ static int do_uncompress_block(struct archive_read* a, uint16_t num; int ret; - const int cmask = rar->cstate.window_mask; + const int cmask = (int)rar->cstate.window_mask; const struct compressed_block_header* hdr = &rar->last_block_hdr; const uint8_t bit_size = 1 + bf_bit_size(hdr); Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Apr 10 21:46:06 2019 (r346104) @@ -194,6 +194,7 @@ struct zip { ssize_t zipx_ppmd_read_compressed; CPpmd8 ppmd8; char ppmd8_valid; + char ppmd8_stream_failed; struct archive_string_conv *sconv; struct archive_string_conv *sconv_default; @@ -254,9 +255,15 @@ ppmd_read(void* p) { /* Get the handle to current decompression context. */ struct archive_read *a = ((IByteIn*)p)->a; struct zip *zip = (struct zip*) a->format->data; + ssize_t bytes_avail = 0; /* Fetch next byte. */ - const uint8_t* data = __archive_read_ahead(a, 1, NULL); + const uint8_t* data = __archive_read_ahead(a, 1, &bytes_avail); + if(bytes_avail < 1) { + zip->ppmd8_stream_failed = 1; + return 0; + } + __archive_read_consume(a, 1); /* Increment the counter. */ @@ -1750,6 +1757,7 @@ zipx_ppmd8_init(struct archive_read *a, struct zip *zi /* Create a new decompression context. */ __archive_ppmd8_functions.Ppmd8_Construct(&zip->ppmd8); + zip->ppmd8_stream_failed = 0; /* Setup function pointers required by Ppmd8 decompressor. The * 'ppmd_read' function will feed new bytes to the decompressor, @@ -1869,6 +1877,14 @@ zip_read_data_zipx_ppmd(struct archive_read *a, const break; } + /* This field is set by ppmd_read() when there was no more data + * to be read. */ + if(zip->ppmd8_stream_failed) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Truncated PPMd8 file body"); + return (ARCHIVE_FATAL); + } + zip->uncompressed_buffer[consumed_bytes] = (uint8_t) sym; ++consumed_bytes; } while(consumed_bytes < zip->uncompressed_buffer_size); @@ -1902,7 +1918,7 @@ zipx_bzip2_init(struct archive_read *a, struct zip *zi { int r; - /* Deallocate already existing BZ2 decompression context if it + /* Deallocate already existing BZ2 decompression context if it * exists. */ if(zip->bzstream_valid) { BZ2_bzDecompressEnd(&zip->bzstream); @@ -1968,6 +1984,15 @@ zip_read_data_zipx_bzip2(struct archive_read *a, const } in_bytes = zipmin(zip->entry_bytes_remaining, bytes_avail); + if(in_bytes < 1) { + /* libbz2 doesn't complain when caller feeds avail_in == 0. It will + * actually return success in this case, which is undesirable. This is + * why we need to make this check manually. */ + + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Truncated bzip2 file body"); + return (ARCHIVE_FATAL); + } /* Setup buffer boundaries. */ zip->bzstream.next_in = (char*)(uintptr_t) compressed_buff; Modified: stable/11/contrib/libarchive/libarchive/archive_string.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_string.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/archive_string.c Wed Apr 10 21:46:06 2019 (r346104) @@ -1512,8 +1512,10 @@ get_current_codepage(void) p = strrchr(locale, '.'); if (p == NULL) return (GetACP()); + if (strcmp(p+1, "utf8") == 0) + return CP_UTF8; cp = my_atoi(p+1); - if (cp <= 0) + if ((int)cp <= 0) return (GetACP()); return (cp); } @@ -4050,6 +4052,7 @@ archive_mstring_copy_utf8(struct archive_mstring *aes, { if (utf8 == NULL) { aes->aes_set = 0; + return (0); } aes->aes_set = AES_SET_UTF8; archive_string_empty(&(aes->aes_mbs)); @@ -4064,6 +4067,7 @@ archive_mstring_copy_wcs_len(struct archive_mstring *a { if (wcs == NULL) { aes->aes_set = 0; + return (0); } aes->aes_set = AES_SET_WCS; /* Only WCS form set. */ archive_string_empty(&(aes->aes_mbs)); Modified: stable/11/contrib/libarchive/libarchive/archive_write_disk_posix.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_write_disk_posix.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/archive_write_disk_posix.c Wed Apr 10 21:46:06 2019 (r346104) @@ -2588,8 +2588,11 @@ check_symlinks_fsobj(char *path, int *a_eno, struct ar */ restore_pwd = open(".", O_RDONLY | O_BINARY | O_CLOEXEC); __archive_ensure_cloexec_flag(restore_pwd); - if (restore_pwd < 0) + if (restore_pwd < 0) { + fsobj_error(a_eno, a_estr, errno, + "Could not open ", path); return (ARCHIVE_FATAL); + } head = path; tail = path; last = 0; @@ -3128,12 +3131,14 @@ create_dir(struct archive_write_disk *a, char *path) static int set_ownership(struct archive_write_disk *a) { -#ifndef __CYGWIN__ -/* unfortunately, on win32 there is no 'root' user with uid 0, - so we just have to try the chown and see if it works */ - - /* If we know we can't change it, don't bother trying. */ - if (a->user_uid != 0 && a->user_uid != a->uid) { +#if !defined(__CYGWIN__) && !defined(__linux__) +/* + * On Linux, a process may have the CAP_CHOWN capability. + * On Windows there is no 'root' user with uid 0. + * Elsewhere we can skip calling chown if we are not root and the desired + * user id does not match the current user. + */ + if (a->user_uid != 0 && a->user_uid != a->uid) { archive_set_error(&a->archive, errno, "Can't set UID=%jd", (intmax_t)a->uid); return (ARCHIVE_WARN); @@ -3500,9 +3505,7 @@ set_fflags(struct archive_write_disk *a) struct fixup_entry *le; unsigned long set, clear; int r; - int critical_flags; mode_t mode = archive_entry_mode(a->entry); - /* * Make 'critical_flags' hold all file flags that can't be * immediately restored. For example, on BSD systems, @@ -3518,33 +3521,33 @@ set_fflags(struct archive_write_disk *a) * other programs that might try to muck with files as they're * being restored. */ - /* Hopefully, the compiler will optimize this mess into a constant. */ - critical_flags = 0; + const int critical_flags = 0 #ifdef SF_IMMUTABLE - critical_flags |= SF_IMMUTABLE; + | SF_IMMUTABLE #endif #ifdef UF_IMMUTABLE - critical_flags |= UF_IMMUTABLE; + | UF_IMMUTABLE #endif #ifdef SF_APPEND - critical_flags |= SF_APPEND; + | SF_APPEND #endif #ifdef UF_APPEND - critical_flags |= UF_APPEND; + | UF_APPEND #endif #if defined(FS_APPEND_FL) - critical_flags |= FS_APPEND_FL; + | FS_APPEND_FL #elif defined(EXT2_APPEND_FL) - critical_flags |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #if defined(FS_IMMUTABLE_FL) - critical_flags |= FS_IMMUTABLE_FL; + | FS_IMMUTABLE_FL #elif defined(EXT2_IMMUTABLE_FL) - critical_flags |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif #ifdef FS_JOURNAL_DATA_FL - critical_flags |= FS_JOURNAL_DATA_FL; + | FS_JOURNAL_DATA_FL #endif + ; if (a->todo & TODO_FFLAGS) { archive_entry_fflags(a->entry, &set, &clear); @@ -3575,29 +3578,27 @@ set_fflags(struct archive_write_disk *a) static int clear_nochange_fflags(struct archive_write_disk *a) { - int nochange_flags; mode_t mode = archive_entry_mode(a->entry); - - /* Hopefully, the compiler will optimize this mess into a constant. */ - nochange_flags = 0; + const int nochange_flags = 0 #ifdef SF_IMMUTABLE - nochange_flags |= SF_IMMUTABLE; + | SF_IMMUTABLE #endif #ifdef UF_IMMUTABLE - nochange_flags |= UF_IMMUTABLE; + | UF_IMMUTABLE #endif #ifdef SF_APPEND - nochange_flags |= SF_APPEND; + | SF_APPEND #endif #ifdef UF_APPEND - nochange_flags |= UF_APPEND; + | UF_APPEND #endif #ifdef EXT2_APPEND_FL - nochange_flags |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #ifdef EXT2_IMMUTABLE_FL - nochange_flags |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif + ; return (set_fflags_platform(a, a->fd, a->name, mode, 0, nochange_flags)); @@ -3613,8 +3614,22 @@ set_fflags_platform(struct archive_write_disk *a, int mode_t mode, unsigned long set, unsigned long clear) { int r; - + const int sf_mask = 0 +#ifdef SF_APPEND + | SF_APPEND +#endif +#ifdef SF_ARCHIVED + | SF_ARCHIVED +#endif +#ifdef SF_IMMUTABLE + | SF_IMMUTABLE +#endif +#ifdef SF_NOUNLINK + | SF_NOUNLINK +#endif + ; (void)mode; /* UNUSED */ + if (set == 0 && clear == 0) return (ARCHIVE_OK); @@ -3629,6 +3644,12 @@ set_fflags_platform(struct archive_write_disk *a, int a->st.st_flags &= ~clear; a->st.st_flags |= set; + + /* Only super-user may change SF_* flags */ + + if (a->user_uid != 0) + a->st.st_flags &= ~sf_mask; + #ifdef HAVE_FCHFLAGS /* If platform has fchflags() and we were given an fd, use it. */ if (fd >= 0 && fchflags(fd, a->st.st_flags) == 0) @@ -3670,22 +3691,6 @@ set_fflags_platform(struct archive_write_disk *a, int int ret; int myfd = fd; int newflags, oldflags; - int sf_mask = 0; - - if (set == 0 && clear == 0) - return (ARCHIVE_OK); - /* Only regular files and dirs can have flags. */ - if (!S_ISREG(mode) && !S_ISDIR(mode)) - return (ARCHIVE_OK); - - /* If we weren't given an fd, open it ourselves. */ - if (myfd < 0) { - myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | O_CLOEXEC); - __archive_ensure_cloexec_flag(myfd); - } - if (myfd < 0) - return (ARCHIVE_OK); - /* * Linux has no define for the flags that are only settable by * the root user. This code may seem a little complex, but @@ -3693,19 +3698,36 @@ set_fflags_platform(struct archive_write_disk *a, int * defines. (?) The code below degrades reasonably gracefully * if sf_mask is incomplete. */ + const int sf_mask = 0 #if defined(FS_IMMUTABLE_FL) - sf_mask |= FS_IMMUTABLE_FL; + | FS_IMMUTABLE_FL #elif defined(EXT2_IMMUTABLE_FL) - sf_mask |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif #if defined(FS_APPEND_FL) - sf_mask |= FS_APPEND_FL; + | FS_APPEND_FL #elif defined(EXT2_APPEND_FL) - sf_mask |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #if defined(FS_JOURNAL_DATA_FL) - sf_mask |= FS_JOURNAL_DATA_FL; + | FS_JOURNAL_DATA_FL #endif + ; + + if (set == 0 && clear == 0) + return (ARCHIVE_OK); + /* Only regular files and dirs can have flags. */ + if (!S_ISREG(mode) && !S_ISDIR(mode)) + return (ARCHIVE_OK); + + /* If we weren't given an fd, open it ourselves. */ + if (myfd < 0) { + myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | O_CLOEXEC); + __archive_ensure_cloexec_flag(myfd); + } + if (myfd < 0) + return (ARCHIVE_OK); + /* * XXX As above, this would be way simpler if we didn't have * to read the current flags from disk. XXX Modified: stable/11/contrib/libarchive/libarchive/archive_write_set_format_7zip.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Wed Apr 10 21:46:06 2019 (r346104) @@ -439,7 +439,8 @@ _7z_write_header(struct archive_write *a, struct archi r = file_new(a, entry, &file); if (r < ARCHIVE_WARN) { - file_free(file); + if (file != NULL) + file_free(file); return (r); } if (file->size == 0 && file->dir) { Modified: stable/11/contrib/libarchive/libarchive/test/test_entry.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/test/test_entry.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/test/test_entry.c Wed Apr 10 21:46:06 2019 (r346104) @@ -336,7 +336,7 @@ DEFINE_TEST(test_entry) /* Converting fflags bitmap to string is currently system-dependent. */ /* TODO: Make this system-independent. */ assertEqualString(archive_entry_fflags_text(e), - "uappnd,nouchg,nodump,noopaque,uunlnk"); + "uappnd,nouchg,nodump,noopaque,uunlnk,nosystem"); /* Test archive_entry_copy_fflags_text_w() */ archive_entry_copy_fflags_text_w(e, L" ,nouappnd, nouchg, dump,uunlnk"); archive_entry_fflags(e, &set, &clear); Modified: stable/11/contrib/libarchive/libarchive/test/test_read_format_rar5.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/test/test_read_format_rar5.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/test/test_read_format_rar5.c Wed Apr 10 21:46:06 2019 (r346104) @@ -96,7 +96,7 @@ int extract_one(struct archive* a, struct archive_entr int ret = 1; uint32_t computed_crc; - fsize = archive_entry_size(ae); + fsize = (la_ssize_t) archive_entry_size(ae); buf = malloc(fsize); if(buf == NULL) return 1; @@ -110,13 +110,13 @@ int extract_one(struct archive* a, struct archive_entr computed_crc = crc32(0, buf, fsize); assertEqualInt(computed_crc, crc); ret = 0; - + fn_exit: free(buf); return ret; } -DEFINE_TEST(test_read_format_rar5_stored) +DEFINE_TEST(test_read_format_rar5_stored) { const char helloworld_txt[] = "hello libarchive test suite!\n"; la_ssize_t file_size = sizeof(helloworld_txt) - 1; @@ -143,7 +143,7 @@ DEFINE_TEST(test_read_format_rar5_stored) DEFINE_TEST(test_read_format_rar5_compressed) { const int DATA_SIZE = 1200; - uint8_t buff[DATA_SIZE]; + uint8_t buff[1200]; PROLOGUE("test_read_format_rar5_compressed.rar"); @@ -161,7 +161,7 @@ DEFINE_TEST(test_read_format_rar5_compressed) DEFINE_TEST(test_read_format_rar5_multiple_files) { const int DATA_SIZE = 4096; - uint8_t buff[DATA_SIZE]; + uint8_t buff[4096]; PROLOGUE("test_read_format_rar5_multiple_files.rar"); @@ -173,7 +173,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files) assertEqualInt(DATA_SIZE, archive_entry_size(ae)); assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE)); assertA(verify_data(buff, 1, DATA_SIZE)); - + assertA(0 == archive_read_next_header(a, &ae)); assertEqualString("test2.bin", archive_entry_pathname(ae)); assertEqualInt(DATA_SIZE, archive_entry_size(ae)); @@ -207,7 +207,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files) DEFINE_TEST(test_read_format_rar5_multiple_files_solid) { const int DATA_SIZE = 4096; - uint8_t buff[DATA_SIZE]; + uint8_t buff[4096]; PROLOGUE("test_read_format_rar5_multiple_files_solid.rar"); @@ -216,7 +216,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files_solid assertEqualInt(DATA_SIZE, archive_entry_size(ae)); assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE)); assertA(verify_data(buff, 1, DATA_SIZE)); - + assertA(0 == archive_read_next_header(a, &ae)); assertEqualString("test2.bin", archive_entry_pathname(ae)); assertEqualInt(DATA_SIZE, archive_entry_size(ae)); @@ -309,7 +309,7 @@ DEFINE_TEST(test_read_format_rar5_multiarchive_skip_al DEFINE_TEST(test_read_format_rar5_blake2) { const la_ssize_t proper_size = 814; - uint8_t buf[proper_size]; + uint8_t buf[814]; PROLOGUE("test_read_format_rar5_blake2.rar"); assertA(0 == archive_read_next_header(a, &ae)); @@ -334,7 +334,7 @@ DEFINE_TEST(test_read_format_rar5_arm_filter) * test. */ const la_ssize_t proper_size = 90808; - uint8_t buf[proper_size]; + uint8_t buf[90808]; PROLOGUE("test_read_format_rar5_arm.rar"); assertA(0 == archive_read_next_header(a, &ae)); @@ -598,7 +598,7 @@ DEFINE_TEST(test_read_format_rar5_multiarchive_solid_s EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all) +DEFINE_TEST(test_read_format_rar5_solid_skip_all) { const char* reffile = "test_read_format_rar5_solid.rar"; @@ -623,7 +623,7 @@ DEFINE_TEST(test_read_format_rar5_solid_skip_all) EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_first) +DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_first) { const char* reffile = "test_read_format_rar5_solid.rar"; @@ -649,7 +649,7 @@ DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_f EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_second) +DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_second) { const char* reffile = "test_read_format_rar5_solid.rar"; Modified: stable/11/contrib/libarchive/libarchive/test/test_read_format_xar.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/test/test_read_format_xar.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/test/test_read_format_xar.c Wed Apr 10 21:46:06 2019 (r346104) @@ -799,7 +799,7 @@ static void verify(unsigned char *d, size_t s, static void verifyB(unsigned char *d, size_t s) { struct archive* a; struct archive_entry *entry = NULL; - la_int64_t buf_size; + size_t buf_size; unsigned char *buf; assert((a = archive_read_new()) != NULL); @@ -826,20 +826,20 @@ static void verifyB(unsigned char *d, size_t s) { // f1, content "onetwothree\n", size 12 bytes assertA(0 == archive_read_next_header(a, &entry)); - buf_size = archive_entry_size(entry); + buf_size = (size_t) archive_entry_size(entry); assertA(buf_size == 12); buf = (unsigned char*) malloc(buf_size); assertA(NULL != buf); - assertA(buf_size == archive_read_data(a, buf, buf_size)); + assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size)); free(buf); // f2, content "fourfivesix\n", size 12 bytes assertA(0 == archive_read_next_header(a, &entry)); - buf_size = archive_entry_size(entry); + buf_size = (size_t) archive_entry_size(entry); assertA(buf_size == 12); buf = (unsigned char*) malloc(buf_size); assertA(NULL != buf); - assertA(buf_size == archive_read_data(a, buf, buf_size)); + assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size)); free(buf); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); Modified: stable/11/contrib/libarchive/libarchive/test/test_read_format_zip.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/test/test_read_format_zip.c Wed Apr 10 21:45:23 2019 (r346103) +++ stable/11/contrib/libarchive/libarchive/test/test_read_format_zip.c Wed Apr 10 21:46:06 2019 (r346104) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Wed Apr 10 21:46:33 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFD86156E7B5; Wed, 10 Apr 2019 21:46:32 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0683B8D3B1; Wed, 10 Apr 2019 21:46:31 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D25FE8B4; Wed, 10 Apr 2019 21:46:30 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3ALkUtu089534; Wed, 10 Apr 2019 21:46:30 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3ALkS77089522; Wed, 10 Apr 2019 21:46:28 GMT (envelope-from mm@FreeBSD.org) Message-Id: <201904102146.x3ALkS77089522@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 10 Apr 2019 21:46: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: r346105 - in stable/10: contrib/libarchive/libarchive contrib/libarchive/libarchive/test lib/libarchive/tests X-SVN-Group: stable-10 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/10: contrib/libarchive/libarchive contrib/libarchive/libarchive/test lib/libarchive/tests X-SVN-Commit-Revision: 346105 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0683B8D3B1 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.92 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.92)[-0.923,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Apr 2019 21:46:33 -0000 Author: mm Date: Wed Apr 10 21:46:28 2019 New Revision: 346105 URL: https://svnweb.freebsd.org/changeset/base/346105 Log: MFC r345497: Sync libarchive with vendor. Relevant vendor changes: PR #1153: fixed 2 bugs in ZIP reader [1] PR #1143: ensure archive_read_disk_entry_from_file() uses ARCHIVE_READ_DISK Changes to file flags code, support more file flags on FreeBSD: UF_OFFLINE, UF_READONLY, UF_SPARSE, UF_REPARSE, UF_SYSTEM UF_ARCHIVE is not supported by intention (yet) PR: 236300 [1] Added: stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_bz2_hang.zip.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_bz2_hang.zip.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu - copied unchanged from r345497, head/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu Modified: stable/10/contrib/libarchive/libarchive/archive_blake2sp_ref.c stable/10/contrib/libarchive/libarchive/archive_entry.c stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_rar5.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/10/contrib/libarchive/libarchive/archive_string.c stable/10/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_7zip.c stable/10/contrib/libarchive/libarchive/test/test_entry.c stable/10/contrib/libarchive/libarchive/test/test_read_format_rar5.c stable/10/contrib/libarchive/libarchive/test/test_read_format_xar.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/10/lib/libarchive/tests/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/libarchive/libarchive/archive_blake2sp_ref.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_blake2sp_ref.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/archive_blake2sp_ref.c Wed Apr 10 21:46:28 2019 (r346105) @@ -89,7 +89,7 @@ int blake2sp_init( blake2sp_state *S, size_t outlen ) return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S->S[i], outlen, 0, (uint32_t)i ) < 0 ) return -1; S->R->last_node = 1; S->S[PARALLELISM_DEGREE - 1]->last_node = 1; @@ -112,7 +112,7 @@ int blake2sp_init_key( blake2sp_state *S, size_t outle return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S->S[i], outlen, keylen, (uint32_t)i ) < 0 ) return -1; S->R->last_node = 1; S->S[PARALLELISM_DEGREE - 1]->last_node = 1; @@ -230,7 +230,7 @@ int blake2sp( void *out, size_t outlen, const void *in if( keylen > BLAKE2S_KEYBYTES ) return -1; for( i = 0; i < PARALLELISM_DEGREE; ++i ) - if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; + if( blake2sp_init_leaf( S[i], outlen, keylen, (uint32_t)i ) < 0 ) return -1; S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ Modified: stable/10/contrib/libarchive/libarchive/archive_entry.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/archive_entry.c Wed Apr 10 21:46:28 2019 (r346105) @@ -1632,6 +1632,51 @@ _archive_entry_acl_text_l(struct archive_entry *entry, * SUCH DAMAGE. */ +/* + * Supported file flags on FreeBSD and Mac OS: + * sappnd,sappend SF_APPEND + * arch,archived SF_ARCHIVED + * schg,schange,simmutable SF_IMMUTABLE + * sunlnk,sunlink SF_NOUNLINK (FreeBSD only) + * uappnd,uappend UF_APPEND + * compressed UF_COMPRESSED (Mac OS only) + * hidden,uhidden UF_HIDDEN + * uchg,uchange,uimmutable UF_IMMUTABLE + * nodump UF_NODUMP + * uunlnk,uunlink UF_NOUNLINK (FreeBSD only) + * offline,uoffline UF_OFFLINE (FreeBSD only) + * opaque UF_OPAQUE + * rdonly,urdonly,readonly UF_READONLY (FreeBSD only) + * reparse,ureparse UF_REPARSE (FreeBSD only) + * sparse,usparse UF_SPARSE (FreeBSD only) + * system,usystem UF_SYSTEM (FreeBSD only) + * + * See chflags(2) for more information + * + * Supported file attributes on Linux: + * a append only FS_APPEND_FL sappnd + * A no atime updates FS_NOATIME_FL atime + * c compress FS_COMPR_FL compress + * C no copy on write FS_NOCOW_FL cow + * d no dump FS_NODUMP_FL dump + * D synchronous directory updates FS_DIRSYNC_FL dirsync + * i immutable FS_IMMUTABLE_FL schg + * j data journalling FS_JOURNAL_DATA_FL journal + * P project hierarchy FS_PROJINHERIT_FL projinherit + * s secure deletion FS_SECRM_FL securedeletion + * S synchronous updates FS_SYNC_FL sync + * t no tail-merging FS_NOTAIL_FL tail + * T top of directory hierarchy FS_TOPDIR_FL topdir + * u undeletable FS_UNRM_FL undel + * + * See ioctl_iflags(2) for more information + * + * Equivalent file flags supported on FreeBSD / Mac OS and Linux: + * SF_APPEND FS_APPEND_FL sappnd + * SF_IMMUTABLE FS_IMMUTABLE_FL schg + * UF_NODUMP FS_NODUMP_FL nodump + */ + static const struct flag { const char *name; const wchar_t *wname; @@ -1640,190 +1685,149 @@ static const struct flag { } flags[] = { /* Preferred (shorter) names per flag first, all prefixed by "no" */ #ifdef SF_APPEND - { "nosappnd", L"nosappnd", SF_APPEND, 0 }, - { "nosappend", L"nosappend", SF_APPEND, 0 }, + { "nosappnd", L"nosappnd", SF_APPEND, 0}, + { "nosappend", L"nosappend", SF_APPEND, 0}, #endif #if defined(FS_APPEND_FL) /* 'a' */ - { "nosappnd", L"nosappnd", FS_APPEND_FL, 0 }, - { "nosappend", L"nosappend", FS_APPEND_FL, 0 }, + { "nosappnd", L"nosappnd", FS_APPEND_FL, 0}, + { "nosappend", L"nosappend", FS_APPEND_FL, 0}, #elif defined(EXT2_APPEND_FL) /* 'a' */ - { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0 }, - { "nosappend", L"nosappend", EXT2_APPEND_FL, 0 }, + { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0}, + { "nosappend", L"nosappend", EXT2_APPEND_FL, 0}, #endif #ifdef SF_ARCHIVED - { "noarch", L"noarch", SF_ARCHIVED, 0 }, - { "noarchived", L"noarchived", SF_ARCHIVED, 0 }, + { "noarch", L"noarch", SF_ARCHIVED, 0}, + { "noarchived", L"noarchived", SF_ARCHIVED, 0}, #endif #ifdef SF_IMMUTABLE - { "noschg", L"noschg", SF_IMMUTABLE, 0 }, - { "noschange", L"noschange", SF_IMMUTABLE, 0 }, - { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0 }, + { "noschg", L"noschg", SF_IMMUTABLE, 0}, + { "noschange", L"noschange", SF_IMMUTABLE, 0}, + { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0}, #endif #if defined(FS_IMMUTABLE_FL) /* 'i' */ - { "noschg", L"noschg", FS_IMMUTABLE_FL, 0 }, - { "noschange", L"noschange", FS_IMMUTABLE_FL, 0 }, - { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0 }, + { "noschg", L"noschg", FS_IMMUTABLE_FL, 0}, + { "noschange", L"noschange", FS_IMMUTABLE_FL, 0}, + { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0}, #elif defined(EXT2_IMMUTABLE_FL) /* 'i' */ - { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0 }, - { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0 }, - { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0 }, + { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0}, + { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0}, + { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0}, #endif #ifdef SF_NOUNLINK - { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0 }, - { "nosunlink", L"nosunlink", SF_NOUNLINK, 0 }, + { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0}, + { "nosunlink", L"nosunlink", SF_NOUNLINK, 0}, #endif -#ifdef SF_SNAPSHOT - { "nosnapshot", L"nosnapshot", SF_SNAPSHOT, 0 }, -#endif #ifdef UF_APPEND - { "nouappnd", L"nouappnd", UF_APPEND, 0 }, - { "nouappend", L"nouappend", UF_APPEND, 0 }, + { "nouappnd", L"nouappnd", UF_APPEND, 0}, + { "nouappend", L"nouappend", UF_APPEND, 0}, #endif #ifdef UF_IMMUTABLE - { "nouchg", L"nouchg", UF_IMMUTABLE, 0 }, - { "nouchange", L"nouchange", UF_IMMUTABLE, 0 }, - { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0 }, + { "nouchg", L"nouchg", UF_IMMUTABLE, 0}, + { "nouchange", L"nouchange", UF_IMMUTABLE, 0}, + { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0}, #endif #ifdef UF_NODUMP { "nodump", L"nodump", 0, UF_NODUMP}, #endif #if defined(FS_NODUMP_FL) /* 'd' */ { "nodump", L"nodump", 0, FS_NODUMP_FL}, -#elif defined(EXT2_NODUMP_FL) /* 'd' */ +#elif defined(EXT2_NODUMP_FL) { "nodump", L"nodump", 0, EXT2_NODUMP_FL}, #endif #ifdef UF_OPAQUE - { "noopaque", L"noopaque", UF_OPAQUE, 0 }, + { "noopaque", L"noopaque", UF_OPAQUE, 0}, #endif #ifdef UF_NOUNLINK - { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0 }, - { "nouunlink", L"nouunlink", UF_NOUNLINK, 0 }, + { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0}, + { "nouunlink", L"nouunlink", UF_NOUNLINK, 0}, #endif #ifdef UF_COMPRESSED - { "nocompressed",L"nocompressed", UF_COMPRESSED, 0 }, + /* Mac OS */ + { "nocompressed", L"nocompressed", UF_COMPRESSED, 0}, #endif #ifdef UF_HIDDEN - { "nohidden", L"nohidden", UF_HIDDEN, 0 }, + { "nohidden", L"nohidden", UF_HIDDEN, 0}, + { "nouhidden", L"nouhidden", UF_HIDDEN, 0}, #endif -#if defined(FS_UNRM_FL) - { "nouunlink", L"nouunlink", FS_UNRM_FL, 0}, -#elif defined(EXT2_UNRM_FL) - { "nouunlink", L"nouunlink", EXT2_UNRM_FL, 0}, +#ifdef UF_OFFLINE + { "nooffline", L"nooffline", UF_OFFLINE, 0}, + { "nouoffline", L"nouoffline", UF_OFFLINE, 0}, #endif - -#if defined(FS_BTREE_FL) - { "nobtree", L"nobtree", FS_BTREE_FL, 0 }, -#elif defined(EXT2_BTREE_FL) - { "nobtree", L"nobtree", EXT2_BTREE_FL, 0 }, +#ifdef UF_READONLY + { "nordonly", L"nordonly", UF_READONLY, 0}, + { "nourdonly", L"nourdonly", UF_READONLY, 0}, + { "noreadonly", L"noreadonly", UF_READONLY, 0}, #endif - -#if defined(FS_ECOMPR_FL) - { "nocomperr", L"nocomperr", FS_ECOMPR_FL, 0 }, -#elif defined(EXT2_ECOMPR_FL) - { "nocomperr", L"nocomperr", EXT2_ECOMPR_FL, 0 }, +#ifdef UF_SPARSE + { "nosparse", L"nosparse", UF_SPARSE, 0}, + { "nousparse", L"nousparse", UF_SPARSE, 0}, #endif - -#if defined(FS_COMPR_FL) /* 'c' */ - { "nocompress", L"nocompress", FS_COMPR_FL, 0 }, -#elif defined(EXT2_COMPR_FL) /* 'c' */ - { "nocompress", L"nocompress", EXT2_COMPR_FL, 0 }, +#ifdef UF_REPARSE + { "noreparse", L"noreparse", UF_REPARSE, 0}, + { "noureparse", L"noureparse", UF_REPARSE, 0}, #endif - -#if defined(FS_NOATIME_FL) /* 'A' */ - { "noatime", L"noatime", 0, FS_NOATIME_FL}, -#elif defined(EXT2_NOATIME_FL) /* 'A' */ - { "noatime", L"noatime", 0, EXT2_NOATIME_FL}, +#ifdef UF_SYSTEM + { "nosystem", L"nosystem", UF_SYSTEM, 0}, + { "nousystem", L"nousystem", UF_SYSTEM, 0}, #endif +#if defined(FS_UNRM_FL) /* 'u' */ + { "noundel", L"noundel", FS_UNRM_FL, 0}, +#elif defined(EXT2_UNRM_FL) + { "noundel", L"noundel", EXT2_UNRM_FL, 0}, +#endif -#if defined(FS_DIRTY_FL) - { "nocompdirty",L"nocompdirty", FS_DIRTY_FL, 0}, -#elif defined(EXT2_DIRTY_FL) - { "nocompdirty",L"nocompdirty", EXT2_DIRTY_FL, 0}, +#if defined(FS_COMPR_FL) /* 'c' */ + { "nocompress", L"nocompress", FS_COMPR_FL, 0}, +#elif defined(EXT2_COMPR_FL) + { "nocompress", L"nocompress", EXT2_COMPR_FL, 0}, #endif -#if defined(FS_COMPRBLK_FL) -#if defined(FS_NOCOMPR_FL) - { "nocomprblk", L"nocomprblk", FS_COMPRBLK_FL, FS_NOCOMPR_FL}, -#else - { "nocomprblk", L"nocomprblk", FS_COMPRBLK_FL, 0}, +#if defined(FS_NOATIME_FL) /* 'A' */ + { "noatime", L"noatime", 0, FS_NOATIME_FL}, +#elif defined(EXT2_NOATIME_FL) + { "noatime", L"noatime", 0, EXT2_NOATIME_FL}, #endif -#elif defined(EXT2_COMPRBLK_FL) -#if defined(EXT2_NOCOMPR_FL) - { "nocomprblk", L"nocomprblk", EXT2_COMPRBLK_FL, EXT2_NOCOMPR_FL}, -#else - { "nocomprblk", L"nocomprblk", EXT2_COMPRBLK_FL, 0}, -#endif -#endif -#if defined(FS_DIRSYNC_FL) - { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0}, +#if defined(FS_DIRSYNC_FL) /* 'D' */ + { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0}, #elif defined(EXT2_DIRSYNC_FL) - { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0}, + { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0}, #endif -#if defined(FS_INDEX_FL) - { "nohashidx", L"nohashidx", FS_INDEX_FL, 0}, -#elif defined(EXT2_INDEX_FL) - { "nohashidx", L"nohashidx", EXT2_INDEX_FL, 0}, -#endif -#if defined(FS_IMAGIC_FL) - { "noimagic", L"noimagic", FS_IMAGIC_FL, 0}, -#elif defined(EXT2_IMAGIC_FL) - { "noimagic", L"noimagic", EXT2_IMAGIC_FL, 0}, -#endif -#if defined(FS_JOURNAL_DATA_FL) - { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0}, +#if defined(FS_JOURNAL_DATA_FL) /* 'j' */ + { "nojournal-data",L"nojournal-data", FS_JOURNAL_DATA_FL, 0}, + { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0}, #elif defined(EXT3_JOURNAL_DATA_FL) - { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0}, + { "nojournal-data",L"nojournal-data", EXT3_JOURNAL_DATA_FL, 0}, + { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0}, #endif -#if defined(FS_SECRM_FL) - { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0}, +#if defined(FS_SECRM_FL) /* 's' */ + { "nosecdel", L"nosecdel", FS_SECRM_FL, 0}, + { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0}, #elif defined(EXT2_SECRM_FL) - { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0}, + { "nosecdel", L"nosecdel", EXT2_SECRM_FL, 0}, + { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0}, #endif -#if defined(FS_SYNC_FL) - { "nosync", L"nosync", FS_SYNC_FL, 0}, +#if defined(FS_SYNC_FL) /* 'S' */ + { "nosync", L"nosync", FS_SYNC_FL, 0}, #elif defined(EXT2_SYNC_FL) - { "nosync", L"nosync", EXT2_SYNC_FL, 0}, + { "nosync", L"nosync", EXT2_SYNC_FL, 0}, #endif -#if defined(FS_NOTAIL_FL) - { "notail", L"notail", 0, FS_NOTAIL_FL}, +#if defined(FS_NOTAIL_FL) /* 't' */ + { "notail", L"notail", 0, FS_NOTAIL_FL}, #elif defined(EXT2_NOTAIL_FL) - { "notail", L"notail", 0, EXT2_NOTAIL_FL}, + { "notail", L"notail", 0, EXT2_NOTAIL_FL}, #endif -#if defined(FS_TOPDIR_FL) - { "notopdir", L"notopdir", FS_TOPDIR_FL, 0}, +#if defined(FS_TOPDIR_FL) /* 'T' */ + { "notopdir", L"notopdir", FS_TOPDIR_FL, 0}, #elif defined(EXT2_TOPDIR_FL) - { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0}, + { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0}, #endif -#ifdef FS_ENCRYPT_FL - { "noencrypt", L"noencrypt", FS_ENCRYPT_FL, 0}, +#ifdef FS_NOCOW_FL /* 'C' */ + { "nocow", L"nocow", 0, FS_NOCOW_FL}, #endif -#ifdef FS_HUGE_FILE_FL - { "nohugefile", L"nohugefile", FS_HUGE_FILE_FL, 0}, +#ifdef FS_PROJINHERIT_FL /* 'P' */ + { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0}, #endif -#ifdef FS_EXTENT_FL - { "noextent", L"noextent", FS_EXTENT_FL, 0}, -#endif -#ifdef FS_EA_INODE_FL - { "noeainode", L"noeainode", FS_EA_INODE_FL, 0}, -#endif -#ifdef FS_EOFBLOCKS_FL - { "noeofblocks",L"noeofblocks", FS_EOFBLOCKS_FL, 0}, -#endif -#ifdef FS_NOCOW_FL - { "nocow", L"nocow", FS_NOCOW_FL, 0}, -#endif -#ifdef FS_INLINE_DATA_FL - { "noinlinedata",L"noinlinedata", FS_INLINE_DATA_FL, 0}, -#endif -#ifdef FS_PROJINHERIT_FL - { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0}, -#endif -#if defined(FS_RESERVED_FL) - { "noreserved", L"noreserved", FS_RESERVED_FL, 0}, -#elif defined(EXT2_RESERVED_FL) - { "noreserved", L"noreserved", EXT2_RESERVED_FL, 0}, -#endif - { NULL, NULL, 0, 0 } + { NULL, NULL, 0, 0} }; /* Modified: stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Apr 10 21:46:28 2019 (r346105) @@ -163,6 +163,9 @@ archive_read_disk_entry_from_file(struct archive *_a, int initial_fd = fd; int r, r1; + archive_check_magic(_a, ARCHIVE_READ_DISK_MAGIC, ARCHIVE_STATE_ANY, + "archive_read_disk_entry_from_file"); + archive_clear_error(_a); path = archive_entry_sourcepath(entry); if (path == NULL) Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_format_rar5.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Wed Apr 10 21:46:28 2019 (r346105) @@ -507,15 +507,16 @@ static int run_e8e9_filter(struct rar5* rar, struct fi const uint32_t file_size = 0x1000000; ssize_t i; + const int mask = (int)rar->cstate.window_mask; circular_memcpy(rar->cstate.filtered_buf, rar->cstate.window_buf, - rar->cstate.window_mask, + mask, rar->cstate.solid_offset + flt->block_start, rar->cstate.solid_offset + flt->block_start + flt->block_length); for(i = 0; i < flt->block_length - 4;) { uint8_t b = rar->cstate.window_buf[(rar->cstate.solid_offset + - flt->block_start + i++) & rar->cstate.window_mask]; + flt->block_start + i++) & mask]; /* 0xE8 = x86's call (function call) * 0xE9 = x86's jmp (unconditional jump) */ @@ -524,17 +525,17 @@ static int run_e8e9_filter(struct rar5* rar, struct fi uint32_t addr; uint32_t offset = (i + flt->block_start) % file_size; - addr = read_filter_data(rar, (rar->cstate.solid_offset + + addr = read_filter_data(rar, (uint32_t)(rar->cstate.solid_offset + flt->block_start + i) & rar->cstate.window_mask); if(addr & 0x80000000) { if(((addr + offset) & 0x80000000) == 0) { - write_filter_data(rar, i, addr + file_size); + write_filter_data(rar, (uint32_t)i, addr + file_size); } } else { if((addr - file_size) & 0x80000000) { uint32_t naddr = addr - offset; - write_filter_data(rar, i, naddr); + write_filter_data(rar, (uint32_t)i, naddr); } } @@ -548,11 +549,11 @@ static int run_e8e9_filter(struct rar5* rar, struct fi static int run_arm_filter(struct rar5* rar, struct filter_info* flt) { ssize_t i = 0; uint32_t offset; - const int mask = rar->cstate.window_mask; + const int mask = (int)rar->cstate.window_mask; circular_memcpy(rar->cstate.filtered_buf, rar->cstate.window_buf, - rar->cstate.window_mask, + mask, rar->cstate.solid_offset + flt->block_start, rar->cstate.solid_offset + flt->block_start + flt->block_length); @@ -567,7 +568,7 @@ static int run_arm_filter(struct rar5* rar, struct fil offset -= (uint32_t) ((i + flt->block_start) / 4); offset = (offset & 0x00ffffff) | 0xeb000000; - write_filter_data(rar, i, offset); + write_filter_data(rar, (uint32_t)i, offset); } } @@ -633,7 +634,7 @@ static int run_filter(struct archive_read* a, struct f static void push_data(struct archive_read* a, struct rar5* rar, const uint8_t* buf, int64_t idx_begin, int64_t idx_end) { - const int wmask = rar->cstate.window_mask; + const int wmask = (int)rar->cstate.window_mask; const ssize_t solid_write_ptr = (rar->cstate.solid_offset + rar->cstate.last_write_ptr) & wmask; @@ -1703,8 +1704,8 @@ static int process_base_block(struct archive_read* a, rar->generic.split_after = (header_flags & HFL_SPLIT_AFTER) > 0; rar->generic.split_before = (header_flags & HFL_SPLIT_BEFORE) > 0; - rar->generic.size = hdr_size; - rar->generic.last_header_id = header_id; + rar->generic.size = (int)hdr_size; + rar->generic.last_header_id = (int)header_id; rar->main.endarc = 0; /* Those are possible header ids in RARv5. */ @@ -1920,7 +1921,7 @@ static int create_decode_tables(uint8_t* bit_length, } } - quick_data_size = 1 << table->quick_bits; + quick_data_size = (int64_t)1 << table->quick_bits; cur_len = 1; for(code = 0; code < quick_data_size; code++) { int bit_field = code << (16 - table->quick_bits); @@ -2351,7 +2352,7 @@ static int decode_code_length(struct rar5* rar, const static int copy_string(struct archive_read* a, int len, int dist) { struct rar5* rar = get_context(a); - const int cmask = rar->cstate.window_mask; + const int cmask = (int)rar->cstate.window_mask; const int64_t write_ptr = rar->cstate.write_ptr + rar->cstate.solid_offset; int i; @@ -2377,7 +2378,7 @@ static int do_uncompress_block(struct archive_read* a, uint16_t num; int ret; - const int cmask = rar->cstate.window_mask; + const int cmask = (int)rar->cstate.window_mask; const struct compressed_block_header* hdr = &rar->last_block_hdr; const uint8_t bit_size = 1 + hdr->block_flags.bit_size; Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Apr 10 21:46:28 2019 (r346105) @@ -194,6 +194,7 @@ struct zip { ssize_t zipx_ppmd_read_compressed; CPpmd8 ppmd8; char ppmd8_valid; + char ppmd8_stream_failed; struct archive_string_conv *sconv; struct archive_string_conv *sconv_default; @@ -254,9 +255,15 @@ ppmd_read(void* p) { /* Get the handle to current decompression context. */ struct archive_read *a = ((IByteIn*)p)->a; struct zip *zip = (struct zip*) a->format->data; + ssize_t bytes_avail = 0; /* Fetch next byte. */ - const uint8_t* data = __archive_read_ahead(a, 1, NULL); + const uint8_t* data = __archive_read_ahead(a, 1, &bytes_avail); + if(bytes_avail < 1) { + zip->ppmd8_stream_failed = 1; + return 0; + } + __archive_read_consume(a, 1); /* Increment the counter. */ @@ -1750,6 +1757,7 @@ zipx_ppmd8_init(struct archive_read *a, struct zip *zi /* Create a new decompression context. */ __archive_ppmd8_functions.Ppmd8_Construct(&zip->ppmd8); + zip->ppmd8_stream_failed = 0; /* Setup function pointers required by Ppmd8 decompressor. The * 'ppmd_read' function will feed new bytes to the decompressor, @@ -1869,6 +1877,14 @@ zip_read_data_zipx_ppmd(struct archive_read *a, const break; } + /* This field is set by ppmd_read() when there was no more data + * to be read. */ + if(zip->ppmd8_stream_failed) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Truncated PPMd8 file body"); + return (ARCHIVE_FATAL); + } + zip->uncompressed_buffer[consumed_bytes] = (uint8_t) sym; ++consumed_bytes; } while(consumed_bytes < zip->uncompressed_buffer_size); @@ -1902,7 +1918,7 @@ zipx_bzip2_init(struct archive_read *a, struct zip *zi { int r; - /* Deallocate already existing BZ2 decompression context if it + /* Deallocate already existing BZ2 decompression context if it * exists. */ if(zip->bzstream_valid) { BZ2_bzDecompressEnd(&zip->bzstream); @@ -1968,6 +1984,15 @@ zip_read_data_zipx_bzip2(struct archive_read *a, const } in_bytes = zipmin(zip->entry_bytes_remaining, bytes_avail); + if(in_bytes < 1) { + /* libbz2 doesn't complain when caller feeds avail_in == 0. It will + * actually return success in this case, which is undesirable. This is + * why we need to make this check manually. */ + + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Truncated bzip2 file body"); + return (ARCHIVE_FATAL); + } /* Setup buffer boundaries. */ zip->bzstream.next_in = (char*)(uintptr_t) compressed_buff; Modified: stable/10/contrib/libarchive/libarchive/archive_string.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_string.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/archive_string.c Wed Apr 10 21:46:28 2019 (r346105) @@ -1512,8 +1512,10 @@ get_current_codepage(void) p = strrchr(locale, '.'); if (p == NULL) return (GetACP()); + if (strcmp(p+1, "utf8") == 0) + return CP_UTF8; cp = my_atoi(p+1); - if (cp <= 0) + if ((int)cp <= 0) return (GetACP()); return (cp); } @@ -4050,6 +4052,7 @@ archive_mstring_copy_utf8(struct archive_mstring *aes, { if (utf8 == NULL) { aes->aes_set = 0; + return (0); } aes->aes_set = AES_SET_UTF8; archive_string_empty(&(aes->aes_mbs)); @@ -4064,6 +4067,7 @@ archive_mstring_copy_wcs_len(struct archive_mstring *a { if (wcs == NULL) { aes->aes_set = 0; + return (0); } aes->aes_set = AES_SET_WCS; /* Only WCS form set. */ archive_string_empty(&(aes->aes_mbs)); Modified: stable/10/contrib/libarchive/libarchive/archive_write_disk_posix.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_write_disk_posix.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/archive_write_disk_posix.c Wed Apr 10 21:46:28 2019 (r346105) @@ -2563,8 +2563,11 @@ check_symlinks_fsobj(char *path, int *a_eno, struct ar */ restore_pwd = open(".", O_RDONLY | O_BINARY | O_CLOEXEC); __archive_ensure_cloexec_flag(restore_pwd); - if (restore_pwd < 0) + if (restore_pwd < 0) { + fsobj_error(a_eno, a_estr, errno, + "Could not open ", path); return (ARCHIVE_FATAL); + } head = path; tail = path; last = 0; @@ -3103,12 +3106,14 @@ create_dir(struct archive_write_disk *a, char *path) static int set_ownership(struct archive_write_disk *a) { -#ifndef __CYGWIN__ -/* unfortunately, on win32 there is no 'root' user with uid 0, - so we just have to try the chown and see if it works */ - - /* If we know we can't change it, don't bother trying. */ - if (a->user_uid != 0 && a->user_uid != a->uid) { +#if !defined(__CYGWIN__) && !defined(__linux__) +/* + * On Linux, a process may have the CAP_CHOWN capability. + * On Windows there is no 'root' user with uid 0. + * Elsewhere we can skip calling chown if we are not root and the desired + * user id does not match the current user. + */ + if (a->user_uid != 0 && a->user_uid != a->uid) { archive_set_error(&a->archive, errno, "Can't set UID=%jd", (intmax_t)a->uid); return (ARCHIVE_WARN); @@ -3475,9 +3480,7 @@ set_fflags(struct archive_write_disk *a) struct fixup_entry *le; unsigned long set, clear; int r; - int critical_flags; mode_t mode = archive_entry_mode(a->entry); - /* * Make 'critical_flags' hold all file flags that can't be * immediately restored. For example, on BSD systems, @@ -3493,33 +3496,33 @@ set_fflags(struct archive_write_disk *a) * other programs that might try to muck with files as they're * being restored. */ - /* Hopefully, the compiler will optimize this mess into a constant. */ - critical_flags = 0; + const int critical_flags = 0 #ifdef SF_IMMUTABLE - critical_flags |= SF_IMMUTABLE; + | SF_IMMUTABLE #endif #ifdef UF_IMMUTABLE - critical_flags |= UF_IMMUTABLE; + | UF_IMMUTABLE #endif #ifdef SF_APPEND - critical_flags |= SF_APPEND; + | SF_APPEND #endif #ifdef UF_APPEND - critical_flags |= UF_APPEND; + | UF_APPEND #endif #if defined(FS_APPEND_FL) - critical_flags |= FS_APPEND_FL; + | FS_APPEND_FL #elif defined(EXT2_APPEND_FL) - critical_flags |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #if defined(FS_IMMUTABLE_FL) - critical_flags |= FS_IMMUTABLE_FL; + | FS_IMMUTABLE_FL #elif defined(EXT2_IMMUTABLE_FL) - critical_flags |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif #ifdef FS_JOURNAL_DATA_FL - critical_flags |= FS_JOURNAL_DATA_FL; + | FS_JOURNAL_DATA_FL #endif + ; if (a->todo & TODO_FFLAGS) { archive_entry_fflags(a->entry, &set, &clear); @@ -3550,29 +3553,27 @@ set_fflags(struct archive_write_disk *a) static int clear_nochange_fflags(struct archive_write_disk *a) { - int nochange_flags; mode_t mode = archive_entry_mode(a->entry); - - /* Hopefully, the compiler will optimize this mess into a constant. */ - nochange_flags = 0; + const int nochange_flags = 0 #ifdef SF_IMMUTABLE - nochange_flags |= SF_IMMUTABLE; + | SF_IMMUTABLE #endif #ifdef UF_IMMUTABLE - nochange_flags |= UF_IMMUTABLE; + | UF_IMMUTABLE #endif #ifdef SF_APPEND - nochange_flags |= SF_APPEND; + | SF_APPEND #endif #ifdef UF_APPEND - nochange_flags |= UF_APPEND; + | UF_APPEND #endif #ifdef EXT2_APPEND_FL - nochange_flags |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #ifdef EXT2_IMMUTABLE_FL - nochange_flags |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif + ; return (set_fflags_platform(a, a->fd, a->name, mode, 0, nochange_flags)); @@ -3588,8 +3589,22 @@ set_fflags_platform(struct archive_write_disk *a, int mode_t mode, unsigned long set, unsigned long clear) { int r; - + const int sf_mask = 0 +#ifdef SF_APPEND + | SF_APPEND +#endif +#ifdef SF_ARCHIVED + | SF_ARCHIVED +#endif +#ifdef SF_IMMUTABLE + | SF_IMMUTABLE +#endif +#ifdef SF_NOUNLINK + | SF_NOUNLINK +#endif + ; (void)mode; /* UNUSED */ + if (set == 0 && clear == 0) return (ARCHIVE_OK); @@ -3604,6 +3619,12 @@ set_fflags_platform(struct archive_write_disk *a, int a->st.st_flags &= ~clear; a->st.st_flags |= set; + + /* Only super-user may change SF_* flags */ + + if (a->user_uid != 0) + a->st.st_flags &= ~sf_mask; + #ifdef HAVE_FCHFLAGS /* If platform has fchflags() and we were given an fd, use it. */ if (fd >= 0 && fchflags(fd, a->st.st_flags) == 0) @@ -3645,22 +3666,6 @@ set_fflags_platform(struct archive_write_disk *a, int int ret; int myfd = fd; int newflags, oldflags; - int sf_mask = 0; - - if (set == 0 && clear == 0) - return (ARCHIVE_OK); - /* Only regular files and dirs can have flags. */ - if (!S_ISREG(mode) && !S_ISDIR(mode)) - return (ARCHIVE_OK); - - /* If we weren't given an fd, open it ourselves. */ - if (myfd < 0) { - myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | O_CLOEXEC); - __archive_ensure_cloexec_flag(myfd); - } - if (myfd < 0) - return (ARCHIVE_OK); - /* * Linux has no define for the flags that are only settable by * the root user. This code may seem a little complex, but @@ -3668,19 +3673,36 @@ set_fflags_platform(struct archive_write_disk *a, int * defines. (?) The code below degrades reasonably gracefully * if sf_mask is incomplete. */ + const int sf_mask = 0 #if defined(FS_IMMUTABLE_FL) - sf_mask |= FS_IMMUTABLE_FL; + | FS_IMMUTABLE_FL #elif defined(EXT2_IMMUTABLE_FL) - sf_mask |= EXT2_IMMUTABLE_FL; + | EXT2_IMMUTABLE_FL #endif #if defined(FS_APPEND_FL) - sf_mask |= FS_APPEND_FL; + | FS_APPEND_FL #elif defined(EXT2_APPEND_FL) - sf_mask |= EXT2_APPEND_FL; + | EXT2_APPEND_FL #endif #if defined(FS_JOURNAL_DATA_FL) - sf_mask |= FS_JOURNAL_DATA_FL; + | FS_JOURNAL_DATA_FL #endif + ; + + if (set == 0 && clear == 0) + return (ARCHIVE_OK); + /* Only regular files and dirs can have flags. */ + if (!S_ISREG(mode) && !S_ISDIR(mode)) + return (ARCHIVE_OK); + + /* If we weren't given an fd, open it ourselves. */ + if (myfd < 0) { + myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | O_CLOEXEC); + __archive_ensure_cloexec_flag(myfd); + } + if (myfd < 0) + return (ARCHIVE_OK); + /* * XXX As above, this would be way simpler if we didn't have * to read the current flags from disk. XXX Modified: stable/10/contrib/libarchive/libarchive/archive_write_set_format_7zip.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Wed Apr 10 21:46:28 2019 (r346105) @@ -439,7 +439,8 @@ _7z_write_header(struct archive_write *a, struct archi r = file_new(a, entry, &file); if (r < ARCHIVE_WARN) { - file_free(file); + if (file != NULL) + file_free(file); return (r); } if (file->size == 0 && file->dir) { Modified: stable/10/contrib/libarchive/libarchive/test/test_entry.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/test/test_entry.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/test/test_entry.c Wed Apr 10 21:46:28 2019 (r346105) @@ -336,7 +336,7 @@ DEFINE_TEST(test_entry) /* Converting fflags bitmap to string is currently system-dependent. */ /* TODO: Make this system-independent. */ assertEqualString(archive_entry_fflags_text(e), - "uappnd,nouchg,nodump,noopaque,uunlnk"); + "uappnd,nouchg,nodump,noopaque,uunlnk,nosystem"); /* Test archive_entry_copy_fflags_text_w() */ archive_entry_copy_fflags_text_w(e, L" ,nouappnd, nouchg, dump,uunlnk"); archive_entry_fflags(e, &set, &clear); Modified: stable/10/contrib/libarchive/libarchive/test/test_read_format_rar5.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/test/test_read_format_rar5.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/test/test_read_format_rar5.c Wed Apr 10 21:46:28 2019 (r346105) @@ -95,7 +95,7 @@ int extract_one(struct archive* a, struct archive_entr int ret = 1; uint32_t computed_crc; - fsize = archive_entry_size(ae); + fsize = (la_ssize_t) archive_entry_size(ae); buf = malloc(fsize); if(buf == NULL) return 1; @@ -109,13 +109,13 @@ int extract_one(struct archive* a, struct archive_entr computed_crc = crc32(0, buf, fsize); assertEqualInt(computed_crc, crc); ret = 0; - + fn_exit: free(buf); return ret; } -DEFINE_TEST(test_read_format_rar5_stored) +DEFINE_TEST(test_read_format_rar5_stored) { const char helloworld_txt[] = "hello libarchive test suite!\n"; la_ssize_t file_size = sizeof(helloworld_txt) - 1; @@ -142,7 +142,7 @@ DEFINE_TEST(test_read_format_rar5_stored) DEFINE_TEST(test_read_format_rar5_compressed) { const int DATA_SIZE = 1200; - uint8_t buff[DATA_SIZE]; + uint8_t buff[1200]; PROLOGUE("test_read_format_rar5_compressed.rar"); @@ -160,7 +160,7 @@ DEFINE_TEST(test_read_format_rar5_compressed) DEFINE_TEST(test_read_format_rar5_multiple_files) { const int DATA_SIZE = 4096; - uint8_t buff[DATA_SIZE]; + uint8_t buff[4096]; PROLOGUE("test_read_format_rar5_multiple_files.rar"); @@ -172,7 +172,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files) assertEqualInt(DATA_SIZE, archive_entry_size(ae)); assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE)); assertA(verify_data(buff, 1, DATA_SIZE)); - + assertA(0 == archive_read_next_header(a, &ae)); assertEqualString("test2.bin", archive_entry_pathname(ae)); assertEqualInt(DATA_SIZE, archive_entry_size(ae)); @@ -206,7 +206,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files) DEFINE_TEST(test_read_format_rar5_multiple_files_solid) { const int DATA_SIZE = 4096; - uint8_t buff[DATA_SIZE]; + uint8_t buff[4096]; PROLOGUE("test_read_format_rar5_multiple_files_solid.rar"); @@ -215,7 +215,7 @@ DEFINE_TEST(test_read_format_rar5_multiple_files_solid assertEqualInt(DATA_SIZE, archive_entry_size(ae)); assertA(DATA_SIZE == archive_read_data(a, buff, DATA_SIZE)); assertA(verify_data(buff, 1, DATA_SIZE)); - + assertA(0 == archive_read_next_header(a, &ae)); assertEqualString("test2.bin", archive_entry_pathname(ae)); assertEqualInt(DATA_SIZE, archive_entry_size(ae)); @@ -308,7 +308,7 @@ DEFINE_TEST(test_read_format_rar5_multiarchive_skip_al DEFINE_TEST(test_read_format_rar5_blake2) { const la_ssize_t proper_size = 814; - uint8_t buf[proper_size]; + uint8_t buf[814]; PROLOGUE("test_read_format_rar5_blake2.rar"); assertA(0 == archive_read_next_header(a, &ae)); @@ -333,7 +333,7 @@ DEFINE_TEST(test_read_format_rar5_arm_filter) * test. */ const la_ssize_t proper_size = 90808; - uint8_t buf[proper_size]; + uint8_t buf[90808]; PROLOGUE("test_read_format_rar5_arm.rar"); assertA(0 == archive_read_next_header(a, &ae)); @@ -597,7 +597,7 @@ DEFINE_TEST(test_read_format_rar5_multiarchive_solid_s EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all) +DEFINE_TEST(test_read_format_rar5_solid_skip_all) { const char* reffile = "test_read_format_rar5_solid.rar"; @@ -622,7 +622,7 @@ DEFINE_TEST(test_read_format_rar5_solid_skip_all) EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_first) +DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_first) { const char* reffile = "test_read_format_rar5_solid.rar"; @@ -648,7 +648,7 @@ DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_f EPILOGUE(); } -DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_second) +DEFINE_TEST(test_read_format_rar5_solid_skip_all_but_second) { const char* reffile = "test_read_format_rar5_solid.rar"; Modified: stable/10/contrib/libarchive/libarchive/test/test_read_format_xar.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/test/test_read_format_xar.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/test/test_read_format_xar.c Wed Apr 10 21:46:28 2019 (r346105) @@ -799,7 +799,7 @@ static void verify(unsigned char *d, size_t s, static void verifyB(unsigned char *d, size_t s) { struct archive* a; struct archive_entry *entry = NULL; - la_int64_t buf_size; + size_t buf_size; unsigned char *buf; assert((a = archive_read_new()) != NULL); @@ -826,20 +826,20 @@ static void verifyB(unsigned char *d, size_t s) { // f1, content "onetwothree\n", size 12 bytes assertA(0 == archive_read_next_header(a, &entry)); - buf_size = archive_entry_size(entry); + buf_size = (size_t) archive_entry_size(entry); assertA(buf_size == 12); buf = (unsigned char*) malloc(buf_size); assertA(NULL != buf); - assertA(buf_size == archive_read_data(a, buf, buf_size)); + assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size)); free(buf); // f2, content "fourfivesix\n", size 12 bytes assertA(0 == archive_read_next_header(a, &entry)); - buf_size = archive_entry_size(entry); + buf_size = (size_t) archive_entry_size(entry); assertA(buf_size == 12); buf = (unsigned char*) malloc(buf_size); assertA(NULL != buf); - assertA(buf_size == archive_read_data(a, buf, buf_size)); + assertA(buf_size == (size_t) archive_read_data(a, buf, buf_size)); free(buf); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); Modified: stable/10/contrib/libarchive/libarchive/test/test_read_format_zip.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/test/test_read_format_zip.c Wed Apr 10 21:46:06 2019 (r346104) +++ stable/10/contrib/libarchive/libarchive/test/test_read_format_zip.c Wed Apr 10 21:46:28 2019 (r346105) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Thu Apr 11 00:41:08 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C15E1572090; Thu, 11 Apr 2019 00:41:08 +0000 (UTC) (envelope-from ygy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 242B16BFB7; Thu, 11 Apr 2019 00:41:08 +0000 (UTC) (envelope-from ygy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EAEC02699; Thu, 11 Apr 2019 00:41:07 +0000 (UTC) (envelope-from ygy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3B0f7sM081759; Thu, 11 Apr 2019 00:41:07 GMT (envelope-from ygy@FreeBSD.org) Received: (from ygy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3B0f7RP081758; Thu, 11 Apr 2019 00:41:07 GMT (envelope-from ygy@FreeBSD.org) Message-Id: <201904110041.x3B0f7RP081758@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ygy set sender to ygy@FreeBSD.org using -f From: Guangyuan Yang Date: Thu, 11 Apr 2019 00:41:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346111 - stable/12/share/man/man4 X-SVN-Group: stable-12 X-SVN-Commit-Author: ygy X-SVN-Commit-Paths: stable/12/share/man/man4 X-SVN-Commit-Revision: 346111 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 242B16BFB7 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.93 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.93)[-0.928,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 00:41:08 -0000 Author: ygy (doc committer) Date: Thu Apr 11 00:41:07 2019 New Revision: 346111 URL: https://svnweb.freebsd.org/changeset/base/346111 Log: MFC r345887: Rewrite intro(4) man page. - Remove issues that no longer apply thanks to devfs - Add language pointing out devfs's role and referencing its config - Add a "historical notes" section and move discussion of block vs character devs to it, including pointing out the removal of block devs - Modernize some examples PR: 236970 Submitted by: andrew@tao173.riddles.org.uk Reviewed by: 0mp Differential Revision: https://reviews.freebsd.org/D19799 Modified: stable/12/share/man/man4/intro.4 Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/intro.4 ============================================================================== --- stable/12/share/man/man4/intro.4 Thu Apr 11 00:39:06 2019 (r346110) +++ stable/12/share/man/man4/intro.4 Thu Apr 11 00:41:07 2019 (r346111) @@ -1,5 +1,6 @@ .\" .\" Copyright (c) 1996 David E. O'Brien, Joerg Wunsch +.\" Copyright (c) 2019 Andrew Gierth .\" .\" All rights reserved. .\" @@ -25,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 20, 1996 +.Dd April 3, 2019 .Dt INTRO 4 .Os .Sh NAME @@ -45,14 +46,13 @@ without any particular underlying hardware. A typical example for the latter class is .Pa /dev/mem , -a loophole where the physical memory can be accessed using the regular -file access semantics. +a mechanism whereby the physical memory can be accessed using file +access semantics. .Pp -The device abstraction generally provides a common set of system calls -layered on top of them, which are dispatched to the corresponding -device driver by the upper layers of the kernel. -The set of system -calls available for devices is chosen from +The device abstraction generally provides a common set of system +calls, which are dispatched to the corresponding device driver by the +upper layers of the kernel. +The set of system calls available for devices is chosen from .Xr open 2 , .Xr close 2 , .Xr read 2 , @@ -61,77 +61,56 @@ calls available for devices is chosen from .Xr select 2 , and .Xr mmap 2 . -Not all drivers implement all system calls, for example, calling +Not all drivers implement all system calls; for example, calling .Xr mmap 2 -on terminal devices is likely to be not useful at all. +on a keyboard device is not likely to be useful. +.Pp +Aspects of the device abstraction have changed significantly in +.Fx +over the past two decades. +The section +.Sx Historical Notes +describes some of the more important differences. .Ss Accessing Devices -Most of the devices in a -.Ux Ns --like operating system are accessed -through so-called +Most of the devices in +.Fx +are accessed through .Em device nodes , sometimes also called .Em special files . -They are usually located under the directory +They are located within instances of the +.Xr devfs 5 +filesystem, which is conventionally mounted on the directory .Pa /dev in the file system hierarchy (see also .Xr hier 7 ) . .Pp -Note that this could lead to an inconsistent state, where either there -are device nodes that do not have a configured driver associated with -them, or there may be drivers that have successfully probed for their -devices, but cannot be accessed since the corresponding device node is -still missing. -In the first case, any attempt to reference the device -through the device node will result in an error, returned by the upper -layers of the kernel, usually -.Er ENXIO . -In the second case, the device node needs to be created before the -driver and its device will be usable. +The +.Xr devfs 5 +filesystem creates or removes device nodes automatically according to +the physical hardware recognized as present at any given time. +For pseudo-devices, device nodes may be created and removed dynamically +as required, depending on the nature of the device. .Pp -Some devices come in two flavors: -.Em block -and -.Em character -devices, or to use better terms, buffered and unbuffered -(raw) -devices. -The traditional names are reflected by the letters -.Ql b -and -.Ql c -as the file type identification in the output of -.Ql ls -l . -Buffered devices are being accessed through the buffer cache of the -operating system, and they are solely intended to layer a file system -on top of them. -They are normally implemented for disks and disk-like -devices only and, for historical reasons, for tape devices. -.Pp -Raw devices are available for all drivers, including those that also -implement a buffered device. -For the latter group of devices, the -differentiation is conventionally done by prepending the letter -.Ql r -to the path name of the device node, for example -.Pa /dev/rda0 -denotes the raw device for the first SCSI disk, while -.Pa /dev/da0 -is the corresponding device node for the buffered device. -.Pp -Unbuffered devices should be used for all actions that are not related -to file system operations, even if the device in question is a disk -device. -This includes making backups of entire disk partitions, or -to -.Em raw -floppy disks -(i.e., those used like tapes). -.Pp Access restrictions to device nodes are usually subject to the regular file permissions of the device node entry, instead of being enforced directly by the drivers in the kernel. +But since device nodes are not stored persistently between reboots, +those file permissions are set at boot time from rules specified in +.Xr devfs.conf 5 , +or dynamically according to rules defined in +.Xr devfs.rules 5 +or set using the +.Xr devfs 8 +command. +In the latter case, different rules may be used to make different sets +of devices visible within different instances of the +.Xr devfs 5 +filesystem, which may be used, for example, to prevent jailed +subsystems from accessing unsafe devices. +Manual changes to device +node permissions may still be made, but will not persist. .Ss Drivers without device nodes Drivers for network devices do not use device nodes in order to be accessed. @@ -149,12 +128,71 @@ See .Xr config 8 for a detailed description of the files involved. The individual manual pages in this section provide a sample line for the -configuration file in their synopsis portion. -See also the sample config file -.Pa /sys/i386/conf/LINT -(for the -.Em i386 -architecture). +configuration file in their synopsis portions. +See also the files +.Pa /usr/src/sys/conf/NOTES +and +.Pa /usr/src/sys/${ARCH}/conf/NOTES . +.Pp +Drivers need not be statically compiled into the kernel; they may also be +loaded as modules, in which case any device nodes they provide will appear +only after the module is loaded (and has attached to suitable hardware, +if applicable). +.Ss Historical Notes +Prior to +.Fx 6.0 , +device nodes could be created in the traditional way as persistent +entries in the file system. +While such entries can still be created, they no longer function to +access devices. +.Pp +Prior to +.Fx 5.0 , +devices for disk and tape drives existed in two variants, known as +.Em block +and +.Em character +devices, or to use better terms, buffered and unbuffered +(raw) +devices. +The traditional names are reflected by the letters +.Dq Li b +and +.Dq Li c +as the file type identification in the output of +.Dq Li ls -l . +Raw devices were traditionally named with a prefix of +.Dq Li r , +for example +.Pa /dev/rda0 +would denote the raw version of the disk whose buffered device was +.Pa /dev/da0 . +.Em This is no longer the case ; +all disk devices are now +.Dq raw +in the traditional sense, even though they are not given +.Dq Li r +prefixes, and +.Dq buffered +devices no longer exist at all. +.Pp +Buffered devices were accessed through a buffer cache maintained by +the operating system; historically this was the system's primary disk +cache, but in +.Fx +this was rendered obsolete by the introduction of unified virtual +memory management. +Buffered devices could be read or written at any +byte position, with the buffer mechanism handling the reading and +writing of disk blocks. +In contrast, raw disk devices can be read or +written only at positions and lengths that are multiples of the +underlying device block size, and +.Xr write 2 +calls are +.Em synchronous , +not returning to the caller until the data has been handed off to the +device. .Sh SEE ALSO .Xr close 2 , .Xr ioctl 2 , @@ -172,7 +210,9 @@ This manual page first appeared in .Fx 2.1 . .Sh AUTHORS .An -nosplit -This man page has been written by +This man page has been rewritten by +.An Andrew Gierth +from an earlier version written by .An J\(:org Wunsch with initial input by .An David E. O'Brien . From owner-svn-src-stable@freebsd.org Thu Apr 11 13:11:22 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A4D9158448E; Thu, 11 Apr 2019 13:11:22 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EE5548DA83; Thu, 11 Apr 2019 13:11:21 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C724A87C; Thu, 11 Apr 2019 13:11:21 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3BDBLmO076298; Thu, 11 Apr 2019 13:11:21 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDBLK2076296; Thu, 11 Apr 2019 13:11:21 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111311.x3BDBLK2076296@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:11:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346122 - in stable/12/sys: cam/ata sys X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in stable/12/sys: cam/ata sys X-SVN-Commit-Revision: 346122 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: EE5548DA83 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:11:22 -0000 Author: mav Date: Thu Apr 11 13:11:20 2019 New Revision: 346122 URL: https://svnweb.freebsd.org/changeset/base/346122 Log: MFC r345849: List few more ATA commands. Modified: stable/12/sys/cam/ata/ata_all.c stable/12/sys/sys/ata.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cam/ata/ata_all.c ============================================================================== --- stable/12/sys/cam/ata/ata_all.c Thu Apr 11 13:01:26 2019 (r346121) +++ stable/12/sys/cam/ata/ata_all.c Thu Apr 11 13:11:20 2019 (r346122) @@ -215,8 +215,10 @@ ata_op_string(struct ata_cmd *cmd) case 0xe5: return ("CHECK_POWER_MODE"); case 0xe6: return ("SLEEP"); case 0xe7: return ("FLUSHCACHE"); - case 0xe8: return ("WRITE_PM"); + case 0xe8: return ("WRITE_BUFFER/PM"); + case 0xe9: return ("READ_BUFFER_DMA"); case 0xea: return ("FLUSHCACHE48"); + case 0xeb: return ("WRITE_BUFFER_DMA"); case 0xec: return ("ATA_IDENTIFY"); case 0xed: return ("MEDIA_EJECT"); case 0xef: @@ -581,7 +583,12 @@ ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, ui if (cmd == ATA_READ_DMA || cmd == ATA_READ_DMA_QUEUED || cmd == ATA_WRITE_DMA || - cmd == ATA_WRITE_DMA_QUEUED) + cmd == ATA_WRITE_DMA_QUEUED || + cmd == ATA_TRUSTED_RECEIVE_DMA || + cmd == ATA_TRUSTED_SEND_DMA || + cmd == ATA_DOWNLOAD_MICROCODE_DMA || + cmd == ATA_READ_BUFFER_DMA || + cmd == ATA_WRITE_BUFFER_DMA) ataio->cmd.flags |= CAM_ATAIO_DMA; ataio->cmd.command = cmd; ataio->cmd.features = features; @@ -607,7 +614,8 @@ ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, ui cmd == ATA_WRITE_DMA_QUEUED_FUA48 || cmd == ATA_WRITE_STREAM_DMA48 || cmd == ATA_DATA_SET_MANAGEMENT || - cmd == ATA_READ_LOG_DMA_EXT) + cmd == ATA_READ_LOG_DMA_EXT || + cmd == ATA_WRITE_LOG_DMA_EXT) ataio->cmd.flags |= CAM_ATAIO_DMA; ataio->cmd.command = cmd; ataio->cmd.features = features; Modified: stable/12/sys/sys/ata.h ============================================================================== --- stable/12/sys/sys/ata.h Thu Apr 11 13:01:26 2019 (r346121) +++ stable/12/sys/sys/ata.h Thu Apr 11 13:11:20 2019 (r346122) @@ -393,6 +393,12 @@ struct ata_params { #define ATA_READ_LOG_DMA_EXT 0x47 /* read log DMA ext - PIO Data-In */ #define ATA_ZAC_MANAGEMENT_IN 0x4a /* ZAC management in */ #define ATA_ZM_REPORT_ZONES 0x00 /* report zones */ +#define ATA_WRITE_LOG_DMA_EXT 0x57 /* WRITE LOG DMA EXT */ +#define ATA_TRUSTED_NON_DATA 0x5b /* TRUSTED NON-DATA */ +#define ATA_TRUSTED_RECEIVE 0x5c /* TRUSTED RECEIVE */ +#define ATA_TRUSTED_RECEIVE_DMA 0x5d /* TRUSTED RECEIVE DMA */ +#define ATA_TRUSTED_SEND 0x5c /* TRUSTED SEND */ +#define ATA_TRUSTED_SEND_DMA 0x5d /* TRUSTED SEND DMA */ #define ATA_READ_FPDMA_QUEUED 0x60 /* read DMA NCQ */ #define ATA_WRITE_FPDMA_QUEUED 0x61 /* write DMA NCQ */ #define ATA_NCQ_NON_DATA 0x63 /* NCQ non-data command */ @@ -417,6 +423,8 @@ struct ata_params { #define ATA_ZM_FINISH_ZONE 0x02 /* finish zone */ #define ATA_ZM_OPEN_ZONE 0x03 /* open zone */ #define ATA_ZM_RWP 0x04 /* reset write pointer */ +#define ATA_DOWNLOAD_MICROCODE 0x92 /* DOWNLOAD MICROCODE */ +#define ATA_DOWNLOAD_MICROCODE_DMA 0x93 /* DOWNLOAD MICROCODE DMA */ #define ATA_PACKET_CMD 0xa0 /* packet command */ #define ATA_ATAPI_IDENTIFY 0xa1 /* get ATAPI params*/ #define ATA_SERVICE 0xa2 /* service command */ @@ -439,8 +447,11 @@ struct ata_params { #define ATA_CHECK_POWER_MODE 0xe5 /* device power mode */ #define ATA_SLEEP 0xe6 /* sleep */ #define ATA_FLUSHCACHE 0xe7 /* flush cache to disk */ +#define ATA_WRITE_BUFFER 0xe8 /* write buffer */ #define ATA_WRITE_PM 0xe8 /* write portmultiplier */ +#define ATA_READ_BUFFER_DMA 0xe9 /* read buffer DMA */ #define ATA_FLUSHCACHE48 0xea /* flush cache to disk */ +#define ATA_WRITE_BUFFER_DMA 0xeb /* write buffer DMA */ #define ATA_ATA_IDENTIFY 0xec /* get ATA params */ #define ATA_SETFEATURES 0xef /* features command */ #define ATA_SF_ENAB_WCACHE 0x02 /* enable write cache */ From owner-svn-src-stable@freebsd.org Thu Apr 11 13:11:47 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C88615844CC; Thu, 11 Apr 2019 13:11:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BEF6F8DBE9; Thu, 11 Apr 2019 13:11:46 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 968A4A9C2; Thu, 11 Apr 2019 13:11:46 +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 x3BDBkla077817; Thu, 11 Apr 2019 13:11:46 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDBkhv077815; Thu, 11 Apr 2019 13:11:46 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111311.x3BDBkhv077815@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:11:46 +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: r346123 - in stable/11/sys: cam/ata sys X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in stable/11/sys: cam/ata sys X-SVN-Commit-Revision: 346123 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BEF6F8DBE9 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:11:47 -0000 Author: mav Date: Thu Apr 11 13:11:45 2019 New Revision: 346123 URL: https://svnweb.freebsd.org/changeset/base/346123 Log: MFC r345849: List few more ATA commands. Modified: stable/11/sys/cam/ata/ata_all.c stable/11/sys/sys/ata.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cam/ata/ata_all.c ============================================================================== --- stable/11/sys/cam/ata/ata_all.c Thu Apr 11 13:11:20 2019 (r346122) +++ stable/11/sys/cam/ata/ata_all.c Thu Apr 11 13:11:45 2019 (r346123) @@ -213,8 +213,10 @@ ata_op_string(struct ata_cmd *cmd) case 0xe5: return ("CHECK_POWER_MODE"); case 0xe6: return ("SLEEP"); case 0xe7: return ("FLUSHCACHE"); - case 0xe8: return ("WRITE_PM"); + case 0xe8: return ("WRITE_BUFFER/PM"); + case 0xe9: return ("READ_BUFFER_DMA"); case 0xea: return ("FLUSHCACHE48"); + case 0xeb: return ("WRITE_BUFFER_DMA"); case 0xec: return ("ATA_IDENTIFY"); case 0xed: return ("MEDIA_EJECT"); case 0xef: @@ -498,7 +500,12 @@ ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, ui if (cmd == ATA_READ_DMA || cmd == ATA_READ_DMA_QUEUED || cmd == ATA_WRITE_DMA || - cmd == ATA_WRITE_DMA_QUEUED) + cmd == ATA_WRITE_DMA_QUEUED || + cmd == ATA_TRUSTED_RECEIVE_DMA || + cmd == ATA_TRUSTED_SEND_DMA || + cmd == ATA_DOWNLOAD_MICROCODE_DMA || + cmd == ATA_READ_BUFFER_DMA || + cmd == ATA_WRITE_BUFFER_DMA) ataio->cmd.flags |= CAM_ATAIO_DMA; ataio->cmd.command = cmd; ataio->cmd.features = features; @@ -524,7 +531,8 @@ ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, ui cmd == ATA_WRITE_DMA_QUEUED_FUA48 || cmd == ATA_WRITE_STREAM_DMA48 || cmd == ATA_DATA_SET_MANAGEMENT || - cmd == ATA_READ_LOG_DMA_EXT) + cmd == ATA_READ_LOG_DMA_EXT || + cmd == ATA_WRITE_LOG_DMA_EXT) ataio->cmd.flags |= CAM_ATAIO_DMA; ataio->cmd.command = cmd; ataio->cmd.features = features; Modified: stable/11/sys/sys/ata.h ============================================================================== --- stable/11/sys/sys/ata.h Thu Apr 11 13:11:20 2019 (r346122) +++ stable/11/sys/sys/ata.h Thu Apr 11 13:11:45 2019 (r346123) @@ -391,6 +391,12 @@ struct ata_params { #define ATA_READ_LOG_DMA_EXT 0x47 /* read log DMA ext - PIO Data-In */ #define ATA_ZAC_MANAGEMENT_IN 0x4a /* ZAC management in */ #define ATA_ZM_REPORT_ZONES 0x00 /* report zones */ +#define ATA_WRITE_LOG_DMA_EXT 0x57 /* WRITE LOG DMA EXT */ +#define ATA_TRUSTED_NON_DATA 0x5b /* TRUSTED NON-DATA */ +#define ATA_TRUSTED_RECEIVE 0x5c /* TRUSTED RECEIVE */ +#define ATA_TRUSTED_RECEIVE_DMA 0x5d /* TRUSTED RECEIVE DMA */ +#define ATA_TRUSTED_SEND 0x5c /* TRUSTED SEND */ +#define ATA_TRUSTED_SEND_DMA 0x5d /* TRUSTED SEND DMA */ #define ATA_READ_FPDMA_QUEUED 0x60 /* read DMA NCQ */ #define ATA_WRITE_FPDMA_QUEUED 0x61 /* write DMA NCQ */ #define ATA_NCQ_NON_DATA 0x63 /* NCQ non-data command */ @@ -415,6 +421,8 @@ struct ata_params { #define ATA_ZM_FINISH_ZONE 0x02 /* finish zone */ #define ATA_ZM_OPEN_ZONE 0x03 /* open zone */ #define ATA_ZM_RWP 0x04 /* reset write pointer */ +#define ATA_DOWNLOAD_MICROCODE 0x92 /* DOWNLOAD MICROCODE */ +#define ATA_DOWNLOAD_MICROCODE_DMA 0x93 /* DOWNLOAD MICROCODE DMA */ #define ATA_PACKET_CMD 0xa0 /* packet command */ #define ATA_ATAPI_IDENTIFY 0xa1 /* get ATAPI params*/ #define ATA_SERVICE 0xa2 /* service command */ @@ -437,8 +445,11 @@ struct ata_params { #define ATA_CHECK_POWER_MODE 0xe5 /* device power mode */ #define ATA_SLEEP 0xe6 /* sleep */ #define ATA_FLUSHCACHE 0xe7 /* flush cache to disk */ +#define ATA_WRITE_BUFFER 0xe8 /* write buffer */ #define ATA_WRITE_PM 0xe8 /* write portmultiplier */ +#define ATA_READ_BUFFER_DMA 0xe9 /* read buffer DMA */ #define ATA_FLUSHCACHE48 0xea /* flush cache to disk */ +#define ATA_WRITE_BUFFER_DMA 0xeb /* write buffer DMA */ #define ATA_ATA_IDENTIFY 0xec /* get ATA params */ #define ATA_SETFEATURES 0xef /* features command */ #define ATA_SF_ENAB_WCACHE 0x02 /* enable write cache */ From owner-svn-src-stable@freebsd.org Thu Apr 11 13:12:26 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E499158463F; Thu, 11 Apr 2019 13:12:26 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E01908DD83; Thu, 11 Apr 2019 13:12:25 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B5E67A9F3; Thu, 11 Apr 2019 13:12:25 +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 x3BDCPwF080955; Thu, 11 Apr 2019 13:12:25 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDCPch080954; Thu, 11 Apr 2019 13:12:25 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111312.x3BDCPch080954@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:12:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346124 - stable/12/sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/sys X-SVN-Commit-Revision: 346124 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E01908DD83 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.975,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:12:26 -0000 Author: mav Date: Thu Apr 11 13:12:25 2019 New Revision: 346124 URL: https://svnweb.freebsd.org/changeset/base/346124 Log: MFC r345850: Fix typos in r345849. Modified: stable/12/sys/sys/ata.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/sys/ata.h ============================================================================== --- stable/12/sys/sys/ata.h Thu Apr 11 13:11:45 2019 (r346123) +++ stable/12/sys/sys/ata.h Thu Apr 11 13:12:25 2019 (r346124) @@ -397,8 +397,8 @@ struct ata_params { #define ATA_TRUSTED_NON_DATA 0x5b /* TRUSTED NON-DATA */ #define ATA_TRUSTED_RECEIVE 0x5c /* TRUSTED RECEIVE */ #define ATA_TRUSTED_RECEIVE_DMA 0x5d /* TRUSTED RECEIVE DMA */ -#define ATA_TRUSTED_SEND 0x5c /* TRUSTED SEND */ -#define ATA_TRUSTED_SEND_DMA 0x5d /* TRUSTED SEND DMA */ +#define ATA_TRUSTED_SEND 0x5e /* TRUSTED SEND */ +#define ATA_TRUSTED_SEND_DMA 0x5f /* TRUSTED SEND DMA */ #define ATA_READ_FPDMA_QUEUED 0x60 /* read DMA NCQ */ #define ATA_WRITE_FPDMA_QUEUED 0x61 /* write DMA NCQ */ #define ATA_NCQ_NON_DATA 0x63 /* NCQ non-data command */ From owner-svn-src-stable@freebsd.org Thu Apr 11 13:12:45 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0378B15846AE; Thu, 11 Apr 2019 13:12:45 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5C1B48DEA1; Thu, 11 Apr 2019 13:12:44 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 34DEDA9FC; Thu, 11 Apr 2019 13:12:44 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3BDCiRb081029; Thu, 11 Apr 2019 13:12:44 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDCif1081028; Thu, 11 Apr 2019 13:12:44 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111312.x3BDCif1081028@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:12:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r346125 - stable/11/sys/sys X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/sys X-SVN-Commit-Revision: 346125 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5C1B48DEA1 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.975,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:12:45 -0000 Author: mav Date: Thu Apr 11 13:12:43 2019 New Revision: 346125 URL: https://svnweb.freebsd.org/changeset/base/346125 Log: MFC r345850: Fix typos in r345849. Modified: stable/11/sys/sys/ata.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/sys/ata.h ============================================================================== --- stable/11/sys/sys/ata.h Thu Apr 11 13:12:25 2019 (r346124) +++ stable/11/sys/sys/ata.h Thu Apr 11 13:12:43 2019 (r346125) @@ -395,8 +395,8 @@ struct ata_params { #define ATA_TRUSTED_NON_DATA 0x5b /* TRUSTED NON-DATA */ #define ATA_TRUSTED_RECEIVE 0x5c /* TRUSTED RECEIVE */ #define ATA_TRUSTED_RECEIVE_DMA 0x5d /* TRUSTED RECEIVE DMA */ -#define ATA_TRUSTED_SEND 0x5c /* TRUSTED SEND */ -#define ATA_TRUSTED_SEND_DMA 0x5d /* TRUSTED SEND DMA */ +#define ATA_TRUSTED_SEND 0x5e /* TRUSTED SEND */ +#define ATA_TRUSTED_SEND_DMA 0x5f /* TRUSTED SEND DMA */ #define ATA_READ_FPDMA_QUEUED 0x60 /* read DMA NCQ */ #define ATA_WRITE_FPDMA_QUEUED 0x61 /* write DMA NCQ */ #define ATA_NCQ_NON_DATA 0x63 /* NCQ non-data command */ From owner-svn-src-stable@freebsd.org Thu Apr 11 13:17:52 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A8D81584862; Thu, 11 Apr 2019 13:17:52 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DF18E8E156; Thu, 11 Apr 2019 13:17: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B2F8DAA00; Thu, 11 Apr 2019 13:17:51 +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 x3BDHpMe081326; Thu, 11 Apr 2019 13:17:51 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDHpMI081325; Thu, 11 Apr 2019 13:17:51 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111317.x3BDHpMI081325@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:17:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346126 - stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 346126 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: DF18E8E156 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:17:52 -0000 Author: mav Date: Thu Apr 11 13:17:51 2019 New Revision: 346126 URL: https://svnweb.freebsd.org/changeset/base/346126 Log: MFC r344926: MFV/ZoL: Fix zfs_vdev_aggregation_limit bounds checking Update the bounds checking for zfs_vdev_aggregation_limit so that it has a floor of zero and a maximum value of the supported block size for the pool. Additionally add an early return when zfs_vdev_aggregation_limit equals zero to disable aggregation. For very fast solid state or memory devices it may be more expensive to perform the aggregation than to issue the IO immediately. Author: Brian Behlendorf zfsonlinux/zfs@a58df6f53687ac6d1dee21f60de41b2552a43201 MFV/ZoL: Cap maximum aggregate IO size Commit 8542ef8 allowed optional IOs to be aggregated beyond the specified aggregation limit. Since the aggregation limit was also used to enforce the maximum block size, setting `zfs_vdev_aggregation_limit=16777216` could result in an attempt to allocate an ABD larger than 16M. Author: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed-by: George Melikov Reviewed-by: Giuseppe Di Natale Signed-off-by: Brian Behlendorf Closes #6259 Closes #6270 zfsonlinux/zfs@2d678f779aba26a93314c8ee1142c3985fa25cb6 Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:12:43 2019 (r346125) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:17:51 2019 (r346126) @@ -673,13 +673,18 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) zio_link_t *zl = NULL; uint64_t maxgap = 0; uint64_t size; + uint64_t limit; + int maxblocksize; boolean_t stretch; avl_tree_t *t; enum zio_flag flags; ASSERT(MUTEX_HELD(&vq->vq_lock)); - if (zio->io_flags & ZIO_FLAG_DONT_AGGREGATE) + maxblocksize = spa_maxblocksize(vq->vq_vdev->vdev_spa); + limit = MAX(MIN(zfs_vdev_aggregation_limit, maxblocksize), 0); + + if (zio->io_flags & ZIO_FLAG_DONT_AGGREGATE || limit == 0) return (NULL); first = last = zio; @@ -710,7 +715,7 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) t = vdev_queue_type_tree(vq, zio->io_type); while (t != NULL && (dio = AVL_PREV(t, first)) != NULL && (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags && - IO_SPAN(dio, last) <= zfs_vdev_aggregation_limit && + IO_SPAN(dio, last) <= limit && IO_GAP(dio, first) <= maxgap && dio->io_type == zio->io_type) { first = dio; @@ -734,8 +739,9 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) */ while ((dio = AVL_NEXT(t, last)) != NULL && (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags && - (IO_SPAN(first, dio) <= zfs_vdev_aggregation_limit || + (IO_SPAN(first, dio) <= limit || (dio->io_flags & ZIO_FLAG_OPTIONAL)) && + IO_SPAN(first, dio) <= maxblocksize && IO_GAP(last, dio) <= maxgap && dio->io_type == zio->io_type) { last = dio; @@ -789,7 +795,7 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) return (NULL); size = IO_SPAN(first, last); - ASSERT3U(size, <=, SPA_MAXBLOCKSIZE); + ASSERT3U(size, <=, maxblocksize); aio = zio_vdev_delegated_io(first->io_vd, first->io_offset, abd_alloc_for_io(size, B_TRUE), size, first->io_type, From owner-svn-src-stable@freebsd.org Thu Apr 11 13:18:10 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E05415848A2; Thu, 11 Apr 2019 13:18:10 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AEE418E26F; Thu, 11 Apr 2019 13:18: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 709ABAA01; Thu, 11 Apr 2019 13:18:09 +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 x3BDI9CE081399; Thu, 11 Apr 2019 13:18:09 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDI9CO081398; Thu, 11 Apr 2019 13:18:09 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111318.x3BDI9CO081398@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:18: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: r346127 - stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 346127 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: AEE418E26F X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:18:10 -0000 Author: mav Date: Thu Apr 11 13:18:09 2019 New Revision: 346127 URL: https://svnweb.freebsd.org/changeset/base/346127 Log: MFC r344926: MFV/ZoL: Fix zfs_vdev_aggregation_limit bounds checking Update the bounds checking for zfs_vdev_aggregation_limit so that it has a floor of zero and a maximum value of the supported block size for the pool. Additionally add an early return when zfs_vdev_aggregation_limit equals zero to disable aggregation. For very fast solid state or memory devices it may be more expensive to perform the aggregation than to issue the IO immediately. Author: Brian Behlendorf zfsonlinux/zfs@a58df6f53687ac6d1dee21f60de41b2552a43201 MFV/ZoL: Cap maximum aggregate IO size Commit 8542ef8 allowed optional IOs to be aggregated beyond the specified aggregation limit. Since the aggregation limit was also used to enforce the maximum block size, setting `zfs_vdev_aggregation_limit=16777216` could result in an attempt to allocate an ABD larger than 16M. Author: Brian Behlendorf Reviewed by: Matthew Ahrens Reviewed-by: George Melikov Reviewed-by: Giuseppe Di Natale Signed-off-by: Brian Behlendorf Closes #6259 Closes #6270 zfsonlinux/zfs@2d678f779aba26a93314c8ee1142c3985fa25cb6 Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:17:51 2019 (r346126) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:18:09 2019 (r346127) @@ -669,13 +669,18 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) zio_link_t *zl = NULL; uint64_t maxgap = 0; uint64_t size; + uint64_t limit; + int maxblocksize; boolean_t stretch; avl_tree_t *t; enum zio_flag flags; ASSERT(MUTEX_HELD(&vq->vq_lock)); - if (zio->io_flags & ZIO_FLAG_DONT_AGGREGATE) + maxblocksize = spa_maxblocksize(vq->vq_vdev->vdev_spa); + limit = MAX(MIN(zfs_vdev_aggregation_limit, maxblocksize), 0); + + if (zio->io_flags & ZIO_FLAG_DONT_AGGREGATE || limit == 0) return (NULL); first = last = zio; @@ -706,7 +711,7 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) t = vdev_queue_type_tree(vq, zio->io_type); while (t != NULL && (dio = AVL_PREV(t, first)) != NULL && (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags && - IO_SPAN(dio, last) <= zfs_vdev_aggregation_limit && + IO_SPAN(dio, last) <= limit && IO_GAP(dio, first) <= maxgap && dio->io_type == zio->io_type) { first = dio; @@ -730,8 +735,9 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) */ while ((dio = AVL_NEXT(t, last)) != NULL && (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags && - (IO_SPAN(first, dio) <= zfs_vdev_aggregation_limit || + (IO_SPAN(first, dio) <= limit || (dio->io_flags & ZIO_FLAG_OPTIONAL)) && + IO_SPAN(first, dio) <= maxblocksize && IO_GAP(last, dio) <= maxgap && dio->io_type == zio->io_type) { last = dio; @@ -785,7 +791,7 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) return (NULL); size = IO_SPAN(first, last); - ASSERT3U(size, <=, SPA_MAXBLOCKSIZE); + ASSERT3U(size, <=, maxblocksize); aio = zio_vdev_delegated_io(first->io_vd, first->io_offset, abd_alloc_for_io(size, B_TRUE), size, first->io_type, From owner-svn-src-stable@freebsd.org Thu Apr 11 13:19:27 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08EAE158499C; Thu, 11 Apr 2019 13:19:27 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A12B38E444; Thu, 11 Apr 2019 13:19:26 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6F797AA02; Thu, 11 Apr 2019 13:19:26 +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 x3BDJQaA081507; Thu, 11 Apr 2019 13:19:26 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDJQIT081506; Thu, 11 Apr 2019 13:19:26 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111319.x3BDJQIT081506@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:19:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346128 - stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 346128 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A12B38E444 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:19:27 -0000 Author: mav Date: Thu Apr 11 13:19:26 2019 New Revision: 346128 URL: https://svnweb.freebsd.org/changeset/base/346128 Log: MFC r344934, r345014: Add separate aggregation limit for non-rotating media. Before sequential scrub patches ZFS never aggregated I/Os above 128KB. Sequential scrub bumped that to 1MB, which motivation I understand for spinning disks, since it should reduce number of head seeks. But for SSDs it makes much less sense to me, especially on FreeBSD, where due to MAXPHYS limitation device will likely still see bunch of 128KB I/Os instead of one large. Having more strict aggregation limit allows to avoid allocation of large memory buffer and memcpy to/from it, that is a serious problem when bandwidth reaches few GB/s. Sponsored by: iXsystems, Inc. Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:18:09 2019 (r346127) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:19:26 2019 (r346128) @@ -178,6 +178,7 @@ int zfs_vdev_async_write_active_max_dirty_percent = 60 * they aren't able to help us aggregate at this level. */ int zfs_vdev_aggregation_limit = 1 << 20; +int zfs_vdev_aggregation_limit_non_rotating = SPA_OLD_MAXBLOCKSIZE; int zfs_vdev_read_gap_limit = 32 << 10; int zfs_vdev_write_gap_limit = 4 << 10; @@ -262,6 +263,9 @@ ZFS_VDEV_QUEUE_KNOB_MAX(initializing); SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, aggregation_limit, CTLFLAG_RWTUN, &zfs_vdev_aggregation_limit, 0, "I/O requests are aggregated up to this size"); +SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, aggregation_limit_non_rotating, CTLFLAG_RWTUN, + &zfs_vdev_aggregation_limit_non_rotating, 0, + "I/O requests are aggregated up to this size for non-rotating media"); SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, read_gap_limit, CTLFLAG_RWTUN, &zfs_vdev_read_gap_limit, 0, "Acceptable gap between two reads being aggregated"); @@ -682,7 +686,11 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) ASSERT(MUTEX_HELD(&vq->vq_lock)); maxblocksize = spa_maxblocksize(vq->vq_vdev->vdev_spa); - limit = MAX(MIN(zfs_vdev_aggregation_limit, maxblocksize), 0); + if (vq->vq_vdev->vdev_rotation_rate == VDEV_RATE_NON_ROTATING) + limit = zfs_vdev_aggregation_limit_non_rotating; + else + limit = zfs_vdev_aggregation_limit; + limit = MAX(MIN(limit, maxblocksize), 0); if (zio->io_flags & ZIO_FLAG_DONT_AGGREGATE || limit == 0) return (NULL); From owner-svn-src-stable@freebsd.org Thu Apr 11 13:19:47 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D5601584A16; Thu, 11 Apr 2019 13:19:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 053558E553; Thu, 11 Apr 2019 13:19:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B94F9AA03; Thu, 11 Apr 2019 13:19:46 +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 x3BDJkss081580; Thu, 11 Apr 2019 13:19:46 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDJkIR081579; Thu, 11 Apr 2019 13:19:46 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111319.x3BDJkIR081579@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:19:46 +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: r346129 - stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 346129 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 053558E553 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:19:47 -0000 Author: mav Date: Thu Apr 11 13:19:46 2019 New Revision: 346129 URL: https://svnweb.freebsd.org/changeset/base/346129 Log: MFC r344934, r345014: Add separate aggregation limit for non-rotating media. Before sequential scrub patches ZFS never aggregated I/Os above 128KB. Sequential scrub bumped that to 1MB, which motivation I understand for spinning disks, since it should reduce number of head seeks. But for SSDs it makes much less sense to me, especially on FreeBSD, where due to MAXPHYS limitation device will likely still see bunch of 128KB I/Os instead of one large. Having more strict aggregation limit allows to avoid allocation of large memory buffer and memcpy to/from it, that is a serious problem when bandwidth reaches few GB/s. Sponsored by: iXsystems, Inc. Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:19:26 2019 (r346128) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:19:46 2019 (r346129) @@ -178,6 +178,7 @@ int zfs_vdev_async_write_active_max_dirty_percent = 60 * they aren't able to help us aggregate at this level. */ int zfs_vdev_aggregation_limit = 1 << 20; +int zfs_vdev_aggregation_limit_non_rotating = SPA_OLD_MAXBLOCKSIZE; int zfs_vdev_read_gap_limit = 32 << 10; int zfs_vdev_write_gap_limit = 4 << 10; @@ -258,6 +259,9 @@ ZFS_VDEV_QUEUE_KNOB_MAX(trim); SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, aggregation_limit, CTLFLAG_RWTUN, &zfs_vdev_aggregation_limit, 0, "I/O requests are aggregated up to this size"); +SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, aggregation_limit_non_rotating, CTLFLAG_RWTUN, + &zfs_vdev_aggregation_limit_non_rotating, 0, + "I/O requests are aggregated up to this size for non-rotating media"); SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, read_gap_limit, CTLFLAG_RWTUN, &zfs_vdev_read_gap_limit, 0, "Acceptable gap between two reads being aggregated"); @@ -678,7 +682,11 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) ASSERT(MUTEX_HELD(&vq->vq_lock)); maxblocksize = spa_maxblocksize(vq->vq_vdev->vdev_spa); - limit = MAX(MIN(zfs_vdev_aggregation_limit, maxblocksize), 0); + if (vq->vq_vdev->vdev_rotation_rate == VDEV_RATE_NON_ROTATING) + limit = zfs_vdev_aggregation_limit_non_rotating; + else + limit = zfs_vdev_aggregation_limit; + limit = MAX(MIN(limit, maxblocksize), 0); if (zio->io_flags & ZIO_FLAG_DONT_AGGREGATE || limit == 0) return (NULL); From owner-svn-src-stable@freebsd.org Thu Apr 11 13:20:51 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 006BD1584AE5; Thu, 11 Apr 2019 13:20:51 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 964DB8E708; Thu, 11 Apr 2019 13:20:50 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6E2F7AA1F; Thu, 11 Apr 2019 13:20: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 x3BDKoqi082522; Thu, 11 Apr 2019 13:20:50 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDKn4G082515; Thu, 11 Apr 2019 13:20:49 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111320.x3BDKn4G082515@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:20:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346130 - in stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Commit-Revision: 346130 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 964DB8E708 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:20:51 -0000 Author: mav Date: Thu Apr 11 13:20:48 2019 New Revision: 346130 URL: https://svnweb.freebsd.org/changeset/base/346130 Log: MFC r344936: MFV/ZoL: Disable LBA weighting on files and SSDs The LBA weighting makes sense on rotational media where the outer tracks have twice the bandwidth of the inner tracks. However, it is detrimental on nonrotational media such as solid state disks, where the only effect is to ensure that metaslabs enter the best-fit allocation behavior sooner, which is detrimental to performance. It also makes no sense on files where the underlying filesystem can arrange things however it wants. Author: Richard Yao Signed-off-by: Richard Yao Signed-off-by: Brian Behlendorf Closes #3712 zfsonlinux/zfs@fb40095f5f0853946f8150481ca22602d1334dfe To reduce code divergence this merge replaces equivalent but different FreeBSD code detecting non-rotating medium vdevs. Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c Thu Apr 11 13:19:46 2019 (r346129) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c Thu Apr 11 13:20:48 2019 (r346130) @@ -1830,7 +1830,7 @@ metaslab_space_weight(metaslab_t *msp) * In effect, this means that we'll select the metaslab with the most * free bandwidth rather than simply the one with the most free space. */ - if (metaslab_lba_weighting_enabled) { + if (!vd->vdev_nonrot && metaslab_lba_weighting_enabled) { weight = 2 * weight - (msp->ms_id * weight) / vd->vdev_ms_count; ASSERT(weight >= space && weight <= 2 * space); } Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h Thu Apr 11 13:19:46 2019 (r346129) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h Thu Apr 11 13:20:48 2019 (r346130) @@ -235,6 +235,7 @@ struct vdev { vdev_stat_t vdev_stat; /* virtual device statistics */ boolean_t vdev_expanding; /* expand the vdev? */ boolean_t vdev_reopening; /* reopen in progress? */ + boolean_t vdev_nonrot; /* true if solid state */ int vdev_open_error; /* error on last open */ kthread_t *vdev_open_thread; /* thread opening children */ uint64_t vdev_crtxg; /* txg when top-level was added */ @@ -372,9 +373,6 @@ struct vdev { zio_t *vdev_probe_zio; /* root of current probe */ vdev_aux_t vdev_label_aux; /* on-disk aux state */ struct trim_map *vdev_trimmap; /* map on outstanding trims */ - uint16_t vdev_rotation_rate; /* rotational rate of the media */ -#define VDEV_RATE_UNKNOWN 0 -#define VDEV_RATE_NON_ROTATING 1 uint64_t vdev_leaf_zap; /* Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Thu Apr 11 13:19:46 2019 (r346129) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Thu Apr 11 13:20:48 2019 (r346130) @@ -1476,15 +1476,19 @@ vdev_open_children(vdev_t *vd) taskq_t *tq; int children = vd->vdev_children; + vd->vdev_nonrot = B_TRUE; + /* * in order to handle pools on top of zvols, do the opens * in a single thread so that the same thread holds the * spa_namespace_lock */ if (B_TRUE || vdev_uses_zvols(vd)) { - for (int c = 0; c < children; c++) + for (int c = 0; c < children; c++) { vd->vdev_child[c]->vdev_open_error = vdev_open(vd->vdev_child[c]); + vd->vdev_nonrot &= vd->vdev_child[c]->vdev_nonrot; + } return; } tq = taskq_create("vdev_open", children, minclsyspri, @@ -1495,6 +1499,9 @@ vdev_open_children(vdev_t *vd) TQ_SLEEP) != 0); taskq_destroy(tq); + + for (int c = 0; c < children; c++) + vd->vdev_nonrot &= vd->vdev_child[c]->vdev_nonrot; } /* Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c Thu Apr 11 13:19:46 2019 (r346129) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c Thu Apr 11 13:20:48 2019 (r346130) @@ -72,6 +72,9 @@ vdev_file_open(vdev_t *vd, uint64_t *psize, uint64_t * vattr_t vattr; int error; + /* Rotational optimizations only make sense on block devices */ + vd->vdev_nonrot = B_TRUE; + /* * We must have a pathname, and it must be absolute. */ Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Thu Apr 11 13:19:46 2019 (r346129) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Thu Apr 11 13:20:48 2019 (r346130) @@ -88,10 +88,10 @@ vdev_geom_set_rotation_rate(vdev_t *vd, struct g_consu uint16_t rate; error = g_getattr("GEOM::rotation_rate", cp, &rate); - if (error == 0) - vd->vdev_rotation_rate = rate; + if (error == 0 && rate == 1) + vd->vdev_nonrot = B_TRUE; else - vd->vdev_rotation_rate = VDEV_RATE_UNKNOWN; + vd->vdev_nonrot = B_FALSE; } static void Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c Thu Apr 11 13:19:46 2019 (r346129) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c Thu Apr 11 13:20:48 2019 (r346130) @@ -169,7 +169,7 @@ vdev_mirror_load(mirror_map_t *mm, vdev_t *vd, uint64_ load = vdev_queue_length(vd); lastoffset = vdev_queue_lastoffset(vd); - if (vd->vdev_rotation_rate == VDEV_RATE_NON_ROTATING) { + if (vd->vdev_nonrot) { /* Non-rotating media. */ if (lastoffset == zio_offset) return (load + non_rotating_inc); Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:19:46 2019 (r346129) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:20:48 2019 (r346130) @@ -686,7 +686,7 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) ASSERT(MUTEX_HELD(&vq->vq_lock)); maxblocksize = spa_maxblocksize(vq->vq_vdev->vdev_spa); - if (vq->vq_vdev->vdev_rotation_rate == VDEV_RATE_NON_ROTATING) + if (vq->vq_vdev->vdev_nonrot) limit = zfs_vdev_aggregation_limit_non_rotating; else limit = zfs_vdev_aggregation_limit; From owner-svn-src-stable@freebsd.org Thu Apr 11 13:21:12 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82D6B1584B34; Thu, 11 Apr 2019 13:21:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 244658E861; Thu, 11 Apr 2019 13:21:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F1022AB41; Thu, 11 Apr 2019 13:21:11 +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 x3BDLBco083323; Thu, 11 Apr 2019 13:21:11 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3BDLAq1083317; Thu, 11 Apr 2019 13:21:10 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201904111321.x3BDLAq1083317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 11 Apr 2019 13:21:10 +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: r346131 - in stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Commit-Revision: 346131 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 244658E861 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Apr 2019 13:21:12 -0000 Author: mav Date: Thu Apr 11 13:21:10 2019 New Revision: 346131 URL: https://svnweb.freebsd.org/changeset/base/346131 Log: MFC r344936: MFV/ZoL: Disable LBA weighting on files and SSDs The LBA weighting makes sense on rotational media where the outer tracks have twice the bandwidth of the inner tracks. However, it is detrimental on nonrotational media such as solid state disks, where the only effect is to ensure that metaslabs enter the best-fit allocation behavior sooner, which is detrimental to performance. It also makes no sense on files where the underlying filesystem can arrange things however it wants. Author: Richard Yao Signed-off-by: Richard Yao Signed-off-by: Brian Behlendorf Closes #3712 zfsonlinux/zfs@fb40095f5f0853946f8150481ca22602d1334dfe To reduce code divergence this merge replaces equivalent but different FreeBSD code detecting non-rotating medium vdevs. Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c Thu Apr 11 13:20:48 2019 (r346130) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c Thu Apr 11 13:21:10 2019 (r346131) @@ -1830,7 +1830,7 @@ metaslab_space_weight(metaslab_t *msp) * In effect, this means that we'll select the metaslab with the most * free bandwidth rather than simply the one with the most free space. */ - if (metaslab_lba_weighting_enabled) { + if (!vd->vdev_nonrot && metaslab_lba_weighting_enabled) { weight = 2 * weight - (msp->ms_id * weight) / vd->vdev_ms_count; ASSERT(weight >= space && weight <= 2 * space); } Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h Thu Apr 11 13:20:48 2019 (r346130) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h Thu Apr 11 13:21:10 2019 (r346131) @@ -235,6 +235,7 @@ struct vdev { vdev_stat_t vdev_stat; /* virtual device statistics */ boolean_t vdev_expanding; /* expand the vdev? */ boolean_t vdev_reopening; /* reopen in progress? */ + boolean_t vdev_nonrot; /* true if solid state */ int vdev_open_error; /* error on last open */ kthread_t *vdev_open_thread; /* thread opening children */ uint64_t vdev_crtxg; /* txg when top-level was added */ @@ -372,9 +373,6 @@ struct vdev { zio_t *vdev_probe_zio; /* root of current probe */ vdev_aux_t vdev_label_aux; /* on-disk aux state */ struct trim_map *vdev_trimmap; /* map on outstanding trims */ - uint16_t vdev_rotation_rate; /* rotational rate of the media */ -#define VDEV_RATE_UNKNOWN 0 -#define VDEV_RATE_NON_ROTATING 1 uint64_t vdev_leaf_zap; /* Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Thu Apr 11 13:20:48 2019 (r346130) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Thu Apr 11 13:21:10 2019 (r346131) @@ -1476,15 +1476,19 @@ vdev_open_children(vdev_t *vd) taskq_t *tq; int children = vd->vdev_children; + vd->vdev_nonrot = B_TRUE; + /* * in order to handle pools on top of zvols, do the opens * in a single thread so that the same thread holds the * spa_namespace_lock */ if (B_TRUE || vdev_uses_zvols(vd)) { - for (int c = 0; c < children; c++) + for (int c = 0; c < children; c++) { vd->vdev_child[c]->vdev_open_error = vdev_open(vd->vdev_child[c]); + vd->vdev_nonrot &= vd->vdev_child[c]->vdev_nonrot; + } return; } tq = taskq_create("vdev_open", children, minclsyspri, @@ -1495,6 +1499,9 @@ vdev_open_children(vdev_t *vd) TQ_SLEEP) != 0); taskq_destroy(tq); + + for (int c = 0; c < children; c++) + vd->vdev_nonrot &= vd->vdev_child[c]->vdev_nonrot; } /* Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c Thu Apr 11 13:20:48 2019 (r346130) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c Thu Apr 11 13:21:10 2019 (r346131) @@ -72,6 +72,9 @@ vdev_file_open(vdev_t *vd, uint64_t *psize, uint64_t * vattr_t vattr; int error; + /* Rotational optimizations only make sense on block devices */ + vd->vdev_nonrot = B_TRUE; + /* * We must have a pathname, and it must be absolute. */ Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Thu Apr 11 13:20:48 2019 (r346130) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Thu Apr 11 13:21:10 2019 (r346131) @@ -88,10 +88,10 @@ vdev_geom_set_rotation_rate(vdev_t *vd, struct g_consu uint16_t rate; error = g_getattr("GEOM::rotation_rate", cp, &rate); - if (error == 0) - vd->vdev_rotation_rate = rate; + if (error == 0 && rate == 1) + vd->vdev_nonrot = B_TRUE; else - vd->vdev_rotation_rate = VDEV_RATE_UNKNOWN; + vd->vdev_nonrot = B_FALSE; } static void Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c Thu Apr 11 13:20:48 2019 (r346130) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c Thu Apr 11 13:21:10 2019 (r346131) @@ -169,7 +169,7 @@ vdev_mirror_load(mirror_map_t *mm, vdev_t *vd, uint64_ load = vdev_queue_length(vd); lastoffset = vdev_queue_lastoffset(vd); - if (vd->vdev_rotation_rate == VDEV_RATE_NON_ROTATING) { + if (vd->vdev_nonrot) { /* Non-rotating media. */ if (lastoffset == zio_offset) return (load + non_rotating_inc); Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:20:48 2019 (r346130) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c Thu Apr 11 13:21:10 2019 (r346131) @@ -682,7 +682,7 @@ vdev_queue_aggregate(vdev_queue_t *vq, zio_t *zio) ASSERT(MUTEX_HELD(&vq->vq_lock)); maxblocksize = spa_maxblocksize(vq->vq_vdev->vdev_spa); - if (vq->vq_vdev->vdev_rotation_rate == VDEV_RATE_NON_ROTATING) + if (vq->vq_vdev->vdev_nonrot) limit = zfs_vdev_aggregation_limit_non_rotating; else limit = zfs_vdev_aggregation_limit; From owner-svn-src-stable@freebsd.org Fri Apr 12 00:31:24 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 382D0156E06B; Fri, 12 Apr 2019 00:31:24 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C989584578; Fri, 12 Apr 2019 00:31:23 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8ABDC19DA2; Fri, 12 Apr 2019 00:31:23 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3C0VNqp034305; Fri, 12 Apr 2019 00:31:23 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3C0VNUc034303; Fri, 12 Apr 2019 00:31:23 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201904120031.x3C0VNUc034303@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 12 Apr 2019 00:31:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346142 - in stable/12/libexec/rtld-elf: arm mips X-SVN-Group: stable-12 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in stable/12/libexec/rtld-elf: arm mips X-SVN-Commit-Revision: 346142 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C989584578 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.98)[-0.975,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 00:31:24 -0000 Author: emaste Date: Fri Apr 12 00:31:22 2019 New Revision: 346142 URL: https://svnweb.freebsd.org/changeset/base/346142 Log: MFC r345693, 345694: rtld: attempt to fix reloc_nonplt_object TLS allocation on arm and mips allocate_tls_offset returns true on success. This still needs more testing and review, but this change is consistent with other archs. PR: 236880 Reported by: Andrew Gierth (arm) Sponsored by: The FreeBSD Foundation Modified: stable/12/libexec/rtld-elf/arm/reloc.c stable/12/libexec/rtld-elf/mips/reloc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/arm/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/arm/reloc.c Fri Apr 12 00:15:36 2019 (r346141) +++ stable/12/libexec/rtld-elf/arm/reloc.c Fri Apr 12 00:31:22 2019 (r346142) @@ -319,7 +319,7 @@ reloc_nonplt_object(Obj_Entry *obj, const Elf_Rel *rel if (def == NULL) return -1; - if (!defobj->tls_done && allocate_tls_offset(obj)) + if (!defobj->tls_done && !allocate_tls_offset(obj)) return -1; tmp = (Elf_Addr)def->st_value + defobj->tlsoffset; Modified: stable/12/libexec/rtld-elf/mips/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/mips/reloc.c Fri Apr 12 00:15:36 2019 (r346141) +++ stable/12/libexec/rtld-elf/mips/reloc.c Fri Apr 12 00:31:22 2019 (r346142) @@ -588,7 +588,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int if (def == NULL) return -1; - if (!defobj->tls_done && allocate_tls_offset(obj)) + if (!defobj->tls_done && !allocate_tls_offset(obj)) return -1; val += (Elf_Addr)def->st_value - TLS_DTP_OFFSET; @@ -616,7 +616,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int if (def == NULL) return -1; - if (!defobj->tls_done && allocate_tls_offset(obj)) + if (!defobj->tls_done && !allocate_tls_offset(obj)) return -1; val += (Elf_Addr)(def->st_value + defobj->tlsoffset From owner-svn-src-stable@freebsd.org Fri Apr 12 01:03:07 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6A147156E970; Fri, 12 Apr 2019 01:03:07 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1371D85527; Fri, 12 Apr 2019 01:03:07 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 08B971A408; Fri, 12 Apr 2019 01:03:07 +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 x3C137e9053964; Fri, 12 Apr 2019 01:03:07 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3C1302P053933; Fri, 12 Apr 2019 01:03:00 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201904120103.x3C1302P053933@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Fri, 12 Apr 2019 01:03:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346145 - in stable/12: contrib/bearssl etc/mtree include lib lib/libbearssl lib/libsecureboot lib/libsecureboot/tests sbin sbin/veriexec share/mk stand stand/common stand/ficl stand/fi... X-SVN-Group: stable-12 X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: in stable/12: contrib/bearssl etc/mtree include lib lib/libbearssl lib/libsecureboot lib/libsecureboot/tests sbin sbin/veriexec share/mk stand stand/common stand/ficl stand/ficl32 stand/i386/loader st... X-SVN-Commit-Revision: 346145 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1371D85527 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.94 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.94)[-0.945,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 01:03:07 -0000 Author: sjg Date: Fri Apr 12 01:03:00 2019 New Revision: 346145 URL: https://svnweb.freebsd.org/changeset/base/346145 Log: Add support for loader veriexec Also sbin/veriexec for mac_veriexec MFC r343281,344564-344568,344780,344784,345289,346070 Added: stable/12/contrib/bearssl/ - copied from r344564, head/contrib/bearssl/ stable/12/lib/libbearssl/ - copied from r344564, head/lib/libbearssl/ stable/12/lib/libsecureboot/ - copied from r344565, head/lib/libsecureboot/ stable/12/sbin/veriexec/ - copied from r344567, head/sbin/veriexec/ stable/12/tools/build/options/WITH_BEARSSL - copied unchanged from r344566, head/tools/build/options/WITH_BEARSSL stable/12/tools/build/options/WITH_LOADER_VERIEXEC - copied unchanged from r344566, head/tools/build/options/WITH_LOADER_VERIEXEC stable/12/tools/build/options/WITH_VERIEXEC - copied unchanged from r344566, head/tools/build/options/WITH_VERIEXEC Modified: stable/12/etc/mtree/BSD.include.dist stable/12/include/Makefile stable/12/lib/Makefile stable/12/lib/libsecureboot/Makefile.inc stable/12/lib/libsecureboot/tests/Makefile stable/12/lib/libsecureboot/verify_file.c stable/12/sbin/Makefile stable/12/share/mk/src.libnames.mk stable/12/share/mk/src.opts.mk stable/12/stand/common/boot.c stable/12/stand/common/bootstrap.h stable/12/stand/common/interp_forth.c stable/12/stand/common/interp_simple.c stable/12/stand/common/load_elf.c stable/12/stand/common/load_elf_obj.c stable/12/stand/common/module.c stable/12/stand/ficl/Makefile.depend stable/12/stand/ficl/ficl.h stable/12/stand/ficl/fileaccess.c stable/12/stand/ficl32/Makefile.depend stable/12/stand/i386/loader/Makefile.depend stable/12/stand/liblua/Makefile stable/12/stand/liblua/lstd.c stable/12/stand/libsa/Makefile stable/12/stand/libsa/Makefile.depend stable/12/stand/libsa32/Makefile.depend stable/12/stand/loader.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/etc/mtree/BSD.include.dist ============================================================================== --- stable/12/etc/mtree/BSD.include.dist Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/etc/mtree/BSD.include.dist Fri Apr 12 01:03:00 2019 (r346145) @@ -160,6 +160,8 @@ .. usb .. + veriexec + .. vkbd .. wi @@ -353,6 +355,8 @@ mac_mls .. mac_partition + .. + mac_veriexec .. .. ssp Modified: stable/12/include/Makefile ============================================================================== --- stable/12/include/Makefile Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/include/Makefile Fri Apr 12 01:03:00 2019 (r346145) @@ -47,7 +47,7 @@ LSUBDIRS= cam/ata cam/mmc cam/nvme cam/scsi \ dev/hwpmc dev/hyperv \ dev/ic dev/iicbus dev/io dev/mfi dev/mmc dev/nvme \ dev/ofw dev/pbio dev/pci ${_dev_powermac_nvram} dev/ppbus dev/smbus \ - dev/speaker dev/tcp_log dev/vkbd dev/wi \ + dev/speaker dev/tcp_log dev/veriexec dev/vkbd dev/wi \ fs/devfs fs/fdescfs fs/msdosfs fs/nandfs fs/nfs fs/nullfs \ fs/procfs fs/smbfs fs/udf fs/unionfs \ geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \ @@ -60,6 +60,7 @@ LSUBDIRS= cam/ata cam/mmc cam/nvme cam/scsi \ security/audit \ security/mac_biba security/mac_bsdextended security/mac_lomac \ security/mac_mls security/mac_partition \ + security/mac_veriexec \ sys/disk \ ufs/ffs ufs/ufs @@ -157,7 +158,7 @@ copies: .PHONY .META done; \ fi .endfor -.for i in ${LDIRS} ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/bktr:Ndev/evdev:Ndev/hyperv:Ndev/nand:Ndev/pci} ${LSUBSUBDIRS} +.for i in ${LDIRS} ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/bktr:Ndev/evdev:Ndev/hyperv:Ndev/nand:Ndev/pci:Ndev/veriexec} ${LSUBSUBDIRS} cd ${SRCTOP}/sys; \ ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \ ${SDESTDIR}${INCLUDEDIR}/$i @@ -196,6 +197,9 @@ copies: .PHONY .META cd ${SRCTOP}/sys/dev/pci; \ ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 pcireg.h \ ${SDESTDIR}${INCLUDEDIR}/dev/pci + cd ${SRCTOP}/sys/dev/veriexec; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 veriexec_ioctl.h \ + ${SDESTDIR}${INCLUDEDIR}/dev/veriexec cd ${SRCTOP}/sys/fs/cd9660/; \ ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ ${SDESTDIR}${INCLUDEDIR}/isofs/cd9660 @@ -264,7 +268,7 @@ symlinks: .PHONY .META ${INSTALL_SYMLINK} ${TAG_ARGS} ../../../sys/$i/$$h ${SDESTDIR}${INCLUDEDIR}/$i; \ done .endfor -.for i in ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/bktr:Ndev/evdev:Ndev/hyperv:Ndev/nand:Ndev/pci} +.for i in ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/bktr:Ndev/evdev:Ndev/hyperv:Ndev/nand:Ndev/pci:Ndev/veriexec} cd ${SRCTOP}/sys/$i; \ for h in *.h; do \ ${INSTALL_SYMLINK} ${TAG_ARGS} ../../../../sys/$i/$$h ${SDESTDIR}${INCLUDEDIR}/$i; \ @@ -311,6 +315,11 @@ symlinks: .PHONY .META for h in pcireg.h; do \ ${INSTALL_SYMLINK} ${TAG_ARGS} ../../../../sys/dev/pci/$$h \ ${SDESTDIR}${INCLUDEDIR}/dev/pci; \ + done + cd ${SRCTOP}/sys/dev/veriexec; \ + for h in veriexec_ioctl.h; do \ + ln -fs ../../../../sys/dev/veriexec/$$h \ + ${SDESTDIR}${INCLUDEDIR}/dev/veriexec; \ done .for i in ${LSUBSUBDIRS} cd ${SRCTOP}/sys/$i; \ Modified: stable/12/lib/Makefile ============================================================================== --- stable/12/lib/Makefile Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/lib/Makefile Fri Apr 12 01:03:00 2019 (r346145) @@ -133,6 +133,7 @@ SUBDIR_DEPEND_libpcap= ofed # NB: keep these sorted by MK_* knobs SUBDIR.${MK_ATM}+= libngatm +SUBDIR.${MK_BEARSSL}+= libbearssl libsecureboot SUBDIR.${MK_BLACKLIST}+=libblacklist SUBDIR.${MK_BLUETOOTH}+=libbluetooth libsdp SUBDIR.${MK_BSNMP}+= libbsnmp @@ -208,6 +209,7 @@ SUBDIR.${MK_TESTS}+= tests SUBDIR.${MK_UNBOUND}+= libunbound SUBDIR.${MK_USB}+= libusbhid libusb SUBDIR.${MK_OFED}+= ofed +SUBDIR.${MK_VERIEXEC}+= libveriexec SUBDIR.${MK_ZFS}+= libbe .if !make(install) Modified: stable/12/lib/libsecureboot/Makefile.inc ============================================================================== --- head/lib/libsecureboot/Makefile.inc Tue Feb 26 06:09:10 2019 (r344565) +++ stable/12/lib/libsecureboot/Makefile.inc Fri Apr 12 01:03:00 2019 (r346145) @@ -92,6 +92,19 @@ VE_HASH_KAT_STR?= vc_PEM XCFLAGS.vets+= -DVE_HASH_KAT_STR=${VE_HASH_KAT_STR} .endif +# this should be updated occassionally this is 2019-01-01Z +SOURCE_DATE_EPOCH?= 1546329600 +.if ${MK_REPRODUCIBLE_BUILD} == "yes" +BUILD_UTC?= ${SOURCE_DATE_EPOCH} +.endif +# BUILD_UTC provides a basis for the loader's notion of time +# By default we use the mtime of BUILD_UTC_FILE +.if empty(BUILD_UTC_FILE) +BUILD_UTC_FILE:= ${.PARSEDIR:tA}/${.PARSEFILE} +.endif +# you can of course set BUILD_UTC to any value you like +BUILD_UTC?= ${${STAT:Ustat} -f %m ${BUILD_UTC_FILE}:L:sh} + # Generate ta.h containing one or more PEM encoded trust anchors in ta_PEM. # # If we are doing self-tests, we define another arrary vc_PEM @@ -110,9 +123,7 @@ ta.h: ${.ALLTARGETS:M[tv]*pem:O:u} ( cat ${.ALLSRC:N*crl*:Mv*.pem} /dev/null | \ file2c -sx 'static const char vc_PEM[] = {' '};'; echo ) >> ${.TARGET} .endif -.if !empty(BUILD_UTC_FILE) - echo '#define BUILD_UTC ${${STAT:Ustat} -f %m ${BUILD_UTC_FILE}:L:sh}' >> ${.TARGET} ${.OODATE:MNOMETA_CMP} -.endif + echo '#define BUILD_UTC ${BUILD_UTC}' >> ${.TARGET} ${.OODATE:MNOMETA_CMP} # This header records our preference for signature extensions. vesigned.o vesigned.po vesigned.pico: vse.h Modified: stable/12/lib/libsecureboot/tests/Makefile ============================================================================== --- head/lib/libsecureboot/tests/Makefile Tue Feb 26 06:09:10 2019 (r344565) +++ stable/12/lib/libsecureboot/tests/Makefile Fri Apr 12 01:03:00 2019 (r346145) @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + PROG= tvo SRCS+= tvo.c Modified: stable/12/lib/libsecureboot/verify_file.c ============================================================================== --- head/lib/libsecureboot/verify_file.c Tue Feb 26 06:09:10 2019 (r344565) +++ stable/12/lib/libsecureboot/verify_file.c Fri Apr 12 01:03:00 2019 (r346145) @@ -368,7 +368,7 @@ verify_file(int fd, const char *filename, off_t off, i return (rc); } - if (severity || verbose) + if (severity || verbose || rc == VE_FINGERPRINT_WRONG) printf("Unverified: %s\n", ve_error_get()); if (rc == VE_FINGERPRINT_UNKNOWN && severity < VE_MUST) rc = VE_UNVERIFIED_OK; Modified: stable/12/sbin/Makefile ============================================================================== --- stable/12/sbin/Makefile Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/sbin/Makefile Fri Apr 12 01:03:00 2019 (r346145) @@ -86,6 +86,7 @@ SUBDIR.${MK_PF}+= pfctl SUBDIR.${MK_PF}+= pflogd SUBDIR.${MK_QUOTAS}+= quotacheck SUBDIR.${MK_ROUTED}+= routed +SUBDIR.${MK_VERIEXEC}+= veriexec SUBDIR.${MK_ZFS}+= bectl SUBDIR.${MK_ZFS}+= zfsbootcfg Modified: stable/12/share/mk/src.libnames.mk ============================================================================== --- stable/12/share/mk/src.libnames.mk Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/share/mk/src.libnames.mk Fri Apr 12 01:03:00 2019 (r346145) @@ -209,6 +209,21 @@ _LIBRARIES+= \ osmvendor .endif +.if ${MK_BEARSSL} == "yes" +_INTERNALLIBS+= \ + bearssl \ + secureboot \ + +LIBBEARSSL?= ${LIBBEARSSLDIR}/libbearssl${PIE_SUFFIX}.a +LIBSECUREBOOT?= ${LIBSECUREBOOTDIR}/libsecureboot${PIE_SUFFIX}.a +.endif + +.if ${MK_VERIEXEC} == "yes" +_INTERNALLIBS+= veriexec + +LIBVERIEXEC?= ${LIBVERIEXECDIR}/libveriexec${PIE_SUFFIX}.a +.endif + # Each library's LIBADD needs to be duplicated here for static linkage of # 2nd+ order consumers. Auto-generating this would be better. _DP_80211= sbuf bsdxml Modified: stable/12/share/mk/src.opts.mk ============================================================================== --- stable/12/share/mk/src.opts.mk Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/share/mk/src.opts.mk Fri Apr 12 01:03:00 2019 (r346145) @@ -191,6 +191,7 @@ __DEFAULT_YES_OPTIONS = \ ZONEINFO __DEFAULT_NO_OPTIONS = \ + BEARSSL \ BSD_GREP \ CLANG_EXTRAS \ DTRACE_TESTS \ @@ -214,6 +215,8 @@ __DEFAULT_NO_OPTIONS = \ __DEFAULT_DEPENDENT_OPTIONS= \ CLANG_FULL/CLANG \ LLVM_TARGET_ALL/CLANG \ + LOADER_VERIEXEC/BEARSSL \ + VERIEXEC/BEARSSL \ # MK_*_SUPPORT options which default to "yes" unless their corresponding # MK_* variable is set to "no". Modified: stable/12/stand/common/boot.c ============================================================================== --- stable/12/stand/common/boot.c Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/common/boot.c Fri Apr 12 01:03:00 2019 (r346145) @@ -106,6 +106,10 @@ command_boot(int argc, char *argv[]) if (archsw.arch_autoload() != 0) return(CMD_ERROR); +#ifdef LOADER_VERIEXEC + verify_pcr_export(); /* for measured boot */ +#endif + /* Call the exec handler from the loader matching the kernel */ file_formats[fp->f_loader]->l_exec(fp); return(CMD_ERROR); Modified: stable/12/stand/common/bootstrap.h ============================================================================== --- stable/12/stand/common/bootstrap.h Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/common/bootstrap.h Fri Apr 12 01:03:00 2019 (r346145) @@ -330,6 +330,9 @@ struct arch_switch /* Probe ZFS pool(s), if needed. */ void (*arch_zfs_probe)(void); + /* Return the hypervisor name/type or NULL if not virtualized. */ + const char *(*arch_hypervisor)(void); + /* For kexec-type loaders, get ksegment structure */ void (*arch_kexec_kseg_get)(int *nseg, void **kseg); }; @@ -344,6 +347,10 @@ time_t time(time_t *tloc); #ifndef CTASSERT #define CTASSERT(x) _Static_assert(x, "compile-time assertion failed") +#endif + +#ifdef LOADER_VERIEXEC +#include #endif #endif /* !_BOOTSTRAP_H_ */ Modified: stable/12/stand/common/interp_forth.c ============================================================================== --- stable/12/stand/common/interp_forth.c Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/common/interp_forth.c Fri Apr 12 01:03:00 2019 (r346145) @@ -282,6 +282,12 @@ bf_init(void) /* try to load and run init file if present */ if ((fd = open("/boot/boot.4th", O_RDONLY)) != -1) { +#ifdef LOADER_VERIEXEC + if (verify_file(fd, "/boot/boot.4th", 0, VE_GUESS) < 0) { + close(fd); + return; + } +#endif (void)ficlExecFD(bf_vm, fd); close(fd); } @@ -378,6 +384,13 @@ interp_include(const char *filename) return(CMD_ERROR); } +#ifdef LOADER_VERIEXEC + if (verify_file(fd, filename, 0, VE_GUESS) < 0) { + close(fd); + sprintf(command_errbuf,"can't verify '%s'", filename); + return(CMD_ERROR); + } +#endif /* * Read the script into memory. */ Modified: stable/12/stand/common/interp_simple.c ============================================================================== --- stable/12/stand/common/interp_simple.c Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/common/interp_simple.c Fri Apr 12 01:03:00 2019 (r346145) @@ -96,6 +96,14 @@ interp_include(const char *filename) return(CMD_ERROR); } +#ifdef LOADER_VERIEXEC + if (verify_file(fd, filename, 0, VE_GUESS) < 0) { + close(fd); + sprintf(command_errbuf,"can't verify '%s'", filename); + return(CMD_ERROR); + } +#endif + /* * Read the script into memory. */ Modified: stable/12/stand/common/load_elf.c ============================================================================== --- stable/12/stand/common/load_elf.c Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/common/load_elf.c Fri Apr 12 01:03:00 2019 (r346145) @@ -245,6 +245,12 @@ __elfN(load_elf_header)(char *filename, elf_file_t ef) goto error; } +#ifdef LOADER_VERIEXEC + if (verify_file(ef->fd, filename, bytes_read, VE_MUST) < 0) { + err = EAUTH; + goto error; + } +#endif return (0); error: Modified: stable/12/stand/common/load_elf_obj.c ============================================================================== --- stable/12/stand/common/load_elf_obj.c Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/common/load_elf_obj.c Fri Apr 12 01:03:00 2019 (r346145) @@ -129,6 +129,13 @@ __elfN(obj_loadfile)(char *filename, uint64_t dest, goto oerr; } +#ifdef LOADER_VERIEXEC + if (verify_file(ef.fd, filename, bytes_read, VE_MUST) < 0) { + err = EAUTH; + goto oerr; + } +#endif + kfp = file_findfile(NULL, __elfN(obj_kerneltype)); if (kfp == NULL) { printf("elf" __XSTRING(__ELF_WORD_SIZE) Modified: stable/12/stand/common/module.c ============================================================================== --- stable/12/stand/common/module.c Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/common/module.c Fri Apr 12 01:03:00 2019 (r346145) @@ -104,9 +104,11 @@ command_load(int argc, char *argv[]) { struct preloaded_file *fp; char *typestr; - int dofile, dokld, ch, error; + char *prefix; + char *skip; + int dflag, dofile, dokld, ch, error; - dokld = dofile = 0; + dflag = dokld = dofile = 0; optind = 1; optreset = 1; typestr = NULL; @@ -114,11 +116,21 @@ command_load(int argc, char *argv[]) command_errmsg = "no filename specified"; return (CMD_CRIT); } - while ((ch = getopt(argc, argv, "kt:")) != -1) { + prefix = skip = NULL; + while ((ch = getopt(argc, argv, "dkp:s:t:")) != -1) { switch(ch) { + case 'd': + dflag++; + break; case 'k': dokld = 1; break; + case 'p': + prefix = optarg; + break; + case 's': + skip = optarg; + break; case 't': typestr = optarg; dofile = 1; @@ -141,6 +153,14 @@ command_load(int argc, char *argv[]) return (CMD_CRIT); } +#ifdef LOADER_VERIEXEC + if (strncmp(typestr, "manifest", 8) == 0) { + if (dflag > 0) + ve_debug_set(dflag); + return (load_manifest(argv[1], prefix, skip, NULL)); + } +#endif + fp = file_findfile(argv[1], typestr); if (fp) { snprintf(command_errbuf, sizeof(command_errbuf), @@ -434,6 +454,15 @@ file_loadraw(const char *fname, char *type, int insert free(name); return(NULL); } + +#ifdef LOADER_VERIEXEC + if (verify_file(fd, name, 0, VE_MUST) < 0) { + sprintf(command_errbuf, "can't verify '%s'", name); + free(name); + close(fd); + return(NULL); + } +#endif if (archsw.arch_loadaddr != NULL) loadaddr = archsw.arch_loadaddr(LOAD_RAW, name, loadaddr); Modified: stable/12/stand/ficl/Makefile.depend ============================================================================== --- stable/12/stand/ficl/Makefile.depend Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/ficl/Makefile.depend Fri Apr 12 01:03:00 2019 (r346145) @@ -2,9 +2,7 @@ # Autogenerated - do NOT edit! DIRDEPS = \ - include \ - include/xlocale \ - lib/msun \ + stand/libsa \ .include Modified: stable/12/stand/ficl/ficl.h ============================================================================== --- stable/12/stand/ficl/ficl.h Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/ficl/ficl.h Fri Apr 12 01:03:00 2019 (r346145) @@ -1157,6 +1157,10 @@ typedef void ficlCompileFcn(FICL_SYSTEM *); DATA_SET(Xficl_compile_set, func) SET_DECLARE(Xficl_compile_set, ficlCompileFcn); +#ifdef LOADER_VERIEXEC +#include +#endif + #ifdef __cplusplus } #endif Modified: stable/12/stand/ficl/fileaccess.c ============================================================================== --- stable/12/stand/ficl/fileaccess.c Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/ficl/fileaccess.c Fri Apr 12 01:03:00 2019 (r346145) @@ -67,14 +67,21 @@ static void ficlFopen(FICL_VM *pVM, char *writeMode) / if (f == NULL) stackPushPtr(pVM->pStack, NULL); else +#ifdef LOADER_VERIEXEC + if (*mode == 'r' && + verify_file(fileno(f), filename, 0, VE_GUESS) < 0) { + fclose(f); + stackPushPtr(pVM->pStack, NULL); + } else +#endif { - ficlFILE *ff = (ficlFILE *)malloc(sizeof(ficlFILE)); - strcpy(ff->filename, filename); - ff->f = f; - stackPushPtr(pVM->pStack, ff); + ficlFILE *ff = (ficlFILE *)malloc(sizeof(ficlFILE)); + strcpy(ff->filename, filename); + ff->f = f; + stackPushPtr(pVM->pStack, ff); - fseek(f, 0, SEEK_SET); - } + fseek(f, 0, SEEK_SET); + } pushIor(pVM, f != NULL); } Modified: stable/12/stand/ficl32/Makefile.depend ============================================================================== --- stable/12/stand/ficl32/Makefile.depend Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/ficl32/Makefile.depend Fri Apr 12 01:03:00 2019 (r346145) @@ -2,9 +2,7 @@ # Autogenerated - do NOT edit! DIRDEPS = \ - include \ - include/xlocale \ - lib/msun \ + stand/libsa \ .include Modified: stable/12/stand/i386/loader/Makefile.depend ============================================================================== --- stable/12/stand/i386/loader/Makefile.depend Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/i386/loader/Makefile.depend Fri Apr 12 01:03:00 2019 (r346145) @@ -2,15 +2,12 @@ # Autogenerated - do NOT edit! DIRDEPS = \ - include \ - include/xlocale \ - stand/ficl32 \ - stand/geli \ - stand/i386/btx/btx \ - stand/i386/btx/btxldr \ - stand/i386/btx/lib \ - stand/i386/libi386 \ - stand/libsa32 \ + stand/${MACHINE_CPUARCH}/btx/btx \ + stand/${MACHINE_CPUARCH}/btx/btxldr \ + stand/${MACHINE_CPUARCH}/btx/lib \ + stand/${MACHINE_CPUARCH}/libi386 \ + stand/ficl \ + stand/libsa \ .include Modified: stable/12/stand/liblua/Makefile ============================================================================== --- stable/12/stand/liblua/Makefile Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/liblua/Makefile Fri Apr 12 01:03:00 2019 (r346145) @@ -35,5 +35,8 @@ CFLAGS+= -I${BOOTSRC}/include -I${LIBLUASRC} -I${LUASR .if ${MACHINE_CPUARCH} == "amd64" && ${DO32:U0} == 0 CFLAGS+= -fPIC .endif +.if ${MK_LOADER_VERIEXEC} == "yes" +CFLAGS+= -I${SRCTOP}/lib/libsecureboot/h -DLOADER_VERIEXEC +.endif .include Modified: stable/12/stand/liblua/lstd.c ============================================================================== --- stable/12/stand/liblua/lstd.c Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/liblua/lstd.c Fri Apr 12 01:03:00 2019 (r346145) @@ -31,6 +31,10 @@ __FBSDID("$FreeBSD$"); #include "lstd.h" #include "math.h" +#ifdef LOADER_VERIEXEC +#include +#endif + FILE * fopen(const char *filename, const char *mode) { @@ -75,6 +79,17 @@ fopen(const char *filename, const char *mode) close(fd); return (NULL); } + +#ifdef LOADER_VERIEXEC + /* only regular files and only reading makes sense */ + if (S_ISREG(st.st_mode) && !(m & O_WRONLY)) { + if (verify_file(fd, filename, 0, VE_GUESS) < 0) { + free(f); + close(fd); + return (NULL); + } + } +#endif f->fd = fd; f->offset = 0; Modified: stable/12/stand/libsa/Makefile ============================================================================== --- stable/12/stand/libsa/Makefile Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/libsa/Makefile Fri Apr 12 01:03:00 2019 (r346145) @@ -164,6 +164,11 @@ SRCS+= explicit_bzero.c .include "${SASRC}/geli/Makefile.inc" .endif +.if ${MK_LOADER_VERIEXEC} == "yes" && ${MK_BEARSSL} == "yes" +.include "${SRCTOP}/lib/libbearssl/Makefile.libsa.inc" +.include "${SRCTOP}/lib/libsecureboot/Makefile.libsa.inc" +.endif + # Maybe ZFS .if ${MK_LOADER_ZFS} == "yes" .include "${SASRC}/zfs/Makefile.inc" Modified: stable/12/stand/libsa/Makefile.depend ============================================================================== --- stable/12/stand/libsa/Makefile.depend Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/libsa/Makefile.depend Fri Apr 12 01:03:00 2019 (r346145) @@ -2,10 +2,6 @@ # Autogenerated - do NOT edit! DIRDEPS = \ - include \ - include/arpa \ - include/xlocale \ - lib/libbz2 \ .include Modified: stable/12/stand/libsa32/Makefile.depend ============================================================================== --- stable/12/stand/libsa32/Makefile.depend Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/libsa32/Makefile.depend Fri Apr 12 01:03:00 2019 (r346145) @@ -2,10 +2,7 @@ # Autogenerated - do NOT edit! DIRDEPS = \ - include \ - include/arpa \ - include/xlocale \ - lib/libbz2 \ + stand/libsa \ .include Modified: stable/12/stand/loader.mk ============================================================================== --- stable/12/stand/loader.mk Fri Apr 12 00:53:30 2019 (r346144) +++ stable/12/stand/loader.mk Fri Apr 12 01:03:00 2019 (r346145) @@ -73,6 +73,10 @@ SRCS+= interp_simple.c .error Unknown interpreter ${LOADER_INTERP} .endif +.if ${MK_LOADER_VERIEXEC} != "no" +CFLAGS+= -DLOADER_VERIEXEC -I${SRCTOP}/lib/libsecureboot/h +.endif + .if defined(BOOT_PROMPT_123) CFLAGS+= -DBOOT_PROMPT_123 .endif Copied: stable/12/tools/build/options/WITH_BEARSSL (from r344566, head/tools/build/options/WITH_BEARSSL) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tools/build/options/WITH_BEARSSL Fri Apr 12 01:03:00 2019 (r346145, copy of r344566, head/tools/build/options/WITH_BEARSSL) @@ -0,0 +1,11 @@ +.\" $FreeBSD$ +Build the BearSSL library. +.Pp +BearSSL is a tiny SSL library suitable for embedded environments. +For details see +.Lk http://www.BearSSL.org/ +.Pp +This library is currently only used to perform +signature verification and related operations +for Verified Exec and +.Xr loader 8 . Copied: stable/12/tools/build/options/WITH_LOADER_VERIEXEC (from r344566, head/tools/build/options/WITH_LOADER_VERIEXEC) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tools/build/options/WITH_LOADER_VERIEXEC Fri Apr 12 01:03:00 2019 (r346145, copy of r344566, head/tools/build/options/WITH_LOADER_VERIEXEC) @@ -0,0 +1,7 @@ +.\" $FreeBSD$ +Enable building +.Xr loader 8 +with support for verifcation similar to Verified Exec. +.Pp +It depends on +.Va WITH_BEARSSL Copied: stable/12/tools/build/options/WITH_VERIEXEC (from r344566, head/tools/build/options/WITH_VERIEXEC) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tools/build/options/WITH_VERIEXEC Fri Apr 12 01:03:00 2019 (r346145, copy of r344566, head/tools/build/options/WITH_VERIEXEC) @@ -0,0 +1,9 @@ +.\" $FreeBSD$ +Enable building +.Xr veriexec 8 +which loads the contents of verified manifests into the kernel +for use by +.Xr mac_veriexec 4 +.Pp +It depends on +.Va WITH_BEARSSL From owner-svn-src-stable@freebsd.org Fri Apr 12 02:24:07 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01D07156FDD6; Fri, 12 Apr 2019 02:24:07 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8F0A2872C6; Fri, 12 Apr 2019 02:24:06 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7C6F51B162; Fri, 12 Apr 2019 02:24:06 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3C2O6aS095503; Fri, 12 Apr 2019 02:24:06 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3C2O6bE095502; Fri, 12 Apr 2019 02:24:06 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201904120224.x3C2O6bE095502@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 12 Apr 2019 02:24:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346146 - stable/12/sbin/fsck_msdosfs X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/12/sbin/fsck_msdosfs X-SVN-Commit-Revision: 346146 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8F0A2872C6 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.93 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.93)[-0.935,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 02:24:07 -0000 Author: delphij Date: Fri Apr 12 02:24:06 2019 New Revision: 346146 URL: https://svnweb.freebsd.org/changeset/base/346146 Log: MFC r345647: Distinguish between lseek errors and read errores. Modified: stable/12/sbin/fsck_msdosfs/dir.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/fsck_msdosfs/dir.c ============================================================================== --- stable/12/sbin/fsck_msdosfs/dir.c Fri Apr 12 01:03:00 2019 (r346145) +++ stable/12/sbin/fsck_msdosfs/dir.c Fri Apr 12 02:24:06 2019 (r346146) @@ -35,6 +35,7 @@ static const char rcsid[] = "$FreeBSD$"; #endif /* not lint */ +#include #include #include #include @@ -329,8 +330,11 @@ delete(int f, struct bootblock *boot, struct fatEntry } off = startcl * boot->bpbSecPerClust + boot->ClusterOffset; off *= boot->bpbBytesPerSec; - if (lseek(f, off, SEEK_SET) != off - || read(f, delbuf, clsz) != clsz) { + if (lseek(f, off, SEEK_SET) != off) { + perr("Unable to lseek to %" PRId64, off); + return FSFATAL; + } + if (read(f, delbuf, clsz) != clsz) { perr("Unable to read directory"); return FSFATAL; } @@ -338,8 +342,11 @@ delete(int f, struct bootblock *boot, struct fatEntry *s = SLOT_DELETED; s += 32; } - if (lseek(f, off, SEEK_SET) != off - || write(f, delbuf, clsz) != clsz) { + if (lseek(f, off, SEEK_SET) != off) { + perr("Unable to lseek to %" PRId64, off); + return FSFATAL; + } + if (write(f, delbuf, clsz) != clsz) { perr("Unable to write directory"); return FSFATAL; } From owner-svn-src-stable@freebsd.org Fri Apr 12 02:27:04 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 47BBC156FE76; Fri, 12 Apr 2019 02:27:04 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DDF3B8740E; Fri, 12 Apr 2019 02:27:03 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AC4B91B163; Fri, 12 Apr 2019 02:27:03 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3C2R3Kt095675; Fri, 12 Apr 2019 02:27:03 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3C2R3gB095674; Fri, 12 Apr 2019 02:27:03 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201904120227.x3C2R3gB095674@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 12 Apr 2019 02:27:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r346147 - stable/11/sbin/fsck_msdosfs X-SVN-Group: stable-11 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/11/sbin/fsck_msdosfs X-SVN-Commit-Revision: 346147 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: DDF3B8740E X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.93 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.93)[-0.935,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 02:27:04 -0000 Author: delphij Date: Fri Apr 12 02:27:03 2019 New Revision: 346147 URL: https://svnweb.freebsd.org/changeset/base/346147 Log: MFC r345647: Distinguish between lseek errors and read errores. Modified: stable/11/sbin/fsck_msdosfs/dir.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/fsck_msdosfs/dir.c ============================================================================== --- stable/11/sbin/fsck_msdosfs/dir.c Fri Apr 12 02:24:06 2019 (r346146) +++ stable/11/sbin/fsck_msdosfs/dir.c Fri Apr 12 02:27:03 2019 (r346147) @@ -35,6 +35,7 @@ static const char rcsid[] = "$FreeBSD$"; #endif /* not lint */ +#include #include #include #include @@ -329,8 +330,11 @@ delete(int f, struct bootblock *boot, struct fatEntry } off = startcl * boot->bpbSecPerClust + boot->ClusterOffset; off *= boot->bpbBytesPerSec; - if (lseek(f, off, SEEK_SET) != off - || read(f, delbuf, clsz) != clsz) { + if (lseek(f, off, SEEK_SET) != off) { + perr("Unable to lseek to %" PRId64, off); + return FSFATAL; + } + if (read(f, delbuf, clsz) != clsz) { perr("Unable to read directory"); return FSFATAL; } @@ -338,8 +342,11 @@ delete(int f, struct bootblock *boot, struct fatEntry *s = SLOT_DELETED; s += 32; } - if (lseek(f, off, SEEK_SET) != off - || write(f, delbuf, clsz) != clsz) { + if (lseek(f, off, SEEK_SET) != off) { + perr("Unable to lseek to %" PRId64, off); + return FSFATAL; + } + if (write(f, delbuf, clsz) != clsz) { perr("Unable to write directory"); return FSFATAL; } From owner-svn-src-stable@freebsd.org Fri Apr 12 14:59:30 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C9D4157E9D9; Fri, 12 Apr 2019 14:59:30 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 281EB7694B; Fri, 12 Apr 2019 14:59:30 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B426A22F23; Fri, 12 Apr 2019 14:59:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3CExTVK001519; Fri, 12 Apr 2019 14:59:29 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CExT54001516; Fri, 12 Apr 2019 14:59:29 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201904121459.x3CExT54001516@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 12 Apr 2019 14:59:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346152 - stable/12/sys/vm X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/vm X-SVN-Commit-Revision: 346152 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 281EB7694B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.970,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 14:59:30 -0000 Author: kib Date: Fri Apr 12 14:59:28 2019 New Revision: 346152 URL: https://svnweb.freebsd.org/changeset/base/346152 Log: MFC r345702,r345954: Eliminate adj_free field from vm_map_entry. Modified: stable/12/sys/vm/vm_kern.c stable/12/sys/vm/vm_map.c stable/12/sys/vm/vm_map.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/vm/vm_kern.c ============================================================================== --- stable/12/sys/vm/vm_kern.c Fri Apr 12 14:18:16 2019 (r346151) +++ stable/12/sys/vm/vm_kern.c Fri Apr 12 14:59:28 2019 (r346152) @@ -641,7 +641,8 @@ kmap_alloc_wait(vm_map_t map, vm_size_t size) * to lock out sleepers/wakers. */ vm_map_lock(map); - if (vm_map_findspace(map, vm_map_min(map), size, &addr) == 0) + addr = vm_map_findspace(map, vm_map_min(map), size); + if (addr + size <= vm_map_max(map)) break; /* no space now; see if we can ever get space */ if (vm_map_max(map) - vm_map_min(map) < size) { Modified: stable/12/sys/vm/vm_map.c ============================================================================== --- stable/12/sys/vm/vm_map.c Fri Apr 12 14:18:16 2019 (r346151) +++ stable/12/sys/vm/vm_map.c Fri Apr 12 14:59:28 2019 (r346152) @@ -132,9 +132,6 @@ static int vmspace_zinit(void *mem, int size, int flag static int vm_map_zinit(void *mem, int ize, int flags); static void _vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max); -static int vm_map_alignspace(vm_map_t map, vm_object_t object, - vm_ooffset_t offset, vm_offset_t *addr, vm_size_t length, - vm_offset_t max_addr, vm_offset_t alignment); static void vm_map_entry_deallocate(vm_map_entry_t entry, boolean_t system_map); static void vm_map_entry_dispose(vm_map_t map, vm_map_entry_t entry); static void vm_map_entry_unwire(vm_map_t map, vm_map_entry_t entry); @@ -672,8 +669,51 @@ _vm_map_assert_locked(vm_map_t map, const char *file, #define VM_MAP_ASSERT_LOCKED(map) \ _vm_map_assert_locked(map, LOCK_FILE, LOCK_LINE) + +static void +_vm_map_assert_consistent(vm_map_t map) +{ + vm_map_entry_t entry; + vm_map_entry_t child; + vm_size_t max_left, max_right; + + for (entry = map->header.next; entry != &map->header; + entry = entry->next) { + KASSERT(entry->prev->end <= entry->start, + ("map %p prev->end = %jx, start = %jx", map, + (uintmax_t)entry->prev->end, (uintmax_t)entry->start)); + KASSERT(entry->start < entry->end, + ("map %p start = %jx, end = %jx", map, + (uintmax_t)entry->start, (uintmax_t)entry->end)); + KASSERT(entry->end <= entry->next->start, + ("map %p end = %jx, next->start = %jx", map, + (uintmax_t)entry->end, (uintmax_t)entry->next->start)); + KASSERT(entry->left == NULL || + entry->left->start < entry->start, + ("map %p left->start = %jx, start = %jx", map, + (uintmax_t)entry->left->start, (uintmax_t)entry->start)); + KASSERT(entry->right == NULL || + entry->start < entry->right->start, + ("map %p start = %jx, right->start = %jx", map, + (uintmax_t)entry->start, (uintmax_t)entry->right->start)); + child = entry->left; + max_left = (child != NULL) ? child->max_free : + entry->start - entry->prev->end; + child = entry->right; + max_right = (child != NULL) ? child->max_free : + entry->next->start - entry->end; + KASSERT(entry->max_free == MAX(max_left, max_right), + ("map %p max = %jx, max_left = %jx, max_right = %jx", map, + (uintmax_t)entry->max_free, + (uintmax_t)max_left, (uintmax_t)max_right)); + } +} + +#define VM_MAP_ASSERT_CONSISTENT(map) \ + _vm_map_assert_consistent(map) #else #define VM_MAP_ASSERT_LOCKED(map) +#define VM_MAP_ASSERT_CONSISTENT(map) #endif /* @@ -865,100 +905,117 @@ vm_map_entry_set_behavior(vm_map_entry_t entry, u_char static inline void vm_map_entry_set_max_free(vm_map_entry_t entry) { + vm_map_entry_t child; + vm_size_t max_left, max_right; - entry->max_free = entry->adj_free; - if (entry->left != NULL && entry->left->max_free > entry->max_free) - entry->max_free = entry->left->max_free; - if (entry->right != NULL && entry->right->max_free > entry->max_free) - entry->max_free = entry->right->max_free; + child = entry->left; + max_left = (child != NULL) ? child->max_free : + entry->start - entry->prev->end; + child = entry->right; + max_right = (child != NULL) ? child->max_free : + entry->next->start - entry->end; + entry->max_free = MAX(max_left, max_right); } +#define SPLAY_LEFT_STEP(root, y, rlist, test) do { \ + y = root->left; \ + if (y != NULL && (test)) { \ + /* Rotate right and make y root. */ \ + root->left = y->right; \ + y->right = root; \ + vm_map_entry_set_max_free(root); \ + root = y; \ + y = root->left; \ + } \ + /* Put root on rlist. */ \ + root->left = rlist; \ + rlist = root; \ + root = y; \ +} while (0) + +#define SPLAY_RIGHT_STEP(root, y, llist, test) do { \ + y = root->right; \ + if (y != NULL && (test)) { \ + /* Rotate left and make y root. */ \ + root->right = y->left; \ + y->left = root; \ + vm_map_entry_set_max_free(root); \ + root = y; \ + y = root->right; \ + } \ + /* Put root on llist. */ \ + root->right = llist; \ + llist = root; \ + root = y; \ +} while (0) + /* - * vm_map_entry_splay: - * - * The Sleator and Tarjan top-down splay algorithm with the - * following variation. Max_free must be computed bottom-up, so - * on the downward pass, maintain the left and right spines in - * reverse order. Then, make a second pass up each side to fix - * the pointers and compute max_free. The time bound is O(log n) - * amortized. - * - * The new root is the vm_map_entry containing "addr", or else an - * adjacent entry (lower or higher) if addr is not in the tree. - * - * The map must be locked, and leaves it so. - * - * Returns: the new root. + * Walk down the tree until we find addr or a NULL pointer where addr would go, + * breaking off left and right subtrees of nodes less than, or greater than + * addr. Treat pointers to nodes with max_free < length as NULL pointers. + * llist and rlist are the two sides in reverse order (bottom-up), with llist + * linked by the right pointer and rlist linked by the left pointer in the + * vm_map_entry. */ static vm_map_entry_t -vm_map_entry_splay(vm_offset_t addr, vm_map_entry_t root) +vm_map_splay_split(vm_offset_t addr, vm_size_t length, + vm_map_entry_t root, vm_map_entry_t *out_llist, vm_map_entry_t *out_rlist) { vm_map_entry_t llist, rlist; - vm_map_entry_t ltree, rtree; vm_map_entry_t y; - /* Special case of empty tree. */ - if (root == NULL) - return (root); - - /* - * Pass One: Splay down the tree until we find addr or a NULL - * pointer where addr would go. llist and rlist are the two - * sides in reverse order (bottom-up), with llist linked by - * the right pointer and rlist linked by the left pointer in - * the vm_map_entry. Wait until Pass Two to set max_free on - * the two spines. - */ llist = NULL; rlist = NULL; - for (;;) { - /* root is never NULL in here. */ + while (root != NULL && root->max_free >= length) { if (addr < root->start) { - y = root->left; - if (y == NULL) - break; - if (addr < y->start && y->left != NULL) { - /* Rotate right and put y on rlist. */ - root->left = y->right; - y->right = root; - vm_map_entry_set_max_free(root); - root = y->left; - y->left = rlist; - rlist = y; - } else { - /* Put root on rlist. */ - root->left = rlist; - rlist = root; - root = y; - } + SPLAY_LEFT_STEP(root, y, rlist, + y->max_free >= length && addr < y->start); } else if (addr >= root->end) { - y = root->right; - if (y == NULL) - break; - if (addr >= y->end && y->right != NULL) { - /* Rotate left and put y on llist. */ - root->right = y->left; - y->left = root; - vm_map_entry_set_max_free(root); - root = y->right; - y->right = llist; - llist = y; - } else { - /* Put root on llist. */ - root->right = llist; - llist = root; - root = y; - } + SPLAY_RIGHT_STEP(root, y, llist, + y->max_free >= length && addr >= y->end); } else break; } + *out_llist = llist; + *out_rlist = rlist; + return (root); +} - /* - * Pass Two: Walk back up the two spines, flip the pointers - * and set max_free. The subtrees of the root go at the - * bottom of llist and rlist. - */ - ltree = root->left; +static void +vm_map_splay_findnext(vm_map_entry_t root, vm_map_entry_t *iolist) +{ + vm_map_entry_t rlist, y; + + root = root->right; + rlist = *iolist; + while (root != NULL) + SPLAY_LEFT_STEP(root, y, rlist, true); + *iolist = rlist; +} + +static void +vm_map_splay_findprev(vm_map_entry_t root, vm_map_entry_t *iolist) +{ + vm_map_entry_t llist, y; + + root = root->left; + llist = *iolist; + while (root != NULL) + SPLAY_RIGHT_STEP(root, y, llist, true); + *iolist = llist; +} + +/* + * Walk back up the two spines, flip the pointers and set max_free. The + * subtrees of the root go at the bottom of llist and rlist. + */ +static vm_map_entry_t +vm_map_splay_merge(vm_map_entry_t root, + vm_map_entry_t llist, vm_map_entry_t rlist, + vm_map_entry_t ltree, vm_map_entry_t rtree) +{ + vm_map_entry_t y; + while (llist != NULL) { y = llist->right; llist->right = ltree; @@ -966,7 +1023,6 @@ vm_map_entry_splay(vm_offset_t addr, vm_map_entry_t ro ltree = llist; llist = y; } - rtree = root->right; while (rlist != NULL) { y = rlist->left; rlist->left = rtree; @@ -986,73 +1042,143 @@ vm_map_entry_splay(vm_offset_t addr, vm_map_entry_t ro } /* + * vm_map_entry_splay: + * + * The Sleator and Tarjan top-down splay algorithm with the + * following variation. Max_free must be computed bottom-up, so + * on the downward pass, maintain the left and right spines in + * reverse order. Then, make a second pass up each side to fix + * the pointers and compute max_free. The time bound is O(log n) + * amortized. + * + * The new root is the vm_map_entry containing "addr", or else an + * adjacent entry (lower if possible) if addr is not in the tree. + * + * The map must be locked, and leaves it so. + * + * Returns: the new root. + */ +static vm_map_entry_t +vm_map_entry_splay(vm_offset_t addr, vm_map_entry_t root) +{ + vm_map_entry_t llist, rlist; + + root = vm_map_splay_split(addr, 0, root, &llist, &rlist); + if (root != NULL) { + /* do nothing */ + } else if (llist != NULL) { + /* + * Recover the greatest node in the left + * subtree and make it the root. + */ + root = llist; + llist = root->right; + root->right = NULL; + } else if (rlist != NULL) { + /* + * Recover the least node in the right + * subtree and make it the root. + */ + root = rlist; + rlist = root->left; + root->left = NULL; + } else { + /* There is no root. */ + return (NULL); + } + return (vm_map_splay_merge(root, llist, rlist, + root->left, root->right)); +} + +/* * vm_map_entry_{un,}link: * * Insert/remove entries from maps. */ static void vm_map_entry_link(vm_map_t map, - vm_map_entry_t after_where, vm_map_entry_t entry) { + vm_map_entry_t llist, rlist, root; - CTR4(KTR_VM, - "vm_map_entry_link: map %p, nentries %d, entry %p, after %p", map, - map->nentries, entry, after_where); + CTR3(KTR_VM, + "vm_map_entry_link: map %p, nentries %d, entry %p", map, + map->nentries, entry); VM_MAP_ASSERT_LOCKED(map); - KASSERT(after_where->end <= entry->start, - ("vm_map_entry_link: prev end %jx new start %jx overlap", - (uintmax_t)after_where->end, (uintmax_t)entry->start)); - KASSERT(entry->end <= after_where->next->start, - ("vm_map_entry_link: new end %jx next start %jx overlap", - (uintmax_t)entry->end, (uintmax_t)after_where->next->start)); - map->nentries++; - entry->prev = after_where; - entry->next = after_where->next; - entry->next->prev = entry; - after_where->next = entry; - - if (after_where != &map->header) { - if (after_where != map->root) - vm_map_entry_splay(after_where->start, map->root); - entry->right = after_where->right; - entry->left = after_where; - after_where->right = NULL; - after_where->adj_free = entry->start - after_where->end; - vm_map_entry_set_max_free(after_where); - } else { - entry->right = map->root; - entry->left = NULL; - } - entry->adj_free = entry->next->start - entry->end; - vm_map_entry_set_max_free(entry); + root = map->root; + root = vm_map_splay_split(entry->start, 0, root, &llist, &rlist); + KASSERT(root == NULL, + ("vm_map_entry_link: link object already mapped")); + entry->prev = (llist == NULL) ? &map->header : llist; + entry->next = (rlist == NULL) ? &map->header : rlist; + entry->prev->next = entry->next->prev = entry; + root = vm_map_splay_merge(entry, llist, rlist, NULL, NULL); map->root = entry; + VM_MAP_ASSERT_CONSISTENT(map); } +enum unlink_merge_type { + UNLINK_MERGE_PREV, + UNLINK_MERGE_NONE, + UNLINK_MERGE_NEXT +}; + static void vm_map_entry_unlink(vm_map_t map, - vm_map_entry_t entry) + vm_map_entry_t entry, + enum unlink_merge_type op) { - vm_map_entry_t next, prev, root; + vm_map_entry_t llist, rlist, root, y; VM_MAP_ASSERT_LOCKED(map); - if (entry != map->root) - vm_map_entry_splay(entry->start, map->root); - if (entry->left == NULL) - root = entry->right; - else { - root = vm_map_entry_splay(entry->start, entry->left); - root->right = entry->right; - root->adj_free = entry->next->start - root->end; - vm_map_entry_set_max_free(root); + llist = entry->prev; + rlist = entry->next; + llist->next = rlist; + rlist->prev = llist; + root = map->root; + root = vm_map_splay_split(entry->start, 0, root, &llist, &rlist); + KASSERT(root != NULL, + ("vm_map_entry_unlink: unlink object not mapped")); + + switch (op) { + case UNLINK_MERGE_PREV: + vm_map_splay_findprev(root, &llist); + llist->end = root->end; + y = root->right; + root = llist; + llist = root->right; + root->right = y; + break; + case UNLINK_MERGE_NEXT: + vm_map_splay_findnext(root, &rlist); + rlist->start = root->start; + rlist->offset = root->offset; + y = root->left; + root = rlist; + rlist = root->left; + root->left = y; + break; + case UNLINK_MERGE_NONE: + vm_map_splay_findprev(root, &llist); + vm_map_splay_findnext(root, &rlist); + if (llist != NULL) { + root = llist; + llist = root->right; + root->right = NULL; + } else if (rlist != NULL) { + root = rlist; + rlist = root->left; + root->left = NULL; + } else + root = NULL; + break; } + if (root != NULL) + root = vm_map_splay_merge(root, llist, rlist, + root->left, root->right); map->root = root; - - prev = entry->prev; - next = entry->next; - next->prev = prev; - prev->next = next; + VM_MAP_ASSERT_CONSISTENT(map); map->nentries--; CTR3(KTR_VM, "vm_map_entry_unlink: map %p, nentries %d, entry %p", map, map->nentries, entry); @@ -1061,27 +1187,30 @@ vm_map_entry_unlink(vm_map_t map, /* * vm_map_entry_resize_free: * - * Recompute the amount of free space following a vm_map_entry - * and propagate that value up the tree. Call this function after - * resizing a map entry in-place, that is, without a call to - * vm_map_entry_link() or _unlink(). + * Recompute the amount of free space following a modified vm_map_entry + * and propagate those values up the tree. Call this function after + * resizing a map entry in-place by changing the end value, without a + * call to vm_map_entry_link() or _unlink(). * * The map must be locked, and leaves it so. */ static void vm_map_entry_resize_free(vm_map_t map, vm_map_entry_t entry) { + vm_map_entry_t llist, rlist, root; - /* - * Using splay trees without parent pointers, propagating - * max_free up the tree is done by moving the entry to the - * root and making the change there. - */ - if (entry != map->root) - map->root = vm_map_entry_splay(entry->start, map->root); - - entry->adj_free = entry->next->start - entry->end; - vm_map_entry_set_max_free(entry); + VM_MAP_ASSERT_LOCKED(map); + root = map->root; + root = vm_map_splay_split(entry->start, 0, root, &llist, &rlist); + KASSERT(root != NULL, + ("vm_map_entry_resize_free: resize_free object not mapped")); + vm_map_splay_findnext(root, &rlist); + root->right = NULL; + map->root = vm_map_splay_merge(root, llist, rlist, + root->left, root->right); + VM_MAP_ASSERT_CONSISTENT(map); + CTR3(KTR_VM, "vm_map_entry_resize_free: map %p, nentries %d, entry %p", map, + map->nentries, entry); } /* @@ -1100,7 +1229,7 @@ vm_map_lookup_entry( vm_offset_t address, vm_map_entry_t *entry) /* OUT */ { - vm_map_entry_t cur; + vm_map_entry_t cur, lbound; boolean_t locked; /* @@ -1108,12 +1237,15 @@ vm_map_lookup_entry( * "address" is the map's header. */ cur = map->root; - if (cur == NULL) + if (cur == NULL) { *entry = &map->header; - else if (address >= cur->start && cur->end > address) { + return (FALSE); + } + if (address >= cur->start && cur->end > address) { *entry = cur; return (TRUE); - } else if ((locked = vm_map_locked(map)) || + } + if ((locked = vm_map_locked(map)) || sx_try_upgrade(&map->lock)) { /* * Splay requires a write lock on the map. However, it only @@ -1122,6 +1254,7 @@ vm_map_lookup_entry( * on a temporary upgrade. */ map->root = cur = vm_map_entry_splay(address, cur); + VM_MAP_ASSERT_CONSISTENT(map); if (!locked) sx_downgrade(&map->lock); @@ -1130,35 +1263,30 @@ vm_map_lookup_entry( * is that map entry. Otherwise, the new root is a map entry * immediately before or after "address". */ - if (address >= cur->start) { + if (address < cur->start) { + *entry = &map->header; + return (FALSE); + } + *entry = cur; + return (address < cur->end); + } + /* + * Since the map is only locked for read access, perform a + * standard binary search tree lookup for "address". + */ + lbound = &map->header; + do { + if (address < cur->start) { + cur = cur->left; + } else if (cur->end <= address) { + lbound = cur; + cur = cur->right; + } else { *entry = cur; - if (cur->end > address) - return (TRUE); - } else - *entry = cur->prev; - } else - /* - * Since the map is only locked for read access, perform a - * standard binary search tree lookup for "address". - */ - for (;;) { - if (address < cur->start) { - if (cur->left == NULL) { - *entry = cur->prev; - break; - } - cur = cur->left; - } else if (cur->end > address) { - *entry = cur; - return (TRUE); - } else { - if (cur->right == NULL) { - *entry = cur; - break; - } - cur = cur->right; - } + return (TRUE); } + } while (cur != NULL); + *entry = lbound; return (FALSE); } @@ -1351,7 +1479,7 @@ charged: /* * Insert the new entry into the list */ - vm_map_entry_link(map, prev_entry, new_entry); + vm_map_entry_link(map, new_entry); if ((new_entry->eflags & MAP_ENTRY_GUARD) == 0) map->size += new_entry->end - new_entry->start; @@ -1377,23 +1505,22 @@ charged: * Find the first fit (lowest VM address) for "length" free bytes * beginning at address >= start in the given map. * - * In a vm_map_entry, "adj_free" is the amount of free space - * adjacent (higher address) to this entry, and "max_free" is the - * maximum amount of contiguous free space in its subtree. This - * allows finding a free region in one path down the tree, so - * O(log n) amortized with splay trees. + * In a vm_map_entry, "max_free" is the maximum amount of + * contiguous free space between an entry in its subtree and a + * neighbor of that entry. This allows finding a free region in + * one path down the tree, so O(log n) amortized with splay + * trees. * * The map must be locked, and leaves it so. * - * Returns: 0 on success, and starting address in *addr, - * 1 if insufficient space. + * Returns: starting address if sufficient space, + * vm_map_max(map)-length+1 if insufficient space. */ -int -vm_map_findspace(vm_map_t map, vm_offset_t start, vm_size_t length, - vm_offset_t *addr) /* OUT */ +vm_offset_t +vm_map_findspace(vm_map_t map, vm_offset_t start, vm_size_t length) { - vm_map_entry_t entry; - vm_offset_t st; + vm_map_entry_t llist, rlist, root, y; + vm_size_t left_length; /* * Request must fit within min/max VM address and must avoid @@ -1401,57 +1528,87 @@ vm_map_findspace(vm_map_t map, vm_offset_t start, vm_s */ start = MAX(start, vm_map_min(map)); if (start + length > vm_map_max(map) || start + length < start) - return (1); + return (vm_map_max(map) - length + 1); /* Empty tree means wide open address space. */ - if (map->root == NULL) { - *addr = start; - return (0); - } + if (map->root == NULL) + return (start); /* * After splay, if start comes before root node, then there * must be a gap from start to the root. */ - map->root = vm_map_entry_splay(start, map->root); - if (start + length <= map->root->start) { - *addr = start; - return (0); + root = vm_map_splay_split(start, length, map->root, + &llist, &rlist); + if (root != NULL) + start = root->end; + else if (rlist != NULL) { + root = rlist; + rlist = root->left; + root->left = NULL; + } else { + root = llist; + llist = root->right; + root->right = NULL; } + map->root = vm_map_splay_merge(root, llist, rlist, + root->left, root->right); + VM_MAP_ASSERT_CONSISTENT(map); + if (start + length <= root->start) + return (start); /* * Root is the last node that might begin its gap before * start, and this is the last comparison where address * wrap might be a problem. */ - st = (start > map->root->end) ? start : map->root->end; - if (length <= map->root->end + map->root->adj_free - st) { - *addr = st; - return (0); - } + if (root->right == NULL && + start + length <= vm_map_max(map)) + return (start); /* With max_free, can immediately tell if no solution. */ - entry = map->root->right; - if (entry == NULL || length > entry->max_free) - return (1); + if (root->right == NULL || length > root->right->max_free) + return (vm_map_max(map) - length + 1); /* - * Search the right subtree in the order: left subtree, root, - * right subtree (first fit). The previous splay implies that - * all regions in the right subtree have addresses > start. + * Splay for the least large-enough gap in the right subtree. */ - while (entry != NULL) { - if (entry->left != NULL && entry->left->max_free >= length) - entry = entry->left; - else if (entry->adj_free >= length) { - *addr = entry->end; - return (0); - } else - entry = entry->right; + llist = NULL; + rlist = NULL; + for (left_length = 0; ; + left_length = root->left != NULL ? + root->left->max_free : root->start - llist->end) { + if (length <= left_length) + SPLAY_LEFT_STEP(root, y, rlist, + length <= (y->left != NULL ? + y->left->max_free : y->start - llist->end)); + else + SPLAY_RIGHT_STEP(root, y, llist, + length > (y->left != NULL ? + y->left->max_free : y->start - root->end)); + if (root == NULL) + break; } - - /* Can't get here, so panic if we do. */ - panic("vm_map_findspace: max_free corrupt"); + root = llist; + llist = root->right; + if ((y = rlist) == NULL) + root->right = NULL; + else { + rlist = y->left; + y->left = NULL; + root->right = y->right; + } + root = vm_map_splay_merge(root, llist, rlist, + root->left, root->right); + if (y != NULL) { + y->right = root->right; + vm_map_entry_set_max_free(y); + root->right = y; + vm_map_entry_set_max_free(root); + } + map->root = root; + VM_MAP_ASSERT_CONSISTENT(map); + return (root->end); } int @@ -1532,8 +1689,9 @@ vm_map_alignspace(vm_map_t map, vm_object_t object, vm VM_MAP_ASSERT_LOCKED(map); free_addr = *addr; - KASSERT(!vm_map_findspace(map, free_addr, length, addr) && - free_addr == *addr, ("caller provided insufficient free space")); + KASSERT(free_addr == vm_map_findspace(map, free_addr, length), + ("caller failed to provide space %d at address %p", + (int)length, (void*)free_addr)); for (;;) { /* * At the start of every iteration, the free space at address @@ -1559,8 +1717,10 @@ vm_map_alignspace(vm_map_t map, vm_object_t object, vm * be a valid address, in which case vm_map_findspace() cannot * be relied upon to fail. */ - if (aligned_addr < free_addr || - vm_map_findspace(map, aligned_addr, length, addr) || + if (aligned_addr < free_addr) + return (KERN_NO_SPACE); + *addr = vm_map_findspace(map, aligned_addr, length); + if (*addr + length > vm_map_max(map) || (max_addr != 0 && *addr + length > max_addr)) return (KERN_NO_SPACE); free_addr = *addr; @@ -1672,22 +1832,27 @@ again: gap = vm_map_max(map) > MAP_32BIT_MAX_ADDR && (max_addr == 0 || max_addr > MAP_32BIT_MAX_ADDR) ? aslr_pages_rnd_64[pidx] : aslr_pages_rnd_32[pidx]; - if (vm_map_findspace(map, curr_min_addr, length + - gap * pagesizes[pidx], addr)) + *addr = vm_map_findspace(map, curr_min_addr, + length + gap * pagesizes[pidx]); + if (*addr + length + gap * pagesizes[pidx] > + vm_map_max(map)) goto again; /* And randomize the start address. */ *addr += (arc4random() % gap) * pagesizes[pidx]; if (max_addr != 0 && *addr + length > max_addr) goto again; - } else if (vm_map_findspace(map, curr_min_addr, length, addr) || - (max_addr != 0 && *addr + length > max_addr)) { - if (cluster) { - cluster = false; - MPASS(try == 1); - goto again; + } else { + *addr = vm_map_findspace(map, curr_min_addr, length); + if (*addr + length > vm_map_max(map) || + (max_addr != 0 && *addr + length > max_addr)) { + if (cluster) { + cluster = false; + MPASS(try == 1); + goto again; + } + rv = KERN_NO_SPACE; + goto done; } - rv = KERN_NO_SPACE; - goto done; } if (find_space != VMFS_ANY_SPACE && @@ -1825,18 +1990,12 @@ vm_map_simplify_entry(vm_map_t map, vm_map_entry_t ent return; prev = entry->prev; if (vm_map_mergeable_neighbors(prev, entry)) { - vm_map_entry_unlink(map, prev); - entry->start = prev->start; - entry->offset = prev->offset; - if (entry->prev != &map->header) - vm_map_entry_resize_free(map, entry->prev); + vm_map_entry_unlink(map, prev, UNLINK_MERGE_NEXT); vm_map_merged_neighbor_dispose(map, prev); } next = entry->next; if (vm_map_mergeable_neighbors(entry, next)) { - vm_map_entry_unlink(map, next); - entry->end = next->end; - vm_map_entry_resize_free(map, entry); + vm_map_entry_unlink(map, next, UNLINK_MERGE_PREV); vm_map_merged_neighbor_dispose(map, next); } } @@ -1914,7 +2073,7 @@ _vm_map_clip_start(vm_map_t map, vm_map_entry_t entry, if (new_entry->cred != NULL) crhold(entry->cred); - vm_map_entry_link(map, entry->prev, new_entry); + vm_map_entry_link(map, new_entry); if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { vm_object_reference(new_entry->object.vm_object); @@ -1996,7 +2155,7 @@ _vm_map_clip_end(vm_map_t map, vm_map_entry_t entry, v if (new_entry->cred != NULL) crhold(entry->cred); - vm_map_entry_link(map, entry, new_entry); + vm_map_entry_link(map, new_entry); if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { vm_object_reference(new_entry->object.vm_object); @@ -3132,7 +3291,7 @@ vm_map_entry_delete(vm_map_t map, vm_map_entry_t entry vm_pindex_t offidxstart, offidxend, count, size1; vm_size_t size; - vm_map_entry_unlink(map, entry); + vm_map_entry_unlink(map, entry, UNLINK_MERGE_NONE); object = entry->object.vm_object; if ((entry->eflags & MAP_ENTRY_GUARD) != 0) { @@ -3675,8 +3834,7 @@ vmspace_fork(struct vmspace *vm1, vm_ooffset_t *fork_c * Insert the entry into the new map -- we know we're * inserting at the end of the new map. */ - vm_map_entry_link(new_map, new_map->header.prev, - new_entry); + vm_map_entry_link(new_map, new_entry); vmspace_map_entry_forked(vm1, vm2, new_entry); /* @@ -3703,8 +3861,7 @@ vmspace_fork(struct vmspace *vm1, vm_ooffset_t *fork_c new_entry->wired_count = 0; new_entry->object.vm_object = NULL; new_entry->cred = NULL; - vm_map_entry_link(new_map, new_map->header.prev, - new_entry); + vm_map_entry_link(new_map, new_entry); vmspace_map_entry_forked(vm1, vm2, new_entry); vm_map_copy_entry(old_map, new_map, old_entry, new_entry, fork_charge); @@ -3727,8 +3884,7 @@ vmspace_fork(struct vmspace *vm1, vm_ooffset_t *fork_c new_entry->max_protection = old_entry->max_protection; new_entry->inheritance = VM_INHERIT_ZERO; - vm_map_entry_link(new_map, new_map->header.prev, - new_entry); + vm_map_entry_link(new_map, new_entry); vmspace_map_entry_forked(vm1, vm2, new_entry); new_entry->cred = curthread->td_ucred; Modified: stable/12/sys/vm/vm_map.h ============================================================================== --- stable/12/sys/vm/vm_map.h Fri Apr 12 14:18:16 2019 (r346151) +++ stable/12/sys/vm/vm_map.h Fri Apr 12 14:59:28 2019 (r346152) @@ -106,7 +106,7 @@ struct vm_map_entry { vm_offset_t start; /* start address */ vm_offset_t end; /* end address */ vm_offset_t next_read; /* vaddr of the next sequential read */ - vm_size_t adj_free; /* amount of adjacent free space */ + vm_size_t pad_adj_free; /* pad */ vm_size_t max_free; /* max free space in subtree */ union vm_map_object object; /* object I point to */ vm_ooffset_t offset; /* offset into object */ @@ -402,7 +402,7 @@ int vm_map_find_min(vm_map_t, vm_object_t, vm_ooffset_ vm_size_t, vm_offset_t, vm_offset_t, int, vm_prot_t, vm_prot_t, int); int vm_map_fixed(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t, vm_size_t, vm_prot_t, vm_prot_t, int); -int vm_map_findspace (vm_map_t, vm_offset_t, vm_size_t, vm_offset_t *); +vm_offset_t vm_map_findspace(vm_map_t, vm_offset_t, vm_size_t); int vm_map_inherit (vm_map_t, vm_offset_t, vm_offset_t, vm_inherit_t); void vm_map_init(vm_map_t, pmap_t, vm_offset_t, vm_offset_t); int vm_map_insert (vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t, vm_offset_t, vm_prot_t, vm_prot_t, int); From owner-svn-src-stable@freebsd.org Fri Apr 12 15:00:43 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 660D2157EA97; Fri, 12 Apr 2019 15:00:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 091A776AB8; Fri, 12 Apr 2019 15:00:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D8BFC22F35; Fri, 12 Apr 2019 15:00:42 +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 x3CF0gpZ002401; Fri, 12 Apr 2019 15:00:42 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CF0gDc002400; Fri, 12 Apr 2019 15:00:42 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201904121500.x3CF0gDc002400@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 12 Apr 2019 15:00:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346153 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 346153 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 091A776AB8 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.966,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 15:00:43 -0000 Author: kib Date: Fri Apr 12 15:00:42 2019 New Revision: 346153 URL: https://svnweb.freebsd.org/changeset/base/346153 Log: MFC r345955: vn_vmap_seekhole(): align running offset to the block boundary. Modified: stable/12/sys/kern/vfs_vnops.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/vfs_vnops.c ============================================================================== --- stable/12/sys/kern/vfs_vnops.c Fri Apr 12 14:59:28 2019 (r346152) +++ stable/12/sys/kern/vfs_vnops.c Fri Apr 12 15:00:42 2019 (r346153) @@ -2163,7 +2163,8 @@ vn_bmap_seekhole(struct vnode *vp, u_long cmd, off_t * goto unlock; } bsize = vp->v_mount->mnt_stat.f_iosize; - for (bn = noff / bsize; noff < va.va_size; bn++, noff += bsize) { + for (bn = noff / bsize; noff < va.va_size; bn++, noff += bsize - + noff % bsize) { error = VOP_BMAP(vp, bn, NULL, &bnp, NULL, NULL); if (error == EOPNOTSUPP) { error = ENOTTY; From owner-svn-src-stable@freebsd.org Fri Apr 12 15:02:31 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A66A8157ECA3; Fri, 12 Apr 2019 15:02:31 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 466D276F2B; Fri, 12 Apr 2019 15:02:31 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 20B68230C9; Fri, 12 Apr 2019 15:02:31 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3CF2Vmm006654; Fri, 12 Apr 2019 15:02:31 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CF2Vae006653; Fri, 12 Apr 2019 15:02:31 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201904121502.x3CF2Vae006653@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 12 Apr 2019 15:02:31 +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: r346154 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 346154 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 466D276F2B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.966,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 15:02:31 -0000 Author: kib Date: Fri Apr 12 15:02:30 2019 New Revision: 346154 URL: https://svnweb.freebsd.org/changeset/base/346154 Log: MFC r345955: vn_vmap_seekhole(): align running offset to the block boundary. Modified: stable/11/sys/kern/vfs_vnops.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/vfs_vnops.c ============================================================================== --- stable/11/sys/kern/vfs_vnops.c Fri Apr 12 15:00:42 2019 (r346153) +++ stable/11/sys/kern/vfs_vnops.c Fri Apr 12 15:02:30 2019 (r346154) @@ -2180,7 +2180,8 @@ vn_bmap_seekhole(struct vnode *vp, u_long cmd, off_t * goto unlock; } bsize = vp->v_mount->mnt_stat.f_iosize; - for (bn = noff / bsize; noff < va.va_size; bn++, noff += bsize) { + for (bn = noff / bsize; noff < va.va_size; bn++, noff += bsize - + noff % bsize) { error = VOP_BMAP(vp, bn, NULL, &bnp, NULL, NULL); if (error == EOPNOTSUPP) { error = ENOTTY; From owner-svn-src-stable@freebsd.org Fri Apr 12 15:12:14 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9B12157EF40; Fri, 12 Apr 2019 15:12:13 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9485977436; Fri, 12 Apr 2019 15:12:13 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6B85923255; Fri, 12 Apr 2019 15:12:13 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3CFCD2B011883; Fri, 12 Apr 2019 15:12:13 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CFC8cQ011859; Fri, 12 Apr 2019 15:12:08 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201904121512.x3CFC8cQ011859@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 12 Apr 2019 15:12:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346155 - in stable/12: lib/libc/aarch64 lib/libc/amd64 lib/libc/arm lib/libc/gen lib/libc/i386 lib/libc/include lib/libc/mips lib/libc/powerpc lib/libc/powerpc64 lib/libc/riscv lib/lib... X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12: lib/libc/aarch64 lib/libc/amd64 lib/libc/arm lib/libc/gen lib/libc/i386 lib/libc/include lib/libc/mips lib/libc/powerpc lib/libc/powerpc64 lib/libc/riscv lib/libc/sparc64 lib/libc/sys li... X-SVN-Commit-Revision: 346155 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9485977436 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.970,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 15:12:14 -0000 Author: kib Date: Fri Apr 12 15:12:08 2019 New Revision: 346155 URL: https://svnweb.freebsd.org/changeset/base/346155 Log: MFC r345703: Fix initial exec TLS mode for dynamically loaded shared objects. Added: stable/12/lib/libc/aarch64/static_tls.h - copied unchanged from r345703, head/lib/libc/aarch64/static_tls.h stable/12/lib/libc/amd64/static_tls.h - copied unchanged from r345703, head/lib/libc/amd64/static_tls.h stable/12/lib/libc/arm/static_tls.h - copied unchanged from r345703, head/lib/libc/arm/static_tls.h stable/12/lib/libc/i386/static_tls.h - copied unchanged from r345703, head/lib/libc/i386/static_tls.h stable/12/lib/libc/mips/static_tls.h - copied unchanged from r345703, head/lib/libc/mips/static_tls.h stable/12/lib/libc/powerpc/static_tls.h - copied unchanged from r345703, head/lib/libc/powerpc/static_tls.h stable/12/lib/libc/powerpc64/static_tls.h - copied unchanged from r345703, head/lib/libc/powerpc64/static_tls.h stable/12/lib/libc/riscv/static_tls.h - copied unchanged from r345703, head/lib/libc/riscv/static_tls.h stable/12/lib/libc/sparc64/static_tls.h - copied unchanged from r345703, head/lib/libc/sparc64/static_tls.h stable/12/lib/libthr/arch/aarch64/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/aarch64/include/pthread_tls.h stable/12/lib/libthr/arch/amd64/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/amd64/include/pthread_tls.h stable/12/lib/libthr/arch/arm/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/arm/include/pthread_tls.h stable/12/lib/libthr/arch/i386/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/i386/include/pthread_tls.h stable/12/lib/libthr/arch/mips/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/mips/include/pthread_tls.h stable/12/lib/libthr/arch/powerpc/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/powerpc/include/pthread_tls.h stable/12/lib/libthr/arch/riscv/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/riscv/include/pthread_tls.h stable/12/lib/libthr/arch/sparc64/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/sparc64/include/pthread_tls.h Modified: stable/12/lib/libc/gen/Symbol.map stable/12/lib/libc/gen/elf_utils.c stable/12/lib/libc/include/libc_private.h stable/12/lib/libc/sys/interposing_table.c stable/12/lib/libthr/Makefile stable/12/lib/libthr/pthread.map stable/12/lib/libthr/thread/thr_list.c stable/12/lib/libthr/thread/thr_private.h stable/12/libexec/rtld-elf/rtld.c stable/12/libexec/rtld-elf/rtld.h Directory Properties: stable/12/ (props changed) Copied: stable/12/lib/libc/aarch64/static_tls.h (from r345703, head/lib/libc/aarch64/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/aarch64/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/aarch64/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_AARCH64_STATIC_TLS_H +#define _LIBC_AARCH64_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("mrs %x0, tpidr_el0" : "=r" (tlsbase)); + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libc/amd64/static_tls.h (from r345703, head/lib/libc/amd64/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/amd64/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/amd64/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_AMD64_STATIC_TLS_H +#define _LIBC_AMD64_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("movq %%fs:0, %0" : "=r" (tlsbase)); + tlsbase -= offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libc/arm/static_tls.h (from r345703, head/lib/libc/arm/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/arm/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/arm/static_tls.h) @@ -0,0 +1,51 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_ARM_STATIC_TLS_H +#define _LIBC_ARM_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + +#ifdef ARM_TP_ADDRESS + tlsbase = *(uintptr_t *)ARM_TP_ADDRESS; +#else + __asm __volatile("mrc p15, 0, %0, c13, c0, 3" : "=r" (tlsbase)); +#endif + + tlsbase += offset; + return (tlsbase); +} + +#endif Modified: stable/12/lib/libc/gen/Symbol.map ============================================================================== --- stable/12/lib/libc/gen/Symbol.map Fri Apr 12 15:02:30 2019 (r346154) +++ stable/12/lib/libc/gen/Symbol.map Fri Apr 12 15:12:08 2019 (r346155) @@ -542,6 +542,7 @@ FBSDprivate_1.0 { __libc_tcdrain; __elf_aux_vector; + __pthread_distribute_static_tls; __pthread_map_stacks_exec; __fillcontextx; __fillcontextx2; Modified: stable/12/lib/libc/gen/elf_utils.c ============================================================================== --- stable/12/lib/libc/gen/elf_utils.c Fri Apr 12 15:02:30 2019 (r346154) +++ stable/12/lib/libc/gen/elf_utils.c Fri Apr 12 15:12:08 2019 (r346155) @@ -34,10 +34,13 @@ #include #include #include +#include #include "libc_private.h" +#include "static_tls.h" int __elf_phdr_match_addr(struct dl_phdr_info *, void *); void __pthread_map_stacks_exec(void); +void __pthread_distribute_static_tls(size_t, void *, size_t, size_t); int __elf_phdr_match_addr(struct dl_phdr_info *phdr_info, void *addr) @@ -96,4 +99,25 @@ __pthread_map_stacks_exec(void) { ((void (*)(void))__libc_interposing[INTERPOS_map_stacks_exec])(); +} + +void +__libc_distribute_static_tls(size_t offset, void *src, size_t len, + size_t total_len) +{ + uintptr_t tlsbase; + + tlsbase = _libc_get_static_tls_base(offset); + memcpy((void *)tlsbase, src, len); + memset((char *)tlsbase + len, 0, total_len - len); +} + +#pragma weak __pthread_distribute_static_tls +void +__pthread_distribute_static_tls(size_t offset, void *src, size_t len, + size_t total_len) +{ + + ((void (*)(size_t, void *, size_t, size_t))__libc_interposing[ + INTERPOS_distribute_static_tls])(offset, src, len, total_len); } Copied: stable/12/lib/libc/i386/static_tls.h (from r345703, head/lib/libc/i386/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/i386/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/i386/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_I386_STATIC_TLS_H +#define _LIBC_I386_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("movl %%gs:0, %0" : "=r" (tlsbase)); + tlsbase -= offset; + return (tlsbase); +} + +#endif Modified: stable/12/lib/libc/include/libc_private.h ============================================================================== --- stable/12/lib/libc/include/libc_private.h Fri Apr 12 15:02:30 2019 (r346154) +++ stable/12/lib/libc/include/libc_private.h Fri Apr 12 15:12:08 2019 (r346155) @@ -235,6 +235,7 @@ enum { INTERPOS_map_stacks_exec, INTERPOS_fdatasync, INTERPOS_clock_nanosleep, + INTERPOS_distribute_static_tls, INTERPOS_MAX }; @@ -413,6 +414,8 @@ struct dl_phdr_info; int __elf_phdr_match_addr(struct dl_phdr_info *, void *); void __init_elf_aux_vector(void); void __libc_map_stacks_exec(void); +void __libc_distribute_static_tls(__size_t, void *, __size_t, __size_t); +__uintptr_t __libc_static_tls_base(__size_t); void _pthread_cancel_enter(int); void _pthread_cancel_leave(int); Copied: stable/12/lib/libc/mips/static_tls.h (from r345703, head/lib/libc/mips/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/mips/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/mips/static_tls.h) @@ -0,0 +1,64 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_MIPS_STATIC_TLS_H +#define _LIBC_MIPS_STATIC_TLS_H + +#include + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + +#if defined(__mips_n64) + __asm__ __volatile__ ( + ".set\tpush\n\t" + ".set\tmips64r2\n\t" + "rdhwr\t%0, $29\n\t" + ".set\tpop" + : "=r" (tlsbase)); + tlsbase -= TLS_TP_OFFSET + TLS_TCB_SIZE; +#else /* mips 32 */ + __asm__ __volatile__ ( + ".set\tpush\n\t" + ".set\tmips32r2\n\t" + "rdhwr\t%0, $29\n\t" + ".set\tpop" + : "=r" (tlsbase)); + tlsbase -= TLS_TP_OFFSET + TLS_TCB_SIZE; +#endif /* ! __mips_n64 */ + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libc/powerpc/static_tls.h (from r345703, head/lib/libc/powerpc/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/powerpc/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/powerpc/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_POWERPC_STATIC_TLS_H +#define _LIBC_POWERPC_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("mr %0,2" : "=r"(tlsbase)); + tlsbase += offset - 0x7008; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libc/powerpc64/static_tls.h (from r345703, head/lib/libc/powerpc64/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/powerpc64/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/powerpc64/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_POWERPC64_STATIC_TLS_H +#define _LIBC_POWERPC64_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("mr %0,13" : "=r"(tlsbase)); + tlsbase += offset - 0x7010; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libc/riscv/static_tls.h (from r345703, head/lib/libc/riscv/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/riscv/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/riscv/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_RISCV_STATIC_TLS_H +#define _LIBC_RISCV_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("mv %0, tp" : "=r"(tlsbase)); + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libc/sparc64/static_tls.h (from r345703, head/lib/libc/sparc64/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libc/sparc64/static_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libc/sparc64/static_tls.h) @@ -0,0 +1,44 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_SPARC64_STATIC_TLS_H +#define _LIBC_SPARC64_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + register uintptr_t tlsbase __asm("%g7"); + + return (tlsbase + offset); +} + +#endif Modified: stable/12/lib/libc/sys/interposing_table.c ============================================================================== --- stable/12/lib/libc/sys/interposing_table.c Fri Apr 12 15:02:30 2019 (r346154) +++ stable/12/lib/libc/sys/interposing_table.c Fri Apr 12 15:12:08 2019 (r346155) @@ -81,6 +81,7 @@ interpos_func_t __libc_interposing[INTERPOS_MAX] = { SLOT(map_stacks_exec, __libc_map_stacks_exec), SLOT(fdatasync, __sys_fdatasync), SLOT(clock_nanosleep, __sys_clock_nanosleep), + SLOT(distribute_static_tls, __libc_distribute_static_tls), }; #undef SLOT Modified: stable/12/lib/libthr/Makefile ============================================================================== --- stable/12/lib/libthr/Makefile Fri Apr 12 15:02:30 2019 (r346154) +++ stable/12/lib/libthr/Makefile Fri Apr 12 15:12:08 2019 (r346155) @@ -16,8 +16,10 @@ SHLIB_MAJOR= 3 NO_WTHREAD_SAFETY=1 NO_WCAST_ALIGN.gcc=1 # for gcc 4.2 CFLAGS+=-DPTHREAD_KERNEL -CFLAGS+=-I${SRCTOP}/lib/libc/include -I${.CURDIR}/thread \ - -I${SRCTOP}/include +CFLAGS+=-I${SRCTOP}/lib/libc/include +CFLAGS+=-I${SRCTOP}/lib/libc/${MACHINE_CPUARCH} +CFLAGS+=-I${.CURDIR}/thread +CFLAGS+=-I${SRCTOP}/include CFLAGS+=-I${.CURDIR}/arch/${MACHINE_CPUARCH}/include CFLAGS+=-I${.CURDIR}/sys CFLAGS+=-I${SRCTOP}/libexec/rtld-elf Copied: stable/12/lib/libthr/arch/aarch64/include/pthread_tls.h (from r345703, head/lib/libthr/arch/aarch64/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libthr/arch/aarch64/include/pthread_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libthr/arch/aarch64/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_AARCH64_PTHREAD_TLS_H +#define _ARCH_AARCH64_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libthr/arch/amd64/include/pthread_tls.h (from r345703, head/lib/libthr/arch/amd64/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libthr/arch/amd64/include/pthread_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libthr/arch/amd64/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_AMD64_PTHREAD_TLS_H +#define _ARCH_AMD64_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase -= offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libthr/arch/arm/include/pthread_tls.h (from r345703, head/lib/libthr/arch/arm/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libthr/arch/arm/include/pthread_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libthr/arch/arm/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_ARM_PTHREAD_TLS_H +#define _ARCH_ARM_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libthr/arch/i386/include/pthread_tls.h (from r345703, head/lib/libthr/arch/i386/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libthr/arch/i386/include/pthread_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libthr/arch/i386/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_I386_PTHREAD_TLS_H +#define _ARCH_I386_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase -= offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libthr/arch/mips/include/pthread_tls.h (from r345703, head/lib/libthr/arch/mips/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libthr/arch/mips/include/pthread_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libthr/arch/mips/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_MIPS_PTHREAD_TLS_H +#define _ARCH_MIPS_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libthr/arch/powerpc/include/pthread_tls.h (from r345703, head/lib/libthr/arch/powerpc/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libthr/arch/powerpc/include/pthread_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libthr/arch/powerpc/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_POWERPC_PTHREAD_TLS_H +#define _ARCH_POWERPC_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libthr/arch/riscv/include/pthread_tls.h (from r345703, head/lib/libthr/arch/riscv/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libthr/arch/riscv/include/pthread_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libthr/arch/riscv/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_RISCV_PTHREAD_TLS_H +#define _ARCH_RISCV_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/12/lib/libthr/arch/sparc64/include/pthread_tls.h (from r345703, head/lib/libthr/arch/sparc64/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/lib/libthr/arch/sparc64/include/pthread_tls.h Fri Apr 12 15:12:08 2019 (r346155, copy of r345703, head/lib/libthr/arch/sparc64/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_SPARC64_PTHREAD_TLS_H +#define _ARCH_SPARC64_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase -= offset; + return (tlsbase); +} + +#endif Modified: stable/12/lib/libthr/pthread.map ============================================================================== --- stable/12/lib/libthr/pthread.map Fri Apr 12 15:02:30 2019 (r346154) +++ stable/12/lib/libthr/pthread.map Fri Apr 12 15:12:08 2019 (r346155) @@ -137,6 +137,7 @@ FBSDprivate_1.0 { __pthread_mutex_lock; __pthread_mutex_timedlock; __pthread_mutex_trylock; + __pthread_distribute_static_tls; _pthread_atfork; _pthread_barrier_destroy; _pthread_barrier_init; Modified: stable/12/lib/libthr/thread/thr_list.c ============================================================================== --- stable/12/lib/libthr/thread/thr_list.c Fri Apr 12 15:02:30 2019 (r346154) +++ stable/12/lib/libthr/thread/thr_list.c Fri Apr 12 15:12:08 2019 (r346155) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include "libc_private.h" #include "thr_private.h" +#include "static_tls.h" /*#define DEBUG_THREAD_LIST */ #ifdef DEBUG_THREAD_LIST @@ -361,4 +362,36 @@ _thr_find_thread(struct pthread *curthread, struct pth } THREAD_LIST_UNLOCK(curthread); return (ret); +} + +#include "pthread_tls.h" + +static void +thr_distribute_static_tls(uintptr_t tlsbase, void *src, size_t len, + size_t total_len) +{ + + memcpy((void *)tlsbase, src, len); + memset((char *)tlsbase + len, 0, total_len - len); +} + +void +__pthread_distribute_static_tls(size_t offset, void *src, size_t len, + size_t total_len) +{ + struct pthread *curthread, *thrd; + uintptr_t tlsbase; + + if (!_thr_is_inited()) { + tlsbase = _libc_get_static_tls_base(offset); + thr_distribute_static_tls(tlsbase, src, len, total_len); + return; + } + curthread = _get_curthread(); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Fri Apr 12 15:15:33 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D4F90157F098; Fri, 12 Apr 2019 15:15:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 83AAA776AB; Fri, 12 Apr 2019 15:15:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 714FC2326E; Fri, 12 Apr 2019 15:15:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3CFFWIr012098; Fri, 12 Apr 2019 15:15:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CFFRA8012071; Fri, 12 Apr 2019 15:15:27 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201904121515.x3CFFRA8012071@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 12 Apr 2019 15:15: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: r346156 - in stable/11: lib/libc/aarch64 lib/libc/amd64 lib/libc/arm lib/libc/gen lib/libc/i386 lib/libc/include lib/libc/mips lib/libc/powerpc lib/libc/powerpc64 lib/libc/riscv lib/lib... X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/11: lib/libc/aarch64 lib/libc/amd64 lib/libc/arm lib/libc/gen lib/libc/i386 lib/libc/include lib/libc/mips lib/libc/powerpc lib/libc/powerpc64 lib/libc/riscv lib/libc/sparc64 lib/libc/sys li... X-SVN-Commit-Revision: 346156 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 83AAA776AB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.970,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 15:15:33 -0000 Author: kib Date: Fri Apr 12 15:15:27 2019 New Revision: 346156 URL: https://svnweb.freebsd.org/changeset/base/346156 Log: MFC r345703: Fix initial exec TLS mode for dynamically loaded shared objects. Added: stable/11/lib/libc/aarch64/static_tls.h - copied unchanged from r345703, head/lib/libc/aarch64/static_tls.h stable/11/lib/libc/amd64/static_tls.h - copied unchanged from r345703, head/lib/libc/amd64/static_tls.h stable/11/lib/libc/arm/static_tls.h - copied unchanged from r345703, head/lib/libc/arm/static_tls.h stable/11/lib/libc/i386/static_tls.h - copied unchanged from r345703, head/lib/libc/i386/static_tls.h stable/11/lib/libc/mips/static_tls.h - copied unchanged from r345703, head/lib/libc/mips/static_tls.h stable/11/lib/libc/powerpc/static_tls.h - copied unchanged from r345703, head/lib/libc/powerpc/static_tls.h stable/11/lib/libc/powerpc64/static_tls.h - copied unchanged from r345703, head/lib/libc/powerpc64/static_tls.h stable/11/lib/libc/riscv/static_tls.h - copied unchanged from r345703, head/lib/libc/riscv/static_tls.h stable/11/lib/libc/sparc64/static_tls.h - copied unchanged from r345703, head/lib/libc/sparc64/static_tls.h stable/11/lib/libthr/arch/aarch64/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/aarch64/include/pthread_tls.h stable/11/lib/libthr/arch/amd64/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/amd64/include/pthread_tls.h stable/11/lib/libthr/arch/arm/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/arm/include/pthread_tls.h stable/11/lib/libthr/arch/i386/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/i386/include/pthread_tls.h stable/11/lib/libthr/arch/mips/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/mips/include/pthread_tls.h stable/11/lib/libthr/arch/powerpc/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/powerpc/include/pthread_tls.h stable/11/lib/libthr/arch/riscv/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/riscv/include/pthread_tls.h stable/11/lib/libthr/arch/sparc64/include/pthread_tls.h - copied unchanged from r345703, head/lib/libthr/arch/sparc64/include/pthread_tls.h Modified: stable/11/lib/libc/gen/Symbol.map stable/11/lib/libc/gen/elf_utils.c stable/11/lib/libc/include/libc_private.h stable/11/lib/libc/sys/interposing_table.c stable/11/lib/libthr/Makefile stable/11/lib/libthr/pthread.map stable/11/lib/libthr/thread/thr_list.c stable/11/lib/libthr/thread/thr_private.h stable/11/libexec/rtld-elf/rtld.c stable/11/libexec/rtld-elf/rtld.h Directory Properties: stable/11/ (props changed) Copied: stable/11/lib/libc/aarch64/static_tls.h (from r345703, head/lib/libc/aarch64/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/aarch64/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/aarch64/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_AARCH64_STATIC_TLS_H +#define _LIBC_AARCH64_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("mrs %x0, tpidr_el0" : "=r" (tlsbase)); + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libc/amd64/static_tls.h (from r345703, head/lib/libc/amd64/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/amd64/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/amd64/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_AMD64_STATIC_TLS_H +#define _LIBC_AMD64_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("movq %%fs:0, %0" : "=r" (tlsbase)); + tlsbase -= offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libc/arm/static_tls.h (from r345703, head/lib/libc/arm/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/arm/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/arm/static_tls.h) @@ -0,0 +1,51 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_ARM_STATIC_TLS_H +#define _LIBC_ARM_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + +#ifdef ARM_TP_ADDRESS + tlsbase = *(uintptr_t *)ARM_TP_ADDRESS; +#else + __asm __volatile("mrc p15, 0, %0, c13, c0, 3" : "=r" (tlsbase)); +#endif + + tlsbase += offset; + return (tlsbase); +} + +#endif Modified: stable/11/lib/libc/gen/Symbol.map ============================================================================== --- stable/11/lib/libc/gen/Symbol.map Fri Apr 12 15:12:08 2019 (r346155) +++ stable/11/lib/libc/gen/Symbol.map Fri Apr 12 15:15:27 2019 (r346156) @@ -545,6 +545,7 @@ FBSDprivate_1.0 { __libc_tcdrain; __elf_aux_vector; + __pthread_distribute_static_tls; __pthread_map_stacks_exec; __fillcontextx; __fillcontextx2; Modified: stable/11/lib/libc/gen/elf_utils.c ============================================================================== --- stable/11/lib/libc/gen/elf_utils.c Fri Apr 12 15:12:08 2019 (r346155) +++ stable/11/lib/libc/gen/elf_utils.c Fri Apr 12 15:15:27 2019 (r346156) @@ -32,10 +32,13 @@ #include #include #include +#include #include "libc_private.h" +#include "static_tls.h" int __elf_phdr_match_addr(struct dl_phdr_info *, void *); void __pthread_map_stacks_exec(void); +void __pthread_distribute_static_tls(size_t, void *, size_t, size_t); int __elf_phdr_match_addr(struct dl_phdr_info *phdr_info, void *addr) @@ -81,4 +84,25 @@ __pthread_map_stacks_exec(void) { ((void (*)(void))__libc_interposing[INTERPOS_map_stacks_exec])(); +} + +void +__libc_distribute_static_tls(size_t offset, void *src, size_t len, + size_t total_len) +{ + uintptr_t tlsbase; + + tlsbase = _libc_get_static_tls_base(offset); + memcpy((void *)tlsbase, src, len); + memset((char *)tlsbase + len, 0, total_len - len); +} + +#pragma weak __pthread_distribute_static_tls +void +__pthread_distribute_static_tls(size_t offset, void *src, size_t len, + size_t total_len) +{ + + ((void (*)(size_t, void *, size_t, size_t))__libc_interposing[ + INTERPOS_distribute_static_tls])(offset, src, len, total_len); } Copied: stable/11/lib/libc/i386/static_tls.h (from r345703, head/lib/libc/i386/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/i386/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/i386/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_I386_STATIC_TLS_H +#define _LIBC_I386_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("movl %%gs:0, %0" : "=r" (tlsbase)); + tlsbase -= offset; + return (tlsbase); +} + +#endif Modified: stable/11/lib/libc/include/libc_private.h ============================================================================== --- stable/11/lib/libc/include/libc_private.h Fri Apr 12 15:12:08 2019 (r346155) +++ stable/11/lib/libc/include/libc_private.h Fri Apr 12 15:15:27 2019 (r346156) @@ -233,6 +233,7 @@ enum { INTERPOS_map_stacks_exec, INTERPOS_fdatasync, INTERPOS_clock_nanosleep, + INTERPOS_distribute_static_tls, INTERPOS_MAX }; @@ -403,6 +404,8 @@ struct dl_phdr_info; int __elf_phdr_match_addr(struct dl_phdr_info *, void *); void __init_elf_aux_vector(void); void __libc_map_stacks_exec(void); +void __libc_distribute_static_tls(__size_t, void *, __size_t, __size_t); +__uintptr_t __libc_static_tls_base(__size_t); void _pthread_cancel_enter(int); void _pthread_cancel_leave(int); Copied: stable/11/lib/libc/mips/static_tls.h (from r345703, head/lib/libc/mips/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/mips/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/mips/static_tls.h) @@ -0,0 +1,64 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_MIPS_STATIC_TLS_H +#define _LIBC_MIPS_STATIC_TLS_H + +#include + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + +#if defined(__mips_n64) + __asm__ __volatile__ ( + ".set\tpush\n\t" + ".set\tmips64r2\n\t" + "rdhwr\t%0, $29\n\t" + ".set\tpop" + : "=r" (tlsbase)); + tlsbase -= TLS_TP_OFFSET + TLS_TCB_SIZE; +#else /* mips 32 */ + __asm__ __volatile__ ( + ".set\tpush\n\t" + ".set\tmips32r2\n\t" + "rdhwr\t%0, $29\n\t" + ".set\tpop" + : "=r" (tlsbase)); + tlsbase -= TLS_TP_OFFSET + TLS_TCB_SIZE; +#endif /* ! __mips_n64 */ + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libc/powerpc/static_tls.h (from r345703, head/lib/libc/powerpc/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/powerpc/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/powerpc/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_POWERPC_STATIC_TLS_H +#define _LIBC_POWERPC_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("mr %0,2" : "=r"(tlsbase)); + tlsbase += offset - 0x7008; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libc/powerpc64/static_tls.h (from r345703, head/lib/libc/powerpc64/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/powerpc64/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/powerpc64/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_POWERPC64_STATIC_TLS_H +#define _LIBC_POWERPC64_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("mr %0,13" : "=r"(tlsbase)); + tlsbase += offset - 0x7010; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libc/riscv/static_tls.h (from r345703, head/lib/libc/riscv/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/riscv/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/riscv/static_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_RISCV_STATIC_TLS_H +#define _LIBC_RISCV_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + uintptr_t tlsbase; + + __asm __volatile("mv %0, tp" : "=r"(tlsbase)); + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libc/sparc64/static_tls.h (from r345703, head/lib/libc/sparc64/static_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libc/sparc64/static_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libc/sparc64/static_tls.h) @@ -0,0 +1,44 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LIBC_SPARC64_STATIC_TLS_H +#define _LIBC_SPARC64_STATIC_TLS_H + +static __inline uintptr_t +_libc_get_static_tls_base(size_t offset) +{ + register uintptr_t tlsbase __asm("%g7"); + + return (tlsbase + offset); +} + +#endif Modified: stable/11/lib/libc/sys/interposing_table.c ============================================================================== --- stable/11/lib/libc/sys/interposing_table.c Fri Apr 12 15:12:08 2019 (r346155) +++ stable/11/lib/libc/sys/interposing_table.c Fri Apr 12 15:15:27 2019 (r346156) @@ -81,6 +81,7 @@ interpos_func_t __libc_interposing[INTERPOS_MAX] = { SLOT(map_stacks_exec, __libc_map_stacks_exec), SLOT(fdatasync, __sys_fdatasync), SLOT(clock_nanosleep, __sys_clock_nanosleep), + SLOT(distribute_static_tls, __libc_distribute_static_tls), }; #undef SLOT Modified: stable/11/lib/libthr/Makefile ============================================================================== --- stable/11/lib/libthr/Makefile Fri Apr 12 15:12:08 2019 (r346155) +++ stable/11/lib/libthr/Makefile Fri Apr 12 15:15:27 2019 (r346156) @@ -19,8 +19,10 @@ SHLIB_MAJOR= 3 WARNS?= 3 NO_WTHREAD_SAFETY=1 CFLAGS+=-DPTHREAD_KERNEL -CFLAGS+=-I${SRCTOP}/lib/libc/include -I${.CURDIR}/thread \ - -I${SRCTOP}/include +CFLAGS+=-I${SRCTOP}/lib/libc/include +CFLAGS+=-I${SRCTOP}/lib/libc/${MACHINE_CPUARCH} +CFLAGS+=-I${.CURDIR}/thread +CFLAGS+=-I${SRCTOP}/include CFLAGS+=-I${.CURDIR}/arch/${MACHINE_CPUARCH}/include CFLAGS+=-I${.CURDIR}/sys CFLAGS+=-I${SRCTOP}/libexec/rtld-elf Copied: stable/11/lib/libthr/arch/aarch64/include/pthread_tls.h (from r345703, head/lib/libthr/arch/aarch64/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libthr/arch/aarch64/include/pthread_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libthr/arch/aarch64/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_AARCH64_PTHREAD_TLS_H +#define _ARCH_AARCH64_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libthr/arch/amd64/include/pthread_tls.h (from r345703, head/lib/libthr/arch/amd64/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libthr/arch/amd64/include/pthread_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libthr/arch/amd64/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_AMD64_PTHREAD_TLS_H +#define _ARCH_AMD64_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase -= offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libthr/arch/arm/include/pthread_tls.h (from r345703, head/lib/libthr/arch/arm/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libthr/arch/arm/include/pthread_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libthr/arch/arm/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_ARM_PTHREAD_TLS_H +#define _ARCH_ARM_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libthr/arch/i386/include/pthread_tls.h (from r345703, head/lib/libthr/arch/i386/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libthr/arch/i386/include/pthread_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libthr/arch/i386/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_I386_PTHREAD_TLS_H +#define _ARCH_I386_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase -= offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libthr/arch/mips/include/pthread_tls.h (from r345703, head/lib/libthr/arch/mips/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libthr/arch/mips/include/pthread_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libthr/arch/mips/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_MIPS_PTHREAD_TLS_H +#define _ARCH_MIPS_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libthr/arch/powerpc/include/pthread_tls.h (from r345703, head/lib/libthr/arch/powerpc/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libthr/arch/powerpc/include/pthread_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libthr/arch/powerpc/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_POWERPC_PTHREAD_TLS_H +#define _ARCH_POWERPC_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libthr/arch/riscv/include/pthread_tls.h (from r345703, head/lib/libthr/arch/riscv/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libthr/arch/riscv/include/pthread_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libthr/arch/riscv/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_RISCV_PTHREAD_TLS_H +#define _ARCH_RISCV_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase += offset; + return (tlsbase); +} + +#endif Copied: stable/11/lib/libthr/arch/sparc64/include/pthread_tls.h (from r345703, head/lib/libthr/arch/sparc64/include/pthread_tls.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/lib/libthr/arch/sparc64/include/pthread_tls.h Fri Apr 12 15:15:27 2019 (r346156, copy of r345703, head/lib/libthr/arch/sparc64/include/pthread_tls.h) @@ -0,0 +1,46 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _ARCH_SPARC64_PTHREAD_TLS_H +#define _ARCH_SPARC64_PTHREAD_TLS_H + +static __inline uintptr_t +_get_static_tls_base(struct pthread *thr, size_t offset) +{ + uintptr_t tlsbase; + + tlsbase = (uintptr_t)thr->tcb; + tlsbase -= offset; + return (tlsbase); +} + +#endif Modified: stable/11/lib/libthr/pthread.map ============================================================================== --- stable/11/lib/libthr/pthread.map Fri Apr 12 15:12:08 2019 (r346155) +++ stable/11/lib/libthr/pthread.map Fri Apr 12 15:15:27 2019 (r346156) @@ -137,6 +137,7 @@ FBSDprivate_1.0 { __pthread_mutex_lock; __pthread_mutex_timedlock; __pthread_mutex_trylock; + __pthread_distribute_static_tls; _pthread_atfork; _pthread_barrier_destroy; _pthread_barrier_init; Modified: stable/11/lib/libthr/thread/thr_list.c ============================================================================== --- stable/11/lib/libthr/thread/thr_list.c Fri Apr 12 15:12:08 2019 (r346155) +++ stable/11/lib/libthr/thread/thr_list.c Fri Apr 12 15:15:27 2019 (r346156) @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include "libc_private.h" #include "thr_private.h" +#include "static_tls.h" /*#define DEBUG_THREAD_LIST */ #ifdef DEBUG_THREAD_LIST @@ -359,4 +360,36 @@ _thr_find_thread(struct pthread *curthread, struct pth } THREAD_LIST_UNLOCK(curthread); return (ret); +} + +#include "pthread_tls.h" + +static void +thr_distribute_static_tls(uintptr_t tlsbase, void *src, size_t len, + size_t total_len) +{ + + memcpy((void *)tlsbase, src, len); + memset((char *)tlsbase + len, 0, total_len - len); +} + +void +__pthread_distribute_static_tls(size_t offset, void *src, size_t len, + size_t total_len) +{ + struct pthread *curthread, *thrd; + uintptr_t tlsbase; + + if (!_thr_is_inited()) { + tlsbase = _libc_get_static_tls_base(offset); + thr_distribute_static_tls(tlsbase, src, len, total_len); + return; + } + curthread = _get_curthread(); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Fri Apr 12 17:50:09 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 812531582393; Fri, 12 Apr 2019 17:50:09 +0000 (UTC) (envelope-from herbert@gojira.at) Received: from mail.bsd4all.net (mail.bsd4all.net [IPv6:2a01:4f8:191:217b::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail.bsd4all.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B2DA685662; Fri, 12 Apr 2019 17:50:08 +0000 (UTC) (envelope-from herbert@gojira.at) Date: Fri, 12 Apr 2019 19:49:56 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=gojira.at; s=mail201809; t=1555091397; bh=7TrZKg1wOQAptoLLdd5h6ZD18ROw0+OKaJz15pwWRSQ=; h=Date:Message-ID:From:To:Cc:Subject:MIME-Version:Content-Type; b=R47dYkdWBMtPuczoADi03Hee1pAjQG0s2Kt0ddMEZ8cp6C0oK3zbyfFvKKadLRew3 j1qYA9UYOvX7niP9snT0R0v653xwOK9OnjmHGUQFi0sSvPk5mT52fFoTuQ+TPdB01X mTW7EA8lyjBLfMtVfbzFCq11tmIkmwZuiTBgTS8F9h7H58u9oQx1+wrqIYxdJeIQ+x AVix38cMzGJncGCbioORDpVQuTmLx/uFWFtp6SjYWIo8CCO+YKOFSeYIj8CSG43VwY r38GDLTRvjXHGgxq9xtAqEFuzmDrIs8kT2NvO5ecj1f3V/V2zhszjbEGHKfXZu8bNi vd9yyYUp40AHw== Message-ID: <87o95bf70b.wl-herbert@gojira.at> From: "Herbert J. Skuhra" To: "Simon J. Gerraty" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: Re: svn commit: r346145 - in stable/12: contrib/bearssl etc/mtree include lib lib/libbearssl lib/libsecureboot lib/libsecureboot/tests sbin sbin/veriexec share/mk stand stand/common stand/ficl stand/fi... In-Reply-To: <201904120103.x3C1302P053933@repo.freebsd.org> References: <201904120103.x3C1302P053933@repo.freebsd.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL/10.8 EasyPG/1.0.0 Emacs/27.0 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: B2DA685662 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.97 / 15.00]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 17:50:09 -0000 On Fri, 12 Apr 2019 03:03:00 +0200, "Simon J. Gerraty" wrote: > > Author: sjg > Date: Fri Apr 12 01:03:00 2019 > New Revision: 346145 > URL: https://svnweb.freebsd.org/changeset/base/346145 > > Log: > Add support for loader veriexec > > Also sbin/veriexec for mac_veriexec > > MFC r343281,344564-344568,344780,344784,345289,346070 Partly MFC r344853? -- Herbert From owner-svn-src-stable@freebsd.org Fri Apr 12 18:43:14 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D2A21583406; Fri, 12 Apr 2019 18:43:14 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.pphosted.com", Issuer "Thawte RSA CA 2018" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C251687500; Fri, 12 Apr 2019 18:43:13 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from pps.filterd (m0108156.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3CIYU9m016023; Fri, 12 Apr 2019 11:43:10 -0700 Received: from nam01-sn1-obe.outbound.protection.outlook.com (mail-sn1nam01lp2050.outbound.protection.outlook.com [104.47.32.50]) by mx0a-00273201.pphosted.com with ESMTP id 2rtu2srnd4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 12 Apr 2019 11:43:10 -0700 Received: from SN4PR0501CA0146.namprd05.prod.outlook.com (2603:10b6:803:2c::24) by SN6PR05MB4239.namprd05.prod.outlook.com (2603:10b6:805:28::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1792.8; Fri, 12 Apr 2019 18:43:07 +0000 Received: from BY2NAM05FT030.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e52::208) by SN4PR0501CA0146.outlook.office365.com (2603:10b6:803:2c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1792.8 via Frontend Transport; Fri, 12 Apr 2019 18:43:06 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.13 as permitted sender) Received: from P-EXFEND-EQX-02.jnpr.net (66.129.239.13) by BY2NAM05FT030.mail.protection.outlook.com (10.152.100.167) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) id 15.20.1792.7 via Frontend Transport; Fri, 12 Apr 2019 18:43:06 +0000 Received: from P-EXBEND-EQX-01.jnpr.net (10.104.8.52) by P-EXFEND-EQX-02.jnpr.net (10.104.8.55) with Microsoft SMTP Server (TLS) id 15.0.847.32; Fri, 12 Apr 2019 11:43:06 -0700 Received: from P-EXBEND-EQX-02.jnpr.net (10.104.8.53) by P-EXBEND-EQX-01.jnpr.net (10.104.8.52) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 12 Apr 2019 11:43:05 -0700 Received: from p-mailhub01.juniper.net (10.104.20.6) by P-EXBEND-EQX-02.jnpr.net (10.104.8.53) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Fri, 12 Apr 2019 11:43:05 -0700 Received: from kaos.jnpr.net (kaos.jnpr.net [172.23.50.162]) by p-mailhub01.juniper.net (8.14.4/8.11.3) with ESMTP id x3CIh3fh018947; Fri, 12 Apr 2019 11:43:03 -0700 (envelope-from sjg@juniper.net) Received: by kaos.jnpr.net (Postfix, from userid 1377) id 33F217C887; Fri, 12 Apr 2019 11:43:03 -0700 (PDT) Received: from kaos.jnpr.net (localhost [127.0.0.1]) by kaos.jnpr.net (Postfix) with ESMTP id 324D77C886; Fri, 12 Apr 2019 11:43:03 -0700 (PDT) To: "Herbert J. Skuhra" , CC: , , , , Subject: Re: svn commit: r346145 - in stable/12: contrib/bearssl etc/mtree include lib lib/libbearssl lib/libsecureboot lib/libsecureboot/tests sbin sbin/veriexec share/mk stand stand/common stand/ficl stand/fi... In-Reply-To: <87o95bf70b.wl-herbert@gojira.at> References: <201904120103.x3C1302P053933@repo.freebsd.org> <87o95bf70b.wl-herbert@gojira.at> Comments: In-reply-to: "Herbert J. Skuhra" message dated "Fri, 12 Apr 2019 19:49:56 +0200." From: "Simon J. Gerraty" X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 26.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <9636.1555094583.1@kaos.jnpr.net> Date: Fri, 12 Apr 2019 11:43:03 -0700 Message-ID: <14402.1555094583@kaos.jnpr.net> X-EXCLAIMER-MD-CONFIG: e3cb0ff2-54e7-4646-8a04-0dae4ac7b136 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.129.239.13; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(136003)(346002)(376002)(39860400002)(396003)(2980300002)(189003)(199004)(316002)(86362001)(90966002)(76176011)(7696005)(229853002)(46406003)(54906003)(8936002)(126002)(476003)(97876018)(11346002)(7126003)(336012)(110136005)(117636001)(69596002)(478600001)(356004)(486006)(68736007)(16586007)(97756001)(47776003)(5660300002)(55016002)(9686003)(446003)(53936002)(4744005)(50226002)(105596002)(4326008)(6266002)(305945005)(97736004)(23726003)(26005)(81166006)(81156014)(106466001)(77096007)(186003)(2906002)(53416004)(50466002)(8676002)(76506005)(107886003)(6246003); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR05MB4239; H:P-EXFEND-EQX-02.jnpr.net; FPR:; SPF:SoftFail; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4ccb6607-4eef-4a77-6f72-08d6bf76b3cc X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(4710095)(4711036)(2017052603328); SRVR:SN6PR05MB4239; X-MS-TrafficTypeDiagnostic: SN6PR05MB4239: X-Microsoft-Antispam-PRVS: X-Forefront-PRVS: 0005B05917 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: 4C7o20vyNwbdrI8PHy1yEbqfFmoxfNtHhmLG7dmiehY8VcOy8Xqy/saWZWzIFxPC/qrxg97XbIUc1RSyTRNlCaTLa19TmbNnWCNhY/7dr3Xf0bsYOrYoiZsZNBfYrvCBbct9wK3YDrSW/nue+Vk/lWhfm2gODTb/iiBP/iby0AWAvpwAehlgtzcFKyOLYeMXUP1nvY3Ux3UwaJ5IlZOIkDx65tLaTgoJhuyQxNBtb2XaRGfsuP6Ks7Axmpv2tZQB77SideMbbb20haNwOqQYe+Z+C+H9QIUXYL3eym1xmBc3gOczT1R1++SyYMlEUMwUvWN2+QsS0NGqAkFPtP9dXpUuIGOnJJgHNj0j9zO8d8EvZs76WZc93IYMRNv4xnsBOTv6mc2nZNmIzs2lLq3uyYjWo2EmWuulxVCX5QFDEU8= X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2019 18:43:06.2448 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4ccb6607-4eef-4a77-6f72-08d6bf76b3cc X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.13]; Helo=[P-EXFEND-EQX-02.jnpr.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR05MB4239 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-12_10:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=851 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904120125 X-Rspamd-Queue-Id: C251687500 X-Spamd-Bar: ------ X-Spamd-Result: default: False [-6.98 / 15.00]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 18:43:14 -0000 Herbert J. Skuhra wrote: > On Fri, 12 Apr 2019 03:03:00 +0200, "Simon J. Gerraty" wrote: > > Also sbin/veriexec for mac_veriexec > > > > MFC r343281,344564-344568,344780,344784,345289,346070 > > Partly MFC r344853? Once the semihalf guys MFC their bits, that should apply in toto but would it not be more correct to just run makeman ? From owner-svn-src-stable@freebsd.org Fri Apr 12 19:02:15 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 74FFD15839BB; Fri, 12 Apr 2019 19:02:15 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 19A6B88308; Fri, 12 Apr 2019 19:02:15 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-3.local (unknown [IPv6:2601:648:8880:1e30:8de7:ac87:e932:dc2b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 52A68D9B2; Fri, 12 Apr 2019 19:02:14 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r346145 - in stable/12: contrib/bearssl etc/mtree include lib lib/libbearssl lib/libsecureboot lib/libsecureboot/tests sbin sbin/veriexec share/mk stand stand/common stand/ficl stand/fi... To: "Simon J. Gerraty" , "Herbert J. Skuhra" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org References: <201904120103.x3C1302P053933@repo.freebsd.org> <87o95bf70b.wl-herbert@gojira.at> <14402.1555094583@kaos.jnpr.net> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: <3b07eef9-ef5a-8925-3d64-bb6f2bcfdc6b@FreeBSD.org> Date: Fri, 12 Apr 2019 12:02:12 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <14402.1555094583@kaos.jnpr.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 19A6B88308 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 19:02:15 -0000 On 4/12/19 11:43 AM, Simon J. Gerraty wrote: > Herbert J. Skuhra wrote: > >> On Fri, 12 Apr 2019 03:03:00 +0200, "Simon J. Gerraty" wrote: >>> Also sbin/veriexec for mac_veriexec >>> >>> MFC r343281,344564-344568,344780,344784,345289,346070 >> >> Partly MFC r344853? > > Once the semihalf guys MFC their bits, that should apply in toto > but would it not be more correct to just run makeman ? Yes, I would just run makeman and commit the result. Ideally you'd have included that in the original MFC even, but a followup commit is fine. I don't think it's really useful to try to MFC the 344853 change as-is. -- John Baldwin From owner-svn-src-stable@freebsd.org Fri Apr 12 19:05:43 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B4141583A75; Fri, 12 Apr 2019 19:05:43 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4EF228859A; Fri, 12 Apr 2019 19:05:43 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0FBB725998; Fri, 12 Apr 2019 19:05:43 +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 x3CJ5h9r033531; Fri, 12 Apr 2019 19:05:43 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CJ5hVe033530; Fri, 12 Apr 2019 19:05:43 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201904121905.x3CJ5hVe033530@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 12 Apr 2019 19:05: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: r346163 - stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Commit-Revision: 346163 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4EF228859A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 19:05:44 -0000 Author: gjb Date: Fri Apr 12 19:05:42 2019 New Revision: 346163 URL: https://svnweb.freebsd.org/changeset/base/346163 Log: Prune release notes entries from 11.2-RELEASE. Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:06 2019 (r346162) +++ stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:42 2019 (r346163) @@ -167,291 +167,19 @@ Userland Application Changes - The &man.ln.1; utility has been updated - to correct the behavior of the -F flag by - unlinking an existing directory before creating a symbolic - link. - - The &man.crontab.1; utility has been - updated to include a new flag, -f, which - forces &man.crontab.5; removal when -r is - used non-interactively. - - The &man.newsyslog.8; utility has been - updated to support RFC5424-compliant - messages when rotating system logs. - - The - &man.sesutil.8; utility has been updated to include - &man.libxo.3; support in output. - - The &man.diskinfo.8; utility has been - updated to include two new flags, -s which - displays the disk identity (usually the serial number), and - -p which displays the physical path to the - disk in a storage controller. The -s and - -p flags are mutually exclusive, and cannot - be used with any other flags. - - The &man.diskinfo.8; utility has also - been updated to include device model when the - -s flag is used. - - The &man.top.1; utility has been updated - to allow filtering on multiple user names when the - -U flag is used. - - The &man.bsdgrep.1; utility has been - updated to include a rgrep hard link to - &man.grep.1;, which when used is equivalent to - grep -r. - - The &man.bsdgrep.1; utility has been - updated to address various issues with pattern matching - behavior. - - The &man.umount.8; utility has been - updated to include a new flag, -N, which - is used to forcefully unmount an NFS - mounted filesystem. - - The &man.pw.8; utility has been updated - to properly handle empty secondary group lists as an argument - to the -G flag when using the - usermod subcommand. - - The &man.getconf.1; utility has been - updated to include a new flag, -a, which - prints the name and value of all system or path configuration - values to &man.stdout.4; or optionally a file as an argument - to -a. - - The &man.ps.1; utility has been updated - to reflect realtime and idle priorities in state flags. - - The &man.ps.1; utility has been updated - to display if a process is running with &man.capsicum.4; - capability mode, indicated by C. - - The &man.cpucontrol.8; utility has been - updated to include a new flag, -n, that - disables the default microcode update search path when - used. - - The &man.fsck.ffs.8; utility has been - updated to prevent a filesystem from being reported as - modified when only the timestamp in the superblock is - updated. - - The &man.diskinfo.8; utility has been - updated to display disk rotation rate and if - TRIM/UNMAP is supported - by the disk. - - The &man.rsh.1; utility has been updated - to include a new flag, -N, which disables - shutdown of a socket sending path when used. - - The &man.pfctl.8; utility has been - updated to allow route-to to properly - handle network interfaces with multiple IP - addresses. - - The &man.camcontrol.8; utility has - been updated to include ZAC (Zoned-device - ATA command set) information when the - identify subcommand is used. - - The &man.pw.8; utility has been updated - to correct handling of account expiration periods. - - The &man.mdmfs.8; utility has been - updated to support &man.tmpfs.5;. - - The &man.lint.1; utility is not longer - built by default. The WITH_LINT - &man.src.conf.5; option has been added to enable building and - installing the utility. - - The &man.cpucontrol.8; utility has been - updated to include a new flag, -e, which is - used to re-evaluate reported CPU features - after applying firmware updates. - - - The &man.cpucontrol.8; -e flag should - only be used after microcode update have been applied to all - CPUs in the system, otherwise system - instability may be experienced if processor features are not - identical across the system. - - - The &man.indent.1; utility has been - updated to respect the SIMPLE_BACKUP_SUFFIX - environment variable if set. - - The &man.du.1; utility has been updated - to include the --si long option, which is - used to display output in "human-readable" output in - powers of 1000. - - The &man.df.1; utility has been updated - to include the --si long option, which is - an alias to -H. - - The &man.service.8; utility has been - updated to include a new flag, -j, which is - used to interact with services running within a &man.jail.8;. - The argument to -j can be either the name - or numeric jail ID. - - The &man.fsck.ffs.8; utility has been - updated to exit with a non-zero status when the filesystem is - not repaired. - - The &man.nvmecontrol.8; utility has been - updated to print the full 128 bit value for - SMART data, instead of the hexadecimal - value. - - The &man.nvmecontrol.8; utility has been - updated to include control options for Western Digital® - HGST drives. The new options are cap-diag, - get-crash-dump, - drive-log, purge, and - purge-monitor. - - The &man.dhclient.8; utility has been - updated to be more compliant with RFC2131 - by setting the source address field in the - IP header to 0 when - sending a DHCPREQUEST message to attempt to - obtain a previously-assigned IP - address. - - The &man.pw.8; utility has been updated to - allow the @ and ! - characters in the GECOS field. - - The &man.ps.1; utility has been updated - to include a jail keyword, which when used - will list the name of a &man.jail.8; instead of the numeric - ID. - - The &man.mlx5tool.8; utility has been - added, which is used to manage Connect-X 4 and - Connect-X 5 devices supported by &man.mlx5io.4;. - - The &man.sysctl.8; utility has been - updated to support setting an array of values to nodes. Prior - to this change, &man.sysctl.8; could only set one value to - a node that may return multiple values when queried. - - The &man.ifconfig.8; utility has been - updated to include a random option, which - when used with the ether option, generates - a random MAC address for an - interface. - - The &man.efibootmgr.8; utility has been - added, which is used to manipulate the EFI - boot manager. - - The &man.etdump.1; utility has been - added, which is used to view El Torito boot catalog - information. - - The &man.mount.8; utility has been - updated to allow fallback to mount media read-only if an - attempt to mount write-protected media read-write fails. This - behavior is disabled by default, and can be requested with the - new autoro option. - - The - &man.makefs.8; utility has been updated to default the block - and fragment sizes to match that of &man.newfs.8;, 32K and 4K, - respectively. - - The - &man.pwd.mkdb.8; utility has been updated to emit a notice - that legacy database support will be removed effective - &os; 12 when the -l flag is - used. +   Contributed Software - The &man.libarchive.3; library has been - updated to version 3.3.2. - - The &man.libxo.3; library has been - updated to version 0.8.4. - - Subversion - has been updated to version 1.9.7. - - The &man.dtc.1; utility has been updated - to upstream commit 9ce35ff8. - - The &man.file.1; utility has been - updated to version 5.32. - - OpenSSH has - been updated to version 7.5p1. - - The &man.mandoc.1; utility has been - updated to version 1.14.3. - - The &man.tcpdump.1; utility has been - updated to version 4.9.2. - - The NTP utilities - have been updated to version 4.2.8p11. - - The &man.less.1; utility has been - updated to upstream version v530. - - The bmake - utility has been updated to upstream version 20180222. - - The BSD-licensed - &man.diff.1; utility has been imported from OpenBSD, which is - installed if WITHOUT_GNU_DIFF is set in - &man.src.conf.5;, and otherwise not installed by - default. - - OpenSSL has - been updated to version 1.0.2o. - - The clang, - llvm, - lld, - lldb, and - compiler-rt utilities as well as - libc++ have been updated to upstream - version 6.0.0. - - Timezone data files have been updated to - version 2018e. +   Installation and Configuration Tools - The &man.bsdinstall.8; installer has been - updated to default to UEFI-only - boot. +   @@ -534,15 +262,7 @@ Device Drivers - The &man.mlx5io.4; driver has been added, - providing an interface to manage supported Connect-X 4 - and Connect-X 5 network adapters. - - The &man.cxgbe.4; driver has been updated - to firmware version 1.16.63.0 for T4, T5, and T6 network - adapters. +   @@ -569,27 +289,7 @@ Hardware Support - Support for the TAIO - USB multi-protocol adapter - (TUMPA) has been added. - - The &man.cm.4; and &man.fpa.4; drivers - have been marked as deprecated, and will be removed in - &os; 12. - - The &man.ixgb.4; driver has been marked - as deprecated, and will be removed in &os; 12. - - The &man.nxge.4; driver has been marked - as deprecated, and will be removed in &os; 12. - - The - &man.lmc.4; driver has been marked as deprecated, and will be - removed in &os; 12. - - The &man.vxge.4; driver has been marked - as deprecated, and will be removed in &os; 12. +   @@ -633,13 +333,7 @@ <literal>geom(4)</literal> - The geom_aes, - geom_bsd, geom_mbr, - geom_sunlabel &man.geom.4; classes have - been marked as deprecated. They have been replaced by the - geom_part class in &os; 7, and removed - from the GENERIC kernel configurations in - &os; 8, and will be removed in &os; 12. +   @@ -652,10 +346,7 @@ Boot Loader Changes - The length of GELI - passphrases entered when booting a system with encrypted disks - is now hidden by default. See the configuration options in - &man.geli.8; to restore the previous behavior. +   @@ -732,24 +423,7 @@ Integration Changes - Amazon® EC2™ instances now - keep their clocks synchronized using the Amazon Time Sync - Service, the NTP service internal to the - EC2™ infrastructure. - - The - &arch.i386; memory stick image installer have been changed - to use the MBR partitioning scheme, which - addresses a boot issue from a GPT partition - scheme in non-UEFI mode. - - The - &os; installation ISO medium creation tools - have been updated to generate hybrid images for &arch.amd64;, - supporting both BIOS and - EFI. The ISO image can - now be written to a memory stick as well as being used as - a CD image. +   From owner-svn-src-stable@freebsd.org Fri Apr 12 19:05:46 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E55D81583A81; Fri, 12 Apr 2019 19:05:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8B1C3885A8; Fri, 12 Apr 2019 19:05:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 595CC2599A; Fri, 12 Apr 2019 19:05:45 +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 x3CJ5jfN033620; Fri, 12 Apr 2019 19:05:45 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CJ5j9E033619; Fri, 12 Apr 2019 19:05:45 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201904121905.x3CJ5j9E033619@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 12 Apr 2019 19:05:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r346165 - stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Commit-Revision: 346165 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8B1C3885A8 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.973,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 19:05:46 -0000 Author: gjb Date: Fri Apr 12 19:05:44 2019 New Revision: 346165 URL: https://svnweb.freebsd.org/changeset/base/346165 Log: Release notes documentation: - r334607, xz(1) 5.2.4. - r337817, WPA 2.6. - r337827, file(1) 5.34. - r338414, ELF Tool Chain r3614. - r338795, libarchive(3) 3.3.3. - r339100, lld '-z interpose' support added. - r343079, file(1) dumpdate reporting fix. - r344213, clang (and related) 7.0.1. - r344220, lualoader merged. - r344604, OpenSSL 1.0.2r. - r344884, ntpd 4.2.8p13. - r345670, tzdata 2019a. Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:43 2019 (r346164) +++ stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:44 2019 (r346165) @@ -173,7 +173,51 @@ Contributed Software -   + The &man.xz.1; utility has been updated + to version 5.2.4. + + The WPA + utilities have been updated to version 2.6. + + The &man.file.1; utility has been + updated to version 5.34. + + The + ELF Tool Chain has been updated to + version r3614. + + The &man.libarchive.3; library has been + updated to version 3.3.3, with additional fixes from + upstream. + + The + lld utility has been updated to add + -z interpose, marking the object file as + an interposer. + + The &man.file.1; utility has been + updated to fix incorrect date reporting for &man.dump.8; + files. + + The clang, + llvm, + lld, + lldb, and + compiler-rt utilities as well as + libc++ have been updated to + upstream version 7.0.1. + + The LUA + &man.loader.8; has been merged. + + OpenSSL has + been updated to version 1.0.2r. + + The &man.ntpd.8; utilities have been + updated to version 4.2.8p13. + + Timezone data files have been updated to + version 2019a. From owner-svn-src-stable@freebsd.org Fri Apr 12 19:05:45 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07C391583A7B; Fri, 12 Apr 2019 19:05:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A00078859B; Fri, 12 Apr 2019 19:05:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 38E1A25999; Fri, 12 Apr 2019 19:05:44 +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 x3CJ5i1v033577; Fri, 12 Apr 2019 19:05:44 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CJ5i5S033576; Fri, 12 Apr 2019 19:05:44 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201904121905.x3CJ5i5S033576@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 12 Apr 2019 19:05:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r346164 - stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Commit-Revision: 346164 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A00078859B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 19:05:45 -0000 Author: gjb Date: Fri Apr 12 19:05:43 2019 New Revision: 346164 URL: https://svnweb.freebsd.org/changeset/base/346164 Log: Bump copyright year. Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:42 2019 (r346163) +++ stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:43 2019 (r346164) @@ -27,7 +27,7 @@ - 2018 + 2019 The &os; Documentation Project From owner-svn-src-stable@freebsd.org Fri Apr 12 19:05:47 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8000C1583AA8; Fri, 12 Apr 2019 19:05:47 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1FAA4885D0; Fri, 12 Apr 2019 19:05:47 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7EB0C2599B; Fri, 12 Apr 2019 19:05:46 +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 x3CJ5keu033663; Fri, 12 Apr 2019 19:05:46 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CJ5kqt033662; Fri, 12 Apr 2019 19:05:46 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201904121905.x3CJ5kqt033662@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 12 Apr 2019 19:05:46 +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: r346166 - stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Commit-Revision: 346166 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1FAA4885D0 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.973,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 19:05:47 -0000 Author: gjb Date: Fri Apr 12 19:05:46 2019 New Revision: 346166 URL: https://svnweb.freebsd.org/changeset/base/346166 Log: Release notes documentation: - r340611, rc.initdiskless support for auxiliary RAM. - r340966, rcorder(8) rc.resume support. - r341792, jail.conf(5) definition moved in rc.d/jail script. - r341794, 340.noid periodic(8) no longer decends to jail(8)s. - r342103, PATH now set in system crontab(5). - r343046, rc_service addition to rc.subr(8). - r343469, devd.conf(5) update to prevent duplicate hostapd(8) and wpa_supplicant(8) startup. Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:44 2019 (r346165) +++ stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:46 2019 (r346166) @@ -161,7 +161,14 @@ Userland Configuration Changes -   + The system &man.crontab.5;, + /etc/crontab, has been updated to set + PATH for consistency with the &man.cron.8; + daemon. + + The default &man.devd.conf.5; has been + updated to prevent duplicated &man.hostapd.8; and + &man.wpa.supplicant.8; startup via &man.devd.8;. @@ -230,14 +237,33 @@ <filename class="directory">/etc/rc.d</filename> Scripts -   + Support for auxiliary + RAM has been added to + /etc/rc.initdiskless. + + The &man.rcorder.8; utility has been + updated to add support for + /etc/rc.resume. + + The jail_conf + definition, which defaults to + /etc/jail.conf, has been moved from + the &man.jail.8; &man.rc.8; script to + /etc/defaults/rc.conf. + + The rc_service + variable has been added to &man.rc.subr.8;, which defaults to + the path of the service being executed in case the service + needs to re-invoke itself. <filename class="directory">/etc/periodic</filename> Scripts -   + The &man.periodic.8; weekly + 340.noid script has been updated to + prevent decending into the root directory of jails. From owner-svn-src-stable@freebsd.org Fri Apr 12 19:05:50 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 517A91583AD3; Fri, 12 Apr 2019 19:05:50 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E16A588627; Fri, 12 Apr 2019 19:05:49 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A9A9E2599C; Fri, 12 Apr 2019 19:05:47 +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 x3CJ5l56033706; Fri, 12 Apr 2019 19:05:47 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CJ5l4t033705; Fri, 12 Apr 2019 19:05:47 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201904121905.x3CJ5l4t033705@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 12 Apr 2019 19:05: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: r346167 - stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Commit-Revision: 346167 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E16A588627 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.973,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 19:05:50 -0000 Author: gjb Date: Fri Apr 12 19:05:47 2019 New Revision: 346167 URL: https://svnweb.freebsd.org/changeset/base/346167 Log: Release notes documentation: - r336040, jail(8) name support for cpuset(1), sockstat(1), ipfw(8), and ugidfw(8). - r336328, newfs_msdos(8) '-T' (timestamp) option added. - r337461, ipfw(8) new rule options added. - r338364, dd(1) status=progress support. - r338451, last(1) libxo(3) support. - r339160, diff(1) '-B' and '--ignore-blank-lines' support. - r341758, bhyve(8) support for NumLock, ScrollLock and keypad keys. - r342706, ktrdump(8) '-l' (live) support. - r343538, newfs(8) and tunefs(8) support for '_' in label names. - r343251, gzip(1) '-l' xz(1) support. - r344020, pfctl(8) reference to net.pf.request_maxcount if a table definition fails. - r344490, fdisk(8) support for sectors larger than 2048 bytes. - r344052, newfs(8) and tunefs(8) support for '-' in label names. - r345561, sh(1) '-o pipefail'. - r345878, patch(1) exit successfully if fed a 0-length patch. Remove a stray entry leftover from 11.2-RELEASE. Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:46 2019 (r346166) +++ stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 19:05:47 2019 (r346167) @@ -174,7 +174,60 @@ Userland Application Changes -   + The &man.cpuset.1;, &man.sockstat.1;, + &man.ipfw.8;, and &man.ugidfw.8; utilities have been updated + to support &man.jail.8; names. + + The &man.newfs.msdos.8; utililty has + been updated to include a new flag, -T, + which is used to specify the timestamp for build + reproducibility. + + The &man.last.1; utility has been + updated to include &man.libxo.3; support. + + The &man.dd.1; utility has been updated + to add a new statusoperand, + progress, which reports the current status + on a single line every second. + + The &man.diff.1; utility has been + updated to implement -B and + --ignore-blank-lines support. + + The &man.fdisk.8; utility has been + updated to support sectors larger than 2048 bytes. + + The &man.ktrdump.8; utility has been + updated to include the -l flag which + enables "live" mode when specified. + + The &man.gzip.1; utility has been + updated to add -l support for &man.xz.1; + files. + + The &man.newfs.8; and &man.tunefs.8; + utilities have been updated to allow underscores in label + names. + + The &man.pfctl.8; utility has been + updated to provide more clear output and reference the + net.pf.request_maxcount &man.sysctl.8; + if a defined table is too large. + + The &man.newfs.8; and &man.tunefs.8; + utilities have been updated to allow dashes in label + names. + + The &man.sh.1; utility has been updated + to add the pipefail option which allows + checking the exit status of all commands in a pipeline more + easily. + + The &man.patch.1; utility has been + updated to exit successfully if the input patch file is + zero-length. @@ -365,8 +418,10 @@ Virtualization Support - Support for &man.virtio.console.4; has - been added to &man.bhyve.4;. + Support + for PS/2 scan codes for + NumLock, ScrollLock, and + numerical keypad keys has been added to &man.bhyve.8;. @@ -435,7 +490,10 @@ General Network Changes -   + The &man.ipfw.8; firewall has been + updated to include new rule options, + record-state, set-limit, + and defer-action. From owner-svn-src-stable@freebsd.org Fri Apr 12 20:03:40 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2D221584E7B; Fri, 12 Apr 2019 20:03:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 879978A5B4; Fri, 12 Apr 2019 20:03: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 58F68263A5; Fri, 12 Apr 2019 20:03: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 x3CK3cxo065152; Fri, 12 Apr 2019 20:03:38 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CK3VkH064957; Fri, 12 Apr 2019 20:03:31 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201904122003.x3CK3VkH064957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 12 Apr 2019 20:03:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346168 - in stable/12: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contri... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/builtin... X-SVN-Commit-Revision: 346168 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 879978A5B4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.971,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 20:03:40 -0000 Author: dim Date: Fri Apr 12 20:03:27 2019 New Revision: 346168 URL: https://svnweb.freebsd.org/changeset/base/346168 Log: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.0 final release r356365. MFC r340287 (by emaste): Consolidate gcov entries in OptionalObsoleteFiles Sponsored by: The FreeBSD Foundation MFC r340289 (by emaste): llvm-cov: also install as gcov (if GNU gcov is disabled) llvm-cov provides a gcov-compatible interface when invoked as gcov. Reviewed by: dim, markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D17923 MFC r340296 (by emaste): Move llvm-profdata build into MK_LLVM_COV block llvm-profdata is used with llvm-cov for code coverage (although llvm-cov can also operate independently in a gcov-compatible mode). Although llvm-profdata can be used independently of llvm-cov it makes sense to group these under one option. Also handle these in OptionalObsoleteFiles.inc while here. Sponsored by: The FreeBSD Foundation MFC r340300 (by emaste): libllvm: Move SampleProfWriter to SRCS_MIN It is required by llvm-profdata, now built by default under the LLVM_COV knob. The additional complexity that would come from avoiding building it if CLANG_EXTRAS and LLVM_COV are both disabled is not worth the small savings in build time. Sponsored by: The FreeBSD Foundation MFC r340972 (by emaste): llvm-objdump: initial man page Based on llvm-objdump's online documentation and usage information. This serves as a starting point; additional detail and cleanup still required. Also being submitted upstream in LLVM review D54864. I expect to use this bespoke copy while we have LLVM 6.0 or 7.0 in FreeBSD; when we update to LLVM 8.0 it should be upstream and we will switch to it. PR: 233437 Reviewed by: bcr (man formatting) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18309 MFC r340973 (by emaste): llvm-objdump.1: remove invalid options Some options appear in llvm-objdump's usage information as a side effect of its option parsing implementation and are not actually llvm-objdump options. Reported in LLVM review https://reviews.llvm.org/D54864. Reported by: Fangrui Song Sponsored by: The FreeBSD Foundation MFC r340975 (by emaste): llvm-objdump.1: fix igor / mandoc -Tlint warnings Accidentally omitted from r340972. MFC r341055 (by emaste): llvm-objdump.1: remove more unintentional options Some options come from static constructors in LLVM libraries and are automatically added to llvm's usage output. They're not really supposed to be llvm-objdump options. Reported by: Fangrui Song in LLVM review D54864 Sponsored by: The FreeBSD Foundation MFC r344779: Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to the upstream release_80 branch r355313 (effectively, 8.0.0 rc3). The release will follow very soon, but no more functional changes are expected. Release notes for llvm, clang and lld 8.0.0 will soon be available here: PR: 236062 Relnotes: yes MFC r344798 (by emaste): libllvm: promote WithColor and xxhash to SRCS_MIN The armv6 build failed in CI due to missing symbols (from these two source files) in the bootstrap Clang. This affected only armv6 because other Clang-using archs are using LLD as the bootstrap linker, and thus include SRCS_MIW via LLD_BOOTSTRAP. Reported by: CI, via lwhsu Sponsored by: The FreeBSD Foundation MFC r344825: Add a few missed files to the MK_LLVM_TARGET_BPF=yes case, otherwise clang and various other executables will fail to link with undefined symbols. Reported by: O. Hartmann MFC r344852: Put in a temporary workaround for what is likely a gcc 6 bug (it does not occur with gcc 7 or later). This should prevent the following error from breaking the head-amd64-gcc CI builds: In file included from /workspace/src/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfo.cpp:14:0: /workspace/src/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h:128:54: error: 'template lldb_private::MemoryRegionInfos::MemoryRegionInfos(_InputIterator, _InputIterator, const allocator_type&)' inherited from 'std::__1::vector' using std::vector::vector; ^~~~~~ /workspace/src/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h:128:54: error: conflicts with version inherited from 'std::__1::vector' Reported by: CI MFC r344896: Pull in r354937 from upstream clang trunk (by Jörg Sonnenberger): Fix inline assembler constraint validation The current constraint logic is both too lax and too strict. It fails for input outside the [INT_MIN..INT_MAX] range, but it also implicitly accepts 0 as value when it should not. Adjust logic to handle both correctly. Differential Revision: https://reviews.llvm.org/D58649 Pull in r355491 from upstream clang trunk (by Hans Wennborg): Inline asm constraints: allow ICE-like pointers for the "n" constraint (PR40890) Apparently GCC allows this, and there's code relying on it (see bug). The idea is to allow expression that would have been allowed if they were cast to int. So I based the code on how such a cast would be done (the CK_PointerToIntegral case in IntExprEvaluator::VisitCastExpr()). Differential Revision: https://reviews.llvm.org/D58821 These should fix assertions and errors when using the inline assembly "n" constraint in certain ways. In case of devel/valgrind, a pointer was used as the input for the constraint, which lead to "Assertion failed: (isInt() && "Invalid accessor"), function getInt". In case of math/secp256k1, a very large integer value was used as input for the constraint, which lead to "error: value '4624529908474429119' out of range for constraint 'n'". PR: 236216, 236194 MFC r344951: Merge llvm, clang, compiler-rt, libc++, lld, and lldb release_80 branch r355677 (effectively, 8.0.0 rc4), resolve conflicts, and bump version numbers. PR: 236062 MFC r345018: Merge LLVM libunwind trunk r351319, from just before upstream's release_80 branch point. Afterwards, we will merge the rest of the changes in the actual release_80 branch. PR: 236062 MFC r345019: Merge LLVM libunwind release_80 branch r355677 (effectively, 8.0.0 rc4). PR: 236062 MFC r345021: Pull in r355854 from upstream llvm trunk (by Jonas Paulsson): [RegAlloc] Avoid compile time regression with multiple copy hints. As a fix for https://bugs.llvm.org/show_bug.cgi?id=40986 ("excessive compile time building opencollada"), this patch makes sure that no phys reg is hinted more than once from getRegAllocationHints(). This handles the case were many virtual registers are assigned to the same physreg. The previous compile time fix (r343686) in weightCalcHelper() only made sure that physical/virtual registers are passed no more than once to addRegAllocationHint(). Review: Dimitry Andric, Quentin Colombet https://reviews.llvm.org/D59201 This should fix a hang when compiling certain generated .cpp files in the graphics/opencollada port. PR: 236313 MFC r345068 (by jhb): Move libunwind out of contrib/llvm/projects. Move LLVM's libunwind to its own contrib/ directory similar to other runtime libraries like libc++ and libcxxrt. Reviewed by: dim, emaste Differential Revision: https://reviews.freebsd.org/D19534 MFC r345073: Revert r308867 (which was originally committed in the clang390-import project branch): Work around LLVM PR30879, which is about a bad interaction between X86 Call Frame Optimization on i386 and libunwind, by disallowing the optimization for i386-freebsd12. This should fix some instances of broken exception handling when frame pointers are omitted, in particular some unittests run during the build of editors/libreoffice. This hack will be removed as soon as upstream has implemented a more permanent fix for this problem. And indeed, after r345018 and r345019, which updated LLVM libunwind to the most recent version, the above workaround is no longer needed. The upstream commit which fixed this is: https://llvm.org/viewvc/llvm-project?view=revision&revision=292723 Specifically, 32 bit (i386-freebsd) executables optimized with omitted frame pointers and Call Frame Optimization should now behave correctly when a C++ exception is thrown, and the stack is unwound. Upstream PR: https://llvm.org/bugs/show_bug.cgi?id=30879 PR: 236062 MFC r345152: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, and lldb release_80 branch r356034 (effectively, 8.0.0 rc5), resolve conflicts, and bump version numbers. PR: 236062 MFC r345231: Add LLVM openmp trunk r351319 (just before the release_80 branch point) to contrib/llvm. This is not yet connected to the build, the glue for that will come in a follow-up commit. PR: 236062 MFC r345232: Bootstrap svn:mergeinfo on contrib/openmp. PR: 236062 MFC r345233: Merge openmp release_80 branch r356034 (effectively, 8.0.0 rc5). PR: 236062 MFC r345234: Add openmp __kmp_gettid() wrapper, using pthread_getthreadid_np(3). This has also been submitted upstream. PR: 236062 MFC r345283: Enable building libomp.so for 32-bit x86. This is done by selectively enabling the functions that save and restore MXCSR, since access to this register requires SSE support. Note that you may run into other issues with OpenMP on i386, since this *not* yet supported upstream, and certainly not extensively tested. PR: 236062, 236582 MFC r345345: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.0 final release r356365. There were no functional changes since the most recent merge, of 8.0.0 rc5. Release notes for llvm, clang, lld and libc++ 8.0.0 are now available: https://llvm.org/releases/8.0.0/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/lld/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/projects/libcxx/docs/ReleaseNotes.html PR: 236062 MFC r345349: Pull in r352826 from upstream lld trunk (by Fangrui Song): [ELF] Support --{,no-}allow-shlib-undefined Summary: In ld.bfd/gold, --no-allow-shlib-undefined is the default when linking an executable. This patch implements a check to error on undefined symbols in a shared object, if all of its DT_NEEDED entries are seen. Our approach resembles the one used in gold, achieves a good balance to be useful but not too smart (ld.bfd traces all DSOs and emulates the behavior of a dynamic linker to catch more cases). The error is issued based on the symbol table, different from undefined reference errors issued for relocations. It is most effective when there are DSOs that were not linked with -z defs (e.g. when static sanitizers runtime is used). gold has a comment that some system libraries on GNU/Linux may have spurious undefined references and thus system libraries should be excluded (https://sourceware.org/bugzilla/show_bug.cgi?id=6811). The story may have changed now but we make --allow-shlib-undefined the default for now. Its interaction with -shared can be discussed in the future. Reviewers: ruiu, grimar, pcc, espindola Reviewed By: ruiu Subscribers: joerg, emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D57385 Pull in r352943 from upstream lld trunk (by Fangrui Song): [ELF] Default to --no-allow-shlib-undefined for executables Summary: This follows the ld.bfd/gold behavior. The error check is useful as it captures a common type of ld.so undefined symbol errors as link-time errors: // a.cc => a.so (not linked with -z defs) void f(); // f is undefined void g() { f(); } // b.cc => executable with a DT_NEEDED entry on a.so void g(); int main() { g(); } // ld.so errors when g() is executed (lazy binding) or when the program is started (-z now) // symbol lookup error: ... undefined symbol: f Reviewers: ruiu, grimar, pcc, espindola Reviewed By: ruiu Subscribers: llvm-commits, emaste, arichardson Tags: #llvm Differential Revision: https://reviews.llvm.org/D57569 Together, these add support for --no-allow-shlib-undefined, and make it the default for executables, so they will fail to link if any symbols from needed shared libraries are undefined. Reported by: jbeich PR: 236062, 236141 MFC r345449: Pull in r356809 from upstream llvm trunk (by Eli Friedman): [ARM] Don't form "ands" when it isn't scheduled correctly. In r322972/r323136, the iteration here was changed to catch cases at the beginning of a basic block... but we accidentally deleted an important safety check. Restore that check to the way it was. Fixes https://bugs.llvm.org/show_bug.cgi?id=41116 Differential Revision: https://reviews.llvm.org/D59680 This should fix "Assertion failed: (LiveCPSR && "CPSR liveness tracking is wrong!"), function UpdateCPSRUse" errors when building the devel/xwpe port for armv7. PR: 236062, 236568 Added: stable/12/contrib/compiler-rt/lib/builtins/ppc/fixunstfti.c - copied unchanged from r344779, head/contrib/compiler-rt/lib/builtins/ppc/fixunstfti.c stable/12/contrib/compiler-rt/lib/builtins/ppc/floattitf.c - copied unchanged from r344779, head/contrib/compiler-rt/lib/builtins/ppc/floattitf.c stable/12/contrib/compiler-rt/lib/esan/esan_sideline_bsd.cpp - copied unchanged from r344779, head/contrib/compiler-rt/lib/esan/esan_sideline_bsd.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltins.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltins.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltinsMsvc.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltinsMsvc.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp - copied unchanged from r344779, head/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_checks.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/hwasan/hwasan_checks.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cc - copied unchanged from r344779, head/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cc - copied unchanged from r344779, head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_local_address_space_view.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_local_address_space_view.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cc - copied unchanged from r344779, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cc - copied unchanged from r344779, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cc - copied unchanged from r344779, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_controller.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/xray/xray_fdr_controller.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_log_writer.h - copied unchanged from r344779, head/contrib/compiler-rt/lib/xray/xray_fdr_log_writer.h stable/12/contrib/libc++/include/bit - copied unchanged from r344779, head/contrib/libc++/include/bit - copied from r345068, head/contrib/libunwind/ stable/12/contrib/llvm/include/llvm-c/Error.h - copied unchanged from r344779, head/contrib/llvm/include/llvm-c/Error.h stable/12/contrib/llvm/include/llvm-c/OptRemarks.h - copied unchanged from r344779, head/contrib/llvm/include/llvm-c/OptRemarks.h stable/12/contrib/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h - copied unchanged from r344779, head/contrib/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h stable/12/contrib/llvm/include/llvm-c/Transforms/Coroutines.h - copied unchanged from r344779, head/contrib/llvm/include/llvm-c/Transforms/Coroutines.h stable/12/contrib/llvm/include/llvm/ADT/bit.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/ADT/bit.h stable/12/contrib/llvm/include/llvm/Analysis/GuardUtils.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Analysis/GuardUtils.h stable/12/contrib/llvm/include/llvm/Analysis/IVDescriptors.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Analysis/IVDescriptors.h stable/12/contrib/llvm/include/llvm/Analysis/IndirectCallVisitor.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Analysis/IndirectCallVisitor.h stable/12/contrib/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h stable/12/contrib/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/OrderedInstructions.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Analysis/OrderedInstructions.h stable/12/contrib/llvm/include/llvm/Analysis/StackSafetyAnalysis.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Analysis/StackSafetyAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/SyncDependenceAnalysis.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Analysis/SyncDependenceAnalysis.h stable/12/contrib/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h stable/12/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/MSP430.def - copied unchanged from r344779, head/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/MSP430.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPack.def - copied unchanged from r344779, head/contrib/llvm/include/llvm/BinaryFormat/MsgPack.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPack.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/BinaryFormat/MsgPack.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackReader.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/BinaryFormat/MsgPackReader.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackTypes.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/BinaryFormat/MsgPackTypes.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackWriter.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/BinaryFormat/MsgPackWriter.h stable/12/contrib/llvm/include/llvm/CodeGen/AsmPrinterHandler.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/CodeGen/AsmPrinterHandler.h stable/12/contrib/llvm/include/llvm/CodeGen/BuiltinGCs.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/CodeGen/BuiltinGCs.h stable/12/contrib/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h stable/12/contrib/llvm/include/llvm/CodeGen/DebugHandlerBase.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/CodeGen/DebugHandlerBase.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h stable/12/contrib/llvm/include/llvm/CodeGen/MachinePipeliner.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/CodeGen/MachinePipeliner.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h stable/12/contrib/llvm/include/llvm/Demangle/Compiler.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Demangle/Compiler.h stable/12/contrib/llvm/include/llvm/Demangle/ItaniumDemangle.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Demangle/ItaniumDemangle.h stable/12/contrib/llvm/include/llvm/Demangle/MicrosoftDemangle.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Demangle/MicrosoftDemangle.h stable/12/contrib/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h stable/12/contrib/llvm/include/llvm/Demangle/StringView.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Demangle/StringView.h stable/12/contrib/llvm/include/llvm/Demangle/Utility.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Demangle/Utility.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h stable/12/contrib/llvm/include/llvm/IR/CFGDiff.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/IR/CFGDiff.h stable/12/contrib/llvm/include/llvm/IR/IntrinsicsRISCV.td - copied unchanged from r344779, head/contrib/llvm/include/llvm/IR/IntrinsicsRISCV.td stable/12/contrib/llvm/include/llvm/IR/PassInstrumentation.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/IR/PassInstrumentation.h stable/12/contrib/llvm/include/llvm/IR/PassTimingInfo.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/IR/PassTimingInfo.h stable/12/contrib/llvm/include/llvm/LTO/SummaryBasedOptimizations.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/LTO/SummaryBasedOptimizations.h stable/12/contrib/llvm/include/llvm/MCA/ - copied from r344779, head/contrib/llvm/include/llvm/MCA/ stable/12/contrib/llvm/include/llvm/Passes/StandardInstrumentations.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Passes/StandardInstrumentations.h stable/12/contrib/llvm/include/llvm/Support/AArch64TargetParser.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/AArch64TargetParser.h stable/12/contrib/llvm/include/llvm/Support/ARMTargetParser.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/ARMTargetParser.h stable/12/contrib/llvm/include/llvm/Support/BuryPointer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/BuryPointer.h stable/12/contrib/llvm/include/llvm/Support/CFGUpdate.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/CFGUpdate.h stable/12/contrib/llvm/include/llvm/Support/FileCheck.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/FileCheck.h stable/12/contrib/llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h stable/12/contrib/llvm/include/llvm/Support/MSVCErrorWorkarounds.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/MSVCErrorWorkarounds.h stable/12/contrib/llvm/include/llvm/Support/SymbolRemappingReader.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/SymbolRemappingReader.h stable/12/contrib/llvm/include/llvm/Support/VirtualFileSystem.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Support/VirtualFileSystem.h stable/12/contrib/llvm/include/llvm/Target/TargetPfmCounters.td - copied unchanged from r344779, head/contrib/llvm/include/llvm/Target/TargetPfmCounters.td stable/12/contrib/llvm/include/llvm/TextAPI/ - copied from r344779, head/contrib/llvm/include/llvm/TextAPI/ stable/12/contrib/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Scalarizer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Scalar/Scalarizer.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/GuardUtils.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Utils/GuardUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h stable/12/contrib/llvm/include/llvm/XRay/BlockIndexer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/BlockIndexer.h stable/12/contrib/llvm/include/llvm/XRay/BlockPrinter.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/BlockPrinter.h stable/12/contrib/llvm/include/llvm/XRay/BlockVerifier.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/BlockVerifier.h stable/12/contrib/llvm/include/llvm/XRay/FDRLogBuilder.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/FDRLogBuilder.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecordConsumer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/FDRRecordConsumer.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecordProducer.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/FDRRecordProducer.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecords.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/FDRRecords.h stable/12/contrib/llvm/include/llvm/XRay/FDRTraceExpander.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/FDRTraceExpander.h stable/12/contrib/llvm/include/llvm/XRay/FDRTraceWriter.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/FDRTraceWriter.h stable/12/contrib/llvm/include/llvm/XRay/FileHeaderReader.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/FileHeaderReader.h stable/12/contrib/llvm/include/llvm/XRay/Profile.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/Profile.h stable/12/contrib/llvm/include/llvm/XRay/RecordPrinter.h - copied unchanged from r344779, head/contrib/llvm/include/llvm/XRay/RecordPrinter.h stable/12/contrib/llvm/include/llvm/module.extern.modulemap - copied unchanged from r344779, head/contrib/llvm/include/llvm/module.extern.modulemap stable/12/contrib/llvm/include/llvm/module.install.modulemap - copied unchanged from r344779, head/contrib/llvm/include/llvm/module.install.modulemap stable/12/contrib/llvm/lib/Analysis/GuardUtils.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Analysis/GuardUtils.cpp stable/12/contrib/llvm/lib/Analysis/IVDescriptors.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Analysis/IVDescriptors.cpp stable/12/contrib/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp stable/12/contrib/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/OrderedInstructions.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Analysis/OrderedInstructions.cpp stable/12/contrib/llvm/lib/Analysis/StackSafetyAnalysis.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Analysis/StackSafetyAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/SyncDependenceAnalysis.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Analysis/SyncDependenceAnalysis.cpp stable/12/contrib/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp - copied unchanged from r344779, head/contrib/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackReader.cpp - copied unchanged from r344779, head/contrib/llvm/lib/BinaryFormat/MsgPackReader.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackTypes.cpp - copied unchanged from r344779, head/contrib/llvm/lib/BinaryFormat/MsgPackTypes.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackWriter.cpp - copied unchanged from r344779, head/contrib/llvm/lib/BinaryFormat/MsgPackWriter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp - copied unchanged from r344779, head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.cpp - copied unchanged from r344779, head/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.h - copied unchanged from r344779, head/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.h stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp - copied unchanged from r344779, head/contrib/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp - copied unchanged from r344779, head/contrib/llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp - copied unchanged from r344779, head/contrib/llvm/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp stable/12/contrib/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp - copied unchanged from r344779, head/contrib/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAFrameData.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAFrameData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeTypedef.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeTypedef.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeVTShape.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeVTShape.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp - copied unchanged from r344779, head/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp stable/12/contrib/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp - copied unchanged from r344779, head/contrib/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp - copied unchanged from r344779, head/contrib/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp - copied unchanged from r344779, head/contrib/llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp stable/12/contrib/llvm/lib/IR/PassInstrumentation.cpp - copied unchanged from r344779, head/contrib/llvm/lib/IR/PassInstrumentation.cpp stable/12/contrib/llvm/lib/IR/PassTimingInfo.cpp - copied unchanged from r344779, head/contrib/llvm/lib/IR/PassTimingInfo.cpp stable/12/contrib/llvm/lib/LTO/SummaryBasedOptimizations.cpp - copied unchanged from r344779, head/contrib/llvm/lib/LTO/SummaryBasedOptimizations.cpp stable/12/contrib/llvm/lib/MC/MCParser/WasmAsmParser.cpp - copied unchanged from r344779, head/contrib/llvm/lib/MC/MCParser/WasmAsmParser.cpp stable/12/contrib/llvm/lib/MCA/ - copied from r344779, head/contrib/llvm/lib/MCA/ stable/12/contrib/llvm/lib/OptRemarks/ - copied from r344779, head/contrib/llvm/lib/OptRemarks/ stable/12/contrib/llvm/lib/Passes/StandardInstrumentations.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Passes/StandardInstrumentations.cpp stable/12/contrib/llvm/lib/Support/AArch64TargetParser.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Support/AArch64TargetParser.cpp stable/12/contrib/llvm/lib/Support/ARMTargetParser.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Support/ARMTargetParser.cpp stable/12/contrib/llvm/lib/Support/BuryPointer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Support/BuryPointer.cpp stable/12/contrib/llvm/lib/Support/FileCheck.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Support/FileCheck.cpp stable/12/contrib/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp stable/12/contrib/llvm/lib/Support/SymbolRemappingReader.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Support/SymbolRemappingReader.cpp stable/12/contrib/llvm/lib/Support/VirtualFileSystem.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Support/VirtualFileSystem.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64PfmCounters.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/AArch64/AArch64PfmCounters.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedPredicates.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/AArch64/AArch64SchedPredicates.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFixFunctionBitcasts.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFixFunctionBitcasts.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixupVectorISel.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AMDGPU/SIFixupVectorISel.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIModeRegister.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/AMDGPU/SIModeRegister.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFMIChecking.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/BPF/BPFMIChecking.cpp stable/12/contrib/llvm/lib/Target/BPF/BTF.def - copied unchanged from r344779, head/contrib/llvm/lib/Target/BPF/BTF.def stable/12/contrib/llvm/lib/Target/BPF/BTF.h - copied unchanged from r344779, head/contrib/llvm/lib/Target/BPF/BTF.h stable/12/contrib/llvm/lib/Target/BPF/BTFDebug.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/BPF/BTFDebug.cpp stable/12/contrib/llvm/lib/Target/BPF/BTFDebug.h - copied unchanged from r344779, head/contrib/llvm/lib/Target/BPF/BTFDebug.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h - copied unchanged from r344779, head/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV5.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV5.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV66.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV66.td stable/12/contrib/llvm/lib/Target/MSP430/AsmParser/ - copied from r344779, head/contrib/llvm/lib/Target/MSP430/AsmParser/ stable/12/contrib/llvm/lib/Target/MSP430/Disassembler/ - copied from r344779, head/contrib/llvm/lib/Target/MSP430/Disassembler/ stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430FixupKinds.h - copied unchanged from r344779, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430FixupKinds.h stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h - copied unchanged from r344779, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCPfmCounters.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/PowerPC/PPCPfmCounters.td stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h - copied unchanged from r344779, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVSystemOperands.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/RISCV/RISCVSystemOperands.td stable/12/contrib/llvm/lib/Target/RISCV/Utils/ - copied from r344779, head/contrib/llvm/lib/Target/RISCV/Utils/ stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h - copied unchanged from r344779, head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h - copied unchanged from r344779, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp stable/12/contrib/llvm/lib/Target/X86/X86CondBrFolding.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/X86/X86CondBrFolding.cpp stable/12/contrib/llvm/lib/Target/X86/X86DiscriminateMemOps.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/X86/X86DiscriminateMemOps.cpp stable/12/contrib/llvm/lib/Target/X86/X86InsertPrefetch.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Target/X86/X86InsertPrefetch.cpp stable/12/contrib/llvm/lib/Target/X86/X86ScheduleBdVer2.td - copied unchanged from r344779, head/contrib/llvm/lib/Target/X86/X86ScheduleBdVer2.td stable/12/contrib/llvm/lib/Testing/Support/SupportHelpers.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Testing/Support/SupportHelpers.cpp stable/12/contrib/llvm/lib/TextAPI/ - copied from r344779, head/contrib/llvm/lib/TextAPI/ stable/12/contrib/llvm/lib/Transforms/IPO/HotColdSplitting.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Transforms/IPO/HotColdSplitting.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp stable/12/contrib/llvm/lib/Transforms/Utils/GuardUtils.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Transforms/Utils/GuardUtils.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp - copied unchanged from r344779, head/contrib/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp stable/12/contrib/llvm/lib/XRay/BlockIndexer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/BlockIndexer.cpp stable/12/contrib/llvm/lib/XRay/BlockPrinter.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/BlockPrinter.cpp stable/12/contrib/llvm/lib/XRay/BlockVerifier.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/BlockVerifier.cpp stable/12/contrib/llvm/lib/XRay/FDRRecordProducer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/FDRRecordProducer.cpp stable/12/contrib/llvm/lib/XRay/FDRRecords.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/FDRRecords.cpp stable/12/contrib/llvm/lib/XRay/FDRTraceExpander.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/FDRTraceExpander.cpp stable/12/contrib/llvm/lib/XRay/FDRTraceWriter.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/FDRTraceWriter.cpp stable/12/contrib/llvm/lib/XRay/FileHeaderReader.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/FileHeaderReader.cpp stable/12/contrib/llvm/lib/XRay/LogBuilderConsumer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/LogBuilderConsumer.cpp stable/12/contrib/llvm/lib/XRay/Profile.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/Profile.cpp stable/12/contrib/llvm/lib/XRay/RecordInitializer.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/RecordInitializer.cpp stable/12/contrib/llvm/lib/XRay/RecordPrinter.cpp - copied unchanged from r344779, head/contrib/llvm/lib/XRay/RecordPrinter.cpp stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTContextAllocate.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/AST/ASTContextAllocate.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTDumperUtils.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/AST/ASTDumperUtils.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTImporterLookupTable.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/AST/ASTImporterLookupTable.h stable/12/contrib/llvm/tools/clang/include/clang/AST/AttrVisitor.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/AST/AttrVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/FormatString.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/AST/FormatString.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OSLog.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/AST/OSLog.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateArgumentVisitor.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/AST/TemplateArgumentVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TextNodeDumper.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/AST/TextNodeDumper.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/SelectorExtras.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Analysis/SelectorExtras.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.def - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAST.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAST.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysis.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysis.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticComment.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticComment.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTU.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTU.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriver.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriver.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontend.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontend.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLex.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLex.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParse.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParse.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoring.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoring.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSema.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSema.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerialization.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerialization.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/FixedPoint.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/FixedPoint.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/MSP430Target.def - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/MSP430Target.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensionTypes.def - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensionTypes.def stable/12/contrib/llvm/tools/clang/include/clang/Driver/DarwinSDKInfo.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Driver/DarwinSDKInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/LoopHint.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Parse/LoopHint.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/PCHContainerOperations.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/Serialization/PCHContainerOperations.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/RetainSummaryManager.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/RetainSummaryManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h stable/12/contrib/llvm/tools/clang/lib/AST/ASTImporterLookupTable.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/AST/ASTImporterLookupTable.cpp stable/12/contrib/llvm/tools/clang/lib/AST/FormatString.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/AST/FormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/FormatStringParsing.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/AST/FormatStringParsing.h stable/12/contrib/llvm/tools/clang/lib/AST/OSLog.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/AST/OSLog.cpp stable/12/contrib/llvm/tools/clang/lib/AST/PrintfFormatString.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/AST/PrintfFormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ScanfFormatString.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/AST/ScanfFormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TextNodeDumper.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/AST/TextNodeDumper.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/CodeGenOptions.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Basic/CodeGenOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FixedPoint.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Basic/FixedPoint.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.h stable/12/contrib/llvm/tools/clang/lib/Driver/DarwinSDKInfo.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Driver/DarwinSDKInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.h - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.h stable/12/contrib/llvm/tools/clang/lib/Serialization/PCHContainerOperations.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/Serialization/PCHContainerOperations.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/ - copied from r344779, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/ stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/ - copied from r344779, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/ stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TaintManager.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TaintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp - copied unchanged from r344779, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/MSP430.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lld/ELF/Arch/MSP430.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/RISCV.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lld/ELF/Arch/RISCV.cpp stable/12/contrib/llvm/tools/lld/ELF/DWARF.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lld/ELF/DWARF.cpp stable/12/contrib/llvm/tools/lld/ELF/DWARF.h - copied unchanged from r344779, head/contrib/llvm/tools/lld/ELF/DWARF.h stable/12/contrib/llvm/tools/lld/docs/missingkeyfunction.rst - copied unchanged from r344779, head/contrib/llvm/tools/lld/docs/missingkeyfunction.rst stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBInitializerOptions.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/API/SBInitializerOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Highlighter.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Core/Highlighter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/RichManglingContext.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Core/RichManglingContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/SafeMachO.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Host/SafeMachO.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameRecognizer.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameRecognizer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Broadcaster.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Utility/Broadcaster.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Event.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Utility/Event.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Listener.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Utility/Listener.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Predicate.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Utility/Predicate.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/RegisterValue.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Utility/RegisterValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Reproducer.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Utility/Reproducer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Scalar.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Utility/Scalar.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/State.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/include/lldb/Utility/State.h stable/12/contrib/llvm/tools/lldb/source/API/SBInitializerOptions.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/API/SBInitializerOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverScripted.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverScripted.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.h stable/12/contrib/llvm/tools/lldb/source/Core/Highlighter.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Core/Highlighter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/RichManglingContext.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Core/RichManglingContext.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ - copied from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ - copied from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ - copied from r344779, head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.h - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/ - copied from r344779, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/ stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/ - copied from r344779, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/ stable/12/contrib/llvm/tools/lldb/source/Target/StackFrameRecognizer.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Target/StackFrameRecognizer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Broadcaster.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Utility/Broadcaster.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Event.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Utility/Event.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Listener.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Utility/Listener.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/RegisterValue.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Utility/RegisterValue.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Reproducer.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Utility/Reproducer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Scalar.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Utility/Scalar.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/State.cpp - copied unchanged from r344779, head/contrib/llvm/tools/lldb/source/Utility/State.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Options.td - copied unchanged from r344779, head/contrib/llvm/tools/lldb/tools/driver/Options.td stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.cpp - copied unchanged from r344779, head/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.h - copied unchanged from r344779, head/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.h stable/12/contrib/llvm/tools/llvm-cxxmap/ - copied from r344779, head/contrib/llvm/tools/llvm-cxxmap/ stable/12/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.cpp - copied unchanged from r344779, head/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.h - copied unchanged from r344779, head/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.h stable/12/contrib/llvm/tools/llvm-mca/Views/ - copied from r344779, head/contrib/llvm/tools/llvm-mca/Views/ stable/12/contrib/llvm/tools/llvm-mca/include/ - copied from r344779, head/contrib/llvm/tools/llvm-mca/include/ stable/12/contrib/llvm/tools/llvm-mca/lib/ - copied from r344779, head/contrib/llvm/tools/llvm-mca/lib/ stable/12/contrib/llvm/tools/llvm-objcopy/Buffer.cpp - copied unchanged from r344779, head/contrib/llvm/tools/llvm-objcopy/Buffer.cpp stable/12/contrib/llvm/tools/llvm-objcopy/Buffer.h - copied unchanged from r344779, head/contrib/llvm/tools/llvm-objcopy/Buffer.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/ - copied from r344779, head/contrib/llvm/tools/llvm-objcopy/COFF/ stable/12/contrib/llvm/tools/llvm-objcopy/CopyConfig.cpp - copied unchanged from r344779, head/contrib/llvm/tools/llvm-objcopy/CopyConfig.cpp stable/12/contrib/llvm/tools/llvm-objcopy/CopyConfig.h - copied unchanged from r344779, head/contrib/llvm/tools/llvm-objcopy/CopyConfig.h stable/12/contrib/llvm/tools/llvm-objcopy/ELF/ - copied from r344779, head/contrib/llvm/tools/llvm-objcopy/ELF/ stable/12/contrib/llvm/tools/llvm-xray/xray-fdr-dump.cpp - copied unchanged from r344779, head/contrib/llvm/tools/llvm-xray/xray-fdr-dump.cpp stable/12/contrib/llvm/utils/TableGen/ExegesisEmitter.cpp - copied unchanged from r344779, head/contrib/llvm/utils/TableGen/ExegesisEmitter.cpp stable/12/contrib/openmp/ - copied from r345231, head/contrib/openmp/ stable/12/usr.bin/clang/llvm-objdump/llvm-objdump.1 - copied, changed from r340972, head/usr.bin/clang/llvm-objdump/llvm-objdump.1 Directory Properties: stable/12/contrib/libunwind/ (props changed) Deleted: stable/12/contrib/compiler-rt/lib/builtins/arm64/ stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsDlsymWin.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeakAlias.cpp stable/12/contrib/libc++/include/experimental/dynarray stable/12/contrib/libc++/src/experimental/filesystem/ stable/12/contrib/llvm/include/llvm/Analysis/IndirectCallSiteVisitor.h stable/12/contrib/llvm/include/llvm/CodeGen/GCs.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeBuiltinSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h stable/12/contrib/llvm/include/llvm/IR/TypeBuilder.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/OrderedInstructions.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.h stable/12/contrib/llvm/lib/CodeGen/MachinePassRegistry.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeBuiltinSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumSymbol.cpp stable/12/contrib/llvm/lib/Demangle/Compiler.h stable/12/contrib/llvm/lib/Demangle/StringView.h stable/12/contrib/llvm/lib/Demangle/Utility.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsics.td stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGatherPacketize.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV4.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV3.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV4.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV4.td stable/12/contrib/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.cpp stable/12/contrib/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.h stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.cpp stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.h stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2BaseInfo.h stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2FixupKinds.h stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.h stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.cpp stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.h stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.h stable/12/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2TargetStreamer.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2.td stable/12/contrib/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2CallingConv.td stable/12/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2InstrFormats.td stable/12/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.td stable/12/contrib/llvm/lib/Target/Nios2/Nios2MCInstLower.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.td stable/12/contrib/llvm/lib/Target/Nios2/Nios2Schedule.td stable/12/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.h stable/12/contrib/llvm/lib/Target/Nios2/Nios2TargetStreamer.h stable/12/contrib/llvm/lib/Target/Nios2/TargetInfo/Nios2TargetInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetStreamer.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp stable/12/contrib/llvm/lib/Transforms/Utils/OrderedInstructions.cpp stable/12/contrib/llvm/projects/ stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/OSLog.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNios2.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PTHManager.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/LoopHint.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTContext.h stable/12/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/FormatStringParsing.h stable/12/contrib/llvm/tools/clang/lib/Analysis/OSLog.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/PseudoConstantAnalysis.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Nios2.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Nios2.h stable/12/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Arch/ stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCV.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCV.h stable/12/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CodeGenOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/PCHContainerOperations.cpp stable/12/contrib/llvm/tools/clang/lib/Headers/cuda/ stable/12/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangCheckers.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangSACheckers.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SelectorExtras.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Inclusions/CMakeLists.txt stable/12/contrib/llvm/tools/lld/ELF/GdbIndex.cpp stable/12/contrib/llvm/tools/lld/ELF/GdbIndex.h stable/12/contrib/llvm/tools/lld/include/lld/Core/TODO.txt stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Broadcaster.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Event.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Listener.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/RegisterValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Scalar.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/State.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Predicate.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/SoftwareBreakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/GoASTContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/JavaASTContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/OCamlASTContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Either.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/FastDemangle.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Range.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SafeMachO.h stable/12/contrib/llvm/tools/lldb/source/Core/Broadcaster.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Event.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Listener.cpp stable/12/contrib/llvm/tools/lldb/source/Core/RegisterValue.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Scalar.cpp stable/12/contrib/llvm/tools/lldb/source/Core/State.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/CMakeLists.txt stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoAST.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoLexer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoLexer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoUserExpression.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/gen_go_ast.py stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/CMakeLists.txt stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoFormatterFunctions.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoFormatterFunctions.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/OCamlLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/OCamlLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/OperatingSystemGo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/OperatingSystemGo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.h stable/12/contrib/llvm/tools/lldb/source/Symbol/GoASTContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/JavaASTContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/OCamlASTContext.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/FastDemangle.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Range.cpp stable/12/contrib/llvm/tools/llvm-mca/Context.cpp stable/12/contrib/llvm/tools/llvm-mca/Context.h stable/12/contrib/llvm/tools/llvm-mca/DispatchStage.cpp stable/12/contrib/llvm/tools/llvm-mca/DispatchStage.h stable/12/contrib/llvm/tools/llvm-mca/DispatchStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/DispatchStatistics.h stable/12/contrib/llvm/tools/llvm-mca/ExecuteStage.cpp stable/12/contrib/llvm/tools/llvm-mca/ExecuteStage.h stable/12/contrib/llvm/tools/llvm-mca/FetchStage.cpp stable/12/contrib/llvm/tools/llvm-mca/FetchStage.h stable/12/contrib/llvm/tools/llvm-mca/HWEventListener.cpp stable/12/contrib/llvm/tools/llvm-mca/HWEventListener.h stable/12/contrib/llvm/tools/llvm-mca/HardwareUnit.cpp stable/12/contrib/llvm/tools/llvm-mca/HardwareUnit.h stable/12/contrib/llvm/tools/llvm-mca/InstrBuilder.cpp stable/12/contrib/llvm/tools/llvm-mca/InstrBuilder.h stable/12/contrib/llvm/tools/llvm-mca/Instruction.cpp stable/12/contrib/llvm/tools/llvm-mca/Instruction.h stable/12/contrib/llvm/tools/llvm-mca/InstructionInfoView.cpp stable/12/contrib/llvm/tools/llvm-mca/InstructionInfoView.h stable/12/contrib/llvm/tools/llvm-mca/InstructionTables.cpp stable/12/contrib/llvm/tools/llvm-mca/InstructionTables.h stable/12/contrib/llvm/tools/llvm-mca/LSUnit.cpp stable/12/contrib/llvm/tools/llvm-mca/LSUnit.h stable/12/contrib/llvm/tools/llvm-mca/Pipeline.cpp stable/12/contrib/llvm/tools/llvm-mca/Pipeline.h stable/12/contrib/llvm/tools/llvm-mca/RegisterFile.cpp stable/12/contrib/llvm/tools/llvm-mca/RegisterFile.h stable/12/contrib/llvm/tools/llvm-mca/RegisterFileStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/RegisterFileStatistics.h stable/12/contrib/llvm/tools/llvm-mca/ResourcePressureView.cpp stable/12/contrib/llvm/tools/llvm-mca/ResourcePressureView.h stable/12/contrib/llvm/tools/llvm-mca/RetireControlUnit.cpp stable/12/contrib/llvm/tools/llvm-mca/RetireControlUnit.h stable/12/contrib/llvm/tools/llvm-mca/RetireControlUnitStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/RetireControlUnitStatistics.h stable/12/contrib/llvm/tools/llvm-mca/RetireStage.cpp stable/12/contrib/llvm/tools/llvm-mca/RetireStage.h stable/12/contrib/llvm/tools/llvm-mca/Scheduler.cpp stable/12/contrib/llvm/tools/llvm-mca/Scheduler.h stable/12/contrib/llvm/tools/llvm-mca/SchedulerStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/SchedulerStatistics.h stable/12/contrib/llvm/tools/llvm-mca/SourceMgr.h stable/12/contrib/llvm/tools/llvm-mca/Stage.cpp stable/12/contrib/llvm/tools/llvm-mca/Stage.h stable/12/contrib/llvm/tools/llvm-mca/SummaryView.cpp stable/12/contrib/llvm/tools/llvm-mca/SummaryView.h stable/12/contrib/llvm/tools/llvm-mca/Support.cpp stable/12/contrib/llvm/tools/llvm-mca/Support.h stable/12/contrib/llvm/tools/llvm-mca/TimelineView.cpp stable/12/contrib/llvm/tools/llvm-mca/TimelineView.h stable/12/contrib/llvm/tools/llvm-mca/View.cpp stable/12/contrib/llvm/tools/llvm-mca/View.h stable/12/contrib/llvm/tools/llvm-objcopy/Object.cpp stable/12/contrib/llvm/tools/llvm-objcopy/Object.h stable/12/contrib/llvm/tools/llvm-pdbutil/Analyze.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/Analyze.h Modified: stable/12/ObsoleteFiles.inc stable/12/UPDATING stable/12/contrib/compiler-rt/LICENSE.TXT stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h stable/12/contrib/compiler-rt/include/sanitizer/hwasan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h stable/12/contrib/compiler-rt/include/xray/xray_log_interface.h stable/12/contrib/compiler-rt/lib/asan/asan_allocator.h stable/12/contrib/compiler-rt/lib/asan/asan_errors.cc stable/12/contrib/compiler-rt/lib/asan/asan_errors.h stable/12/contrib/compiler-rt/lib/asan/asan_flags.inc stable/12/contrib/compiler-rt/lib/asan/asan_fuchsia.cc stable/12/contrib/compiler-rt/lib/asan/asan_globals.cc stable/12/contrib/compiler-rt/lib/asan/asan_globals_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_internal.h stable/12/contrib/compiler-rt/lib/asan/asan_linux.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_new_delete.cc stable/12/contrib/compiler-rt/lib/asan/asan_posix.cc stable/12/contrib/compiler-rt/lib/asan/asan_report.h stable/12/contrib/compiler-rt/lib/asan/asan_rtems.cc stable/12/contrib/compiler-rt/lib/asan/asan_rtl.cc stable/12/contrib/compiler-rt/lib/asan/asan_thread.cc stable/12/contrib/compiler-rt/lib/asan/asan_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/builtins/arm/addsf3.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S stable/12/contrib/compiler-rt/lib/builtins/clzdi2.c stable/12/contrib/compiler-rt/lib/builtins/cpu_model.c stable/12/contrib/compiler-rt/lib/builtins/ctzdi2.c stable/12/contrib/compiler-rt/lib/builtins/divdc3.c stable/12/contrib/compiler-rt/lib/builtins/divdf3.c stable/12/contrib/compiler-rt/lib/builtins/divsc3.c stable/12/contrib/compiler-rt/lib/builtins/divsf3.c stable/12/contrib/compiler-rt/lib/builtins/divtc3.c stable/12/contrib/compiler-rt/lib/builtins/emutls.c stable/12/contrib/compiler-rt/lib/builtins/fp_lib.h stable/12/contrib/compiler-rt/lib/builtins/gcc_personality_v0.c stable/12/contrib/compiler-rt/lib/builtins/int_lib.h stable/12/contrib/compiler-rt/lib/builtins/int_math.h stable/12/contrib/compiler-rt/lib/builtins/int_types.h stable/12/contrib/compiler-rt/lib/builtins/int_util.c stable/12/contrib/compiler-rt/lib/builtins/int_util.h stable/12/contrib/compiler-rt/lib/builtins/os_version_check.c stable/12/contrib/compiler-rt/lib/builtins/ppc/divtc3.c stable/12/contrib/compiler-rt/lib/cfi/cfi.cc stable/12/contrib/compiler-rt/lib/cfi/cfi_blacklist.txt stable/12/contrib/compiler-rt/lib/dfsan/dfsan.cc stable/12/contrib/compiler-rt/lib/esan/esan_interceptors.cpp stable/12/contrib/compiler-rt/lib/esan/esan_shadow.h stable/12/contrib/compiler-rt/lib/esan/esan_sideline.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerCommand.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerCorpus.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDefs.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDriver.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerFlags.def stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIO.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIO.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIOPosix.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIOWindows.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerInternal.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerLoop.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerOptions.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtil.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_allocator.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_flags.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_flags.inc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_mapping.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_report.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_report.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread.h stable/12/contrib/compiler-rt/lib/interception/interception.h stable/12/contrib/compiler-rt/lib/interception/interception_linux.h stable/12/contrib/compiler-rt/lib/interception/interception_win.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_allocator.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_allocator.h stable/12/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc stable/12/contrib/compiler-rt/lib/msan/msan.cc stable/12/contrib/compiler-rt/lib/msan/msan_allocator.cc stable/12/contrib/compiler-rt/lib/msan/msan_interceptors.cc stable/12/contrib/compiler-rt/lib/msan/msan_linux.cc stable/12/contrib/compiler-rt/lib/profile/GCDAProfiling.c stable/12/contrib/compiler-rt/lib/profile/InstrProfData.inc stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingValue.c stable/12/contrib/compiler-rt/lib/profile/WindowsMMap.c stable/12/contrib/compiler-rt/lib/profile/WindowsMMap.h stable/12/contrib/compiler-rt/lib/safestack/safestack.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_bytemap.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_x86.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator.h stable/12/contrib/compiler-rt/lib/scudo/scudo_malloc.cpp stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_debugging.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_flags.inc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_interface.inc stable/12/contrib/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc stable/12/contrib/compiler-rt/lib/xray/xray_allocator.h stable/12/contrib/compiler-rt/lib/xray/xray_basic_logging.cc stable/12/contrib/compiler-rt/lib/xray/xray_buffer_queue.cc stable/12/contrib/compiler-rt/lib/xray/xray_buffer_queue.h stable/12/contrib/compiler-rt/lib/xray/xray_defs.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_log_records.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_logging.cc stable/12/contrib/compiler-rt/lib/xray/xray_function_call_trie.h stable/12/contrib/compiler-rt/lib/xray/xray_init.cc stable/12/contrib/compiler-rt/lib/xray/xray_interface.cc stable/12/contrib/compiler-rt/lib/xray/xray_profile_collector.cc stable/12/contrib/compiler-rt/lib/xray/xray_profile_collector.h stable/12/contrib/compiler-rt/lib/xray/xray_profiling.cc stable/12/contrib/compiler-rt/lib/xray/xray_profiling_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_segmented_array.h stable/12/contrib/compiler-rt/lib/xray/xray_trampoline_x86_64.S stable/12/contrib/compiler-rt/lib/xray/xray_tsc.h stable/12/contrib/compiler-rt/lib/xray/xray_utils.cc stable/12/contrib/compiler-rt/lib/xray/xray_utils.h stable/12/contrib/compiler-rt/lib/xray/xray_x86_64.cc stable/12/contrib/libc++/LICENSE.TXT stable/12/contrib/libc++/include/__bit_reference stable/12/contrib/libc++/include/__config stable/12/contrib/libc++/include/__debug stable/12/contrib/libc++/include/__functional_base stable/12/contrib/libc++/include/__hash_table stable/12/contrib/libc++/include/__libcpp_version stable/12/contrib/libc++/include/__locale stable/12/contrib/libc++/include/__mutex_base stable/12/contrib/libc++/include/__node_handle stable/12/contrib/libc++/include/__sso_allocator stable/12/contrib/libc++/include/__string stable/12/contrib/libc++/include/__threading_support stable/12/contrib/libc++/include/__tree stable/12/contrib/libc++/include/__tuple stable/12/contrib/libc++/include/algorithm stable/12/contrib/libc++/include/any stable/12/contrib/libc++/include/array stable/12/contrib/libc++/include/atomic stable/12/contrib/libc++/include/bitset stable/12/contrib/libc++/include/charconv stable/12/contrib/libc++/include/chrono stable/12/contrib/libc++/include/cmath stable/12/contrib/libc++/include/complex stable/12/contrib/libc++/include/cstddef stable/12/contrib/libc++/include/deque stable/12/contrib/libc++/include/exception stable/12/contrib/libc++/include/experimental/any stable/12/contrib/libc++/include/experimental/chrono stable/12/contrib/libc++/include/experimental/coroutine stable/12/contrib/libc++/include/experimental/memory_resource stable/12/contrib/libc++/include/experimental/numeric stable/12/contrib/libc++/include/experimental/optional stable/12/contrib/libc++/include/experimental/ratio stable/12/contrib/libc++/include/experimental/string_view stable/12/contrib/libc++/include/experimental/system_error stable/12/contrib/libc++/include/experimental/tuple stable/12/contrib/libc++/include/filesystem stable/12/contrib/libc++/include/forward_list stable/12/contrib/libc++/include/fstream stable/12/contrib/libc++/include/functional stable/12/contrib/libc++/include/future stable/12/contrib/libc++/include/iomanip stable/12/contrib/libc++/include/iosfwd stable/12/contrib/libc++/include/istream stable/12/contrib/libc++/include/iterator stable/12/contrib/libc++/include/limits stable/12/contrib/libc++/include/list stable/12/contrib/libc++/include/locale stable/12/contrib/libc++/include/map stable/12/contrib/libc++/include/memory stable/12/contrib/libc++/include/module.modulemap stable/12/contrib/libc++/include/mutex stable/12/contrib/libc++/include/new stable/12/contrib/libc++/include/numeric stable/12/contrib/libc++/include/optional stable/12/contrib/libc++/include/ostream stable/12/contrib/libc++/include/random stable/12/contrib/libc++/include/regex stable/12/contrib/libc++/include/scoped_allocator stable/12/contrib/libc++/include/set stable/12/contrib/libc++/include/shared_mutex stable/12/contrib/libc++/include/span stable/12/contrib/libc++/include/sstream stable/12/contrib/libc++/include/stddef.h stable/12/contrib/libc++/include/stdexcept stable/12/contrib/libc++/include/streambuf stable/12/contrib/libc++/include/string stable/12/contrib/libc++/include/string_view stable/12/contrib/libc++/include/thread stable/12/contrib/libc++/include/tuple stable/12/contrib/libc++/include/type_traits stable/12/contrib/libc++/include/typeinfo stable/12/contrib/libc++/include/unordered_map stable/12/contrib/libc++/include/unordered_set stable/12/contrib/libc++/include/utility stable/12/contrib/libc++/include/valarray stable/12/contrib/libc++/include/variant stable/12/contrib/libc++/include/vector stable/12/contrib/libc++/include/version stable/12/contrib/libc++/src/experimental/memory_resource.cpp stable/12/contrib/libc++/src/filesystem/filesystem_common.h stable/12/contrib/libc++/src/filesystem/operations.cpp stable/12/contrib/libc++/src/future.cpp stable/12/contrib/libc++/src/iostream.cpp stable/12/contrib/libc++/src/new.cpp stable/12/contrib/libc++/src/support/runtime/exception_fallback.ipp stable/12/contrib/libc++/src/support/runtime/exception_glibcxx.ipp stable/12/contrib/libc++/src/support/runtime/exception_libcxxrt.ipp stable/12/contrib/libc++/src/support/runtime/exception_msvc.ipp stable/12/contrib/libc++/src/thread.cpp stable/12/contrib/llvm/FREEBSD-Xlist stable/12/contrib/llvm/LICENSE.TXT stable/12/contrib/llvm/include/llvm-c/Core.h stable/12/contrib/llvm/include/llvm-c/DebugInfo.h stable/12/contrib/llvm/include/llvm-c/ExecutionEngine.h stable/12/contrib/llvm/include/llvm-c/OrcBindings.h stable/12/contrib/llvm/include/llvm-c/TargetMachine.h stable/12/contrib/llvm/include/llvm-c/Transforms/Scalar.h stable/12/contrib/llvm/include/llvm-c/Types.h stable/12/contrib/llvm/include/llvm-c/lto.h stable/12/contrib/llvm/include/llvm/ADT/APFloat.h stable/12/contrib/llvm/include/llvm/ADT/APInt.h stable/12/contrib/llvm/include/llvm/ADT/Any.h stable/12/contrib/llvm/include/llvm/ADT/BitVector.h stable/12/contrib/llvm/include/llvm/ADT/DenseMap.h stable/12/contrib/llvm/include/llvm/ADT/DenseSet.h stable/12/contrib/llvm/include/llvm/ADT/GraphTraits.h stable/12/contrib/llvm/include/llvm/ADT/Hashing.h stable/12/contrib/llvm/include/llvm/ADT/ImmutableList.h stable/12/contrib/llvm/include/llvm/ADT/IntervalMap.h stable/12/contrib/llvm/include/llvm/ADT/Optional.h stable/12/contrib/llvm/include/llvm/ADT/PointerIntPair.h stable/12/contrib/llvm/include/llvm/ADT/PointerSumType.h stable/12/contrib/llvm/include/llvm/ADT/PostOrderIterator.h stable/12/contrib/llvm/include/llvm/ADT/STLExtras.h stable/12/contrib/llvm/include/llvm/ADT/SmallBitVector.h stable/12/contrib/llvm/include/llvm/ADT/SmallVector.h stable/12/contrib/llvm/include/llvm/ADT/SparseBitVector.h stable/12/contrib/llvm/include/llvm/ADT/StringExtras.h stable/12/contrib/llvm/include/llvm/ADT/Triple.h stable/12/contrib/llvm/include/llvm/ADT/iterator.h stable/12/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h stable/12/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/Analysis/CFG.h stable/12/contrib/llvm/include/llvm/Analysis/CFGPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h stable/12/contrib/llvm/include/llvm/Analysis/CaptureTracking.h stable/12/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/DemandedBits.h stable/12/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/DivergenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/GlobalsModRef.h stable/12/contrib/llvm/include/llvm/Analysis/InlineCost.h stable/12/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h stable/12/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h stable/12/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/LoopInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/MemoryLocation.h stable/12/contrib/llvm/include/llvm/Analysis/MemorySSA.h stable/12/contrib/llvm/include/llvm/Analysis/MemorySSAUpdater.h stable/12/contrib/llvm/include/llvm/Analysis/MustExecute.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCInstKind.h stable/12/contrib/llvm/include/llvm/Analysis/Passes.h stable/12/contrib/llvm/include/llvm/Analysis/PhiValues.h stable/12/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h stable/12/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h stable/12/contrib/llvm/include/llvm/Analysis/SparsePropagation.h stable/12/contrib/llvm/include/llvm/Analysis/SyntheticCountsUtils.h stable/12/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def stable/12/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h stable/12/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/TypeMetadataUtils.h stable/12/contrib/llvm/include/llvm/Analysis/ValueTracking.h stable/12/contrib/llvm/include/llvm/Analysis/VectorUtils.h stable/12/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def stable/12/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h stable/12/contrib/llvm/include/llvm/BinaryFormat/ELF.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MachO.h stable/12/contrib/llvm/include/llvm/BinaryFormat/Wasm.h stable/12/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h stable/12/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h stable/12/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h stable/12/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h stable/12/contrib/llvm/include/llvm/CodeGen/CommandFlags.inc stable/12/contrib/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h stable/12/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GCMetadata.h stable/12/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h stable/12/contrib/llvm/include/llvm/CodeGen/GCStrategy.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Utils.h stable/12/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h stable/12/contrib/llvm/include/llvm/CodeGen/LinkAllAsmWriterComponents.h stable/12/contrib/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h stable/12/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineFunction.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstr.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h stable/12/contrib/llvm/include/llvm/CodeGen/MachinePassRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h stable/12/contrib/llvm/include/llvm/CodeGen/Passes.h stable/12/contrib/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h stable/12/contrib/llvm/include/llvm/CodeGen/RegAllocRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterUsageInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h stable/12/contrib/llvm/include/llvm/CodeGen/SchedulerRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h stable/12/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h stable/12/contrib/llvm/include/llvm/CodeGen/StackMaps.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h stable/12/contrib/llvm/include/llvm/DebugInfo/DIContext.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MSFError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h stable/12/contrib/llvm/include/llvm/Demangle/Demangle.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/JITEventListener.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Layer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Legacy.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/NullResolver.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h stable/12/contrib/llvm/include/llvm/IR/Attributes.h stable/12/contrib/llvm/include/llvm/IR/Attributes.td stable/12/contrib/llvm/include/llvm/IR/BasicBlock.h stable/12/contrib/llvm/include/llvm/IR/CFG.h stable/12/contrib/llvm/include/llvm/IR/CallSite.h stable/12/contrib/llvm/include/llvm/IR/CallingConv.h stable/12/contrib/llvm/include/llvm/IR/Constant.h stable/12/contrib/llvm/include/llvm/IR/Constants.h stable/12/contrib/llvm/include/llvm/IR/DIBuilder.h stable/12/contrib/llvm/include/llvm/IR/DataLayout.h stable/12/contrib/llvm/include/llvm/IR/DebugInfoFlags.def stable/12/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h stable/12/contrib/llvm/include/llvm/IR/DebugLoc.h stable/12/contrib/llvm/include/llvm/IR/DiagnosticInfo.h stable/12/contrib/llvm/include/llvm/IR/DomTreeUpdater.h stable/12/contrib/llvm/include/llvm/IR/Dominators.h stable/12/contrib/llvm/include/llvm/IR/Function.h stable/12/contrib/llvm/include/llvm/IR/GlobalValue.h stable/12/contrib/llvm/include/llvm/IR/IRBuilder.h stable/12/contrib/llvm/include/llvm/IR/IRPrintingPasses.h stable/12/contrib/llvm/include/llvm/IR/InstVisitor.h stable/12/contrib/llvm/include/llvm/IR/InstrTypes.h stable/12/contrib/llvm/include/llvm/IR/Instruction.def stable/12/contrib/llvm/include/llvm/IR/Instruction.h stable/12/contrib/llvm/include/llvm/IR/Instructions.h stable/12/contrib/llvm/include/llvm/IR/IntrinsicInst.h stable/12/contrib/llvm/include/llvm/IR/Intrinsics.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsWebAssembly.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsX86.td stable/12/contrib/llvm/include/llvm/IR/LLVMContext.h stable/12/contrib/llvm/include/llvm/IR/LegacyPassManager.h stable/12/contrib/llvm/include/llvm/IR/LegacyPassManagers.h stable/12/contrib/llvm/include/llvm/IR/Metadata.h stable/12/contrib/llvm/include/llvm/IR/Module.h stable/12/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h stable/12/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h stable/12/contrib/llvm/include/llvm/IR/Operator.h stable/12/contrib/llvm/include/llvm/IR/PassManager.h stable/12/contrib/llvm/include/llvm/IR/PassManagerInternal.h stable/12/contrib/llvm/include/llvm/IR/PatternMatch.h stable/12/contrib/llvm/include/llvm/IR/RuntimeLibcalls.def stable/12/contrib/llvm/include/llvm/IR/Value.h stable/12/contrib/llvm/include/llvm/InitializePasses.h stable/12/contrib/llvm/include/llvm/LTO/Config.h stable/12/contrib/llvm/include/llvm/LTO/LTO.h stable/12/contrib/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h stable/12/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h stable/12/contrib/llvm/include/llvm/LinkAllPasses.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoWasm.h stable/12/contrib/llvm/include/llvm/MC/MCAsmMacro.h stable/12/contrib/llvm/include/llvm/MC/MCAssembler.h stable/12/contrib/llvm/include/llvm/MC/MCCodeView.h stable/12/contrib/llvm/include/llvm/MC/MCContext.h stable/12/contrib/llvm/include/llvm/MC/MCDwarf.h stable/12/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCExpr.h stable/12/contrib/llvm/include/llvm/MC/MCInst.h stable/12/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h stable/12/contrib/llvm/include/llvm/MC/MCInstrDesc.h stable/12/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h stable/12/contrib/llvm/include/llvm/MC/MCObjectStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h stable/12/contrib/llvm/include/llvm/MC/MCRegisterInfo.h stable/12/contrib/llvm/include/llvm/MC/MCSchedule.h stable/12/contrib/llvm/include/llvm/MC/MCSection.h stable/12/contrib/llvm/include/llvm/MC/MCStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolWasm.h stable/12/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCWin64EH.h stable/12/contrib/llvm/include/llvm/MC/MCWinEH.h stable/12/contrib/llvm/include/llvm/Object/COFF.h stable/12/contrib/llvm/include/llvm/Object/ELF.h stable/12/contrib/llvm/include/llvm/Object/ELFObjectFile.h stable/12/contrib/llvm/include/llvm/Object/ELFTypes.h stable/12/contrib/llvm/include/llvm/Object/Error.h stable/12/contrib/llvm/include/llvm/Object/MachO.h stable/12/contrib/llvm/include/llvm/Object/ObjectFile.h stable/12/contrib/llvm/include/llvm/Object/RelocVisitor.h stable/12/contrib/llvm/include/llvm/Object/Wasm.h stable/12/contrib/llvm/include/llvm/Object/WasmTraits.h stable/12/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h stable/12/contrib/llvm/include/llvm/Option/OptTable.h stable/12/contrib/llvm/include/llvm/Pass.h stable/12/contrib/llvm/include/llvm/Passes/PassBuilder.h stable/12/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h stable/12/contrib/llvm/include/llvm/ProfileData/GCOV.h stable/12/contrib/llvm/include/llvm/ProfileData/InstrProf.h stable/12/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProf.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProfWriter.h stable/12/contrib/llvm/include/llvm/Support/AArch64TargetParser.def stable/12/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h stable/12/contrib/llvm/include/llvm/Support/ARMTargetParser.def stable/12/contrib/llvm/include/llvm/Support/ARMWinEH.h stable/12/contrib/llvm/include/llvm/Support/Allocator.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamArray.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamReader.h stable/12/contrib/llvm/include/llvm/Support/Chrono.h stable/12/contrib/llvm/include/llvm/Support/CodeGen.h stable/12/contrib/llvm/include/llvm/Support/CommandLine.h stable/12/contrib/llvm/include/llvm/Support/Compiler.h stable/12/contrib/llvm/include/llvm/Support/Compression.h stable/12/contrib/llvm/include/llvm/Support/Debug.h stable/12/contrib/llvm/include/llvm/Support/DebugCounter.h stable/12/contrib/llvm/include/llvm/Support/Error.h stable/12/contrib/llvm/include/llvm/Support/ErrorHandling.h stable/12/contrib/llvm/include/llvm/Support/FileOutputBuffer.h stable/12/contrib/llvm/include/llvm/Support/FileSystem.h stable/12/contrib/llvm/include/llvm/Support/FormatVariadicDetails.h stable/12/contrib/llvm/include/llvm/Support/GenericDomTree.h stable/12/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h stable/12/contrib/llvm/include/llvm/Support/GraphWriter.h stable/12/contrib/llvm/include/llvm/Support/JSON.h stable/12/contrib/llvm/include/llvm/Support/LowLevelTypeImpl.h stable/12/contrib/llvm/include/llvm/Support/Path.h stable/12/contrib/llvm/include/llvm/Support/ScopedPrinter.h stable/12/contrib/llvm/include/llvm/Support/TargetOpcodes.def stable/12/contrib/llvm/include/llvm/Support/TargetParser.h stable/12/contrib/llvm/include/llvm/Support/Threading.h stable/12/contrib/llvm/include/llvm/Support/Timer.h stable/12/contrib/llvm/include/llvm/Support/Win64EH.h stable/12/contrib/llvm/include/llvm/Support/WithColor.h stable/12/contrib/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h stable/12/contrib/llvm/include/llvm/Support/X86TargetParser.def stable/12/contrib/llvm/include/llvm/Support/YAMLTraits.h stable/12/contrib/llvm/include/llvm/Support/raw_ostream.h stable/12/contrib/llvm/include/llvm/Support/type_traits.h stable/12/contrib/llvm/include/llvm/TableGen/StringMatcher.h stable/12/contrib/llvm/include/llvm/Target/CodeGenCWrappers.h stable/12/contrib/llvm/include/llvm/Target/GenericOpcodes.td stable/12/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td stable/12/contrib/llvm/include/llvm/Target/Target.td stable/12/contrib/llvm/include/llvm/Target/TargetInstrPredicate.td stable/12/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h stable/12/contrib/llvm/include/llvm/Target/TargetMachine.h stable/12/contrib/llvm/include/llvm/Target/TargetOptions.h stable/12/contrib/llvm/include/llvm/Target/TargetSchedule.td stable/12/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td stable/12/contrib/llvm/include/llvm/Testing/Support/SupportHelpers.h stable/12/contrib/llvm/include/llvm/Transforms/IPO.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/SampleProfile.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/JumpThreading.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SCCP.h stable/12/contrib/llvm/include/llvm/Transforms/Utils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Local.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/PredicateInfo.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h stable/12/contrib/llvm/include/llvm/XRay/Trace.h stable/12/contrib/llvm/include/llvm/XRay/XRayRecord.h stable/12/contrib/llvm/include/llvm/XRay/YAMLXRayRecord.h stable/12/contrib/llvm/include/llvm/module.modulemap stable/12/contrib/llvm/lib/Analysis/AliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp stable/12/contrib/llvm/lib/Analysis/AliasSetTracker.cpp stable/12/contrib/llvm/lib/Analysis/Analysis.cpp stable/12/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp stable/12/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp stable/12/contrib/llvm/lib/Analysis/CFG.cpp stable/12/contrib/llvm/lib/Analysis/CFGPrinter.cpp stable/12/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/CFLGraph.h stable/12/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp stable/12/contrib/llvm/lib/Analysis/CallGraph.cpp stable/12/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp stable/12/contrib/llvm/lib/Analysis/CaptureTracking.cpp stable/12/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/ConstantFolding.cpp stable/12/contrib/llvm/lib/Analysis/DemandedBits.cpp stable/12/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/EHPersonalities.cpp stable/12/contrib/llvm/lib/Analysis/GlobalsModRef.cpp stable/12/contrib/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/InlineCost.cpp stable/12/contrib/llvm/lib/Analysis/InstructionSimplify.cpp stable/12/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp stable/12/contrib/llvm/lib/Analysis/LazyCallGraph.cpp stable/12/contrib/llvm/lib/Analysis/LazyValueInfo.cpp stable/12/contrib/llvm/lib/Analysis/Lint.cpp stable/12/contrib/llvm/lib/Analysis/Loads.cpp stable/12/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp stable/12/contrib/llvm/lib/Analysis/LoopInfo.cpp stable/12/contrib/llvm/lib/Analysis/LoopPass.cpp stable/12/contrib/llvm/lib/Analysis/MemDepPrinter.cpp stable/12/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/MemoryLocation.cpp stable/12/contrib/llvm/lib/Analysis/MemorySSA.cpp stable/12/contrib/llvm/lib/Analysis/MemorySSAUpdater.cpp stable/12/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/MustExecute.cpp stable/12/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/ObjCARCInstKind.cpp stable/12/contrib/llvm/lib/Analysis/OrderedBasicBlock.cpp stable/12/contrib/llvm/lib/Analysis/PhiValues.cpp stable/12/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp stable/12/contrib/llvm/lib/Analysis/RegionPass.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolution.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp stable/12/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp stable/12/contrib/llvm/lib/Analysis/SyntheticCountsUtils.cpp stable/12/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp stable/12/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/TypeMetadataUtils.cpp stable/12/contrib/llvm/lib/Analysis/ValueTracking.cpp stable/12/contrib/llvm/lib/Analysis/VectorUtils.cpp stable/12/contrib/llvm/lib/AsmParser/LLLexer.cpp stable/12/contrib/llvm/lib/AsmParser/LLParser.cpp stable/12/contrib/llvm/lib/AsmParser/LLParser.h stable/12/contrib/llvm/lib/AsmParser/LLToken.h stable/12/contrib/llvm/lib/BinaryFormat/Dwarf.cpp stable/12/contrib/llvm/lib/BinaryFormat/Magic.cpp stable/12/contrib/llvm/lib/BinaryFormat/Wasm.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h stable/12/contrib/llvm/lib/Bitcode/Reader/ValueList.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp stable/12/contrib/llvm/lib/CodeGen/Analysis.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.h stable/12/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp stable/12/contrib/llvm/lib/CodeGen/BranchFolding.cpp stable/12/contrib/llvm/lib/CodeGen/BreakFalseDeps.cpp stable/12/contrib/llvm/lib/CodeGen/BuiltinGCs.cpp stable/12/contrib/llvm/lib/CodeGen/CFIInstrInserter.cpp stable/12/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp stable/12/contrib/llvm/lib/CodeGen/CodeGen.cpp stable/12/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp stable/12/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp stable/12/contrib/llvm/lib/CodeGen/GCMetadata.cpp stable/12/contrib/llvm/lib/CodeGen/GCRootLowering.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Combiner.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Utils.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalMerge.cpp stable/12/contrib/llvm/lib/CodeGen/IfConversion.cpp stable/12/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp stable/12/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp stable/12/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugVariables.h stable/12/contrib/llvm/lib/CodeGen/LiveInterval.cpp stable/12/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp stable/12/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp stable/12/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h stable/12/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp stable/12/contrib/llvm/lib/CodeGen/MIRPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCSE.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCombiner.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunction.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp stable/12/contrib/llvm/lib/CodeGen/MachineInstr.cpp stable/12/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp stable/12/contrib/llvm/lib/CodeGen/MachineLICM.cpp stable/12/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp stable/12/contrib/llvm/lib/CodeGen/MachineOperand.cpp stable/12/contrib/llvm/lib/CodeGen/MachineOutliner.cpp stable/12/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp stable/12/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineScheduler.cpp stable/12/contrib/llvm/lib/CodeGen/MachineSink.cpp stable/12/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp stable/12/contrib/llvm/lib/CodeGen/MachineVerifier.cpp stable/12/contrib/llvm/lib/CodeGen/MacroFusion.cpp stable/12/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp stable/12/contrib/llvm/lib/CodeGen/PHIElimination.cpp stable/12/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp stable/12/contrib/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp stable/12/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp stable/12/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp stable/12/contrib/llvm/lib/CodeGen/ReachingDefAnalysis.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocFast.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp stable/12/contrib/llvm/lib/CodeGen/RegUsageInfoCollector.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterPressure.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterUsageInfo.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStack.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStackColoring.cpp stable/12/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp stable/12/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp stable/12/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp stable/12/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp stable/12/contrib/llvm/lib/CodeGen/SlotIndexes.cpp stable/12/contrib/llvm/lib/CodeGen/SplitKit.h stable/12/contrib/llvm/lib/CodeGen/StackColoring.cpp stable/12/contrib/llvm/lib/CodeGen/StackMaps.cpp stable/12/contrib/llvm/lib/CodeGen/StackProtector.cpp stable/12/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp stable/12/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp stable/12/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp stable/12/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetOptionsImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp stable/12/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp stable/12/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp stable/12/contrib/llvm/lib/CodeGen/VirtRegMap.cpp stable/12/contrib/llvm/lib/CodeGen/WasmEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CodeViewError.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFListTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MSFError.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIADataStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumInjectedSources.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSectionContribs.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAError.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/RawError.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolBlock.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCustom.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolExe.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolLabel.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolThunk.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp stable/12/contrib/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp stable/12/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp stable/12/contrib/llvm/lib/Demangle/MicrosoftDemangle.cpp stable/12/contrib/llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp stable/12/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp stable/12/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h stable/12/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Core.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Layer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Legacy.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/NullResolver.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h stable/12/contrib/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h stable/12/contrib/llvm/lib/FuzzMutate/IRMutator.cpp stable/12/contrib/llvm/lib/FuzzMutate/RandomIRBuilder.cpp stable/12/contrib/llvm/lib/IR/AsmWriter.cpp stable/12/contrib/llvm/lib/IR/Attributes.cpp stable/12/contrib/llvm/lib/IR/AutoUpgrade.cpp stable/12/contrib/llvm/lib/IR/BasicBlock.cpp stable/12/contrib/llvm/lib/IR/ConstantFold.cpp stable/12/contrib/llvm/lib/IR/Constants.cpp stable/12/contrib/llvm/lib/IR/ConstantsContext.h stable/12/contrib/llvm/lib/IR/Core.cpp stable/12/contrib/llvm/lib/IR/DIBuilder.cpp stable/12/contrib/llvm/lib/IR/DataLayout.cpp stable/12/contrib/llvm/lib/IR/DebugInfo.cpp stable/12/contrib/llvm/lib/IR/DebugInfoMetadata.cpp stable/12/contrib/llvm/lib/IR/DebugLoc.cpp stable/12/contrib/llvm/lib/IR/DiagnosticInfo.cpp stable/12/contrib/llvm/lib/IR/DomTreeUpdater.cpp stable/12/contrib/llvm/lib/IR/Dominators.cpp stable/12/contrib/llvm/lib/IR/Function.cpp stable/12/contrib/llvm/lib/IR/Globals.cpp stable/12/contrib/llvm/lib/IR/IRBuilder.cpp stable/12/contrib/llvm/lib/IR/IRPrintingPasses.cpp stable/12/contrib/llvm/lib/IR/Instruction.cpp stable/12/contrib/llvm/lib/IR/Instructions.cpp stable/12/contrib/llvm/lib/IR/IntrinsicInst.cpp stable/12/contrib/llvm/lib/IR/LLVMContext.cpp stable/12/contrib/llvm/lib/IR/LLVMContextImpl.h stable/12/contrib/llvm/lib/IR/LegacyPassManager.cpp stable/12/contrib/llvm/lib/IR/MDBuilder.cpp stable/12/contrib/llvm/lib/IR/Metadata.cpp stable/12/contrib/llvm/lib/IR/Module.cpp stable/12/contrib/llvm/lib/IR/ModuleSummaryIndex.cpp stable/12/contrib/llvm/lib/IR/SafepointIRVerifier.cpp stable/12/contrib/llvm/lib/IR/Type.cpp stable/12/contrib/llvm/lib/IR/Value.cpp stable/12/contrib/llvm/lib/IR/Verifier.cpp stable/12/contrib/llvm/lib/LTO/LTO.cpp stable/12/contrib/llvm/lib/LTO/LTOBackend.cpp stable/12/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp stable/12/contrib/llvm/lib/LTO/LTOModule.cpp stable/12/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp stable/12/contrib/llvm/lib/LTO/UpdateCompilerUsed.cpp stable/12/contrib/llvm/lib/Linker/IRMover.cpp stable/12/contrib/llvm/lib/MC/ConstantPools.cpp stable/12/contrib/llvm/lib/MC/ELFObjectWriter.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoWasm.cpp stable/12/contrib/llvm/lib/MC/MCAsmStreamer.cpp stable/12/contrib/llvm/lib/MC/MCAssembler.cpp stable/12/contrib/llvm/lib/MC/MCCodeView.cpp stable/12/contrib/llvm/lib/MC/MCContext.cpp stable/12/contrib/llvm/lib/MC/MCDwarf.cpp stable/12/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCExpr.cpp stable/12/contrib/llvm/lib/MC/MCFragment.cpp stable/12/contrib/llvm/lib/MC/MCInst.cpp stable/12/contrib/llvm/lib/MC/MCInstrAnalysis.cpp stable/12/contrib/llvm/lib/MC/MCInstrDesc.cpp stable/12/contrib/llvm/lib/MC/MCMachOStreamer.cpp stable/12/contrib/llvm/lib/MC/MCNullStreamer.cpp stable/12/contrib/llvm/lib/MC/MCObjectFileInfo.cpp stable/12/contrib/llvm/lib/MC/MCObjectStreamer.cpp stable/12/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp stable/12/contrib/llvm/lib/MC/MCParser/AsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCRegisterInfo.cpp stable/12/contrib/llvm/lib/MC/MCSection.cpp stable/12/contrib/llvm/lib/MC/MCSectionELF.cpp stable/12/contrib/llvm/lib/MC/MCStreamer.cpp stable/12/contrib/llvm/lib/MC/MCWasmStreamer.cpp stable/12/contrib/llvm/lib/MC/MCWin64EH.cpp stable/12/contrib/llvm/lib/MC/MachObjectWriter.cpp stable/12/contrib/llvm/lib/MC/WasmObjectWriter.cpp stable/12/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Object/ArchiveWriter.cpp stable/12/contrib/llvm/lib/Object/Binary.cpp stable/12/contrib/llvm/lib/Object/COFFObjectFile.cpp stable/12/contrib/llvm/lib/Object/ELF.cpp stable/12/contrib/llvm/lib/Object/ELFObjectFile.cpp stable/12/contrib/llvm/lib/Object/Error.cpp stable/12/contrib/llvm/lib/Object/MachOObjectFile.cpp stable/12/contrib/llvm/lib/Object/ModuleSymbolTable.cpp stable/12/contrib/llvm/lib/Object/Object.cpp stable/12/contrib/llvm/lib/Object/ObjectFile.cpp stable/12/contrib/llvm/lib/Object/WasmObjectFile.cpp stable/12/contrib/llvm/lib/Object/WindowsResource.cpp stable/12/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp stable/12/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp stable/12/contrib/llvm/lib/Option/OptTable.cpp stable/12/contrib/llvm/lib/Passes/PassBuilder.cpp stable/12/contrib/llvm/lib/Passes/PassRegistry.def stable/12/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp stable/12/contrib/llvm/lib/ProfileData/GCOV.cpp stable/12/contrib/llvm/lib/ProfileData/InstrProf.cpp stable/12/contrib/llvm/lib/ProfileData/InstrProfReader.cpp stable/12/contrib/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProf.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProfReader.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp stable/12/contrib/llvm/lib/Support/APInt.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamError.cpp stable/12/contrib/llvm/lib/Support/COM.cpp stable/12/contrib/llvm/lib/Support/CachePruning.cpp stable/12/contrib/llvm/lib/Support/CodeGenCoverage.cpp stable/12/contrib/llvm/lib/Support/CommandLine.cpp stable/12/contrib/llvm/lib/Support/Compression.cpp stable/12/contrib/llvm/lib/Support/DebugCounter.cpp stable/12/contrib/llvm/lib/Support/Error.cpp stable/12/contrib/llvm/lib/Support/FileOutputBuffer.cpp stable/12/contrib/llvm/lib/Support/FoldingSet.cpp stable/12/contrib/llvm/lib/Support/FormatVariadic.cpp stable/12/contrib/llvm/lib/Support/Hashing.cpp stable/12/contrib/llvm/lib/Support/Host.cpp stable/12/contrib/llvm/lib/Support/JSON.cpp stable/12/contrib/llvm/lib/Support/Locale.cpp stable/12/contrib/llvm/lib/Support/LockFileManager.cpp stable/12/contrib/llvm/lib/Support/Path.cpp stable/12/contrib/llvm/lib/Support/Process.cpp stable/12/contrib/llvm/lib/Support/RandomNumberGenerator.cpp stable/12/contrib/llvm/lib/Support/Signals.cpp stable/12/contrib/llvm/lib/Support/SourceMgr.cpp stable/12/contrib/llvm/lib/Support/StringSaver.cpp stable/12/contrib/llvm/lib/Support/TargetParser.cpp stable/12/contrib/llvm/lib/Support/TargetRegistry.cpp stable/12/contrib/llvm/lib/Support/Timer.cpp stable/12/contrib/llvm/lib/Support/Triple.cpp stable/12/contrib/llvm/lib/Support/Unix/Path.inc stable/12/contrib/llvm/lib/Support/Unix/Signals.inc stable/12/contrib/llvm/lib/Support/Unix/Threading.inc stable/12/contrib/llvm/lib/Support/Windows/Path.inc stable/12/contrib/llvm/lib/Support/Windows/Process.inc stable/12/contrib/llvm/lib/Support/Windows/Program.inc stable/12/contrib/llvm/lib/Support/Windows/Threading.inc stable/12/contrib/llvm/lib/Support/Windows/WindowsSupport.h stable/12/contrib/llvm/lib/Support/WithColor.cpp stable/12/contrib/llvm/lib/Support/YAMLTraits.cpp stable/12/contrib/llvm/lib/Support/raw_ostream.cpp stable/12/contrib/llvm/lib/TableGen/Main.cpp stable/12/contrib/llvm/lib/TableGen/Record.cpp stable/12/contrib/llvm/lib/TableGen/TGLexer.cpp stable/12/contrib/llvm/lib/TableGen/TGLexer.h stable/12/contrib/llvm/lib/TableGen/TGParser.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64Schedule.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp stable/12/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp stable/12/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h stable/12/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td stable/12/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUGISel.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPTNote.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/BUFInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td stable/12/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h stable/12/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIDefines.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIIntrinsics.td stable/12/contrib/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SMInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td stable/12/contrib/llvm/lib/Target/ARC/ARCTargetMachine.cpp stable/12/contrib/llvm/lib/Target/ARC/InstPrinter/ARCInstPrinter.cpp stable/12/contrib/llvm/lib/Target/ARM/ARM.td stable/12/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMCallLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMISelLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMacroFusion.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMacroFusion.h stable/12/contrib/llvm/lib/Target/ARM/ARMParallelDSP.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMSubtarget.h stable/12/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp stable/12/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td stable/12/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.td stable/12/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp stable/12/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp stable/12/contrib/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp stable/12/contrib/llvm/lib/Target/BPF/BPF.h stable/12/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp stable/12/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp stable/12/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/Hexagon.h stable/12/contrib/llvm/lib/Target/Hexagon/Hexagon.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepMappings.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepOperands.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV60.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV62.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp stable/12/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp stable/12/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrFormats.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp stable/12/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp stable/12/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips.h stable/12/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h stable/12/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h stable/12/contrib/llvm/lib/Target/Mips/MipsBranchExpansion.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCCState.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCallLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCallLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsCondMov.td stable/12/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsISelLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td stable/12/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsMSAInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsSchedule.td stable/12/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td stable/12/contrib/llvm/lib/Target/Mips/MipsSubtarget.h stable/12/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTX.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTX.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVVMReflect.cpp stable/12/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp stable/12/contrib/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp stable/12/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h stable/12/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td stable/12/contrib/llvm/lib/Target/PowerPC/PPC.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrHTM.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrQPX.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrSPE.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCSchedule.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCSchedule440.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleA2.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE5500.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG3.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4Plus.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG5.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP8.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp stable/12/contrib/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp stable/12/contrib/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.cpp stable/12/contrib/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h stable/12/contrib/llvm/lib/Target/RISCV/RISCV.h stable/12/contrib/llvm/lib/Target/RISCV/RISCV.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrFormats.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp stable/12/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp stable/12/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.h stable/12/contrib/llvm/lib/Target/Sparc/LeonFeatures.td stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp stable/12/contrib/llvm/lib/Target/Sparc/Sparc.td stable/12/contrib/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h stable/12/contrib/llvm/lib/Target/Sparc/SparcInstr64Bit.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrAliases.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td stable/12/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h stable/12/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h stable/12/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp stable/12/contrib/llvm/lib/Target/TargetMachine.cpp stable/12/contrib/llvm/lib/Target/TargetMachineC.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyFixupKinds.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/README.txt stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISD.def stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrExceptRef.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyReplacePhysRegs.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp stable/12/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp stable/12/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h stable/12/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/X86/ShadowCallStack.cpp stable/12/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp stable/12/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h stable/12/contrib/llvm/lib/Target/X86/X86.h stable/12/contrib/llvm/lib/Target/X86/X86.td stable/12/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallLowering.h stable/12/contrib/llvm/lib/Target/X86/X86CallingConv.td stable/12/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp stable/12/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp stable/12/contrib/llvm/lib/Target/X86/X86FastISel.cpp stable/12/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp stable/12/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp stable/12/contrib/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86ISelLowering.h stable/12/contrib/llvm/lib/Target/X86/X86Instr3DNow.td stable/12/contrib/llvm/lib/Target/X86/X86InstrAVX512.td stable/12/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td stable/12/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td stable/12/contrib/llvm/lib/Target/X86/X86InstrCompiler.td stable/12/contrib/llvm/lib/Target/X86/X86InstrControl.td stable/12/contrib/llvm/lib/Target/X86/X86InstrExtension.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFMA.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFPStack.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.h stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.td stable/12/contrib/llvm/lib/Target/X86/X86InstrMMX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSSE.td stable/12/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td stable/12/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td stable/12/contrib/llvm/lib/Target/X86/X86InstrXOP.td stable/12/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp stable/12/contrib/llvm/lib/Target/X86/X86InterleavedAccess.cpp stable/12/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h stable/12/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp stable/12/contrib/llvm/lib/Target/X86/X86MacroFusion.cpp stable/12/contrib/llvm/lib/Target/X86/X86MacroFusion.h stable/12/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp stable/12/contrib/llvm/lib/Target/X86/X86PfmCounters.td stable/12/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86RegisterInfo.td stable/12/contrib/llvm/lib/Target/X86/X86RetpolineThunks.cpp stable/12/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td stable/12/contrib/llvm/lib/Target/X86/X86SchedHaswell.td stable/12/contrib/llvm/lib/Target/X86/X86SchedPredicates.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td stable/12/contrib/llvm/lib/Target/X86/X86Schedule.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td stable/12/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp stable/12/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h stable/12/contrib/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp stable/12/contrib/llvm/lib/Target/X86/X86Subtarget.cpp stable/12/contrib/llvm/lib/Target/X86/X86Subtarget.h stable/12/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp stable/12/contrib/llvm/lib/Target/X86/X86TargetMachine.h stable/12/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h stable/12/contrib/llvm/lib/Target/X86/X86WinEHState.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp stable/12/contrib/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp stable/12/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp stable/12/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp stable/12/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombineInternal.h stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroElide.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/Coroutines.cpp stable/12/contrib/llvm/lib/Transforms/IPO/AlwaysInliner.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp stable/12/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp stable/12/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp stable/12/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp stable/12/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp stable/12/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp stable/12/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp stable/12/contrib/llvm/lib/Transforms/IPO/IPO.cpp stable/12/contrib/llvm/lib/Transforms/IPO/Inliner.cpp stable/12/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp stable/12/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp stable/12/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SCCP.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp stable/12/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h stable/12/contrib/llvm/lib/Transforms/Instrumentation/CGProfile.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVN.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVNHoist.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LICM.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopPassManager.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SROA.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Sink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp stable/12/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp stable/12/contrib/llvm/lib/Transforms/Utils/EscapeEnumerator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp stable/12/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Local.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp stable/12/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Utils.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlan.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h stable/12/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp stable/12/contrib/llvm/lib/XRay/InstrumentationMap.cpp stable/12/contrib/llvm/lib/XRay/Trace.cpp stable/12/contrib/llvm/tools/bugpoint/CrashDebugger.cpp stable/12/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp stable/12/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp stable/12/contrib/llvm/tools/bugpoint/ToolRunner.cpp stable/12/contrib/llvm/tools/bugpoint/ToolRunner.h stable/12/contrib/llvm/tools/clang/FREEBSD-Xlist stable/12/contrib/llvm/tools/clang/LICENSE.TXT stable/12/contrib/llvm/tools/clang/include/clang-c/Index.h stable/12/contrib/llvm/tools/clang/include/clang/AST/APValue.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTStructuralEquivalence.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Attr.h stable/12/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h stable/12/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Comment.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Decl.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h stable/12/contrib/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Expr.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/GlobalDecl.h stable/12/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Mangle.h stable/12/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h stable/12/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.def stable/12/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/AST/RawCommentList.h stable/12/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Stmt.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Type.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CallGraph.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/ConstructionContext.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Attr.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86_64.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/Cuda.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DebugInfoOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/Features.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/FileSystemStatCache.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/XRayInstr.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/arm_neon_incl.td stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/SwiftCallingConv.h stable/12/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTUDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTranslationUnit.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Action.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/Distro.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Driver.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/DriverDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Job.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Options.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Types.def stable/12/contrib/llvm/tools/clang/include/clang/Format/Format.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def stable/12/contrib/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h stable/12/contrib/llvm/tools/clang/include/clang/Index/USRGeneration.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/LexDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/TokenConcatenation.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/ParseDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/Parser.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Overload.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ParsedAttr.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Scope.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Sema.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/SerializationDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSolver.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/AllTUsExecution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabasePluginRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h stable/12/contrib/llvm/tools/clang/include/clang/module.modulemap stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCCalls.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransProtectedScope.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp stable/12/contrib/llvm/tools/clang/lib/AST/APValue.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentParser.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Decl.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Expr.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Linkage.h stable/12/contrib/llvm/tools/clang/lib/AST/Mangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp stable/12/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp stable/12/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp stable/12/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp stable/12/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/AST/SelectorLocationsKind.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Stmt.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtObjC.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Type.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Attributes.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Cuda.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FileSystemStatCache.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Module.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/X86.h stable/12/contrib/llvm/tools/clang/lib/Basic/Version.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/SwiftCallingConv.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.h stable/12/contrib/llvm/tools/clang/lib/CrossTU/CrossTranslationUnit.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Action.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Distro.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Driver.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Job.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h stable/12/contrib/llvm/tools/clang/lib/Driver/Types.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/XRayArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp stable/12/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp stable/12/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp stable/12/contrib/llvm/tools/clang/lib/Format/Format.cpp stable/12/contrib/llvm/tools/clang/lib/Format/FormatToken.h stable/12/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.cpp stable/12/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.h stable/12/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h stable/12/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h stable/12/contrib/llvm/tools/clang/lib/Headers/adxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/altivec.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512pfintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmiintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmivlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/cuda_wrappers/new stable/12/contrib/llvm/tools/clang/lib/Headers/emmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/float.h stable/12/contrib/llvm/tools/clang/lib/Headers/immintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/lzcntintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/opencl-c.h stable/12/contrib/llvm/tools/clang/lib/Headers/vecintrin.h stable/12/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp stable/12/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h stable/12/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/Parser.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/ParsedAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/Sema.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCUDA.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationState.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCPropertyChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CommonBugCategories.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/WorkList.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/AllTUsExecution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Diagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp stable/12/contrib/llvm/tools/clang/tools/clang-format/ClangFormat.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1gen_reproducer_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/driver.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangOptionDocEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h stable/12/contrib/llvm/tools/lld/COFF/Chunks.cpp stable/12/contrib/llvm/tools/lld/COFF/Chunks.h stable/12/contrib/llvm/tools/lld/COFF/Config.h stable/12/contrib/llvm/tools/lld/COFF/DLL.cpp stable/12/contrib/llvm/tools/lld/COFF/DLL.h stable/12/contrib/llvm/tools/lld/COFF/Driver.cpp stable/12/contrib/llvm/tools/lld/COFF/Driver.h stable/12/contrib/llvm/tools/lld/COFF/DriverUtils.cpp stable/12/contrib/llvm/tools/lld/COFF/ICF.cpp stable/12/contrib/llvm/tools/lld/COFF/InputFiles.cpp stable/12/contrib/llvm/tools/lld/COFF/InputFiles.h stable/12/contrib/llvm/tools/lld/COFF/LTO.cpp stable/12/contrib/llvm/tools/lld/COFF/MapFile.cpp stable/12/contrib/llvm/tools/lld/COFF/MarkLive.cpp stable/12/contrib/llvm/tools/lld/COFF/MinGW.cpp stable/12/contrib/llvm/tools/lld/COFF/MinGW.h stable/12/contrib/llvm/tools/lld/COFF/Options.td stable/12/contrib/llvm/tools/lld/COFF/PDB.cpp stable/12/contrib/llvm/tools/lld/COFF/PDB.h stable/12/contrib/llvm/tools/lld/COFF/SymbolTable.cpp stable/12/contrib/llvm/tools/lld/COFF/SymbolTable.h stable/12/contrib/llvm/tools/lld/COFF/Symbols.cpp stable/12/contrib/llvm/tools/lld/COFF/Symbols.h stable/12/contrib/llvm/tools/lld/COFF/Writer.cpp stable/12/contrib/llvm/tools/lld/COFF/Writer.h stable/12/contrib/llvm/tools/lld/Common/Args.cpp stable/12/contrib/llvm/tools/lld/Common/ErrorHandler.cpp stable/12/contrib/llvm/tools/lld/Common/Strings.cpp stable/12/contrib/llvm/tools/lld/Common/TargetOptionsCommandFlags.cpp stable/12/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/AArch64.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/AMDGPU.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/AVR.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/Hexagon.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/PPC.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/X86.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp stable/12/contrib/llvm/tools/lld/ELF/CMakeLists.txt stable/12/contrib/llvm/tools/lld/ELF/CallGraphSort.cpp stable/12/contrib/llvm/tools/lld/ELF/Config.h stable/12/contrib/llvm/tools/lld/ELF/Driver.cpp stable/12/contrib/llvm/tools/lld/ELF/Driver.h stable/12/contrib/llvm/tools/lld/ELF/DriverUtils.cpp stable/12/contrib/llvm/tools/lld/ELF/EhFrame.cpp stable/12/contrib/llvm/tools/lld/ELF/ICF.cpp stable/12/contrib/llvm/tools/lld/ELF/InputFiles.cpp stable/12/contrib/llvm/tools/lld/ELF/InputFiles.h stable/12/contrib/llvm/tools/lld/ELF/InputSection.cpp stable/12/contrib/llvm/tools/lld/ELF/InputSection.h stable/12/contrib/llvm/tools/lld/ELF/LTO.cpp stable/12/contrib/llvm/tools/lld/ELF/LTO.h stable/12/contrib/llvm/tools/lld/ELF/LinkerScript.cpp stable/12/contrib/llvm/tools/lld/ELF/LinkerScript.h stable/12/contrib/llvm/tools/lld/ELF/MapFile.cpp stable/12/contrib/llvm/tools/lld/ELF/MarkLive.cpp stable/12/contrib/llvm/tools/lld/ELF/Options.td stable/12/contrib/llvm/tools/lld/ELF/OutputSections.cpp stable/12/contrib/llvm/tools/lld/ELF/OutputSections.h stable/12/contrib/llvm/tools/lld/ELF/Relocations.cpp stable/12/contrib/llvm/tools/lld/ELF/Relocations.h stable/12/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp stable/12/contrib/llvm/tools/lld/ELF/ScriptLexer.h stable/12/contrib/llvm/tools/lld/ELF/ScriptParser.cpp stable/12/contrib/llvm/tools/lld/ELF/SymbolTable.cpp stable/12/contrib/llvm/tools/lld/ELF/SymbolTable.h stable/12/contrib/llvm/tools/lld/ELF/Symbols.cpp stable/12/contrib/llvm/tools/lld/ELF/Symbols.h stable/12/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp stable/12/contrib/llvm/tools/lld/ELF/SyntheticSections.h stable/12/contrib/llvm/tools/lld/ELF/Target.cpp stable/12/contrib/llvm/tools/lld/ELF/Target.h stable/12/contrib/llvm/tools/lld/ELF/Thunks.cpp stable/12/contrib/llvm/tools/lld/ELF/Writer.cpp stable/12/contrib/llvm/tools/lld/FREEBSD-Xlist stable/12/contrib/llvm/tools/lld/LICENSE.TXT stable/12/contrib/llvm/tools/lld/docs/NewLLD.rst stable/12/contrib/llvm/tools/lld/docs/README.txt stable/12/contrib/llvm/tools/lld/docs/Readers.rst stable/12/contrib/llvm/tools/lld/docs/ReleaseNotes.rst stable/12/contrib/llvm/tools/lld/docs/WebAssembly.rst stable/12/contrib/llvm/tools/lld/docs/conf.py stable/12/contrib/llvm/tools/lld/docs/index.rst stable/12/contrib/llvm/tools/lld/docs/ld.lld.1 stable/12/contrib/llvm/tools/lld/docs/open_projects.rst stable/12/contrib/llvm/tools/lld/docs/windows_support.rst stable/12/contrib/llvm/tools/lld/include/lld/Common/Args.h stable/12/contrib/llvm/tools/lld/include/lld/Common/ErrorHandler.h stable/12/contrib/llvm/tools/lld/include/lld/Common/LLVM.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Strings.h stable/12/contrib/llvm/tools/lld/include/lld/Common/TargetOptionsCommandFlags.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Threads.h stable/12/contrib/llvm/tools/lld/lib/Driver/DarwinLdDriver.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp stable/12/contrib/llvm/tools/lld/tools/lld/lld.cpp stable/12/contrib/llvm/tools/lldb/FREEBSD-Xlist stable/12/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCommandReturnObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBExpressionOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfoList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBModule.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSymbolContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBVariablesOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSiteList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Stoppoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointLocation.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Watchpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Address.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverFileLine.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ClangForward.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/DumpDataExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FileLineResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FileSpecList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FormatEntity.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/LoadedModuleInfoList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Module.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Opcode.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/PluginInterface.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/STLUtils.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Section.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/SourceManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamAsynchronousIO.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamBuffer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseSet.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLVector.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/UniqueCStringMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/UserSettingsController.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Value.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectCast.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectChild.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResult.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultCast.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultChild.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultImpl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectDynamicValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectMemory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectRegister.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DataVisualization.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatCache.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatClasses.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersContainer.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersHelpers.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/LanguageCategory.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/StringPrinter.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategory.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategoryMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeValidator.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/Expression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/FunctionCaller.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/LLVMUserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/Materializer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/REPL.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/UserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/UtilityFunction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Debug.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/File.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/MonitoringProcessLauncher.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/PipeBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ProcessRunLock.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/XML.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/openbsd/HostInfoOpenBSD.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostProcessPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/PipePosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializerCommon.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemLifetimeManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandAlias.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandCompletions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectMultiword.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandReturnObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionArgParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupBoolean.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupOutputFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupPlatform.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupWatchpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArgs.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArray.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueBoolean.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueChar.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueDictionary.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueEnumeration.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpecList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormatEntity.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueLanguage.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValuePathMappings.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueProperties.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueRegex.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueSInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/Options.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/Property.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Block.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTImporter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangUtil.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompileUnit.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/DebugMacros.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/LineTable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectContainer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContextScope.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolVendor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Symtab.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/CPPLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/DynamicLoader.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContextScope.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Language.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/LanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Memory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/MemoryHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/OperatingSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/PathMappingList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Process.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ProcessStructReader.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/QueueItem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RegisterContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Target.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/TargetList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanRunToAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanShouldStopHere.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInstruction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOut.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepThrough.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepUntil.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanTracer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/UnixSignals.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Unwind.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Baton.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/CompletionRequest.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Connection.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ConstString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferHeap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataEncoder.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/FileSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Iterable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/LLDBAssert.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Log.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/RegularExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SelectHelper.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Stream.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamCallback.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamGDBRemote.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamTee.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractorGDBRemote.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StructuredData.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Timer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UserID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/VMRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-types.h stable/12/contrib/llvm/tools/lldb/include/lldb/module.modulemap stable/12/contrib/llvm/tools/lldb/source/API/SBAddress.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBAttachInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBroadcaster.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCommandReturnObject.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBData.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBDeclaration.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBError.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBEvent.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBExpressionOptions.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFileSpecList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFrame.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBHostOS.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBLaunchInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBLineEntry.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBListener.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfoList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBModule.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBModuleSpec.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBProcess.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBQueue.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSection.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSourceManager.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStream.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStringList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSymbolContext.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSymbolContextList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTarget.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBThread.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBType.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeCategory.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeFilter.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeFormat.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeNameSpecifier.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeSummary.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeSynthetic.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBValue.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBValueList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBVariablesOptions.cpp stable/12/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp stable/12/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.h stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationCollection.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSite.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSiteList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Stoppoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/StoppointCallbackContext.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/StoppointLocation.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Watchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMultiword.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.h stable/12/contrib/llvm/tools/lldb/source/Core/Address.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressResolverFileLine.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressResolverName.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Communication.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Debugger.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DumpRegisterValue.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DynamicLoader.cpp stable/12/contrib/llvm/tools/lldb/source/Core/EmulateInstruction.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FileLineResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp stable/12/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Mangled.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Module.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Opcode.cpp stable/12/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp stable/12/contrib/llvm/tools/lldb/source/Core/SearchFilter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Section.cpp stable/12/contrib/llvm/tools/lldb/source/Core/SourceManager.cpp stable/12/contrib/llvm/tools/lldb/source/Core/StreamAsynchronousIO.cpp stable/12/contrib/llvm/tools/lldb/source/Core/StreamFile.cpp stable/12/contrib/llvm/tools/lldb/source/Core/UserSettingsController.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Value.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectCast.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResult.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultChild.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultImpl.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectRegister.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/CXXFunctionPointer.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/DataVisualization.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/DumpValueObjectOptions.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatCache.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatClasses.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormattersHelpers.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/LanguageCategory.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/StringPrinter.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategory.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategoryMap.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeSummary.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeSynthetic.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeValidator.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/VectorType.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/ExpressionSourceCode.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/FunctionCaller.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/LLVMUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/REPL.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/UtilityFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/File.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/FileSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostNativeThreadBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostThread.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/MonitoringProcessLauncher.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/ProcessRunLock.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/StringConvert.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/XML.cpp stable/12/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/netbsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/netbsd/HostInfoNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/openbsd/HostInfoOpenBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/HostInfoPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/PipePosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp stable/12/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp stable/12/contrib/llvm/tools/lldb/source/Initialization/SystemLifetimeManager.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandAlias.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectRegexCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.h stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandReturnObject.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionArgParser.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupArchitecture.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupBoolean.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFile.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupOutputFile.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupString.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUUID.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupVariable.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupWatchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValue.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArch.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArgs.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArray.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueBoolean.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueChar.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueEnumeration.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpecLIst.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormat.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormatEntity.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValuePathMappings.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueRegex.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueSInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUUID.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/Options.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSArray.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSError.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSException.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIXLog.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h stable/12/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h stable/12/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Block.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangUtil.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Function.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LineEntry.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolFile.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Type.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/UnwindPlan.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ABI.cpp stable/12/contrib/llvm/tools/lldb/source/Target/CPPLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ExecutionContext.cpp stable/12/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Language.cpp stable/12/contrib/llvm/tools/lldb/source/Target/LanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Memory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/MemoryHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ModuleCache.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/OperatingSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Platform.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Process.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Queue.cpp stable/12/contrib/llvm/tools/lldb/source/Target/QueueItem.cpp stable/12/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Target/RegisterNumber.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SectionLoadHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SectionLoadList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackID.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SystemRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Target.cpp stable/12/contrib/llvm/tools/lldb/source/Target/TargetList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Thread.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlan.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanBase.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallOnFunctionExit.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanPython.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanRunToAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanShouldStopHere.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepThrough.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepUntil.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Target/UnwindAssembly.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/CompletionRequest.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ConstString.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataBufferHeap.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataEncoder.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/FileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/JSON.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/LLDBAssert.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Log.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Logging.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/SelectHelper.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Status.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Stream.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StreamGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StreamString.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringList.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/TildeExpressionResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Timer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UUID.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/VASprintf.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/VMRange.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Driver.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Driver.h stable/12/contrib/llvm/tools/lldb/tools/driver/Platform.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-server.cpp stable/12/contrib/llvm/tools/lli/lli.cpp stable/12/contrib/llvm/tools/llvm-ar/llvm-ar.cpp stable/12/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp stable/12/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporter.h stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterJson.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterJson.h stable/12/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageView.cpp stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp stable/12/contrib/llvm/tools/llvm-cov/TestingSupport.cpp stable/12/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp stable/12/contrib/llvm/tools/llvm-diff/DifferenceEngine.cpp stable/12/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp stable/12/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp stable/12/contrib/llvm/tools/llvm-lto/llvm-lto.cpp stable/12/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp stable/12/contrib/llvm/tools/llvm-mc/llvm-mc.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegion.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegion.h stable/12/contrib/llvm/tools/llvm-mca/PipelinePrinter.cpp stable/12/contrib/llvm/tools/llvm-mca/PipelinePrinter.h stable/12/contrib/llvm/tools/llvm-mca/llvm-mca.cpp stable/12/contrib/llvm/tools/llvm-nm/llvm-nm.cpp stable/12/contrib/llvm/tools/llvm-objcopy/ObjcopyOpts.td stable/12/contrib/llvm/tools/llvm-objcopy/StripOpts.td stable/12/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.cpp stable/12/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.h stable/12/contrib/llvm/tools/llvm-objdump/COFFDump.cpp stable/12/contrib/llvm/tools/llvm-objdump/ELFDump.cpp stable/12/contrib/llvm/tools/llvm-objdump/MachODump.cpp stable/12/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp stable/12/contrib/llvm/tools/llvm-objdump/llvm-objdump.h stable/12/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/InputFile.h stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h stable/12/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp stable/12/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp stable/12/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/MachODumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/ObjDumper.h stable/12/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp stable/12/contrib/llvm/tools/llvm-readobj/llvm-readobj.h stable/12/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp stable/12/contrib/llvm/tools/llvm-stress/llvm-stress.cpp stable/12/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-account.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-converter.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-graph.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-stacks.cpp stable/12/contrib/llvm/tools/opt/Debugify.cpp stable/12/contrib/llvm/tools/opt/NewPMDriver.cpp stable/12/contrib/llvm/tools/opt/opt.cpp stable/12/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp stable/12/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp stable/12/contrib/llvm/utils/TableGen/CTagsEmitter.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h stable/12/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenInstruction.h stable/12/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h stable/12/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenRegisters.h stable/12/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenSchedule.h stable/12/contrib/llvm/utils/TableGen/CodeGenTarget.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcher.h stable/12/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp stable/12/contrib/llvm/utils/TableGen/FastISelEmitter.cpp stable/12/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp stable/12/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp stable/12/contrib/llvm/utils/TableGen/InfoByHwMode.cpp stable/12/contrib/llvm/utils/TableGen/InfoByHwMode.h stable/12/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp stable/12/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp stable/12/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp stable/12/contrib/llvm/utils/TableGen/PredicateExpander.cpp stable/12/contrib/llvm/utils/TableGen/PredicateExpander.h stable/12/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp stable/12/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp stable/12/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp stable/12/contrib/llvm/utils/TableGen/TableGen.cpp stable/12/contrib/llvm/utils/TableGen/TableGenBackends.h stable/12/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp stable/12/contrib/llvm/utils/TableGen/X86ModRMFilters.h stable/12/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp stable/12/contrib/openmp/runtime/src/kmp.h stable/12/contrib/openmp/runtime/src/kmp_runtime.cpp stable/12/contrib/openmp/runtime/src/kmp_wrapper_getpid.h stable/12/contrib/openmp/runtime/src/ompt-general.cpp stable/12/etc/mtree/BSD.debug.dist stable/12/etc/mtree/BSD.usr.dist stable/12/lib/Makefile stable/12/lib/clang/freebsd_cc_version.h stable/12/lib/clang/headers/Makefile stable/12/lib/clang/include/clang/Basic/Version.inc stable/12/lib/clang/include/clang/Config/config.h stable/12/lib/clang/include/lld/Common/Version.inc stable/12/lib/clang/include/llvm/Config/config.h stable/12/lib/clang/include/llvm/Config/llvm-config.h stable/12/lib/clang/include/llvm/Support/VCSRevision.h stable/12/lib/clang/libclang/Makefile stable/12/lib/clang/liblldb/Makefile stable/12/lib/clang/libllvm/Makefile stable/12/lib/clang/libllvmminimal/Makefile stable/12/lib/libc++/Makefile stable/12/lib/libclang_rt/Makefile.inc stable/12/lib/libclang_rt/asan/Makefile stable/12/lib/libclang_rt/asan_dynamic/Makefile stable/12/lib/libclang_rt/msan/Makefile stable/12/lib/libclang_rt/safestack/Makefile stable/12/lib/libclang_rt/stats/Makefile stable/12/lib/libclang_rt/tsan/Makefile stable/12/lib/libclang_rt/ubsan_standalone/Makefile stable/12/lib/libgcc_eh/Makefile.inc stable/12/sys/sys/param.h stable/12/tools/build/mk/OptionalObsoleteFiles.inc stable/12/usr.bin/clang/Makefile stable/12/usr.bin/clang/lld/Makefile stable/12/usr.bin/clang/lldb/Makefile stable/12/usr.bin/clang/llvm-cov/Makefile stable/12/usr.bin/clang/llvm-mca/Makefile stable/12/usr.bin/clang/llvm-objcopy/Makefile stable/12/usr.bin/clang/llvm-objdump/Makefile stable/12/usr.bin/clang/llvm-pdbutil/Makefile stable/12/usr.bin/clang/llvm-tblgen/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/ObsoleteFiles.inc ============================================================================== --- stable/12/ObsoleteFiles.inc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/ObsoleteFiles.inc Fri Apr 12 20:03:27 2019 (r346168) @@ -38,6 +38,158 @@ # xargs -n1 | sort | uniq -d; # done +# 2019mmdd: new libc++ import which bumps version from 7.0.1 to 8.0.0. +OLD_FILES+=usr/include/c++/v1/experimental/dynarray +# 2019mmdd: new clang import which bumps version from 7.0.1 to 8.0.0. +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/esan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/7.0.1/include/sanitizer +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/7.0.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/7.0.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/altivec.h +OLD_FILES+=usr/lib/clang/7.0.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/arm64intr.h +OLD_FILES+=usr/lib/clang/7.0.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/7.0.1/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/7.0.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/7.0.1/include/armintr.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/cetintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/7.0.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/7.0.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/7.0.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/7.0.1/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/msa.h +OLD_FILES+=usr/lib/clang/7.0.1/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/opencl-c.h +OLD_FILES+=usr/lib/clang/7.0.1/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/7.0.1/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/7.0.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/7.0.1/include +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/7.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/7.0.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/7.0.1/lib +OLD_DIRS+=usr/lib/clang/7.0.1 # 20190216: new clang import which bumps version from 6.0.1 to 7.0.1. OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/asan_interface.h Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/UPDATING Fri Apr 12 20:03:27 2019 (r346168) @@ -16,6 +16,12 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +2019mmdd: + Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to + 8.0.0. Please see the 20141231 entry below for information about + prerequisites and upgrading, if you are not already using clang 3.5.0 + or higher. + 20190307: The RETPOLINE option produces non-functional ifunc-using binaries with Clang 7.0.1, and has been forced off (via BROKEN_OPTIONS). Modified: stable/12/contrib/compiler-rt/LICENSE.TXT ============================================================================== --- stable/12/contrib/compiler-rt/LICENSE.TXT Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/LICENSE.TXT Fri Apr 12 20:03:27 2019 (r346168) @@ -14,7 +14,7 @@ Full text of the relevant licenses is included below. University of Illinois/NCSA Open Source License -Copyright (c) 2009-2018 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT All rights reserved. Modified: stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h Fri Apr 12 20:03:27 2019 (r346168) @@ -82,7 +82,6 @@ extern "C" { Currently available with ASan only. */ void __sanitizer_purge_allocator(void); - #ifdef __cplusplus } // extern "C" #endif Modified: stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Fri Apr 12 20:03:27 2019 (r346168) @@ -124,6 +124,12 @@ extern "C" { // Symbolizes the supplied 'pc' using the format string 'fmt'. // Outputs at most 'out_buf_size' bytes into 'out_buf'. + // If 'out_buf' is not empty then output is zero or more non empty C strings + // followed by single empty C string. Multiple strings can be returned if PC + // corresponds to inlined function. Inlined frames are printed in the order + // from "most-inlined" to the "least-inlined", so the last frame should be the + // not inlined function. + // Inlined frames can be removed with 'symbolize_inline_frames=0'. // The format syntax is described in // lib/sanitizer_common/sanitizer_stacktrace_printer.h. void __sanitizer_symbolize_pc(void *pc, const char *fmt, char *out_buf, Modified: stable/12/contrib/compiler-rt/include/sanitizer/hwasan_interface.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/hwasan_interface.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/include/sanitizer/hwasan_interface.h Fri Apr 12 20:03:27 2019 (r346168) @@ -19,6 +19,12 @@ #ifdef __cplusplus extern "C" { #endif + // Initialize shadow but not the rest of the runtime. + // Does not call libc unless there is an error. + // Can be called multiple times, or not at all (in which case shadow will + // be initialized in compiler-inserted __hwasan_init() call). + void __hwasan_shadow_init(void); + // This function may be optionally provided by user and should return // a string containing HWASan runtime options. See asan_flags.h for details. const char* __hwasan_default_options(void); @@ -26,6 +32,51 @@ extern "C" { void __hwasan_enable_allocator_tagging(void); void __hwasan_disable_allocator_tagging(void); + // Mark region of memory with the given tag. Both address and size need to be + // 16-byte aligned. + void __hwasan_tag_memory(const volatile void *p, unsigned char tag, + size_t size); + + /// Set pointer tag. Previous tag is lost. + void *__hwasan_tag_pointer(const volatile void *p, unsigned char tag); + + // Set memory tag from the current SP address to the given address to zero. + // This is meant to annotate longjmp and other non-local jumps. + // This function needs to know the (almost) exact destination frame address; + // clearing shadow for the entire thread stack like __asan_handle_no_return + // does would cause false reports. + void __hwasan_handle_longjmp(const void *sp_dst); + + // Libc hook for thread creation. Should be called in the child thread before + // any instrumented code. + void __hwasan_thread_enter(); + + // Libc hook for thread destruction. No instrumented code should run after + // this call. + void __hwasan_thread_exit(); + + // Print shadow and origin for the memory range to stderr in a human-readable + // format. + void __hwasan_print_shadow(const volatile void *x, size_t size); + + // Print one-line report about the memory usage of the current process. + void __hwasan_print_memory_usage(); + + int __sanitizer_posix_memalign(void **memptr, size_t alignment, size_t size); + void * __sanitizer_memalign(size_t alignment, size_t size); + void * __sanitizer_aligned_alloc(size_t alignment, size_t size); + void * __sanitizer___libc_memalign(size_t alignment, size_t size); + void * __sanitizer_valloc(size_t size); + void * __sanitizer_pvalloc(size_t size); + void __sanitizer_free(void *ptr); + void __sanitizer_cfree(void *ptr); + size_t __sanitizer_malloc_usable_size(const void *ptr); + struct mallinfo __sanitizer_mallinfo(); + int __sanitizer_mallopt(int cmd, int value); + void __sanitizer_malloc_stats(void); + void * __sanitizer_calloc(size_t nmemb, size_t size); + void * __sanitizer_realloc(void *ptr, size_t size); + void * __sanitizer_malloc(size_t size); #ifdef __cplusplus } // extern "C" #endif Modified: stable/12/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h Fri Apr 12 20:03:27 2019 (r346168) @@ -21,8 +21,8 @@ // DO NOT EDIT! THIS FILE HAS BEEN GENERATED! // // Generated with: generate_netbsd_syscalls.awk -// Generated date: 2018-03-03 -// Generated from: syscalls.master,v 1.291 2018/01/06 16:41:23 kamil Exp +// Generated date: 2018-10-30 +// Generated from: syscalls.master,v 1.293 2018/07/31 13:00:13 rjs Exp // //===----------------------------------------------------------------------===// #ifndef SANITIZER_NETBSD_SYSCALL_HOOKS_H @@ -986,7 +986,15 @@ #define __sanitizer_syscall_post_fpathconf(res, fd, name) \ __sanitizer_syscall_post_impl_fpathconf(res, (long long)(fd), \ (long long)(name)) -/* syscall 193 has been skipped */ +#define __sanitizer_syscall_pre_getsockopt2(s, level, name, val, avalsize) \ + __sanitizer_syscall_pre_impl_getsockopt2( \ + (long long)(s), (long long)(level), (long long)(name), (long long)(val), \ + (long long)(avalsize)) +#define __sanitizer_syscall_post_getsockopt2(res, s, level, name, val, \ + avalsize) \ + __sanitizer_syscall_post_impl_getsockopt2( \ + res, (long long)(s), (long long)(level), (long long)(name), \ + (long long)(val), (long long)(avalsize)) #define __sanitizer_syscall_pre_getrlimit(which, rlp) \ __sanitizer_syscall_pre_impl_getrlimit((long long)(which), (long long)(rlp)) #define __sanitizer_syscall_post_getrlimit(res, which, rlp) \ @@ -1752,18 +1760,8 @@ __sanitizer_syscall_post_impl___sigaction_sigtramp( \ res, (long long)(signum), (long long)(nsa), (long long)(osa), \ (long long)(tramp), (long long)(vers)) -#define __sanitizer_syscall_pre_pmc_get_info(ctr, op, args) \ - __sanitizer_syscall_pre_impl_pmc_get_info((long long)(ctr), (long long)(op), \ - (long long)(args)) -#define __sanitizer_syscall_post_pmc_get_info(res, ctr, op, args) \ - __sanitizer_syscall_post_impl_pmc_get_info( \ - res, (long long)(ctr), (long long)(op), (long long)(args)) -#define __sanitizer_syscall_pre_pmc_control(ctr, op, args) \ - __sanitizer_syscall_pre_impl_pmc_control((long long)(ctr), (long long)(op), \ - (long long)(args)) -#define __sanitizer_syscall_post_pmc_control(res, ctr, op, args) \ - __sanitizer_syscall_post_impl_pmc_control( \ - res, (long long)(ctr), (long long)(op), (long long)(args)) +/* syscall 341 has been skipped */ +/* syscall 342 has been skipped */ #define __sanitizer_syscall_pre_rasctl(addr, len, op) \ __sanitizer_syscall_pre_impl_rasctl((long long)(addr), (long long)(len), \ (long long)(op)) @@ -3444,7 +3442,13 @@ void __sanitizer_syscall_post_impl_pathconf(long long void __sanitizer_syscall_pre_impl_fpathconf(long long fd, long long name); void __sanitizer_syscall_post_impl_fpathconf(long long res, long long fd, long long name); -/* syscall 193 has been skipped */ +void __sanitizer_syscall_pre_impl_getsockopt2(long long s, long long level, + long long name, long long val, + long long avalsize); +void __sanitizer_syscall_post_impl_getsockopt2(long long res, long long s, + long long level, long long name, + long long val, + long long avalsize); void __sanitizer_syscall_pre_impl_getrlimit(long long which, long long rlp); void __sanitizer_syscall_post_impl_getrlimit(long long res, long long which, long long rlp); @@ -4001,14 +4005,8 @@ void __sanitizer_syscall_pre_impl___sigaction_sigtramp void __sanitizer_syscall_post_impl___sigaction_sigtramp( long long res, long long signum, long long nsa, long long osa, long long tramp, long long vers); -void __sanitizer_syscall_pre_impl_pmc_get_info(long long ctr, long long op, - long long args); -void __sanitizer_syscall_post_impl_pmc_get_info(long long res, long long ctr, - long long op, long long args); -void __sanitizer_syscall_pre_impl_pmc_control(long long ctr, long long op, - long long args); -void __sanitizer_syscall_post_impl_pmc_control(long long res, long long ctr, - long long op, long long args); +/* syscall 341 has been skipped */ +/* syscall 342 has been skipped */ void __sanitizer_syscall_pre_impl_rasctl(long long addr, long long len, long long op); void __sanitizer_syscall_post_impl_rasctl(long long res, long long addr, Modified: stable/12/contrib/compiler-rt/include/xray/xray_log_interface.h ============================================================================== --- stable/12/contrib/compiler-rt/include/xray/xray_log_interface.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/include/xray/xray_log_interface.h Fri Apr 12 20:03:27 2019 (r346168) @@ -158,8 +158,8 @@ struct XRayLogImpl { /// The log initialization routine provided by the implementation, always /// provided with the following parameters: /// - /// - buffer size - /// - maximum number of buffers + /// - buffer size (unused) + /// - maximum number of buffers (unused) /// - a pointer to an argument struct that the implementation MUST handle /// - the size of the argument struct /// @@ -354,26 +354,5 @@ XRayLogFlushStatus __xray_log_process_buffers(void (*P XRayBuffer)); } // extern "C" - -namespace __xray { - -/// DEPRECATED: Use __xray_log_init_mode(...) instead, and provide flag -/// configuration strings to set the options instead. -/// Options used by the LLVM XRay FDR logging implementation. -struct FDRLoggingOptions { - bool ReportErrors = false; - int Fd = -1; -}; - -/// DEPRECATED: Use __xray_log_init_mode(...) instead, and provide flag -/// configuration strings to set the options instead. -/// Options used by the LLVM XRay Basic (Naive) logging implementation. -struct BasicLoggingOptions { - int DurationFilterMicros = 0; - size_t MaxStackDepth = 0; - size_t ThreadBufferSize = 0; -}; - -} // namespace __xray #endif // XRAY_XRAY_LOG_INTERFACE_H Modified: stable/12/contrib/compiler-rt/lib/asan/asan_allocator.h ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_allocator.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_allocator.h Fri Apr 12 20:03:27 2019 (r346168) @@ -148,6 +148,7 @@ const uptr kAllocatorSpace = 0x600000000000ULL; const uptr kAllocatorSize = 0x40000000000ULL; // 4T. typedef DefaultSizeClassMap SizeClassMap; # endif +template struct AP64 { // Allocator64 parameters. Deliberately using a short name. static const uptr kSpaceBeg = kAllocatorSpace; static const uptr kSpaceSize = kAllocatorSize; @@ -155,37 +156,57 @@ struct AP64 { // Allocator64 parameters. Deliberately typedef __asan::SizeClassMap SizeClassMap; typedef AsanMapUnmapCallback MapUnmapCallback; static const uptr kFlags = 0; + using AddressSpaceView = AddressSpaceViewTy; }; -typedef SizeClassAllocator64 PrimaryAllocator; +template +using PrimaryAllocatorASVT = SizeClassAllocator64>; +using PrimaryAllocator = PrimaryAllocatorASVT; #else // Fallback to SizeClassAllocator32. static const uptr kRegionSizeLog = 20; static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog; # if SANITIZER_WORDSIZE == 32 -typedef FlatByteMap ByteMap; +template +using ByteMapASVT = FlatByteMap; # elif SANITIZER_WORDSIZE == 64 -typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap; +template +using ByteMapASVT = + TwoLevelByteMap<(kNumRegions >> 12), 1 << 12, AddressSpaceView>; # endif typedef CompactSizeClassMap SizeClassMap; +template struct AP32 { static const uptr kSpaceBeg = 0; static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE; static const uptr kMetadataSize = 16; typedef __asan::SizeClassMap SizeClassMap; static const uptr kRegionSizeLog = __asan::kRegionSizeLog; - typedef __asan::ByteMap ByteMap; + using AddressSpaceView = AddressSpaceViewTy; + using ByteMap = __asan::ByteMapASVT; typedef AsanMapUnmapCallback MapUnmapCallback; static const uptr kFlags = 0; }; -typedef SizeClassAllocator32 PrimaryAllocator; +template +using PrimaryAllocatorASVT = SizeClassAllocator32 >; +using PrimaryAllocator = PrimaryAllocatorASVT; #endif // SANITIZER_CAN_USE_ALLOCATOR64 static const uptr kNumberOfSizeClasses = SizeClassMap::kNumClasses; -typedef SizeClassAllocatorLocalCache AllocatorCache; -typedef LargeMmapAllocator SecondaryAllocator; -typedef CombinedAllocator AsanAllocator; +template +using AllocatorCacheASVT = + SizeClassAllocatorLocalCache>; +using AllocatorCache = AllocatorCacheASVT; +template +using SecondaryAllocatorASVT = + LargeMmapAllocator; +template +using AsanAllocatorASVT = + CombinedAllocator, + AllocatorCacheASVT, + SecondaryAllocatorASVT>; +using AsanAllocator = AsanAllocatorASVT; struct AsanThreadLocalMallocStorage { uptr quarantine_cache[16]; Modified: stable/12/contrib/compiler-rt/lib/asan/asan_errors.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_errors.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_errors.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -125,9 +125,8 @@ void ErrorAllocTypeMismatch::Print() { Decorator d; Printf("%s", d.Error()); Report("ERROR: AddressSanitizer: %s (%s vs %s) on %p\n", - scariness.GetDescription(), - alloc_names[alloc_type], dealloc_names[dealloc_type], - addr_description.addr); + scariness.GetDescription(), alloc_names[alloc_type], + dealloc_names[dealloc_type], addr_description.Address()); Printf("%s", d.Default()); CHECK_GT(dealloc_stack->size, 0); scariness.Print(); Modified: stable/12/contrib/compiler-rt/lib/asan/asan_errors.h ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_errors.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_errors.h Fri Apr 12 20:03:27 2019 (r346168) @@ -110,8 +110,8 @@ struct ErrorFreeNotMalloced : ErrorBase { struct ErrorAllocTypeMismatch : ErrorBase { const BufferedStackTrace *dealloc_stack; - HeapAddressDescription addr_description; AllocType alloc_type, dealloc_type; + AddressDescription addr_description; ErrorAllocTypeMismatch() = default; // (*) ErrorAllocTypeMismatch(u32 tid, BufferedStackTrace *stack, uptr addr, @@ -119,9 +119,8 @@ struct ErrorAllocTypeMismatch : ErrorBase { : ErrorBase(tid, 10, "alloc-dealloc-mismatch"), dealloc_stack(stack), alloc_type(alloc_type_), - dealloc_type(dealloc_type_) { - GetHeapAddressInformation(addr, 1, &addr_description); - }; + dealloc_type(dealloc_type_), + addr_description(addr, 1, false) {} void Print(); }; Modified: stable/12/contrib/compiler-rt/lib/asan/asan_flags.inc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_flags.inc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_flags.inc Fri Apr 12 20:03:27 2019 (r346168) @@ -152,8 +152,6 @@ ASAN_FLAG(const char *, suppressions, "", "Suppression ASAN_FLAG(bool, halt_on_error, true, "Crash the program after printing the first error report " "(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 " Modified: stable/12/contrib/compiler-rt/lib/asan/asan_fuchsia.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_fuchsia.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_fuchsia.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -190,6 +190,13 @@ static void ThreadExitHook(void *hook, uptr os_id) { AsanThread::TSDDtor(per_thread); } +bool HandleDlopenInit() { + // Not supported on this platform. + static_assert(!SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be false"); + return false; +} + } // namespace __asan // These are declared (in extern "C") by . Modified: stable/12/contrib/compiler-rt/lib/asan/asan_globals.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_globals.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_globals.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -83,9 +83,11 @@ static bool IsAddressNearGlobal(uptr addr, const __asa } static void ReportGlobal(const Global &g, const char *prefix) { - Report("%s Global[%p]: beg=%p size=%zu/%zu name=%s module=%s dyn_init=%zu\n", - prefix, &g, (void *)g.beg, g.size, g.size_with_redzone, g.name, - g.module_name, g.has_dynamic_init); + Report( + "%s Global[%p]: beg=%p size=%zu/%zu name=%s module=%s dyn_init=%zu " + "odr_indicator=%p\n", + prefix, &g, (void *)g.beg, g.size, g.size_with_redzone, g.name, + g.module_name, g.has_dynamic_init, (void *)g.odr_indicator); if (g.location) { Report(" location (%p): name=%s[%p], %d %d\n", g.location, g.location->filename, g.location->filename, g.location->line_no, @@ -133,6 +135,9 @@ enum GlobalSymbolState { // this method in case compiler instruments global variables through their // local aliases. static void CheckODRViolationViaIndicator(const Global *g) { + // Instrumentation requests to skip ODR check. + if (g->odr_indicator == UINTPTR_MAX) + return; u8 *odr_indicator = reinterpret_cast(g->odr_indicator); if (*odr_indicator == UNREGISTERED) { *odr_indicator = REGISTERED; @@ -183,9 +188,7 @@ static void CheckODRViolationViaPoisoning(const Global // This routine chooses between two different methods of ODR violation // detection. static inline bool UseODRIndicator(const Global *g) { - // Use ODR indicator method iff use_odr_indicator flag is set and - // indicator symbol address is not 0. - return flags()->use_odr_indicator && g->odr_indicator > 0; + return g->odr_indicator > 0; } // Register a global variable. @@ -248,7 +251,7 @@ static void UnregisterGlobal(const Global *g) { // implementation. It might not be worth doing anyway. // Release ODR indicator. - if (UseODRIndicator(g)) { + if (UseODRIndicator(g) && g->odr_indicator != UINTPTR_MAX) { u8 *odr_indicator = reinterpret_cast(g->odr_indicator); *odr_indicator = UNREGISTERED; } Modified: stable/12/contrib/compiler-rt/lib/asan/asan_globals_win.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_globals_win.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_globals_win.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -29,7 +29,7 @@ static void call_on_globals(void (*hook)(__asan_global __asan_global *end = &__asan_globals_end; uptr bytediff = (uptr)end - (uptr)start; if (bytediff % sizeof(__asan_global) != 0) { -#ifdef SANITIZER_DLL_THUNK +#if defined(SANITIZER_DLL_THUNK) || defined(SANITIZER_DYNAMIC_RUNTIME_THUNK) __debugbreak(); #else CHECK("corrupt asan global array"); Modified: stable/12/contrib/compiler-rt/lib/asan/asan_internal.h ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_internal.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_internal.h Fri Apr 12 20:03:27 2019 (r346168) @@ -111,6 +111,11 @@ void *AsanDlSymNext(const char *sym); void ReserveShadowMemoryRange(uptr beg, uptr end, const char *name); +// Returns `true` iff most of ASan init process should be skipped due to the +// ASan library being loaded via `dlopen()`. Platforms may perform any +// `dlopen()` specific initialization inside this function. +bool HandleDlopenInit(); + // Add convenient macro for interface functions that may be represented as // weak hooks. #define ASAN_MALLOC_HOOK(ptr, size) \ Modified: stable/12/contrib/compiler-rt/lib/asan/asan_linux.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_linux.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_linux.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -248,6 +248,13 @@ void *AsanDlSymNext(const char *sym) { return dlsym(RTLD_NEXT, sym); } +bool HandleDlopenInit() { + // Not supported on this platform. + static_assert(!SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be false"); + return false; +} + } // namespace __asan #endif // SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD || Modified: stable/12/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -209,7 +209,7 @@ INTERCEPTOR(struct fake_mallinfo, mallinfo, void) { } INTERCEPTOR(int, mallopt, int cmd, int value) { - return -1; + return 0; } #endif // SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO Modified: stable/12/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -61,4 +61,25 @@ using namespace __asan; #include "sanitizer_common/sanitizer_malloc_mac.inc" +namespace COMMON_MALLOC_NAMESPACE { +bool HandleDlopenInit() { + static_assert(SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be true"); + // We have no reliable way of knowing how we are being loaded + // so make it a requirement on Apple platforms to set this environment + // variable to indicate that we want to perform initialization via + // dlopen(). + auto init_str = GetEnv("APPLE_ASAN_INIT_FOR_DLOPEN"); + if (!init_str) + return false; + if (internal_strncmp(init_str, "1", 1) != 0) + return false; + // When we are loaded via `dlopen()` path we still initialize the malloc zone + // so Symbolication clients (e.g. `leaks`) that load the ASan allocator can + // find an initialized malloc zone. + InitMallocZoneFields(); + return true; +} +} // namespace COMMON_MALLOC_NAMESPACE + #endif Modified: stable/12/contrib/compiler-rt/lib/asan/asan_malloc_win.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_malloc_win.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_malloc_win.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -14,9 +14,18 @@ #include "sanitizer_common/sanitizer_platform.h" #if SANITIZER_WINDOWS -#define WIN32_LEAN_AND_MEAN -#include +// Intentionally not including windows.h here, to avoid the risk of +// pulling in conflicting declarations of these functions. (With mingw-w64, +// there's a risk of windows.h pulling in stdint.h.) +typedef int BOOL; +typedef void *HANDLE; +typedef const void *LPCVOID; +typedef void *LPVOID; +#define HEAP_ZERO_MEMORY 0x00000008 +#define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010 + + #include "asan_allocator.h" #include "asan_interceptors.h" #include "asan_internal.h" @@ -125,13 +134,18 @@ void *_recalloc_base(void *p, size_t n, size_t elem_si } ALLOCATION_FUNCTION_ATTRIBUTE -size_t _msize(const void *ptr) { +size_t _msize(void *ptr) { GET_CURRENT_PC_BP_SP; (void)sp; return asan_malloc_usable_size(ptr, pc, bp); } ALLOCATION_FUNCTION_ATTRIBUTE +size_t _msize_base(void *ptr) { + return _msize(ptr); +} + +ALLOCATION_FUNCTION_ATTRIBUTE void *_expand(void *memblock, size_t size) { // _expand is used in realloc-like functions to resize the buffer if possible. // We don't want memory to stand still while resizing buffers, so return 0. @@ -226,6 +240,7 @@ void ReplaceSystemMalloc() { TryToOverrideFunction("_recalloc_base", (uptr)_recalloc); TryToOverrideFunction("_recalloc_crt", (uptr)_recalloc); TryToOverrideFunction("_msize", (uptr)_msize); + TryToOverrideFunction("_msize_base", (uptr)_msize); TryToOverrideFunction("_expand", (uptr)_expand); TryToOverrideFunction("_expand_base", (uptr)_expand); Modified: stable/12/contrib/compiler-rt/lib/asan/asan_new_delete.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_new_delete.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_new_delete.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -26,7 +26,7 @@ // anyway by passing extra -export flags to the linker, which is exactly that // dllexport would normally do. We need to export them in order to make the // VS2015 dynamic CRT (MD) work. -#if SANITIZER_WINDOWS +#if SANITIZER_WINDOWS && defined(_MSC_VER) #define CXX_OPERATOR_ATTRIBUTE #define COMMENT_EXPORT(sym) __pragma(comment(linker, "/export:" sym)) #ifdef _WIN64 Modified: stable/12/contrib/compiler-rt/lib/asan/asan_posix.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_posix.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_posix.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -40,6 +40,51 @@ void AsanOnDeadlySignal(int signo, void *siginfo, void // ---------------------- TSD ---------------- {{{1 +#if SANITIZER_NETBSD || SANITIZER_FREEBSD +// Thread Static Data cannot be used in early init on NetBSD and FreeBSD. +// Reuse the Asan TSD API for compatibility with existing code +// with an alternative implementation. + +static void (*tsd_destructor)(void *tsd) = nullptr; + +struct tsd_key { + tsd_key() : key(nullptr) {} + ~tsd_key() { + CHECK(tsd_destructor); + if (key) + (*tsd_destructor)(key); + } + void *key; +}; + +static thread_local struct tsd_key key; + +void AsanTSDInit(void (*destructor)(void *tsd)) { + CHECK(!tsd_destructor); + tsd_destructor = destructor; +} + +void *AsanTSDGet() { + CHECK(tsd_destructor); + return key.key; +} + +void AsanTSDSet(void *tsd) { + CHECK(tsd_destructor); + CHECK(tsd); + CHECK(!key.key); + key.key = tsd; +} + +void PlatformTSDDtor(void *tsd) { + CHECK(tsd_destructor); + CHECK_EQ(key.key, tsd); + key.key = nullptr; + // Make sure that signal handler can not see a stale current thread pointer. + atomic_signal_fence(memory_order_seq_cst); + AsanThread::TSDDtor(tsd); +} +#else static pthread_key_t tsd_key; static bool tsd_key_inited = false; void AsanTSDInit(void (*destructor)(void *tsd)) { @@ -67,6 +112,7 @@ void PlatformTSDDtor(void *tsd) { } AsanThread::TSDDtor(tsd); } +#endif } // namespace __asan #endif // SANITIZER_POSIX Modified: stable/12/contrib/compiler-rt/lib/asan/asan_report.h ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_report.h Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_report.h Fri Apr 12 20:03:27 2019 (r346168) @@ -12,6 +12,9 @@ // ASan-private header for error reporting functions. //===----------------------------------------------------------------------===// +#ifndef ASAN_REPORT_H +#define ASAN_REPORT_H + #include "asan_allocator.h" #include "asan_internal.h" #include "asan_thread.h" @@ -92,3 +95,4 @@ void ReportMacCfReallocUnknown(uptr addr, uptr zone_pt BufferedStackTrace *stack); } // namespace __asan +#endif // ASAN_REPORT_H Modified: stable/12/contrib/compiler-rt/lib/asan/asan_rtems.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_rtems.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_rtems.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -213,6 +213,12 @@ static void HandleExit() { } } +bool HandleDlopenInit() { + // Not supported on this platform. + static_assert(!SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be false"); + return false; +} } // namespace __asan // These are declared (in extern "C") by . Modified: stable/12/contrib/compiler-rt/lib/asan/asan_rtl.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_rtl.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_rtl.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -383,6 +383,19 @@ void PrintAddressSpaceLayout() { kHighShadowBeg > kMidMemEnd); } +#if defined(__thumb__) && defined(__linux__) +#define START_BACKGROUND_THREAD_IN_ASAN_INTERNAL +#endif + +#ifndef START_BACKGROUND_THREAD_IN_ASAN_INTERNAL +static bool UNUSED __local_asan_dyninit = [] { + MaybeStartBackgroudThread(); + SetSoftRssLimitExceededCallback(AsanSoftRssLimitExceededCallback); + + return false; +}(); +#endif + static void AsanInitInternal() { if (LIKELY(asan_inited)) return; SanitizerToolName = "AddressSanitizer"; @@ -396,6 +409,14 @@ static void AsanInitInternal() { // initialization steps look at flags(). InitializeFlags(); + // Stop performing init at this point if we are being loaded via + // dlopen() and the platform supports it. + if (SANITIZER_SUPPORTS_INIT_FOR_DLOPEN && UNLIKELY(HandleDlopenInit())) { + asan_init_is_running = false; + VReport(1, "AddressSanitizer init is being performed for dlopen().\n"); + return; + } + AsanCheckIncompatibleRT(); AsanCheckDynamicRTPrereqs(); AvoidCVE_2016_2143(); @@ -420,6 +441,8 @@ static void AsanInitInternal() { __asan_option_detect_stack_use_after_return = flags()->detect_stack_use_after_return; + __sanitizer::InitializePlatformEarly(); + // Re-exec ourselves if we need to set additional env or command line args. MaybeReexec(); @@ -447,8 +470,10 @@ static void AsanInitInternal() { allocator_options.SetFrom(flags(), common_flags()); InitializeAllocator(allocator_options); +#ifdef START_BACKGROUND_THREAD_IN_ASAN_INTERNAL MaybeStartBackgroudThread(); SetSoftRssLimitExceededCallback(AsanSoftRssLimitExceededCallback); +#endif // On Linux AsanThread::ThreadStart() calls malloc() that's why asan_inited // should be set to 1 prior to initializing the threads. Modified: stable/12/contrib/compiler-rt/lib/asan/asan_thread.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_thread.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_thread.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -223,9 +223,11 @@ void AsanThread::Init(const InitOptions *options) { atomic_store(&stack_switching_, false, memory_order_release); CHECK_EQ(this->stack_size(), 0U); SetThreadStackAndTls(options); - CHECK_GT(this->stack_size(), 0U); - CHECK(AddrIsInMem(stack_bottom_)); - CHECK(AddrIsInMem(stack_top_ - 1)); + if (stack_top_ != stack_bottom_) { + CHECK_GT(this->stack_size(), 0U); + CHECK(AddrIsInMem(stack_bottom_)); + CHECK(AddrIsInMem(stack_top_ - 1)); + } ClearShadowForThreadStackAndTLS(); fake_stack_ = nullptr; if (__asan_option_detect_stack_use_after_return) @@ -289,20 +291,23 @@ void AsanThread::SetThreadStackAndTls(const InitOption DCHECK_EQ(options, nullptr); uptr tls_size = 0; uptr stack_size = 0; - GetThreadStackAndTls(tid() == 0, const_cast(&stack_bottom_), - const_cast(&stack_size), &tls_begin_, &tls_size); + GetThreadStackAndTls(tid() == 0, &stack_bottom_, &stack_size, &tls_begin_, + &tls_size); stack_top_ = stack_bottom_ + stack_size; tls_end_ = tls_begin_ + tls_size; dtls_ = DTLS_Get(); - int local; - CHECK(AddrIsInStack((uptr)&local)); + if (stack_top_ != stack_bottom_) { + int local; + CHECK(AddrIsInStack((uptr)&local)); + } } #endif // !SANITIZER_FUCHSIA && !SANITIZER_RTEMS void AsanThread::ClearShadowForThreadStackAndTLS() { - PoisonShadow(stack_bottom_, stack_top_ - stack_bottom_, 0); + if (stack_top_ != stack_bottom_) + PoisonShadow(stack_bottom_, stack_top_ - stack_bottom_, 0); if (tls_begin_ != tls_end_) { uptr tls_begin_aligned = RoundDownTo(tls_begin_, SHADOW_GRANULARITY); uptr tls_end_aligned = RoundUpTo(tls_end_, SHADOW_GRANULARITY); @@ -314,6 +319,9 @@ void AsanThread::ClearShadowForThreadStackAndTLS() { bool AsanThread::GetStackFrameAccessByAddr(uptr addr, StackFrameAccess *access) { + if (stack_top_ == stack_bottom_) + return false; + uptr bottom = 0; if (AddrIsInStack(addr)) { bottom = stack_bottom(); Modified: stable/12/contrib/compiler-rt/lib/asan/asan_win.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_win.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_win.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -159,6 +159,14 @@ INTERCEPTOR_WINAPI(DWORD, CreateThread, namespace __asan { void InitializePlatformInterceptors() { + // The interceptors were not designed to be removable, so we have to keep this + // module alive for the life of the process. + HMODULE pinned; + CHECK(GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | + GET_MODULE_HANDLE_EX_FLAG_PIN, + (LPCWSTR)&InitializePlatformInterceptors, + &pinned)); + ASAN_INTERCEPT_FUNC(CreateThread); ASAN_INTERCEPT_FUNC(SetUnhandledExceptionFilter); @@ -312,6 +320,13 @@ int __asan_set_seh_filter() { if (prev_seh_handler != &SEHHandler) default_seh_handler = prev_seh_handler; return 0; +} + +bool HandleDlopenInit() { + // Not supported on this platform. + static_assert(!SANITIZER_SUPPORTS_INIT_FOR_DLOPEN, + "Expected SANITIZER_SUPPORTS_INIT_FOR_DLOPEN to be false"); + return false; } #if !ASAN_DYNAMIC Modified: stable/12/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc ============================================================================== --- stable/12/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc Fri Apr 12 20:03:27 2019 (r346168) @@ -48,6 +48,7 @@ INTERCEPT_WRAP_W_WWW(_recalloc) INTERCEPT_WRAP_W_WWW(_recalloc_base) INTERCEPT_WRAP_W_W(_msize) +INTERCEPT_WRAP_W_W(_msize_base) INTERCEPT_WRAP_W_W(_expand) INTERCEPT_WRAP_W_W(_expand_dbg) Modified: stable/12/contrib/compiler-rt/lib/builtins/arm/addsf3.S ============================================================================== --- stable/12/contrib/compiler-rt/lib/builtins/arm/addsf3.S Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/builtins/arm/addsf3.S Fri Apr 12 20:03:27 2019 (r346168) @@ -178,7 +178,7 @@ LOCAL_LABEL(do_substraction): push {r0, r1, r2, r3} movs r0, r4 - bl __clzsi2 + bl SYMBOL_NAME(__clzsi2) movs r5, r0 pop {r0, r1, r2, r3} // shift = rep_clz(aSignificand) - rep_clz(implicitBit << 3); Modified: stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S ============================================================================== --- stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S Fri Apr 12 19:05:47 2019 (r346167) +++ stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S Fri Apr 12 20:03:27 2019 (r346168) @@ -55,7 +55,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmpeq) mov ip, #APSR_C msr APSR_nzcvq, ip #else - msr CPSR_f, #APSR_C + msr APSR_nzcvq, #APSR_C *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Fri Apr 12 20:35:12 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 97CE01585834; Fri, 12 Apr 2019 20:35:12 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3C8F28BA11; Fri, 12 Apr 2019 20:35:12 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0544C268F6; Fri, 12 Apr 2019 20:35:12 +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 x3CKZB48081322; Fri, 12 Apr 2019 20:35:11 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3CKZBPQ081321; Fri, 12 Apr 2019 20:35:11 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201904122035.x3CKZBPQ081321@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Fri, 12 Apr 2019 20:35:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346169 - stable/12/share/man/man5 X-SVN-Group: stable-12 X-SVN-Commit-Author: sjg X-SVN-Commit-Paths: stable/12/share/man/man5 X-SVN-Commit-Revision: 346169 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3C8F28BA11 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 20:35:12 -0000 Author: sjg Date: Fri Apr 12 20:35:11 2019 New Revision: 346169 URL: https://svnweb.freebsd.org/changeset/base/346169 Log: Regenerate src.conf.5 for recent changes. Modified: stable/12/share/man/man5/src.conf.5 Modified: stable/12/share/man/man5/src.conf.5 ============================================================================== --- stable/12/share/man/man5/src.conf.5 Fri Apr 12 20:03:27 2019 (r346168) +++ stable/12/share/man/man5/src.conf.5 Fri Apr 12 20:35:11 2019 (r346169) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd November 29, 2018 +.Dd April 12, 2019 .Dt SRC.CONF 5 .Os .Sh NAME @@ -137,6 +137,29 @@ This must be set in the environment, make command line .Pa /etc/src-env.conf , not .Pa /etc/src.conf . +.It Va WITH_BEARSSL +Build the BearSSL library. +.Pp +BearSSL is a tiny SSL library suitable for embedded environments. +For details see +.Lk http://www.BearSSL.org/ +.Pp +This library is currently only used to perform +signature verification and related operations +for Verified Exec and +.Xr loader 8 . +When set, these options are also in effect: +.Pp +.Bl -inset -compact +.It Va WITH_LOADER_VERIEXEC +(unless +.Va WITHOUT_LOADER_VERIEXEC +is set explicitly) +.It Va WITH_VERIEXEC +(unless +.Va WITHOUT_VERIEXEC +is set explicitly) +.El .It Va WITHOUT_BHYVE Set to not build or install .Xr bhyve 8 , @@ -314,6 +337,8 @@ When set, it enforces these options: .It .Va WITHOUT_CTF .It +.Va WITHOUT_LOADER_ZFS +.It .Va WITHOUT_ZFS .El .It Va WITHOUT_CLANG @@ -1066,7 +1091,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -riscv/riscv64 and sparc64/sparc64. +arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. .It Va WITH_LLVM_TARGET_AARCH64 Set to build LLVM target support for AArch64. The @@ -1074,7 +1099,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armv6, arm/armv7, 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 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, 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 and powerpc/powerpcspe. .It Va WITHOUT_LLVM_TARGET_ALL Set to only build the required LLVM target support. This option is preferred to specific target support options. @@ -1140,7 +1165,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -riscv/riscv64 and sparc64/sparc64. +arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. .It Va WITH_LLVM_TARGET_MIPS Set to build LLVM target support for MIPS. The @@ -1148,7 +1173,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armv6, arm/armv7, 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 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, 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 and powerpc/powerpcspe. .It Va WITHOUT_LLVM_TARGET_POWERPC Set to not build LLVM target support for PowerPC. The @@ -1156,7 +1181,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -riscv/riscv64 and sparc64/sparc64. +arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. .It Va WITH_LLVM_TARGET_POWERPC Set to build LLVM target support for PowerPC. The @@ -1164,7 +1189,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armv6, arm/armv7, 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 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, 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 and powerpc/powerpcspe. .It Va WITHOUT_LLVM_TARGET_SPARC Set to not build LLVM target support for SPARC. The @@ -1172,7 +1197,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -riscv/riscv64 and sparc64/sparc64. +arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. .It Va WITH_LLVM_TARGET_SPARC Set to build LLVM target support for SPARC. The @@ -1180,7 +1205,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armv6, arm/armv7, 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 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, 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 and powerpc/powerpcspe. .It Va WITHOUT_LLVM_TARGET_X86 Set to not build LLVM target support for X86. The @@ -1188,7 +1213,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -riscv/riscv64 and sparc64/sparc64. +arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. .It Va WITH_LLVM_TARGET_X86 Set to build LLVM target support for X86. The @@ -1196,7 +1221,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armv6, arm/armv7, 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 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, 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 and powerpc/powerpcspe. .It Va WITH_LOADER_FIREWIRE Enable firewire support in /boot/loader on x86. This option is a nop on all other platforms. @@ -1230,6 +1255,15 @@ Set to build ubldr. .Pp This is a default setting on arm/arm, arm/armv6, arm/armv7, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpcspe. +.It Va WITH_LOADER_VERIEXEC +Enable building +.Xr loader 8 +with support for verifcation similar to Verified Exec. +.Pp +It depends on +.Va WITH_BEARSSL +.It Va WITHOUT_LOADER_ZFS +Set to not build ZFS file system boot loader support. .It Va WITHOUT_LOCALES Set to not build localization files; see .Xr locale 1 . @@ -1820,6 +1854,15 @@ Set to not build user accounting tools such as .Xr lastlogin 8 and .Xr utx 8 . +.It Va WITH_VERIEXEC +Enable building +.Xr veriexec 8 +which loads the contents of verified manifests into the kernel +for use by +.Xr mac_veriexec 4 +.Pp +It depends on +.Va WITH_BEARSSL .It Va WITHOUT_VI Set to not build and install vi, view, ex and related programs. .It Va WITHOUT_VT @@ -1854,7 +1897,7 @@ without support for the IEEE 802.1X protocol and witho support for EAP-PEAP, EAP-TLS, EAP-LEAP, and EAP-TTLS protocols (usable only via 802.1X). .It Va WITHOUT_ZFS -Set to not build ZFS file system. +Set to not build ZFS file system kernel module, libraries, and user commands. .It Va WITHOUT_ZONEINFO Set to not build the timezone database. When set, it enforces these options: From owner-svn-src-stable@freebsd.org Fri Apr 12 20:35:40 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11F0E1585870; Fri, 12 Apr 2019 20:35:40 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.pphosted.com", Issuer "Thawte RSA CA 2018" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 842688BB22; Fri, 12 Apr 2019 20:35:39 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from pps.filterd (m0108158.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3CKYRpr011690; Fri, 12 Apr 2019 13:35:36 -0700 Received: from nam01-bn3-obe.outbound.protection.outlook.com (mail-bn3nam01lp2057.outbound.protection.outlook.com [104.47.33.57]) by mx0a-00273201.pphosted.com with ESMTP id 2rtxt98by4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 12 Apr 2019 13:35:36 -0700 Received: from SN4PR0501CA0045.namprd05.prod.outlook.com (2603:10b6:803:41::22) by DM6PR05MB4187.namprd05.prod.outlook.com (2603:10b6:5:91::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.3; Fri, 12 Apr 2019 20:35:33 +0000 Received: from CO1NAM05FT047.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e50::204) by SN4PR0501CA0045.outlook.office365.com (2603:10b6:803:41::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1792.11 via Frontend Transport; Fri, 12 Apr 2019 20:35:32 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.12 as permitted sender) Received: from P-EXFEND-EQX-01.jnpr.net (66.129.239.12) by CO1NAM05FT047.mail.protection.outlook.com (10.152.96.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1792.7 via Frontend Transport; Fri, 12 Apr 2019 20:35:31 +0000 Received: from P-EXBEND-EQX-01.jnpr.net (10.104.8.52) by P-EXFEND-EQX-01.jnpr.net (10.104.8.54) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 12 Apr 2019 13:35:27 -0700 Received: from p-mailhub01.juniper.net (10.104.20.6) by P-EXBEND-EQX-01.jnpr.net (10.104.8.52) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Fri, 12 Apr 2019 13:35:27 -0700 Received: from kaos.jnpr.net (kaos.jnpr.net [172.23.50.162]) by p-mailhub01.juniper.net (8.14.4/8.11.3) with ESMTP id x3CKZPMA010039; Fri, 12 Apr 2019 13:35:25 -0700 (envelope-from sjg@juniper.net) Received: by kaos.jnpr.net (Postfix, from userid 1377) id 54D127C8EB; Fri, 12 Apr 2019 13:35:25 -0700 (PDT) Received: from kaos.jnpr.net (localhost [127.0.0.1]) by kaos.jnpr.net (Postfix) with ESMTP id 530B57C8EA; Fri, 12 Apr 2019 13:35:25 -0700 (PDT) To: John Baldwin CC: "Herbert J. Skuhra" , , , , , Subject: Re: svn commit: r346145 - in stable/12: contrib/bearssl etc/mtree include lib lib/libbearssl lib/libsecureboot lib/libsecureboot/tests sbin sbin/veriexec share/mk stand stand/common stand/ficl stand/fi... In-Reply-To: <3b07eef9-ef5a-8925-3d64-bb6f2bcfdc6b@FreeBSD.org> References: <201904120103.x3C1302P053933@repo.freebsd.org> <87o95bf70b.wl-herbert@gojira.at> <14402.1555094583@kaos.jnpr.net> <3b07eef9-ef5a-8925-3d64-bb6f2bcfdc6b@FreeBSD.org> Comments: In-reply-to: John Baldwin message dated "Fri, 12 Apr 2019 12:02:12 -0700." From: "Simon J. Gerraty" X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 26.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <41432.1555101325.1@kaos.jnpr.net> Date: Fri, 12 Apr 2019 13:35:25 -0700 Message-ID: <46386.1555101325@kaos.jnpr.net> X-EXCLAIMER-MD-CONFIG: e3cb0ff2-54e7-4646-8a04-0dae4ac7b136 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.129.239.12; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(346002)(39860400002)(376002)(396003)(136003)(2980300002)(199004)(189003)(69596002)(53936002)(68736007)(106466001)(97876018)(316002)(50466002)(105596002)(53416004)(76506005)(7696005)(76176011)(97736004)(54906003)(6916009)(4744005)(336012)(117636001)(50226002)(77096007)(5660300002)(186003)(8936002)(81156014)(16586007)(26005)(11346002)(486006)(476003)(126002)(478600001)(81166006)(305945005)(356004)(47776003)(90966002)(8676002)(446003)(229853002)(7126003)(86362001)(97756001)(9686003)(23726003)(6266002)(107886003)(2906002)(6246003)(4326008)(55016002)(93886005)(46406003); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR05MB4187; H:P-EXFEND-EQX-01.jnpr.net; FPR:; SPF:SoftFail; LANG:en; PTR:InfoDomainNonexistent; A:1; MX:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 88f58370-33de-4dca-550f-08d6bf86686f X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(4710095)(4711036)(2017052603328); SRVR:DM6PR05MB4187; X-MS-TrafficTypeDiagnostic: DM6PR05MB4187: X-Microsoft-Antispam-PRVS: X-Forefront-PRVS: 0005B05917 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: xFvsI8jw+1udm2n670PXAN3q0ux4WHEoCv36AwjMrQm4pn4rtkmDa9EpRHTvnYSw/z2/RP4sUMevRMG2p/jWyhtYIU4sCcXtAZz85UN6i9SNO1UN/pGdM5TAaOsjFOmgff0Vazw1L0wdYf6STQU+CQzT4RiuspKpFRXFH5XG/lnqbw3lPz+yWXNMS9VoDL7KOrgRMDGwavnE4YnBZsJexFzAA6/4NevHYj9j6Zcvn25Y3mR0ImtxL5RLZt1Feoy9XoCgyy7OSZPhm0Dugb7VEafGoGWwR2do/hSR6+5HOfvLbo4q7dQ/zXwmCqSReZbEkb7zT0eZkSo8UNgGv+rvb/8BRNPWZ1W0+MFTBUZ7DGyRYDiCNdlN/pFnfplz6hs00EObtEVVEiPzhizAlc81+0EuY24M3Iz+orpVkHUw3j8= X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2019 20:35:31.6292 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 88f58370-33de-4dca-550f-08d6bf86686f X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.12]; Helo=[P-EXFEND-EQX-01.jnpr.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB4187 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-12_11:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=778 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904120137 X-Rspamd-Queue-Id: 842688BB22 X-Spamd-Bar: ------ X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2019 20:35:40 -0000 John Baldwin wrote: > > but would it not be more correct to just run makeman ? > > Yes, I would just run makeman and commit the result. Ideally you'd > have included that in the original MFC even, but a followup commit > is fine. I don't think it's really useful to try to MFC the 344853 > change as-is. Done. From owner-svn-src-stable@freebsd.org Sat Apr 13 00:54:57 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B117154EAB8; Sat, 13 Apr 2019 00:54:57 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3A009945BD; Sat, 13 Apr 2019 00:54:57 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0F46D153D; Sat, 13 Apr 2019 00:54:57 +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 x3D0su2u020469; Sat, 13 Apr 2019 00:54:56 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3D0su1n020468; Sat, 13 Apr 2019 00:54:56 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201904130054.x3D0su1n020468@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Sat, 13 Apr 2019 00:54:56 +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: r346171 - stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/doc/en_US.ISO8859-1/relnotes X-SVN-Commit-Revision: 346171 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3A009945BD X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.94 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.94)[-0.939,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 00:54:57 -0000 Author: gjb Date: Sat Apr 13 00:54:56 2019 New Revision: 346171 URL: https://svnweb.freebsd.org/changeset/base/346171 Log: Fix some grammar nits. Submitted by: adamw Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Apr 12 23:22:27 2019 (r346170) +++ stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml Sat Apr 13 00:54:56 2019 (r346171) @@ -212,7 +212,7 @@ names. The &man.pfctl.8; utility has been - updated to provide more clear output and reference the + updated to provide clearer output and reference the net.pf.request_maxcount &man.sysctl.8; if a defined table is too large. @@ -221,9 +221,8 @@ names. The &man.sh.1; utility has been updated - to add the pipefail option which allows - checking the exit status of all commands in a pipeline more - easily. + to add the pipefail option which simplifies + checking the exit status of all commands in a pipeline. The &man.patch.1; utility has been updated to exit successfully if the input patch file is From owner-svn-src-stable@freebsd.org Sat Apr 13 08:50:43 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EACD215720A0; Sat, 13 Apr 2019 08:50:42 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8DE8E736E4; Sat, 13 Apr 2019 08:50: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6899768D8; Sat, 13 Apr 2019 08:50:42 +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 x3D8ogIb067719; Sat, 13 Apr 2019 08:50:42 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3D8ofr6067716; Sat, 13 Apr 2019 08:50:41 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201904130850.x3D8ofr6067716@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 13 Apr 2019 08:50:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346178 - in stable/12: . sys/amd64/conf X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . sys/amd64/conf X-SVN-Commit-Revision: 346178 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8DE8E736E4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.965,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 08:50:43 -0000 Author: dim Date: Sat Apr 13 08:50:41 2019 New Revision: 346178 URL: https://svnweb.freebsd.org/changeset/base/346178 Log: After r346168, put the actual commit dates into UPDATING and ObsoleteFiles.inc. I completely forgot about those, sorry. This is a direct commit to stable/12. Modified: stable/12/ObsoleteFiles.inc stable/12/UPDATING stable/12/sys/amd64/conf/GENERIC Modified: stable/12/ObsoleteFiles.inc ============================================================================== --- stable/12/ObsoleteFiles.inc Sat Apr 13 06:30:45 2019 (r346177) +++ stable/12/ObsoleteFiles.inc Sat Apr 13 08:50:41 2019 (r346178) @@ -38,9 +38,9 @@ # xargs -n1 | sort | uniq -d; # done -# 2019mmdd: new libc++ import which bumps version from 7.0.1 to 8.0.0. +# 20190412: new libc++ import which bumps version from 7.0.1 to 8.0.0. OLD_FILES+=usr/include/c++/v1/experimental/dynarray -# 2019mmdd: new clang import which bumps version from 7.0.1 to 8.0.0. +# 20190412: new clang import which bumps version from 7.0.1 to 8.0.0. OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/7.0.1/include/sanitizer/common_interface_defs.h Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Sat Apr 13 06:30:45 2019 (r346177) +++ stable/12/UPDATING Sat Apr 13 08:50:41 2019 (r346178) @@ -16,7 +16,7 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. -2019mmdd: +20190412: Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 8.0.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 Modified: stable/12/sys/amd64/conf/GENERIC ============================================================================== --- stable/12/sys/amd64/conf/GENERIC Sat Apr 13 06:30:45 2019 (r346177) +++ stable/12/sys/amd64/conf/GENERIC Sat Apr 13 08:50:41 2019 (r346178) @@ -192,6 +192,7 @@ device splash # Splash screen and screen saver supp # syscons is the default console driver, resembling an SCO console device sc options SC_PIXEL_MODE # add support for the raster text mode +options SC_HISTORY_SIZE=2000 # number of history buffer lines # vt is the new video console driver device vt From owner-svn-src-stable@freebsd.org Sat Apr 13 08:52:32 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B68741572483; Sat, 13 Apr 2019 08:52:32 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 362E573C44; Sat, 13 Apr 2019 08:52:32 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pg1-x52e.google.com with SMTP id i2so6285924pgj.11; Sat, 13 Apr 2019 01:52:32 -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=AI8QEjQe+zXGOpdnfNu5Qll/SuC67jwRXKFh4+Tn7+k=; b=hmh7CWvy7/R8d3VD0wFMOQHAFGhiZsfzCw7B1jNCgtLA29/H7HlQaPwGEJiwloC4u4 eOoKlRnfIsskwYBL5z0uN89E4u50mJaREYN/9mUeh02Ig6kpkh/FLdLawFf9Cs2aSf3g ZmTEM0PVUR1FnyPYuCr69DlaqKFzO0BY3fSUbNWqUyAWbTRHuiCUpTJqQCyr+YIY8eR9 BCF3buruMZcS29uyHJcvf85HmIZNEbGH5fOdcJ5NchZrBt2QrnOTsKBkGq1DYRL/Khbw EAs2HPvOpAErP1EOYo0QBW+cvgtGpH6CyxAo5bnySM5gWyx4txuIlZW1AINH8/HJakQj Y00A== 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=AI8QEjQe+zXGOpdnfNu5Qll/SuC67jwRXKFh4+Tn7+k=; b=O4IAALyBVR+Y4YBEk1c/IRMqErtY2mzsCICETj55MjIy4vIXkp60srQf469OcrhJE1 GWAuz5LwKjuv7La/yOFR3tAfW/lAQ47yB8swf5LB0mV2wf+HZuUAfGK1A7wSj6Wj/ATu plpJnZSItcC8ezggxi17keMbLIWEt8OScRWJtizdQGbcV4BUwwPP/T9abrEk+CrgU9iM CPcCtc+5zy3g15iH0Cwo9xnjfBWGc/nuudo2iOxWZIFI9W7J7ZwUnkQDhHhqk28HhQlW kenoEDVl0uiV4pnU/VAa43itYUoZkL3rCQ4+oDfu1+dsSogdsnp/5pmQ1U8/89qNzy2E C/vA== X-Gm-Message-State: APjAAAWZGazjUrFQJDe34qbzDVqHsovjy2N8f2mkIVPsKR+LIioP3IzN XgyNyjZbo1/lPYzoSkcESxv+KDW0Ang= X-Google-Smtp-Source: APXvYqwKihGm3PJzz3aaQ0XEW3VGPa/PvVQKzOb9rnmY8jmOBo2ULLaJdBvTYILOmSkJj7wTFe+bKQ== X-Received: by 2002:a63:6786:: with SMTP id b128mr58751875pgc.318.1555145550413; Sat, 13 Apr 2019 01:52:30 -0700 (PDT) Received: from [192.168.20.7] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id y10sm66913423pfm.27.2019.04.13.01.52.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 13 Apr 2019 01:52:29 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: Re: svn commit: r346178 - in stable/12: . sys/amd64/conf From: Enji Cooper In-Reply-To: <201904130850.x3D8ofr6067716@repo.freebsd.org> Date: Sat, 13 Apr 2019 01:52:28 -0700 Cc: src-committers , svn-src-all , svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <0E97BA37-B564-4262-A602-89DFAF532B34@gmail.com> References: <201904130850.x3D8ofr6067716@repo.freebsd.org> To: Dimitry Andric X-Mailer: Apple Mail (2.3445.102.3) X-Rspamd-Queue-Id: 362E573C44 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.97 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.97)[-0.973,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 08:52:33 -0000 > On Apr 13, 2019, at 1:50 AM, Dimitry Andric wrote: >=20 > Author: dim > Date: Sat Apr 13 08:50:41 2019 > New Revision: 346178 > URL: https://svnweb.freebsd.org/changeset/base/346178 >=20 > Log: > After r346168, put the actual commit dates into UPDATING and > ObsoleteFiles.inc. I completely forgot about those, sorry. >=20 > This is a direct commit to stable/12. >=20 =E2=80=A6 > Modified: stable/12/sys/amd64/conf/GENERIC > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- stable/12/sys/amd64/conf/GENERIC Sat Apr 13 06:30:45 2019 = (r346177) > +++ stable/12/sys/amd64/conf/GENERIC Sat Apr 13 08:50:41 2019 = (r346178) > @@ -192,6 +192,7 @@ device splash # Splash = screen and screen saver supp > # syscons is the default console driver, resembling an SCO console > device sc > options SC_PIXEL_MODE # add support for the raster = text mode > +options SC_HISTORY_SIZE=3D2000 # number of history buffer lines Hi Dimitry, Was this change intentional? Cheers, -Enji= From owner-svn-src-stable@freebsd.org Sat Apr 13 08:52:55 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 38E7E15724E3; Sat, 13 Apr 2019 08:52:54 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7584A741CA; Sat, 13 Apr 2019 08:52:53 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4F98D6A8B; Sat, 13 Apr 2019 08:52:53 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3D8qrED072696; Sat, 13 Apr 2019 08:52:53 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3D8qrOm072695; Sat, 13 Apr 2019 08:52:53 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201904130852.x3D8qrOm072695@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 13 Apr 2019 08:52:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346179 - stable/12/sys/amd64/conf X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/12/sys/amd64/conf X-SVN-Commit-Revision: 346179 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7584A741CA X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.965,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 08:52:56 -0000 Author: dim Date: Sat Apr 13 08:52:52 2019 New Revision: 346179 URL: https://svnweb.freebsd.org/changeset/base/346179 Log: After r346168, put the actual commit dates into UPDATING and ObsoleteFiles.inc. I completely forgot about those, sorry. This is a direct commit to stable/12. Modified: stable/12/sys/amd64/conf/GENERIC Modified: stable/12/sys/amd64/conf/GENERIC ============================================================================== --- stable/12/sys/amd64/conf/GENERIC Sat Apr 13 08:50:41 2019 (r346178) +++ stable/12/sys/amd64/conf/GENERIC Sat Apr 13 08:52:52 2019 (r346179) @@ -192,7 +192,6 @@ device splash # Splash screen and screen saver supp # syscons is the default console driver, resembling an SCO console device sc options SC_PIXEL_MODE # add support for the raster text mode -options SC_HISTORY_SIZE=2000 # number of history buffer lines # vt is the new video console driver device vt From owner-svn-src-stable@freebsd.org Sat Apr 13 08:55:50 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CAE80157262F; Sat, 13 Apr 2019 08:55:50 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6F28C74357; Sat, 13 Apr 2019 08:55:50 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4AFDB6A8E; Sat, 13 Apr 2019 08:55:50 +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 x3D8toUq072936; Sat, 13 Apr 2019 08:55:50 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3D8tnML072933; Sat, 13 Apr 2019 08:55:49 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201904130855.x3D8tnML072933@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sat, 13 Apr 2019 08:55:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346180 - in stable/12: libexec/rc libexec/rc/rc.d share/man/man5 X-SVN-Group: stable-12 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: in stable/12: libexec/rc libexec/rc/rc.d share/man/man5 X-SVN-Commit-Revision: 346180 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6F28C74357 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 08:55:51 -0000 Author: ae Date: Sat Apr 13 08:55:49 2019 New Revision: 346180 URL: https://svnweb.freebsd.org/changeset/base/346180 Log: MFC r345450: Add ability to automatically load ipfw_nat64, ipfw_nptv6 and ipfw_pmod modules by declaring corresponding variables in rc.conf. Also document them in rc.conf(5). Submitted by: Dries Michiels Differential Revision: https://reviews.freebsd.org/D19673 MFC r345985: Add firewall_[nat64|nptv6|pmod]_enable variables to /etc/defaults/rc.conf Modified: stable/12/libexec/rc/rc.conf stable/12/libexec/rc/rc.d/ipfw stable/12/share/man/man5/rc.conf.5 Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rc/rc.conf ============================================================================== --- stable/12/libexec/rc/rc.conf Sat Apr 13 08:52:52 2019 (r346179) +++ stable/12/libexec/rc/rc.conf Sat Apr 13 08:55:49 2019 (r346180) @@ -178,6 +178,9 @@ firewall_nologports="135-139,445 1026,1027 1433,1434" firewall_nat_enable="NO" # Enable kernel NAT (if firewall_enable == YES) firewall_nat_interface="" # Public interface or IPaddress to use firewall_nat_flags="" # Additional configuration parameters +firewall_nat64_enable="NO" # Enable kernel NAT64 module. +firewall_nptv6_enable="NO" # Enable kernel NPTv6 module. +firewall_pmod_enable="NO" # Enable kernel protocols modification module. dummynet_enable="NO" # Load the dummynet(4) module ipfw_netflow_enable="NO" # Enable netflow logging via ng_netflow ip_portrange_first="NO" # Set first dynamically allocated port Modified: stable/12/libexec/rc/rc.d/ipfw ============================================================================== --- stable/12/libexec/rc/rc.d/ipfw Sat Apr 13 08:52:52 2019 (r346179) +++ stable/12/libexec/rc/rc.d/ipfw Sat Apr 13 08:55:49 2019 (r346180) @@ -34,6 +34,15 @@ ipfw_prestart() if checkyesno firewall_nat_enable; then required_modules="$required_modules ipfw_nat" fi + if checkyesno firewall_nat64_enable; then + required_modules="$required_modules ipfw_nat64" + fi + if checkyesno firewall_nptv6_enable; then + required_modules="$required_modules ipfw_nptv6" + fi + if checkyesno firewall_pmod_enable; then + required_modules="$required_modules ipfw_pmod" + fi } ipfw_start() Modified: stable/12/share/man/man5/rc.conf.5 ============================================================================== --- stable/12/share/man/man5/rc.conf.5 Sat Apr 13 08:52:52 2019 (r346179) +++ stable/12/share/man/man5/rc.conf.5 Sat Apr 13 08:55:49 2019 (r346180) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 24, 2018 +.Dd March 21, 2019 .Dt RC.CONF 5 .Os .Sh NAME @@ -571,9 +571,11 @@ equivalent of .Va natd_enable . Setting this to .Dq Li YES -enables kernel NAT. +will automatically load the +.Xr ipfw 8 +NAT kernel module if .Va firewall_enable -must also be set to +is also set to .Dq Li YES . .It Va firewall_nat_interface .Pq Vt str @@ -586,6 +588,36 @@ kernel NAT should run. .It Va firewall_nat_flags .Pq Vt str Additional configuration parameters for kernel NAT should be placed here. +.It Va firewall_nat64_enable +.Pq Vt bool +Setting this to +.Dq Li YES +will automatically load the +.Xr ipfw 8 +NAT64 kernel module if +.Va firewall_enable +is also set to +.Dq Li YES . +.It Va firewall_nptv6_enable +.Pq Vt bool +Setting this to +.Dq Li YES +will automatically load the +.Xr ipfw 8 +NPTv6 kernel module if +.Va firewall_enable +is also set to +.Dq Li YES . +.It Va firewall_pmod_enable +.Pq Vt bool +Setting this to +.Dq Li YES +will automatically load the +.Xr ipfw 8 +pmod kernel module if +.Va firewall_enable +is also set to +.Dq Li YES . .It Va dummynet_enable .Pq Vt bool Setting this to From owner-svn-src-stable@freebsd.org Sat Apr 13 08:57:07 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 05B981572780; Sat, 13 Apr 2019 08:57:07 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (tensor.andric.com [IPv6:2001:470:7a58:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "tensor.andric.com", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 97378744FC; Sat, 13 Apr 2019 08:57:06 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [IPv6:2001:470:7a58::2ce8:e253:1188:d174] (unknown [IPv6:2001:470:7a58:0:2ce8:e253:1188:d174]) (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 3D2E34121D; Sat, 13 Apr 2019 10:57:05 +0200 (CEST) From: Dimitry Andric Content-Type: multipart/signed; boundary="Apple-Mail=_B83F1325-A5DB-4509-A7A0-06F9EC950EB4"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\)) Subject: Re: svn commit: r346179 - stable/12/sys/amd64/conf Date: Sat, 13 Apr 2019 10:57:04 +0200 References: <201904130852.x3D8qrOm072695@repo.freebsd.org> To: src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org In-Reply-To: <201904130852.x3D8qrOm072695@repo.freebsd.org> Message-Id: <83384F85-72A5-4EE5-8F10-E6D8FE9317DF@FreeBSD.org> X-Mailer: Apple Mail (2.3445.104.8) X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 08:57:07 -0000 --Apple-Mail=_B83F1325-A5DB-4509-A7A0-06F9EC950EB4 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 13 Apr 2019, at 10:52, Dimitry Andric wrote: > > Author: dim > Date: Sat Apr 13 08:52:52 2019 > New Revision: 346179 > URL: https://svnweb.freebsd.org/changeset/base/346179 > > Log: > After r346168, put the actual commit dates into UPDATING and > ObsoleteFiles.inc. I completely forgot about those, sorry. Ugh, and here I used the incorrect commit message file. This was of course meant to revert the accidental commit of an unrelated change in r346178. Sorry for committing from an unclean tree. I shall try to avoid that in the future. -Dimitry --Apple-Mail=_B83F1325-A5DB-4509-A7A0-06F9EC950EB4 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.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCXLGkYAAKCRCwXqMKLiCW o3p2AJ9m2XHn7IIyILsdeAhXflMF2i2OYwCgvEabUE4hy52J4MO9Phh5CI+iZe8= =t0Tc -----END PGP SIGNATURE----- --Apple-Mail=_B83F1325-A5DB-4509-A7A0-06F9EC950EB4-- From owner-svn-src-stable@freebsd.org Sat Apr 13 09:06:38 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 050C61572D54; Sat, 13 Apr 2019 09:06:38 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A0057749D1; Sat, 13 Apr 2019 09:06: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7BB0E6C41; Sat, 13 Apr 2019 09:06:37 +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 x3D96baR077983; Sat, 13 Apr 2019 09:06:37 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3D96aB2077980; Sat, 13 Apr 2019 09:06:36 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201904130906.x3D96aB2077980@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sat, 13 Apr 2019 09:06:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r346181 - in stable/11: etc/defaults etc/rc.d share/man/man5 X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: in stable/11: etc/defaults etc/rc.d share/man/man5 X-SVN-Commit-Revision: 346181 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A0057749D1 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 09:06:38 -0000 Author: ae Date: Sat Apr 13 09:06:36 2019 New Revision: 346181 URL: https://svnweb.freebsd.org/changeset/base/346181 Log: MFC r345450: Add ability to automatically load ipfw_nat64, ipfw_nptv6 and ipfw_pmod modules by declaring corresponding variables in rc.conf. Also document them in rc.conf(5). Submitted by: Dries Michiels Differential Revision: https://reviews.freebsd.org/D19673 MFC r345985: Add firewall_[nat64|nptv6|pmod]_enable variables to /etc/defaults/rc.conf Modified: stable/11/etc/defaults/rc.conf stable/11/etc/rc.d/ipfw stable/11/share/man/man5/rc.conf.5 Directory Properties: stable/11/ (props changed) Modified: stable/11/etc/defaults/rc.conf ============================================================================== --- stable/11/etc/defaults/rc.conf Sat Apr 13 08:55:49 2019 (r346180) +++ stable/11/etc/defaults/rc.conf Sat Apr 13 09:06:36 2019 (r346181) @@ -168,6 +168,9 @@ firewall_nologports="135-139,445 1026,1027 1433,1434" firewall_nat_enable="NO" # Enable kernel NAT (if firewall_enable == YES) firewall_nat_interface="" # Public interface or IPaddress to use firewall_nat_flags="" # Additional configuration parameters +firewall_nat64_enable="NO" # Enable kernel NAT64 module. +firewall_nptv6_enable="NO" # Enable kernel NPTv6 module. +firewall_pmod_enable="NO" # Enable kernel protocols modification module. dummynet_enable="NO" # Load the dummynet(4) module ipfw_netflow_enable="NO" # Enable netflow logging via ng_netflow ip_portrange_first="NO" # Set first dynamically allocated port Modified: stable/11/etc/rc.d/ipfw ============================================================================== --- stable/11/etc/rc.d/ipfw Sat Apr 13 08:55:49 2019 (r346180) +++ stable/11/etc/rc.d/ipfw Sat Apr 13 09:06:36 2019 (r346181) @@ -34,6 +34,15 @@ ipfw_prestart() if checkyesno firewall_nat_enable; then required_modules="$required_modules ipfw_nat" fi + if checkyesno firewall_nat64_enable; then + required_modules="$required_modules ipfw_nat64" + fi + if checkyesno firewall_nptv6_enable; then + required_modules="$required_modules ipfw_nptv6" + fi + if checkyesno firewall_pmod_enable; then + required_modules="$required_modules ipfw_pmod" + fi } ipfw_start() Modified: stable/11/share/man/man5/rc.conf.5 ============================================================================== --- stable/11/share/man/man5/rc.conf.5 Sat Apr 13 08:55:49 2019 (r346180) +++ stable/11/share/man/man5/rc.conf.5 Sat Apr 13 09:06:36 2019 (r346181) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 17, 2017 +.Dd March 21, 2019 .Dt RC.CONF 5 .Os .Sh NAME @@ -568,9 +568,11 @@ equivalent of .Va natd_enable . Setting this to .Dq Li YES -enables kernel NAT. +will automatically load the +.Xr ipfw 8 +NAT kernel module if .Va firewall_enable -must also be set to +is also set to .Dq Li YES . .It Va firewall_nat_interface .Pq Vt str @@ -583,6 +585,36 @@ kernel NAT should run. .It Va firewall_nat_flags .Pq Vt str Additional configuration parameters for kernel NAT should be placed here. +.It Va firewall_nat64_enable +.Pq Vt bool +Setting this to +.Dq Li YES +will automatically load the +.Xr ipfw 8 +NAT64 kernel module if +.Va firewall_enable +is also set to +.Dq Li YES . +.It Va firewall_nptv6_enable +.Pq Vt bool +Setting this to +.Dq Li YES +will automatically load the +.Xr ipfw 8 +NPTv6 kernel module if +.Va firewall_enable +is also set to +.Dq Li YES . +.It Va firewall_pmod_enable +.Pq Vt bool +Setting this to +.Dq Li YES +will automatically load the +.Xr ipfw 8 +pmod kernel module if +.Va firewall_enable +is also set to +.Dq Li YES . .It Va dummynet_enable .Pq Vt bool Setting this to From owner-svn-src-stable@freebsd.org Sat Apr 13 09:16:12 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 030BD1572F77; Sat, 13 Apr 2019 09:16:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (tensor.andric.com [IPv6:2001:470:7a58:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "tensor.andric.com", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8073E74DE2; Sat, 13 Apr 2019 09:16:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [IPv6:2001:470:7a58::2ce8:e253:1188:d174] (unknown [IPv6:2001:470:7a58:0:2ce8:e253:1188:d174]) (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 7927241221; Sat, 13 Apr 2019 11:16:10 +0200 (CEST) From: Dimitry Andric Message-Id: Content-Type: multipart/signed; boundary="Apple-Mail=_803A1642-A6E2-4198-9E01-342DAE5B75DF"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\)) Subject: Re: svn commit: r346178 - in stable/12: . sys/amd64/conf Date: Sat, 13 Apr 2019 11:16:09 +0200 In-Reply-To: <0E97BA37-B564-4262-A602-89DFAF532B34@gmail.com> Cc: src-committers , svn-src-all , svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org To: Enji Cooper References: <201904130850.x3D8ofr6067716@repo.freebsd.org> <0E97BA37-B564-4262-A602-89DFAF532B34@gmail.com> X-Mailer: Apple Mail (2.3445.104.8) X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 09:16:12 -0000 --Apple-Mail=_803A1642-A6E2-4198-9E01-342DAE5B75DF Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 On 13 Apr 2019, at 10:52, Enji Cooper wrote: >=20 >> On Apr 13, 2019, at 1:50 AM, Dimitry Andric wrote: >>=20 >> Author: dim >> Date: Sat Apr 13 08:50:41 2019 >> New Revision: 346178 >> URL: https://svnweb.freebsd.org/changeset/base/346178 >>=20 >> Log: >> After r346168, put the actual commit dates into UPDATING and >> ObsoleteFiles.inc. I completely forgot about those, sorry. >>=20 >> This is a direct commit to stable/12. >>=20 >=20 > =E2=80=A6 >=20 >> Modified: stable/12/sys/amd64/conf/GENERIC >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- stable/12/sys/amd64/conf/GENERIC Sat Apr 13 06:30:45 2019 = (r346177) >> +++ stable/12/sys/amd64/conf/GENERIC Sat Apr 13 08:50:41 2019 = (r346178) >> @@ -192,6 +192,7 @@ device splash # Splash = screen and screen saver supp >> # syscons is the default console driver, resembling an SCO console >> device sc >> options SC_PIXEL_MODE # add support for the raster = text mode >> +options SC_HISTORY_SIZE=3D2000 # number of history buffer lines >=20 > Hi Dimitry, > Was this change intentional? No, I was committing from an unclean tree, unfortunately. Subversion makes it hard to shuffle around changes, and I messed up, sorry. :( -Dimitry --Apple-Mail=_803A1642-A6E2-4198-9E01-342DAE5B75DF 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.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCXLGo2QAKCRCwXqMKLiCW o45bAJ9DXJAsmpnLPYaKyCJmDubnct4ufwCgyFjYPuLpPwCIZUdgoCFVX0YvDOM= =JgVz -----END PGP SIGNATURE----- --Apple-Mail=_803A1642-A6E2-4198-9E01-342DAE5B75DF-- From owner-svn-src-stable@freebsd.org Sat Apr 13 11:09:43 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF9461575495; Sat, 13 Apr 2019 11:09:43 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 60B8077D74; Sat, 13 Apr 2019 11:09:43 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B9A080E2; Sat, 13 Apr 2019 11:09:43 +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 x3DB9h1u040866; Sat, 13 Apr 2019 11:09:43 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3DB9gdm040864; Sat, 13 Apr 2019 11:09:42 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201904131109.x3DB9gdm040864@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 13 Apr 2019 11:09:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346183 - in stable/12: . share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . share/mk X-SVN-Commit-Revision: 346183 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 60B8077D74 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.96)[-0.958,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 11:09:44 -0000 Author: dim Date: Sat Apr 13 11:09:42 2019 New Revision: 346183 URL: https://svnweb.freebsd.org/changeset/base/346183 Log: Revert r344898 (by kib), now that clang 8 has been merged: Disable WITH_RETPOLINE on stable/12. It is known that clang 7 generates broken ifunc calls when retpoline is enabled. Since libc uses ifuncs, mark WITH_RETPOLINE as always broken and disabled. To be removed after clang 8 MFC. This is a direct commit to the branch. Reported by: many Tested by: Nikola Mihaylov Reviewed by: emaste Sponsored by: The FreeBSD Foundation Modified: stable/12/UPDATING stable/12/share/mk/src.opts.mk Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Sat Apr 13 10:47:47 2019 (r346182) +++ stable/12/UPDATING Sat Apr 13 11:09:42 2019 (r346183) @@ -16,6 +16,11 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20190413: + Now Clang 8 has been merged (see the 20190412 entry below), the ifunc + functionality needed for the RETPOLINE option should work properly + again. The RETPOLINE option has been removed from BROKEN_OPTIONS. + 20190412: Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 8.0.0. Please see the 20141231 entry below for information about Modified: stable/12/share/mk/src.opts.mk ============================================================================== --- stable/12/share/mk/src.opts.mk Sat Apr 13 10:47:47 2019 (r346182) +++ stable/12/share/mk/src.opts.mk Sat Apr 13 11:09:42 2019 (r346183) @@ -369,9 +369,6 @@ BROKEN_OPTIONS+=LOADER_UBOOT BROKEN_OPTIONS+=LOADER_GELI LOADER_LUA .endif -# clang 7.0 -BROKEN_OPTIONS+=RETPOLINE - .if ${__T:Mmips64*} # profiling won't work on MIPS64 because there is only assembly for o32 BROKEN_OPTIONS+=PROFILE From owner-svn-src-stable@freebsd.org Sat Apr 13 19:23:12 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7BC9115810F7; Sat, 13 Apr 2019 19:23:12 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2AECE8F1B0; Sat, 13 Apr 2019 19:23:12 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 064B7D844; Sat, 13 Apr 2019 19:23:12 +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 x3DJNCqi004821; Sat, 13 Apr 2019 19:23:12 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3DJNBVr004818; Sat, 13 Apr 2019 19:23:11 GMT (envelope-from np@FreeBSD.org) Message-Id: <201904131923.x3DJNBVr004818@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Sat, 13 Apr 2019 19:23:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r346188 - in stable/12/sys/dev/cxgbe: . common X-SVN-Group: stable-12 X-SVN-Commit-Author: np X-SVN-Commit-Paths: in stable/12/sys/dev/cxgbe: . common X-SVN-Commit-Revision: 346188 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2AECE8F1B0 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.975,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 19:23:13 -0000 Author: np Date: Sat Apr 13 19:23:11 2019 New Revision: 346188 URL: https://svnweb.freebsd.org/changeset/base/346188 Log: MFC r343666, r343861-r343862, r343923, r343968, r345660, and r345810. r343666: cxgbe(4): Improved error reporting and diagnostics. "slow" interrupt handler: - Expand the list of INT_CAUSE registers known to the driver. - Add decode information for many more bits but decouple it from the rest of intr_info so that it is entirely optional. - Call t4_fatal_err exactly once, and from the top level PL intr handler. t4_fatal_err: - Use t4_shutdown_adapter from the common code to stop the adapter. - Stop servicing slow interrupts after the first fatal one. Driver/firmware interaction: - CH_DUMP_MBOX: note whether the mailbox being dumped is a command or a reply or something else. - Log the raw value of pcie_fw for some errors. - Use correct log levels (debug vs. error). Sponsored by: Chelsio Communications r343861: cxgbe(4): Auto-dump the device log on a mailbox timeout or when the firmware reports an error in pcie_fw. Sponsored by: Chelsio Communications r343862: cxgbe(4): Auto-dump the CIM block's logic analyzer on a TIMER0 interrupt. Sponsored by: Chelsio Communications r343923: cxgbe(4): Delay the panic due to a fatal error by 30s. This lets information logged by the interrupt handler reach the system log before the system goes down. r343968: cxgbe(4): Ignore unused interrupts. Sponsored by: Chelsio Communications r345660: cxgbe(4): Count and clear interrupts generated at the software's request. An interrupt can be requested by setting the F_SWINT bit in PL_PF_CTL. Sponsored by: Chelsio Communications r345810: cxgbe(4): Add a flag to indicate that bits in interrupt cause but not in interrupt enable are not fatal. The firmware sets up all the interrupt enables based on run time configuration, which means the information in the enables is more accurate than what's compiled into the driver. This change also allows the fatal bits to be updated without any changes in the driver in some cases. Sponsored by: Chelsio Communications Modified: stable/12/sys/dev/cxgbe/adapter.h stable/12/sys/dev/cxgbe/common/common.h stable/12/sys/dev/cxgbe/common/t4_hw.c stable/12/sys/dev/cxgbe/t4_main.c stable/12/sys/dev/cxgbe/t4_sge.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/cxgbe/adapter.h ============================================================================== --- stable/12/sys/dev/cxgbe/adapter.h Sat Apr 13 16:51:48 2019 (r346187) +++ stable/12/sys/dev/cxgbe/adapter.h Sat Apr 13 19:23:11 2019 (r346188) @@ -155,7 +155,7 @@ enum { CHK_MBOX_ACCESS = (1 << 2), MASTER_PF = (1 << 3), ADAP_SYSCTL_CTX = (1 << 4), - /* TOM_INIT_DONE= (1 << 5), No longer used */ + ADAP_ERR = (1 << 5), BUF_PACKING_OK = (1 << 6), IS_VF = (1 << 7), @@ -175,6 +175,7 @@ enum { DF_LOAD_FW_ANYTIME = (1 << 1), /* Allow LOAD_FW after init */ DF_DISABLE_TCB_CACHE = (1 << 2), /* Disable TCB cache (T6+) */ DF_DISABLE_CFG_RETRY = (1 << 3), /* Disable fallback config */ + DF_VERBOSE_SLOWINTR = (1 << 4), /* Chatty slow intr handler */ }; #define IS_DOOMED(vi) ((vi)->flags & DOOMED) @@ -893,6 +894,8 @@ struct adapter { const char *last_op; const void *last_op_thr; int last_op_flags; + + int swintr; }; #define ADAPTER_LOCK(sc) mtx_lock(&(sc)->sc_lock) @@ -933,24 +936,6 @@ struct adapter { #define TXQ_LOCK_ASSERT_OWNED(txq) EQ_LOCK_ASSERT_OWNED(&(txq)->eq) #define TXQ_LOCK_ASSERT_NOTOWNED(txq) EQ_LOCK_ASSERT_NOTOWNED(&(txq)->eq) -#define CH_DUMP_MBOX(sc, mbox, data_reg) \ - do { \ - if (sc->debug_flags & DF_DUMP_MBOX) { \ - log(LOG_NOTICE, \ - "%s mbox %u: %016llx %016llx %016llx %016llx " \ - "%016llx %016llx %016llx %016llx\n", \ - device_get_nameunit(sc->dev), mbox, \ - (unsigned long long)t4_read_reg64(sc, data_reg), \ - (unsigned long long)t4_read_reg64(sc, data_reg + 8), \ - (unsigned long long)t4_read_reg64(sc, data_reg + 16), \ - (unsigned long long)t4_read_reg64(sc, data_reg + 24), \ - (unsigned long long)t4_read_reg64(sc, data_reg + 32), \ - (unsigned long long)t4_read_reg64(sc, data_reg + 40), \ - (unsigned long long)t4_read_reg64(sc, data_reg + 48), \ - (unsigned long long)t4_read_reg64(sc, data_reg + 56)); \ - } \ - } while (0) - #define for_each_txq(vi, iter, q) \ for (q = &vi->pi->adapter->sge.txq[vi->first_txq], iter = 0; \ iter < vi->ntxq; ++iter, ++q) @@ -1106,6 +1091,38 @@ t4_use_ldst(struct adapter *sc) #endif } +static inline void +CH_DUMP_MBOX(struct adapter *sc, int mbox, const int reg, + const char *msg, const __be64 *const p, const bool err) +{ + + if (!(sc->debug_flags & DF_DUMP_MBOX) && !err) + return; + if (p != NULL) { + log(err ? LOG_ERR : LOG_DEBUG, + "%s: mbox %u %s %016llx %016llx %016llx %016llx " + "%016llx %016llx %016llx %016llx\n", + device_get_nameunit(sc->dev), mbox, msg, + (long long)be64_to_cpu(p[0]), (long long)be64_to_cpu(p[1]), + (long long)be64_to_cpu(p[2]), (long long)be64_to_cpu(p[3]), + (long long)be64_to_cpu(p[4]), (long long)be64_to_cpu(p[5]), + (long long)be64_to_cpu(p[6]), (long long)be64_to_cpu(p[7])); + } else { + log(err ? LOG_ERR : LOG_DEBUG, + "%s: mbox %u %s %016llx %016llx %016llx %016llx " + "%016llx %016llx %016llx %016llx\n", + device_get_nameunit(sc->dev), mbox, msg, + (long long)t4_read_reg64(sc, reg), + (long long)t4_read_reg64(sc, reg + 8), + (long long)t4_read_reg64(sc, reg + 16), + (long long)t4_read_reg64(sc, reg + 24), + (long long)t4_read_reg64(sc, reg + 32), + (long long)t4_read_reg64(sc, reg + 40), + (long long)t4_read_reg64(sc, reg + 48), + (long long)t4_read_reg64(sc, reg + 56)); + } +} + /* t4_main.c */ extern int t4_ntxq; extern int t4_nrxq; @@ -1150,6 +1167,8 @@ void free_atid(struct adapter *, int); void release_tid(struct adapter *, int, struct sge_wrq *); int cxgbe_media_change(struct ifnet *); void cxgbe_media_status(struct ifnet *, struct ifmediareq *); +bool t4_os_dump_cimla(struct adapter *, int, bool); +void t4_os_dump_devlog(struct adapter *); #ifdef DEV_NETMAP /* t4_netmap.c */ Modified: stable/12/sys/dev/cxgbe/common/common.h ============================================================================== --- stable/12/sys/dev/cxgbe/common/common.h Sat Apr 13 16:51:48 2019 (r346187) +++ stable/12/sys/dev/cxgbe/common/common.h Sat Apr 13 19:23:11 2019 (r346188) @@ -34,10 +34,6 @@ #include "t4_hw.h" -#define GLBL_INTR_MASK (F_CIM | F_MPS | F_PL | F_PCIE | F_MC0 | F_EDC0 | \ - F_EDC1 | F_LE | F_TP | F_MA | F_PM_TX | F_PM_RX | F_ULP_RX | \ - F_CPL_SWITCH | F_SGE | F_ULP_TX) - enum { MAX_NPORTS = 4, /* max # of ports */ SERNUM_LEN = 24, /* Serial # length */ @@ -582,7 +578,7 @@ struct fw_filter_wr; void t4_intr_enable(struct adapter *adapter); void t4_intr_disable(struct adapter *adapter); void t4_intr_clear(struct adapter *adapter); -int t4_slow_intr_handler(struct adapter *adapter); +int t4_slow_intr_handler(struct adapter *adapter, bool verbose); int t4_hash_mac_addr(const u8 *addr); int t4_link_l1cfg(struct adapter *adap, unsigned int mbox, unsigned int port, @@ -622,9 +618,7 @@ int t4_init_sge_params(struct adapter *adapter); int t4_init_tp_params(struct adapter *adap, bool sleep_ok); int t4_filter_field_shift(const struct adapter *adap, int filter_sel); int t4_port_init(struct adapter *adap, int mbox, int pf, int vf, int port_id); -void t4_fatal_err(struct adapter *adapter); -void t4_db_full(struct adapter *adapter); -void t4_db_dropped(struct adapter *adapter); +void t4_fatal_err(struct adapter *adapter, bool fw_error); int t4_set_trace_filter(struct adapter *adapter, const struct trace_params *tp, int filter_index, int enable); void t4_get_trace_filter(struct adapter *adapter, struct trace_params *tp, Modified: stable/12/sys/dev/cxgbe/common/t4_hw.c ============================================================================== --- stable/12/sys/dev/cxgbe/common/t4_hw.c Sat Apr 13 16:51:48 2019 (r346187) +++ stable/12/sys/dev/cxgbe/common/t4_hw.c Sat Apr 13 19:23:11 2019 (r346188) @@ -212,9 +212,11 @@ static void t4_report_fw_error(struct adapter *adap) pcie_fw = t4_read_reg(adap, A_PCIE_FW); if (pcie_fw & F_PCIE_FW_ERR) { - CH_ERR(adap, "Firmware reports adapter error: %s\n", - reason[G_PCIE_FW_EVAL(pcie_fw)]); adap->flags &= ~FW_OK; + CH_ERR(adap, "firmware reports adapter error: %s (0x%08x)\n", + reason[G_PCIE_FW_EVAL(pcie_fw)], pcie_fw); + if (pcie_fw != 0xffffffff) + t4_os_dump_devlog(adap); } } @@ -340,7 +342,6 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int u32 v; u64 res; int i, ms, delay_idx, ret, next_tx_check; - const __be64 *p = cmd; u32 data_reg = PF_REG(mbox, A_CIM_PF_MAILBOX_DATA); u32 ctl_reg = PF_REG(mbox, A_CIM_PF_MAILBOX_CTRL); u32 ctl; @@ -351,7 +352,7 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int if (adap->flags & CHK_MBOX_ACCESS) ASSERT_SYNCHRONIZED_OP(adap); - if ((size & 15) || size > MBOX_LEN) + if (size <= 0 || (size & 15) || size > MBOX_LEN) return -EINVAL; if (adap->flags & IS_VF) { @@ -381,8 +382,7 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int } /* - * If we were unable to gain access, dequeue ourselves from the - * mailbox atomic access list and report the error to our caller. + * If we were unable to gain access, report the error to our caller. */ if (v != X_MBOWNER_PL) { t4_report_fw_error(adap); @@ -398,23 +398,17 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int * presaged the firmware crashing ... */ if (ctl & F_MBMSGVALID) { - CH_ERR(adap, "found VALID command in mbox %u: %016llx %016llx " - "%016llx %016llx %016llx %016llx %016llx %016llx\n", - mbox, (unsigned long long)t4_read_reg64(adap, data_reg), - (unsigned long long)t4_read_reg64(adap, data_reg + 8), - (unsigned long long)t4_read_reg64(adap, data_reg + 16), - (unsigned long long)t4_read_reg64(adap, data_reg + 24), - (unsigned long long)t4_read_reg64(adap, data_reg + 32), - (unsigned long long)t4_read_reg64(adap, data_reg + 40), - (unsigned long long)t4_read_reg64(adap, data_reg + 48), - (unsigned long long)t4_read_reg64(adap, data_reg + 56)); + CH_DUMP_MBOX(adap, mbox, data_reg, "VLD", NULL, true); } /* * Copy in the new mailbox command and send it on its way ... */ - for (i = 0; i < size; i += 8, p++) - t4_write_reg64(adap, data_reg + i, be64_to_cpu(*p)); + memset(cmd_rpl, 0, sizeof(cmd_rpl)); + memcpy(cmd_rpl, cmd, size); + CH_DUMP_MBOX(adap, mbox, 0, "cmd", cmd_rpl, false); + for (i = 0; i < ARRAY_SIZE(cmd_rpl); i++) + t4_write_reg64(adap, data_reg + i * 8, be64_to_cpu(cmd_rpl[i])); if (adap->flags & IS_VF) { /* @@ -432,8 +426,6 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int t4_read_reg(adap, data_reg); } - CH_DUMP_MBOX(adap, mbox, data_reg); - t4_write_reg(adap, ctl_reg, F_MBMSGVALID | V_MBOWNER(X_MBOWNER_FW)); read_tx_state(adap, &tx_state[0]); /* also flushes the write_reg */ next_tx_check = 1000; @@ -480,10 +472,9 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int * Retrieve the command reply and release the mailbox. */ get_mbox_rpl(adap, cmd_rpl, MBOX_LEN/8, data_reg); + CH_DUMP_MBOX(adap, mbox, 0, "rpl", cmd_rpl, false); t4_write_reg(adap, ctl_reg, V_MBOWNER(X_MBOWNER_NONE)); - CH_DUMP_MBOX(adap, mbox, data_reg); - res = be64_to_cpu(cmd_rpl[0]); if (G_FW_CMD_OP(res >> 32) == FW_DEBUG_CMD) { fw_asrt(adap, (struct fw_debug_cmd *)cmd_rpl); @@ -499,27 +490,20 @@ int t4_wr_mbox_meat_timeout(struct adapter *adap, int * the error and also check to see if the firmware reported any * errors ... */ - ret = (pcie_fw & F_PCIE_FW_ERR) ? -ENXIO : -ETIMEDOUT; - CH_ERR(adap, "command %#x in mailbox %d timed out\n", - *(const u8 *)cmd, mbox); + CH_ERR(adap, "command %#x in mbox %d timed out (0x%08x).\n", + *(const u8 *)cmd, mbox, pcie_fw); + CH_DUMP_MBOX(adap, mbox, 0, "cmdsent", cmd_rpl, true); + CH_DUMP_MBOX(adap, mbox, data_reg, "current", NULL, true); - /* If DUMP_MBOX is set the mbox has already been dumped */ - if ((adap->debug_flags & DF_DUMP_MBOX) == 0) { - p = cmd; - CH_ERR(adap, "mbox: %016llx %016llx %016llx %016llx " - "%016llx %016llx %016llx %016llx\n", - (unsigned long long)be64_to_cpu(p[0]), - (unsigned long long)be64_to_cpu(p[1]), - (unsigned long long)be64_to_cpu(p[2]), - (unsigned long long)be64_to_cpu(p[3]), - (unsigned long long)be64_to_cpu(p[4]), - (unsigned long long)be64_to_cpu(p[5]), - (unsigned long long)be64_to_cpu(p[6]), - (unsigned long long)be64_to_cpu(p[7])); + if (pcie_fw & F_PCIE_FW_ERR) { + ret = -ENXIO; + t4_report_fw_error(adap); + } else { + ret = -ETIMEDOUT; + t4_os_dump_devlog(adap); } - t4_report_fw_error(adap); - t4_fatal_err(adap); + t4_fatal_err(adap, true); return ret; } @@ -3965,785 +3949,1369 @@ int t4_restart_aneg(struct adapter *adap, unsigned int return t4_wr_mbox(adap, mbox, &c, sizeof(c), NULL); } -typedef void (*int_handler_t)(struct adapter *adap); +struct intr_details { + u32 mask; + const char *msg; +}; +struct intr_action { + u32 mask; + int arg; + bool (*action)(struct adapter *, int, bool); +}; + +#define NONFATAL_IF_DISABLED 1 struct intr_info { - unsigned int mask; /* bits to check in interrupt status */ - const char *msg; /* message to print or NULL */ - short stat_idx; /* stat counter to increment or -1 */ - unsigned short fatal; /* whether the condition reported is fatal */ - int_handler_t int_handler; /* platform-specific int handler */ + const char *name; /* name of the INT_CAUSE register */ + int cause_reg; /* INT_CAUSE register */ + int enable_reg; /* INT_ENABLE register */ + u32 fatal; /* bits that are fatal */ + int flags; /* hints */ + const struct intr_details *details; + const struct intr_action *actions; }; -/** - * t4_handle_intr_status - table driven interrupt handler - * @adapter: the adapter that generated the interrupt - * @reg: the interrupt status register to process - * @acts: table of interrupt actions - * - * A table driven interrupt handler that applies a set of masks to an - * interrupt status word and performs the corresponding actions if the - * interrupts described by the mask have occurred. The actions include - * optionally emitting a warning or alert message. The table is terminated - * by an entry specifying mask 0. Returns the number of fatal interrupt - * conditions. +static inline char +intr_alert_char(u32 cause, u32 enable, u32 fatal) +{ + + if (cause & fatal) + return ('!'); + if (cause & enable) + return ('*'); + return ('-'); +} + +static void +t4_show_intr_info(struct adapter *adap, const struct intr_info *ii, u32 cause) +{ + u32 enable, fatal, leftover; + const struct intr_details *details; + char alert; + + enable = t4_read_reg(adap, ii->enable_reg); + if (ii->flags & NONFATAL_IF_DISABLED) + fatal = ii->fatal & t4_read_reg(adap, ii->enable_reg); + else + fatal = ii->fatal; + alert = intr_alert_char(cause, enable, fatal); + CH_ALERT(adap, "%c %s 0x%x = 0x%08x, E 0x%08x, F 0x%08x\n", + alert, ii->name, ii->cause_reg, cause, enable, fatal); + + leftover = cause; + for (details = ii->details; details && details->mask != 0; details++) { + u32 msgbits = details->mask & cause; + if (msgbits == 0) + continue; + alert = intr_alert_char(msgbits, enable, ii->fatal); + CH_ALERT(adap, " %c [0x%08x] %s\n", alert, msgbits, + details->msg); + leftover &= ~msgbits; + } + if (leftover != 0 && leftover != cause) + CH_ALERT(adap, " ? [0x%08x]\n", leftover); +} + +/* + * Returns true for fatal error. */ -static int t4_handle_intr_status(struct adapter *adapter, unsigned int reg, - const struct intr_info *acts) +static bool +t4_handle_intr(struct adapter *adap, const struct intr_info *ii, + u32 additional_cause, bool verbose) { - int fatal = 0; - unsigned int mask = 0; - unsigned int status = t4_read_reg(adapter, reg); + u32 cause, fatal; + bool rc; + const struct intr_action *action; - for ( ; acts->mask; ++acts) { - if (!(status & acts->mask)) + /* read and display cause. */ + cause = t4_read_reg(adap, ii->cause_reg); + if (verbose || cause != 0) + t4_show_intr_info(adap, ii, cause); + /* + * The top level interrupt cause is a bit special and we need to ignore + * the bits that are not in the enable. Note that we did display them + * above in t4_show_intr_info but will not clear them. + */ + if (ii->cause_reg == A_PL_INT_CAUSE) + cause &= t4_read_reg(adap, ii->enable_reg); + fatal = cause & ii->fatal; + if (fatal != 0 && ii->flags & NONFATAL_IF_DISABLED) + fatal &= t4_read_reg(adap, ii->enable_reg); + cause |= additional_cause; + if (cause == 0) + return (false); + + rc = fatal != 0; + for (action = ii->actions; action && action->mask != 0; action++) { + if (!(action->mask & cause)) continue; - if (acts->fatal) { - fatal++; - CH_ALERT(adapter, "%s (0x%x)\n", acts->msg, - status & acts->mask); - } else if (acts->msg) - CH_WARN_RATELIMIT(adapter, "%s (0x%x)\n", acts->msg, - status & acts->mask); - if (acts->int_handler) - acts->int_handler(adapter); - mask |= acts->mask; + rc |= (action->action)(adap, action->arg, verbose); } - status &= mask; - if (status) /* clear processed interrupts */ - t4_write_reg(adapter, reg, status); - return fatal; + + /* clear */ + t4_write_reg(adap, ii->cause_reg, cause); + (void)t4_read_reg(adap, ii->cause_reg); + + return (rc); } /* * Interrupt handler for the PCIE module. */ -static void pcie_intr_handler(struct adapter *adapter) +static bool pcie_intr_handler(struct adapter *adap, int arg, bool verbose) { - static const struct intr_info sysbus_intr_info[] = { - { F_RNPP, "RXNP array parity error", -1, 1 }, - { F_RPCP, "RXPC array parity error", -1, 1 }, - { F_RCIP, "RXCIF array parity error", -1, 1 }, - { F_RCCP, "Rx completions control array parity error", -1, 1 }, - { F_RFTP, "RXFT array parity error", -1, 1 }, + static const struct intr_details sysbus_intr_details[] = { + { F_RNPP, "RXNP array parity error" }, + { F_RPCP, "RXPC array parity error" }, + { F_RCIP, "RXCIF array parity error" }, + { F_RCCP, "Rx completions control array parity error" }, + { F_RFTP, "RXFT array parity error" }, { 0 } }; - static const struct intr_info pcie_port_intr_info[] = { - { F_TPCP, "TXPC array parity error", -1, 1 }, - { F_TNPP, "TXNP array parity error", -1, 1 }, - { F_TFTP, "TXFT array parity error", -1, 1 }, - { F_TCAP, "TXCA array parity error", -1, 1 }, - { F_TCIP, "TXCIF array parity error", -1, 1 }, - { F_RCAP, "RXCA array parity error", -1, 1 }, - { F_OTDD, "outbound request TLP discarded", -1, 1 }, - { F_RDPE, "Rx data parity error", -1, 1 }, - { F_TDUE, "Tx uncorrectable data error", -1, 1 }, + static const struct intr_info sysbus_intr_info = { + .name = "PCIE_CORE_UTL_SYSTEM_BUS_AGENT_STATUS", + .cause_reg = A_PCIE_CORE_UTL_SYSTEM_BUS_AGENT_STATUS, + .enable_reg = A_PCIE_CORE_UTL_SYSTEM_BUS_AGENT_INTERRUPT_ENABLE, + .fatal = F_RFTP | F_RCCP | F_RCIP | F_RPCP | F_RNPP, + .flags = 0, + .details = sysbus_intr_details, + .actions = NULL, + }; + static const struct intr_details pcie_port_intr_details[] = { + { F_TPCP, "TXPC array parity error" }, + { F_TNPP, "TXNP array parity error" }, + { F_TFTP, "TXFT array parity error" }, + { F_TCAP, "TXCA array parity error" }, + { F_TCIP, "TXCIF array parity error" }, + { F_RCAP, "RXCA array parity error" }, + { F_OTDD, "outbound request TLP discarded" }, + { F_RDPE, "Rx data parity error" }, + { F_TDUE, "Tx uncorrectable data error" }, { 0 } }; - static const struct intr_info pcie_intr_info[] = { - { F_MSIADDRLPERR, "MSI AddrL parity error", -1, 1 }, - { F_MSIADDRHPERR, "MSI AddrH parity error", -1, 1 }, - { F_MSIDATAPERR, "MSI data parity error", -1, 1 }, - { F_MSIXADDRLPERR, "MSI-X AddrL parity error", -1, 1 }, - { F_MSIXADDRHPERR, "MSI-X AddrH parity error", -1, 1 }, - { F_MSIXDATAPERR, "MSI-X data parity error", -1, 1 }, - { F_MSIXDIPERR, "MSI-X DI parity error", -1, 1 }, - { F_PIOCPLPERR, "PCI PIO completion FIFO parity error", -1, 1 }, - { F_PIOREQPERR, "PCI PIO request FIFO parity error", -1, 1 }, - { F_TARTAGPERR, "PCI PCI target tag FIFO parity error", -1, 1 }, - { F_CCNTPERR, "PCI CMD channel count parity error", -1, 1 }, - { F_CREQPERR, "PCI CMD channel request parity error", -1, 1 }, - { F_CRSPPERR, "PCI CMD channel response parity error", -1, 1 }, - { F_DCNTPERR, "PCI DMA channel count parity error", -1, 1 }, - { F_DREQPERR, "PCI DMA channel request parity error", -1, 1 }, - { F_DRSPPERR, "PCI DMA channel response parity error", -1, 1 }, - { F_HCNTPERR, "PCI HMA channel count parity error", -1, 1 }, - { F_HREQPERR, "PCI HMA channel request parity error", -1, 1 }, - { F_HRSPPERR, "PCI HMA channel response parity error", -1, 1 }, - { F_CFGSNPPERR, "PCI config snoop FIFO parity error", -1, 1 }, - { F_FIDPERR, "PCI FID parity error", -1, 1 }, - { F_INTXCLRPERR, "PCI INTx clear parity error", -1, 1 }, - { F_MATAGPERR, "PCI MA tag parity error", -1, 1 }, - { F_PIOTAGPERR, "PCI PIO tag parity error", -1, 1 }, - { F_RXCPLPERR, "PCI Rx completion parity error", -1, 1 }, - { F_RXWRPERR, "PCI Rx write parity error", -1, 1 }, - { F_RPLPERR, "PCI replay buffer parity error", -1, 1 }, - { F_PCIESINT, "PCI core secondary fault", -1, 1 }, - { F_PCIEPINT, "PCI core primary fault", -1, 1 }, - { F_UNXSPLCPLERR, "PCI unexpected split completion error", -1, - 0 }, + static const struct intr_info pcie_port_intr_info = { + .name = "PCIE_CORE_UTL_PCI_EXPRESS_PORT_STATUS", + .cause_reg = A_PCIE_CORE_UTL_PCI_EXPRESS_PORT_STATUS, + .enable_reg = A_PCIE_CORE_UTL_PCI_EXPRESS_PORT_INTERRUPT_ENABLE, + .fatal = F_TPCP | F_TNPP | F_TFTP | F_TCAP | F_TCIP | F_RCAP | + F_OTDD | F_RDPE | F_TDUE, + .flags = 0, + .details = pcie_port_intr_details, + .actions = NULL, + }; + static const struct intr_details pcie_intr_details[] = { + { F_MSIADDRLPERR, "MSI AddrL parity error" }, + { F_MSIADDRHPERR, "MSI AddrH parity error" }, + { F_MSIDATAPERR, "MSI data parity error" }, + { F_MSIXADDRLPERR, "MSI-X AddrL parity error" }, + { F_MSIXADDRHPERR, "MSI-X AddrH parity error" }, + { F_MSIXDATAPERR, "MSI-X data parity error" }, + { F_MSIXDIPERR, "MSI-X DI parity error" }, + { F_PIOCPLPERR, "PCIe PIO completion FIFO parity error" }, + { F_PIOREQPERR, "PCIe PIO request FIFO parity error" }, + { F_TARTAGPERR, "PCIe target tag FIFO parity error" }, + { F_CCNTPERR, "PCIe CMD channel count parity error" }, + { F_CREQPERR, "PCIe CMD channel request parity error" }, + { F_CRSPPERR, "PCIe CMD channel response parity error" }, + { F_DCNTPERR, "PCIe DMA channel count parity error" }, + { F_DREQPERR, "PCIe DMA channel request parity error" }, + { F_DRSPPERR, "PCIe DMA channel response parity error" }, + { F_HCNTPERR, "PCIe HMA channel count parity error" }, + { F_HREQPERR, "PCIe HMA channel request parity error" }, + { F_HRSPPERR, "PCIe HMA channel response parity error" }, + { F_CFGSNPPERR, "PCIe config snoop FIFO parity error" }, + { F_FIDPERR, "PCIe FID parity error" }, + { F_INTXCLRPERR, "PCIe INTx clear parity error" }, + { F_MATAGPERR, "PCIe MA tag parity error" }, + { F_PIOTAGPERR, "PCIe PIO tag parity error" }, + { F_RXCPLPERR, "PCIe Rx completion parity error" }, + { F_RXWRPERR, "PCIe Rx write parity error" }, + { F_RPLPERR, "PCIe replay buffer parity error" }, + { F_PCIESINT, "PCIe core secondary fault" }, + { F_PCIEPINT, "PCIe core primary fault" }, + { F_UNXSPLCPLERR, "PCIe unexpected split completion error" }, { 0 } }; - - static const struct intr_info t5_pcie_intr_info[] = { - { F_MSTGRPPERR, "Master Response Read Queue parity error", - -1, 1 }, - { F_MSTTIMEOUTPERR, "Master Timeout FIFO parity error", -1, 1 }, - { F_MSIXSTIPERR, "MSI-X STI SRAM parity error", -1, 1 }, - { F_MSIXADDRLPERR, "MSI-X AddrL parity error", -1, 1 }, - { F_MSIXADDRHPERR, "MSI-X AddrH parity error", -1, 1 }, - { F_MSIXDATAPERR, "MSI-X data parity error", -1, 1 }, - { F_MSIXDIPERR, "MSI-X DI parity error", -1, 1 }, - { F_PIOCPLGRPPERR, "PCI PIO completion Group FIFO parity error", - -1, 1 }, - { F_PIOREQGRPPERR, "PCI PIO request Group FIFO parity error", - -1, 1 }, - { F_TARTAGPERR, "PCI PCI target tag FIFO parity error", -1, 1 }, - { F_MSTTAGQPERR, "PCI master tag queue parity error", -1, 1 }, - { F_CREQPERR, "PCI CMD channel request parity error", -1, 1 }, - { F_CRSPPERR, "PCI CMD channel response parity error", -1, 1 }, - { F_DREQWRPERR, "PCI DMA channel write request parity error", - -1, 1 }, - { F_DREQPERR, "PCI DMA channel request parity error", -1, 1 }, - { F_DRSPPERR, "PCI DMA channel response parity error", -1, 1 }, - { F_HREQWRPERR, "PCI HMA channel count parity error", -1, 1 }, - { F_HREQPERR, "PCI HMA channel request parity error", -1, 1 }, - { F_HRSPPERR, "PCI HMA channel response parity error", -1, 1 }, - { F_CFGSNPPERR, "PCI config snoop FIFO parity error", -1, 1 }, - { F_FIDPERR, "PCI FID parity error", -1, 1 }, - { F_VFIDPERR, "PCI INTx clear parity error", -1, 1 }, - { F_MAGRPPERR, "PCI MA group FIFO parity error", -1, 1 }, - { F_PIOTAGPERR, "PCI PIO tag parity error", -1, 1 }, - { F_IPRXHDRGRPPERR, "PCI IP Rx header group parity error", - -1, 1 }, - { F_IPRXDATAGRPPERR, "PCI IP Rx data group parity error", - -1, 1 }, - { F_RPLPERR, "PCI IP replay buffer parity error", -1, 1 }, - { F_IPSOTPERR, "PCI IP SOT buffer parity error", -1, 1 }, - { F_TRGT1GRPPERR, "PCI TRGT1 group FIFOs parity error", -1, 1 }, - { F_READRSPERR, "Outbound read error", -1, - 0 }, + static const struct intr_details t5_pcie_intr_details[] = { + { F_IPGRPPERR, "Parity errors observed by IP" }, + { F_NONFATALERR, "PCIe non-fatal error" }, + { F_READRSPERR, "Outbound read error" }, + { F_TRGT1GRPPERR, "PCIe TRGT1 group FIFOs parity error" }, + { F_IPSOTPERR, "PCIe IP SOT buffer SRAM parity error" }, + { F_IPRETRYPERR, "PCIe IP replay buffer parity error" }, + { F_IPRXDATAGRPPERR, "PCIe IP Rx data group SRAMs parity error" }, + { F_IPRXHDRGRPPERR, "PCIe IP Rx header group SRAMs parity error" }, + { F_PIOTAGQPERR, "PIO tag queue FIFO parity error" }, + { F_MAGRPPERR, "MA group FIFO parity error" }, + { F_VFIDPERR, "VFID SRAM parity error" }, + { F_FIDPERR, "FID SRAM parity error" }, + { F_CFGSNPPERR, "config snoop FIFO parity error" }, + { F_HRSPPERR, "HMA channel response data SRAM parity error" }, + { F_HREQRDPERR, "HMA channel read request SRAM parity error" }, + { F_HREQWRPERR, "HMA channel write request SRAM parity error" }, + { F_DRSPPERR, "DMA channel response data SRAM parity error" }, + { F_DREQRDPERR, "DMA channel write request SRAM parity error" }, + { F_CRSPPERR, "CMD channel response data SRAM parity error" }, + { F_CREQRDPERR, "CMD channel read request SRAM parity error" }, + { F_MSTTAGQPERR, "PCIe master tag queue SRAM parity error" }, + { F_TGTTAGQPERR, "PCIe target tag queue FIFO parity error" }, + { F_PIOREQGRPPERR, "PIO request group FIFOs parity error" }, + { F_PIOCPLGRPPERR, "PIO completion group FIFOs parity error" }, + { F_MSIXDIPERR, "MSI-X DI SRAM parity error" }, + { F_MSIXDATAPERR, "MSI-X data SRAM parity error" }, + { F_MSIXADDRHPERR, "MSI-X AddrH SRAM parity error" }, + { F_MSIXADDRLPERR, "MSI-X AddrL SRAM parity error" }, + { F_MSIXSTIPERR, "MSI-X STI SRAM parity error" }, + { F_MSTTIMEOUTPERR, "Master timeout FIFO parity error" }, + { F_MSTGRPPERR, "Master response read queue SRAM parity error" }, { 0 } }; + struct intr_info pcie_intr_info = { + .name = "PCIE_INT_CAUSE", + .cause_reg = A_PCIE_INT_CAUSE, + .enable_reg = A_PCIE_INT_ENABLE, + .fatal = 0xffffffff, + .flags = NONFATAL_IF_DISABLED, + .details = NULL, + .actions = NULL, + }; + bool fatal = false; - int fat; + if (is_t4(adap)) { + fatal |= t4_handle_intr(adap, &sysbus_intr_info, 0, verbose); + fatal |= t4_handle_intr(adap, &pcie_port_intr_info, 0, verbose); - if (is_t4(adapter)) - fat = t4_handle_intr_status(adapter, - A_PCIE_CORE_UTL_SYSTEM_BUS_AGENT_STATUS, - sysbus_intr_info) + - t4_handle_intr_status(adapter, - A_PCIE_CORE_UTL_PCI_EXPRESS_PORT_STATUS, - pcie_port_intr_info) + - t4_handle_intr_status(adapter, A_PCIE_INT_CAUSE, - pcie_intr_info); - else - fat = t4_handle_intr_status(adapter, A_PCIE_INT_CAUSE, - t5_pcie_intr_info); - if (fat) - t4_fatal_err(adapter); + pcie_intr_info.details = pcie_intr_details; + } else { + pcie_intr_info.details = t5_pcie_intr_details; + } + fatal |= t4_handle_intr(adap, &pcie_intr_info, 0, verbose); + + return (fatal); } /* * TP interrupt handler. */ -static void tp_intr_handler(struct adapter *adapter) +static bool tp_intr_handler(struct adapter *adap, int arg, bool verbose) { - static const struct intr_info tp_intr_info[] = { - { 0x3fffffff, "TP parity error", -1, 1 }, - { F_FLMTXFLSTEMPTY, "TP out of Tx pages", -1, 1 }, + static const struct intr_details tp_intr_details[] = { + { 0x3fffffff, "TP parity error" }, + { F_FLMTXFLSTEMPTY, "TP out of Tx pages" }, { 0 } }; + static const struct intr_info tp_intr_info = { + .name = "TP_INT_CAUSE", + .cause_reg = A_TP_INT_CAUSE, + .enable_reg = A_TP_INT_ENABLE, + .fatal = 0x7fffffff, + .flags = NONFATAL_IF_DISABLED, + .details = tp_intr_details, + .actions = NULL, + }; - if (t4_handle_intr_status(adapter, A_TP_INT_CAUSE, tp_intr_info)) - t4_fatal_err(adapter); + return (t4_handle_intr(adap, &tp_intr_info, 0, verbose)); } /* * SGE interrupt handler. */ -static void sge_intr_handler(struct adapter *adapter) +static bool sge_intr_handler(struct adapter *adap, int arg, bool verbose) { - u64 v; - u32 err; - - static const struct intr_info sge_intr_info[] = { + static const struct intr_info sge_int1_info = { + .name = "SGE_INT_CAUSE1", + .cause_reg = A_SGE_INT_CAUSE1, + .enable_reg = A_SGE_INT_ENABLE1, + .fatal = 0xffffffff, + .flags = NONFATAL_IF_DISABLED, + .details = NULL, + .actions = NULL, + }; + static const struct intr_info sge_int2_info = { + .name = "SGE_INT_CAUSE2", + .cause_reg = A_SGE_INT_CAUSE2, + .enable_reg = A_SGE_INT_ENABLE2, + .fatal = 0xffffffff, + .flags = NONFATAL_IF_DISABLED, + .details = NULL, + .actions = NULL, + }; + static const struct intr_details sge_int3_details[] = { + { F_ERR_FLM_DBP, + "DBP pointer delivery for invalid context or QID" }, + { F_ERR_FLM_IDMA1 | F_ERR_FLM_IDMA0, + "Invalid QID or header request by IDMA" }, + { F_ERR_FLM_HINT, "FLM hint is for invalid context or QID" }, + { F_ERR_PCIE_ERROR3, "SGE PCIe error for DBP thread 3" }, + { F_ERR_PCIE_ERROR2, "SGE PCIe error for DBP thread 2" }, + { F_ERR_PCIE_ERROR1, "SGE PCIe error for DBP thread 1" }, + { F_ERR_PCIE_ERROR0, "SGE PCIe error for DBP thread 0" }, + { F_ERR_TIMER_ABOVE_MAX_QID, + "SGE GTS with timer 0-5 for IQID > 1023" }, { F_ERR_CPL_EXCEED_IQE_SIZE, - "SGE received CPL exceeding IQE size", -1, 1 }, - { F_ERR_INVALID_CIDX_INC, - "SGE GTS CIDX increment too large", -1, 0 }, - { F_ERR_CPL_OPCODE_0, "SGE received 0-length CPL", -1, 0 }, - { F_DBFIFO_LP_INT, NULL, -1, 0, t4_db_full }, + "SGE received CPL exceeding IQE size" }, + { F_ERR_INVALID_CIDX_INC, "SGE GTS CIDX increment too large" }, + { F_ERR_ITP_TIME_PAUSED, "SGE ITP error" }, + { F_ERR_CPL_OPCODE_0, "SGE received 0-length CPL" }, + { F_ERR_DROPPED_DB, "SGE DB dropped" }, { F_ERR_DATA_CPL_ON_HIGH_QID1 | F_ERR_DATA_CPL_ON_HIGH_QID0, - "SGE IQID > 1023 received CPL for FL", -1, 0 }, - { F_ERR_BAD_DB_PIDX3, "SGE DBP 3 pidx increment too large", -1, - 0 }, - { F_ERR_BAD_DB_PIDX2, "SGE DBP 2 pidx increment too large", -1, - 0 }, - { F_ERR_BAD_DB_PIDX1, "SGE DBP 1 pidx increment too large", -1, - 0 }, - { F_ERR_BAD_DB_PIDX0, "SGE DBP 0 pidx increment too large", -1, - 0 }, + "SGE IQID > 1023 received CPL for FL" }, + { F_ERR_BAD_DB_PIDX3 | F_ERR_BAD_DB_PIDX2 | F_ERR_BAD_DB_PIDX1 | + F_ERR_BAD_DB_PIDX0, "SGE DBP pidx increment too large" }, + { F_ERR_ING_PCIE_CHAN, "SGE Ingress PCIe channel mismatch" }, { F_ERR_ING_CTXT_PRIO, - "SGE too many priority ingress contexts", -1, 0 }, - { F_INGRESS_SIZE_ERR, "SGE illegal ingress QID", -1, 0 }, - { F_EGRESS_SIZE_ERR, "SGE illegal egress QID", -1, 0 }, - { F_ERR_PCIE_ERROR0 | F_ERR_PCIE_ERROR1 | - F_ERR_PCIE_ERROR2 | F_ERR_PCIE_ERROR3, - "SGE PCIe error for a DBP thread", -1, 0 }, - { 0 } - }; - - static const struct intr_info t4t5_sge_intr_info[] = { - { F_ERR_DROPPED_DB, NULL, -1, 0, t4_db_dropped }, - { F_DBFIFO_HP_INT, NULL, -1, 0, t4_db_full }, + "Ingress context manager priority user error" }, { F_ERR_EGR_CTXT_PRIO, - "SGE too many priority egress contexts", -1, 0 }, + "Egress context manager priority user error" }, + { F_DBFIFO_HP_INT, "High priority DB FIFO threshold reached" }, + { F_DBFIFO_LP_INT, "Low priority DB FIFO threshold reached" }, + { F_REG_ADDRESS_ERR, "Undefined SGE register accessed" }, + { F_INGRESS_SIZE_ERR, "SGE illegal ingress QID" }, + { F_EGRESS_SIZE_ERR, "SGE illegal egress QID" }, + { 0x0000000f, "SGE context access for invalid queue" }, { 0 } }; - - /* - * For now, treat below interrupts as fatal so that we disable SGE and - * get better debug */ - static const struct intr_info t6_sge_intr_info[] = { + static const struct intr_details t6_sge_int3_details[] = { + { F_ERR_FLM_DBP, + "DBP pointer delivery for invalid context or QID" }, + { F_ERR_FLM_IDMA1 | F_ERR_FLM_IDMA0, + "Invalid QID or header request by IDMA" }, + { F_ERR_FLM_HINT, "FLM hint is for invalid context or QID" }, + { F_ERR_PCIE_ERROR3, "SGE PCIe error for DBP thread 3" }, + { F_ERR_PCIE_ERROR2, "SGE PCIe error for DBP thread 2" }, + { F_ERR_PCIE_ERROR1, "SGE PCIe error for DBP thread 1" }, + { F_ERR_PCIE_ERROR0, "SGE PCIe error for DBP thread 0" }, + { F_ERR_TIMER_ABOVE_MAX_QID, + "SGE GTS with timer 0-5 for IQID > 1023" }, + { F_ERR_CPL_EXCEED_IQE_SIZE, + "SGE received CPL exceeding IQE size" }, + { F_ERR_INVALID_CIDX_INC, "SGE GTS CIDX increment too large" }, + { F_ERR_ITP_TIME_PAUSED, "SGE ITP error" }, + { F_ERR_CPL_OPCODE_0, "SGE received 0-length CPL" }, + { F_ERR_DROPPED_DB, "SGE DB dropped" }, + { F_ERR_DATA_CPL_ON_HIGH_QID1 | F_ERR_DATA_CPL_ON_HIGH_QID0, + "SGE IQID > 1023 received CPL for FL" }, + { F_ERR_BAD_DB_PIDX3 | F_ERR_BAD_DB_PIDX2 | F_ERR_BAD_DB_PIDX1 | + F_ERR_BAD_DB_PIDX0, "SGE DBP pidx increment too large" }, + { F_ERR_ING_PCIE_CHAN, "SGE Ingress PCIe channel mismatch" }, + { F_ERR_ING_CTXT_PRIO, + "Ingress context manager priority user error" }, + { F_ERR_EGR_CTXT_PRIO, + "Egress context manager priority user error" }, + { F_DBP_TBUF_FULL, "SGE DBP tbuf full" }, { F_FATAL_WRE_LEN, - "SGE Actual WRE packet is less than advertized length", - -1, 1 }, + "SGE WRE packet less than advertized length" }, + { F_REG_ADDRESS_ERR, "Undefined SGE register accessed" }, + { F_INGRESS_SIZE_ERR, "SGE illegal ingress QID" }, + { F_EGRESS_SIZE_ERR, "SGE illegal egress QID" }, + { 0x0000000f, "SGE context access for invalid queue" }, { 0 } }; + struct intr_info sge_int3_info = { + .name = "SGE_INT_CAUSE3", + .cause_reg = A_SGE_INT_CAUSE3, + .enable_reg = A_SGE_INT_ENABLE3, + .fatal = F_ERR_CPL_EXCEED_IQE_SIZE, + .flags = 0, + .details = NULL, + .actions = NULL, + }; + static const struct intr_info sge_int4_info = { + .name = "SGE_INT_CAUSE4", + .cause_reg = A_SGE_INT_CAUSE4, + .enable_reg = A_SGE_INT_ENABLE4, + .fatal = 0, + .flags = 0, + .details = NULL, + .actions = NULL, + }; + static const struct intr_info sge_int5_info = { + .name = "SGE_INT_CAUSE5", + .cause_reg = A_SGE_INT_CAUSE5, + .enable_reg = A_SGE_INT_ENABLE5, + .fatal = 0xffffffff, + .flags = NONFATAL_IF_DISABLED, + .details = NULL, + .actions = NULL, + }; + static const struct intr_info sge_int6_info = { + .name = "SGE_INT_CAUSE6", + .cause_reg = A_SGE_INT_CAUSE6, + .enable_reg = A_SGE_INT_ENABLE6, + .fatal = 0, + .flags = 0, + .details = NULL, + .actions = NULL, + }; - v = (u64)t4_read_reg(adapter, A_SGE_INT_CAUSE1) | - ((u64)t4_read_reg(adapter, A_SGE_INT_CAUSE2) << 32); - if (v) { - CH_ALERT(adapter, "SGE parity error (%#llx)\n", - (unsigned long long)v); - t4_write_reg(adapter, A_SGE_INT_CAUSE1, v); - t4_write_reg(adapter, A_SGE_INT_CAUSE2, v >> 32); + bool fatal; + u32 v; + + if (chip_id(adap) <= CHELSIO_T5) { + sge_int3_info.details = sge_int3_details; + } else { + sge_int3_info.details = t6_sge_int3_details; } - v |= t4_handle_intr_status(adapter, A_SGE_INT_CAUSE3, sge_intr_info); - if (chip_id(adapter) <= CHELSIO_T5) - v |= t4_handle_intr_status(adapter, A_SGE_INT_CAUSE3, - t4t5_sge_intr_info); - else - v |= t4_handle_intr_status(adapter, A_SGE_INT_CAUSE3, - t6_sge_intr_info); + fatal = false; + fatal |= t4_handle_intr(adap, &sge_int1_info, 0, verbose); + fatal |= t4_handle_intr(adap, &sge_int2_info, 0, verbose); + fatal |= t4_handle_intr(adap, &sge_int3_info, 0, verbose); + fatal |= t4_handle_intr(adap, &sge_int4_info, 0, verbose); + if (chip_id(adap) >= CHELSIO_T5) + fatal |= t4_handle_intr(adap, &sge_int5_info, 0, verbose); + if (chip_id(adap) >= CHELSIO_T6) + fatal |= t4_handle_intr(adap, &sge_int6_info, 0, verbose); - err = t4_read_reg(adapter, A_SGE_ERROR_STATS); - if (err & F_ERROR_QID_VALID) { - CH_ERR(adapter, "SGE error for queue %u\n", G_ERROR_QID(err)); - if (err & F_UNCAPTURED_ERROR) - CH_ERR(adapter, "SGE UNCAPTURED_ERROR set (clearing)\n"); - t4_write_reg(adapter, A_SGE_ERROR_STATS, F_ERROR_QID_VALID | - F_UNCAPTURED_ERROR); + v = t4_read_reg(adap, A_SGE_ERROR_STATS); + if (v & F_ERROR_QID_VALID) { + CH_ERR(adap, "SGE error for QID %u\n", G_ERROR_QID(v)); + if (v & F_UNCAPTURED_ERROR) + CH_ERR(adap, "SGE UNCAPTURED_ERROR set (clearing)\n"); + t4_write_reg(adap, A_SGE_ERROR_STATS, + F_ERROR_QID_VALID | F_UNCAPTURED_ERROR); } - if (v != 0) - t4_fatal_err(adapter); + return (fatal); } -#define CIM_OBQ_INTR (F_OBQULP0PARERR | F_OBQULP1PARERR | F_OBQULP2PARERR |\ - F_OBQULP3PARERR | F_OBQSGEPARERR | F_OBQNCSIPARERR) -#define CIM_IBQ_INTR (F_IBQTP0PARERR | F_IBQTP1PARERR | F_IBQULPPARERR |\ - F_IBQSGEHIPARERR | F_IBQSGELOPARERR | F_IBQNCSIPARERR) - /* * CIM interrupt handler. */ -static void cim_intr_handler(struct adapter *adapter) +static bool cim_intr_handler(struct adapter *adap, int arg, bool verbose) { - static const struct intr_info cim_intr_info[] = { - { F_PREFDROPINT, "CIM control register prefetch drop", -1, 1 }, - { CIM_OBQ_INTR, "CIM OBQ parity error", -1, 1 }, - { CIM_IBQ_INTR, "CIM IBQ parity error", -1, 1 }, - { F_MBUPPARERR, "CIM mailbox uP parity error", -1, 1 }, - { F_MBHOSTPARERR, "CIM mailbox host parity error", -1, 1 }, - { F_TIEQINPARERRINT, "CIM TIEQ outgoing parity error", -1, 1 }, - { F_TIEQOUTPARERRINT, "CIM TIEQ incoming parity error", -1, 1 }, - { F_TIMER0INT, "CIM TIMER0 interrupt", -1, 1 }, - { 0 } + static const struct intr_action cim_host_intr_actions[] = { + { F_TIMER0INT, 0, t4_os_dump_cimla }, + { 0 }, }; - static const struct intr_info cim_upintr_info[] = { - { F_RSVDSPACEINT, "CIM reserved space access", -1, 1 }, - { F_ILLTRANSINT, "CIM illegal transaction", -1, 1 }, - { F_ILLWRINT, "CIM illegal write", -1, 1 }, - { F_ILLRDINT, "CIM illegal read", -1, 1 }, - { F_ILLRDBEINT, "CIM illegal read BE", -1, 1 }, - { F_ILLWRBEINT, "CIM illegal write BE", -1, 1 }, - { F_SGLRDBOOTINT, "CIM single read from boot space", -1, 1 }, - { F_SGLWRBOOTINT, "CIM single write to boot space", -1, 1 }, - { F_BLKWRBOOTINT, "CIM block write to boot space", -1, 1 }, - { F_SGLRDFLASHINT, "CIM single read from flash space", -1, 1 }, - { F_SGLWRFLASHINT, "CIM single write to flash space", -1, 1 }, - { F_BLKWRFLASHINT, "CIM block write to flash space", -1, 1 }, - { F_SGLRDEEPROMINT, "CIM single EEPROM read", -1, 1 }, - { F_SGLWREEPROMINT, "CIM single EEPROM write", -1, 1 }, - { F_BLKRDEEPROMINT, "CIM block EEPROM read", -1, 1 }, - { F_BLKWREEPROMINT, "CIM block EEPROM write", -1, 1 }, - { F_SGLRDCTLINT , "CIM single read from CTL space", -1, 1 }, - { F_SGLWRCTLINT , "CIM single write to CTL space", -1, 1 }, - { F_BLKRDCTLINT , "CIM block read from CTL space", -1, 1 }, - { F_BLKWRCTLINT , "CIM block write to CTL space", -1, 1 }, - { F_SGLRDPLINT , "CIM single read from PL space", -1, 1 }, - { F_SGLWRPLINT , "CIM single write to PL space", -1, 1 }, - { F_BLKRDPLINT , "CIM block read from PL space", -1, 1 }, - { F_BLKWRPLINT , "CIM block write to PL space", -1, 1 }, - { F_REQOVRLOOKUPINT , "CIM request FIFO overwrite", -1, 1 }, - { F_RSPOVRLOOKUPINT , "CIM response FIFO overwrite", -1, 1 }, - { F_TIMEOUTINT , "CIM PIF timeout", -1, 1 }, - { F_TIMEOUTMAINT , "CIM PIF MA timeout", -1, 1 }, - { 0 } + static const struct intr_details cim_host_intr_details[] = { + /* T6+ */ + { F_PCIE2CIMINTFPARERR, "CIM IBQ PCIe interface parity error" }, + + /* T5+ */ + { F_MA_CIM_INTFPERR, "MA2CIM interface parity error" }, + { F_PLCIM_MSTRSPDATAPARERR, + "PL2CIM master response data parity error" }, + { F_NCSI2CIMINTFPARERR, "CIM IBQ NC-SI interface parity error" }, + { F_SGE2CIMINTFPARERR, "CIM IBQ SGE interface parity error" }, + { F_ULP2CIMINTFPARERR, "CIM IBQ ULP_TX interface parity error" }, + { F_TP2CIMINTFPARERR, "CIM IBQ TP interface parity error" }, + { F_OBQSGERX1PARERR, "CIM OBQ SGE1_RX parity error" }, + { F_OBQSGERX0PARERR, "CIM OBQ SGE0_RX parity error" }, + + /* T4+ */ + { F_TIEQOUTPARERRINT, "CIM TIEQ outgoing FIFO parity error" }, + { F_TIEQINPARERRINT, "CIM TIEQ incoming FIFO parity error" }, + { F_MBHOSTPARERR, "CIM mailbox host read parity error" }, + { F_MBUPPARERR, "CIM mailbox uP parity error" }, + { F_IBQTP0PARERR, "CIM IBQ TP0 parity error" }, + { F_IBQTP1PARERR, "CIM IBQ TP1 parity error" }, + { F_IBQULPPARERR, "CIM IBQ ULP parity error" }, + { F_IBQSGELOPARERR, "CIM IBQ SGE_LO parity error" }, + { F_IBQSGEHIPARERR | F_IBQPCIEPARERR, /* same bit */ + "CIM IBQ PCIe/SGE_HI parity error" }, + { F_IBQNCSIPARERR, "CIM IBQ NC-SI parity error" }, + { F_OBQULP0PARERR, "CIM OBQ ULP0 parity error" }, + { F_OBQULP1PARERR, "CIM OBQ ULP1 parity error" }, + { F_OBQULP2PARERR, "CIM OBQ ULP2 parity error" }, + { F_OBQULP3PARERR, "CIM OBQ ULP3 parity error" }, + { F_OBQSGEPARERR, "CIM OBQ SGE parity error" }, + { F_OBQNCSIPARERR, "CIM OBQ NC-SI parity error" }, + { F_TIMER1INT, "CIM TIMER0 interrupt" }, + { F_TIMER0INT, "CIM TIMER0 interrupt" }, + { F_PREFDROPINT, "CIM control register prefetch drop" }, + { 0} }; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Sat Apr 13 20:49:17 2019 Return-Path: Delivered-To: svn-src-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6826E1583005; Sat, 13 Apr 2019 20:49:17 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0B9A86B443; Sat, 13 Apr 2019 20:49:17 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DC36EE5FC; Sat, 13 Apr 2019 20:49:16 +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 x3DKnGT3047940; Sat, 13 Apr 2019 20:49:16 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3DKnG4H047939; Sat, 13 Apr 2019 20:49:16 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201904132049.x3DKnG4H047939@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sat, 13 Apr 2019 20:49: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: r346189 - stable/11/sys/fs/ext2fs X-SVN-Group: stable-11 X-SVN-Commit-Author: pfg X-SVN-Commit-Paths: stable/11/sys/fs/ext2fs X-SVN-Commit-Revision: 346189 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0B9A86B443 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2019 20:49:17 -0000 Author: pfg Date: Sat Apr 13 20:49:16 2019 New Revision: 346189 URL: https://svnweb.freebsd.org/changeset/base/346189 Log: MFC r344755 (by fsu@) Fix integer overflow possibility. Reported by: Christopher Krah, Thomas Barabosch, and Jan-Niclas Hilgert of Fraunhofer FKIE Reported as: FS-2-EXT2-1: Out-of-Bounds Write in nmount (ext2_vget) Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D19326 Modified: stable/11/sys/fs/ext2fs/ext2_vfsops.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/ext2fs/ext2_vfsops.c ============================================================================== --- stable/11/sys/fs/ext2fs/ext2_vfsops.c Sat Apr 13 19:23:11 2019 (r346188) +++ stable/11/sys/fs/ext2fs/ext2_vfsops.c Sat Apr 13 20:49:16 2019 (r346189) @@ -940,8 +940,8 @@ ext2_vget(struct mount *mp, ino_t ino, int flags, stru struct buf *bp; struct vnode *vp; struct thread *td; - int i, error; - int used_blocks; + unsigned int i, used_blocks; + int error; td = curthread; error = vfs_hash_get(mp, ino, flags, td, vpp, NULL, NULL);