From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 00:53:53 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 86653739; Sun, 28 Dec 2014 00:53:53 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 589431B02; Sun, 28 Dec 2014 00:53:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBS0rrMu009563; Sun, 28 Dec 2014 00:53:53 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBS0rrEI009562; Sun, 28 Dec 2014 00:53:53 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412280053.sBS0rrEI009562@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Sun, 28 Dec 2014 00:53:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276323 - head/sys/amd64/vmm/io X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 00:53:53 -0000 Author: neel Date: Sun Dec 28 00:53:52 2014 New Revision: 276323 URL: https://svnweb.freebsd.org/changeset/base/276323 Log: Implement "special mask mode" in vatpic. OpenBSD guests always enable "special mask mode" during boot. As a result of r275952 this is flagged as an error and the guest cannot boot. Reviewed by: grehan Differential Revision: https://reviews.freebsd.org/D1384 MFC after: 1 week Modified: head/sys/amd64/vmm/io/vatpic.c Modified: head/sys/amd64/vmm/io/vatpic.c ============================================================================== --- head/sys/amd64/vmm/io/vatpic.c Sat Dec 27 23:19:08 2014 (r276322) +++ head/sys/amd64/vmm/io/vatpic.c Sun Dec 28 00:53:52 2014 (r276323) @@ -73,6 +73,7 @@ struct atpic { uint8_t request; /* Interrupt Request Register (IIR) */ uint8_t service; /* Interrupt Service (ISR) */ uint8_t mask; /* Interrupt Mask Register (IMR) */ + uint8_t smm; /* special mask mode */ int acnt[8]; /* sum of pin asserts and deasserts */ int lowprio; /* lowest priority irq */ @@ -131,8 +132,16 @@ vatpic_get_highest_isrpin(struct atpic * ATPIC_PIN_FOREACH(pin, atpic, i) { bit = (1 << pin); - if (atpic->service & bit) - return (pin); + if (atpic->service & bit) { + /* + * An IS bit that is masked by an IMR bit will not be + * cleared by a non-specific EOI in Special Mask Mode. + */ + if (atpic->smm && (atpic->mask & bit) != 0) + continue; + else + return (pin); + } } return (-1); @@ -153,6 +162,15 @@ vatpic_get_highest_irrpin(struct atpic * if (atpic->sfn) serviced &= ~(1 << 2); + /* + * In 'Special Mask Mode', when a mask bit is set in OCW1 it inhibits + * further interrupts at that level and enables interrupts from all + * other levels that are not masked. In other words the ISR has no + * bearing on the levels that can generate interrupts. + */ + if (atpic->smm) + serviced = 0; + ATPIC_PIN_FOREACH(pin, atpic, tmp) { bit = 1 << pin; @@ -261,6 +279,7 @@ vatpic_icw1(struct vatpic *vatpic, struc atpic->lowprio = 7; atpic->rd_cmd_reg = 0; atpic->poll = 0; + atpic->smm = 0; if ((val & ICW1_SNGL) != 0) { VATPIC_CTR0(vatpic, "vatpic cascade mode required"); @@ -375,8 +394,10 @@ vatpic_ocw3(struct vatpic *vatpic, struc VATPIC_CTR1(vatpic, "atpic ocw3 0x%x", val); if (val & OCW3_ESMM) { - VATPIC_CTR0(vatpic, "atpic special mask mode not implemented"); - return (-1); + atpic->smm = val & OCW3_SMM ? 1 : 0; + VATPIC_CTR2(vatpic, "%s atpic special mask mode %s", + master_atpic(vatpic, atpic) ? "master" : "slave", + atpic->smm ? "enabled" : "disabled"); } if (val & OCW3_RR) { From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 06:41:14 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 779A9BA5; Sun, 28 Dec 2014 06:41:14 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 62E0C64A1E; Sun, 28 Dec 2014 06:41:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBS6fE2P070639; Sun, 28 Dec 2014 06:41:14 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBS6fEX6070638; Sun, 28 Dec 2014 06:41:14 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201412280641.sBS6fEX6070638@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sun, 28 Dec 2014 06:41:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276326 - head/cddl/contrib/opensolaris/lib/libdtrace/common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 06:41:14 -0000 Author: jhibbits Date: Sun Dec 28 06:41:13 2014 New Revision: 276326 URL: https://svnweb.freebsd.org/changeset/base/276326 Log: Add PowerPC64 function descriptor support for dt_link.c Summary: PowerPC64 uses function descriptors in a section .opd, exporting the descriptors to the symbol table. This adds support for these into dt_link.c so that dtrace USDT probes can be compiled. Test Plan: Tested only on powerpc64. No regression testing has been performed, so I want someone with x86 hardware to regression test this. Tested on amd64 by markj Reviewers: #dtrace, markj Reviewed By: #dtrace, markj Subscribers: markj Differential Revision: https://reviews.freebsd.org/D1267 MFC after: 3 weeks Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Sun Dec 28 02:33:13 2014 (r276325) +++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Sun Dec 28 06:41:13 2014 (r276326) @@ -685,8 +685,8 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_ elf_file.ehdr.e_machine = EM_ARM; #elif defined(__mips__) elf_file.ehdr.e_machine = EM_MIPS; -#elif defined(__powerpc__) - elf_file.ehdr.e_machine = EM_PPC; +#elif defined(__powerpc64__) + elf_file.ehdr.e_machine = EM_PPC64; #elif defined(__sparc) elf_file.ehdr.e_machine = EM_SPARCV9; #elif defined(__i386) || defined(__amd64) @@ -784,21 +784,32 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_ static int dt_symtab_lookup(Elf_Data *data_sym, int nsym, uintptr_t addr, uint_t shn, - GElf_Sym *sym) + GElf_Sym *sym, int uses_funcdesc, Elf *elf) { int i, ret = -1; + Elf64_Addr symval; + Elf_Scn *opd_scn; + Elf_Data *opd_desc; GElf_Sym s; for (i = 0; i < nsym && gelf_getsym(data_sym, i, sym) != NULL; i++) { - if (GELF_ST_TYPE(sym->st_info) == STT_FUNC && - shn == sym->st_shndx && - sym->st_value <= addr && - addr < sym->st_value + sym->st_size) { - if (GELF_ST_BIND(sym->st_info) == STB_GLOBAL) - return (0); + if (GELF_ST_TYPE(sym->st_info) == STT_FUNC) { + symval = sym->st_value; + if (uses_funcdesc) { + opd_scn = elf_getscn(elf, sym->st_shndx); + opd_desc = elf_rawdata(opd_scn, NULL); + symval = + *(uint64_t*)((char *)opd_desc->d_buf + symval); + } + if ((uses_funcdesc || shn == sym->st_shndx) && + symval <= addr && + addr < symval + sym->st_size) { + if (GELF_ST_BIND(sym->st_info) == STB_GLOBAL) + return (0); - ret = 0; - s = *sym; + ret = 0; + s = *sym; + } } } @@ -1375,7 +1386,8 @@ process_obj(dtrace_hdl_t *dtp, const cha continue; if (dt_symtab_lookup(data_sym, isym, rela.r_offset, - shdr_rel.sh_info, &fsym) != 0) { + shdr_rel.sh_info, &fsym, + (emachine1 == EM_PPC64), elf) != 0) { dt_strtab_destroy(strtab); goto err; } @@ -1536,7 +1548,8 @@ process_obj(dtrace_hdl_t *dtp, const cha p = strhyphenate(p + 3); /* strlen("___") */ if (dt_symtab_lookup(data_sym, isym, rela.r_offset, - shdr_rel.sh_info, &fsym) != 0) + shdr_rel.sh_info, &fsym, + (emachine1 == EM_PPC64), elf) != 0) goto err; if (fsym.st_name > data_str->d_size) From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 07:14:39 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BD28FE48; Sun, 28 Dec 2014 07:14:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A86FD64DE3; Sun, 28 Dec 2014 07:14:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBS7EdVl084866; Sun, 28 Dec 2014 07:14:39 GMT (envelope-from peterj@FreeBSD.org) Received: (from peterj@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBS7Edcc084865; Sun, 28 Dec 2014 07:14:39 GMT (envelope-from peterj@FreeBSD.org) Message-Id: <201412280714.sBS7Edcc084865@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: peterj set sender to peterj@FreeBSD.org using -f From: Peter Jeremy Date: Sun, 28 Dec 2014 07:14:39 +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: r276327 - stable/10/sys/fs/nfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 07:14:39 -0000 Author: peterj Date: Sun Dec 28 07:14:38 2014 New Revision: 276327 URL: https://svnweb.freebsd.org/changeset/base/276327 Log: MFH r275941: Adjust the test of a KASSERT to better match the intent. This assertion was added in r246213 as a guard against corrupted mbufs arriving from drivers, the key distinguishing factor of said mbufs being that they had a negative length. Given we're in a while loop specifically designed to skip over zero-length mbufs, panicking on a zero-length mbuf seems incorrect. Suggested by: rmacklem MFH go-ahead: benno Approved by: grog (co-mentor) Modified: stable/10/sys/fs/nfs/nfs_commonsubs.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- stable/10/sys/fs/nfs/nfs_commonsubs.c Sun Dec 28 06:41:13 2014 (r276326) +++ stable/10/sys/fs/nfs/nfs_commonsubs.c Sun Dec 28 07:14:38 2014 (r276327) @@ -219,7 +219,8 @@ nfsm_mbufuio(struct nfsrv_descript *nd, } mbufcp = NFSMTOD(mp, caddr_t); len = mbuf_len(mp); - KASSERT(len > 0, ("len %d", len)); + KASSERT(len >= 0, + ("len %d, corrupted mbuf?", len)); } xfer = (left > len) ? len : left; #ifdef notdef From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 07:16:49 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A6507F8B; Sun, 28 Dec 2014 07:16:49 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91E0664E15; Sun, 28 Dec 2014 07:16:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBS7GnPe085222; Sun, 28 Dec 2014 07:16:49 GMT (envelope-from peterj@FreeBSD.org) Received: (from peterj@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBS7GnPB085221; Sun, 28 Dec 2014 07:16:49 GMT (envelope-from peterj@FreeBSD.org) Message-Id: <201412280716.sBS7GnPB085221@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: peterj set sender to peterj@FreeBSD.org using -f From: Peter Jeremy Date: Sun, 28 Dec 2014 07:16:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276328 - stable/9/sys/fs/nfs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 07:16:49 -0000 Author: peterj Date: Sun Dec 28 07:16:48 2014 New Revision: 276328 URL: https://svnweb.freebsd.org/changeset/base/276328 Log: MFH r275941: Adjust the test of a KASSERT to better match the intent. This assertion was added in r246213 as a guard against corrupted mbufs arriving from drivers, the key distinguishing factor of said mbufs being that they had a negative length. Given we're in a while loop specifically designed to skip over zero-length mbufs, panicking on a zero-length mbuf seems incorrect. Suggested by: rmacklem MFH go-ahead: benno Approved by: grog (co-mentor) Modified: stable/9/sys/fs/nfs/nfs_commonsubs.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/fs/ (props changed) Modified: stable/9/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- stable/9/sys/fs/nfs/nfs_commonsubs.c Sun Dec 28 07:14:38 2014 (r276327) +++ stable/9/sys/fs/nfs/nfs_commonsubs.c Sun Dec 28 07:16:48 2014 (r276328) @@ -200,7 +200,8 @@ nfsm_mbufuio(struct nfsrv_descript *nd, } mbufcp = NFSMTOD(mp, caddr_t); len = mbuf_len(mp); - KASSERT(len > 0, ("len %d", len)); + KASSERT(len >= 0, + ("len %d, corrupted mbuf?", len)); } xfer = (left > len) ? len : left; #ifdef notdef From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 15:38:52 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2642399E; Sun, 28 Dec 2014 15:38:52 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 12A29662DF; Sun, 28 Dec 2014 15:38:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSFcp4A018468; Sun, 28 Dec 2014 15:38:51 GMT (envelope-from antoine@FreeBSD.org) Received: (from antoine@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSFcpaM018467; Sun, 28 Dec 2014 15:38:51 GMT (envelope-from antoine@FreeBSD.org) Message-Id: <201412281538.sBSFcpaM018467@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: antoine set sender to antoine@FreeBSD.org using -f From: Antoine Brodin Date: Sun, 28 Dec 2014 15:38:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276330 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 15:38:52 -0000 Author: antoine Date: Sun Dec 28 15:38:50 2014 New Revision: 276330 URL: https://svnweb.freebsd.org/changeset/base/276330 Log: Add ncurses to _LIBRARIES so that libmenu is correctly linked PR: ports/195782 Modified: head/share/mk/src.libnames.mk Modified: head/share/mk/src.libnames.mk ============================================================================== --- head/share/mk/src.libnames.mk Sun Dec 28 15:37:51 2014 (r276329) +++ head/share/mk/src.libnames.mk Sun Dec 28 15:38:50 2014 (r276330) @@ -110,6 +110,7 @@ _LIBRARIES= \ memstat \ mp \ nandfs \ + ncurses \ ncursesw \ netgraph \ ngatm \ From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 18:12:58 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 279304D3; Sun, 28 Dec 2014 18:12:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 11C6F2831; Sun, 28 Dec 2014 18:12:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSICwb0093489; Sun, 28 Dec 2014 18:12:58 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSICuVx093484; Sun, 28 Dec 2014 18:12:56 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412281812.sBSICuVx093484@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 28 Dec 2014 18:12:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276333 - in head/sys: arm/arm arm/include conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 18:12:58 -0000 Author: ian Date: Sun Dec 28 18:12:56 2014 New Revision: 276333 URL: https://svnweb.freebsd.org/changeset/base/276333 Log: Add new code to read and parse cpu identification data using the new CPUID mechanism defined for armv7 (and also present on some armv6 chips including the arm1176 used on rpi). The information is parsed into a global cpuinfo structure, which will be used by (upcoming) new cache and tlb maintenance code to handle cpu-specific variations of the maintence sequences. Submitted by: Svatopluk Kraus , Michal Meloun + * Copyright 2014 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include +#include + +struct cpuinfo cpuinfo; + +/* Read and parse CPU id scheme */ +void +cpuinfo_init(void) +{ + + cpuinfo.midr = cp15_midr_get(); + /* Test old version id schemes first */ + if ((cpuinfo.midr & CPU_ID_IMPLEMENTOR_MASK) == CPU_ID_ARM_LTD) { + if (CPU_ID_ISOLD(cpuinfo.midr)) { + /* obsolete ARMv2 or ARMv3 CPU */ + cpuinfo.midr = 0; + return; + } + if (CPU_ID_IS7(cpuinfo.midr)) { + if ((cpuinfo.midr & (1 << 23)) == 0) { + /* obsolete ARMv3 CPU */ + cpuinfo.midr = 0; + return; + } + /* ARMv4T CPU */ + cpuinfo.architecture = 1; + cpuinfo.revision = (cpuinfo.midr >> 16) & 0x7F; + } + } else { + /* must be new id scheme */ + cpuinfo.architecture = (cpuinfo.midr >> 16) & 0x0F; + cpuinfo.revision = (cpuinfo.midr >> 20) & 0x0F; + } + /* Parse rest of MIDR */ + cpuinfo.implementer = (cpuinfo.midr >> 24) & 0xFF; + cpuinfo.part_number = (cpuinfo.midr >> 4) & 0xFFF; + cpuinfo.patch = cpuinfo.midr & 0x0F; + + /* CP15 c0,c0 regs 0-7 exist on all CPUs (although aliased with MIDR) */ + cpuinfo.ctr = cp15_ctr_get(); + cpuinfo.tcmtr = cp15_tcmtr_get(); + cpuinfo.tlbtr = cp15_tlbtr_get(); + cpuinfo.mpidr = cp15_mpidr_get(); + cpuinfo.revidr = cp15_revidr_get(); + + /* if CPU is not v7 cpu id scheme */ + if (cpuinfo.architecture != 0xF) + return; + + cpuinfo.id_pfr0 = cp15_id_pfr0_get(); + cpuinfo.id_pfr1 = cp15_id_pfr1_get(); + cpuinfo.id_dfr0 = cp15_id_dfr0_get(); + cpuinfo.id_afr0 = cp15_id_afr0_get(); + cpuinfo.id_mmfr0 = cp15_id_mmfr0_get(); + cpuinfo.id_mmfr1 = cp15_id_mmfr1_get(); + cpuinfo.id_mmfr2 = cp15_id_mmfr2_get(); + cpuinfo.id_mmfr3 = cp15_id_mmfr3_get(); + cpuinfo.id_isar0 = cp15_id_isar0_get(); + cpuinfo.id_isar1 = cp15_id_isar1_get(); + cpuinfo.id_isar2 = cp15_id_isar2_get(); + cpuinfo.id_isar3 = cp15_id_isar3_get(); + cpuinfo.id_isar4 = cp15_id_isar4_get(); + cpuinfo.id_isar5 = cp15_id_isar5_get(); + +/* Not yet - CBAR only exist on ARM SMP Cortex A CPUs + cpuinfo.cbar = cp15_cbar_get(); +*/ + + /* Test if revidr is implemented */ + if (cpuinfo.revidr == cpuinfo.midr) + cpuinfo.revidr = 0; + + /* parsed bits of above registers */ + /* id_mmfr0 */ + cpuinfo.outermost_shareability = (cpuinfo.id_mmfr0 >> 8) & 0xF; + cpuinfo.shareability_levels = (cpuinfo.id_mmfr0 >> 12) & 0xF; + cpuinfo.auxiliary_registers = (cpuinfo.id_mmfr0 >> 20) & 0xF; + cpuinfo.innermost_shareability = (cpuinfo.id_mmfr0 >> 28) & 0xF; + /* id_mmfr2 */ + cpuinfo.mem_barrier = (cpuinfo.id_mmfr2 >> 20) & 0xF; + /* id_mmfr3 */ + cpuinfo.coherent_walk = (cpuinfo.id_mmfr3 >> 20) & 0xF; + cpuinfo.maintenance_broadcast =(cpuinfo.id_mmfr3 >> 12) & 0xF; + /* id_pfr1 */ + cpuinfo.generic_timer_ext = (cpuinfo.id_pfr1 >> 16) & 0xF; + cpuinfo.virtualization_ext = (cpuinfo.id_pfr1 >> 12) & 0xF; + cpuinfo.security_ext = (cpuinfo.id_pfr1 >> 4) & 0xF; +} Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Sun Dec 28 17:16:41 2014 (r276332) +++ head/sys/arm/arm/machdep.c Sun Dec 28 18:12:56 2014 (r276333) @@ -90,6 +90,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1064,6 +1065,8 @@ initarm(struct arm_boot_params *abp) arm_physmem_kernaddr = abp->abp_physaddr; memsize = 0; + + cpuinfo_init(); set_cpufuncs(); /* Added: head/sys/arm/include/cpu-v6.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/include/cpu-v6.h Sun Dec 28 18:12:56 2014 (r276333) @@ -0,0 +1,158 @@ +/*- + * Copyright 2014 Svatopluk Kraus + * Copyright 2014 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ +#ifndef MACHINE_CPU_V6_H +#define MACHINE_CPU_V6_H + +#include "machine/atomic.h" +#include "machine/cpufunc.h" +#include "machine/cpuinfo.h" +#include "machine/sysreg.h" + + +#define CPU_ASID_KERNEL 0 + +/* + * Macros to generate CP15 (system control processor) read/write functions. + */ +#define _FX(s...) #s + +#define _RF0(fname, aname...) \ +static __inline register_t \ +fname(void) \ +{ \ + register_t reg; \ + __asm __volatile("mrc\t" _FX(aname): "=r" (reg)); \ + return(reg); \ +} + +#define _WF0(fname, aname...) \ +static __inline void \ +fname(void) \ +{ \ + __asm __volatile("mcr\t" _FX(aname)); \ +} + +#define _WF1(fname, aname...) \ +static __inline void \ +fname(register_t reg) \ +{ \ + __asm __volatile("mcr\t" _FX(aname):: "r" (reg)); \ +} + +/* + * Raw CP15 maintenance operations + * !!! not for external use !!! + */ + +/* TLB */ + +_WF0(_CP15_TLBIALL, CP15_TLBIALL) /* Invalidate entire unified TLB */ +#if __ARM_ARCH >= 7 && defined SMP +_WF0(_CP15_TLBIALLIS, CP15_TLBIALLIS) /* Invalidate entire unified TLB IS */ +#endif +_WF1(_CP15_TLBIASID, CP15_TLBIASID(%0)) /* Invalidate unified TLB by ASID */ +#if __ARM_ARCH >= 7 && defined SMP +_WF1(_CP15_TLBIASIDIS, CP15_TLBIASIDIS(%0)) /* Invalidate unified TLB by ASID IS */ +#endif +_WF1(_CP15_TLBIMVAA, CP15_TLBIMVAA(%0)) /* Invalidate unified TLB by MVA, all ASID */ +#if __ARM_ARCH >= 7 && defined SMP +_WF1(_CP15_TLBIMVAAIS, CP15_TLBIMVAAIS(%0)) /* Invalidate unified TLB by MVA, all ASID IS */ +#endif +_WF1(_CP15_TLBIMVA, CP15_TLBIMVA(%0)) /* Invalidate unified TLB by MVA */ + +_WF1(_CP15_TTB_SET, CP15_TTBR0(%0)) + +/* Cache and Branch predictor */ + +_WF0(_CP15_BPIALL, CP15_BPIALL) /* Branch predictor invalidate all */ +#if __ARM_ARCH >= 7 && defined SMP +_WF0(_CP15_BPIALLIS, CP15_BPIALLIS) /* Branch predictor invalidate all IS */ +#endif +_WF1(_CP15_BPIMVA, CP15_BPIMVA(%0)) /* Branch predictor invalidate by MVA */ +_WF1(_CP15_DCCIMVAC, CP15_DCCIMVAC(%0)) /* Data cache clean and invalidate by MVA PoC */ +_WF1(_CP15_DCCISW, CP15_DCCISW(%0)) /* Data cache clean and invalidate by set/way */ +_WF1(_CP15_DCCMVAC, CP15_DCCMVAC(%0)) /* Data cache clean by MVA PoC */ +#if __ARM_ARCH >= 7 +_WF1(_CP15_DCCMVAU, CP15_DCCMVAU(%0)) /* Data cache clean by MVA PoU */ +#endif +_WF1(_CP15_DCCSW, CP15_DCCSW(%0)) /* Data cache clean by set/way */ +_WF1(_CP15_DCIMVAC, CP15_DCIMVAC(%0)) /* Data cache invalidate by MVA PoC */ +_WF1(_CP15_DCISW, CP15_DCISW(%0)) /* Data cache invalidate by set/way */ +_WF0(_CP15_ICIALLU, CP15_ICIALLU) /* Instruction cache invalidate all PoU */ +#if __ARM_ARCH >= 7 && defined SMP +_WF0(_CP15_ICIALLUIS, CP15_ICIALLUIS) /* Instruction cache invalidate all PoU IS */ +#endif +_WF1(_CP15_ICIMVAU, CP15_ICIMVAU(%0)) /* Instruction cache invalidate */ + +/* + * Publicly accessible functions + */ + +/* Various control registers */ + +_RF0(cp15_dfsr_get, CP15_DFSR(%0)) +_RF0(cp15_ifsr_get, CP15_IFSR(%0)) +_WF1(cp15_prrr_set, CP15_PRRR(%0)) +_WF1(cp15_nmrr_set, CP15_NMRR(%0)) +_RF0(cp15_ttbr_get, CP15_TTBR0(%0)) +_RF0(cp15_dfar_get, CP15_DFAR(%0)) +#if __ARM_ARCH >= 7 +_RF0(cp15_ifar_get, CP15_IFAR(%0)) +#endif + +/*CPU id registers */ +_RF0(cp15_midr_get, CP15_MIDR(%0)) +_RF0(cp15_ctr_get, CP15_CTR(%0)) +_RF0(cp15_tcmtr_get, CP15_TCMTR(%0)) +_RF0(cp15_tlbtr_get, CP15_TLBTR(%0)) +_RF0(cp15_mpidr_get, CP15_MPIDR(%0)) +_RF0(cp15_revidr_get, CP15_REVIDR(%0)) +_RF0(cp15_aidr_get, CP15_AIDR(%0)) +_RF0(cp15_id_pfr0_get, CP15_ID_PFR0(%0)) +_RF0(cp15_id_pfr1_get, CP15_ID_PFR1(%0)) +_RF0(cp15_id_dfr0_get, CP15_ID_DFR0(%0)) +_RF0(cp15_id_afr0_get, CP15_ID_AFR0(%0)) +_RF0(cp15_id_mmfr0_get, CP15_ID_MMFR0(%0)) +_RF0(cp15_id_mmfr1_get, CP15_ID_MMFR1(%0)) +_RF0(cp15_id_mmfr2_get, CP15_ID_MMFR2(%0)) +_RF0(cp15_id_mmfr3_get, CP15_ID_MMFR3(%0)) +_RF0(cp15_id_isar0_get, CP15_ID_ISAR0(%0)) +_RF0(cp15_id_isar1_get, CP15_ID_ISAR1(%0)) +_RF0(cp15_id_isar2_get, CP15_ID_ISAR2(%0)) +_RF0(cp15_id_isar3_get, CP15_ID_ISAR3(%0)) +_RF0(cp15_id_isar4_get, CP15_ID_ISAR4(%0)) +_RF0(cp15_id_isar5_get, CP15_ID_ISAR5(%0)) +_RF0(cp15_cbar_get, CP15_CBAR(%0)) + +#undef _FX +#undef _RF0 +#undef _WF0 +#undef _WF1 + +#endif /* !MACHINE_CPU_V6_H */ Added: head/sys/arm/include/cpuinfo.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/include/cpuinfo.h Sun Dec 28 18:12:56 2014 (r276333) @@ -0,0 +1,91 @@ +/*- + * Copyright 2014 Svatopluk Kraus + * Copyright 2014 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _MACHINE_CPUINFO_H_ +#define _MACHINE_CPUINFO_H_ + +#include + +struct cpuinfo { + /* raw id registers */ + uint32_t midr; + uint32_t ctr; + uint32_t tcmtr; + uint32_t tlbtr; + uint32_t mpidr; + uint32_t revidr; + uint32_t id_pfr0; + uint32_t id_pfr1; + uint32_t id_dfr0; + uint32_t id_afr0; + uint32_t id_mmfr0; + uint32_t id_mmfr1; + uint32_t id_mmfr2; + uint32_t id_mmfr3; + uint32_t id_isar0; + uint32_t id_isar1; + uint32_t id_isar2; + uint32_t id_isar3; + uint32_t id_isar4; + uint32_t id_isar5; + uint32_t cbar; + + /* Parsed bits of above registers... */ + + /* midr */ + int implementer; + int revision; + int architecture; + int part_number; + int patch; + + /* id_mmfr0 */ + int outermost_shareability; + int shareability_levels; + int auxiliary_registers; + int innermost_shareability; + + /* id_mmfr1 */ + int mem_barrier; + + /* id_mmfr3 */ + int coherent_walk; + int maintenance_broadcast; + + /* id_pfr1 */ + int generic_timer_ext; + int virtualization_ext; + int security_ext; +}; + +extern struct cpuinfo cpuinfo; + +void cpuinfo_init(void); + +#endif /* _MACHINE_CPUINFO_H_ */ Modified: head/sys/conf/files.arm ============================================================================== --- head/sys/conf/files.arm Sun Dec 28 17:16:41 2014 (r276332) +++ head/sys/conf/files.arm Sun Dec 28 18:12:56 2014 (r276333) @@ -11,6 +11,7 @@ arm/arm/copystr.S standard arm/arm/cpufunc.c standard arm/arm/cpufunc_asm.S standard arm/arm/cpufunc_asm_armv4.S standard +arm/arm/cpuinfo.c standard arm/arm/db_disasm.c optional ddb arm/arm/db_interface.c optional ddb arm/arm/db_trace.c optional ddb From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 18:19:07 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4199A882; Sun, 28 Dec 2014 18:19:07 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 224EF28C0; Sun, 28 Dec 2014 18:19:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSIJ7nk094383; Sun, 28 Dec 2014 18:19:07 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSIJ6lJ094382; Sun, 28 Dec 2014 18:19:06 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412281819.sBSIJ6lJ094382@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 28 Dec 2014 18:19:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276334 - head/sys/arm/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 18:19:07 -0000 Author: ian Date: Sun Dec 28 18:19:05 2014 New Revision: 276334 URL: https://svnweb.freebsd.org/changeset/base/276334 Log: Add new TLB and cache maintainence functions for armv6 and armv7. These are inline functions that handle all the routine maintenance operations except the flush-all and invalidate-all routines which are required only during early kernel init. These inline functions should be very much faster than the old mechanism that involved jumping through the big cpufuncs table, especially for common operations such as invalidating a single TLB entry. Note that nothing is calling these yet, this just is just required infrastructure for upcoming changes to the pmap-v6 code. Modified: head/sys/arm/include/cpu-v6.h Modified: head/sys/arm/include/cpu-v6.h ============================================================================== --- head/sys/arm/include/cpu-v6.h Sun Dec 28 18:12:56 2014 (r276333) +++ head/sys/arm/include/cpu-v6.h Sun Dec 28 18:19:05 2014 (r276334) @@ -155,4 +155,242 @@ _RF0(cp15_cbar_get, CP15_CBAR(%0)) #undef _WF0 #undef _WF1 +/* + * TLB maintenance operations. + */ + +/* Local (i.e. not broadcasting ) operations. */ + +/* Flush all TLB entries (even global). */ +static __inline void +tlb_flush_all_local(void) +{ + + dsb(); + _CP15_TLBIALL(); + dsb(); +} + +/* Flush all not global TLB entries. */ +static __inline void +tlb_flush_all_ng_local(void) +{ + + dsb(); + _CP15_TLBIASID(CPU_ASID_KERNEL); + dsb(); +} + +/* Flush single TLB entry (even global). */ +static __inline void +tlb_flush_local(vm_offset_t sva) +{ + + dsb(); + _CP15_TLBIMVA((sva & ~PAGE_MASK ) | CPU_ASID_KERNEL); + dsb(); +} + +/* Flush range of TLB entries (even global). */ +static __inline void +tlb_flush_range_local(vm_offset_t sva, vm_size_t size) +{ + vm_offset_t va; + vm_offset_t eva = sva + size; + + dsb(); + for (va = sva; va < eva; va += PAGE_SIZE) + _CP15_TLBIMVA((va & ~PAGE_MASK ) | CPU_ASID_KERNEL); + dsb(); +} + +/* Broadcasting operations. */ +#ifndef SMP + +#define tlb_flush_all() tlb_flush_all_local() +#define tlb_flush_all_ng() tlb_flush_all_ng_local() +#define tlb_flush(sva) tlb_flush_local(sva) +#define tlb_flush_range(sva, size) tlb_flush_range_local(sva, size) + +#else /* SMP */ + +static __inline void +tlb_flush_all(void) +{ + + dsb(); + _CP15_TLBIALLIS(); + dsb(); +} + +static __inline void +tlb_flush_all_ng() +{ + + dsb(); + _CP15_TLBIASIDIS(CPU_ASID_KERNEL); + dsb(); +} + +static __inline void +tlb_flush(vm_offset_t sva) +{ + + dsb(); + _CP15_TLBIMVAAIS(sva); + dsb(); +} + +static __inline void +tlb_flush_range(vm_offset_t sva, vm_size_t size) +{ + vm_offset_t va; + vm_offset_t eva = sva + size; + + dsb(); + for (va = sva; va < eva; va += PAGE_SIZE) + _CP15_TLBIMVAAIS(va); + dsb(); +} +#endif /* SMP */ + +/* + * Cache maintenance operations. + */ + +/* Sync I and D caches to PoU */ +static __inline void +icache_sync(vm_offset_t sva, vm_size_t size) +{ + vm_offset_t va; + vm_offset_t eva = sva + size; + + dsb(); + for (va = sva; va < eva; va += arm_dcache_align) { +#ifdef SMP + _CP15_DCCMVAU(va); +#else + _CP15_DCCMVAC(va); +#endif + } + dsb(); +#ifdef SMP + _CP15_ICIALLUIS(); +#else + _CP15_ICIALLU(); +#endif + dsb(); + isb(); +} + +/* Invalidate I cache */ +static __inline void +icache_inv_all(void) +{ +#ifdef SMP + _CP15_ICIALLUIS(); +#else + _CP15_ICIALLU(); +#endif + dsb(); + isb(); +} + +/* Write back D-cache to PoU */ +static __inline void +dcache_wb_pou(vm_offset_t sva, vm_size_t size) +{ + vm_offset_t va; + vm_offset_t eva = sva + size; + + dsb(); + for (va = sva; va < eva; va += arm_dcache_align) { +#ifdef SMP + _CP15_DCCMVAU(va); +#else + _CP15_DCCMVAC(va); +#endif + } + dsb(); +} + +/* Invalidate D-cache to PoC */ +static __inline void +dcache_inv_poc(vm_offset_t sva, vm_paddr_t pa, vm_size_t size) +{ + vm_offset_t va; + vm_offset_t eva = sva + size; + + /* invalidate L1 first */ + for (va = sva; va < eva; va += arm_dcache_align) { + _CP15_DCIMVAC(va); + } + dsb(); + + /* then L2 */ + cpu_l2cache_inv_range(pa, size); + dsb(); + + /* then L1 again */ + for (va = sva; va < eva; va += arm_dcache_align) { + _CP15_DCIMVAC(va); + } + dsb(); +} + +/* Write back D-cache to PoC */ +static __inline void +dcache_wb_poc(vm_offset_t sva, vm_paddr_t pa, vm_size_t size) +{ + vm_offset_t va; + vm_offset_t eva = sva + size; + + dsb(); + + for (va = sva; va < eva; va += arm_dcache_align) { + _CP15_DCCMVAC(va); + } + dsb(); + + cpu_l2cache_wb_range(pa, size); +} + +/* Write back and invalidate D-cache to PoC */ +static __inline void +dcache_wbinv_poc(vm_offset_t sva, vm_paddr_t pa, vm_size_t size) +{ + vm_offset_t va; + vm_offset_t eva = sva + size; + + dsb(); + + /* write back L1 first */ + for (va = sva; va < eva; va += arm_dcache_align) { + _CP15_DCCMVAC(va); + } + dsb(); + + /* then write back and invalidate L2 */ + cpu_l2cache_wbinv_range(pa, size); + + /* then invalidate L1 */ + for (va = sva; va < eva; va += arm_dcache_align) { + _CP15_DCIMVAC(va); + } + dsb(); +} + +/* Set TTB0 register */ +static __inline void +cp15_ttbr_set(uint32_t reg) +{ + dsb(); + _CP15_TTB_SET(reg); + dsb(); + _CP15_BPIALL(); + dsb(); + isb(); + tlb_flush_all_ng_local(); +} + #endif /* !MACHINE_CPU_V6_H */ From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 18:20:24 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DEA729FB; Sun, 28 Dec 2014 18:20:24 +0000 (UTC) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B3B232982; Sun, 28 Dec 2014 18:20:24 +0000 (UTC) Received: from [73.34.117.227] (helo=ilsoft.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Y5IRz-000LeY-4i; Sun, 28 Dec 2014 18:20:23 +0000 Received: from revolution.hippie.lan (revolution.hippie.lan [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id sBSIKMo5004842; Sun, 28 Dec 2014 11:20:22 -0700 (MST) (envelope-from ian@freebsd.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 73.34.117.227 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1+WA0Bx5EpO6+9JikLXX/gA Message-ID: <1419790822.1018.208.camel@freebsd.org> Subject: Re: svn commit: r276334 - head/sys/arm/include From: Ian Lepore To: src-committers@freebsd.org Date: Sun, 28 Dec 2014 11:20:22 -0700 In-Reply-To: <201412281819.sBSIJ6lJ094382@svn.freebsd.org> References: <201412281819.sBSIJ6lJ094382@svn.freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.8 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 18:20:25 -0000 On Sun, 2014-12-28 at 18:19 +0000, Ian Lepore wrote: > Author: ian > Date: Sun Dec 28 18:19:05 2014 > New Revision: 276334 > URL: https://svnweb.freebsd.org/changeset/base/276334 > > Log: > Add new TLB and cache maintainence functions for armv6 and armv7. These > are inline functions that handle all the routine maintenance operations > except the flush-all and invalidate-all routines which are required only > during early kernel init. > > These inline functions should be very much faster than the old mechanism > that involved jumping through the big cpufuncs table, especially for > common operations such as invalidating a single TLB entry. Note that > nothing is calling these yet, this just is just required infrastructure > for upcoming changes to the pmap-v6 code. > > Modified: > head/sys/arm/include/cpu-v6.h Ooops, I forgot to add... Submitted by: Svatopluk Kraus , Michal Meloun Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 736A6D2B; Sun, 28 Dec 2014 18:26:16 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5FF782B1A; Sun, 28 Dec 2014 18:26:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSIQGpx099017; Sun, 28 Dec 2014 18:26:16 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSIQGDQ099016; Sun, 28 Dec 2014 18:26:16 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412281826.sBSIQGDQ099016@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 28 Dec 2014 18:26:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276335 - head/sys/arm/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 18:26:16 -0000 Author: ian Date: Sun Dec 28 18:26:15 2014 New Revision: 276335 URL: https://svnweb.freebsd.org/changeset/base/276335 Log: Eliminate an unused macro whose name clashes now with a function in the new cpu-v6.h. This should have been part of r276334. Modified: head/sys/arm/include/cpufunc.h Modified: head/sys/arm/include/cpufunc.h ============================================================================== --- head/sys/arm/include/cpufunc.h Sun Dec 28 18:19:05 2014 (r276334) +++ head/sys/arm/include/cpufunc.h Sun Dec 28 18:26:15 2014 (r276335) @@ -563,7 +563,6 @@ void xscalec3_context_switch (void); #endif /* CPU_XSCALE_81342 */ -#define tlb_flush cpu_tlb_flushID #define setttb cpu_setttb #define drain_writebuf cpu_drain_writebuf From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 18:38:26 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C8C681C0; Sun, 28 Dec 2014 18:38:26 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A96EA2CCF; Sun, 28 Dec 2014 18:38:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSIcQ1Q004552; Sun, 28 Dec 2014 18:38:26 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSIcQPc004550; Sun, 28 Dec 2014 18:38:26 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412281838.sBSIcQPc004550@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 28 Dec 2014 18:38:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276336 - in head/sys: arm/arm conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 18:38:26 -0000 Author: ian Date: Sun Dec 28 18:38:25 2014 New Revision: 276336 URL: https://svnweb.freebsd.org/changeset/base/276336 Log: Add cache maintenance functions which will be used by startup code to initially set up the MMU. Some day they may also be useful as part of suspend/resume handling, when we get better at power management. Submitted by: Svatopluk Kraus , Michal Meloun + * Copyright 2014 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include + +#if __ARM_ARCH >= 7 + +/* + * Define cache functions used by startup code, which counts on the fact that + * only r0-r4,r12 (ip) are modified and no stack space is used. This set + * of function must be called with interrupts disabled and don't follow + * ARM ABI (cannot be called form C code. + * Moreover, it works only with caches integrated to CPU (accessible via CP15). + */ + +/* Invalidate D cache to PoC. (aka all cache levels)*/ +ASENTRY(dcache_inv_poc_all) + mrc CP15_CLIDR(r0) + ands r0, r0, #0x07000000 + mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */ + beq 4f + +1: mcr CP15_CSSELR(r0) /* set cache level */ + isb + mrc CP15_CCSIDR(r0) /* read CCSIDR */ + + ubfx r2, r0, #13, #15 /* get num sets - 1 from CCSIDR */ + ubfx r3, r0, #3, #10 /* get num ways - 1 from CCSIDR */ + clz r1, r3 /* number of bits to MSB of way */ + lsl r3, r3, r1 /* shift into position */ + mov ip, #1 + lsl ip, ip, r1 /* ip now contains the way decr */ + + ubfx r0, r0, #0, #3 /* get linesize from CCSIDR */ + add r0, r0, #4 /* apply bias */ + lsl r2, r2, r0 /* shift sets by log2(linesize) */ + add r3, r3, r2 /* merge numsets - 1 with numways - 1 */ + sub ip, ip, r2 /* subtract numsets - 1 from way decr */ + mov r1, #1 + lsl r1, r1, r0 /* r1 now contains the set decr */ + mov r2, ip /* r2 now contains set way decr */ + + /* r3 = ways/sets, r2 = way decr, r1 = set decr, r0 and ip are free */ +2: mcr CP15_DCISW(r3) /* invalidate line */ + movs r0, r3 /* get current way/set */ + beq 3f /* at 0 means we are done */ + movs r0, r0, lsl #10 /* clear way bits leaving only set bits*/ + subne r3, r3, r1 /* non-zero?, decrement set */ + subeq r3, r3, r2 /* zero?, decrement way and restore set count */ + b 2b + +3: + mrc CP15_CSSELR(r0) /* get cache level */ + add r0, r0, #2 /* next level */ + mrc CP15_CLIDR(r1) + ands r1, r1, #0x07000000 + mov r1, r1, lsr #23 /* Get LoC (naturally aligned) */ + cmp r1, r0 + bgt 1b + +4: dsb /* wait for stores to finish */ + mov r0, #0 + mcr CP15_CSSELR(r0) + isb + bx lr +END(dcache_inv_poc_all) + +/* Invalidate D cache to PoU. (aka L1 cache only)*/ +ASENTRY(dcache_inv_pou_all) + mrc CP15_CLIDR(r0) + ands r0, r0, #0x07000000 + mov r0, r0, lsr #26 /* Get LoUU (naturally aligned) */ + beq 4f + +1: mcr CP15_CSSELR(r0) /* set cache level */ + isb + mrc CP15_CCSIDR(r0) /* read CCSIDR */ + + ubfx r2, r0, #13, #15 /* get num sets - 1 from CCSIDR */ + ubfx r3, r0, #3, #10 /* get num ways - 1 from CCSIDR */ + clz r1, r3 /* number of bits to MSB of way */ + lsl r3, r3, r1 /* shift into position */ + mov ip, #1 + lsl ip, ip, r1 /* ip now contains the way decr */ + + ubfx r0, r0, #0, #3 /* get linesize from CCSIDR */ + add r0, r0, #4 /* apply bias */ + lsl r2, r2, r0 /* shift sets by log2(linesize) */ + add r3, r3, r2 /* merge numsets - 1 with numways - 1 */ + sub ip, ip, r2 /* subtract numsets - 1 from way decr */ + mov r1, #1 + lsl r1, r1, r0 /* r1 now contains the set decr */ + mov r2, ip /* r2 now contains set way decr */ + + /* r3 = ways/sets, r2 = way decr, r1 = set decr, r0 and ip are free */ +2: mcr CP15_DCISW(r3) /* clean & invalidate line */ + movs r0, r3 /* get current way/set */ + beq 3f /* at 0 means we are done */ + movs r0, r0, lsl #10 /* clear way bits leaving only set bits*/ + subne r3, r3, r1 /* non-zero?, decrement set */ + subeq r3, r3, r2 /* zero?, decrement way and restore set count */ + b 2b + +3: + mrc CP15_CSSELR(r0) /* get cache level */ + add r0, r0, #2 /* next level */ + mrc CP15_CLIDR(r1) + ands r1, r1, #0x07000000 + mov r1, r1, lsr #26 /* Get LoUU (naturally aligned) */ + cmp r1, r0 + bgt 1b + +4: dsb /* wait for stores to finish */ + mov r0, #0 + mcr CP15_CSSELR(r0) + bx lr +END(dcache_inv_pou_all) + +/* Write back and Invalidate D cache to PoC. */ +ASENTRY(dcache_wbinv_poc_all) + mrc CP15_CLIDR(r0) + ands r0, r0, #0x07000000 + mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */ + beq 4f + +1: mcr CP15_CSSELR(r0) /* set cache level */ + isb + mrc CP15_CCSIDR(r0) /* read CCSIDR */ + + ubfx r2, r0, #13, #15 /* get num sets - 1 from CCSIDR */ + ubfx r3, r0, #3, #10 /* get num ways - 1 from CCSIDR */ + clz r1, r3 /* number of bits to MSB of way */ + lsl r3, r3, r1 /* shift into position */ + mov ip, #1 + lsl ip, ip, r1 /* ip now contains the way decr */ + + ubfx r0, r0, #0, #3 /* get linesize from CCSIDR */ + add r0, r0, #4 /* apply bias */ + lsl r2, r2, r0 /* shift sets by log2(linesize) */ + add r3, r3, r2 /* merge numsets - 1 with numways - 1 */ + sub ip, ip, r2 /* subtract numsets - 1 from way decr */ + mov r1, #1 + lsl r1, r1, r0 /* r1 now contains the set decr */ + mov r2, ip /* r2 now contains set way decr */ + + /* r3 = ways/sets, r2 = way decr, r1 = set decr, r0 and ip are free */ +2: mcr CP15_DCCISW(r3) /* clean & invalidate line */ + movs r0, r3 /* get current way/set */ + beq 3f /* at 0 means we are done */ + movs r0, r0, lsl #10 /* clear way bits leaving only set bits*/ + subne r3, r3, r1 /* non-zero?, decrement set */ + subeq r3, r3, r2 /* zero?, decrement way and restore set count */ + b 2b + +3: + mrc CP15_CSSELR(r0) /* get cache level */ + add r0, r0, #2 /* next level */ + mrc CP15_CLIDR(r1) + ands r1, r1, #0x07000000 + mov r1, r1, lsr #23 /* Get LoC (naturally aligned) */ + cmp r1, r0 + bgt 1b + +4: dsb /* wait for stores to finish */ + mov r0, #0 + mcr CP15_CSSELR(r0) + bx lr +END(dcache_wbinv_poc_all) + +#endif /* __ARM_ARCH >= 7 */ Modified: head/sys/conf/files.arm ============================================================================== --- head/sys/conf/files.arm Sun Dec 28 18:26:15 2014 (r276335) +++ head/sys/conf/files.arm Sun Dec 28 18:38:25 2014 (r276336) @@ -12,6 +12,7 @@ arm/arm/cpufunc.c standard arm/arm/cpufunc_asm.S standard arm/arm/cpufunc_asm_armv4.S standard arm/arm/cpuinfo.c standard +arm/arm/cpu_asm-v6.S optional armv6 arm/arm/db_disasm.c optional ddb arm/arm/db_interface.c optional ddb arm/arm/db_trace.c optional ddb From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 18:43:40 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AC0D467D; Sun, 28 Dec 2014 18:43:40 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7D0DC2DFB; Sun, 28 Dec 2014 18:43:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSIheAY008998; Sun, 28 Dec 2014 18:43:40 GMT (envelope-from marcel@FreeBSD.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSIheP5008994; Sun, 28 Dec 2014 18:43:40 GMT (envelope-from marcel@FreeBSD.org) Message-Id: <201412281843.sBSIheP5008994@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marcel set sender to marcel@FreeBSD.org using -f From: Marcel Moolenaar Date: Sun, 28 Dec 2014 18:43:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276337 - stable/10/usr.bin/mkimg X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 18:43:40 -0000 Author: marcel Date: Sun Dec 28 18:43:39 2014 New Revision: 276337 URL: https://svnweb.freebsd.org/changeset/base/276337 Log: MFC r275721: The size of the first level reference count table is given in terms of the number of clusters it occupies. Bump the version number of mkimg. Modified: stable/10/usr.bin/mkimg/Makefile stable/10/usr.bin/mkimg/qcow.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/mkimg/Makefile ============================================================================== --- stable/10/usr.bin/mkimg/Makefile Sun Dec 28 18:38:25 2014 (r276336) +++ stable/10/usr.bin/mkimg/Makefile Sun Dec 28 18:43:39 2014 (r276337) @@ -4,7 +4,7 @@ PROG= mkimg SRCS= format.c image.c mkimg.c scheme.c MAN= mkimg.1 -MKIMG_VERSION=20141003 +MKIMG_VERSION=20141211 mkimg.o: Makefile CFLAGS+=-DMKIMG_VERSION=${MKIMG_VERSION} Modified: stable/10/usr.bin/mkimg/qcow.c ============================================================================== --- stable/10/usr.bin/mkimg/qcow.c Sun Dec 28 18:38:25 2014 (r276336) +++ stable/10/usr.bin/mkimg/qcow.c Sun Dec 28 18:43:39 2014 (r276337) @@ -71,7 +71,7 @@ struct qcow_header { uint32_t l1_entries; uint64_t l1_offset; uint64_t refcnt_offset; - uint32_t refcnt_entries; + uint32_t refcnt_clstrs; uint32_t snapshot_count; uint64_t snapshot_offset; } v2; @@ -139,7 +139,7 @@ qcow_write(int fd, u_int version) uint64_t n, imagesz, nclstrs, ofs, ofsflags; lba_t blk, blkofs, blk_imgsz; u_int l1clno, l2clno, rcclno; - u_int blk_clstrsz; + u_int blk_clstrsz, refcnt_clstrs; u_int clstrsz, l1idx, l2idx; int error; @@ -199,14 +199,15 @@ qcow_write(int fd, u_int version) be32enc(&hdr->u.v2.l1_entries, clstr_l2tbls); be64enc(&hdr->u.v2.l1_offset, clstrsz * l1clno); be64enc(&hdr->u.v2.refcnt_offset, clstrsz * rcclno); - be32enc(&hdr->u.v2.refcnt_entries, clstr_rcblks); + refcnt_clstrs = round_clstr(clstr_rcblks * 8) >> clstr_log2sz; + be32enc(&hdr->u.v2.refcnt_clstrs, refcnt_clstrs); break; default: return (EDOOFUS); } if (sparse_write(fd, hdr, clstrsz) < 0) { - error = errno; + error = errno; goto out; } From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 18:53:18 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 36D8990A; Sun, 28 Dec 2014 18:53:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 21E3E2F6E; Sun, 28 Dec 2014 18:53:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSIrI87013678; Sun, 28 Dec 2014 18:53:18 GMT (envelope-from marcel@FreeBSD.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSIrH9U013677; Sun, 28 Dec 2014 18:53:17 GMT (envelope-from marcel@FreeBSD.org) Message-Id: <201412281853.sBSIrH9U013677@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marcel set sender to marcel@FreeBSD.org using -f From: Marcel Moolenaar Date: Sun, 28 Dec 2014 18:53:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276338 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 18:53:18 -0000 Author: marcel Date: Sun Dec 28 18:53:16 2014 New Revision: 276338 URL: https://svnweb.freebsd.org/changeset/base/276338 Log: MFC r269126 & 272786: Don't return ERESTART when the device is gone. Modified: stable/10/sys/kern/tty.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/tty.c ============================================================================== --- stable/10/sys/kern/tty.c Sun Dec 28 18:43:39 2014 (r276337) +++ stable/10/sys/kern/tty.c Sun Dec 28 18:53:16 2014 (r276338) @@ -1391,14 +1391,14 @@ tty_wait(struct tty *tp, struct cv *cv) error = cv_wait_sig(cv, tp->t_mtx); - /* Restart the system call when we may have been revoked. */ - if (tp->t_revokecnt != revokecnt) - return (ERESTART); - /* Bail out when the device slipped away. */ if (tty_gone(tp)) return (ENXIO); + /* Restart the system call when we may have been revoked. */ + if (tp->t_revokecnt != revokecnt) + return (ERESTART); + return (error); } @@ -1413,14 +1413,14 @@ tty_timedwait(struct tty *tp, struct cv error = cv_timedwait_sig(cv, tp->t_mtx, hz); - /* Restart the system call when we may have been revoked. */ - if (tp->t_revokecnt != revokecnt) - return (ERESTART); - /* Bail out when the device slipped away. */ if (tty_gone(tp)) return (ENXIO); + /* Restart the system call when we may have been revoked. */ + if (tp->t_revokecnt != revokecnt) + return (ERESTART); + return (error); } From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 19:03:30 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BD711D6F; Sun, 28 Dec 2014 19:03:30 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8EE0410F2; Sun, 28 Dec 2014 19:03:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSJ3UvF018666; Sun, 28 Dec 2014 19:03:30 GMT (envelope-from marcel@FreeBSD.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSJ3UJK018665; Sun, 28 Dec 2014 19:03:30 GMT (envelope-from marcel@FreeBSD.org) Message-Id: <201412281903.sBSJ3UJK018665@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marcel set sender to marcel@FreeBSD.org using -f From: Marcel Moolenaar Date: Sun, 28 Dec 2014 19:03:30 +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: r276339 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 19:03:30 -0000 Author: marcel Date: Sun Dec 28 19:03:29 2014 New Revision: 276339 URL: https://svnweb.freebsd.org/changeset/base/276339 Log: MFC r272789: Fix draining in ttydev_leave(). Modified: stable/10/sys/kern/tty.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/tty.c ============================================================================== --- stable/10/sys/kern/tty.c Sun Dec 28 18:53:16 2014 (r276338) +++ stable/10/sys/kern/tty.c Sun Dec 28 19:03:29 2014 (r276339) @@ -123,9 +123,10 @@ tty_watermarks(struct tty *tp) } static int -tty_drain(struct tty *tp) +tty_drain(struct tty *tp, int leaving) { - int error; + size_t bytesused; + int error, revokecnt; if (ttyhook_hashook(tp, getc_inject)) /* buffer is inaccessible */ @@ -134,11 +135,27 @@ tty_drain(struct tty *tp) while (ttyoutq_bytesused(&tp->t_outq) > 0) { ttydevsw_outwakeup(tp); /* Could be handled synchronously. */ - if (ttyoutq_bytesused(&tp->t_outq) == 0) + bytesused = ttyoutq_bytesused(&tp->t_outq); + if (bytesused == 0) return (0); /* Wait for data to be drained. */ - error = tty_wait(tp, &tp->t_outwait); + if (leaving) { + revokecnt = tp->t_revokecnt; + error = tty_timedwait(tp, &tp->t_outwait, hz); + switch (error) { + case ERESTART: + if (revokecnt != tp->t_revokecnt) + error = 0; + break; + case EWOULDBLOCK: + if (ttyoutq_bytesused(&tp->t_outq) < bytesused) + error = 0; + break; + } + } else + error = tty_wait(tp, &tp->t_outwait); + if (error) return (error); } @@ -191,10 +208,8 @@ ttydev_leave(struct tty *tp) /* Drain any output. */ MPASS((tp->t_flags & TF_STOPPED) == 0); - if (!tty_gone(tp)) { - while (tty_drain(tp) == ERESTART) - ; - } + if (!tty_gone(tp)) + tty_drain(tp, 1); ttydisc_close(tp); @@ -1549,7 +1564,7 @@ tty_generic_ioctl(struct tty *tp, u_long /* Set terminal flags through tcsetattr(). */ if (cmd == TIOCSETAW || cmd == TIOCSETAF) { - error = tty_drain(tp); + error = tty_drain(tp, 0); if (error) return (error); if (cmd == TIOCSETAF) @@ -1728,7 +1743,7 @@ tty_generic_ioctl(struct tty *tp, u_long } case TIOCDRAIN: /* Drain TTY output. */ - return tty_drain(tp); + return tty_drain(tp, 0); case TIOCCONS: /* Set terminal as console TTY. */ if (*(int *)data) { From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 19:05:33 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 92F2DF93; Sun, 28 Dec 2014 19:05:33 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7EDBC1115; Sun, 28 Dec 2014 19:05:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSJ5XQt019127; Sun, 28 Dec 2014 19:05:33 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSJ5XqH019126; Sun, 28 Dec 2014 19:05:33 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412281905.sBSJ5XqH019126@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 28 Dec 2014 19:05:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276340 - head/sys/arm/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 19:05:33 -0000 Author: ian Date: Sun Dec 28 19:05:32 2014 New Revision: 276340 URL: https://svnweb.freebsd.org/changeset/base/276340 Log: Fix a "decl is not a prototype" error noticed by gcc (but not clang). Modified: head/sys/arm/include/cpu-v6.h Modified: head/sys/arm/include/cpu-v6.h ============================================================================== --- head/sys/arm/include/cpu-v6.h Sun Dec 28 19:03:29 2014 (r276339) +++ head/sys/arm/include/cpu-v6.h Sun Dec 28 19:05:32 2014 (r276340) @@ -224,7 +224,7 @@ tlb_flush_all(void) } static __inline void -tlb_flush_all_ng() +tlb_flush_all_ng(void) { dsb(); From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 19:24:03 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1DFB9B68; Sun, 28 Dec 2014 19:24:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0A0BF64439; Sun, 28 Dec 2014 19:24:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSJO2gZ028981; Sun, 28 Dec 2014 19:24:02 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSJO284028980; Sun, 28 Dec 2014 19:24:02 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201412281924.sBSJO284028980@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 28 Dec 2014 19:24:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276341 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 19:24:03 -0000 Author: mjg Date: Sun Dec 28 19:24:01 2014 New Revision: 276341 URL: https://svnweb.freebsd.org/changeset/base/276341 Log: sysctl: don't modify oid_running for static nodes It is necessary to prevent nodes from being destroyed while used, but static ones cannot be destroyed. Modified: head/sys/kern/kern_sysctl.c Modified: head/sys/kern/kern_sysctl.c ============================================================================== --- head/sys/kern/kern_sysctl.c Sun Dec 28 19:05:32 2014 (r276340) +++ head/sys/kern/kern_sysctl.c Sun Dec 28 19:24:01 2014 (r276341) @@ -174,7 +174,8 @@ sysctl_root_handler_locked(struct sysctl int error; bool xlocked; - atomic_add_int(&oid->oid_running, 1); + if (oid->oid_kind & CTLFLAG_DYN) + atomic_add_int(&oid->oid_running, 1); xlocked = sysctl_unlock(); if (!(oid->oid_kind & CTLFLAG_MPSAFE)) @@ -184,9 +185,11 @@ sysctl_root_handler_locked(struct sysctl mtx_unlock(&Giant); sysctl_lock(xlocked); - if (atomic_fetchadd_int(&oid->oid_running, -1) == 1 && - (oid->oid_kind & CTLFLAG_DYING) != 0) - wakeup(&oid->oid_running); + if (oid->oid_kind & CTLFLAG_DYN) { + if (atomic_fetchadd_int(&oid->oid_running, -1) == 1 && + (oid->oid_kind & CTLFLAG_DYING) != 0) + wakeup(&oid->oid_running); + } return (error); } From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 19:55:45 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7E6418D9; Sun, 28 Dec 2014 19:55:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6A84864A22; Sun, 28 Dec 2014 19:55:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSJtjmf043566; Sun, 28 Dec 2014 19:55:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSJtj9H043565; Sun, 28 Dec 2014 19:55:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412281955.sBSJtj9H043565@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 28 Dec 2014 19:55:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276342 - head/libexec/rtld-elf/powerpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 19:55:45 -0000 Author: dim Date: Sun Dec 28 19:55:44 2014 New Revision: 276342 URL: https://svnweb.freebsd.org/changeset/base/276342 Log: Fix the following -Werror warning from clang 3.5.0, while building rtld-elf for powerpc 32 bit: libexec/rtld-elf/powerpc/reloc.c:486:6: error: taking the absolute value of unsigned type 'Elf_Addr' (aka 'unsigned int') has no effect [-Werror,-Wabsolute-value] if (abs(offset) < 32*1024*1024) { /* inside 32MB? */ ^ libexec/rtld-elf/powerpc/reloc.c:486:6: note: remove the call to 'abs' since unsigned values cannot be negative if (abs(offset) < 32*1024*1024) { /* inside 32MB? */ ^~~ 1 error generated. Cast 'offset' to int, since that was intended, and should be safe to do on architectures with 32-bit two's complement ints. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D1387 Modified: head/libexec/rtld-elf/powerpc/reloc.c Modified: head/libexec/rtld-elf/powerpc/reloc.c ============================================================================== --- head/libexec/rtld-elf/powerpc/reloc.c Sun Dec 28 19:24:01 2014 (r276341) +++ head/libexec/rtld-elf/powerpc/reloc.c Sun Dec 28 19:55:44 2014 (r276342) @@ -483,7 +483,7 @@ reloc_jmpslot(Elf_Addr *wherep, Elf_Addr */ offset = target - (Elf_Addr)wherep; - if (abs(offset) < 32*1024*1024) { /* inside 32MB? */ + if (abs((int)offset) < 32*1024*1024) { /* inside 32MB? */ /* b value # branch directly */ *wherep = 0x48000000 | (offset & 0x03fffffc); __syncicache(wherep, 4); From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 20:42:30 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A8908C7A; Sun, 28 Dec 2014 20:42:30 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 950FA111A; Sun, 28 Dec 2014 20:42:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSKgUOP067589; Sun, 28 Dec 2014 20:42:30 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSKgTmX067586; Sun, 28 Dec 2014 20:42:29 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201412282042.sBSKgTmX067586@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 28 Dec 2014 20:42:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276344 - head/sys/dev/ahci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 20:42:30 -0000 Author: marius Date: Sun Dec 28 20:42:28 2014 New Revision: 276344 URL: https://svnweb.freebsd.org/changeset/base/276344 Log: - Const'ify the ahci_ids table. - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers. MFC after: 3 days Modified: head/sys/dev/ahci/ahci.c head/sys/dev/ahci/ahci_pci.c head/sys/dev/ahci/ahciem.c Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Sun Dec 28 20:02:06 2014 (r276343) +++ head/sys/dev/ahci/ahci.c Sun Dec 28 20:42:28 2014 (r276344) @@ -868,14 +868,14 @@ static device_method_t ahcich_methods[] DEVMETHOD(device_detach, ahci_ch_detach), DEVMETHOD(device_suspend, ahci_ch_suspend), DEVMETHOD(device_resume, ahci_ch_resume), - { 0, 0 } + DEVMETHOD_END }; static driver_t ahcich_driver = { "ahcich", ahcich_methods, sizeof(struct ahci_channel) }; -DRIVER_MODULE(ahcich, ahci, ahcich_driver, ahcich_devclass, 0, 0); +DRIVER_MODULE(ahcich, ahci, ahcich_driver, ahcich_devclass, NULL, NULL); struct ahci_dc_cb_args { bus_addr_t maddr; Modified: head/sys/dev/ahci/ahci_pci.c ============================================================================== --- head/sys/dev/ahci/ahci_pci.c Sun Dec 28 20:02:06 2014 (r276343) +++ head/sys/dev/ahci/ahci_pci.c Sun Dec 28 20:42:28 2014 (r276344) @@ -48,7 +48,7 @@ __FBSDID("$FreeBSD$"); static int force_ahci = 1; TUNABLE_INT("hw.ahci.force", &force_ahci); -static struct { +static const struct { uint32_t id; uint8_t rev; const char *name; @@ -479,14 +479,14 @@ static device_method_t ahci_methods[] = DEVMETHOD(bus_teardown_intr,ahci_teardown_intr), DEVMETHOD(bus_child_location_str, ahci_child_location_str), DEVMETHOD(bus_get_dma_tag, ahci_get_dma_tag), - { 0, 0 } + DEVMETHOD_END }; static driver_t ahci_driver = { "ahci", ahci_methods, sizeof(struct ahci_controller) }; -DRIVER_MODULE(ahci, pci, ahci_driver, ahci_devclass, 0, 0); +DRIVER_MODULE(ahci, pci, ahci_driver, ahci_devclass, NULL, NULL); static device_method_t ahci_ata_methods[] = { DEVMETHOD(device_probe, ahci_ata_probe), DEVMETHOD(device_attach, ahci_pci_attach), @@ -499,11 +499,11 @@ static device_method_t ahci_ata_methods[ DEVMETHOD(bus_setup_intr, ahci_setup_intr), DEVMETHOD(bus_teardown_intr,ahci_teardown_intr), DEVMETHOD(bus_child_location_str, ahci_child_location_str), - { 0, 0 } + DEVMETHOD_END }; static driver_t ahci_ata_driver = { "ahci", ahci_ata_methods, sizeof(struct ahci_controller) }; -DRIVER_MODULE(ahci, atapci, ahci_ata_driver, ahci_devclass, 0, 0); +DRIVER_MODULE(ahci, atapci, ahci_ata_driver, ahci_devclass, NULL, NULL); Modified: head/sys/dev/ahci/ahciem.c ============================================================================== --- head/sys/dev/ahci/ahciem.c Sun Dec 28 20:02:06 2014 (r276343) +++ head/sys/dev/ahci/ahciem.c Sun Dec 28 20:42:28 2014 (r276344) @@ -273,14 +273,14 @@ static device_method_t ahciem_methods[] DEVMETHOD(device_detach, ahci_em_detach), DEVMETHOD(device_suspend, ahci_em_suspend), DEVMETHOD(device_resume, ahci_em_resume), - { 0, 0 } + DEVMETHOD_END }; static driver_t ahciem_driver = { "ahciem", ahciem_methods, sizeof(struct ahci_enclosure) }; -DRIVER_MODULE(ahciem, ahci, ahciem_driver, ahciem_devclass, 0, 0); +DRIVER_MODULE(ahciem, ahci, ahciem_driver, ahciem_devclass, NULL, NULL); static void ahci_em_setleds(device_t dev, int c) From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 20:56:05 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2D953F3E; Sun, 28 Dec 2014 20:56:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F408312A4; Sun, 28 Dec 2014 20:56:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSKu4fQ072681; Sun, 28 Dec 2014 20:56:04 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSKu4wX072680; Sun, 28 Dec 2014 20:56:04 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201412282056.sBSKu4wX072680@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Sun, 28 Dec 2014 20:56:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276345 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 20:56:05 -0000 Author: sbruno Date: Sun Dec 28 20:56:03 2014 New Revision: 276345 URL: https://svnweb.freebsd.org/changeset/base/276345 Log: Correct naming of sysctl pmtud_blackhole_activated_min_mss. Clarify some statements around PMTUD blackhole detection to make the behavior more clear in the man page. Submitted by: Mikhail MFC after: 2 weeks Modified: head/share/man/man4/tcp.4 Modified: head/share/man/man4/tcp.4 ============================================================================== --- head/share/man/man4/tcp.4 Sun Dec 28 20:42:28 2014 (r276344) +++ head/share/man/man4/tcp.4 Sun Dec 28 20:56:03 2014 (r276345) @@ -521,11 +521,11 @@ This is needed to help with connection e when a broken firewall is in the network path. .It Va pmtud_blackhole_detection Turn on automatic path MTU blackhole detection. -In case of retransmits we will +In case of retransmits OS will lower the MSS to check if it's MTU problem. If current MSS is greater than -configured value to try, it will be set to it, otherwise, MSS will be set to -default values +configured value to try, it will be set to configured value, otherwise, +MSS will be set to default values .Po Va net.inet.tcp.mssdflt and .Va net.inet.tcp.v6mssdflt @@ -535,11 +535,12 @@ MSS to try for IPv4 if PMTU blackhole de .It Va v6pmtud_blackhole_mss MSS to try for IPv6 if PMTU blackhole detection is turned on. .It Va pmtud_blackhole_activated -Number of times the code was activated to attempt a MSS downshift. -.It Va pmtud_blackhole_min_activated -Number of times the blackhole MSS was used in an attempt to downshift. +Number of times configured values were used in an attempt to downshift. +.It Va pmtud_blackhole_activated_min_mss +Number of times default MSS was used in an attempt to downshift. .It Va pmtud_blackhole_failed -Number of times that we failed to connect after we downshifted the MSS. +Number of connections for which retransmits continued even after MSS +downshift. .El .Sh ERRORS A socket operation may fail with one of the following errors returned: From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 21:06:04 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2EB83529; Sun, 28 Dec 2014 21:06:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1B3221505; Sun, 28 Dec 2014 21:06:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSL63NK077609; Sun, 28 Dec 2014 21:06:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSL63nW077608; Sun, 28 Dec 2014 21:06:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412282106.sBSL63nW077608@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 28 Dec 2014 21:06:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276346 - head/contrib/binutils/gas/config X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 21:06:04 -0000 Author: dim Date: Sun Dec 28 21:06:03 2014 New Revision: 276346 URL: https://svnweb.freebsd.org/changeset/base/276346 Log: In contrib/binutils/gas/config/tc-ppc.c, fix a few -Wformat-security warnings. MFC after: 3 days Modified: head/contrib/binutils/gas/config/tc-ppc.c Modified: head/contrib/binutils/gas/config/tc-ppc.c ============================================================================== --- head/contrib/binutils/gas/config/tc-ppc.c Sun Dec 28 20:56:03 2014 (r276345) +++ head/contrib/binutils/gas/config/tc-ppc.c Sun Dec 28 21:06:03 2014 (r276346) @@ -1548,7 +1548,7 @@ ppc_insert_operand (unsigned long insn, errmsg = NULL; insn = (*operand->insert) (insn, (long) val, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad_where (file, line, errmsg); + as_bad_where (file, line, "%s", errmsg); } else insn |= ((long) val & operand->bitm) << operand->shift; @@ -2279,7 +2279,7 @@ md_assemble (char *str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); continue; } @@ -2292,7 +2292,7 @@ md_assemble (char *str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); } if ((operand->flags & PPC_OPERAND_NEXT) != 0) next_opindex = *opindex_ptr + 1; From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 21:13:54 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1D3F5761; Sun, 28 Dec 2014 21:13:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E4D361694; Sun, 28 Dec 2014 21:13:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSLDrFo082044; Sun, 28 Dec 2014 21:13:53 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSLDrEP082043; Sun, 28 Dec 2014 21:13:53 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201412282113.sBSLDrEP082043@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sun, 28 Dec 2014 21:13:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276347 - head/sys/fs/nfsclient X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 21:13:54 -0000 Author: rmacklem Date: Sun Dec 28 21:13:52 2014 New Revision: 276347 URL: https://svnweb.freebsd.org/changeset/base/276347 Log: r245508 modified the NFS client's Setattr RPC to use VA_UTIMES_NULL to indicate whether it should set the time to the current tod on the server. This had the side effect of making the NFS client use the client's timestamp for exclusive create, starting with FreeBSD9.2. Unfortunately a bug in some Solaris NFS servers causes these servers to return NFS_OK to the Setattr RPC done during exclusive create, but not actually set the file's mode, leaving the file's mode == 0. This patch restores the NFS client's behaviour to use the server's tod for the exclusive open's Setattr RPC, to avoid the Solaris server bug and to restore the pre-FreeBSD9.2 NFS behaviour. Discussed on: freebsd-fs PR: 186293 MFC after: 3 months Modified: head/sys/fs/nfsclient/nfs_clport.c Modified: head/sys/fs/nfsclient/nfs_clport.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clport.c Sun Dec 28 21:06:03 2014 (r276346) +++ head/sys/fs/nfsclient/nfs_clport.c Sun Dec 28 21:13:52 2014 (r276347) @@ -1096,9 +1096,16 @@ nfscl_checksattr(struct vattr *vap, stru * us to do a SETATTR RPC. FreeBSD servers store the verifier * in atime, but we can't really assume that all servers will * so we ensure that our SETATTR sets both atime and mtime. + * Set the VA_UTIMES_NULL flag for this case, so that + * the server's time will be used. This is needed to + * work around a bug in some Solaris servers, where + * setting the time TOCLIENT causes the Setattr RPC + * to return NFS_OK, but not set va_mode. */ - if (vap->va_mtime.tv_sec == VNOVAL) + if (vap->va_mtime.tv_sec == VNOVAL) { vfs_timestamp(&vap->va_mtime); + vap->va_vaflags |= VA_UTIMES_NULL; + } if (vap->va_atime.tv_sec == VNOVAL) vap->va_atime = vap->va_mtime; return (1); From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 21:27:17 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EC550AD1; Sun, 28 Dec 2014 21:27:17 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D4E3D184B; Sun, 28 Dec 2014 21:27:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSLRHVa087210; Sun, 28 Dec 2014 21:27:17 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSLRE5n087198; Sun, 28 Dec 2014 21:27:14 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412282127.sBSLRE5n087198@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Sun, 28 Dec 2014 21:27:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276349 - in stable/10: sys/amd64/include sys/amd64/vmm sys/amd64/vmm/intel sys/amd64/vmm/io sys/modules/vmm sys/x86/include usr.sbin/bhyve usr.sbin/bhyvectl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 21:27:18 -0000 Author: neel Date: Sun Dec 28 21:27:13 2014 New Revision: 276349 URL: https://svnweb.freebsd.org/changeset/base/276349 Log: MFC r270326 Fix a recursive lock acquisition in vi_reset_dev(). MFC r270434 Return the spurious interrupt vector (IRQ7 or IRQ15) if the atpic cannot find any unmasked pin with an interrupt asserted. MFC r270436 Fix a bug in the emulation of CPUID leaf 0x4. MFC r270437 Add "hw.vmm.topology.threads_per_core" and "hw.vmm.topology.cores_per_package" tunables to modify the default cpu topology advertised by bhyve. MFC r270855 Set the 'inst_length' to '0' early on before any error conditions are detected in the emulation of the task switch. If any exceptions are triggered then the guest %rip should point to instruction that caused the task switch as opposed to the one after it. MFC r270857 The "SUB" instruction used in getcc() actually does 'x -= y' so use the proper constraint for 'x'. The "+r" constraint indicates that 'x' is an input and output register operand. While here generate code for different variants of getcc() using a macro GETCC(sz) where 'sz' indicates the operand size. Update the status bits in %rflags when emulating AND and OR opcodes. MFC r271439 Initialize 'bc_rdonly' to the right value. MFC r271451 Optimize the common case of injecting an interrupt into a vcpu after a HLT by explicitly moving it out of the interrupt shadow. MFC r271888 Restructure the MSR handling so it is entirely handled by processor-specific code. MFC r271890 MSR_KGSBASE is no longer saved and restored from the guest MSR save area. This behavior was changed in r271888 so update the comment block to reflect this. MFC r271891 Add some more KTR events to help debugging. MFC r272197 mmap(2) requires either MAP_PRIVATE or MAP_SHARED for non-anonymous mappings. MFC r272395 Get rid of code that dealt with the hardware not being able to save/restore the PAT MSR on guest exit/entry. This workaround was done for a beta release of VMware Fusion 5 but is no longer needed in later versions. All Intel CPUs since Nehalem have supported saving and restoring MSR_PAT in the VM exit and entry controls. MFC r272670 Inject #UD into the guest when it executes either 'MONITOR' or 'MWAIT'. MFC r272710 Implement the FLUSH operation in the virtio-block emulation. MFC r272838 iasl(8) expects integer fields in data tables to be specified as hexadecimal values. Therefore the bit width of the "PM Timer Block" was actually being interpreted as 50-bits instead of the expected 32-bit. This eliminates an error message emitted by a Linux 3.17 guest during boot: "Invalid length for FADT/PmTimerBlock: 50, using default 32" MFC r272839 Support Intel-specific MSRs that are accessed when booting up a linux in bhyve: - MSR_PLATFORM_INFO - MSR_TURBO_RATIO_LIMITx - MSR_RAPL_POWER_UNIT MFC r273108 Emulate "POP r/m". This is needed to boot OpenBSD/i386 MP kernel in bhyve. MFC r273212 Support stopping and restarting the AHCI command list via toggling PxCMD.ST from '1' to '0' and back. This allows the driver a chance to recover if for instance a timeout occurred due to activity on the host. Deleted: stable/10/sys/amd64/vmm/vmm_msr.c stable/10/sys/amd64/vmm/vmm_msr.h Modified: stable/10/sys/amd64/include/vmm.h stable/10/sys/amd64/vmm/intel/ept.c stable/10/sys/amd64/vmm/intel/vmcs.h stable/10/sys/amd64/vmm/intel/vmx.c stable/10/sys/amd64/vmm/intel/vmx.h stable/10/sys/amd64/vmm/intel/vmx_msr.c stable/10/sys/amd64/vmm/intel/vmx_msr.h stable/10/sys/amd64/vmm/io/vatpic.c stable/10/sys/amd64/vmm/io/vlapic.c stable/10/sys/amd64/vmm/vmm.c stable/10/sys/amd64/vmm/vmm_instruction_emul.c stable/10/sys/amd64/vmm/x86.c stable/10/sys/modules/vmm/Makefile stable/10/sys/x86/include/specialreg.h stable/10/usr.sbin/bhyve/acpi.c stable/10/usr.sbin/bhyve/bhyverun.c stable/10/usr.sbin/bhyve/block_if.c stable/10/usr.sbin/bhyve/pci_ahci.c stable/10/usr.sbin/bhyve/pci_virtio_block.c stable/10/usr.sbin/bhyve/task_switch.c stable/10/usr.sbin/bhyve/virtio.c stable/10/usr.sbin/bhyve/xmsr.c stable/10/usr.sbin/bhyve/xmsr.h stable/10/usr.sbin/bhyvectl/bhyvectl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/include/vmm.h ============================================================================== --- stable/10/sys/amd64/include/vmm.h Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/include/vmm.h Sun Dec 28 21:27:13 2014 (r276349) @@ -82,6 +82,7 @@ enum vm_reg_name { VM_REG_GUEST_PDPTE1, VM_REG_GUEST_PDPTE2, VM_REG_GUEST_PDPTE3, + VM_REG_GUEST_INTR_SHADOW, VM_REG_LAST }; @@ -194,7 +195,6 @@ void vm_nmi_clear(struct vm *vm, int vcp int vm_inject_extint(struct vm *vm, int vcpu); int vm_extint_pending(struct vm *vm, int vcpuid); void vm_extint_clear(struct vm *vm, int vcpuid); -uint64_t *vm_guest_msrs(struct vm *vm, int cpu); struct vlapic *vm_lapic(struct vm *vm, int cpu); struct vioapic *vm_ioapic(struct vm *vm); struct vhpet *vm_hpet(struct vm *vm); @@ -485,6 +485,8 @@ enum vm_exitcode { VM_EXITCODE_SUSPENDED, VM_EXITCODE_INOUT_STR, VM_EXITCODE_TASK_SWITCH, + VM_EXITCODE_MONITOR, + VM_EXITCODE_MWAIT, VM_EXITCODE_MAX }; Modified: stable/10/sys/amd64/vmm/intel/ept.c ============================================================================== --- stable/10/sys/amd64/vmm/intel/ept.c Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/intel/ept.c Sun Dec 28 21:27:13 2014 (r276349) @@ -44,7 +44,6 @@ __FBSDID("$FreeBSD$"); #include "vmx_cpufunc.h" #include "vmm_ipi.h" -#include "vmx_msr.h" #include "ept.h" #define EPT_SUPPORTS_EXEC_ONLY(cap) ((cap) & (1UL << 0)) Modified: stable/10/sys/amd64/vmm/intel/vmcs.h ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmcs.h Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/intel/vmcs.h Sun Dec 28 21:27:13 2014 (r276349) @@ -54,6 +54,10 @@ int vmcs_getdesc(struct vmcs *vmcs, int int vmcs_setdesc(struct vmcs *vmcs, int running, int ident, struct seg_desc *desc); +/* + * Avoid header pollution caused by inline use of 'vtophys()' in vmx_cpufunc.h + */ +#ifdef _VMX_CPUFUNC_H_ static __inline uint64_t vmcs_read(uint32_t encoding) { @@ -73,6 +77,7 @@ vmcs_write(uint32_t encoding, uint64_t v error = vmwrite(encoding, val); KASSERT(error == 0, ("vmcs_write(%u) error %d", encoding, error)); } +#endif /* _VMX_CPUFUNC_H_ */ #define vmexit_instruction_length() vmcs_read(VMCS_EXIT_INSTRUCTION_LENGTH) #define vmcs_guest_rip() vmcs_read(VMCS_GUEST_RIP) Modified: stable/10/sys/amd64/vmm/intel/vmx.c ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx.c Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/intel/vmx.c Sun Dec 28 21:27:13 2014 (r276349) @@ -52,20 +52,20 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include "vmm_lapic.h" #include "vmm_host.h" #include "vmm_ioport.h" #include "vmm_ipi.h" -#include "vmm_msr.h" #include "vmm_ktr.h" #include "vmm_stat.h" #include "vatpic.h" #include "vlapic.h" #include "vlapic_priv.h" -#include "vmx_msr.h" #include "ept.h" #include "vmx_cpufunc.h" #include "vmx.h" +#include "vmx_msr.h" #include "x86.h" #include "vmx_controls.h" @@ -81,6 +81,8 @@ __FBSDID("$FreeBSD$"); #define PROCBASED_CTLS_ONE_SETTING \ (PROCBASED_SECONDARY_CONTROLS | \ + PROCBASED_MWAIT_EXITING | \ + PROCBASED_MONITOR_EXITING | \ PROCBASED_IO_EXITING | \ PROCBASED_MSR_BITMAPS | \ PROCBASED_CTLS_WINDOW_SETTING | \ @@ -94,34 +96,23 @@ __FBSDID("$FreeBSD$"); #define PROCBASED_CTLS2_ONE_SETTING PROCBASED2_ENABLE_EPT #define PROCBASED_CTLS2_ZERO_SETTING 0 -#define VM_EXIT_CTLS_ONE_SETTING_NO_PAT \ +#define VM_EXIT_CTLS_ONE_SETTING \ (VM_EXIT_HOST_LMA | \ VM_EXIT_SAVE_EFER | \ - VM_EXIT_LOAD_EFER) - -#define VM_EXIT_CTLS_ONE_SETTING \ - (VM_EXIT_CTLS_ONE_SETTING_NO_PAT | \ + VM_EXIT_LOAD_EFER | \ VM_EXIT_ACKNOWLEDGE_INTERRUPT | \ VM_EXIT_SAVE_PAT | \ VM_EXIT_LOAD_PAT) + #define VM_EXIT_CTLS_ZERO_SETTING VM_EXIT_SAVE_DEBUG_CONTROLS -#define VM_ENTRY_CTLS_ONE_SETTING_NO_PAT VM_ENTRY_LOAD_EFER +#define VM_ENTRY_CTLS_ONE_SETTING (VM_ENTRY_LOAD_EFER | VM_ENTRY_LOAD_PAT) -#define VM_ENTRY_CTLS_ONE_SETTING \ - (VM_ENTRY_CTLS_ONE_SETTING_NO_PAT | \ - VM_ENTRY_LOAD_PAT) #define VM_ENTRY_CTLS_ZERO_SETTING \ (VM_ENTRY_LOAD_DEBUG_CONTROLS | \ VM_ENTRY_INTO_SMM | \ VM_ENTRY_DEACTIVATE_DUAL_MONITOR) -#define guest_msr_rw(vmx, msr) \ - msr_bitmap_change_access((vmx)->msr_bitmap, (msr), MSR_BITMAP_ACCESS_RW) - -#define guest_msr_ro(vmx, msr) \ - msr_bitmap_change_access((vmx)->msr_bitmap, (msr), MSR_BITMAP_ACCESS_READ) - #define HANDLED 1 #define UNHANDLED 0 @@ -158,10 +149,6 @@ SYSCTL_INT(_hw_vmm_vmx, OID_AUTO, initia */ static SYSCTL_NODE(_hw_vmm_vmx, OID_AUTO, cap, CTLFLAG_RW, NULL, NULL); -static int vmx_patmsr; -SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, patmsr, CTLFLAG_RD, &vmx_patmsr, 0, - "PAT MSR saved and restored in VCMS"); - static int cap_halt_exit; SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, halt_exit, CTLFLAG_RD, &cap_halt_exit, 0, "HLT triggers a VM-exit"); @@ -208,6 +195,7 @@ SYSCTL_UINT(_hw_vmm_vmx, OID_AUTO, vpid_ static int vmx_getdesc(void *arg, int vcpu, int reg, struct seg_desc *desc); static int vmx_getreg(void *arg, int vcpu, int reg, uint64_t *retval); +static int vmxctx_setreg(struct vmxctx *vmxctx, int reg, uint64_t val); static void vmx_inject_pir(struct vlapic *vlapic); #ifdef KTR @@ -475,22 +463,6 @@ vpid_init(void) } static void -msr_save_area_init(struct msr_entry *g_area, int *g_count) -{ - int cnt; - - static struct msr_entry guest_msrs[] = { - { MSR_KGSBASE, 0, 0 }, - }; - - cnt = sizeof(guest_msrs) / sizeof(guest_msrs[0]); - if (cnt > GUEST_MSR_MAX_ENTRIES) - panic("guest msr save area overrun"); - bcopy(guest_msrs, g_area, sizeof(guest_msrs)); - *g_count = cnt; -} - -static void vmx_disable(void *arg __unused) { struct invvpid_desc invvpid_desc = { 0 }; @@ -636,49 +608,24 @@ vmx_init(int ipinum) } /* Check support for VM-exit controls */ - vmx_patmsr = 1; error = vmx_set_ctlreg(MSR_VMX_EXIT_CTLS, MSR_VMX_TRUE_EXIT_CTLS, VM_EXIT_CTLS_ONE_SETTING, VM_EXIT_CTLS_ZERO_SETTING, &exit_ctls); if (error) { - /* Try again without the PAT MSR bits */ - error = vmx_set_ctlreg(MSR_VMX_EXIT_CTLS, - MSR_VMX_TRUE_EXIT_CTLS, - VM_EXIT_CTLS_ONE_SETTING_NO_PAT, - VM_EXIT_CTLS_ZERO_SETTING, - &exit_ctls); - if (error) { - printf("vmx_init: processor does not support desired " - "exit controls\n"); - return (error); - } else { - if (bootverbose) - printf("vmm: PAT MSR access not supported\n"); - guest_msr_valid(MSR_PAT); - vmx_patmsr = 0; - } + printf("vmx_init: processor does not support desired " + "exit controls\n"); + return (error); } /* Check support for VM-entry controls */ - if (vmx_patmsr) { - error = vmx_set_ctlreg(MSR_VMX_ENTRY_CTLS, - MSR_VMX_TRUE_ENTRY_CTLS, - VM_ENTRY_CTLS_ONE_SETTING, - VM_ENTRY_CTLS_ZERO_SETTING, - &entry_ctls); - } else { - error = vmx_set_ctlreg(MSR_VMX_ENTRY_CTLS, - MSR_VMX_TRUE_ENTRY_CTLS, - VM_ENTRY_CTLS_ONE_SETTING_NO_PAT, - VM_ENTRY_CTLS_ZERO_SETTING, - &entry_ctls); - } - + error = vmx_set_ctlreg(MSR_VMX_ENTRY_CTLS, MSR_VMX_TRUE_ENTRY_CTLS, + VM_ENTRY_CTLS_ONE_SETTING, VM_ENTRY_CTLS_ZERO_SETTING, + &entry_ctls); if (error) { printf("vmx_init: processor does not support desired " - "entry controls\n"); - return (error); + "entry controls\n"); + return (error); } /* @@ -800,6 +747,8 @@ vmx_init(int ipinum) vpid_init(); + vmx_msr_init(); + /* enable VMX operation */ smp_rendezvous(NULL, vmx_enable, NULL, NULL); @@ -869,7 +818,7 @@ static void * vmx_vminit(struct vm *vm, pmap_t pmap) { uint16_t vpid[VM_MAXCPU]; - int i, error, guest_msr_count; + int i, error; struct vmx *vmx; struct vmcs *vmcs; @@ -905,16 +854,14 @@ vmx_vminit(struct vm *vm, pmap_t pmap) * how they are saved/restored so can be directly accessed by the * guest. * - * Guest KGSBASE is saved and restored in the guest MSR save area. - * Host KGSBASE is restored before returning to userland from the pcb. - * There will be a window of time when we are executing in the host - * kernel context with a value of KGSBASE from the guest. This is ok - * because the value of KGSBASE is inconsequential in kernel context. - * * MSR_EFER is saved and restored in the guest VMCS area on a * VM exit and entry respectively. It is also restored from the * host VMCS area on a VM exit. * + * MSR_PAT is saved and restored in the guest VMCS are on a VM exit + * and entry respectively. It is also restored from the host VMCS + * area on a VM exit. + * * The TSC MSR is exposed read-only. Writes are disallowed as that * will impact the host TSC. * XXX Writes would be implemented with a wrmsr trap, and @@ -925,21 +872,11 @@ vmx_vminit(struct vm *vm, pmap_t pmap) guest_msr_rw(vmx, MSR_SYSENTER_CS_MSR) || guest_msr_rw(vmx, MSR_SYSENTER_ESP_MSR) || guest_msr_rw(vmx, MSR_SYSENTER_EIP_MSR) || - guest_msr_rw(vmx, MSR_KGSBASE) || guest_msr_rw(vmx, MSR_EFER) || + guest_msr_rw(vmx, MSR_PAT) || guest_msr_ro(vmx, MSR_TSC)) panic("vmx_vminit: error setting guest msr access"); - /* - * MSR_PAT is saved and restored in the guest VMCS are on a VM exit - * and entry respectively. It is also restored from the host VMCS - * area on a VM exit. However, if running on a system with no - * MSR_PAT save/restore support, leave access disabled so accesses - * will be trapped. - */ - if (vmx_patmsr && guest_msr_rw(vmx, MSR_PAT)) - panic("vmx_vminit: error setting guest pat msr access"); - vpid_alloc(vpid, VM_MAXCPU); if (virtual_interrupt_delivery) { @@ -958,6 +895,8 @@ vmx_vminit(struct vm *vm, pmap_t pmap) error, i); } + vmx_msr_guest_init(vmx, i); + error = vmcs_init(vmcs); KASSERT(error == 0, ("vmcs_init error %d", error)); @@ -996,13 +935,6 @@ vmx_vminit(struct vm *vm, pmap_t pmap) vmx->state[i].lastcpu = NOCPU; vmx->state[i].vpid = vpid[i]; - msr_save_area_init(vmx->guest_msrs[i], &guest_msr_count); - - error = vmcs_set_msr_save(vmcs, vtophys(vmx->guest_msrs[i]), - guest_msr_count); - if (error != 0) - panic("vmcs_set_msr_save error %d", error); - /* * Set up the CR0/4 shadows, and init the read shadow * to the power-on register value from the Intel Sys Arch. @@ -2078,6 +2010,46 @@ vmx_task_switch_reason(uint64_t qual) } static int +emulate_wrmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t val, bool *retu) +{ + int error; + + if (lapic_msr(num)) + error = lapic_wrmsr(vmx->vm, vcpuid, num, val, retu); + else + error = vmx_wrmsr(vmx, vcpuid, num, val, retu); + + return (error); +} + +static int +emulate_rdmsr(struct vmx *vmx, int vcpuid, u_int num, bool *retu) +{ + struct vmxctx *vmxctx; + uint64_t result; + uint32_t eax, edx; + int error; + + if (lapic_msr(num)) + error = lapic_rdmsr(vmx->vm, vcpuid, num, &result, retu); + else + error = vmx_rdmsr(vmx, vcpuid, num, &result, retu); + + if (error == 0) { + eax = result; + vmxctx = &vmx->ctx[vcpuid]; + error = vmxctx_setreg(vmxctx, VM_REG_GUEST_RAX, eax); + KASSERT(error == 0, ("vmxctx_setreg(rax) error %d", error)); + + edx = result >> 32; + error = vmxctx_setreg(vmxctx, VM_REG_GUEST_RDX, edx); + KASSERT(error == 0, ("vmxctx_setreg(rdx) error %d", error)); + } + + return (error); +} + +static int vmx_exit_process(struct vmx *vmx, int vcpu, struct vm_exit *vmexit) { int error, handled, in; @@ -2215,7 +2187,7 @@ vmx_exit_process(struct vmx *vmx, int vc retu = false; ecx = vmxctx->guest_rcx; VCPU_CTR1(vmx->vm, vcpu, "rdmsr 0x%08x", ecx); - error = emulate_rdmsr(vmx->vm, vcpu, ecx, &retu); + error = emulate_rdmsr(vmx, vcpu, ecx, &retu); if (error) { vmexit->exitcode = VM_EXITCODE_RDMSR; vmexit->u.msr.code = ecx; @@ -2224,7 +2196,7 @@ vmx_exit_process(struct vmx *vmx, int vc } else { /* Return to userspace with a valid exitcode */ KASSERT(vmexit->exitcode != VM_EXITCODE_BOGUS, - ("emulate_wrmsr retu with bogus exitcode")); + ("emulate_rdmsr retu with bogus exitcode")); } break; case EXIT_REASON_WRMSR: @@ -2235,7 +2207,7 @@ vmx_exit_process(struct vmx *vmx, int vc edx = vmxctx->guest_rdx; VCPU_CTR2(vmx->vm, vcpu, "wrmsr 0x%08x value 0x%016lx", ecx, (uint64_t)edx << 32 | eax); - error = emulate_wrmsr(vmx->vm, vcpu, ecx, + error = emulate_wrmsr(vmx, vcpu, ecx, (uint64_t)edx << 32 | eax, &retu); if (error) { vmexit->exitcode = VM_EXITCODE_WRMSR; @@ -2403,6 +2375,12 @@ vmx_exit_process(struct vmx *vmx, int vc case EXIT_REASON_XSETBV: handled = vmx_emulate_xsetbv(vmx, vcpu, vmexit); break; + case EXIT_REASON_MONITOR: + vmexit->exitcode = VM_EXITCODE_MONITOR; + break; + case EXIT_REASON_MWAIT: + vmexit->exitcode = VM_EXITCODE_MWAIT; + break; default: vmm_stat_incr(vmx->vm, vcpu, VMEXIT_UNKNOWN, 1); break; @@ -2523,6 +2501,8 @@ vmx_run(void *arg, int vcpu, register_t KASSERT(vmxctx->pmap == pmap, ("pmap %p different than ctx pmap %p", pmap, vmxctx->pmap)); + vmx_msr_guest_enter(vmx, vcpu); + VMPTRLD(vmcs); /* @@ -2624,6 +2604,8 @@ vmx_run(void *arg, int vcpu, register_t vmexit->exitcode); VMCLEAR(vmcs); + vmx_msr_guest_exit(vmx, vcpu); + return (0); } @@ -2712,6 +2694,46 @@ vmxctx_setreg(struct vmxctx *vmxctx, int } static int +vmx_get_intr_shadow(struct vmx *vmx, int vcpu, int running, uint64_t *retval) +{ + uint64_t gi; + int error; + + error = vmcs_getreg(&vmx->vmcs[vcpu], running, + VMCS_IDENT(VMCS_GUEST_INTERRUPTIBILITY), &gi); + *retval = (gi & HWINTR_BLOCKING) ? 1 : 0; + return (error); +} + +static int +vmx_modify_intr_shadow(struct vmx *vmx, int vcpu, int running, uint64_t val) +{ + struct vmcs *vmcs; + uint64_t gi; + int error, ident; + + /* + * Forcing the vcpu into an interrupt shadow is not supported. + */ + if (val) { + error = EINVAL; + goto done; + } + + vmcs = &vmx->vmcs[vcpu]; + ident = VMCS_IDENT(VMCS_GUEST_INTERRUPTIBILITY); + error = vmcs_getreg(vmcs, running, ident, &gi); + if (error == 0) { + gi &= ~HWINTR_BLOCKING; + error = vmcs_setreg(vmcs, running, ident, gi); + } +done: + VCPU_CTR2(vmx->vm, vcpu, "Setting intr_shadow to %#lx %s", val, + error ? "failed" : "succeeded"); + return (error); +} + +static int vmx_shadow_reg(int reg) { int shreg; @@ -2742,6 +2764,9 @@ vmx_getreg(void *arg, int vcpu, int reg, if (running && hostcpu != curcpu) panic("vmx_getreg: %s%d is running", vm_name(vmx->vm), vcpu); + if (reg == VM_REG_GUEST_INTR_SHADOW) + return (vmx_get_intr_shadow(vmx, vcpu, running, retval)); + if (vmxctx_getreg(&vmx->ctx[vcpu], reg, retval) == 0) return (0); @@ -2760,6 +2785,9 @@ vmx_setreg(void *arg, int vcpu, int reg, if (running && hostcpu != curcpu) panic("vmx_setreg: %s%d is running", vm_name(vmx->vm), vcpu); + if (reg == VM_REG_GUEST_INTR_SHADOW) + return (vmx_modify_intr_shadow(vmx, vcpu, running, val)); + if (vmxctx_setreg(&vmx->ctx[vcpu], reg, val) == 0) return (0); Modified: stable/10/sys/amd64/vmm/intel/vmx.h ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx.h Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/intel/vmx.h Sun Dec 28 21:27:13 2014 (r276349) @@ -33,8 +33,6 @@ struct pmap; -#define GUEST_MSR_MAX_ENTRIES 64 /* arbitrary */ - struct vmxctx { register_t guest_rdi; /* Guest state */ register_t guest_rsi; @@ -97,13 +95,23 @@ struct pir_desc { } __aligned(64); CTASSERT(sizeof(struct pir_desc) == 64); +/* Index into the 'guest_msrs[]' array */ +enum { + IDX_MSR_LSTAR, + IDX_MSR_CSTAR, + IDX_MSR_STAR, + IDX_MSR_SF_MASK, + IDX_MSR_KGSBASE, + GUEST_MSR_NUM /* must be the last enumeration */ +}; + /* virtual machine softc */ struct vmx { struct vmcs vmcs[VM_MAXCPU]; /* one vmcs per virtual cpu */ struct apic_page apic_page[VM_MAXCPU]; /* one apic page per vcpu */ char msr_bitmap[PAGE_SIZE]; struct pir_desc pir_desc[VM_MAXCPU]; - struct msr_entry guest_msrs[VM_MAXCPU][GUEST_MSR_MAX_ENTRIES]; + uint64_t guest_msrs[VM_MAXCPU][GUEST_MSR_NUM]; struct vmxctx ctx[VM_MAXCPU]; struct vmxcap cap[VM_MAXCPU]; struct vmxstate state[VM_MAXCPU]; @@ -113,7 +121,6 @@ struct vmx { }; CTASSERT((offsetof(struct vmx, vmcs) & PAGE_MASK) == 0); CTASSERT((offsetof(struct vmx, msr_bitmap) & PAGE_MASK) == 0); -CTASSERT((offsetof(struct vmx, guest_msrs) & 15) == 0); CTASSERT((offsetof(struct vmx, pir_desc[0]) & 63) == 0); #define VMX_GUEST_VMEXIT 0 Modified: stable/10/sys/amd64/vmm/intel/vmx_msr.c ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx_msr.c Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/intel/vmx_msr.c Sun Dec 28 21:27:13 2014 (r276349) @@ -31,10 +31,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include #include +#include #include +#include +#include "vmx.h" #include "vmx_msr.h" static boolean_t @@ -171,3 +176,213 @@ msr_bitmap_change_access(char *bitmap, u return (0); } + +static uint64_t misc_enable; +static uint64_t platform_info; +static uint64_t turbo_ratio_limit; +static uint64_t host_msrs[GUEST_MSR_NUM]; + +static bool +nehalem_cpu(void) +{ + u_int family, model; + + /* + * The family:model numbers belonging to the Nehalem microarchitecture + * are documented in Section 35.5, Intel SDM dated Feb 2014. + */ + family = CPUID_TO_FAMILY(cpu_id); + model = CPUID_TO_MODEL(cpu_id); + if (family == 0x6) { + switch (model) { + case 0x1A: + case 0x1E: + case 0x1F: + case 0x2E: + return (true); + default: + break; + } + } + return (false); +} + +static bool +westmere_cpu(void) +{ + u_int family, model; + + /* + * The family:model numbers belonging to the Westmere microarchitecture + * are documented in Section 35.6, Intel SDM dated Feb 2014. + */ + family = CPUID_TO_FAMILY(cpu_id); + model = CPUID_TO_MODEL(cpu_id); + if (family == 0x6) { + switch (model) { + case 0x25: + case 0x2C: + return (true); + default: + break; + } + } + return (false); +} + +void +vmx_msr_init(void) +{ + uint64_t bus_freq, ratio; + int i; + + /* + * It is safe to cache the values of the following MSRs because + * they don't change based on curcpu, curproc or curthread. + */ + host_msrs[IDX_MSR_LSTAR] = rdmsr(MSR_LSTAR); + host_msrs[IDX_MSR_CSTAR] = rdmsr(MSR_CSTAR); + host_msrs[IDX_MSR_STAR] = rdmsr(MSR_STAR); + host_msrs[IDX_MSR_SF_MASK] = rdmsr(MSR_SF_MASK); + + /* + * Initialize emulated MSRs + */ + misc_enable = rdmsr(MSR_IA32_MISC_ENABLE); + /* + * Set mandatory bits + * 11: branch trace disabled + * 12: PEBS unavailable + * Clear unsupported features + * 16: SpeedStep enable + * 18: enable MONITOR FSM + */ + misc_enable |= (1 << 12) | (1 << 11); + misc_enable &= ~((1 << 18) | (1 << 16)); + + if (nehalem_cpu() || westmere_cpu()) + bus_freq = 133330000; /* 133Mhz */ + else + bus_freq = 100000000; /* 100Mhz */ + + /* + * XXXtime + * The ratio should really be based on the virtual TSC frequency as + * opposed to the host TSC. + */ + ratio = (tsc_freq / bus_freq) & 0xff; + + /* + * The register definition is based on the micro-architecture + * but the following bits are always the same: + * [15:8] Maximum Non-Turbo Ratio + * [28] Programmable Ratio Limit for Turbo Mode + * [29] Programmable TDC-TDP Limit for Turbo Mode + * [47:40] Maximum Efficiency Ratio + * + * The other bits can be safely set to 0 on all + * micro-architectures up to Haswell. + */ + platform_info = (ratio << 8) | (ratio << 40); + + /* + * The number of valid bits in the MSR_TURBO_RATIO_LIMITx register is + * dependent on the maximum cores per package supported by the micro- + * architecture. For e.g., Westmere supports 6 cores per package and + * uses the low 48 bits. Sandybridge support 8 cores per package and + * uses up all 64 bits. + * + * However, the unused bits are reserved so we pretend that all bits + * in this MSR are valid. + */ + for (i = 0; i < 8; i++) + turbo_ratio_limit = (turbo_ratio_limit << 8) | ratio; +} + +void +vmx_msr_guest_init(struct vmx *vmx, int vcpuid) +{ + /* + * The permissions bitmap is shared between all vcpus so initialize it + * once when initializing the vBSP. + */ + if (vcpuid == 0) { + guest_msr_rw(vmx, MSR_LSTAR); + guest_msr_rw(vmx, MSR_CSTAR); + guest_msr_rw(vmx, MSR_STAR); + guest_msr_rw(vmx, MSR_SF_MASK); + guest_msr_rw(vmx, MSR_KGSBASE); + } + return; +} + +void +vmx_msr_guest_enter(struct vmx *vmx, int vcpuid) +{ + uint64_t *guest_msrs = vmx->guest_msrs[vcpuid]; + + /* Save host MSRs (if any) and restore guest MSRs */ + wrmsr(MSR_LSTAR, guest_msrs[IDX_MSR_LSTAR]); + wrmsr(MSR_CSTAR, guest_msrs[IDX_MSR_CSTAR]); + wrmsr(MSR_STAR, guest_msrs[IDX_MSR_STAR]); + wrmsr(MSR_SF_MASK, guest_msrs[IDX_MSR_SF_MASK]); + wrmsr(MSR_KGSBASE, guest_msrs[IDX_MSR_KGSBASE]); +} + +void +vmx_msr_guest_exit(struct vmx *vmx, int vcpuid) +{ + uint64_t *guest_msrs = vmx->guest_msrs[vcpuid]; + + /* Save guest MSRs */ + guest_msrs[IDX_MSR_LSTAR] = rdmsr(MSR_LSTAR); + guest_msrs[IDX_MSR_CSTAR] = rdmsr(MSR_CSTAR); + guest_msrs[IDX_MSR_STAR] = rdmsr(MSR_STAR); + guest_msrs[IDX_MSR_SF_MASK] = rdmsr(MSR_SF_MASK); + guest_msrs[IDX_MSR_KGSBASE] = rdmsr(MSR_KGSBASE); + + /* Restore host MSRs */ + wrmsr(MSR_LSTAR, host_msrs[IDX_MSR_LSTAR]); + wrmsr(MSR_CSTAR, host_msrs[IDX_MSR_CSTAR]); + wrmsr(MSR_STAR, host_msrs[IDX_MSR_STAR]); + wrmsr(MSR_SF_MASK, host_msrs[IDX_MSR_SF_MASK]); + + /* MSR_KGSBASE will be restored on the way back to userspace */ +} + +int +vmx_rdmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t *val, bool *retu) +{ + int error = 0; + + switch (num) { + case MSR_IA32_MISC_ENABLE: + *val = misc_enable; + break; + case MSR_PLATFORM_INFO: + *val = platform_info; + break; + case MSR_TURBO_RATIO_LIMIT: + case MSR_TURBO_RATIO_LIMIT1: + *val = turbo_ratio_limit; + break; + default: + error = EINVAL; + break; + } + return (error); +} + +int +vmx_wrmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t val, bool *retu) +{ + int error = 0; + + switch (num) { + default: + error = EINVAL; + break; + } + + return (error); +} Modified: stable/10/sys/amd64/vmm/intel/vmx_msr.h ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx_msr.h Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/intel/vmx_msr.h Sun Dec 28 21:27:13 2014 (r276349) @@ -29,6 +29,15 @@ #ifndef _VMX_MSR_H_ #define _VMX_MSR_H_ +struct vmx; + +void vmx_msr_init(void); +void vmx_msr_guest_init(struct vmx *vmx, int vcpuid); +void vmx_msr_guest_enter(struct vmx *vmx, int vcpuid); +void vmx_msr_guest_exit(struct vmx *vmx, int vcpuid); +int vmx_rdmsr(struct vmx *, int vcpuid, u_int num, uint64_t *val, bool *retu); +int vmx_wrmsr(struct vmx *, int vcpuid, u_int num, uint64_t val, bool *retu); + uint32_t vmx_revision(void); int vmx_set_ctlreg(int ctl_reg, int true_ctl_reg, uint32_t ones_mask, @@ -52,4 +61,10 @@ int vmx_set_ctlreg(int ctl_reg, int true void msr_bitmap_initialize(char *bitmap); int msr_bitmap_change_access(char *bitmap, u_int msr, int access); +#define guest_msr_rw(vmx, msr) \ + msr_bitmap_change_access((vmx)->msr_bitmap, (msr), MSR_BITMAP_ACCESS_RW) + +#define guest_msr_ro(vmx, msr) \ + msr_bitmap_change_access((vmx)->msr_bitmap, (msr), MSR_BITMAP_ACCESS_READ) + #endif Modified: stable/10/sys/amd64/vmm/io/vatpic.c ============================================================================== --- stable/10/sys/amd64/vmm/io/vatpic.c Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/io/vatpic.c Sun Dec 28 21:27:13 2014 (r276349) @@ -500,13 +500,19 @@ vatpic_pending_intr(struct vm *vm, int * VATPIC_LOCK(vatpic); pin = vatpic_get_highest_irrpin(atpic); - if (pin == -1) - pin = 7; if (pin == 2) { atpic = &vatpic->atpic[1]; pin = vatpic_get_highest_irrpin(atpic); } + /* + * If there are no pins active at this moment then return the spurious + * interrupt vector instead. + */ + if (pin == -1) + pin = 7; + + KASSERT(pin >= 0 && pin <= 7, ("%s: invalid pin %d", __func__, pin)); *vecptr = atpic->irq_base + pin; VATPIC_UNLOCK(vatpic); Modified: stable/10/sys/amd64/vmm/io/vlapic.c ============================================================================== --- stable/10/sys/amd64/vmm/io/vlapic.c Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/io/vlapic.c Sun Dec 28 21:27:13 2014 (r276349) @@ -633,6 +633,7 @@ vlapic_fire_timer(struct vlapic *vlapic) // The timer LVT always uses the fixed delivery mode. lvt = vlapic_get_lvt(vlapic, APIC_OFFSET_TIMER_LVT); if (vlapic_fire_lvt(vlapic, lvt | APIC_LVT_DM_FIXED)) { + VLAPIC_CTR0(vlapic, "vlapic timer fired"); vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_INTR_TIMER, 1); } } Modified: stable/10/sys/amd64/vmm/vmm.c ============================================================================== --- stable/10/sys/amd64/vmm/vmm.c Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/vmm.c Sun Dec 28 21:27:13 2014 (r276349) @@ -74,7 +74,6 @@ __FBSDID("$FreeBSD$"); #include "vhpet.h" #include "vioapic.h" #include "vlapic.h" -#include "vmm_msr.h" #include "vmm_ipi.h" #include "vmm_stat.h" #include "vmm_lapic.h" @@ -105,7 +104,6 @@ struct vcpu { struct savefpu *guestfpu; /* (a,i) guest fpu state */ uint64_t guest_xcr0; /* (i) guest %xcr0 register */ void *stats; /* (a,i) statistics */ - uint64_t guest_msrs[VMM_MSR_NUM]; /* (i) emulated MSRs */ struct vm_exit exitinfo; /* (x) exit reason and collateral */ }; @@ -188,7 +186,6 @@ static struct vmm_ops *ops; #define fpu_stop_emulating() clts() static MALLOC_DEFINE(M_VM, "vm", "vm"); -CTASSERT(VMM_MSR_NUM <= 64); /* msr_mask can keep track of up to 64 msrs */ /* statistics */ static VMM_STAT(VCPU_TOTAL_RUNTIME, "vcpu total runtime"); @@ -250,7 +247,6 @@ vcpu_init(struct vm *vm, int vcpu_id, bo vcpu->guest_xcr0 = XFEATURE_ENABLED_X87; fpu_save_area_reset(vcpu->guestfpu); vmm_stat_init(vcpu->stats); - guest_msrs_init(vm, vcpu_id); } struct vm_exit * @@ -294,7 +290,6 @@ vmm_init(void) else return (ENXIO); - vmm_msr_init(); vmm_resume_p = vmm_resume; return (VMM_INIT(vmm_ipinum)); @@ -1091,7 +1086,7 @@ vm_handle_hlt(struct vm *vm, int vcpuid, { struct vcpu *vcpu; const char *wmesg; - int t, vcpu_halted, vm_halted; + int error, t, vcpu_halted, vm_halted; KASSERT(!CPU_ISSET(vcpuid, &vm->halted_cpus), ("vcpu already halted")); @@ -1099,6 +1094,22 @@ vm_handle_hlt(struct vm *vm, int vcpuid, vcpu_halted = 0; vm_halted = 0; + /* + * The typical way to halt a cpu is to execute: "sti; hlt" + * + * STI sets RFLAGS.IF to enable interrupts. However, the processor + * remains in an "interrupt shadow" for an additional instruction + * following the STI. This guarantees that "sti; hlt" sequence is + * atomic and a pending interrupt will be recognized after the HLT. + * + * After the HLT emulation is done the vcpu is no longer in an + * interrupt shadow and a pending interrupt can be injected on + * the next entry into the guest. + */ + error = vm_set_register(vm, vcpuid, VM_REG_GUEST_INTR_SHADOW, 0); + KASSERT(error == 0, ("%s: error %d clearing interrupt shadow", + __func__, error)); + vcpu_lock(vcpu); while (1) { /* @@ -1187,8 +1198,12 @@ vm_handle_paging(struct vm *vm, int vcpu if (ftype == VM_PROT_READ || ftype == VM_PROT_WRITE) { rv = pmap_emulate_accessed_dirty(vmspace_pmap(vm->vmspace), vme->u.paging.gpa, ftype); - if (rv == 0) + if (rv == 0) { + VCPU_CTR2(vm, vcpuid, "%s bit emulation for gpa %#lx", + ftype == VM_PROT_READ ? "accessed" : "dirty", + vme->u.paging.gpa); goto done; + } } map = &vm->vmspace->vm_map; @@ -1229,6 +1244,8 @@ vm_handle_inst_emul(struct vm *vm, int v paging = &vme->u.inst_emul.paging; cpu_mode = paging->cpu_mode; + VCPU_CTR1(vm, vcpuid, "inst_emul fault accessing gpa %#lx", gpa); + vie_init(vie); /* Fetch, decode and emulate the faulting instruction */ @@ -1425,7 +1442,6 @@ restart: pcb = PCPU_GET(curpcb); set_pcb_flags(pcb, PCB_FULL_IRET); - restore_guest_msrs(vm, vcpuid); restore_guest_fpustate(vcpu); vcpu_require_state(vm, vcpuid, VCPU_RUNNING); @@ -1433,7 +1449,6 @@ restart: vcpu_require_state(vm, vcpuid, VCPU_FROZEN); save_guest_fpustate(vcpu); - restore_host_msrs(vm, vcpuid); vmm_stat_incr(vm, vcpuid, VCPU_TOTAL_RUNTIME, rdtsc() - tscval); @@ -1467,6 +1482,10 @@ restart: case VM_EXITCODE_INOUT_STR: error = vm_handle_inout(vm, vcpuid, vme, &retu); break; + case VM_EXITCODE_MONITOR: + case VM_EXITCODE_MWAIT: + vm_inject_ud(vm, vcpuid); + break; default: retu = true; /* handled in userland */ break; @@ -1875,12 +1894,6 @@ vm_set_capability(struct vm *vm, int vcp return (VMSETCAP(vm->cookie, vcpu, type, val)); } -uint64_t * -vm_guest_msrs(struct vm *vm, int cpu) -{ - return (vm->vcpu[cpu].guest_msrs); -} - struct vlapic * vm_lapic(struct vm *vm, int cpu) { Modified: stable/10/sys/amd64/vmm/vmm_instruction_emul.c ============================================================================== --- stable/10/sys/amd64/vmm/vmm_instruction_emul.c Sun Dec 28 21:13:55 2014 (r276348) +++ stable/10/sys/amd64/vmm/vmm_instruction_emul.c Sun Dec 28 21:27:13 2014 (r276349) @@ -69,6 +69,7 @@ enum { VIE_OP_TYPE_TWO_BYTE, VIE_OP_TYPE_PUSH, VIE_OP_TYPE_CMP, + VIE_OP_TYPE_POP, VIE_OP_TYPE_LAST }; @@ -159,6 +160,11 @@ static const struct vie_op one_byte_opco .op_type = VIE_OP_TYPE_OR, .op_flags = VIE_OP_F_IMM8, }, + [0x8F] = { + /* XXX Group 1A extended opcode - not just POP */ + .op_byte = 0x8F, + .op_type = VIE_OP_TYPE_POP, + }, [0xFF] = { /* XXX Group 5 extended opcode - not just PUSH */ .op_byte = 0xFF, @@ -316,46 +322,36 @@ vie_update_register(void *vm, int vcpuid return (error); } +#define RFLAGS_STATUS_BITS (PSL_C | PSL_PF | PSL_AF | PSL_Z | PSL_N | PSL_V) + /* * Return the status flags that would result from doing (x - y). */ -static u_long -getcc16(uint16_t x, uint16_t y) -{ - u_long rflags; - *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 21:33:43 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5105FD12; Sun, 28 Dec 2014 21:33:43 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2396C1966; Sun, 28 Dec 2014 21:33:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSLXhmg091492; Sun, 28 Dec 2014 21:33:43 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSLXgeJ091491; Sun, 28 Dec 2014 21:33:43 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412282133.sBSLXgeJ091491@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 28 Dec 2014 21:33:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276350 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 21:33:43 -0000 Author: ian Date: Sun Dec 28 21:33:41 2014 New Revision: 276350 URL: https://svnweb.freebsd.org/changeset/base/276350 Log: Update comments (r4 is not used anywhere), use non-profiling entry macros. Modified: head/sys/arm/arm/cpu_asm-v6.S Modified: head/sys/arm/arm/cpu_asm-v6.S ============================================================================== --- head/sys/arm/arm/cpu_asm-v6.S Sun Dec 28 21:27:13 2014 (r276349) +++ head/sys/arm/arm/cpu_asm-v6.S Sun Dec 28 21:33:41 2014 (r276350) @@ -37,14 +37,16 @@ /* * Define cache functions used by startup code, which counts on the fact that - * only r0-r4,r12 (ip) are modified and no stack space is used. This set - * of function must be called with interrupts disabled and don't follow - * ARM ABI (cannot be called form C code. - * Moreover, it works only with caches integrated to CPU (accessible via CP15). + * only r0-r3,r12 (ip) are modified and no stack space is used. These functions + * must be called with interrupts disabled. Moreover, these work only with + * caches integrated to CPU (accessible via CP15); systems with an external L2 + * cache controller such as a PL310 need separate calls to that device driver + * to affect L2 caches. This is not a factor during early kernel startup, as + * any external L2 cache controller has not been enabled yet. */ /* Invalidate D cache to PoC. (aka all cache levels)*/ -ASENTRY(dcache_inv_poc_all) +ASENTRY_NP(dcache_inv_poc_all) mrc CP15_CLIDR(r0) ands r0, r0, #0x07000000 mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */ @@ -96,7 +98,7 @@ ASENTRY(dcache_inv_poc_all) END(dcache_inv_poc_all) /* Invalidate D cache to PoU. (aka L1 cache only)*/ -ASENTRY(dcache_inv_pou_all) +ASENTRY_NP(dcache_inv_pou_all) mrc CP15_CLIDR(r0) ands r0, r0, #0x07000000 mov r0, r0, lsr #26 /* Get LoUU (naturally aligned) */ @@ -147,7 +149,7 @@ ASENTRY(dcache_inv_pou_all) END(dcache_inv_pou_all) /* Write back and Invalidate D cache to PoC. */ -ASENTRY(dcache_wbinv_poc_all) +ASENTRY_NP(dcache_wbinv_poc_all) mrc CP15_CLIDR(r0) ands r0, r0, #0x07000000 mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */ From owner-svn-src-all@FreeBSD.ORG Sun Dec 28 21:36:21 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 492B5E7F; Sun, 28 Dec 2014 21:36:21 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 35E60198D; Sun, 28 Dec 2014 21:36:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBSLaLOW091891; Sun, 28 Dec 2014 21:36:21 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBSLaLg7091890; Sun, 28 Dec 2014 21:36:21 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201412282136.sBSLaLg7091890@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Sun, 28 Dec 2014 21:36:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276351 - head/sys/dev/uart X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2014 21:36:21 -0000 Author: marius Date: Sun Dec 28 21:36:20 2014 New Revision: 276351 URL: https://svnweb.freebsd.org/changeset/base/276351 Log: Don't use a sub-device/-vendor wildcard for probing MCS9922 as other chips with the same device and vendor IDs actually may provide different functionality. While at it, canonicalize the description to match other MosChip UARTs. PR: 186891 MFC after: 3 days Modified: head/sys/dev/uart/uart_bus_pci.c Modified: head/sys/dev/uart/uart_bus_pci.c ============================================================================== --- head/sys/dev/uart/uart_bus_pci.c Sun Dec 28 21:33:41 2014 (r276350) +++ head/sys/dev/uart/uart_bus_pci.c Sun Dec 28 21:36:20 2014 (r276351) @@ -137,8 +137,8 @@ static const struct pci_id pci_ns8250_id "MosChip MCS9901 PCIe to Peripheral Controller", 0x10 }, { 0x9710, 0x9904, 0xa000, 0x1000, "MosChip MCS9904 PCIe to Peripheral Controller", 0x10 }, -{ 0x9710, 0x9922, 0xffff, 0, - "MosChip MCS9922 Multi I/O Controller", 0x10 }, +{ 0x9710, 0x9922, 0xa000, 0x1000, + "MosChip MCS9922 PCIe to Peripheral Controller", 0x10 }, { 0xdeaf, 0x9051, 0xffff, 0, "Middle Digital PC Weasel Serial Port", 0x10 }, { 0xffff, 0, 0xffff, 0, NULL, 0, 0} }; From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 00:10:45 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0CD722C4; Mon, 29 Dec 2014 00:10:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EDA292FAF; Mon, 29 Dec 2014 00:10:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBT0AiFG063344; Mon, 29 Dec 2014 00:10:44 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBT0AiEL063343; Mon, 29 Dec 2014 00:10:44 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412290010.sBT0AiEL063343@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 29 Dec 2014 00:10:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276352 - head/contrib/binutils/bfd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 00:10:45 -0000 Author: dim Date: Mon Dec 29 00:10:43 2014 New Revision: 276352 URL: https://svnweb.freebsd.org/changeset/base/276352 Log: In contrib/binutils/bfd/elf32-ppc.c, avoid warnings about case values not being in the enumerated type 'enum elf_ppc_reloc_type', by casting the switch argument to int. MFC after: 3 days Modified: head/contrib/binutils/bfd/elf32-ppc.c Modified: head/contrib/binutils/bfd/elf32-ppc.c ============================================================================== --- head/contrib/binutils/bfd/elf32-ppc.c Sun Dec 28 21:36:20 2014 (r276351) +++ head/contrib/binutils/bfd/elf32-ppc.c Mon Dec 29 00:10:43 2014 (r276352) @@ -6185,7 +6185,7 @@ ppc_elf_relocate_section (bfd *output_bf howto = NULL; if (r_type < R_PPC_max) howto = ppc_elf_howto_table[r_type]; - switch (r_type) + switch ((int) r_type) { default: (*_bfd_error_handler) From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 00:30:39 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 44F845DA; Mon, 29 Dec 2014 00:30:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 164176449F; Mon, 29 Dec 2014 00:30:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBT0UcHo073316; Mon, 29 Dec 2014 00:30:38 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBT0Uc07073315; Mon, 29 Dec 2014 00:30:38 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201412290030.sBT0Uc07073315@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 29 Dec 2014 00:30:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276353 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 00:30:39 -0000 Author: kib Date: Mon Dec 29 00:30:38 2014 New Revision: 276353 URL: https://svnweb.freebsd.org/changeset/base/276353 Log: MFC r275260: Remove lock recursion for the pipe pair mutex, and disable the recursion on mutex initialization. Modified: stable/10/sys/kern/sys_pipe.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/sys_pipe.c ============================================================================== --- stable/10/sys/kern/sys_pipe.c Mon Dec 29 00:10:43 2014 (r276352) +++ stable/10/sys/kern/sys_pipe.c Mon Dec 29 00:30:38 2014 (r276353) @@ -315,7 +315,7 @@ pipe_zone_init(void *mem, int size, int pp = (struct pipepair *)mem; - mtx_init(&pp->pp_mtx, "pipe mutex", NULL, MTX_DEF | MTX_RECURSE); + mtx_init(&pp->pp_mtx, "pipe mutex", NULL, MTX_DEF); return (0); } @@ -1770,7 +1770,7 @@ filt_piperead(struct knote *kn, long hin struct pipe *wpipe = rpipe->pipe_peer; int ret; - PIPE_LOCK(rpipe); + PIPE_LOCK_ASSERT(rpipe, MA_OWNED); kn->kn_data = rpipe->pipe_buffer.cnt; if ((kn->kn_data == 0) && (rpipe->pipe_state & PIPE_DIRECTW)) kn->kn_data = rpipe->pipe_map.cnt; @@ -1779,11 +1779,9 @@ filt_piperead(struct knote *kn, long hin wpipe->pipe_present != PIPE_ACTIVE || (wpipe->pipe_state & PIPE_EOF)) { kn->kn_flags |= EV_EOF; - PIPE_UNLOCK(rpipe); return (1); } ret = kn->kn_data > 0; - PIPE_UNLOCK(rpipe); return ret; } @@ -1794,12 +1792,11 @@ filt_pipewrite(struct knote *kn, long hi struct pipe *wpipe; wpipe = kn->kn_hook; - PIPE_LOCK(wpipe); + PIPE_LOCK_ASSERT(wpipe, MA_OWNED); if (wpipe->pipe_present != PIPE_ACTIVE || (wpipe->pipe_state & PIPE_EOF)) { kn->kn_data = 0; kn->kn_flags |= EV_EOF; - PIPE_UNLOCK(wpipe); return (1); } kn->kn_data = (wpipe->pipe_buffer.size > 0) ? @@ -1807,7 +1804,6 @@ filt_pipewrite(struct knote *kn, long hi if (wpipe->pipe_state & PIPE_DIRECTW) kn->kn_data = 0; - PIPE_UNLOCK(wpipe); return (kn->kn_data >= PIPE_BUF); } From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 00:35:46 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D541972E; Mon, 29 Dec 2014 00:35:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A75C8644F6; Mon, 29 Dec 2014 00:35:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBT0Zk8C076795; Mon, 29 Dec 2014 00:35:46 GMT (envelope-from bryanv@FreeBSD.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBT0ZjmZ076787; Mon, 29 Dec 2014 00:35:45 GMT (envelope-from bryanv@FreeBSD.org) Message-Id: <201412290035.sBT0ZjmZ076787@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bryanv set sender to bryanv@FreeBSD.org using -f From: Bryan Venteicher Date: Mon, 29 Dec 2014 00:35:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276354 - in head/sys/dev/beri/virtio: . network X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 00:35:46 -0000 Author: bryanv Date: Mon Dec 29 00:35:44 2014 New Revision: 276354 URL: https://svnweb.freebsd.org/changeset/base/276354 Log: Remove dev/virtio/virtio.h include from BERI VirtIO This header file contains prototypes and defines that only make sense to the guest VirtIO device drivers. Reviewed by: br Modified: head/sys/dev/beri/virtio/network/if_vtbe.c head/sys/dev/beri/virtio/virtio.c head/sys/dev/beri/virtio/virtio_block.c Modified: head/sys/dev/beri/virtio/network/if_vtbe.c ============================================================================== --- head/sys/dev/beri/virtio/network/if_vtbe.c Mon Dec 29 00:30:38 2014 (r276353) +++ head/sys/dev/beri/virtio/network/if_vtbe.c Mon Dec 29 00:35:44 2014 (r276354) @@ -82,7 +82,8 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include +#include #include #include "pio_if.h" Modified: head/sys/dev/beri/virtio/virtio.c ============================================================================== --- head/sys/dev/beri/virtio/virtio.c Mon Dec 29 00:30:38 2014 (r276353) +++ head/sys/dev/beri/virtio/virtio.c Mon Dec 29 00:35:44 2014 (r276354) @@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include Modified: head/sys/dev/beri/virtio/virtio_block.c ============================================================================== --- head/sys/dev/beri/virtio/virtio_block.c Mon Dec 29 00:30:38 2014 (r276353) +++ head/sys/dev/beri/virtio/virtio_block.c Mon Dec 29 00:35:44 2014 (r276354) @@ -67,7 +67,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include +#include #include #include "pio_if.h" From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 00:35:48 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BD8A3807; Mon, 29 Dec 2014 00:35:48 +0000 (UTC) Received: from vps.hungerhost.com (vps.hungerhost.com [216.38.53.176]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 68BAE644F9; Mon, 29 Dec 2014 00:35:48 +0000 (UTC) Received: from pool-96-250-5-187.nycmny.fios.verizon.net ([96.250.5.187]:51872 helo=[172.16.19.1]) by vps.hungerhost.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.82) (envelope-from ) id 1Y5OJF-0003Xb-S9; Sun, 28 Dec 2014 19:35:46 -0500 From: "George Neville-Neil" To: "Mark Johnston" Subject: Re: svn commit: r276142 - in head/sys: amd64/amd64 cddl/dev/dtrace/amd64 cddl/dev/dtrace/i386 cddl/dev/dtrace/mips cddl/dev/dtrace/powerpc i386/i386 mips/mips powerpc/aim sys Date: Sat, 27 Dec 2014 20:00:39 -1000 Message-ID: In-Reply-To: <20141223160423.GA24447@charmander.home> References: <201412231538.sBNFcKrx091251@svn.freebsd.org> <1419349557.1018.134.camel@freebsd.org> <20141223160423.GA24447@charmander.home> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Mailer: MailMate (1.8r5029) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - vps.hungerhost.com X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - neville-neil.com X-Get-Message-Sender-Via: vps.hungerhost.com: authenticated_id: gnn@neville-neil.com Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Ian Lepore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 00:35:48 -0000 On 23 Dec 2014, at 6:05, Mark Johnston wrote: > On Tue, Dec 23, 2014 at 08:45:57AM -0700, Ian Lepore wrote: >> On Tue, 2014-12-23 at 15:38 +0000, Mark Johnston wrote: >>> Author: markj >>> Date: Tue Dec 23 15:38:19 2014 >>> New Revision: 276142 >>> URL: https://svnweb.freebsd.org/changeset/base/276142 >>> >>> Log: >>> Restore the trap type argument to the DTrace trap hook, removed in >>> r268600. >>> It's redundant at the moment since it can be obtained from the >>> trapframe >>> on the architectures where DTrace is supported, but this won't be >>> the case >>> with ARM. >>> >>> Modified: >>> head/sys/amd64/amd64/trap.c >>> head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c >>> head/sys/cddl/dev/dtrace/i386/dtrace_subr.c >>> head/sys/cddl/dev/dtrace/mips/dtrace_subr.c >>> head/sys/cddl/dev/dtrace/powerpc/dtrace_subr.c >>> head/sys/i386/i386/trap.c >>> head/sys/mips/mips/trap.c >>> head/sys/powerpc/aim/trap.c >>> head/sys/sys/dtrace_bsd.h >>> >> >> Wouldn't it have been easier to just add the field to the trapframe >> for >> arm? iirc we have an unused padding field in the struct already just >> for ABI alignment, it could go there. > > In this case, the extra argument will be the fault address AND'ed with > FAULT_TYPE_MASK, and the hook is only potentially called in the data > abort > handler, so this extra field would be unused for other exceptions (and > unused for data aborts unless DTrace is active). Maybe that's ok, but > restoring the extra hook argument seemed like a less intrusive way to > go > to me. > Actually I have re-patched my tree with the code from Howard Su, put on top of the work by Mark et al. I took the comment in the review to heart and added the type to the trapframe for ARM. I'm happy to go either way, though. It's trivial to change it to work with this. Best, George From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 09:24:22 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D30D0238; Mon, 29 Dec 2014 09:24:22 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF3F81846; Mon, 29 Dec 2014 09:24:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBT9OMit025080; Mon, 29 Dec 2014 09:24:22 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBT9OMHt025079; Mon, 29 Dec 2014 09:24:22 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412290924.sBT9OMHt025079@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 29 Dec 2014 09:24:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276356 - head/sys/boot/powerpc/boot1.chrp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 09:24:22 -0000 Author: dim Date: Mon Dec 29 09:24:21 2014 New Revision: 276356 URL: https://svnweb.freebsd.org/changeset/base/276356 Log: Use -Wl, to pass options to the linker for PowerPC's boot1.chrp. MFC after: 3 days Modified: head/sys/boot/powerpc/boot1.chrp/Makefile Modified: head/sys/boot/powerpc/boot1.chrp/Makefile ============================================================================== --- head/sys/boot/powerpc/boot1.chrp/Makefile Mon Dec 29 02:13:06 2014 (r276355) +++ head/sys/boot/powerpc/boot1.chrp/Makefile Mon Dec 29 09:24:21 2014 (r276356) @@ -15,7 +15,7 @@ MAN= CFLAGS= -ffreestanding -msoft-float -Os \ -I${.CURDIR}/../../common -I${.CURDIR}/../../../ \ -D_STANDALONE -LDFLAGS=-nostdlib -static -N +LDFLAGS=-nostdlib -static -Wl,-N .include "${.CURDIR}/../Makefile.inc" .PATH: ${.CURDIR}/../../../libkern ${.CURDIR}/../../../../lib/libc/powerpc/gen ${.CURDIR} From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 11:02:19 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E47C0977; Mon, 29 Dec 2014 11:02:19 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D0C2E6676B; Mon, 29 Dec 2014 11:02:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTB2Jv3071872; Mon, 29 Dec 2014 11:02:19 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTB2JfQ071871; Mon, 29 Dec 2014 11:02:19 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201412291102.sBTB2JfQ071871@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Mon, 29 Dec 2014 11:02:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276358 - head/sys/dev/virtio/mmio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 11:02:20 -0000 Author: andrew Date: Mon Dec 29 11:02:18 2014 New Revision: 276358 URL: https://svnweb.freebsd.org/changeset/base/276358 Log: Allow virtio_mmio to attach to ofwbus. Qemu places these here on at least the AArch64 virtual platform with the Linaro UEFI. Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/virtio/mmio/virtio_mmio.c Modified: head/sys/dev/virtio/mmio/virtio_mmio.c ============================================================================== --- head/sys/dev/virtio/mmio/virtio_mmio.c Mon Dec 29 09:27:42 2014 (r276357) +++ head/sys/dev/virtio/mmio/virtio_mmio.c Mon Dec 29 11:02:18 2014 (r276358) @@ -202,6 +202,7 @@ static driver_t vtmmio_driver = { devclass_t vtmmio_devclass; DRIVER_MODULE(virtio_mmio, simplebus, vtmmio_driver, vtmmio_devclass, 0, 0); +DRIVER_MODULE(virtio_mmio, ofwbus, vtmmio_driver, vtmmio_devclass, 0, 0); MODULE_VERSION(virtio_mmio, 1); MODULE_DEPEND(virtio_mmio, simplebus, 1, 1, 1); MODULE_DEPEND(virtio_mmio, virtio, 1, 1, 1); From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 13:02:04 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CAB9DEE8; Mon, 29 Dec 2014 13:02:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B64D2669E0; Mon, 29 Dec 2014 13:02:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTD24bk027153; Mon, 29 Dec 2014 13:02:04 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTD24xM027152; Mon, 29 Dec 2014 13:02:04 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201412291302.sBTD24xM027152@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Mon, 29 Dec 2014 13:02:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276359 - head/bin/ln X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 13:02:04 -0000 Author: jilles Date: Mon Dec 29 13:02:03 2014 New Revision: 276359 URL: https://svnweb.freebsd.org/changeset/base/276359 Log: symlink(7): Note that stat(1) does not follow symlinks by default. MFC after: 1 week Modified: head/bin/ln/symlink.7 Modified: head/bin/ln/symlink.7 ============================================================================== --- head/bin/ln/symlink.7 Mon Dec 29 11:02:18 2014 (r276358) +++ head/bin/ln/symlink.7 Mon Dec 29 13:02:03 2014 (r276359) @@ -29,7 +29,7 @@ .\" @(#)symlink.7 8.3 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd April 25, 2010 +.Dd December 29, 2014 .Dt SYMLINK 7 .Os .Sh NAME @@ -219,7 +219,7 @@ would change the ownership of .Dq Li slink itself. .Pp -There are four exceptions to this rule. +There are five exceptions to this rule. The .Xr mv 1 and @@ -262,13 +262,12 @@ a file tree.) .Pp The .Xr file 1 -command is also an exception to this rule. -The -.Xr file 1 -command does not follow symbolic links named as argument by default. -The -.Xr file 1 -command does follow symbolic links named as argument if +and +.Xr stat 1 +commands are also exceptions to this rule. +These +commands do not follow symbolic links named as argument by default, +but do follow symbolic links named as argument if the .Fl L option is specified. .Pp From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 13:51:05 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 42B339C1; Mon, 29 Dec 2014 13:51:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 259FD2491; Mon, 29 Dec 2014 13:51:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTDp5OH049962; Mon, 29 Dec 2014 13:51:05 GMT (envelope-from joel@FreeBSD.org) Received: (from joel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTDp0hn049651; Mon, 29 Dec 2014 13:51:00 GMT (envelope-from joel@FreeBSD.org) Message-Id: <201412291351.sBTDp0hn049651@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: joel set sender to joel@FreeBSD.org using -f From: Joel Dahl Date: Mon, 29 Dec 2014 13:51:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276360 - in head: cddl/contrib/opensolaris/cmd/zpool lib/libc/regex lib/msun/man sbin/bsdlabel sbin/camcontrol sbin/geom/class/label sbin/ipfw sbin/iscontrol sbin/mount_nfs sbin/routed... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 13:51:05 -0000 Author: joel (doc committer) Date: Mon Dec 29 13:50:59 2014 New Revision: 276360 URL: https://svnweb.freebsd.org/changeset/base/276360 Log: mdoc: remove EOL whitespace. Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 head/lib/libc/regex/re_format.7 head/lib/msun/man/lgamma.3 head/sbin/bsdlabel/bsdlabel.8 head/sbin/camcontrol/camcontrol.8 head/sbin/geom/class/label/glabel.8 head/sbin/ipfw/ipfw.8 head/sbin/iscontrol/iscontrol.8 head/sbin/mount_nfs/mount_nfs.8 head/sbin/routed/routed.8 head/share/man/man4/ada.4 head/share/man/man7/crypto.7 head/share/man/man7/hier.7 head/sys/boot/common/loader.8 head/usr.bin/soeliminate/soeliminate.1 head/usr.sbin/bsdinstall/bsdinstall.8 head/usr.sbin/kbdcontrol/kbdcontrol.1 Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Mon Dec 29 13:02:03 2014 (r276359) +++ head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7 Mon Dec 29 13:50:59 2014 (r276360) @@ -443,7 +443,7 @@ This feature becomes .Sy active once a .Sy recordsize -property has been set larger than 128KB, and will return to being +property has been set larger than 128KB, and will return to being .Sy enabled once all filesystems that have ever had their recordsize larger than 128KB are destroyed. Modified: head/lib/libc/regex/re_format.7 ============================================================================== --- head/lib/libc/regex/re_format.7 Mon Dec 29 13:02:03 2014 (r276359) +++ head/lib/libc/regex/re_format.7 Mon Dec 29 13:50:59 2014 (r276360) @@ -314,10 +314,10 @@ compatible with but not specified by .St -p1003.2 , and should be used with caution in software intended to be portable to other systems. -The additional word delimiters +The additional word delimiters .Ql \e< and -.Ql \e> +.Ql \e> are provided to ease compatibility with traditional .Xr svr4 4 systems but are not portable and should be avoided. Modified: head/lib/msun/man/lgamma.3 ============================================================================== --- head/lib/msun/man/lgamma.3 Mon Dec 29 13:02:03 2014 (r276359) +++ head/lib/msun/man/lgamma.3 Mon Dec 29 13:50:59 2014 (r276360) @@ -99,7 +99,7 @@ returns the sign of \(*G(x). and .Fn lgammal_r x signgamp provide the same functionality as -.Fn lgamma x , +.Fn lgamma x , .Fn lgammaf x , and .Fn lgammal x , Modified: head/sbin/bsdlabel/bsdlabel.8 ============================================================================== --- head/sbin/bsdlabel/bsdlabel.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/sbin/bsdlabel/bsdlabel.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -109,7 +109,7 @@ argument forces .Nm to use a layout suitable for a different architecture. Current valid values are -.Cm i386 , amd64 , +.Cm i386 , amd64 , and .Cm pc98 . If this option is omitted, Modified: head/sbin/camcontrol/camcontrol.8 ============================================================================== --- head/sbin/camcontrol/camcontrol.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/sbin/camcontrol/camcontrol.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -1613,7 +1613,7 @@ For example: .It FC A Fibre Channel Transport ID consists of .Dq fcp, -followed by a 64-bit Fibre Channel World Wide Name. +followed by a 64-bit Fibre Channel World Wide Name. For example: .Pp .Dl fcp,0x1234567812345678 @@ -1735,11 +1735,11 @@ May also be specified as .Dq exclusive_access . .It wr_ex_ro Write Exclusive Registrants Only mode. -May also be specified as +May also be specified as .Dq write_exclusive_reg_only . .It ex_ac_ro Exclusive Access Registrants Only mode. -May also be specified as +May also be specified as .Dq exclusive_access_reg_only . .It wr_ex_ar Write Exclusive All Registrants mode. @@ -1747,7 +1747,7 @@ May also be specified as .Dq write_exclusive_all_regs . .It ex_ac_ar Exclusive Access All Registrants mode. -May also be specified as +May also be specified as .Dq exclusive_access_all_regs . .El .It Fl U @@ -1931,7 +1931,7 @@ camcontrol persist da0 -v -i read_keys .Pp This will read any persistent reservation keys registered with da0, and display any errors encountered when sending the PERSISTENT RESERVE IN -.Tn SCSI +.Tn SCSI command. .Bd -literal -offset indent camcontrol persist da0 -v -o register -a -K 0x12345678 @@ -1976,9 +1976,9 @@ camcontrol persist da0 -v -o register_mo .Ed .Pp This will move the registration from the current initiator, whose -Registration Key is 0x87654321, to the Fibre Channel initiator with the +Registration Key is 0x87654321, to the Fibre Channel initiator with the Fiber Channel World Wide Node Name 0x1234567812345678. -A new registration key, 0x12345678, will be registered for the initiator +A new registration key, 0x12345678, will be registered for the initiator with the Fibre Channel World Wide Node Name 0x1234567812345678, and the current initiator will be unregistered from the target. The reservation will be moved to relative target port 2 on the target Modified: head/sbin/geom/class/label/glabel.8 ============================================================================== --- head/sbin/geom/class/label/glabel.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/sbin/geom/class/label/glabel.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -227,11 +227,11 @@ maximum amount of debug information is p .It Va kern.geom.label.*.enable : No 1 Most .Nm LABEL -providers implement a +providers implement a .Xr sysctl 8 flag and a tunable variable named in the above format. This flag controls if the label provider will be active, tasting devices -and creating label nodes in the +and creating label nodes in the .Xr devfs 5 tree. It is sometimes desirable to disable certain label types if they conflict with other classes in complex GEOM topologies. Modified: head/sbin/ipfw/ipfw.8 ============================================================================== --- head/sbin/ipfw/ipfw.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/sbin/ipfw/ipfw.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -76,7 +76,7 @@ in-kernel NAT. .Nm .Oo Cm set Ar N Oc Cm table .Brq Ar name | all -.Cm info +.Cm info .Nm .Oo Cm set Ar N Oc Cm table .Brq Ar name | all @@ -1872,7 +1872,7 @@ addresses or other search keys (e.g., po In the rest of this section we will use the term ``key''. Table name needs to match the following spec: .Ar table-name . -Tables with the same name can be created in different +Tables with the same name can be created in different .Ar sets . However, rule links to the tables in .Ar set 0 @@ -1972,7 +1972,7 @@ command. Addition of all items are performed atomically. By default, error in addition of one entry does not influence addition of other entries. However, non-zero error code is returned -in that case. +in that case. Special .Cm atomic keyword may be specified before @@ -1984,7 +1984,7 @@ One or more entries can be removed from command. By default, error in removal of one entry does not influence removing of other entries. However, non-zero error code is returned -in that case. +in that case. .Pp It may be possible to check what entry will be found on particular .Ar table-key Modified: head/sbin/iscontrol/iscontrol.8 ============================================================================== --- head/sbin/iscontrol/iscontrol.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/sbin/iscontrol/iscontrol.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -43,7 +43,7 @@ .Sh DESCRIPTION .Bf -symbolic This command, along with its kernel counterpart -.Xr iscsi_initiator 4 , +.Xr iscsi_initiator 4 , is obsolete. Users are advised to use .Xr iscsictl 8 Modified: head/sbin/mount_nfs/mount_nfs.8 ============================================================================== --- head/sbin/mount_nfs/mount_nfs.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/sbin/mount_nfs/mount_nfs.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -393,7 +393,7 @@ Use the specified version number for NFS See the .Cm nfsv2 , .Cm nfsv3 , -and +and .Cm nfsv4 options for details. .It Cm wcommitsize Ns = Ns Aq Ar value Modified: head/sbin/routed/routed.8 ============================================================================== --- head/sbin/routed/routed.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/sbin/routed/routed.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -254,7 +254,7 @@ The following options are available: allow .Nm to accept a RIP request from non-router node. -When specified once, +When specified once, .Nm replies to a route information query from neighbor nodes. When specified twice, Modified: head/share/man/man4/ada.4 ============================================================================== --- head/share/man/man4/ada.4 Mon Dec 29 13:02:03 2014 (r276359) +++ head/share/man/man4/ada.4 Mon Dec 29 13:50:59 2014 (r276360) @@ -138,7 +138,7 @@ The default is sorting enabled for HDDs These variables determine whether device read-ahead and write caches should be enabled globally or per-device or disabled. Set to 1 to enable write cache, 0 to disable, -1 to leave it as-is. -Values modified at runtime take effect only after device reset +Values modified at runtime take effect only after device reset .Pq using the reset subcommand of Xr camcontrol 8 . Because of that, this setting should be changed in .Pa /boot/loader.conf Modified: head/share/man/man7/crypto.7 ============================================================================== --- head/share/man/man7/crypto.7 Mon Dec 29 13:02:03 2014 (r276359) +++ head/share/man/man7/crypto.7 Mon Dec 29 13:50:59 2014 (r276360) @@ -97,7 +97,7 @@ This algorithm implements Integer Counte This is similar to what most people call counter mode, but instead of the counter being split into a nonce and a counter part, then entire nonce is used as the initial counter. -This does mean that if a counter is required that rolls over at 32 bits, +This does mean that if a counter is required that rolls over at 32 bits, the transaction need to be split into two parts where the counter rolls over. The counter incremented as a 128-bit big endian number. .Pp Modified: head/share/man/man7/hier.7 ============================================================================== --- head/share/man/man7/hier.7 Mon Dec 29 13:02:03 2014 (r276359) +++ head/share/man/man7/hier.7 Mon Dec 29 13:50:59 2014 (r276360) @@ -50,7 +50,7 @@ default bootstrapping configuration file .Xr loader.conf 5 .It Pa dtb/ Compiled flattened device tree (FDT) files; see -.Xr fdt 4 +.Xr fdt 4 and .Xr dtc 1 .It Pa firmware/ @@ -64,8 +64,8 @@ third-party loadable kernel modules; see .Xr kldstat 8 .It Pa zfs/ -Contains -.Xr zfs 8 +Contains +.Xr zfs 8 zpool cache files. .El .It Pa /cdrom/ Modified: head/sys/boot/common/loader.8 ============================================================================== --- head/sys/boot/common/loader.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/sys/boot/common/loader.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -671,7 +671,7 @@ Overrides the compile-time set value of or the preset default of 512. Must be a power of 2. .It Va twiddle_divisor -Throttles the output of the +Throttles the output of the .Sq twiddle I/O progress indicator displayed while loading the kernel and modules. This is useful on slow serial consoles where the time spent waiting for Modified: head/usr.bin/soeliminate/soeliminate.1 ============================================================================== --- head/usr.bin/soeliminate/soeliminate.1 Mon Dec 29 13:02:03 2014 (r276359) +++ head/usr.bin/soeliminate/soeliminate.1 Mon Dec 29 13:50:59 2014 (r276360) @@ -66,7 +66,7 @@ Compatibility with GNU groff's .It Fl I Ar dir This option specify directories where .Nm -searches for files (both those on the command line and those named in +searches for files (both those on the command line and those named in .Dq .so directive.) This options may be specified multiple times. The directories will be searched Modified: head/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall.8 Mon Dec 29 13:02:03 2014 (r276359) +++ head/usr.sbin/bsdinstall/bsdinstall.8 Mon Dec 29 13:50:59 2014 (r276360) @@ -129,7 +129,7 @@ with separate datasets for and .Pa /var . Optionally can set up -.Xr geli 8 +.Xr geli 8 to encrypt the disk. .It Cm partedit Provides the installer's interactive manual disk partitioner with an interface @@ -354,7 +354,7 @@ instead of .Cm partedit , the preamble can contain the variable .Ev ZFSBOOT_DATASETS -instead of +instead of .Ev PARTITIONS . .Ss SETUP SCRIPT Following the preamble is an optional shell script, beginning with a #! Modified: head/usr.sbin/kbdcontrol/kbdcontrol.1 ============================================================================== --- head/usr.sbin/kbdcontrol/kbdcontrol.1 Mon Dec 29 13:02:03 2014 (r276359) +++ head/usr.sbin/kbdcontrol/kbdcontrol.1 Mon Dec 29 13:50:59 2014 (r276360) @@ -230,7 +230,7 @@ So long as the keyboard map file resides (if using .Xr syscons 4 ) or .Pa /usr/share/vt/keymaps -(if using +(if using .Xr vt 4 ) , you may abbreviate the file name as .Pa ru.koi8-r . From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 15:11:09 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1347BBA1; Mon, 29 Dec 2014 15:11:09 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D88D710E6; Mon, 29 Dec 2014 15:11:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTFB8W1087159; Mon, 29 Dec 2014 15:11:08 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTFB83f087156; Mon, 29 Dec 2014 15:11:08 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201412291511.sBTFB83f087156@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Mon, 29 Dec 2014 15:11:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276363 - in stable/10/bin/sh: . tests/expansion X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 15:11:09 -0000 Author: jilles Date: Mon Dec 29 15:11:07 2014 New Revision: 276363 URL: https://svnweb.freebsd.org/changeset/base/276363 Log: MFC r273920: sh: Fix corruption of CTL* bytes in positional parameters in redirection. EXP_REDIR was not being checked for while expanding positional parameters in redirection, so CTL* bytes were not being prefixed where they should be. Added: stable/10/bin/sh/tests/expansion/redir1.0 - copied unchanged from r273920, head/bin/sh/tests/expansion/redir1.0 Modified: stable/10/bin/sh/expand.c stable/10/bin/sh/tests/expansion/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/bin/sh/expand.c ============================================================================== --- stable/10/bin/sh/expand.c Mon Dec 29 14:52:32 2014 (r276362) +++ stable/10/bin/sh/expand.c Mon Dec 29 15:11:07 2014 (r276363) @@ -867,7 +867,7 @@ varisset(const char *name, int nulok) static void strtodest(const char *p, int flag, int subtype, int quoted) { - if (flag & (EXP_FULL | EXP_CASE) && subtype != VSLENGTH) + if (flag & (EXP_FULL | EXP_CASE | EXP_REDIR) && subtype != VSLENGTH) STPUTS_QUOTES(p, quoted ? DQSYNTAX : BASESYNTAX, expdest); else STPUTS(p, expdest); Modified: stable/10/bin/sh/tests/expansion/Makefile ============================================================================== --- stable/10/bin/sh/tests/expansion/Makefile Mon Dec 29 14:52:32 2014 (r276362) +++ stable/10/bin/sh/tests/expansion/Makefile Mon Dec 29 15:11:07 2014 (r276363) @@ -69,6 +69,7 @@ FILES+= plus-minus7.0 FILES+= plus-minus8.0 FILES+= question1.0 FILES+= readonly1.0 +FILES+= redir1.0 FILES+= set-u1.0 FILES+= set-u2.0 FILES+= set-u3.0 Copied: stable/10/bin/sh/tests/expansion/redir1.0 (from r273920, head/bin/sh/tests/expansion/redir1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/bin/sh/tests/expansion/redir1.0 Mon Dec 29 15:11:07 2014 (r276363, copy of r273920, head/bin/sh/tests/expansion/redir1.0) @@ -0,0 +1,26 @@ +# $FreeBSD$ + +bad=0 +for i in 0 1 2 3; do + for j in 0 1 2 3 4 5 6 7; do + for k in 0 1 2 3 4 5 6 7; do + case $i$j$k in + 000) continue ;; + esac + set -- "$(printf \\$i$j$k@)" + set -- "${1%@}" + ff= + for f in /dev/null /dev/zero /; do + if [ -e "$f" ] && [ ! -e "$f$1" ]; then + ff=$f + fi + done + [ -n "$ff" ] || continue + if { true <$ff$1; } 2>/dev/null; then + echo "Bad: $i$j$k ($ff)" >&2 + : $((bad += 1)) + fi + done + done +done +exit $((bad ? 2 : 0)) From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 15:15:28 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 954A4D2F; Mon, 29 Dec 2014 15:15:28 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 80F1B11DA; Mon, 29 Dec 2014 15:15:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTFFSYr088694; Mon, 29 Dec 2014 15:15:28 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTFFSoS088693; Mon, 29 Dec 2014 15:15:28 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201412291515.sBTFFSoS088693@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Mon, 29 Dec 2014 15:15: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: r276364 - stable/10/bin/sh X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 15:15:28 -0000 Author: jilles Date: Mon Dec 29 15:15:27 2014 New Revision: 276364 URL: https://svnweb.freebsd.org/changeset/base/276364 Log: MFC r274854: sh: Use DQSYNTAX only while expanding, not SQSYNTAX. Quoting during expansion only cares about CCTL, which is the same for DQSYNTAX and SQSYNTAX. Modified: stable/10/bin/sh/expand.c Directory Properties: stable/10/ (props changed) Modified: stable/10/bin/sh/expand.c ============================================================================== --- stable/10/bin/sh/expand.c Mon Dec 29 15:11:07 2014 (r276363) +++ stable/10/bin/sh/expand.c Mon Dec 29 15:15:27 2014 (r276364) @@ -339,7 +339,7 @@ done: goto lose; *p = c; if (quotes) - STPUTS_QUOTES(home, SQSYNTAX, expdest); + STPUTS_QUOTES(home, DQSYNTAX, expdest); else STPUTS(home, expdest); return (p); From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 15:33:22 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 19D99259; Mon, 29 Dec 2014 15:33:22 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EF089152B; Mon, 29 Dec 2014 15:33:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTFXL8d097717; Mon, 29 Dec 2014 15:33:21 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTFXLYq097714; Mon, 29 Dec 2014 15:33:21 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201412291533.sBTFXLYq097714@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Mon, 29 Dec 2014 15:33:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276365 - stable/10/bin/sh X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 15:33:22 -0000 Author: jilles Date: Mon Dec 29 15:33:20 2014 New Revision: 276365 URL: https://svnweb.freebsd.org/changeset/base/276365 Log: MFC r276037: sh: Remove EXP_REDIR. EXP_REDIR was supposed to generate pathnames in redirection if exactly one file matches, as permitted but not required by POSIX in interactive mode. It is unlikely this will be implemented. No functional change is intended. Modified: stable/10/bin/sh/eval.c stable/10/bin/sh/expand.c stable/10/bin/sh/expand.h Directory Properties: stable/10/ (props changed) Modified: stable/10/bin/sh/eval.c ============================================================================== --- stable/10/bin/sh/eval.c Mon Dec 29 15:15:27 2014 (r276364) +++ stable/10/bin/sh/eval.c Mon Dec 29 15:33:20 2014 (r276365) @@ -538,13 +538,13 @@ expredir(union node *n) case NFROMTO: case NAPPEND: case NCLOBBER: - expandarg(redir->nfile.fname, &fn, EXP_TILDE | EXP_REDIR); + expandarg(redir->nfile.fname, &fn, EXP_TILDE); redir->nfile.expfname = fn.list->text; break; case NFROMFD: case NTOFD: if (redir->ndup.vname) { - expandarg(redir->ndup.vname, &fn, EXP_TILDE | EXP_REDIR); + expandarg(redir->ndup.vname, &fn, EXP_TILDE); fixredir(redir, fn.list->text, 1); } break; Modified: stable/10/bin/sh/expand.c ============================================================================== --- stable/10/bin/sh/expand.c Mon Dec 29 15:15:27 2014 (r276364) +++ stable/10/bin/sh/expand.c Mon Dec 29 15:33:20 2014 (r276365) @@ -171,17 +171,12 @@ expandarg(union node *arg, struct arglis STPUTC('\0', expdest); p = grabstackstr(expdest); exparg.lastp = &exparg.list; - /* - * TODO - EXP_REDIR - */ if (flag & EXP_FULL) { ifsbreakup(p, &exparg); *exparg.lastp = NULL; exparg.lastp = &exparg.list; expandmeta(exparg.list, flag); } else { - if (flag & EXP_REDIR) /*XXX - for now, just remove escapes */ - rmescapes(p); sp = (struct strlist *)stalloc(sizeof (struct strlist)); sp->text = p; *exparg.lastp = sp; @@ -209,7 +204,7 @@ expandarg(union node *arg, struct arglis * expansion, and tilde expansion if requested via EXP_TILDE/EXP_VARTILDE. * Processing ends at a CTLENDVAR or CTLENDARI character as well as '\0'. * This is used to expand word in ${var+word} etc. - * If EXP_FULL, EXP_CASE or EXP_REDIR are set, keep and/or generate CTLESC + * If EXP_FULL or EXP_CASE are set, keep and/or generate CTLESC * characters to allow for further processing. * If EXP_FULL is set, also preserve CTLQUOTEMARK characters. */ @@ -217,7 +212,7 @@ static char * argstr(char *p, int flag) { char c; - int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR); /* do CTLESC */ + int quotes = flag & (EXP_FULL | EXP_CASE); /* do CTLESC */ int firsteq = 1; int split_lit; int lit_quoted; @@ -303,7 +298,7 @@ exptilde(char *p, int flag) char c, *startp = p; struct passwd *pw; char *home; - int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR); + int quotes = flag & (EXP_FULL | EXP_CASE); while ((c = *p) != '\0') { switch(c) { @@ -442,7 +437,7 @@ expbackq(union node *cmd, int quoted, in char lastc; int startloc = dest - stackblock(); char const *syntax = quoted? DQSYNTAX : BASESYNTAX; - int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR); + int quotes = flag & (EXP_FULL | EXP_CASE); size_t nnl; INTOFF; @@ -642,7 +637,7 @@ evalvar(char *p, int flag) int varlen; int varlenb; int easy; - int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR); + int quotes = flag & (EXP_FULL | EXP_CASE); varflags = (unsigned char)*p++; subtype = varflags & VSTYPE; @@ -867,7 +862,7 @@ varisset(const char *name, int nulok) static void strtodest(const char *p, int flag, int subtype, int quoted) { - if (flag & (EXP_FULL | EXP_CASE | EXP_REDIR) && subtype != VSLENGTH) + if (flag & (EXP_FULL | EXP_CASE) && subtype != VSLENGTH) STPUTS_QUOTES(p, quoted ? DQSYNTAX : BASESYNTAX, expdest); else STPUTS(p, expdest); @@ -1108,7 +1103,6 @@ expandmeta(struct strlist *str, int flag struct strlist **savelastp; struct strlist *sp; char c; - /* TODO - EXP_REDIR */ while (str) { if (fflag) Modified: stable/10/bin/sh/expand.h ============================================================================== --- stable/10/bin/sh/expand.h Mon Dec 29 15:15:27 2014 (r276364) +++ stable/10/bin/sh/expand.h Mon Dec 29 15:33:20 2014 (r276365) @@ -50,7 +50,6 @@ struct arglist { #define EXP_FULL 0x1 /* perform word splitting & file globbing */ #define EXP_TILDE 0x2 /* do normal tilde expansion */ #define EXP_VARTILDE 0x4 /* expand tildes in an assignment */ -#define EXP_REDIR 0x8 /* file glob for a redirection (1 match only) */ #define EXP_CASE 0x10 /* keeps quotes around for CASE pattern */ #define EXP_SPLIT_LIT 0x20 /* IFS split literal text ${v+-a b c} */ #define EXP_LIT_QUOTED 0x40 /* for EXP_SPLIT_LIT, start off quoted */ From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 16:50:08 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5395C646; Mon, 29 Dec 2014 16:50:08 +0000 (UTC) Received: from mx1.sbone.de (bird.sbone.de [46.4.1.90]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id BC2E82204; Mon, 29 Dec 2014 16:50:07 +0000 (UTC) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id CB06C25D3871; Mon, 29 Dec 2014 16:49:57 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id 60ACCC7709D; Mon, 29 Dec 2014 16:49:56 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id ISMZI-hLMHDV; Mon, 29 Dec 2014 16:49:54 +0000 (UTC) Received: from [IPv6:fde9:577b:c1a9:4420:cabc:c8ff:fe8b:4fe6] (orange-tun0-ula.sbone.de [IPv6:fde9:577b:c1a9:4420:cabc:c8ff:fe8b:4fe6]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 33852C7706F; Mon, 29 Dec 2014 16:49:53 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Subject: Re: svn commit: r276195 - in head: . lib/libxo From: "Bjoern A. Zeeb" In-Reply-To: <201412250315.sBP3FvS6025641@svn.freebsd.org> Date: Mon, 29 Dec 2014 16:49:52 +0000 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201412250315.sBP3FvS6025641@svn.freebsd.org> To: Alfred Perlstein X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 16:50:08 -0000 > On 25 Dec 2014, at 03:15 , Alfred Perlstein = wrote: >=20 > Author: alfred > Date: Thu Dec 25 03:15:56 2014 > New Revision: 276195 > URL: https://svnweb.freebsd.org/changeset/base/276195 >=20 > Log: > Move libxo to /lib >=20 > Update ObsoleteFiles to reflect libxo move. What this commit message doesn=E2=80=99t say is =E2=80=9CWHY?=E2=80=9D = Everything else you described is kind of obvious from the commit diff = ;-) > Reviewed by: ngie > Differential Revision: https://reviews.freebsd.org/D1370 >=20 > Modified: > head/ObsoleteFiles.inc > head/lib/libxo/Makefile >=20 > Modified: head/ObsoleteFiles.inc > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/ObsoleteFiles.inc Thu Dec 25 02:17:17 2014 = (r276194) > +++ head/ObsoleteFiles.inc Thu Dec 25 03:15:56 2014 = (r276195) > @@ -38,6 +38,9 @@ > # xargs -n1 | sort | uniq -d; > # done >=20 > +# 20141224: libxo moved to /lib > +OLD_FILES+=3Dusr/lib/libxo.a > +OLD_FILES+=3Dusr/lib/libxo_p.a > # 20141223: remove in6_gif.h, in_gif.h and if_stf.h > OLD_FILES+=3Dusr/include/net/if_stf.h > OLD_FILES+=3Dusr/include/netinet/in_gif.h >=20 > Modified: head/lib/libxo/Makefile > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/lib/libxo/Makefile Thu Dec 25 02:17:17 2014 = (r276194) > +++ head/lib/libxo/Makefile Thu Dec 25 03:15:56 2014 = (r276195) > @@ -7,6 +7,8 @@ LIBXO=3D ${.CURDIR:H:H}/contrib/libxo > LIB=3D xo > SHLIB_MAJOR=3D0 >=20 > +SHLIBDIR?=3D /lib > + > SRCS=3D libxo.c >=20 > CFLAGS+=3D-I${LIBXO}/libxo >=20 =E2=80=94=20 Bjoern A. Zeeb Charles Haddon Spurgeon: "Friendship is one of the sweetest joys of life. Many might have failed beneath the bitterness of their trial had they not found a friend." From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 16:51:55 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B04A77A3; Mon, 29 Dec 2014 16:51:55 +0000 (UTC) Received: from elvis.mu.org (elvis.mu.org [IPv6:2001:470:1f05:b76::196]) by mx1.freebsd.org (Postfix) with ESMTP id 9C17C233B; Mon, 29 Dec 2014 16:51:55 +0000 (UTC) Received: from AlfredMacbookAir.local (c-76-21-10-192.hsd1.ca.comcast.net [76.21.10.192]) by elvis.mu.org (Postfix) with ESMTPSA id 7C14F341F854; Mon, 29 Dec 2014 08:51:55 -0800 (PST) Message-ID: <54A186E6.8070805@freebsd.org> Date: Mon, 29 Dec 2014 08:52:54 -0800 From: Alfred Perlstein Organization: FreeBSD User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: "Bjoern A. Zeeb" Subject: Re: svn commit: r276195 - in head: . lib/libxo References: <201412250315.sBP3FvS6025641@svn.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 16:51:55 -0000 You are correct. Reason for move was due to programs inside of /bin and /sbin depending on libxo. -Alfred On 12/29/14 8:49 AM, Bjoern A. Zeeb wrote: >> On 25 Dec 2014, at 03:15 , Alfred Perlstein wrote: >> >> Author: alfred >> Date: Thu Dec 25 03:15:56 2014 >> New Revision: 276195 >> URL: https://svnweb.freebsd.org/changeset/base/276195 >> >> Log: >> Move libxo to /lib >> >> Update ObsoleteFiles to reflect libxo move. > What this commit message doesn’t say is “WHY?†Everything else you described is kind of obvious from the commit diff ;-) > > >> Reviewed by: ngie >> Differential Revision: https://reviews.freebsd.org/D1370 >> >> Modified: >> head/ObsoleteFiles.inc >> head/lib/libxo/Makefile >> >> Modified: head/ObsoleteFiles.inc >> ============================================================================== >> --- head/ObsoleteFiles.inc Thu Dec 25 02:17:17 2014 (r276194) >> +++ head/ObsoleteFiles.inc Thu Dec 25 03:15:56 2014 (r276195) >> @@ -38,6 +38,9 @@ >> # xargs -n1 | sort | uniq -d; >> # done >> >> +# 20141224: libxo moved to /lib >> +OLD_FILES+=usr/lib/libxo.a >> +OLD_FILES+=usr/lib/libxo_p.a >> # 20141223: remove in6_gif.h, in_gif.h and if_stf.h >> OLD_FILES+=usr/include/net/if_stf.h >> OLD_FILES+=usr/include/netinet/in_gif.h >> >> Modified: head/lib/libxo/Makefile >> ============================================================================== >> --- head/lib/libxo/Makefile Thu Dec 25 02:17:17 2014 (r276194) >> +++ head/lib/libxo/Makefile Thu Dec 25 03:15:56 2014 (r276195) >> @@ -7,6 +7,8 @@ LIBXO= ${.CURDIR:H:H}/contrib/libxo >> LIB= xo >> SHLIB_MAJOR=0 >> >> +SHLIBDIR?= /lib >> + >> SRCS= libxo.c >> >> CFLAGS+=-I${LIBXO}/libxo >> > — > Bjoern A. Zeeb Charles Haddon Spurgeon: > "Friendship is one of the sweetest joys of life. Many might have failed > beneath the bitterness of their trial had they not found a friend." > > From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 17:17:02 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 690B5C69; Mon, 29 Dec 2014 17:17:02 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 55104373A; Mon, 29 Dec 2014 17:17:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTHH2L2045547; Mon, 29 Dec 2014 17:17:02 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTHH29D045546; Mon, 29 Dec 2014 17:17:02 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201412291717.sBTHH29D045546@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Mon, 29 Dec 2014 17:17:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276367 - head/sys/dev/virtio/network X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 17:17:02 -0000 Author: andrew Date: Mon Dec 29 17:17:01 2014 New Revision: 276367 URL: https://svnweb.freebsd.org/changeset/base/276367 Log: Attach vtnet to virtio_mmio. Qemu provides this as an option with AArch64. Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/virtio/network/if_vtnet.c Modified: head/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- head/sys/dev/virtio/network/if_vtnet.c Mon Dec 29 16:32:24 2014 (r276366) +++ head/sys/dev/virtio/network/if_vtnet.c Mon Dec 29 17:17:01 2014 (r276367) @@ -298,6 +298,8 @@ static driver_t vtnet_driver = { }; static devclass_t vtnet_devclass; +DRIVER_MODULE(vtnet, virtio_mmio, vtnet_driver, vtnet_devclass, + vtnet_modevent, 0); DRIVER_MODULE(vtnet, virtio_pci, vtnet_driver, vtnet_devclass, vtnet_modevent, 0); MODULE_VERSION(vtnet, 1); From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 18:31:09 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A5074142; Mon, 29 Dec 2014 18:31:09 +0000 (UTC) Received: from mail-pd0-x236.google.com (mail-pd0-x236.google.com [IPv6:2607:f8b0:400e:c02::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6F3AC16EB; Mon, 29 Dec 2014 18:31:09 +0000 (UTC) Received: by mail-pd0-f182.google.com with SMTP id p10so17784333pdj.13; Mon, 29 Dec 2014 10:31:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=references:mime-version:in-reply-to:content-type :content-transfer-encoding:message-id:cc:from:subject:date:to; bh=nvE61vsR40Xln9MR85YKhtxoyL1L5YnsyWpI5M8BD8Y=; b=XJdJtFCwU8t7hId4AjCsNWz2daF39zQNCy+g9qNRYtor2ZkgXBnHtEvdP/QFnZSolL L4PblKgXT2OLVnVYsGWKLEzjwNXhqFFi2gJyHUOzmM+NUQjerJwYNVRVIUEwCINtliY0 s4OBpQEq4pb0qvkeJiqnyCOdaI9iXmAI198zquqzHBGmxpv+Ul5ZDd4VTwMnggX0XtZ+ T90pdpfET29yngGp4lRwKY8FgCVqAG73uB2xFFW8SS4c6Zn0McQkO9Xo+PS8jO6a1eja TtmOXKOb0UQHUI1iW9bYVudDNr56coT4udU44/Elo5iipfwXjFauXTa5eWAsJni6NT5v Dz/g== X-Received: by 10.68.69.78 with SMTP id c14mr91308554pbu.68.1419877868983; Mon, 29 Dec 2014 10:31:08 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:c9ab:bdde:d5ce:493a? ([2601:8:ab80:7d6:c9ab:bdde:d5ce:493a]) by mx.google.com with ESMTPSA id gd1sm36199634pbd.67.2014.12.29.10.31.08 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 29 Dec 2014 10:31:08 -0800 (PST) References: <201412250315.sBP3FvS6025641@svn.freebsd.org> <54A186E6.8070805@freebsd.org> Mime-Version: 1.0 (1.0) In-Reply-To: <54A186E6.8070805@freebsd.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Message-Id: <6AE84649-768B-45F2-952E-C9661DD3201E@gmail.com> X-Mailer: iPhone Mail (12B440) From: Garrett Cooper Subject: Re: svn commit: r276195 - in head: . lib/libxo Date: Mon, 29 Dec 2014 10:31:06 -0800 To: Alfred Perlstein Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "Bjoern A. Zeeb" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 18:31:09 -0000 > On Dec 29, 2014, at 08:52, Alfred Perlstein wrote: >=20 > You are correct. >=20 > Reason for move was due to programs inside of /bin and /sbin depending on l= ibxo. ... And the fact that / and /usr can be on separate filesystems, etc.= From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 19:02:01 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E437D937; Mon, 29 Dec 2014 19:02:01 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B67A81BE9; Mon, 29 Dec 2014 19:02:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTJ21FH095738; Mon, 29 Dec 2014 19:02:01 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTJ218x095737; Mon, 29 Dec 2014 19:02:01 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412291902.sBTJ218x095737@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Dec 2014 19:02:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276369 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 19:02:02 -0000 Author: emaste Date: Mon Dec 29 19:02:00 2014 New Revision: 276369 URL: https://svnweb.freebsd.org/changeset/base/276369 Log: Merge elftoolchain directory shuffling from elftoolchain update branch Modified: Directory Properties: head/ (props changed) From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 19:07:29 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E2B3ABAC; Mon, 29 Dec 2014 19:07:29 +0000 (UTC) Received: from mail-pa0-x22b.google.com (mail-pa0-x22b.google.com [IPv6:2607:f8b0:400e:c03::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AB8F91C35; Mon, 29 Dec 2014 19:07:29 +0000 (UTC) Received: by mail-pa0-f43.google.com with SMTP id kx10so18191929pab.30; Mon, 29 Dec 2014 11:07:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=9jPDHrdATqUxYfSoZ3/eGBlWvc0seiV8g1JZ15I+AWY=; b=rKVh1Qi0FkINRSn0JYLNU5zw6q6HtjNuA4VIzYSL+J91mIM16FEoGTAovAuxTRUYUY ui5jzdTZi0+MQSvz4c8hh1hNNNGSa6MM3EL5hii3FU6XMMdBlWqKJpHxkj1X7Lq4HH0h dmXNKy25GyDBQ/f4+MKhTPbHpRdVUGXu03uLhNUzvQqIXwXepVYCFiGx2S6N87xXuewY vncWg1t4sPRQSzXjnHYYA16yOoce3CNg4m9p5nL3wmQlaMII35D/tAKV38t3BOROl/kl DBbrvaid4Dq5FfAml0VgYpbWwv/CwNWm5C9EpTUvmYse4QGfwPM95g6/+DYPTYfjyZrU 6SGQ== X-Received: by 10.70.103.238 with SMTP id fz14mr77190201pdb.79.1419880047776; Mon, 29 Dec 2014 11:07:27 -0800 (PST) Received: from [192.168.20.5] (c-98-247-240-204.hsd1.wa.comcast.net. [98.247.240.204]) by mx.google.com with ESMTPSA id cr6sm28624231pdb.32.2014.12.29.11.07.26 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 29 Dec 2014 11:07:27 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_977C1FBA-025B-49DF-8341-5A83312A1FEA"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276369 - head From: Garrett Cooper In-Reply-To: <201412291902.sBTJ218x095737@svn.freebsd.org> Date: Mon, 29 Dec 2014 11:07:24 -0800 Message-Id: References: <201412291902.sBTJ218x095737@svn.freebsd.org> To: Ed Maste X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 19:07:30 -0000 --Apple-Mail=_977C1FBA-025B-49DF-8341-5A83312A1FEA Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On Dec 29, 2014, at 11:02, Ed Maste wrote: > Author: emaste > Date: Mon Dec 29 19:02:00 2014 > New Revision: 276369 > URL: https://svnweb.freebsd.org/changeset/base/276369 > > Log: > Merge elftoolchain directory shuffling from elftoolchain update branch > > Modified: > Directory Properties: > head/ (props changed) Hi Ed, Was merging just the mergeinfo intentional? --Apple-Mail=_977C1FBA-025B-49DF-8341-5A83312A1FEA Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUoaZtAAoJEMZr5QU6S73e+5cH/1Dt/0bC/7LGpcpDvaKFuyRH ODuQ3PJZGZoaZ4TIcRMttu+phghXgkzBcVvVyYXrbsICZCfFVeqScRClQF4L8igi Ffcv4h6hiABw9QtnQozBewBwWiUinCcmoCgISRauRL7RjgjXst7a7OgLLA17eNSd xU42WVRX+5Kdg8gvUJjji+Bi1767pZVzrVl0xmB3/SJ24pbY0KmMXTl6wmjYV0Td rn91qe7kbZhIJ0c4WTu+hbxS/36y9lM8Abd+L23F636NuIOY7y8Ga6Alp/Nu2OW0 zjs79xATG7UQepPcIYdBPLBtfPAbfXxfaakcHq0l0B40NHGMQiZ5g/riWUVhn+s= =e2t9 -----END PGP SIGNATURE----- --Apple-Mail=_977C1FBA-025B-49DF-8341-5A83312A1FEA-- From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 19:16:46 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7F3F0E79; Mon, 29 Dec 2014 19:16:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 66F5B1DB6; Mon, 29 Dec 2014 19:16:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTJGkbM001219; Mon, 29 Dec 2014 19:16:46 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTJGf3G001189; Mon, 29 Dec 2014 19:16:41 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412291916.sBTJGf3G001189@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Dec 2014 19:16:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276371 - in head: contrib/elftoolchain/common contrib/elftoolchain/elfcopy contrib/elftoolchain/libdwarf contrib/elftoolchain/libelf contrib/elftoolchain/libelftc contrib/elftoolchain/... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 19:16:46 -0000 Author: emaste Date: Mon Dec 29 19:16:40 2014 New Revision: 276371 URL: https://svnweb.freebsd.org/changeset/base/276371 Log: Update elftoolchain to upstream rev 3130 This includes a number of libdwarf improvements (particularly DWARF4 related) and updates to elftoolchain tools such as strip(1). It also includes a large number of miscellaneous fixes (memory leaks, sign and cast warnings, integer overflow and underflow, etc.). This is a merge of r276167,276170-276172 from the projects/elftoolchain-update-r3130 branch. Sponsored by: The FreeBSD Foundation Added: head/contrib/elftoolchain/libdwarf/dwarf_attroffset.3 - copied unchanged from r276167, projects/elftoolchain-update-r3130/contrib/elftoolchain/libdwarf/dwarf_attroffset.3 head/contrib/elftoolchain/libdwarf/dwarf_get_die_infotypes_flag.3 - copied unchanged from r276167, projects/elftoolchain-update-r3130/contrib/elftoolchain/libdwarf/dwarf_get_die_infotypes_flag.3 head/contrib/elftoolchain/libdwarf/dwarf_get_section_max_offsets.3 - copied unchanged from r276167, projects/elftoolchain-update-r3130/contrib/elftoolchain/libdwarf/dwarf_get_section_max_offsets.3 head/contrib/elftoolchain/libdwarf/dwarf_next_types_section.3 - copied unchanged from r276167, projects/elftoolchain-update-r3130/contrib/elftoolchain/libdwarf/dwarf_next_types_section.3 head/contrib/elftoolchain/libdwarf/dwarf_sections.c - copied unchanged from r276167, projects/elftoolchain-update-r3130/contrib/elftoolchain/libdwarf/dwarf_sections.c Modified: head/contrib/elftoolchain/common/Makefile head/contrib/elftoolchain/common/elfdefinitions.h head/contrib/elftoolchain/elfcopy/archive.c head/contrib/elftoolchain/elfcopy/main.c head/contrib/elftoolchain/elfcopy/sections.c head/contrib/elftoolchain/elfcopy/segments.c head/contrib/elftoolchain/elfcopy/symbols.c head/contrib/elftoolchain/libdwarf/Makefile head/contrib/elftoolchain/libdwarf/Version.map head/contrib/elftoolchain/libdwarf/_libdwarf.h head/contrib/elftoolchain/libdwarf/dwarf.3 head/contrib/elftoolchain/libdwarf/dwarf.h head/contrib/elftoolchain/libdwarf/dwarf_attr.3 head/contrib/elftoolchain/libdwarf/dwarf_attr.c head/contrib/elftoolchain/libdwarf/dwarf_attrval.c head/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 head/contrib/elftoolchain/libdwarf/dwarf_child.3 head/contrib/elftoolchain/libdwarf/dwarf_cu.c head/contrib/elftoolchain/libdwarf/dwarf_die.c head/contrib/elftoolchain/libdwarf/dwarf_dieoffset.3 head/contrib/elftoolchain/libdwarf/dwarf_dump.c head/contrib/elftoolchain/libdwarf/dwarf_errmsg.c head/contrib/elftoolchain/libdwarf/dwarf_frame.c head/contrib/elftoolchain/libdwarf/dwarf_highpc.3 head/contrib/elftoolchain/libdwarf/dwarf_lineno.c head/contrib/elftoolchain/libdwarf/dwarf_loclist.c head/contrib/elftoolchain/libdwarf/dwarf_loclist_from_expr.3 head/contrib/elftoolchain/libdwarf/dwarf_next_cu_header.3 head/contrib/elftoolchain/libdwarf/dwarf_ranges.c head/contrib/elftoolchain/libdwarf/libdwarf.h head/contrib/elftoolchain/libdwarf/libdwarf_arange.c head/contrib/elftoolchain/libdwarf/libdwarf_attr.c head/contrib/elftoolchain/libdwarf/libdwarf_die.c head/contrib/elftoolchain/libdwarf/libdwarf_frame.c head/contrib/elftoolchain/libdwarf/libdwarf_info.c head/contrib/elftoolchain/libdwarf/libdwarf_init.c head/contrib/elftoolchain/libdwarf/libdwarf_lineno.c head/contrib/elftoolchain/libdwarf/libdwarf_loc.c head/contrib/elftoolchain/libdwarf/libdwarf_loclist.c head/contrib/elftoolchain/libdwarf/libdwarf_nametbl.c head/contrib/elftoolchain/libdwarf/libdwarf_sections.c head/contrib/elftoolchain/libelf/_libelf.h head/contrib/elftoolchain/libelf/_libelf_ar.h head/contrib/elftoolchain/libelf/elf.3 head/contrib/elftoolchain/libelf/elf_data.c head/contrib/elftoolchain/libelf/elf_errmsg.c head/contrib/elftoolchain/libelf/elf_flag.c head/contrib/elftoolchain/libelf/elf_memory.c head/contrib/elftoolchain/libelf/elf_next.c head/contrib/elftoolchain/libelf/elf_open.c head/contrib/elftoolchain/libelf/elf_rand.c head/contrib/elftoolchain/libelf/elf_rawfile.c head/contrib/elftoolchain/libelf/elf_scn.c head/contrib/elftoolchain/libelf/elf_strptr.c head/contrib/elftoolchain/libelf/elf_update.c head/contrib/elftoolchain/libelf/gelf_cap.c head/contrib/elftoolchain/libelf/gelf_dyn.c head/contrib/elftoolchain/libelf/gelf_ehdr.c head/contrib/elftoolchain/libelf/gelf_move.c head/contrib/elftoolchain/libelf/gelf_phdr.c head/contrib/elftoolchain/libelf/gelf_rel.c head/contrib/elftoolchain/libelf/gelf_rela.c head/contrib/elftoolchain/libelf/gelf_shdr.c head/contrib/elftoolchain/libelf/gelf_sym.c head/contrib/elftoolchain/libelf/gelf_syminfo.c head/contrib/elftoolchain/libelf/gelf_symshndx.c head/contrib/elftoolchain/libelf/libelf.h head/contrib/elftoolchain/libelf/libelf_align.c head/contrib/elftoolchain/libelf/libelf_ar.c head/contrib/elftoolchain/libelf/libelf_ar_util.c head/contrib/elftoolchain/libelf/libelf_checksum.c head/contrib/elftoolchain/libelf/libelf_convert.m4 head/contrib/elftoolchain/libelf/libelf_data.c head/contrib/elftoolchain/libelf/libelf_ehdr.c head/contrib/elftoolchain/libelf/libelf_extended.c head/contrib/elftoolchain/libelf/libelf_memory.c head/contrib/elftoolchain/libelf/libelf_open.c head/contrib/elftoolchain/libelf/libelf_phdr.c head/contrib/elftoolchain/libelf/libelf_xlate.c head/contrib/elftoolchain/libelftc/elftc_copyfile.c head/contrib/elftoolchain/libelftc/elftc_demangle.c head/contrib/elftoolchain/libelftc/libelftc.h head/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c head/contrib/elftoolchain/nm/nm.c head/contrib/elftoolchain/readelf/readelf.1 head/contrib/elftoolchain/readelf/readelf.c head/contrib/elftoolchain/strings/strings.c head/lib/libdwarf/Makefile head/lib/libelftc/elftc_version.c Directory Properties: head/ (props changed) head/contrib/elftoolchain/ (props changed) Modified: head/contrib/elftoolchain/common/Makefile ============================================================================== --- head/contrib/elftoolchain/common/Makefile Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/common/Makefile Mon Dec 29 19:16:40 2014 (r276371) @@ -1,4 +1,4 @@ -# $Id: Makefile 2606 2012-10-02 17:52:57Z jkoshy $ +# $Id: Makefile 3022 2014-04-17 18:05:58Z jkoshy $ TOP= .. @@ -12,4 +12,7 @@ all depend obj: clean clobber: rm -f ${CLEANFILES} +cleandepend: + rm -f .depend + .include "${TOP}/mk/elftoolchain.inc.mk" Modified: head/contrib/elftoolchain/common/elfdefinitions.h ============================================================================== --- head/contrib/elftoolchain/common/elfdefinitions.h Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/common/elfdefinitions.h Mon Dec 29 19:16:40 2014 (r276371) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: elfdefinitions.h 2950 2013-06-15 13:36:02Z jkoshy $ + * $Id: elfdefinitions.h 3110 2014-12-20 08:32:46Z kaiwang27 $ */ /* @@ -821,7 +821,8 @@ enum { EM__LAST__ }; -/* Older synonyms. */ +/* Other synonyms. */ +#define EM_AMD64 EM_X86_64 #define EM_ARC_A5 EM_ARC_COMPACT /* @@ -2114,11 +2115,11 @@ typedef struct { /* 64-bit entry. */ typedef struct { - Elf64_Word l_name; - Elf64_Word l_time_stamp; - Elf64_Word l_checksum; - Elf64_Word l_version; - Elf64_Word l_flags; + Elf64_Word l_name; /* The name of a shared object. */ + Elf64_Word l_time_stamp; /* 32-bit timestamp. */ + Elf64_Word l_checksum; /* Checksum of visible symbols, sizes. */ + Elf64_Word l_version; /* Interface version string index. */ + Elf64_Word l_flags; /* Flags (LL_*). */ } Elf64_Lib; #define _ELF_DEFINE_LL_FLAGS() \ @@ -2366,12 +2367,12 @@ typedef struct { /* 64 bit PHDR entry. */ typedef struct { Elf64_Word p_type; /* Type of segment. */ - Elf64_Word p_flags; /* File offset to segment. */ - Elf64_Off p_offset; /* Virtual address in memory. */ - Elf64_Addr p_vaddr; /* Physical address (if relevant). */ - Elf64_Addr p_paddr; /* Size of segment in file. */ - Elf64_Xword p_filesz; /* Size of segment in memory. */ - Elf64_Xword p_memsz; /* Segment flags. */ + Elf64_Word p_flags; /* Segment flags. */ + Elf64_Off p_offset; /* File offset to segment. */ + Elf64_Addr p_vaddr; /* Virtual address in memory. */ + Elf64_Addr p_paddr; /* Physical address (if relevant). */ + Elf64_Xword p_filesz; /* Size of segment in file. */ + Elf64_Xword p_memsz; /* Size of segment in memory. */ Elf64_Xword p_align; /* Alignment constraints. */ } Elf64_Phdr; @@ -2455,11 +2456,11 @@ typedef struct { typedef struct { Elf64_Word st_name; /* index of symbol's name */ - unsigned char st_info; /* value for the symbol */ - unsigned char st_other; /* size of associated data */ - Elf64_Half st_shndx; /* type and binding attributes */ - Elf64_Addr st_value; /* visibility */ - Elf64_Xword st_size; /* index of related section */ + unsigned char st_info; /* type and binding attributes */ + unsigned char st_other; /* visibility */ + Elf64_Half st_shndx; /* index of related section */ + Elf64_Addr st_value; /* value for the symbol */ + Elf64_Xword st_size; /* size of associated data */ } Elf64_Sym; #define ELF32_ST_BIND(I) ((I) >> 4) Modified: head/contrib/elftoolchain/elfcopy/archive.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/archive.c Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/elfcopy/archive.c Mon Dec 29 19:16:40 2014 (r276371) @@ -40,7 +40,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: archive.c 2370 2011-12-29 12:48:12Z jkoshy $"); +ELFTC_VCSID("$Id: archive.c 3102 2014-10-29 21:09:01Z jkoshy $"); #define _ARMAG_LEN 8 /* length of ar magic string */ #define _ARHDR_LEN 60 /* length of ar header */ @@ -350,7 +350,6 @@ ac_detect_ar(int ifd) r = -1; if ((a = archive_read_new()) == NULL) return (0); - archive_read_support_filter_none(a); archive_read_support_format_ar(a); if (archive_read_open_fd(a, ifd, 10240) == ARCHIVE_OK) r = archive_read_next_header(a, &entry); @@ -386,7 +385,6 @@ ac_read_objs(struct elfcopy *ecp, int if err(EXIT_FAILURE, "lseek failed"); if ((a = archive_read_new()) == NULL) errx(EXIT_FAILURE, "%s", archive_error_string(a)); - archive_read_support_filter_none(a); archive_read_support_format_ar(a); AC(archive_read_open_fd(a, ifd, 10240)); for(;;) { @@ -449,7 +447,6 @@ ac_write_objs(struct elfcopy *ecp, int o if ((a = archive_write_new()) == NULL) errx(EXIT_FAILURE, "%s", archive_error_string(a)); archive_write_set_format_ar_svr4(a); - archive_write_add_filter_none(a); AC(archive_write_open_fd(a, ofd)); /* Write the archive symbol table, even if it's empty. */ Modified: head/contrib/elftoolchain/elfcopy/main.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/main.c Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/elfcopy/main.c Mon Dec 29 19:16:40 2014 (r276371) @@ -40,7 +40,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: main.c 2970 2013-12-01 15:22:12Z kaiwang27 $"); +ELFTC_VCSID("$Id: main.c 3111 2014-12-20 08:33:01Z kaiwang27 $"); enum options { Modified: head/contrib/elftoolchain/elfcopy/sections.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/sections.c Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/elfcopy/sections.c Mon Dec 29 19:16:40 2014 (r276371) @@ -35,7 +35,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: sections.c 2358 2011-12-19 18:22:32Z kaiwang27 $"); +ELFTC_VCSID("$Id: sections.c 3126 2014-12-21 08:03:31Z kaiwang27 $"); static void add_gnu_debuglink(struct elfcopy *ecp); static uint32_t calc_crc32(const char *p, size_t len, uint32_t crc); @@ -372,6 +372,14 @@ create_scn(struct elfcopy *ecp) is_remove_reloc_sec(ecp, ish.sh_info)) continue; + /* + * Section groups should be removed if symbol table will + * be removed. (section group's signature stored in symbol + * table) + */ + if (ish.sh_type == SHT_GROUP && ecp->strip == STRIP_ALL) + continue; + /* Get section flags set by user. */ sec_flags = get_section_flags(ecp, name); Modified: head/contrib/elftoolchain/elfcopy/segments.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/segments.c Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/elfcopy/segments.c Mon Dec 29 19:16:40 2014 (r276371) @@ -35,7 +35,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: segments.c 2542 2012-08-12 16:14:15Z kaiwang27 $"); +ELFTC_VCSID("$Id: segments.c 3113 2014-12-20 08:33:29Z kaiwang27 $"); static void insert_to_inseg_list(struct segment *seg, struct section *sec); @@ -73,13 +73,15 @@ add_to_inseg_list(struct elfcopy *ecp, s */ loadable = 0; STAILQ_FOREACH(seg, &ecp->v_seg, seg_list) { - if (s->off < seg->off) + if (s->off < seg->off || (s->vma < seg->addr && !s->pseudo)) continue; if (s->off + s->sz > seg->off + seg->fsz && s->type != SHT_NOBITS) continue; if (s->off + s->sz > seg->off + seg->msz) continue; + if (s->vma + s->sz > seg->addr + seg->msz) + continue; insert_to_inseg_list(seg, s); if (seg->type == PT_LOAD) @@ -97,7 +99,7 @@ adjust_addr(struct elfcopy *ecp) struct section *s, *s0; struct segment *seg; struct sec_action *sac; - uint64_t dl, lma, old_vma, start, end; + uint64_t dl, lma, start, end; int found, i; /* @@ -114,8 +116,6 @@ adjust_addr(struct elfcopy *ecp) s->lma += ecp->change_addr; if (!s->pseudo) { - old_vma = s->vma; - /* Apply global VMA adjustment. */ if (ecp->change_addr != 0) s->vma += ecp->change_addr; Modified: head/contrib/elftoolchain/elfcopy/symbols.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/symbols.c Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/elfcopy/symbols.c Mon Dec 29 19:16:40 2014 (r276371) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: symbols.c 2971 2013-12-01 15:22:21Z kaiwang27 $"); +ELFTC_VCSID("$Id: symbols.c 3019 2014-04-17 14:53:40Z jkoshy $"); /* Symbol table buffer structure. */ struct symbuf { @@ -300,7 +300,7 @@ generate_symbols(struct elfcopy *ecp) GElf_Sym sym; Elf_Data* id; Elf_Scn *is; - size_t ishstrndx, namelen, ndx, nsyms, sc, symndx; + size_t ishstrndx, namelen, ndx, sc, symndx; int ec, elferr, i; if (elf_getshstrndx(ecp->ein, &ishstrndx) == 0) @@ -320,7 +320,6 @@ generate_symbols(struct elfcopy *ecp) st_buf->lcap = 64; st_buf->lsz = 1; /* '\0' at start. */ st_buf->gsz = 0; - nsyms = 0; ecp->symtab->sz = 0; ecp->strtab->sz = 0; Modified: head/contrib/elftoolchain/libdwarf/Makefile ============================================================================== --- head/contrib/elftoolchain/libdwarf/Makefile Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/Makefile Mon Dec 29 19:16:40 2014 (r276371) @@ -1,4 +1,4 @@ -# $Id: Makefile 2937 2013-04-27 04:48:23Z jkoshy $ +# $Id: Makefile 3097 2014-09-02 22:10:18Z kaiwang27 $ TOP= ${.CURDIR}/.. @@ -42,6 +42,7 @@ SRCS= \ dwarf_pubtypes.c \ dwarf_ranges.c \ dwarf_reloc.c \ + dwarf_sections.c \ dwarf_seterror.c \ dwarf_str.c \ dwarf_types.c \ @@ -115,6 +116,7 @@ MAN= dwarf.3 dwarf_add_weakname.3 \ dwarf_attr.3 \ dwarf_attrlist.3 \ + dwarf_attroffset.3 \ dwarf_attrval_signed.3 \ dwarf_child.3 \ dwarf_dealloc.3 \ @@ -154,6 +156,7 @@ MAN= dwarf.3 dwarf_get_cie_info.3 \ dwarf_get_cie_of_fde.3 \ dwarf_get_cu_die_offset.3 \ + dwarf_get_die_infotypes_flag.3 \ dwarf_get_elf.3 \ dwarf_get_fde_at_pc.3 \ dwarf_get_fde_info_for_all_regs.3 \ @@ -175,6 +178,7 @@ MAN= dwarf.3 dwarf_get_relocation_info.3 \ dwarf_get_relocation_info_count.3 \ dwarf_get_section_bytes.3 \ + dwarf_get_section_max_offsets.3 \ dwarf_get_str.3 \ dwarf_get_types.3 \ dwarf_get_vars.3 \ @@ -192,6 +196,7 @@ MAN= dwarf.3 dwarf_new_expr.3 \ dwarf_new_fde.3 \ dwarf_next_cu_header.3 \ + dwarf_next_types_section.3 \ dwarf_object_init.3 \ dwarf_producer_init.3 \ dwarf_producer_set_isa.3 \ @@ -220,7 +225,9 @@ MLINKS+= \ dwarf_attrval_signed.3 dwarf_attrval_string.3 \ dwarf_attrval_signed.3 dwarf_attrval_unsigned.3 \ dwarf_child.3 dwarf_offdie.3 \ + dwarf_child.3 dwarf_offdie_b.3 \ dwarf_child.3 dwarf_siblingof.3 \ + dwarf_child.3 dwarf_siblingof_b.3 \ dwarf_dealloc.3 dwarf_fde_cie_list_dealloc.3 \ dwarf_dealloc.3 dwarf_funcs_dealloc.3 \ dwarf_dealloc.3 dwarf_globals_dealloc.3 \ @@ -234,6 +241,7 @@ MLINKS+= \ dwarf_dieoffset.3 dwarf_die_CU_offset.3 \ dwarf_dieoffset.3 dwarf_die_CU_offset_range.3 \ dwarf_dieoffset.3 dwarf_get_cu_die_offset_given_cu_header_offset.3 \ + dwarf_dieoffset.3 dwarf_get_cu_die_offset_given_cu_header_offset_b.3 \ dwarf_finish.3 dwarf_object_finish.3 \ dwarf_formref.3 dwarf_global_formref.3 \ dwarf_formudata.3 dwarf_formsdata.3 \ @@ -273,6 +281,7 @@ MLINKS+= \ dwarf_get_pubtypes.3 dwarf_pubtype_name_offsets.3 \ dwarf_get_pubtypes.3 dwarf_pubtypename.3 \ dwarf_get_ranges.3 dwarf_get_ranges_a.3 \ + dwarf_get_section_max_offsets.3 dwarf_get_section_max_offsets_b.3 \ dwarf_get_types.3 dwarf_type_die_offset.3 \ dwarf_get_types.3 dwarf_type_cu_offset.3 \ dwarf_get_types.3 dwarf_type_name_offsets.3 \ @@ -291,6 +300,7 @@ MLINKS+= \ dwarf_highpc.3 dwarf_bitoffset.3 \ dwarf_highpc.3 dwarf_bitsize.3 \ dwarf_highpc.3 dwarf_bytesize.3 \ + dwarf_highpc.3 dwarf_highpc_b.3 \ dwarf_highpc.3 dwarf_lowpc.3 \ dwarf_highpc.3 dwarf_srclang.3 \ dwarf_lineno.3 dwarf_lineaddr.3 \ @@ -302,6 +312,9 @@ MLINKS+= \ dwarf_lineno.3 dwarf_line_srcfileno.3 \ dwarf_loclist.3 dwarf_loclist_n.3 \ dwarf_loclist_from_expr.3 dwarf_loclist_from_expr_a.3 \ + dwarf_loclist_from_expr.3 dwarf_loclist_from_expr_b.3 \ + dwarf_next_cu_header.3 dwarf_next_cu_header_b.3 \ + dwarf_next_cu_header.3 dwarf_next_cu_header_c.3 \ dwarf_producer_init.3 dwarf_producer_init_b.3 \ dwarf_seterrarg.3 dwarf_seterrhand.3 \ dwarf_set_frame_cfa_value.3 dwarf_set_frame_rule_initial_value.3 \ Modified: head/contrib/elftoolchain/libdwarf/Version.map ============================================================================== --- head/contrib/elftoolchain/libdwarf/Version.map Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/Version.map Mon Dec 29 19:16:40 2014 (r276371) @@ -1,4 +1,4 @@ -/* $Id: Version.map 2576 2012-09-13 09:16:11Z jkoshy $ */ +/* $Id: Version.map 3085 2014-09-02 22:08:23Z kaiwang27 $ */ R1.0 { global: @@ -39,6 +39,7 @@ global: dwarf_arrayorder; dwarf_attr; dwarf_attrlist; + dwarf_attroffset; dwarf_attrval_flag; dwarf_attrval_signed; dwarf_attrval_string; @@ -116,6 +117,8 @@ global: dwarf_get_cie_of_fde; dwarf_get_cu_die_offset; dwarf_get_cu_die_offset_given_cu_header_offset; + dwarf_get_cu_die_offset_given_cu_header_offset_b; + dwarf_get_die_infotypes_flag; dwarf_get_elf; dwarf_get_fde_at_pc; dwarf_get_fde_info_for_all_regs3; @@ -139,6 +142,8 @@ global: dwarf_get_relocation_info; dwarf_get_relocation_info_count; dwarf_get_section_bytes; + dwarf_get_section_max_offsets; + dwarf_get_section_max_offsets_b; dwarf_get_str; dwarf_get_types; dwarf_get_vars; @@ -152,6 +157,7 @@ global: dwarf_hasattr; dwarf_hasform; dwarf_highpc; + dwarf_highpc_b; dwarf_init; dwarf_line_srcfileno; dwarf_lineaddr; @@ -166,6 +172,7 @@ global: dwarf_loclist; dwarf_loclist_from_expr; dwarf_loclist_from_expr_a; + dwarf_loclist_from_expr_b; dwarf_loclist_n; dwarf_lowpc; dwarf_new_die; @@ -173,9 +180,12 @@ global: dwarf_new_fde; dwarf_next_cu_header; dwarf_next_cu_header_b; + dwarf_next_cu_header_c; + dwarf_next_types_section; dwarf_object_finish; dwarf_object_init; dwarf_offdie; + dwarf_offdie_b; dwarf_producer_finish; dwarf_producer_init; dwarf_producer_init_b; @@ -196,6 +206,7 @@ global: dwarf_seterrarg; dwarf_seterrhand; dwarf_siblingof; + dwarf_siblingof_b; dwarf_srcfiles; dwarf_srclang; dwarf_srclines; Modified: head/contrib/elftoolchain/libdwarf/_libdwarf.h ============================================================================== --- head/contrib/elftoolchain/libdwarf/_libdwarf.h Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/_libdwarf.h Mon Dec 29 19:16:40 2014 (r276371) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2011 Kai Wang + * Copyright (c) 2009-2014 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: _libdwarf.h 2075 2011-10-27 03:47:28Z jkoshy $ + * $Id: _libdwarf.h 3106 2014-12-19 16:00:58Z kaiwang27 $ */ #ifndef __LIBDWARF_H_ @@ -89,6 +89,7 @@ extern struct _libdwarf_globals _libdwar goto gen_fail; \ } while(0) +typedef struct _Dwarf_CU *Dwarf_CU; struct _Dwarf_AttrDef { uint64_t ad_attrib; /* DW_AT_XXX */ @@ -147,14 +148,6 @@ struct _Dwarf_Die { STAILQ_ENTRY(_Dwarf_Die) die_pro_next; /* Next die in pro-die list. */ }; -struct _Dwarf_Loclist { - Dwarf_Locdesc **ll_ldlist; /* Array of Locdesc pointer. */ - int ll_ldlen; /* Number of Locdesc. */ - Dwarf_Unsigned ll_offset; /* Offset in .debug_loc section. */ - Dwarf_Unsigned ll_length; /* Length (in bytes) of the loclist. */ - TAILQ_ENTRY(_Dwarf_Loclist) ll_next; /* Next loclist in list. */ -}; - struct _Dwarf_P_Expr_Entry { Dwarf_Loc ee_loc; /* Location expression. */ Dwarf_Unsigned ee_sym; /* Optional related reloc sym index. */ @@ -265,6 +258,8 @@ struct _Dwarf_Cie { Dwarf_Half cie_version; /* CIE version. */ uint8_t *cie_augment; /* CIE augmentation (UTF-8). */ Dwarf_Unsigned cie_ehdata; /* Optional EH Data. */ + uint8_t cie_addrsize; /* Address size. (DWARF4) */ + uint8_t cie_segmentsize; /* Segment size. (DWARF4) */ Dwarf_Unsigned cie_caf; /* Code alignment factor. */ Dwarf_Signed cie_daf; /* Data alignment factor. */ Dwarf_Unsigned cie_ra; /* Return address register. */ @@ -333,11 +328,14 @@ struct _Dwarf_CU { uint64_t cu_lineno_offset; /* Offset into .debug_lineno. */ uint8_t cu_pointer_size;/* Number of bytes in pointer. */ uint8_t cu_dwarf_size; /* CU section dwarf size. */ + Dwarf_Sig8 cu_type_sig; /* Type unit's signature. */ + uint64_t cu_type_offset; /* Type unit's type offset. */ Dwarf_Off cu_next_offset; /* Offset to the next CU. */ uint64_t cu_1st_offset; /* First DIE offset. */ int cu_pass2; /* Two pass DIE traverse. */ Dwarf_LineInfo cu_lineinfo; /* Ptr to Dwarf_LineInfo. */ Dwarf_Abbrev cu_abbrev_hash; /* Abbrev hash table. */ + Dwarf_Bool cu_is_info; /* Compilation/type unit flag. */ STAILQ_ENTRY(_Dwarf_CU) cu_next; /* Next compilation unit. */ }; @@ -399,17 +397,21 @@ struct _Dwarf_Debug { Dwarf_Section *dbg_section; /* Dwarf section list. */ Dwarf_Section *dbg_info_sec; /* Pointer to info section. */ Dwarf_Off dbg_info_off; /* Current info section offset. */ + Dwarf_Section *dbg_types_sec; /* Pointer to type section. */ + Dwarf_Off dbg_types_off; /* Current types section offset. */ Dwarf_Unsigned dbg_seccnt; /* Total number of dwarf sections. */ int dbg_mode; /* Access mode. */ int dbg_pointer_size; /* Object address size. */ int dbg_offset_size; /* DWARF offset size. */ int dbg_info_loaded; /* Flag indicating all CU loaded. */ + int dbg_types_loaded; /* Flag indicating all TU loaded. */ Dwarf_Half dbg_machine; /* ELF machine architecture. */ Dwarf_Handler dbg_errhand; /* Error handler. */ Dwarf_Ptr dbg_errarg; /* Argument to the error handler. */ STAILQ_HEAD(, _Dwarf_CU) dbg_cu;/* List of compilation units. */ + STAILQ_HEAD(, _Dwarf_CU) dbg_tu;/* List of type units. */ Dwarf_CU dbg_cu_current; /* Ptr to the current CU. */ - TAILQ_HEAD(, _Dwarf_Loclist) dbg_loclist; /* List of location list. */ + Dwarf_CU dbg_tu_current; /* Ptr to the current TU. */ Dwarf_NameSec dbg_globals; /* Ptr to pubnames lookup section. */ Dwarf_NameSec dbg_pubtypes; /* Ptr to pubtypes lookup section. */ Dwarf_NameSec dbg_weaks; /* Ptr to weaknames lookup section. */ @@ -532,13 +534,15 @@ int _dwarf_elf_get_section_info(void *, Dwarf_Obj_Access_Section *, int *); void _dwarf_expr_cleanup(Dwarf_P_Debug); int _dwarf_expr_into_block(Dwarf_P_Expr, Dwarf_Error *); +Dwarf_Section *_dwarf_find_next_types_section(Dwarf_Debug, Dwarf_Section *); Dwarf_Section *_dwarf_find_section(Dwarf_Debug, const char *); void _dwarf_frame_cleanup(Dwarf_Debug); int _dwarf_frame_fde_add_inst(Dwarf_P_Fde, Dwarf_Small, Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); int _dwarf_frame_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_frame_get_fop(Dwarf_Debug, uint8_t *, Dwarf_Unsigned, - Dwarf_Frame_Op **, Dwarf_Signed *, Dwarf_Error *); +int _dwarf_frame_get_fop(Dwarf_Debug, uint8_t, uint8_t *, + Dwarf_Unsigned, Dwarf_Frame_Op **, Dwarf_Signed *, + Dwarf_Error *); int _dwarf_frame_get_internal_table(Dwarf_Fde, Dwarf_Addr, Dwarf_Regtable3 **, Dwarf_Addr *, Dwarf_Error *); int _dwarf_frame_interal_table_init(Dwarf_Debug, Dwarf_Error *); @@ -553,9 +557,12 @@ Dwarf_Unsigned _dwarf_get_reloc_type(Dwa int _dwarf_get_reloc_size(Dwarf_Debug, Dwarf_Unsigned); void _dwarf_info_cleanup(Dwarf_Debug); int _dwarf_info_first_cu(Dwarf_Debug, Dwarf_Error *); +int _dwarf_info_first_tu(Dwarf_Debug, Dwarf_Error *); int _dwarf_info_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_info_load(Dwarf_Debug, int, Dwarf_Error *); +int _dwarf_info_load(Dwarf_Debug, Dwarf_Bool, Dwarf_Bool, + Dwarf_Error *); int _dwarf_info_next_cu(Dwarf_Debug, Dwarf_Error *); +int _dwarf_info_next_tu(Dwarf_Debug, Dwarf_Error *); void _dwarf_info_pro_cleanup(Dwarf_P_Debug); int _dwarf_init(Dwarf_Debug, Dwarf_Unsigned, Dwarf_Handler, Dwarf_Ptr, Dwarf_Error *); @@ -563,20 +570,19 @@ int _dwarf_lineno_gen(Dwarf_P_Debug, Dw int _dwarf_lineno_init(Dwarf_Die, uint64_t, Dwarf_Error *); void _dwarf_lineno_cleanup(Dwarf_LineInfo); void _dwarf_lineno_pro_cleanup(Dwarf_P_Debug); -int _dwarf_loc_fill_locdesc(Dwarf_Debug, Dwarf_Locdesc *, uint8_t *, - uint64_t, uint8_t, Dwarf_Error *); +int _dwarf_loc_fill_locdesc(Dwarf_Debug, Dwarf_Locdesc *, + uint8_t *, uint64_t, uint8_t, uint8_t, uint8_t, + Dwarf_Error *); int _dwarf_loc_fill_locexpr(Dwarf_Debug, Dwarf_Locdesc **, - uint8_t *, uint64_t, uint8_t, Dwarf_Error *); + uint8_t *, uint64_t, uint8_t, uint8_t, uint8_t, + Dwarf_Error *); int _dwarf_loc_add(Dwarf_Die, Dwarf_Attribute, Dwarf_Error *); int _dwarf_loc_expr_add_atom(Dwarf_Debug, uint8_t *, uint8_t *, Dwarf_Small, Dwarf_Unsigned, Dwarf_Unsigned, int *, Dwarf_Error *); int _dwarf_loclist_find(Dwarf_Debug, Dwarf_CU, uint64_t, - Dwarf_Loclist *, Dwarf_Error *); -void _dwarf_loclist_cleanup(Dwarf_Debug); -void _dwarf_loclist_free(Dwarf_Loclist); -int _dwarf_loclist_add(Dwarf_Debug, Dwarf_CU, uint64_t, - Dwarf_Loclist *, Dwarf_Error *); + Dwarf_Locdesc ***, Dwarf_Signed *, Dwarf_Unsigned *, + Dwarf_Error *); void _dwarf_macinfo_cleanup(Dwarf_Debug); int _dwarf_macinfo_gen(Dwarf_P_Debug, Dwarf_Error *); int _dwarf_macinfo_init(Dwarf_Debug, Dwarf_Error *); @@ -633,6 +639,7 @@ void _dwarf_strtab_cleanup(Dwarf_Debug) int _dwarf_strtab_gen(Dwarf_P_Debug, Dwarf_Error *); char *_dwarf_strtab_get_table(Dwarf_Debug); int _dwarf_strtab_init(Dwarf_Debug, Dwarf_Error *); +void _dwarf_type_unit_cleanup(Dwarf_Debug); void _dwarf_write_block(void *, uint64_t *, uint8_t *, uint64_t); int _dwarf_write_block_alloc(uint8_t **, uint64_t *, uint64_t *, uint8_t *, uint64_t, Dwarf_Error *); Modified: head/contrib/elftoolchain/libdwarf/dwarf.3 ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf.3 Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/dwarf.3 Mon Dec 29 19:16:40 2014 (r276371) @@ -21,9 +21,9 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: dwarf.3 2075 2011-10-27 03:47:28Z jkoshy $ +.\" $Id: dwarf.3 3130 2014-12-21 20:06:29Z jkoshy $ .\" -.Dd September 17, 2011 +.Dd December 21, 2014 .Os .Dt DWARF 3 .Sh NAME @@ -217,6 +217,8 @@ attribute. Retrieve an attribute descriptor. .It Fn dwarf_attrlist Retrieve attribute descriptors for a debugging information entry. +.It Fn dwarf_attroffset +Retrieve the section-relative offset of an attribute descriptor. .It Fn dwarf_attrval_flag Retrieve a .Dv DW_AT_FORM_flag @@ -309,10 +311,17 @@ Retrieve range information from an FDE d .El .It Compilation Units .Bl -tag -compact -.It Fn dwarf_get_cu_die_offset_given_cu_header_offset +.It Xo +.Fn dwarf_get_cu_die_offset_given_cu_header_offset , +.Fn dwarf_get_cu_die_offset_given_cu_header_offset_b +.Xc Retrieve the offset of the debugging information entry for a -compilation unit. -.It Fn dwarf_next_cu_header , Fn dwarf_next_cu_header_b +compilation or type unit. +.It Xo +.Fn dwarf_next_cu_header , +.Fn dwarf_next_cu_header_b , +.Fn dwarf_next_cu_header_c +.Xc Step through compilation units in a debug context. .El .It Debugging Information Entries @@ -329,13 +338,15 @@ Returns the attribute for a debugging information entry. .It Fn dwarf_dieoffset Retrieves the offset for a debugging information entry. -.It Fn dwarf_highpc +.It Fn dwarf_get_die_infotypes_flag +Indicate the originating section for a debugging information entry. +.It Fn dwarf_highpc , Fn dwarf_highpc_b Return the highest PC value for a debugging information entry. .It Fn dwarf_lowpc Return the lowest PC value for a debugging information entry. -.It Fn dwarf_offdie +.It Fn dwarf_offdie , Fn dwarf_offdie_b Retrieve a debugging information entry given an offset. -.It Fn dwarf_siblingof +.It Fn dwarf_siblingof , Fn dwarf_siblingof_b Retrieve the sibling descriptor for a debugging information entry. .It Fn dwarf_srclang Retrive the source language attribute for a debugging information @@ -416,7 +427,11 @@ Return line number information for a com Retrieve a location list entry. .It Fn dwarf_loclist , Fn dwarf_loclist_n Retrieve location expressions. -.It Fn dwarf_loclist_from_expr , Fn dwarf_loclist_from_expr_a +.It Xo +.Fn dwarf_loclist_from_expr , +.Fn dwarf_loclist_from_expr_a , +.Fn dwarf_loclist_from_expr_b +.Xc Translate a location expression into a location descriptor. .El .It Error Handling @@ -513,6 +528,10 @@ and .Bl -tag -compact .It Fn dwarf_get_pubtypes , Fn dwarf_get_types Retrieve descriptors for user-defined types. +.It Fn dwarf_next_types_section +Step through +.Dq \&.debug_types +sections in a debug context. .It Fn dwarf_pubtype_cu_offset , Fn dwarf_type_cu_offset Return the offset for the compilation unit for a type. .It Fn dwarf_pubtype_die_offset , Fn dwarf_type_die_offset @@ -699,9 +718,16 @@ addition to the per-debug context handle API, see the subsection .Sx Error Handling above. +.El +.Ss Extensions +The following APIs are extensions specific to this implementation: +.Bl -bullet -compact +.It +.Fn dwarf_attroffset .It -The following API is an extension: -.Fn dwarf_producer_set_isa . +.Fn dwarf_next_types_section +.It +.Fn dwarf_producer_set_isa .El .Sh SEE ALSO .Xr elf 3 Modified: head/contrib/elftoolchain/libdwarf/dwarf.h ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf.h Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/dwarf.h Mon Dec 29 19:16:40 2014 (r276371) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: dwarf.h 2075 2011-10-27 03:47:28Z jkoshy $ + * $Id: dwarf.h 3052 2014-05-26 20:36:24Z kaiwang27 $ */ #ifndef _DWARF_H_ @@ -93,6 +93,19 @@ #define DW_TAG_lo_user 0x4080 #define DW_TAG_hi_user 0xffff +/* GNU extensions. */ +#define DW_TAG_format_label 0x4101 +#define DW_TAG_function_template 0x4102 +#define DW_TAG_class_template 0x4103 +#define DW_TAG_GNU_BINCL 0x4104 +#define DW_TAG_GNU_EINCL 0x4105 +#define DW_TAG_GNU_template_template_parameter 0x4106 +#define DW_TAG_GNU_template_template_param 0x4106 +#define DW_TAG_GNU_template_parameter_pack 0x4107 +#define DW_TAG_GNU_formal_parameter_pack 0x4108 +#define DW_TAG_GNU_call_site 0x4109 +#define DW_TAG_GNU_call_site_parameter 0x410a + #define DW_CHILDREN_no 0x00 #define DW_CHILDREN_yes 0x01 @@ -195,6 +208,32 @@ #define DW_AT_lo_user 0x2000 #define DW_AT_hi_user 0x3fff +/* GNU extensions. */ +#define DW_AT_sf_names 0x2101 +#define DW_AT_src_info 0x2102 +#define DW_AT_mac_info 0x2103 +#define DW_AT_src_coords 0x2104 +#define DW_AT_body_begin 0x2105 +#define DW_AT_body_end 0x2106 +#define DW_AT_GNU_vector 0x2107 +#define DW_AT_GNU_guarded_by 0x2108 +#define DW_AT_GNU_pt_guarded_by 0x2109 +#define DW_AT_GNU_guarded 0x210a +#define DW_AT_GNU_pt_guarded 0x210b +#define DW_AT_GNU_locks_excluded 0x210c +#define DW_AT_GNU_exclusive_locks_required 0x210d +#define DW_AT_GNU_shared_locks_required 0x210e +#define DW_AT_GNU_odr_signature 0x210f +#define DW_AT_GNU_template_name 0x2110 +#define DW_AT_GNU_call_site_value 0x2111 +#define DW_AT_GNU_call_site_data_value 0x2112 +#define DW_AT_GNU_call_site_target 0x2113 +#define DW_AT_GNU_call_site_target_clobbered 0x2114 +#define DW_AT_GNU_tail_call 0x2115 +#define DW_AT_GNU_all_tail_call_sites 0x2116 +#define DW_AT_GNU_all_call_sites 0x2117 +#define DW_AT_GNU_all_source_call_sites 0x2118 + #define DW_FORM_addr 0x01 #define DW_FORM_block2 0x03 #define DW_FORM_block4 0x04 @@ -220,6 +259,8 @@ #define DW_FORM_exprloc 0x18 #define DW_FORM_flag_present 0x19 #define DW_FORM_ref_sig8 0x20 +#define DW_FORM_GNU_ref_alt 0x1f20 +#define DW_FORM_GNU_strp_alt 0x1f21 #define DW_OP_addr 0x03 #define DW_OP_deref 0x06 @@ -376,9 +417,23 @@ #define DW_OP_implicit_value 0x9e #define DW_OP_stack_value 0x9f #define DW_OP_lo_user 0xe0 -#define DW_OP_GNU_push_tls_address 0xe0 #define DW_OP_hi_user 0xff +/* GNU extensions. */ +#define DW_OP_GNU_push_tls_address 0xe0 +#define DW_OP_GNU_uninit 0xf0 +#define DW_OP_GNU_encoded_addr 0xf1 +#define DW_OP_GNU_implicit_pointer 0xf2 +#define DW_OP_GNU_entry_value 0xf3 +#define DW_OP_GNU_const_type 0xf4 +#define DW_OP_GNU_regval_type 0xf5 +#define DW_OP_GNU_deref_type 0xf6 +#define DW_OP_GNU_convert 0xf7 +#define DW_OP_GNU_reinterpret 0xf9 +#define DW_OP_GNU_parameter_ref 0xfa +#define DW_OP_GNU_addr_index 0xfb +#define DW_OP_GNU_const_index 0xfc + #define DW_ATE_address 0x1 #define DW_ATE_boolean 0x2 #define DW_ATE_complex_float 0x3 Modified: head/contrib/elftoolchain/libdwarf/dwarf_attr.3 ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf_attr.3 Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/dwarf_attr.3 Mon Dec 29 19:16:40 2014 (r276371) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: dwarf_attr.3 2072 2011-10-27 03:26:49Z jkoshy $ +.\" $Id: dwarf_attr.3 3093 2014-09-02 22:09:40Z kaiwang27 $ .\" .Dd April 8, 2010 .Os @@ -113,6 +113,7 @@ in argument .Sh SEE ALSO .Xr dwarf 3 , .Xr dwarf_attrlist 3 , +.Xr dwarf_attroffset 3 , .Xr dwarf_hasattr 3 , .Xr dwarf_hasform 3 , .Xr dwarf_whatattr 3 , Modified: head/contrib/elftoolchain/libdwarf/dwarf_attr.c ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf_attr.c Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/dwarf_attr.c Mon Dec 29 19:16:40 2014 (r276371) @@ -27,7 +27,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: dwarf_attr.c 2072 2011-10-27 03:26:49Z jkoshy $"); +ELFTC_VCSID("$Id: dwarf_attr.c 3064 2014-06-06 19:35:55Z kaiwang27 $"); int dwarf_attr(Dwarf_Die die, Dwarf_Half attr, Dwarf_Attribute *atp, @@ -114,6 +114,23 @@ dwarf_hasattr(Dwarf_Die die, Dwarf_Half } int +dwarf_attroffset(Dwarf_Attribute at, Dwarf_Off *ret_off, Dwarf_Error *error) +{ + Dwarf_Debug dbg; + + dbg = at != NULL ? at->at_die->die_dbg : NULL; + + if (at == NULL || ret_off == NULL) { + DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); + return (DW_DLV_ERROR); + } + + *ret_off = at->at_offset; + + return (DW_DLV_OK); +} + +int dwarf_lowpc(Dwarf_Die die, Dwarf_Addr *ret_lowpc, Dwarf_Error *error) { Dwarf_Attribute at; @@ -139,8 +156,17 @@ dwarf_lowpc(Dwarf_Die die, Dwarf_Addr *r int dwarf_highpc(Dwarf_Die die, Dwarf_Addr *ret_highpc, Dwarf_Error *error) { + + return (dwarf_highpc_b(die, ret_highpc, NULL, NULL, error)); +} + +int +dwarf_highpc_b(Dwarf_Die die, Dwarf_Addr *ret_highpc, Dwarf_Half *ret_form, + enum Dwarf_Form_Class *ret_class, Dwarf_Error *error) +{ Dwarf_Attribute at; Dwarf_Debug dbg; + Dwarf_CU cu; dbg = die != NULL ? die->die_dbg : NULL; @@ -156,6 +182,17 @@ dwarf_highpc(Dwarf_Die die, Dwarf_Addr * *ret_highpc = at->u[0].u64; + if (ret_form != NULL) { + *ret_form = at->at_form; + } + + if (ret_class != NULL) { + cu = die->die_cu; + *ret_class = dwarf_get_form_class(cu->cu_version, + DW_AT_high_pc, cu->cu_length_size == 4 ? 4 : 8, + at->at_form); + } + return (DW_DLV_OK); } Copied: head/contrib/elftoolchain/libdwarf/dwarf_attroffset.3 (from r276167, projects/elftoolchain-update-r3130/contrib/elftoolchain/libdwarf/dwarf_attroffset.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/elftoolchain/libdwarf/dwarf_attroffset.3 Mon Dec 29 19:16:40 2014 (r276371, copy of r276167, projects/elftoolchain-update-r3130/contrib/elftoolchain/libdwarf/dwarf_attroffset.3) @@ -0,0 +1,86 @@ +.\" Copyright (c) 2014 Kai Wang +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id: dwarf_attroffset.3 3115 2014-12-20 18:26:46Z jkoshy $ +.\" +.Dd December 20, 2014 +.Os +.Dt DWARF_ATTROFFSET 3 +.Sh NAME +.Nm dwarf_attroffset +.Nd retrieve the section-relative offset of an attribute descriptor +.Sh LIBRARY +.Lb libdwarf +.Sh SYNOPSIS +.In libdwarf.h +.Ft int +.Fo dwarf_attroffset +.Fa "Dwarf_Attribute at" +.Fa "Dwarf_Off *ret_off" +.Fa "Dwarf_Error *err" +.Fc +.Sh DESCRIPTION +Function +.Fn dwarf_attroffset +retrieves the section-relative offset of the attribute descriptor +referenced by argument +.Ar at . +.Pp +Argument +.Ar ret_off +should point to a location that is to hold the returned +section-relative offset. +If argument +.Ar err +is non-NULL, it is used to return an error descriptor in case of an +error. +.Sh RETURN VALUES +On success, function +.Fn dwarf_attroffset +returns +.Dv DW_DLV_OK . +.Pp +In case of an error, it returns +.Dv DW_DLV_ERROR +and sets argument +.Ar err . +.Sh COMPATIBILITY +This function is an extension to the +.Xr DWARF 3 +API. +.Sh ERRORS +The +.Fn dwarf_attroffset +function may fail with the following errors: +.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" +.It Bq Er DW_DLE_ARGUMENT +Either of the arguments +.Ar at +or +.Ar ret_off +was NULL. +.El +.Sh SEE ALSO +.Xr dwarf 3 , +.Xr dwarf_attr 3 Modified: head/contrib/elftoolchain/libdwarf/dwarf_attrval.c ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf_attrval.c Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/dwarf_attrval.c Mon Dec 29 19:16:40 2014 (r276371) @@ -26,7 +26,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: dwarf_attrval.c 2072 2011-10-27 03:26:49Z jkoshy $"); +ELFTC_VCSID("$Id: dwarf_attrval.c 2977 2014-01-21 20:13:31Z kaiwang27 $"); int dwarf_attrval_flag(Dwarf_Die die, Dwarf_Half attr, Dwarf_Bool *valp, Dwarf_Error *err) Modified: head/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 Mon Dec 29 19:16:40 2014 (r276371) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: dwarf_attrval_signed.3 2072 2011-10-27 03:26:49Z jkoshy $ +.\" $Id: dwarf_attrval_signed.3 2980 2014-01-21 20:15:54Z kaiwang27 $ .\" .Dd January 18, 2014 .Os Modified: head/contrib/elftoolchain/libdwarf/dwarf_child.3 ============================================================================== --- head/contrib/elftoolchain/libdwarf/dwarf_child.3 Mon Dec 29 19:04:17 2014 (r276370) +++ head/contrib/elftoolchain/libdwarf/dwarf_child.3 Mon Dec 29 19:16:40 2014 (r276371) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2010 Kai Wang +.\" Copyright (c) 2010,2014 Kai Wang .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,15 +22,17 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $Id: dwarf_child.3 2122 2011-11-09 15:35:14Z jkoshy $ +.\" $Id: dwarf_child.3 3127 2014-12-21 19:09:19Z jkoshy $ .\" -.Dd November 9, 2011 +.Dd December 21, 2014 .Os .Dt DWARF_CHILD 3 .Sh NAME .Nm dwarf_child , +.Nm dwarf_offdie , +.Nm dwarf_offdie_b , .Nm dwarf_siblingof , -.Nm dwarf_offdie +.Nm dwarf_siblingof_b .Nd retrieve DWARF Debugging Information Entry descriptors .Sh LIBRARY .Lb libdwarf @@ -39,6 +41,21 @@ .Ft int .Fn dwarf_child "Dwarf_Die die" "Dwarf_Die *ret_die" "Dwarf_Error *err" .Ft int +.Fo dwarf_offdie +.Fa "Dwarf_Debug dbg" +.Fa "Dwarf_Off offset" +.Fa "Dwarf_Die *ret_die" +.Fa "Dwarf_Error *err" +.Fc *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 19:20:20 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AEB51121; Mon, 29 Dec 2014 19:20:20 +0000 (UTC) Received: from mail-ig0-x22e.google.com (mail-ig0-x22e.google.com [IPv6:2607:f8b0:4001:c05::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 74B741EA8; Mon, 29 Dec 2014 19:20:20 +0000 (UTC) Received: by mail-ig0-f174.google.com with SMTP id hn15so11646870igb.1; Mon, 29 Dec 2014 11:20:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=n3XcZyYHf4sA3A/VeLMozbFbXO0+R63/ynKkXttgKNg=; b=KpxU+jX2OSr644gPGiFL1IBRnM/k9ttzrmB1gXYaHHOAkn7UrEnr54zCtWd6V8wQu7 wegYgFVS3u0Uqcm9G27arpGcaDkH/wvNVZoQc6sDnrtpzF71TB/6AmaN0+AuJ2fBdLi7 eZq0P1zLqVL7AjPmORAbdOVThU0bSwAwLRUjuYW3nhaGK8lKz4WvI7x+0JBBPWoHXoyg 0agPySSuOwHgSCHIRdxfxEhoG7xgCppS1KAnduOjcwG2yhSiwFmHTcKT8j9swpikRisl SY39yAGOvS59Y/XS5kx58KVcc3xM/egooO9LnDJzUMOG1n34wjc9L925TX5tKFSMxdWn Gblg== X-Received: by 10.107.25.74 with SMTP id 71mr51828521ioz.70.1419880819763; Mon, 29 Dec 2014 11:20:19 -0800 (PST) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.0.85 with HTTP; Mon, 29 Dec 2014 11:19:59 -0800 (PST) In-Reply-To: References: <201412291902.sBTJ218x095737@svn.freebsd.org> From: Ed Maste Date: Mon, 29 Dec 2014 14:19:59 -0500 X-Google-Sender-Auth: Eke188Qv15IZOfzpe7lE2jq6EAA Message-ID: Subject: Re: svn commit: r276369 - head To: Garrett Cooper Content-Type: text/plain; charset=UTF-8 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 19:20:20 -0000 On 29 December 2014 at 14:07, Garrett Cooper wrote: > On Dec 29, 2014, at 11:02, Ed Maste wrote: > >> Author: emaste >> Date: Mon Dec 29 19:02:00 2014 >> New Revision: 276369 >> URL: https://svnweb.freebsd.org/changeset/base/276369 >> >> Log: >> Merge elftoolchain directory shuffling from elftoolchain update branch >> >> Modified: >> Directory Properties: >> head/ (props changed) > > Hi Ed, > Was merging just the mergeinfo intentional? I was not expecting any file content changes, so I suppose so. I might have expected Subversion to list the directory content replacements as with the corresponding change on the branch (r276164). From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 19:27:11 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5C3373FA; Mon, 29 Dec 2014 19:27:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 484F52F8A; Mon, 29 Dec 2014 19:27:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTJRBCL005954; Mon, 29 Dec 2014 19:27:11 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTJRBKc005953; Mon, 29 Dec 2014 19:27:11 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412291927.sBTJRBKc005953@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Dec 2014 19:27:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276372 - head/contrib/elftoolchain/libelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 19:27:11 -0000 Author: emaste Date: Mon Dec 29 19:27:10 2014 New Revision: 276372 URL: https://svnweb.freebsd.org/changeset/base/276372 Log: Restore r276252 mdoc fix It was accidentally reverted in the elftoolchain update (r276371). Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/libelf/elf.3 Modified: head/contrib/elftoolchain/libelf/elf.3 ============================================================================== --- head/contrib/elftoolchain/libelf/elf.3 Mon Dec 29 19:16:40 2014 (r276371) +++ head/contrib/elftoolchain/libelf/elf.3 Mon Dec 29 19:27:10 2014 (r276372) @@ -413,7 +413,6 @@ Section types in the range .Dv SHT_HIUSER ] are otherwise considered to be of type .Dv ELF_T_BYTE . -.TE .Ss Functional Grouping This section contains a brief overview of the available functionality in the ELF library. From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 19:38:13 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4E1B0660; Mon, 29 Dec 2014 19:38:13 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A47B3216; Mon, 29 Dec 2014 19:38:13 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTJcDsH010754; Mon, 29 Dec 2014 19:38:13 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTJcDVw010753; Mon, 29 Dec 2014 19:38:13 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412291938.sBTJcDVw010753@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Dec 2014 19:38:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276373 - head/contrib/elftoolchain/readelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 19:38:13 -0000 Author: emaste Date: Mon Dec 29 19:38:12 2014 New Revision: 276373 URL: https://svnweb.freebsd.org/changeset/base/276373 Log: Rename DT_FEATURE_1 to DT_FEATURE Track r270303: This provides a minor cleanup in elfdump; there are otherwise no consumers in the tree. Old SUN documentation can be found for either variant, but GNU binutils switched to DT_FEATURE around 2000. Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/readelf/readelf.c Modified: head/contrib/elftoolchain/readelf/readelf.c ============================================================================== --- head/contrib/elftoolchain/readelf/readelf.c Mon Dec 29 19:27:10 2014 (r276372) +++ head/contrib/elftoolchain/readelf/readelf.c Mon Dec 29 19:38:12 2014 (r276373) @@ -903,7 +903,7 @@ dt_type(unsigned int mach, unsigned int case DT_PLTPADSZ: return "PLTPADSZ"; case DT_MOVEENT: return "MOVEENT"; case DT_MOVESZ: return "MOVESZ"; - case DT_FEATURE_1: return "FEATURE_1"; + case DT_FEATURE: return "FEATURE"; case DT_POSFLAG_1: return "POSFLAG_1"; case DT_SYMINSZ: return "SYMINSZ"; case DT_SYMINENT: return "SYMINENT"; From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 20:23:43 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5D38953F; Mon, 29 Dec 2014 20:23:43 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49B6B3910; Mon, 29 Dec 2014 20:23:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTKNhGe033701; Mon, 29 Dec 2014 20:23:43 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTKNhvg033700; Mon, 29 Dec 2014 20:23:43 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412292023.sBTKNhvg033700@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Dec 2014 20:23:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276374 - head/contrib/elftoolchain/libelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 20:23:43 -0000 Author: emaste Date: Mon Dec 29 20:23:42 2014 New Revision: 276374 URL: https://svnweb.freebsd.org/changeset/base/276374 Log: libelf: Do not read past end of buffer Previously a corrupt ELF file could read beyond the end of e_rawfile. Upstream elftoolchain ticket 462. Found via the security/afl fuzzer. Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/libelf/elf_scn.c Modified: head/contrib/elftoolchain/libelf/elf_scn.c ============================================================================== --- head/contrib/elftoolchain/libelf/elf_scn.c Mon Dec 29 19:38:12 2014 (r276373) +++ head/contrib/elftoolchain/libelf/elf_scn.c Mon Dec 29 20:23:42 2014 (r276374) @@ -50,6 +50,7 @@ _libelf_load_section_headers(Elf *e, voi Elf64_Ehdr *eh64; int ec, swapbytes; unsigned char *src; + unsigned char *rawend; size_t fsz, i, shnum; int (*xlator)(unsigned char *_d, size_t _dsz, unsigned char *_s, size_t _c, int _swap); @@ -86,6 +87,7 @@ _libelf_load_section_headers(Elf *e, voi swapbytes = e->e_byteorder != LIBELF_PRIVATE(byteorder); src = e->e_rawfile + shoff; + rawend = e->e_rawfile + e->e_rawsize; /* * If the file is using extended numbering then section #0 @@ -102,6 +104,8 @@ _libelf_load_section_headers(Elf *e, voi } for (; i < shnum; i++, src += fsz) { + if (src + sizeof(scn->s_shdr) > rawend) + return (0); if ((scn = _libelf_allocate_scn(e, i)) == NULL) return (0); From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 20:30:03 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 895FE7D4; Mon, 29 Dec 2014 20:30:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 749DB3979; Mon, 29 Dec 2014 20:30:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTKU3oU034752; Mon, 29 Dec 2014 20:30:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTKU08M034663; Mon, 29 Dec 2014 20:30:00 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412292030.sBTKU08M034663@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 29 Dec 2014 20:30:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276375 - vendor/libcxxrt/dist X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 20:30:03 -0000 Author: dim Date: Mon Dec 29 20:29:59 2014 New Revision: 276375 URL: https://svnweb.freebsd.org/changeset/base/276375 Log: Import libcxxrt master 00bc29eb6513624824a6d7db2ebc768a4216a604. Interesting fixes: 76584a0 Reorganize code to use only 32bit atomic ops for 32bit platforms 30d2ae5 Implement __cxa_throw_bad_array_new_length Modified: vendor/libcxxrt/dist/CMakeLists.txt vendor/libcxxrt/dist/atomic.h vendor/libcxxrt/dist/auxhelper.cc vendor/libcxxrt/dist/cxxabi.h vendor/libcxxrt/dist/dwarf_eh.h vendor/libcxxrt/dist/dynamic_cast.cc vendor/libcxxrt/dist/exception.cc vendor/libcxxrt/dist/guard.cc vendor/libcxxrt/dist/stdexcept.cc vendor/libcxxrt/dist/stdexcept.h vendor/libcxxrt/dist/typeinfo.cc vendor/libcxxrt/dist/unwind-arm.h vendor/libcxxrt/dist/unwind.h Modified: vendor/libcxxrt/dist/CMakeLists.txt ============================================================================== --- vendor/libcxxrt/dist/CMakeLists.txt Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/CMakeLists.txt Mon Dec 29 20:29:59 2014 (r276375) @@ -14,6 +14,11 @@ set(CXXRT_SOURCES add_library(cxxrt-static STATIC ${CXXRT_SOURCES}) add_library(cxxrt-shared SHARED ${CXXRT_SOURCES}) +if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + target_link_libraries(cxxrt-shared dl) + target_link_libraries(cxxrt-static dl) +endif() + set_target_properties(cxxrt-static cxxrt-shared PROPERTIES OUTPUT_NAME "cxxrt" ) Modified: vendor/libcxxrt/dist/atomic.h ============================================================================== --- vendor/libcxxrt/dist/atomic.h Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/atomic.h Mon Dec 29 20:29:59 2014 (r276375) @@ -11,7 +11,7 @@ */ #if __has_builtin(__c11_atomic_exchange) #define ATOMIC_SWAP(addr, val)\ - __c11_atomic_exchange((_Atomic(__typeof__(val))*)addr, val, __ATOMIC_ACQ_REL) + __c11_atomic_exchange(reinterpret_cast<_Atomic(__typeof__(val))*>(addr), val, __ATOMIC_ACQ_REL) #elif __has_builtin(__sync_swap) #define ATOMIC_SWAP(addr, val)\ __sync_swap(addr, val) @@ -22,7 +22,7 @@ #if __has_builtin(__c11_atomic_load) #define ATOMIC_LOAD(addr)\ - __c11_atomic_load((_Atomic(__typeof__(*addr))*)addr, __ATOMIC_ACQUIRE) + __c11_atomic_load(reinterpret_cast<_Atomic(__typeof__(*addr))*>(addr), __ATOMIC_ACQUIRE) #else #define ATOMIC_LOAD(addr)\ (__sync_synchronize(), *addr) Modified: vendor/libcxxrt/dist/auxhelper.cc ============================================================================== --- vendor/libcxxrt/dist/auxhelper.cc Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/auxhelper.cc Mon Dec 29 20:29:59 2014 (r276375) @@ -75,3 +75,8 @@ extern "C" void __cxa_deleted_virtual() { abort(); } + +extern "C" void __cxa_throw_bad_array_new_length() +{ + throw std::bad_array_new_length(); +} Modified: vendor/libcxxrt/dist/cxxabi.h ============================================================================== --- vendor/libcxxrt/dist/cxxabi.h Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/cxxabi.h Mon Dec 29 20:29:59 2014 (r276375) @@ -22,6 +22,7 @@ #ifndef __CXXABI_H_ #define __CXXABI_H_ +#include #include #include "unwind.h" namespace std @@ -109,7 +110,7 @@ struct __cxa_exception * handler count reaches 0 (which it doesn't with the top bit set). */ int handlerCount; -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) /** * The ARM EH ABI requires the unwind library to keep track of exceptions * during cleanups. These support nesting, so we need to keep a list of Modified: vendor/libcxxrt/dist/dwarf_eh.h ============================================================================== --- vendor/libcxxrt/dist/dwarf_eh.h Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/dwarf_eh.h Mon Dec 29 20:29:59 2014 (r276375) @@ -83,7 +83,7 @@ enum dwarf_data_encoding */ static inline enum dwarf_data_encoding get_encoding(unsigned char x) { - return (enum dwarf_data_encoding)(x & 0xf); + return static_cast(x & 0xf); } /** @@ -115,7 +115,7 @@ enum dwarf_data_relative */ static inline enum dwarf_data_relative get_base(unsigned char x) { - return (enum dwarf_data_relative)(x & 0x70); + return static_cast(x & 0x70); } /** * Returns whether an encoding represents an indirect address. @@ -206,9 +206,9 @@ static int64_t read_sleb128(dw_eh_ptr_t if ((uleb >> (bits-1)) == 1) { // Sign extend by setting all bits in front of it to 1 - uleb |= ((int64_t)-1) << bits; + uleb |= static_cast(-1) << bits; } - return (int64_t)uleb; + return static_cast(uleb); } /** * Reads a value using the specified encoding from the address pointed to by @@ -224,7 +224,7 @@ static uint64_t read_value(char encoding // Read fixed-length types #define READ(dwarf, type) \ case dwarf:\ - v = (uint64_t)(*(type*)(*data));\ + v = static_cast(*reinterpret_cast(*data));\ *data += sizeof(type);\ break; READ(DW_EH_PE_udata2, uint16_t) @@ -263,16 +263,16 @@ static uint64_t resolve_indirect_value(_ switch (get_base(encoding)) { case DW_EH_PE_pcrel: - v += (uint64_t)start; + v += reinterpret_cast(start); break; case DW_EH_PE_textrel: - v += (uint64_t)_Unwind_GetTextRelBase(c); + v += static_cast(static_cast(_Unwind_GetTextRelBase(c))); break; case DW_EH_PE_datarel: - v += (uint64_t)_Unwind_GetDataRelBase(c); + v += static_cast(static_cast(_Unwind_GetDataRelBase(c))); break; case DW_EH_PE_funcrel: - v += (uint64_t)_Unwind_GetRegionStart(c); + v += static_cast(static_cast(_Unwind_GetRegionStart(c))); default: break; } @@ -282,7 +282,7 @@ static uint64_t resolve_indirect_value(_ // be a GCC extensions, so not properly documented... if (is_indirect(encoding)) { - v = (uint64_t)(uintptr_t)*(void**)v; + v = static_cast(reinterpret_cast(*reinterpret_cast(v))); } return v; } @@ -342,14 +342,14 @@ static inline struct dwarf_eh_lsda parse { struct dwarf_eh_lsda lsda; - lsda.region_start = (dw_eh_ptr_t)(uintptr_t)_Unwind_GetRegionStart(context); + lsda.region_start = reinterpret_cast(_Unwind_GetRegionStart(context)); // If the landing pads are relative to anything other than the start of // this region, find out where. This is @LPStart in the spec, although the // encoding that GCC uses does not quite match the spec. - uint64_t v = (uint64_t)(uintptr_t)lsda.region_start; + uint64_t v = static_cast(reinterpret_cast(lsda.region_start)); read_value_with_encoding(context, &data, &v); - lsda.landing_pads = (dw_eh_ptr_t)(uintptr_t)v; + lsda.landing_pads = reinterpret_cast(static_cast(v)); // If there is a type table, find out where it is. This is @TTBase in the // spec. Note: we find whether there is a type table pointer by checking @@ -365,18 +365,18 @@ static inline struct dwarf_eh_lsda parse lsda.type_table = type_table; //lsda.type_table = (uintptr_t*)(data + v); } -#if __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) lsda.type_table_encoding = (DW_EH_PE_pcrel | DW_EH_PE_indirect); #endif - lsda.callsite_encoding = (enum dwarf_data_encoding)(*(data++)); + lsda.callsite_encoding = static_cast(*(data++)); // Action table is immediately after the call site table lsda.action_table = data; - uintptr_t callsite_size = (uintptr_t)read_uleb128(&data); + uintptr_t callsite_size = static_cast(read_uleb128(&data)); lsda.action_table = data + callsite_size; // Call site table is immediately after the header - lsda.call_site_table = (dw_eh_ptr_t)data; + lsda.call_site_table = static_cast(data); return lsda; @@ -413,7 +413,7 @@ static bool dwarf_eh_find_callsite(struc result->landing_pad = 0; // The current instruction pointer offset within the region uint64_t ip = _Unwind_GetIP(context) - _Unwind_GetRegionStart(context); - unsigned char *callsite_table = (unsigned char*)lsda->call_site_table; + unsigned char *callsite_table = static_cast(lsda->call_site_table); while (callsite_table <= lsda->action_table) { @@ -463,17 +463,17 @@ static bool dwarf_eh_find_callsite(struc /// Defines an exception class from 8 bytes (endian independent) #define EXCEPTION_CLASS(a,b,c,d,e,f,g,h) \ - (((uint64_t)a << 56) +\ - ((uint64_t)b << 48) +\ - ((uint64_t)c << 40) +\ - ((uint64_t)d << 32) +\ - ((uint64_t)e << 24) +\ - ((uint64_t)f << 16) +\ - ((uint64_t)g << 8) +\ - ((uint64_t)h)) + ((static_cast(a) << 56) +\ + (static_cast(b) << 48) +\ + (static_cast(c) << 40) +\ + (static_cast(d) << 32) +\ + (static_cast(e) << 24) +\ + (static_cast(f) << 16) +\ + (static_cast(g) << 8) +\ + (static_cast(h))) #define GENERIC_EXCEPTION_CLASS(e,f,g,h) \ - ((uint32_t)e << 24) +\ - ((uint32_t)f << 16) +\ - ((uint32_t)g << 8) +\ - ((uint32_t)h) + (static_cast(e) << 24) +\ + (static_cast(f) << 16) +\ + (static_cast(g) << 8) +\ + (static_cast(h)) Modified: vendor/libcxxrt/dist/dynamic_cast.cc ============================================================================== --- vendor/libcxxrt/dist/dynamic_cast.cc Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/dynamic_cast.cc Mon Dec 29 20:29:59 2014 (r276375) @@ -44,7 +44,7 @@ struct vtable_header * Simple macro that does pointer arithmetic in bytes but returns a value of * the same type as the original. */ -#define ADD_TO_PTR(x, off) (__typeof__(x))(((char*)x) + off) +#define ADD_TO_PTR(x, off) reinterpret_cast<__typeof__(x)>(reinterpret_cast(x) + off) bool std::type_info::__do_catch(std::type_info const *ex_type, void **exception_object, @@ -166,7 +166,7 @@ bool __vmi_class_type_info::__do_upcast( if (info->isVirtual()) { // Object's vtable - ptrdiff_t *off = *(ptrdiff_t**)obj; + ptrdiff_t *off = *static_cast(obj); // Offset location in vtable off = ADD_TO_PTR(off, offset); offset = *off; @@ -202,9 +202,9 @@ extern "C" void* __dynamic_cast(const vo const __class_type_info *dst, ptrdiff_t src2dst_offset) { - char *vtable_location = *(char**)sub; + const char *vtable_location = *static_cast(sub); const vtable_header *header = - (const vtable_header*)(vtable_location - sizeof(vtable_header)); - void *leaf = ADD_TO_PTR((void*)sub, header->leaf_offset); + reinterpret_cast(vtable_location - sizeof(vtable_header)); + void *leaf = ADD_TO_PTR(const_cast(sub), header->leaf_offset); return header->type->cast_to(leaf, dst); } Modified: vendor/libcxxrt/dist/exception.cc ============================================================================== --- vendor/libcxxrt/dist/exception.cc Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/exception.cc Mon Dec 29 20:29:59 2014 (r276375) @@ -71,11 +71,11 @@ static void saveLandingPad(struct _Unwin int selector, dw_eh_ptr_t landingPad) { -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) // On ARM, we store the saved exception in the generic part of the structure ucb->barrier_cache.sp = _Unwind_GetGR(context, 13); - ucb->barrier_cache.bitpattern[1] = (uint32_t)selector; - ucb->barrier_cache.bitpattern[3] = (uint32_t)landingPad; + ucb->barrier_cache.bitpattern[1] = static_cast(selector); + ucb->barrier_cache.bitpattern[3] = reinterpret_cast(landingPad); #endif // Cache the results for the phase 2 unwind, if we found a handler // and this is not a foreign exception. @@ -95,15 +95,15 @@ static int loadLandingPad(struct _Unwind unsigned long *selector, dw_eh_ptr_t *landingPad) { -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) *selector = ucb->barrier_cache.bitpattern[1]; - *landingPad = (dw_eh_ptr_t)ucb->barrier_cache.bitpattern[3]; + *landingPad = reinterpret_cast(ucb->barrier_cache.bitpattern[3]); return 1; #else if (ex) { *selector = ex->handlerSwitchValue; - *landingPad = (dw_eh_ptr_t)ex->catchTemp; + *landingPad = reinterpret_cast(ex->catchTemp); return 0; } return 0; @@ -113,7 +113,7 @@ static int loadLandingPad(struct _Unwind static inline _Unwind_Reason_Code continueUnwinding(struct _Unwind_Exception *ex, struct _Unwind_Context *context) { -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) if (__gnu_unwind_frame(ex, context) != _URC_OK) { return _URC_FAILURE; } #endif return _URC_CONTINUE_UNWIND; @@ -204,7 +204,7 @@ struct __cxa_dependent_exception terminate_handler terminateHandler; __cxa_exception *nextException; int handlerCount; -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) _Unwind_Exception *nextCleanup; int cleanupCount; #endif @@ -267,13 +267,13 @@ static bool isDependentException(uint64_ static __cxa_exception *exceptionFromPointer(void *ex) { - return (__cxa_exception*)((char*)ex - + return reinterpret_cast<__cxa_exception*>(static_cast(ex) - offsetof(struct __cxa_exception, unwindHeader)); } static __cxa_exception *realExceptionFromException(__cxa_exception *ex) { if (!isDependentException(ex->unwindHeader.exception_class)) { return ex; } - return ((__cxa_exception*)(((__cxa_dependent_exception*)ex)->primaryException))-1; + return reinterpret_cast<__cxa_exception*>((reinterpret_cast<__cxa_dependent_exception*>(ex))->primaryException)-1; } @@ -304,13 +304,13 @@ static pthread_key_t eh_key; static void exception_cleanup(_Unwind_Reason_Code reason, struct _Unwind_Exception *ex) { - __cxa_free_exception((void*)ex); + __cxa_free_exception(static_cast(ex)); } static void dependent_exception_cleanup(_Unwind_Reason_Code reason, struct _Unwind_Exception *ex) { - __cxa_free_dependent_exception((void*)ex); + __cxa_free_dependent_exception(static_cast(ex)); } /** @@ -333,13 +333,13 @@ static void free_exception_list(__cxa_ex */ static void thread_cleanup(void* thread_info) { - __cxa_thread_info *info = (__cxa_thread_info*)thread_info; + __cxa_thread_info *info = static_cast<__cxa_thread_info*>(thread_info); if (info->globals.caughtExceptions) { // If this is a foreign exception, ask it to clean itself up. if (info->foreign_exception_state != __cxa_thread_info::none) { - _Unwind_Exception *e = (_Unwind_Exception*)info->globals.caughtExceptions; + _Unwind_Exception *e = reinterpret_cast<_Unwind_Exception*>(info->globals.caughtExceptions); e->exception_cleanup(_URC_FOREIGN_EXCEPTION_CAUGHT, e); } else @@ -379,8 +379,8 @@ static void init_key(void) return; } pthread_key_create(&eh_key, thread_cleanup); - pthread_setspecific(eh_key, (void*)0x42); - fakeTLS = (pthread_getspecific(eh_key) != (void*)0x42); + pthread_setspecific(eh_key, reinterpret_cast(0x42)); + fakeTLS = (pthread_getspecific(eh_key) != reinterpret_cast(0x42)); pthread_setspecific(eh_key, 0); } @@ -394,10 +394,10 @@ static __cxa_thread_info *thread_info() fakeTLS = true; } if (fakeTLS) { return &singleThreadInfo; } - __cxa_thread_info *info = (__cxa_thread_info*)pthread_getspecific(eh_key); + __cxa_thread_info *info = static_cast<__cxa_thread_info*>(pthread_getspecific(eh_key)); if (0 == info) { - info = (__cxa_thread_info*)calloc(1, sizeof(__cxa_thread_info)); + info = static_cast<__cxa_thread_info*>(calloc(1, sizeof(__cxa_thread_info))); pthread_setspecific(eh_key, info); } return info; @@ -409,7 +409,7 @@ static __cxa_thread_info *thread_info() static __cxa_thread_info *thread_info_fast() { if (fakeTLS) { return &singleThreadInfo; } - return (__cxa_thread_info*)pthread_getspecific(eh_key); + return static_cast<__cxa_thread_info*>(pthread_getspecific(eh_key)); } /** * ABI function returning the __cxa_eh_globals structure. @@ -472,7 +472,7 @@ static char *emergency_malloc(size_t siz if (0 != m) { pthread_mutex_unlock(&emergency_malloc_lock); - return (char*)m; + return static_cast(m); } for (int i=0 ; i<16 ; i++) { @@ -510,7 +510,7 @@ static void emergency_malloc_free(char * // Find the buffer corresponding to this pointer. for (int i=0 ; i<16 ; i++) { - if (ptr == (void*)(emergency_buffer + (1024 * i))) + if (ptr == static_cast(emergency_buffer + (1024 * i))) { buffer = i; break; @@ -521,7 +521,7 @@ static void emergency_malloc_free(char * // emergency_malloc() is expected to return 0-initialized data. We don't // zero the buffer when allocating it, because the static buffers will // begin life containing 0 values. - memset((void*)ptr, 0, 1024); + memset(ptr, 0, 1024); // Signal the condition variable to wake up any threads that are blocking // waiting for some space in the emergency buffer pthread_mutex_lock(&emergency_malloc_lock); @@ -535,7 +535,7 @@ static void emergency_malloc_free(char * static char *alloc_or_die(size_t size) { - char *buffer = (char*)calloc(1, size); + char *buffer = static_cast(calloc(1, size)); // If calloc() doesn't want to give us any memory, try using an emergency // buffer. @@ -597,7 +597,7 @@ extern "C" void *__cxa_allocate_dependen */ extern "C" void __cxa_free_exception(void *thrown_exception) { - __cxa_exception *ex = ((__cxa_exception*)thrown_exception) - 1; + __cxa_exception *ex = reinterpret_cast<__cxa_exception*>(thrown_exception) - 1; // Free the object that was thrown, calling its destructor if (0 != ex->exceptionDestructor) { @@ -612,7 +612,7 @@ extern "C" void __cxa_free_exception(voi } } - free_exception((char*)ex); + free_exception(reinterpret_cast(ex)); } static void releaseException(__cxa_exception *exception) @@ -633,13 +633,13 @@ static void releaseException(__cxa_excep void __cxa_free_dependent_exception(void *thrown_exception) { - __cxa_dependent_exception *ex = ((__cxa_dependent_exception*)thrown_exception) - 1; + __cxa_dependent_exception *ex = reinterpret_cast<__cxa_dependent_exception*>(thrown_exception) - 1; assert(isDependentException(ex->unwindHeader.exception_class)); if (ex->primaryException) { - releaseException(realExceptionFromException((__cxa_exception*)ex)); + releaseException(realExceptionFromException(reinterpret_cast<__cxa_exception*>(ex))); } - free_exception((char*)ex); + free_exception(reinterpret_cast(ex)); } /** @@ -654,8 +654,8 @@ static _Unwind_Reason_Code trace(struct { Dl_info myinfo; int mylookup = - dladdr((void*)(uintptr_t)__cxa_current_exception_type, &myinfo); - void *ip = (void*)_Unwind_GetIP(context); + dladdr(reinterpret_cast(__cxa_current_exception_type), &myinfo); + void *ip = reinterpret_cast(_Unwind_GetIP(context)); Dl_info info; if (dladdr(ip, &info) != 0) { @@ -673,6 +673,11 @@ static _Unwind_Reason_Code trace(struct * If the failure happened by falling off the end of the stack without finding * a handler, prints a back trace before aborting. */ +#if __GNUC__ > 3 && __GNUC_MINOR__ > 2 +extern "C" void *__cxa_begin_catch(void *e) throw(); +#else +extern "C" void *__cxa_begin_catch(void *e); +#endif static void report_failure(_Unwind_Reason_Code err, __cxa_exception *thrown_exception) { switch (err) @@ -681,14 +686,16 @@ static void report_failure(_Unwind_Reaso case _URC_FATAL_PHASE1_ERROR: fprintf(stderr, "Fatal error during phase 1 unwinding\n"); break; -#ifndef __arm__ +#if !defined(__arm__) || defined(__ARM_DWARF_EH__) case _URC_FATAL_PHASE2_ERROR: fprintf(stderr, "Fatal error during phase 2 unwinding\n"); break; #endif case _URC_END_OF_STACK: + __cxa_begin_catch (&(thrown_exception->unwindHeader)); + std::terminate(); fprintf(stderr, "Terminating due to uncaught exception %p", - (void*)thrown_exception); + static_cast(thrown_exception)); thrown_exception = realExceptionFromException(thrown_exception); static const __class_type_info *e_ti = static_cast(&typeid(std::exception)); @@ -697,8 +704,8 @@ static void report_failure(_Unwind_Reaso if (throw_ti) { std::exception *e = - (std::exception*)e_ti->cast_to((void*)(thrown_exception+1), - throw_ti); + static_cast(e_ti->cast_to(static_cast(thrown_exception+1), + throw_ti)); if (e) { fprintf(stderr, " '%s'", e->what()); @@ -706,16 +713,19 @@ static void report_failure(_Unwind_Reaso } size_t bufferSize = 128; - char *demangled = (char*)malloc(bufferSize); + char *demangled = static_cast(malloc(bufferSize)); const char *mangled = thrown_exception->exceptionType->name(); int status; demangled = __cxa_demangle(mangled, demangled, &bufferSize, &status); fprintf(stderr, " of type %s\n", - status == 0 ? (const char*)demangled : mangled); + status == 0 ? demangled : mangled); if (status == 0) { free(demangled); } // Print a back trace if no handler is found. // TODO: Make this optional _Unwind_Backtrace(trace, 0); + + // Just abort. No need to call std::terminate for the second time + abort(); break; } std::terminate(); @@ -753,7 +763,7 @@ extern "C" void __cxa_throw(void *thrown std::type_info *tinfo, void(*dest)(void*)) { - __cxa_exception *ex = ((__cxa_exception*)thrown_exception) - 1; + __cxa_exception *ex = reinterpret_cast<__cxa_exception*>(thrown_exception) - 1; ex->referenceCount = 1; ex->exceptionType = tinfo; @@ -771,7 +781,7 @@ extern "C" void __cxa_rethrow_primary_ex if (NULL == thrown_exception) { return; } __cxa_exception *original = exceptionFromPointer(thrown_exception); - __cxa_dependent_exception *ex = ((__cxa_dependent_exception*)__cxa_allocate_dependent_exception())-1; + __cxa_dependent_exception *ex = reinterpret_cast<__cxa_dependent_exception*>(__cxa_allocate_dependent_exception())-1; ex->primaryException = thrown_exception; __cxa_increment_exception_refcount(thrown_exception); @@ -780,7 +790,7 @@ extern "C" void __cxa_rethrow_primary_ex ex->unwindHeader.exception_class = dependent_exception_class; ex->unwindHeader.exception_cleanup = dependent_exception_cleanup; - throw_exception((__cxa_exception*)ex); + throw_exception(reinterpret_cast<__cxa_exception*>(ex)); } extern "C" void *__cxa_current_primary_exception(void) @@ -797,14 +807,14 @@ extern "C" void *__cxa_current_primary_e extern "C" void __cxa_increment_exception_refcount(void* thrown_exception) { if (NULL == thrown_exception) { return; } - __cxa_exception *ex = ((__cxa_exception*)thrown_exception) - 1; + __cxa_exception *ex = static_cast<__cxa_exception*>(thrown_exception) - 1; if (isDependentException(ex->unwindHeader.exception_class)) { return; } __sync_fetch_and_add(&ex->referenceCount, 1); } extern "C" void __cxa_decrement_exception_refcount(void* thrown_exception) { if (NULL == thrown_exception) { return; } - __cxa_exception *ex = ((__cxa_exception*)thrown_exception) - 1; + __cxa_exception *ex = static_cast<__cxa_exception*>(thrown_exception) - 1; releaseException(ex); } @@ -836,7 +846,7 @@ extern "C" void __cxa_rethrow() if (ti->foreign_exception_state != __cxa_thread_info::none) { ti->foreign_exception_state = __cxa_thread_info::rethrown; - _Unwind_Exception *e = (_Unwind_Exception*)ex; + _Unwind_Exception *e = reinterpret_cast<_Unwind_Exception*>(ex); _Unwind_Reason_Code err = _Unwind_Resume_or_Rethrow(e); report_failure(err, ex); return; @@ -879,8 +889,8 @@ static std::type_info *get_type_info_ent if (offset == 0) { return 0; } // ...so we need to resolve it - return (std::type_info*)resolve_indirect_value(context, - lsda->type_table_encoding, offset, start); + return reinterpret_cast(resolve_indirect_value(context, + lsda->type_table_encoding, offset, start)); } @@ -894,13 +904,13 @@ static bool check_type_signature(__cxa_e const std::type_info *type, void *&adjustedPtr) { - void *exception_ptr = (void*)(ex+1); + void *exception_ptr = static_cast(ex+1); const std::type_info *ex_type = ex ? ex->exceptionType : 0; bool is_ptr = ex ? ex_type->__is_pointer_p() : false; if (is_ptr) { - exception_ptr = *(void**)exception_ptr; + exception_ptr = *static_cast(exception_ptr); } // Always match a catchall, even with a foreign exception // @@ -972,7 +982,7 @@ static handler_type check_action_record( { bool matched = false; *selector = filter; -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) filter++; std::type_info *handler_type = get_type_info_entry(context, lsda, filter--); while (handler_type) @@ -985,7 +995,7 @@ static handler_type check_action_record( handler_type = get_type_info_entry(context, lsda, filter--); } #else - unsigned char *type_index = ((unsigned char*)lsda->type_table - filter - 1); + unsigned char *type_index = reinterpret_cast(lsda->type_table) - filter - 1; while (*type_index) { std::type_info *handler_type = get_type_info_entry(context, lsda, *(type_index++)); @@ -1017,7 +1027,7 @@ static handler_type check_action_record( static void pushCleanupException(_Unwind_Exception *exceptionObject, __cxa_exception *ex) { -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) __cxa_thread_info *info = thread_info_fast(); if (ex) { @@ -1062,8 +1072,13 @@ BEGIN_PERSONALITY_FUNCTION(__gxx_persona realEx = realExceptionFromException(ex); } +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) + unsigned char *lsda_addr = + static_cast(_Unwind_GetLanguageSpecificData(context)); +#else unsigned char *lsda_addr = - (unsigned char*)_Unwind_GetLanguageSpecificData(context); + reinterpret_cast(static_cast(_Unwind_GetLanguageSpecificData(context))); +#endif // No LSDA implies no landing pads - try the next frame if (0 == lsda_addr) { return continueUnwinding(exceptionObject, context); } @@ -1112,8 +1127,8 @@ BEGIN_PERSONALITY_FUNCTION(__gxx_persona if (ex) { saveLandingPad(context, exceptionObject, ex, selector, action.landing_pad); - ex->languageSpecificData = (const char*)lsda_addr; - ex->actionRecord = (const char*)action.action_record; + ex->languageSpecificData = reinterpret_cast(lsda_addr); + ex->actionRecord = reinterpret_cast(action.action_record); // ex->adjustedPtr is set when finding the action record. } return _URC_HANDLER_FOUND; @@ -1159,9 +1174,9 @@ BEGIN_PERSONALITY_FUNCTION(__gxx_persona } - _Unwind_SetIP(context, (unsigned long)action.landing_pad); + _Unwind_SetIP(context, reinterpret_cast(action.landing_pad)); _Unwind_SetGR(context, __builtin_eh_return_data_regno(0), - (unsigned long)exceptionObject); + reinterpret_cast(exceptionObject)); _Unwind_SetGR(context, __builtin_eh_return_data_regno(1), selector); return _URC_INSTALL_CONTEXT; @@ -1185,7 +1200,7 @@ extern "C" void *__cxa_begin_catch(void __cxa_thread_info *ti = thread_info(); __cxa_eh_globals *globals = &ti->globals; globals->uncaughtExceptions--; - _Unwind_Exception *exceptionObject = (_Unwind_Exception*)e; + _Unwind_Exception *exceptionObject = static_cast<_Unwind_Exception*>(e); if (isCXXException(exceptionObject->exception_class)) { @@ -1239,12 +1254,12 @@ extern "C" void *__cxa_begin_catch(void { std::terminate(); } - globals->caughtExceptions = (__cxa_exception*)exceptionObject; + globals->caughtExceptions = reinterpret_cast<__cxa_exception*>(exceptionObject); ti->foreign_exception_state = __cxa_thread_info::caught; } // exceptionObject is the pointer to the _Unwind_Exception within the // __cxa_exception. The throw object is after this - return ((char*)exceptionObject + sizeof(_Unwind_Exception)); + return (reinterpret_cast(exceptionObject) + sizeof(_Unwind_Exception)); } @@ -1268,7 +1283,7 @@ extern "C" void __cxa_end_catch() globals->caughtExceptions = 0; if (ti->foreign_exception_state != __cxa_thread_info::rethrown) { - _Unwind_Exception *e = (_Unwind_Exception*)ti->globals.caughtExceptions; + _Unwind_Exception *e = reinterpret_cast<_Unwind_Exception*>(ti->globals.caughtExceptions); e->exception_cleanup(_URC_FOREIGN_EXCEPTION_CAUGHT, e); } ti->foreign_exception_state = __cxa_thread_info::none; @@ -1330,7 +1345,7 @@ extern "C" std::type_info *__cxa_current */ extern "C" void __cxa_call_unexpected(void*exception) { - _Unwind_Exception *exceptionObject = (_Unwind_Exception*)exception; + _Unwind_Exception *exceptionObject = static_cast<_Unwind_Exception*>(exception); if (exceptionObject->exception_class == exception_class) { __cxa_exception *ex = exceptionFromPointer(exceptionObject); @@ -1481,7 +1496,7 @@ namespace std return ATOMIC_LOAD(&terminateHandler); } } -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) extern "C" _Unwind_Exception *__cxa_get_cleanup(void) { __cxa_thread_info *info = thread_info_fast(); Modified: vendor/libcxxrt/dist/guard.cc ============================================================================== --- vendor/libcxxrt/dist/guard.cc Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/guard.cc Mon Dec 29 20:29:59 2014 (r276375) @@ -70,18 +70,45 @@ #ifdef __arm__ // ARM ABI - 32-bit guards. typedef uint32_t guard_t; -static const uint32_t LOCKED = ((guard_t)1) << 31; +typedef uint32_t guard_lock_t; +static const uint32_t LOCKED = static_cast(1) << 31; static const uint32_t INITIALISED = 1; -#else +#define LOCK_PART(guard) (guard) +#define INIT_PART(guard) (guard) +#elif defined(_LP64) typedef uint64_t guard_t; +typedef uint64_t guard_lock_t; # if defined(__LITTLE_ENDIAN__) -static const guard_t LOCKED = ((guard_t)1) << 63; +static const guard_t LOCKED = static_cast(1) << 63; static const guard_t INITIALISED = 1; # else static const guard_t LOCKED = 1; -static const guard_t INITIALISED = ((guard_t)1) << 56; +static const guard_t INITIALISED = static_cast(1) << 56; +# endif +#define LOCK_PART(guard) (guard) +#define INIT_PART(guard) (guard) +#else +typedef uint32_t guard_lock_t; +# if defined(__LITTLE_ENDIAN__) +typedef struct { + uint32_t init_half; + uint32_t lock_half; +} guard_t; +static const uint32_t LOCKED = static_cast(1) << 31; +static const uint32_t INITIALISED = 1; +# else +typedef struct { + uint32_t init_half; + uint32_t lock_half; +} guard_t; +static_assert(sizeof(guard_t) == sizeof(uint64_t), ""); +static const uint32_t LOCKED = 1; +static const uint32_t INITIALISED = static_cast(1) << 24; # endif +#define LOCK_PART(guard) (&(guard)->lock_half) +#define INIT_PART(guard) (&(guard)->init_half) #endif +static const guard_lock_t INITIAL = 0; /** * Acquires a lock on a guard, returning 0 if the object has already been @@ -90,42 +117,49 @@ static const guard_t INITIALISED = ((gua */ extern "C" int __cxa_guard_acquire(volatile guard_t *guard_object) { + guard_lock_t old; // Not an atomic read, doesn't establish a happens-before relationship, but // if one is already established and we end up seeing an initialised state // then it's a fast path, otherwise we'll do something more expensive than // this test anyway... - if ((INITIALISED == *guard_object)) { return 0; } + if (INITIALISED == *INIT_PART(guard_object)) + return 0; // Spin trying to do the initialisation - while (1) + for (;;) { // Loop trying to move the value of the guard from 0 (not // locked, not initialised) to the locked-uninitialised // position. - switch (__sync_val_compare_and_swap(guard_object, 0, LOCKED)) - { - // If the old value was 0, we succeeded, so continue - // initialising - case 0: + old = __sync_val_compare_and_swap(LOCK_PART(guard_object), + INITIAL, LOCKED); + if (old == INITIAL) { + // Lock obtained. If lock and init bit are + // in separate words, check for init race. + if (INIT_PART(guard_object) == LOCK_PART(guard_object)) return 1; - // If this was already initialised, return and let the caller skip - // initialising it again. - case INITIALISED: - return 0; - // If it is locked by another thread, relinquish the CPU and try - // again later. - case LOCKED: - case LOCKED | INITIALISED: - sched_yield(); - break; - // If it is some other value, then something has gone badly wrong. - // Give up. - default: - fprintf(stderr, "Invalid state detected attempting to lock static initialiser.\n"); - abort(); + if (INITIALISED != *INIT_PART(guard_object)) + return 1; + + // No need for a memory barrier here, + // see first comment. + *LOCK_PART(guard_object) = INITIAL; + return 0; } + // If lock and init bit are in the same word, check again + // if we are done. + if (INIT_PART(guard_object) == LOCK_PART(guard_object) && + old == INITIALISED) + return 0; + + assert(old == LOCKED); + // Another thread holds the lock. + // If lock and init bit are in different words, check + // if we are done before yielding and looping. + if (INIT_PART(guard_object) != LOCK_PART(guard_object) && + INITIALISED == *INIT_PART(guard_object)) + return 0; + sched_yield(); } - //__builtin_unreachable(); - return 0; } /** @@ -135,7 +169,8 @@ extern "C" int __cxa_guard_acquire(volat extern "C" void __cxa_guard_abort(volatile guard_t *guard_object) { __attribute__((unused)) - bool reset = __sync_bool_compare_and_swap(guard_object, LOCKED, 0); + bool reset = __sync_bool_compare_and_swap(LOCK_PART(guard_object), + LOCKED, INITIAL); assert(reset); } /** @@ -144,9 +179,15 @@ extern "C" void __cxa_guard_abort(volati */ extern "C" void __cxa_guard_release(volatile guard_t *guard_object) { + guard_lock_t old; + if (INIT_PART(guard_object) == LOCK_PART(guard_object)) + old = LOCKED; + else + old = INITIAL; __attribute__((unused)) - bool reset = __sync_bool_compare_and_swap(guard_object, LOCKED, INITIALISED); + bool reset = __sync_bool_compare_and_swap(INIT_PART(guard_object), + old, INITIALISED); assert(reset); + if (INIT_PART(guard_object) != LOCK_PART(guard_object)) + *LOCK_PART(guard_object) = INITIAL; } - - Modified: vendor/libcxxrt/dist/stdexcept.cc ============================================================================== --- vendor/libcxxrt/dist/stdexcept.cc Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/stdexcept.cc Mon Dec 29 20:29:59 2014 (r276375) @@ -82,5 +82,18 @@ const char* bad_typeid::what() const thr return "std::bad_typeid"; } +bad_array_new_length::bad_array_new_length() throw() {} +bad_array_new_length::~bad_array_new_length() {} +bad_array_new_length::bad_array_new_length(const bad_array_new_length&) throw() {} +bad_array_new_length& bad_array_new_length::operator=(const bad_array_new_length&) throw() +{ + return *this; +} + +const char* bad_array_new_length::what() const throw() +{ + return "std::bad_array_new_length"; +} + } // namespace std Modified: vendor/libcxxrt/dist/stdexcept.h ============================================================================== --- vendor/libcxxrt/dist/stdexcept.h Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/stdexcept.h Mon Dec 29 20:29:59 2014 (r276375) @@ -81,6 +81,15 @@ namespace std virtual const char* what() const throw(); }; + class bad_array_new_length: public bad_alloc + { + public: + bad_array_new_length() throw(); + bad_array_new_length(const bad_array_new_length&) throw(); + bad_array_new_length& operator=(const bad_array_new_length&) throw(); + virtual ~bad_array_new_length(); + virtual const char *what() const throw(); + }; } // namespace std Modified: vendor/libcxxrt/dist/typeinfo.cc ============================================================================== --- vendor/libcxxrt/dist/typeinfo.cc Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/typeinfo.cc Mon Dec 29 20:29:59 2014 (r276375) @@ -96,7 +96,7 @@ extern "C" char* __cxa_demangle(const ch } if (*n < len+1) { - buf = (char*)realloc(buf, len+1); + buf = static_cast(realloc(buf, len+1)); } if (0 != buf) { Modified: vendor/libcxxrt/dist/unwind-arm.h ============================================================================== --- vendor/libcxxrt/dist/unwind-arm.h Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/unwind-arm.h Mon Dec 29 20:29:59 2014 (r276375) @@ -218,6 +218,6 @@ _Unwind_Reason_Code name(_Unwind_State s break;\ }\ }\ - _Unwind_SetGR (context, 12, (unsigned long)exceptionObject);\ + _Unwind_SetGR (context, 12, reinterpret_cast(exceptionObject));\ #define CALL_PERSONALITY_FUNCTION(name) name(state,exceptionObject,context) Modified: vendor/libcxxrt/dist/unwind.h ============================================================================== --- vendor/libcxxrt/dist/unwind.h Mon Dec 29 20:23:42 2014 (r276374) +++ vendor/libcxxrt/dist/unwind.h Mon Dec 29 20:29:59 2014 (r276375) @@ -27,7 +27,7 @@ extern "C" { #endif -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) #include "unwind-arm.h" #else #include "unwind-itanium.h" From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 20:31:28 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 00DA4901; Mon, 29 Dec 2014 20:31:27 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C718C3989; Mon, 29 Dec 2014 20:31:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTKVRuE037915; Mon, 29 Dec 2014 20:31:27 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTKVR5R037914; Mon, 29 Dec 2014 20:31:27 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412292031.sBTKVR5R037914@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 29 Dec 2014 20:31:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276376 - vendor/libcxxrt/2014-12-06-00bc29eb6513624824a6d7db2ebc768a4216a604 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 20:31:28 -0000 Author: dim Date: Mon Dec 29 20:31:26 2014 New Revision: 276376 URL: https://svnweb.freebsd.org/changeset/base/276376 Log: Tag libcxxrt master 00bc29eb6513624824a6d7db2ebc768a4216a604. Added: vendor/libcxxrt/2014-12-06-00bc29eb6513624824a6d7db2ebc768a4216a604/ - copied from r276375, vendor/libcxxrt/dist/ From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 20:33:36 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 519D1A7A; Mon, 29 Dec 2014 20:33:36 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31CD064BA9; Mon, 29 Dec 2014 20:33:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTKXaHA038691; Mon, 29 Dec 2014 20:33:36 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTKXZ6p038689; Mon, 29 Dec 2014 20:33:35 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201412292033.sBTKXZ6p038689@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Mon, 29 Dec 2014 20:33:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276377 - head/sys/i386/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 20:33:36 -0000 Author: marius Date: Mon Dec 29 20:33:34 2014 New Revision: 276377 URL: https://svnweb.freebsd.org/changeset/base/276377 Log: - No longer exclude malo(4) and mwl(4), they have been fixed in r275870 and r275871 respectively to build with PAE enabled. - For the PAE kernel configuration file, no longer exclude devices that are known to be 64-bit DMA clean from amd64. MFC after: 3 days Modified: head/sys/i386/conf/PAE head/sys/i386/conf/XEN Modified: head/sys/i386/conf/PAE ============================================================================== --- head/sys/i386/conf/PAE Mon Dec 29 20:31:26 2014 (r276376) +++ head/sys/i386/conf/PAE Mon Dec 29 20:33:34 2014 (r276377) @@ -10,73 +10,14 @@ ident PAE-GENERIC # To make a PAE kernel, the next option is needed options PAE # Physical Address Extensions Kernel -# The following modules don't build with PAE enabled. -makeoptions WITHOUT_MODULES="ctl dpt hptmv ida malo mwl" - -# What follows is a list of drivers that are normally in GENERIC, but either -# don't work or are untested with PAE. Be very careful before enabling any -# of these drivers. Drivers which use DMA and don't handle 64 bit physical -# address properly may cause data corruption when used in a machine with more -# than 4 gigabytes of memory. - -nodevice ahb -nodevice sym -nodevice trm - -nodevice adv -nodevice adw -nodevice aha -nodevice aic -nodevice bt - -nodevice ncv -nodevice nsp -nodevice stg - -nodevice asr +# The following drivers don't build with PAE enabled. +makeoptions WITHOUT_MODULES="ctl dpt hptmv ida" nodevice dpt -nodevice mly nodevice hptmv -nodevice hptnr -nodevice hptrr - nodevice ida -nodevice mlx -nodevice pst - -nodevice agp - -nodevice txp -nodevice vx - -nodevice pcn -nodevice sf -nodevice sis -nodevice ste -nodevice tl -nodevice tx -nodevice vr -nodevice wb -nodevice cs -nodevice ed -nodevice ex -nodevice ep -nodevice fe -nodevice ie -nodevice sn -nodevice xe - -nodevice an -nodevice ath # Atheros pci/cardbus NICs -nodevice ath_pci -nodevice ath_hal -nodevice ath_rate_sample # SampleRate tx rate control for ath -nodevice ipw -nodevice iwi -nodevice iwn -nodevice malo -nodevice mwl -nodevice ral -nodevice wi -nodevice wpi +# The following drivers don't work with PAE enabled. +makeoptions WITHOUT_MODULES+="asr ncr pst" +nodevice asr +nodevice ncr +nodevice pst Modified: head/sys/i386/conf/XEN ============================================================================== --- head/sys/i386/conf/XEN Mon Dec 29 20:31:26 2014 (r276376) +++ head/sys/i386/conf/XEN Mon Dec 29 20:33:34 2014 (r276377) @@ -9,7 +9,7 @@ ident XEN makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols # The following modules don't build with PAE and XEN enabled. -makeoptions WITHOUT_MODULES="ctl dpt drm drm2 hptmv ida malo mwl" +makeoptions WITHOUT_MODULES="ctl dpt drm drm2 hptmv ida" options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 21:52:36 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 794C0C20; Mon, 29 Dec 2014 21:52:36 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5A2AC1A5E; Mon, 29 Dec 2014 21:52:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTLqaWo077687; Mon, 29 Dec 2014 21:52:36 GMT (envelope-from joel@FreeBSD.org) Received: (from joel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTLqXt3077670; Mon, 29 Dec 2014 21:52:33 GMT (envelope-from joel@FreeBSD.org) Message-Id: <201412292152.sBTLqXt3077670@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: joel set sender to joel@FreeBSD.org using -f From: Joel Dahl Date: Mon, 29 Dec 2014 21:52:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276381 - head/lib/libgssapi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 21:52:36 -0000 Author: joel (doc committer) Date: Mon Dec 29 21:52:32 2014 New Revision: 276381 URL: https://svnweb.freebsd.org/changeset/base/276381 Log: mdoc: sort SEE ALSO. Modified: head/lib/libgssapi/gss_acquire_cred.3 head/lib/libgssapi/gss_add_cred.3 head/lib/libgssapi/gss_add_oid_set_member.3 head/lib/libgssapi/gss_create_empty_oid_set.3 head/lib/libgssapi/gss_delete_sec_context.3 head/lib/libgssapi/gss_get_mic.3 head/lib/libgssapi/gss_import_sec_context.3 head/lib/libgssapi/gss_inquire_context.3 head/lib/libgssapi/gss_process_context_token.3 head/lib/libgssapi/gss_test_oid_set_member.3 head/lib/libgssapi/gss_unwrap.3 head/lib/libgssapi/gss_wrap.3 Modified: head/lib/libgssapi/gss_acquire_cred.3 ============================================================================== --- head/lib/libgssapi/gss_acquire_cred.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_acquire_cred.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -189,10 +189,10 @@ The credentials could not be acquired be No credentials were found for the specified name. .El .Sh SEE ALSO -.Xr gss_init_sec_context 3 , .Xr gss_accept_sec_context 3 , -.Xr gss_inquire_cred 3 , +.Xr gss_init_sec_context 3 , .Xr gss_inquire_context 3 , +.Xr gss_inquire_cred 3 , .Xr gss_release_cred 3 , .Xr gss_release_oid_set 3 .Sh STANDARDS Modified: head/lib/libgssapi/gss_add_cred.3 ============================================================================== --- head/lib/libgssapi/gss_add_cred.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_add_cred.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -288,11 +288,11 @@ The required credentials could not be ad No credentials were found for the specified name. .El .Sh SEE ALSO -.Xr gss_init_sec_context 3 , .Xr gss_accept_sec_context 3 , .Xr gss_acquire_cred 3 , -.Xr gss_inquire_cred 3 , +.Xr gss_init_sec_context 3 , .Xr gss_inquire_context 3 , +.Xr gss_inquire_cred 3 , .Xr gss_release_cred 3 , .Xr gss_release_oid_set 3 .Sh STANDARDS Modified: head/lib/libgssapi/gss_add_oid_set_member.3 ============================================================================== --- head/lib/libgssapi/gss_add_oid_set_member.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_add_oid_set_member.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -85,8 +85,8 @@ The set in which the object identifier s Successful completion .El .Sh SEE ALSO -.Xr gss_create_empty_oid_set 3 , -.Xr gss_acquire_cred 3 +.Xr gss_acquire_cred 3 , +.Xr gss_create_empty_oid_set 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 Modified: head/lib/libgssapi/gss_create_empty_oid_set.3 ============================================================================== --- head/lib/libgssapi/gss_create_empty_oid_set.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_create_empty_oid_set.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -66,8 +66,8 @@ which the application must free after us Successful completion .El .Sh SEE ALSO -.Xr gss_add_oid_set_member 3 , -.Xr gss_acquire_cred 3 +.Xr gss_acquire_cred 3 , +.Xr gss_add_oid_set_member 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 Modified: head/lib/libgssapi/gss_delete_sec_context.3 ============================================================================== --- head/lib/libgssapi/gss_delete_sec_context.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_delete_sec_context.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -117,9 +117,9 @@ Successful completion No valid context was supplied .El .Sh SEE ALSO -.Xr gss_process_context_token 3 , +.Xr gss_accept_sec_context 3 , .Xr gss_init_sec_context 3 , -.Xr gss_accept_sec_context 3 +.Xr gss_process_context_token 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 Modified: head/lib/libgssapi/gss_get_mic.3 ============================================================================== --- head/lib/libgssapi/gss_get_mic.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_get_mic.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -120,8 +120,8 @@ The context_handle parameter did not ide The specified QOP is not supported by the mechanism .El .Sh SEE ALSO -.Xr gss_wrap 3 , -.Xr gss_release_buffer 3 +.Xr gss_release_buffer 3 , +.Xr gss_wrap 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 Modified: head/lib/libgssapi/gss_import_sec_context.3 ============================================================================== --- head/lib/libgssapi/gss_import_sec_context.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_import_sec_context.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -75,8 +75,8 @@ The operation is unavailable Local policy prevents the import of this context by the current process .El .Sh SEE ALSO -.Xr gss_export_sec_context 3 , -.Xr gss_delete_sec_context 3 +.Xr gss_delete_sec_context 3 , +.Xr gss_export_sec_context 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 Modified: head/lib/libgssapi/gss_inquire_context.3 ============================================================================== --- head/lib/libgssapi/gss_inquire_context.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_inquire_context.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -236,11 +236,11 @@ Successful completion The referenced context could not be accessed .El .Sh SEE ALSO -.Xr gss_release_name 3 , -.Xr gss_init_sec_context 3 , -.Xr gss_wrap 3 , +.Xr gss_export_sec_context 3 , .Xr gss_get_mic 3 , -.Xr gss_export_sec_context 3 +.Xr gss_init_sec_context 3 , +.Xr gss_release_name 3 , +.Xr gss_wrap 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 Modified: head/lib/libgssapi/gss_process_context_token.3 ============================================================================== --- head/lib/libgssapi/gss_process_context_token.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_process_context_token.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -91,8 +91,8 @@ The did not refer to a valid context .El .Sh SEE ALSO -.Xr gss_init_sec_context 3 , -.Xr gss_accept_sec_context 3 +.Xr gss_accept_sec_context 3 , +.Xr gss_init_sec_context 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 Modified: head/lib/libgssapi/gss_test_oid_set_member.3 ============================================================================== --- head/lib/libgssapi/gss_test_oid_set_member.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_test_oid_set_member.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -70,8 +70,8 @@ Non-zero if the specified OID is a membe Successful completion .El .Sh SEE ALSO -.Xr gss_indicate_mechs 3 , .Xr gss_acquire_cred 3 , +.Xr gss_indicate_mechs 3 , .Xr gss_inquire_cred 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" Modified: head/lib/libgssapi/gss_unwrap.3 ============================================================================== --- head/lib/libgssapi/gss_unwrap.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_unwrap.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -147,8 +147,8 @@ The context has already expired. The context_handle parameter did not identify a valid context. .El .Sh SEE ALSO -.Xr gss_wrap 3 , -.Xr gss_release_buffer 3 +.Xr gss_release_buffer 3 , +.Xr gss_wrap 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 Modified: head/lib/libgssapi/gss_wrap.3 ============================================================================== --- head/lib/libgssapi/gss_wrap.3 Mon Dec 29 21:43:02 2014 (r276380) +++ head/lib/libgssapi/gss_wrap.3 Mon Dec 29 21:52:32 2014 (r276381) @@ -134,8 +134,8 @@ The context_handle parameter did not ide The specified QOP is not supported by the mechanism. .El .Sh SEE ALSO -.Xr gss_unwrap 3 , -.Xr gss_release_buffer 3 +.Xr gss_release_buffer 3 , +.Xr gss_unwrap 3 .Sh STANDARDS .Bl -tag -width ".It RFC 2743" .It RFC 2743 From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 21:59:50 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0A0B8DB0; Mon, 29 Dec 2014 21:59:50 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E90921AC1; Mon, 29 Dec 2014 21:59:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTLxnp1078585; Mon, 29 Dec 2014 21:59:49 GMT (envelope-from joel@FreeBSD.org) Received: (from joel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTLxjKF078562; Mon, 29 Dec 2014 21:59:45 GMT (envelope-from joel@FreeBSD.org) Message-Id: <201412292159.sBTLxjKF078562@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: joel set sender to joel@FreeBSD.org using -f From: Joel Dahl Date: Mon, 29 Dec 2014 21:59:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276382 - head/lib/librpcsec_gss X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 21:59:50 -0000 Author: joel (doc committer) Date: Mon Dec 29 21:59:44 2014 New Revision: 276382 URL: https://svnweb.freebsd.org/changeset/base/276382 Log: mdoc: sort SEE ALSO. Modified: head/lib/librpcsec_gss/rpc_gss_get_error.3 head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 head/lib/librpcsec_gss/rpc_gss_get_mechanisms.3 head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 head/lib/librpcsec_gss/rpc_gss_get_versions.3 head/lib/librpcsec_gss/rpc_gss_getcred.3 head/lib/librpcsec_gss/rpc_gss_is_installed.3 head/lib/librpcsec_gss/rpc_gss_max_data_length.3 head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 head/lib/librpcsec_gss/rpc_gss_seccreate.3 head/lib/librpcsec_gss/rpc_gss_set_callback.3 head/lib/librpcsec_gss/rpc_gss_set_defaults.3 head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 head/lib/librpcsec_gss/rpcsec_gss.3 Modified: head/lib/librpcsec_gss/rpc_gss_get_error.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_error.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_get_error.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -44,8 +44,8 @@ Get details of the last RPCSEC_GSS error A pointer to a structure where the error details will be returned .El .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -54,8 +54,8 @@ a list of the supported qualities of pro otherwise .Dv NULL . .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_get_mechanisms.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_mechanisms.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_get_mechanisms.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -41,8 +41,8 @@ Return a .Dv NULL terminated list of installed security mechanisms. .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -67,9 +67,9 @@ if the principal was created or .Dv FALSE otherwise .Sh SEE ALSO -.Xr rpc 3 , -.Xr gssapi 3 , .Xr gss_export_name 3 , +.Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_get_versions.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_versions.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_get_versions.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -50,8 +50,8 @@ The value of is set to the lowest supported protocol version .El .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_getcred.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_getcred.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_getcred.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -70,8 +70,8 @@ if successful, .Dv FALSE otherwise. .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpc_gss_set_callback 3 , .Xr rpcset_gss 3 .Sh HISTORY Modified: head/lib/librpcsec_gss/rpc_gss_is_installed.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_is_installed.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_is_installed.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -51,8 +51,8 @@ if the mechanism is installed, .Dv FALSE otherwise. .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_max_data_length.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_max_data_length.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_max_data_length.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -50,8 +50,8 @@ Maximum packet size of the underlying tr .Sh RETURN VALUES The maximum message size that can be encoded .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -54,8 +54,8 @@ If the mechanism is found, is returned, otherwise .Dv FALSE . .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -54,8 +54,8 @@ If the mechanism is found, is returned, otherwise .Dv FALSE . .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -56,8 +56,8 @@ If the value is found, is returned, otherwise .Dv FALSE . .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_seccreate.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_seccreate.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_seccreate.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -96,11 +96,11 @@ To use this security context for subsequ .Va clnt->cl_auth to this value. .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , +.Xr rpcset_gss 3 , .Xr mech 5 , -.Xr qop 5 , -.Xr rpcset_gss 3 +.Xr qop 5 .Sh HISTORY The .Nm Modified: head/lib/librpcsec_gss/rpc_gss_set_callback.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_set_callback.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_set_callback.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -93,9 +93,9 @@ if the callback was registered successfu .Dv FALSE otherwise .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , -.Xr rpc_gss_getcred 3 +.Xr rpc 3 , +.Xr rpc_gss_getcred 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_set_defaults.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_set_defaults.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_set_defaults.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -56,8 +56,8 @@ Returns .Dv TRUE if the values were set .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -72,9 +72,9 @@ if the service principal was registered .Dv FALSE otherwise. .Sh SEE ALSO -.Xr rpc 3 , -.Xr gssapi 3 , .Xr gss_acquire_cred 3 , +.Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -50,8 +50,8 @@ Maximum packet size of the underlying tr .Sh RETURN VALUES The maximum message size that can be encoded .Sh SEE ALSO -.Xr rpc 3 , .Xr gssapi 3 , +.Xr rpc 3 , .Xr rpcset_gss 3 .Sh HISTORY The Modified: head/lib/librpcsec_gss/rpcsec_gss.3 ============================================================================== --- head/lib/librpcsec_gss/rpcsec_gss.3 Mon Dec 29 21:52:32 2014 (r276381) +++ head/lib/librpcsec_gss/rpcsec_gss.3 Mon Dec 29 21:59:44 2014 (r276382) @@ -214,12 +214,12 @@ Create a client principal name from vari Calculate maximum server message sizes. .El .Sh SEE ALSO -.Xr rpc 3 , -.Xr gssapi 3 , .Xr gss_export_name 3 , +.Xr gssapi 3 , +.Xr rpc 3 , +.Xr rpcset_gss 3 , .Xr mech 5 , -.Xr qop 5 , -.Xr rpcset_gss 3 +.Xr qop 5 .Sh HISTORY The .Nm From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 22:32:41 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 68086279; Mon, 29 Dec 2014 22:32:41 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C2CC301E; Mon, 29 Dec 2014 22:32:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTMWees096276; Mon, 29 Dec 2014 22:32:41 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTMWeMB096275; Mon, 29 Dec 2014 22:32:40 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201412292232.sBTMWeMB096275@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 29 Dec 2014 22:32:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276383 - head/release X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 22:32:41 -0000 Author: gjb Date: Mon Dec 29 22:32:39 2014 New Revision: 276383 URL: https://svnweb.freebsd.org/changeset/base/276383 Log: Delay dropping to the mountroot prompt for 10 seconds in case the root device is not yet ready. Sponsored by: The FreeBSD Foundation Modified: head/release/Makefile Modified: head/release/Makefile ============================================================================== --- head/release/Makefile Mon Dec 29 21:59:44 2014 (r276382) +++ head/release/Makefile Mon Dec 29 22:32:39 2014 (r276383) @@ -201,6 +201,7 @@ system: packagesystem echo sendmail_enable=\"NONE\" > release/etc/rc.conf echo hostid_enable=\"NO\" >> release/etc/rc.conf echo debug.witness.trace=0 >> release/etc/sysctl.conf + echo kern.cam.boot_delay=\"10000\" >> release/boot/loader.conf cp ${.CURDIR}/rc.local release/etc touch ${.TARGET} @@ -226,6 +227,7 @@ bootonly: packagesystem echo sendmail_enable=\"NONE\" > bootonly/etc/rc.conf echo hostid_enable=\"NO\" >> bootonly/etc/rc.conf echo debug.witness.trace=0 >> bootonly/etc/sysctl.conf + echo kern.cam.boot_delay=\"10000\" >> bootonly/boot/loader.conf cp ${.CURDIR}/rc.local bootonly/etc dvd: @@ -248,6 +250,7 @@ dvd: echo sendmail_enable=\"NONE\" > ${.TARGET}/etc/rc.conf echo hostid_enable=\"NO\" >> ${.TARGET}/etc/rc.conf echo debug.witness.trace=0 >> ${.TARGET}/etc/sysctl.conf + echo kern.cam.boot_delay=\"10000\" >> ${.TARGET}/boot/loader.conf cp ${.CURDIR}/rc.local ${.TARGET}/etc touch ${.TARGET} From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 22:54:29 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 917A288C; Mon, 29 Dec 2014 22:54:29 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7CC1322CC; Mon, 29 Dec 2014 22:54:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTMsTv1006166; Mon, 29 Dec 2014 22:54:29 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTMsTbX006165; Mon, 29 Dec 2014 22:54:29 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201412292254.sBTMsTbX006165@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Mon, 29 Dec 2014 22:54:29 +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: r276384 - stable/10/contrib/binutils/gas X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 22:54:29 -0000 Author: pfg Date: Mon Dec 29 22:54:28 2014 New Revision: 276384 URL: https://svnweb.freebsd.org/changeset/base/276384 Log: MFC r276228: gas: use memmove instead of bogus memcpy. partial_where points into the buffer that begins with buffer_start so we need to use memmove() to handle the overlap. Fixes Sourceware-PR 11456. Obtained from: OpenBSD (CVS rev. 1.2) Modified: stable/10/contrib/binutils/gas/input-scrub.c Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/binutils/gas/input-scrub.c ============================================================================== --- stable/10/contrib/binutils/gas/input-scrub.c Mon Dec 29 22:32:39 2014 (r276383) +++ stable/10/contrib/binutils/gas/input-scrub.c Mon Dec 29 22:54:28 2014 (r276384) @@ -335,7 +335,7 @@ input_scrub_next_buffer (char **bufp) if (partial_size) { - memcpy (buffer_start + BEFORE_SIZE, partial_where, + memmove (buffer_start + BEFORE_SIZE, partial_where, (unsigned int) partial_size); memcpy (buffer_start + BEFORE_SIZE, save_source, AFTER_SIZE); } From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 22:55:55 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8A4499C4; Mon, 29 Dec 2014 22:55:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 739D022DE; Mon, 29 Dec 2014 22:55:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBTMtt4a006452; Mon, 29 Dec 2014 22:55:55 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBTMtt6P006451; Mon, 29 Dec 2014 22:55:55 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201412292255.sBTMtt6P006451@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Mon, 29 Dec 2014 22:55:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276385 - stable/9/contrib/binutils/gas X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 22:55:55 -0000 Author: pfg Date: Mon Dec 29 22:55:54 2014 New Revision: 276385 URL: https://svnweb.freebsd.org/changeset/base/276385 Log: MFC r276228: gas: use memmove instead of bogus memcpy. partial_where points into the buffer that begins with buffer_start so we need to use memmove() to handle the overlap. Fixes Sourceware-PR 11456. Obtained from: OpenBSD (CVS rev. 1.2) Modified: stable/9/contrib/binutils/gas/input-scrub.c Directory Properties: stable/9/contrib/binutils/ (props changed) Modified: stable/9/contrib/binutils/gas/input-scrub.c ============================================================================== --- stable/9/contrib/binutils/gas/input-scrub.c Mon Dec 29 22:54:28 2014 (r276384) +++ stable/9/contrib/binutils/gas/input-scrub.c Mon Dec 29 22:55:54 2014 (r276385) @@ -335,7 +335,7 @@ input_scrub_next_buffer (char **bufp) if (partial_size) { - memcpy (buffer_start + BEFORE_SIZE, partial_where, + memmove (buffer_start + BEFORE_SIZE, partial_where, (unsigned int) partial_size); memcpy (buffer_start + BEFORE_SIZE, save_source, AFTER_SIZE); } From owner-svn-src-all@FreeBSD.ORG Mon Dec 29 22:57:30 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9BBCAB0D; Mon, 29 Dec 2014 22:57:30 +0000 (UTC) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 708762400; Mon, 29 Dec 2014 22:57:30 +0000 (UTC) Received: from [73.34.117.227] (helo=ilsoft.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Y5jFa-000F1o-JI; Mon, 29 Dec 2014 22:57:22 +0000 Received: from revolution.hippie.lan (revolution.hippie.lan [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id sBTMvLRB019153; Mon, 29 Dec 2014 15:57:21 -0700 (MST) (envelope-from ian@freebsd.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 73.34.117.227 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1/5MbJ8l94XIYLgo7x3I5DN Message-ID: <1419893841.1018.269.camel@freebsd.org> Subject: Re: svn commit: r276383 - head/release From: Ian Lepore To: Glen Barber Date: Mon, 29 Dec 2014 15:57:21 -0700 In-Reply-To: <201412292232.sBTMWeMB096275@svn.freebsd.org> References: <201412292232.sBTMWeMB096275@svn.freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.8 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2014 22:57:30 -0000 On Mon, 2014-12-29 at 22:32 +0000, Glen Barber wrote: > Author: gjb > Date: Mon Dec 29 22:32:39 2014 > New Revision: 276383 > URL: https://svnweb.freebsd.org/changeset/base/276383 > > Log: > Delay dropping to the mountroot prompt for 10 seconds > in case the root device is not yet ready. > > Sponsored by: The FreeBSD Foundation > > Modified: > head/release/Makefile > > Modified: head/release/Makefile > ============================================================================== > --- head/release/Makefile Mon Dec 29 21:59:44 2014 (r276382) > +++ head/release/Makefile Mon Dec 29 22:32:39 2014 (r276383) > @@ -201,6 +201,7 @@ system: packagesystem > echo sendmail_enable=\"NONE\" > release/etc/rc.conf > echo hostid_enable=\"NO\" >> release/etc/rc.conf > echo debug.witness.trace=0 >> release/etc/sysctl.conf > + echo kern.cam.boot_delay=\"10000\" >> release/boot/loader.conf > cp ${.CURDIR}/rc.local release/etc > touch ${.TARGET} > > @@ -226,6 +227,7 @@ bootonly: packagesystem > echo sendmail_enable=\"NONE\" > bootonly/etc/rc.conf > echo hostid_enable=\"NO\" >> bootonly/etc/rc.conf > echo debug.witness.trace=0 >> bootonly/etc/sysctl.conf > + echo kern.cam.boot_delay=\"10000\" >> bootonly/boot/loader.conf > cp ${.CURDIR}/rc.local bootonly/etc > > dvd: > @@ -248,6 +250,7 @@ dvd: > echo sendmail_enable=\"NONE\" > ${.TARGET}/etc/rc.conf > echo hostid_enable=\"NO\" >> ${.TARGET}/etc/rc.conf > echo debug.witness.trace=0 >> ${.TARGET}/etc/sysctl.conf > + echo kern.cam.boot_delay=\"10000\" >> ${.TARGET}/boot/loader.conf > cp ${.CURDIR}/rc.local ${.TARGET}/etc > touch ${.TARGET} > > This will hard-wait for 10 seconds even if all devices are ready to roll much earlier than that. An alternative is to set kern.mountroot.timeout which will keep trying the available root devices until the timeout expires and then drop you to the prompt, with the benefit of only waiting 4 seconds if that's how long it really took the device to become ready. (The default for kern.mountroot.timeout is 3 seconds.) -- Ian From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 00:00:45 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 979A1EF4; Tue, 30 Dec 2014 00:00:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7888F2FB2; Tue, 30 Dec 2014 00:00:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU00jMA037788; Tue, 30 Dec 2014 00:00:45 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU00hYf037772; Tue, 30 Dec 2014 00:00:43 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412300000.sBU00hYf037772@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Tue, 30 Dec 2014 00:00:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276386 - in stable/10/sys: amd64/amd64 amd64/vmm/intel modules/vmm sys x86/include X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 00:00:45 -0000 Author: neel Date: Tue Dec 30 00:00:42 2014 New Revision: 276386 URL: https://svnweb.freebsd.org/changeset/base/276386 Log: MFC 261321 Rename the AMD MSR_PERFCTR[0-3] so the Pentium Pro MSR_PERFCTR[0-1] aren't redefined. MFC r273214 Fix build to not bogusly always rebuild vmm.ko. MFC r273338 Add support for AMD's nested page tables in pmap.c: - Provide the correct bit mask for various bit fields in a PTE (e.g. valid bit) for a pmap of type PT_RVI. - Add a function 'pmap_type_guest(pmap)' that returns TRUE if the pmap is of type PT_EPT or PT_RVI. Add CPU_SET_ATOMIC_ACQ(num, cpuset): This is used when activating a vcpu in the nested pmap. Using the 'acquire' variant guarantees that the load of the 'pm_eptgen' will happen only after the vcpu is activated in 'pm_active'. Add defines for various AMD-specific MSRs. Discussed with: kib (r261321) Modified: stable/10/sys/amd64/amd64/pmap.c stable/10/sys/amd64/vmm/intel/vmx_support.S stable/10/sys/modules/vmm/Makefile stable/10/sys/sys/bitset.h stable/10/sys/sys/cpuset.h stable/10/sys/x86/include/specialreg.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/amd64/pmap.c ============================================================================== --- stable/10/sys/amd64/amd64/pmap.c Mon Dec 29 22:55:54 2014 (r276385) +++ stable/10/sys/amd64/amd64/pmap.c Tue Dec 30 00:00:42 2014 (r276386) @@ -146,6 +146,13 @@ __FBSDID("$FreeBSD$"); #endif static __inline boolean_t +pmap_type_guest(pmap_t pmap) +{ + + return ((pmap->pm_type == PT_EPT) || (pmap->pm_type == PT_RVI)); +} + +static __inline boolean_t pmap_emulate_ad_bits(pmap_t pmap) { @@ -159,6 +166,7 @@ pmap_valid_bit(pmap_t pmap) switch (pmap->pm_type) { case PT_X86: + case PT_RVI: mask = X86_PG_V; break; case PT_EPT: @@ -181,6 +189,7 @@ pmap_rw_bit(pmap_t pmap) switch (pmap->pm_type) { case PT_X86: + case PT_RVI: mask = X86_PG_RW; break; case PT_EPT: @@ -205,6 +214,7 @@ pmap_global_bit(pmap_t pmap) case PT_X86: mask = X86_PG_G; break; + case PT_RVI: case PT_EPT: mask = 0; break; @@ -222,6 +232,7 @@ pmap_accessed_bit(pmap_t pmap) switch (pmap->pm_type) { case PT_X86: + case PT_RVI: mask = X86_PG_A; break; case PT_EPT: @@ -244,6 +255,7 @@ pmap_modified_bit(pmap_t pmap) switch (pmap->pm_type) { case PT_X86: + case PT_RVI: mask = X86_PG_M; break; case PT_EPT: @@ -1103,6 +1115,7 @@ pmap_swap_pat(pmap_t pmap, pt_entry_t en switch (pmap->pm_type) { case PT_X86: + case PT_RVI: /* Verify that both PAT bits are not set at the same time */ KASSERT((entry & x86_pat_bits) != x86_pat_bits, ("Invalid PAT bits in entry %#lx", entry)); @@ -1138,6 +1151,7 @@ pmap_cache_bits(pmap_t pmap, int mode, b switch (pmap->pm_type) { case PT_X86: + case PT_RVI: /* The PAT bit is different for PTE's and PDE's. */ pat_flag = is_pde ? X86_PG_PDE_PAT : X86_PG_PTE_PAT; @@ -1172,6 +1186,7 @@ pmap_cache_mask(pmap_t pmap, boolean_t i switch (pmap->pm_type) { case PT_X86: + case PT_RVI: mask = is_pde ? X86_PG_PDE_CACHE : X86_PG_PTE_CACHE; break; case PT_EPT: @@ -1198,6 +1213,7 @@ pmap_update_pde_store(pmap_t pmap, pd_en switch (pmap->pm_type) { case PT_X86: break; + case PT_RVI: case PT_EPT: /* * XXX @@ -1233,7 +1249,7 @@ pmap_update_pde_invalidate(pmap_t pmap, { pt_entry_t PG_G; - if (pmap->pm_type == PT_EPT) + if (pmap_type_guest(pmap)) return; KASSERT(pmap->pm_type == PT_X86, @@ -1347,7 +1363,7 @@ pmap_invalidate_page(pmap_t pmap, vm_off cpuset_t other_cpus; u_int cpuid; - if (pmap->pm_type == PT_EPT) { + if (pmap_type_guest(pmap)) { pmap_invalidate_ept(pmap); return; } @@ -1425,7 +1441,7 @@ pmap_invalidate_range(pmap_t pmap, vm_of vm_offset_t addr; u_int cpuid; - if (pmap->pm_type == PT_EPT) { + if (pmap_type_guest(pmap)) { pmap_invalidate_ept(pmap); return; } @@ -1484,7 +1500,7 @@ pmap_invalidate_all(pmap_t pmap) uint64_t cr3; u_int cpuid; - if (pmap->pm_type == PT_EPT) { + if (pmap_type_guest(pmap)) { pmap_invalidate_ept(pmap); return; } @@ -1606,7 +1622,7 @@ pmap_update_pde(pmap_t pmap, vm_offset_t cpuid = PCPU_GET(cpuid); other_cpus = all_cpus; CPU_CLR(cpuid, &other_cpus); - if (pmap == kernel_pmap || pmap->pm_type == PT_EPT) + if (pmap == kernel_pmap || pmap_type_guest(pmap)) active = all_cpus; else { active = pmap->pm_active; @@ -1644,6 +1660,7 @@ pmap_invalidate_page(pmap_t pmap, vm_off if (pmap == kernel_pmap || !CPU_EMPTY(&pmap->pm_active)) invlpg(va); break; + case PT_RVI: case PT_EPT: pmap->pm_eptgen++; break; @@ -1663,6 +1680,7 @@ pmap_invalidate_range(pmap_t pmap, vm_of for (addr = sva; addr < eva; addr += PAGE_SIZE) invlpg(addr); break; + case PT_RVI: case PT_EPT: pmap->pm_eptgen++; break; @@ -1680,6 +1698,7 @@ pmap_invalidate_all(pmap_t pmap) if (pmap == kernel_pmap || !CPU_EMPTY(&pmap->pm_active)) invltlb(); break; + case PT_RVI: case PT_EPT: pmap->pm_eptgen++; break; Modified: stable/10/sys/amd64/vmm/intel/vmx_support.S ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx_support.S Mon Dec 29 22:55:54 2014 (r276385) +++ stable/10/sys/amd64/vmm/intel/vmx_support.S Tue Dec 30 00:00:42 2014 (r276386) @@ -29,7 +29,7 @@ #include -#include "vmx_assym.s" +#include "vmx_assym.h" #ifdef SMP #define LK lock ; Modified: stable/10/sys/modules/vmm/Makefile ============================================================================== --- stable/10/sys/modules/vmm/Makefile Mon Dec 29 22:55:54 2014 (r276385) +++ stable/10/sys/modules/vmm/Makefile Tue Dec 30 00:00:42 2014 (r276386) @@ -2,7 +2,7 @@ KMOD= vmm -SRCS= opt_acpi.h opt_ddb.h device_if.h bus_if.h pci_if.h +SRCS= opt_acpi.h opt_ddb.h device_if.h bus_if.h pci_if.h vmx_assym.h CFLAGS+= -DVMM_KEEP_STATS -DSMP CFLAGS+= -I${.CURDIR}/../../amd64/vmm @@ -38,6 +38,7 @@ SRCS+= iommu.c \ SRCS+= ept.c \ vmcs.c \ vmx_msr.c \ + vmx_support.S \ vmx.c \ vtd.c @@ -45,21 +46,19 @@ SRCS+= ept.c \ .PATH: ${.CURDIR}/../../amd64/vmm/amd SRCS+= amdv.c -OBJS= vmx_support.o +CLEANFILES= vmx_assym.h vmx_genassym.o -CLEANFILES= vmx_assym.s vmx_genassym.o - -vmx_assym.s: vmx_genassym.o +vmx_assym.h: vmx_genassym.o .if exists(@) -vmx_assym.s: @/kern/genassym.sh +vmx_assym.h: @/kern/genassym.sh .endif sh @/kern/genassym.sh vmx_genassym.o > ${.TARGET} -vmx_support.o: vmx_support.S vmx_assym.s +vmx_support.o: ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ ${.IMPSRC} -o ${.TARGET} -vmx_genassym.o: vmx_genassym.c @ machine x86 +vmx_genassym.o: ${CC} -c ${CFLAGS:N-fno-common} ${.IMPSRC} .include Modified: stable/10/sys/sys/bitset.h ============================================================================== --- stable/10/sys/sys/bitset.h Mon Dec 29 22:55:54 2014 (r276385) +++ stable/10/sys/sys/bitset.h Tue Dec 30 00:00:42 2014 (r276386) @@ -135,6 +135,10 @@ atomic_set_long(&(p)->__bits[__bitset_word(_s, n)], \ __bitset_mask((_s), n)) +#define BIT_SET_ATOMIC_ACQ(_s, n, p) \ + atomic_set_acq_long(&(p)->__bits[__bitset_word(_s, n)], \ + __bitset_mask((_s), n)) + /* Convenience functions catering special cases. */ #define BIT_AND_ATOMIC(_s, d, s) do { \ __size_t __i; \ Modified: stable/10/sys/sys/cpuset.h ============================================================================== --- stable/10/sys/sys/cpuset.h Mon Dec 29 22:55:54 2014 (r276385) +++ stable/10/sys/sys/cpuset.h Tue Dec 30 00:00:42 2014 (r276386) @@ -55,6 +55,7 @@ #define CPU_NAND(d, s) BIT_NAND(CPU_SETSIZE, d, s) #define CPU_CLR_ATOMIC(n, p) BIT_CLR_ATOMIC(CPU_SETSIZE, n, p) #define CPU_SET_ATOMIC(n, p) BIT_SET_ATOMIC(CPU_SETSIZE, n, p) +#define CPU_SET_ATOMIC_ACQ(n, p) BIT_SET_ATOMIC_ACQ(CPU_SETSIZE, n, p) #define CPU_AND_ATOMIC(n, p) BIT_AND_ATOMIC(CPU_SETSIZE, n, p) #define CPU_OR_ATOMIC(d, s) BIT_OR_ATOMIC(CPU_SETSIZE, d, s) #define CPU_COPY_STORE_REL(f, t) BIT_COPY_STORE_REL(CPU_SETSIZE, f, t) Modified: stable/10/sys/x86/include/specialreg.h ============================================================================== --- stable/10/sys/x86/include/specialreg.h Mon Dec 29 22:55:54 2014 (r276385) +++ stable/10/sys/x86/include/specialreg.h Tue Dec 30 00:00:42 2014 (r276386) @@ -81,6 +81,7 @@ #define EFER_LME 0x000000100 /* Long mode enable (R/W) */ #define EFER_LMA 0x000000400 /* Long mode active (R) */ #define EFER_NXE 0x000000800 /* PTE No-Execute bit enable (R/W) */ +#define EFER_SVM 0x000001000 /* SVM enable bit for AMD, reserved for Intel */ /* * Intel Extended Features registers @@ -771,12 +772,10 @@ #define MSR_PERFEVSEL1 0xc0010001 #define MSR_PERFEVSEL2 0xc0010002 #define MSR_PERFEVSEL3 0xc0010003 -#undef MSR_PERFCTR0 -#undef MSR_PERFCTR1 -#define MSR_PERFCTR0 0xc0010004 -#define MSR_PERFCTR1 0xc0010005 -#define MSR_PERFCTR2 0xc0010006 -#define MSR_PERFCTR3 0xc0010007 +#define MSR_K7_PERFCTR0 0xc0010004 +#define MSR_K7_PERFCTR1 0xc0010005 +#define MSR_K7_PERFCTR2 0xc0010006 +#define MSR_K7_PERFCTR3 0xc0010007 #define MSR_SYSCFG 0xc0010010 #define MSR_HWCR 0xc0010015 #define MSR_IORRBASE0 0xc0010016 @@ -785,8 +784,21 @@ #define MSR_IORRMASK1 0xc0010019 #define MSR_TOP_MEM 0xc001001a /* boundary for ram below 4G */ #define MSR_TOP_MEM2 0xc001001d /* boundary for ram above 4G */ +#define MSR_NB_CFG1 0xc001001f /* NB configuration 1 */ +#define MSR_P_STATE_LIMIT 0xc0010061 /* P-state Current Limit Register */ +#define MSR_P_STATE_CONTROL 0xc0010062 /* P-state Control Register */ +#define MSR_P_STATE_STATUS 0xc0010063 /* P-state Status Register */ +#define MSR_P_STATE_CONFIG(n) (0xc0010064 + (n)) /* P-state Config */ +#define MSR_SMM_ADDR 0xc0010112 /* SMM TSEG base address */ +#define MSR_SMM_MASK 0xc0010113 /* SMM TSEG address mask */ +#define MSR_IC_CFG 0xc0011021 /* Instruction Cache Configuration */ #define MSR_K8_UCODE_UPDATE 0xc0010020 /* update microcode */ #define MSR_MC0_CTL_MASK 0xc0010044 +#define MSR_VM_CR 0xc0010114 /* SVM: feature control */ +#define MSR_VM_HSAVE_PA 0xc0010117 /* SVM: host save area address */ + +/* MSR_VM_CR related */ +#define VM_CR_SVMDIS 0x10 /* SVM: disabled by BIOS */ /* VIA ACE crypto featureset: for via_feature_rng */ #define VIA_HAS_RNG 1 /* cpu has RNG */ From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 01:27:20 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E5C186D4; Tue, 30 Dec 2014 01:27:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D013F2099; Tue, 30 Dec 2014 01:27:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU1RKxC078075; Tue, 30 Dec 2014 01:27:20 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU1RJlJ078067; Tue, 30 Dec 2014 01:27:19 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412300127.sBU1RJlJ078067@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Dec 2014 01:27:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276387 - in vendor/elftoolchain/dist: elfcopy libdwarf X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 01:27:21 -0000 Author: emaste Date: Tue Dec 30 01:27:18 2014 New Revision: 276387 URL: https://svnweb.freebsd.org/changeset/base/276387 Log: Import elftoolchain rev 3136 From svn.code.sf.net/p/elftoolchain/code/trunk Modified: vendor/elftoolchain/dist/elfcopy/elfcopy.h vendor/elftoolchain/dist/elfcopy/sections.c vendor/elftoolchain/dist/elfcopy/segments.c vendor/elftoolchain/dist/elfcopy/symbols.c vendor/elftoolchain/dist/libdwarf/libdwarf_abbrev.c vendor/elftoolchain/dist/libdwarf/libdwarf_info.c vendor/elftoolchain/dist/libdwarf/libdwarf_init.c Modified: vendor/elftoolchain/dist/elfcopy/elfcopy.h ============================================================================== --- vendor/elftoolchain/dist/elfcopy/elfcopy.h Tue Dec 30 00:00:42 2014 (r276386) +++ vendor/elftoolchain/dist/elfcopy/elfcopy.h Tue Dec 30 01:27:18 2014 (r276387) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: elfcopy.h 2970 2013-12-01 15:22:12Z kaiwang27 $ + * $Id: elfcopy.h 3134 2014-12-23 10:43:59Z kaiwang27 $ */ #include @@ -115,6 +115,7 @@ struct segment; /* Internal data structure for sections. */ struct section { struct segment *seg; /* containing segment */ + struct segment *seg_tls; /* tls segment */ const char *name; /* section name */ char *newname; /* new section name */ Elf_Scn *is; /* input scn */ Modified: vendor/elftoolchain/dist/elfcopy/sections.c ============================================================================== --- vendor/elftoolchain/dist/elfcopy/sections.c Tue Dec 30 00:00:42 2014 (r276386) +++ vendor/elftoolchain/dist/elfcopy/sections.c Tue Dec 30 01:27:18 2014 (r276387) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2007-2011 Kai Wang + * Copyright (c) 2007-2011,2014 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,7 +35,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: sections.c 3126 2014-12-21 08:03:31Z kaiwang27 $"); +ELFTC_VCSID("$Id: sections.c 3134 2014-12-23 10:43:59Z kaiwang27 $"); static void add_gnu_debuglink(struct elfcopy *ecp); static uint32_t calc_crc32(const char *p, size_t len, uint32_t crc); @@ -485,7 +485,10 @@ insert_shtab(struct elfcopy *ecp, int ta if ((shtab = calloc(1, sizeof(*shtab))) == NULL) errx(EXIT_FAILURE, "calloc failed"); if (!tail) { - /* shoff of input object is used as a hint. */ + /* + * "shoff" of input object is used as a hint for section + * resync later. + */ if (gelf_getehdr(ecp->ein, &ieh) == NULL) errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", elf_errmsg(-1)); @@ -764,6 +767,15 @@ resync_sections(struct elfcopy *ecp) first = 0; } + /* + * Ignore TLS sections with load address 0 and without + * content. We don't need to adjust their file offset or + * VMA, only the size matters. + */ + if (s->seg_tls != NULL && s->type == SHT_NOBITS && + s->off == 0) + continue; + /* Align section offset. */ if (off <= s->off) { if (!s->loadable) @@ -1050,6 +1062,17 @@ copy_data(struct section *s) od->d_size = id->d_size; od->d_version = id->d_version; } + + /* + * Alignment Fixup. libelf does not allow the alignment for + * Elf_Data descriptor to be set to 0. In this case we workaround + * it by setting the alignment to 1. + * + * According to the ELF ABI, alignment 0 and 1 has the same + * meaning: the section has no alignment constraints. + */ + if (od->d_align == 0) + od->d_align = 1; } struct section * Modified: vendor/elftoolchain/dist/elfcopy/segments.c ============================================================================== --- vendor/elftoolchain/dist/elfcopy/segments.c Tue Dec 30 00:00:42 2014 (r276386) +++ vendor/elftoolchain/dist/elfcopy/segments.c Tue Dec 30 01:27:18 2014 (r276387) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: segments.c 3113 2014-12-20 08:33:29Z kaiwang27 $"); +ELFTC_VCSID("$Id: segments.c 3134 2014-12-23 10:43:59Z kaiwang27 $"); static void insert_to_inseg_list(struct segment *seg, struct section *sec); @@ -85,6 +85,8 @@ add_to_inseg_list(struct elfcopy *ecp, s insert_to_inseg_list(seg, s); if (seg->type == PT_LOAD) s->seg = seg; + else if (seg->type == PT_TLS) + s->seg_tls = seg; s->lma = seg->addr + (s->off - seg->off); loadable = 1; } Modified: vendor/elftoolchain/dist/elfcopy/symbols.c ============================================================================== --- vendor/elftoolchain/dist/elfcopy/symbols.c Tue Dec 30 00:00:42 2014 (r276386) +++ vendor/elftoolchain/dist/elfcopy/symbols.c Tue Dec 30 01:27:18 2014 (r276387) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: symbols.c 3019 2014-04-17 14:53:40Z jkoshy $"); +ELFTC_VCSID("$Id: symbols.c 3135 2014-12-24 08:22:43Z kaiwang27 $"); /* Symbol table buffer structure. */ struct symbuf { @@ -46,12 +46,25 @@ struct symbuf { size_t gcap, lcap; /* buffer capacities. */ }; +struct sthash { + LIST_ENTRY(sthash) sh_next; + size_t sh_off; +}; +typedef LIST_HEAD(,sthash) hash_head; +#define STHASHSIZE 65536 + +struct strimpl { + char *buf; /* string table */ + size_t sz; /* entries */ + size_t cap; /* buffer capacity */ + hash_head hash[STHASHSIZE]; +}; + + /* String table buffer structure. */ struct strbuf { - char *l; /* local symbol string table */ - char *g; /* global symbol string table */ - size_t lsz, gsz; /* size of each kind */ - size_t gcap, lcap; /* buffer capacities. */ + struct strimpl l; /* local symbols */ + struct strimpl g; /* global symbols */ }; static int is_debug_symbol(unsigned char st_info); @@ -62,10 +75,12 @@ static int is_needed_symbol(struct elfco static int is_remove_symbol(struct elfcopy *ecp, size_t sc, int i, GElf_Sym *s, const char *name); static int is_weak_symbol(unsigned char st_info); -static int lookup_exact_string(const char *buf, size_t sz, const char *s); +static int lookup_exact_string(hash_head *hash, const char *buf, + const char *s); static int generate_symbols(struct elfcopy *ecp); static void mark_symbols(struct elfcopy *ecp, size_t sc); static int match_wildcard(const char *name, const char *pattern); +uint32_t str_hash(const char *s); /* Convenient bit vector operation macros. */ #define BIT_SET(v, n) (v[(n)>>3] |= 1U << ((n) & 7)) @@ -316,10 +331,10 @@ generate_symbols(struct elfcopy *ecp) if ((st_buf = calloc(1, sizeof(*st_buf))) == NULL) err(EXIT_FAILURE, "calloc failed"); sy_buf->gcap = sy_buf->lcap = 64; - st_buf->gcap = 256; - st_buf->lcap = 64; - st_buf->lsz = 1; /* '\0' at start. */ - st_buf->gsz = 0; + st_buf->g.cap = 256; + st_buf->l.cap = 64; + st_buf->l.sz = 1; /* '\0' at start. */ + st_buf->g.sz = 0; ecp->symtab->sz = 0; ecp->strtab->sz = 0; @@ -541,10 +556,10 @@ generate_symbols(struct elfcopy *ecp) /* Update st_name. */ if (ec == ELFCLASS32) sy_buf->g32[ecp->symndx[i]].st_name += - st_buf->lsz; + st_buf->l.sz; else sy_buf->g64[ecp->symndx[i]].st_name += - st_buf->lsz; + st_buf->l.sz; /* Update index map. */ ecp->symndx[i] += sy_buf->nls; @@ -633,6 +648,8 @@ free_symtab(struct elfcopy *ecp) { struct symbuf *sy_buf; struct strbuf *st_buf; + struct sthash *sh, *shtmp; + int i; if (ecp->symtab != NULL && ecp->symtab->buf != NULL) { sy_buf = ecp->symtab->buf; @@ -648,10 +665,22 @@ free_symtab(struct elfcopy *ecp) if (ecp->strtab != NULL && ecp->strtab->buf != NULL) { st_buf = ecp->strtab->buf; - if (st_buf->l != NULL) - free(st_buf->l); - if (st_buf->g != NULL) - free(st_buf->g); + if (st_buf->l.buf != NULL) + free(st_buf->l.buf); + if (st_buf->g.buf != NULL) + free(st_buf->g.buf); + for (i = 0; i < STHASHSIZE; i++) { + LIST_FOREACH_SAFE(sh, &st_buf->l.hash[i], sh_next, + shtmp) { + LIST_REMOVE(sh, sh_next); + free(sh); + } + LIST_FOREACH_SAFE(sh, &st_buf->g.hash[i], sh_next, + shtmp) { + LIST_REMOVE(sh, sh_next); + free(sh); + } + } } } @@ -689,10 +718,10 @@ create_external_symtab(struct elfcopy *e if ((st_buf = calloc(1, sizeof(*st_buf))) == NULL) err(EXIT_FAILURE, "calloc failed"); sy_buf->gcap = sy_buf->lcap = 64; - st_buf->gcap = 256; - st_buf->lcap = 64; - st_buf->lsz = 1; /* '\0' at start. */ - st_buf->gsz = 0; + st_buf->g.cap = 256; + st_buf->l.cap = 64; + st_buf->l.sz = 1; /* '\0' at start. */ + st_buf->g.sz = 0; ecp->symtab->sz = 0; ecp->strtab->sz = 0; @@ -729,6 +758,8 @@ add_to_symtab(struct elfcopy *ecp, const { struct symbuf *sy_buf; struct strbuf *st_buf; + struct sthash *sh; + uint32_t hash; int pos; /* @@ -761,32 +792,39 @@ add_to_symtab(struct elfcopy *ecp, const else \ sy_buf->B##SZ[sy_buf->n##B##s].st_shndx = \ ecp->secndx[st_shndx]; \ - if (st_buf->B == NULL) { \ - st_buf->B = calloc(st_buf->B##cap, sizeof(*st_buf->B)); \ - if (st_buf->B == NULL) \ + if (st_buf->B.buf == NULL) { \ + st_buf->B.buf = calloc(st_buf->B.cap, \ + sizeof(*st_buf->B.buf)); \ + if (st_buf->B.buf == NULL) \ err(EXIT_FAILURE, "malloc failed"); \ } \ if (name != NULL && *name != '\0') { \ - pos = lookup_exact_string(st_buf->B, \ - st_buf->B##sz, name); \ + pos = lookup_exact_string(st_buf->B.hash, st_buf->B.buf,\ + name); \ if (pos != -1) \ sy_buf->B##SZ[sy_buf->n##B##s].st_name = pos; \ else { \ sy_buf->B##SZ[sy_buf->n##B##s].st_name = \ - st_buf->B##sz; \ - while (st_buf->B##sz + strlen(name) >= \ - st_buf->B##cap - 1) { \ - st_buf->B##cap *= 2; \ - st_buf->B = realloc(st_buf->B, \ - st_buf->B##cap); \ - if (st_buf->B == NULL) \ + st_buf->B.sz; \ + while (st_buf->B.sz + strlen(name) >= \ + st_buf->B.cap - 1) { \ + st_buf->B.cap *= 2; \ + st_buf->B.buf = realloc(st_buf->B.buf, \ + st_buf->B.cap); \ + if (st_buf->B.buf == NULL) \ err(EXIT_FAILURE, \ "realloc failed"); \ } \ - strncpy(&st_buf->B[st_buf->B##sz], name, \ + if ((sh = malloc(sizeof(*sh))) == NULL) \ + err(EXIT_FAILURE, "malloc failed"); \ + sh->sh_off = st_buf->B.sz; \ + hash = str_hash(name); \ + LIST_INSERT_HEAD(&st_buf->B.hash[hash], sh, \ + sh_next); \ + strncpy(&st_buf->B.buf[st_buf->B.sz], name, \ strlen(name)); \ - st_buf->B[st_buf->B##sz + strlen(name)] = '\0'; \ - st_buf->B##sz += strlen(name) + 1; \ + st_buf->B.buf[st_buf->B.sz + strlen(name)] = '\0'; \ + st_buf->B.sz += strlen(name) + 1; \ } \ } else \ sy_buf->B##SZ[sy_buf->n##B##s].st_name = 0; \ @@ -811,7 +849,7 @@ add_to_symtab(struct elfcopy *ecp, const /* Update section size. */ ecp->symtab->sz = (sy_buf->nls + sy_buf->ngs) * (ecp->oec == ELFCLASS32 ? sizeof(Elf32_Sym) : sizeof(Elf64_Sym)); - ecp->strtab->sz = st_buf->lsz + st_buf->gsz; + ecp->strtab->sz = st_buf->l.sz + st_buf->g.sz; #undef _ADDSYM } @@ -831,9 +869,9 @@ finalize_external_symtab(struct elfcopy st_buf = ecp->strtab->buf; for (i = 0; (size_t) i < sy_buf->ngs; i++) { if (ecp->oec == ELFCLASS32) - sy_buf->g32[i].st_name += st_buf->lsz; + sy_buf->g32[i].st_name += st_buf->l.sz; else - sy_buf->g64[i].st_name += st_buf->lsz; + sy_buf->g64[i].st_name += st_buf->l.sz; } } @@ -920,19 +958,19 @@ create_symtab_data(struct elfcopy *ecp) elf_errmsg(-1)); lstdata->d_align = 1; lstdata->d_off = 0; - lstdata->d_buf = st_buf->l; - lstdata->d_size = st_buf->lsz; + lstdata->d_buf = st_buf->l.buf; + lstdata->d_size = st_buf->l.sz; lstdata->d_type = ELF_T_BYTE; lstdata->d_version = EV_CURRENT; - if (st_buf->gsz > 0) { + if (st_buf->g.sz > 0) { if ((gstdata = elf_newdata(st->os)) == NULL) errx(EXIT_FAILURE, "elf_newdata() failed: %s.", elf_errmsg(-1)); gstdata->d_align = 1; gstdata->d_off = lstdata->d_size; - gstdata->d_buf = st_buf->g; - gstdata->d_size = st_buf->gsz; + gstdata->d_buf = st_buf->g.buf; + gstdata->d_size = st_buf->g.sz; gstdata->d_type = ELF_T_BYTE; gstdata->d_version = EV_CURRENT; } @@ -1022,18 +1060,25 @@ lookup_symop_list(struct elfcopy *ecp, c } static int -lookup_exact_string(const char *buf, size_t sz, const char *s) +lookup_exact_string(hash_head *buckets, const char *buf, const char *s) { - const char *b; - size_t slen; - - slen = strlen(s); - for (b = buf; b < buf + sz; b += strlen(b) + 1) { - if (strlen(b) != slen) - continue; - if (!strcmp(b, s)) - return (b - buf); - } + struct sthash *sh; + uint32_t hash; + hash = str_hash(s); + LIST_FOREACH(sh, &buckets[hash], sh_next) + if (strcmp(buf + sh->sh_off, s) == 0) + return sh->sh_off; return (-1); } + +uint32_t +str_hash(const char *s) +{ + uint32_t hash; + + for (hash = 2166136261; *s; s++) + hash = (hash ^ *s) * 16777619; + + return (hash & (STHASHSIZE - 1)); +} Modified: vendor/elftoolchain/dist/libdwarf/libdwarf_abbrev.c ============================================================================== --- vendor/elftoolchain/dist/libdwarf/libdwarf_abbrev.c Tue Dec 30 00:00:42 2014 (r276386) +++ vendor/elftoolchain/dist/libdwarf/libdwarf_abbrev.c Tue Dec 30 01:27:18 2014 (r276387) @@ -27,7 +27,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: libdwarf_abbrev.c 2070 2011-10-27 03:05:32Z jkoshy $"); +ELFTC_VCSID("$Id: libdwarf_abbrev.c 3136 2014-12-24 16:04:38Z kaiwang27 $"); int _dwarf_abbrev_add(Dwarf_CU cu, uint64_t entry, uint64_t tag, uint8_t children, @@ -180,7 +180,9 @@ _dwarf_abbrev_find(Dwarf_CU cu, uint64_t /* Load and search the abbrev table. */ ds = _dwarf_find_section(cu->cu_dbg, ".debug_abbrev"); - assert(ds != NULL); + if (ds == NULL) + return (DW_DLE_NO_ENTRY); + offset = cu->cu_abbrev_offset_cur; while (offset < ds->ds_size) { ret = _dwarf_abbrev_parse(cu->cu_dbg, cu, &offset, &ab, error); Modified: vendor/elftoolchain/dist/libdwarf/libdwarf_info.c ============================================================================== --- vendor/elftoolchain/dist/libdwarf/libdwarf_info.c Tue Dec 30 00:00:42 2014 (r276386) +++ vendor/elftoolchain/dist/libdwarf/libdwarf_info.c Tue Dec 30 01:27:18 2014 (r276387) @@ -27,7 +27,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: libdwarf_info.c 3041 2014-05-18 15:11:03Z kaiwang27 $"); +ELFTC_VCSID("$Id: libdwarf_info.c 3136 2014-12-24 16:04:38Z kaiwang27 $"); int _dwarf_info_first_cu(Dwarf_Debug dbg, Dwarf_Error *error) @@ -153,7 +153,8 @@ _dwarf_info_load(Dwarf_Debug dbg, Dwarf_ return (ret); offset = dbg->dbg_info_off; ds = dbg->dbg_info_sec; - assert(ds != NULL); + if (ds == NULL) + return (DW_DLE_NO_ENTRY); } else { if (dbg->dbg_types_loaded) return (ret); Modified: vendor/elftoolchain/dist/libdwarf/libdwarf_init.c ============================================================================== --- vendor/elftoolchain/dist/libdwarf/libdwarf_init.c Tue Dec 30 00:00:42 2014 (r276386) +++ vendor/elftoolchain/dist/libdwarf/libdwarf_init.c Tue Dec 30 01:27:18 2014 (r276387) @@ -26,7 +26,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: libdwarf_init.c 3061 2014-06-02 00:42:41Z kaiwang27 $"); +ELFTC_VCSID("$Id: libdwarf_init.c 3136 2014-12-24 16:04:38Z kaiwang27 $"); static int _dwarf_consumer_init(Dwarf_Debug dbg, Dwarf_Error *error) @@ -93,12 +93,7 @@ _dwarf_consumer_init(Dwarf_Debug dbg, Dw } dbg->dbg_section[cnt].ds_name = NULL; - if (_dwarf_find_section(dbg, ".debug_abbrev") == NULL || - ((dbg->dbg_info_sec = _dwarf_find_section(dbg, ".debug_info")) == - NULL)) { - DWARF_SET_ERROR(dbg, error, DW_DLE_DEBUG_INFO_NULL); - return (DW_DLE_DEBUG_INFO_NULL); - } + dbg->dbg_info_sec = _dwarf_find_section(dbg, ".debug_info"); /* Try to find the optional DWARF4 .debug_types section. */ dbg->dbg_types_sec = _dwarf_find_next_types_section(dbg, NULL); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 01:28:32 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4FB4B805; Tue, 30 Dec 2014 01:28:32 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 212FC20A4; Tue, 30 Dec 2014 01:28:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU1SWeF078252; Tue, 30 Dec 2014 01:28:32 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU1SVRZ078251; Tue, 30 Dec 2014 01:28:31 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412300128.sBU1SVRZ078251@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Dec 2014 01:28:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276388 - vendor/elftoolchain/elftoolchain-r3136 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 01:28:32 -0000 Author: emaste Date: Tue Dec 30 01:28:31 2014 New Revision: 276388 URL: https://svnweb.freebsd.org/changeset/base/276388 Log: Tag elftoolchain r3136 Added: vendor/elftoolchain/elftoolchain-r3136/ - copied from r276387, vendor/elftoolchain/dist/ From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 02:32:50 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BFC5632B; Tue, 30 Dec 2014 02:32:50 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A970A1B39; Tue, 30 Dec 2014 02:32:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU2WoaU010401; Tue, 30 Dec 2014 02:32:50 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU2WnvO010397; Tue, 30 Dec 2014 02:32:49 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201412300232.sBU2WnvO010397@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 30 Dec 2014 02:32:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276389 - in stable/10: etc/mtree usr.bin/bmake usr.bin/bmake/tests usr.bin/make usr.bin/make/tests X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 02:32:50 -0000 Author: ngie Date: Tue Dec 30 02:32:48 2014 New Revision: 276389 URL: https://svnweb.freebsd.org/changeset/base/276389 Log: MFC r266074,r266104,r266147: r266074: Move old fmake tests into bmake and hook them to the build. This first step is mostly to prevent the code from rotting even further and to ensure these do not get wiped when fmake's code is removed from the tree. These tests are currently being skipped because they detect the underlying make is not fmake and thus disable themselves -- and the reason is that some of the tests fail, possibly due to legitimate bugs. Enabling them to run against bmake will come separately. Lastly, it would be ideal if these tests were fed upstream but they are not ready for that yet. In the interim, just put them under usr.bin/bmake/ while we sort things out. The existence of a different unit-tests directory within here makes me feel less guilty about this. Change confirmed working with a clean amd64 build. r266104: Undo changes to the generated Makefile. Move tests directory to proper location, including updating the test to work in the more-fragile fmake -> bmake bootstrap environment. r266147: Makefile.inc is also included by the tests subdirectory, which results in SUBDIRS having tests added to it, which fails. Work around this by checking to make sure tests exists before adding it to subdirs and work to get the generated file fixed so we can rename Makefile.inc to something else so it isn't automatically included by subdirs... Added: stable/10/usr.bin/bmake/tests/ - copied from r266074, head/usr.bin/bmake/tests/ Deleted: stable/10/usr.bin/make/tests/ Modified: stable/10/etc/mtree/BSD.tests.dist stable/10/usr.bin/bmake/Makefile stable/10/usr.bin/bmake/Makefile.inc stable/10/usr.bin/make/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/mtree/BSD.tests.dist ============================================================================== --- stable/10/etc/mtree/BSD.tests.dist Tue Dec 30 01:28:31 2014 (r276388) +++ stable/10/etc/mtree/BSD.tests.dist Tue Dec 30 02:32:48 2014 (r276389) @@ -169,21 +169,7 @@ usr.bin apply .. - calendar - .. - comm - .. - file2c - .. - join - .. - jot - .. - lastcomm - .. - m4 - .. - make + bmake archives fmt_44bsd .. @@ -281,6 +267,20 @@ .. .. .. + calendar + .. + comm + .. + file2c + .. + join + .. + jot + .. + lastcomm + .. + m4 + .. ncal .. printf Modified: stable/10/usr.bin/bmake/Makefile ============================================================================== --- stable/10/usr.bin/bmake/Makefile Tue Dec 30 01:28:31 2014 (r276388) +++ stable/10/usr.bin/bmake/Makefile Tue Dec 30 02:32:48 2014 (r276389) @@ -106,7 +106,6 @@ COPTS.meta.c += -DHAVE_FILEMON_H -I${FIL SUBDIR+= unit-tests .endif - MAN= ${PROG}.1 MAN1= ${MAN} Modified: stable/10/usr.bin/bmake/Makefile.inc ============================================================================== --- stable/10/usr.bin/bmake/Makefile.inc Tue Dec 30 01:28:31 2014 (r276388) +++ stable/10/usr.bin/bmake/Makefile.inc Tue Dec 30 02:32:48 2014 (r276389) @@ -21,5 +21,12 @@ PROG= make NO_SHARED?= YES .endif +# hack to not add tests to tests subdir since this is included from +# there and to avoid renaming things that require changes to generated +# files. +.if defined(MK_TESTS) && ${MK_TESTS} != no && exists(${.CURDIR}/tests) +SUBDIR+= tests +.endif + WARNS=3 CFLAGS+= -DNO_PWD_OVERRIDE Modified: stable/10/usr.bin/make/Makefile ============================================================================== --- stable/10/usr.bin/make/Makefile Tue Dec 30 01:28:31 2014 (r276388) +++ stable/10/usr.bin/make/Makefile Tue Dec 30 02:32:48 2014 (r276389) @@ -118,8 +118,4 @@ fmake.1: make.1 cp ${.ALLSRC} ${.TARGET} .endif -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - .include From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 02:34:01 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from hub.FreeBSD.org (hub.freebsd.org [IPv6:2001:1900:2254:206c::16:88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 954FF461; Tue, 30 Dec 2014 02:34:00 +0000 (UTC) Date: Tue, 30 Dec 2014 02:33:48 +0000 From: Glen Barber To: Ian Lepore Subject: Re: svn commit: r276383 - head/release Message-ID: <20141230023348.GA7902@hub.FreeBSD.org> References: <201412292232.sBTMWeMB096275@svn.freebsd.org> <1419893841.1018.269.camel@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="x+6KMIRAuhnl3hBn" Content-Disposition: inline In-Reply-To: <1419893841.1018.269.camel@freebsd.org> X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event User-Agent: Mutt/1.5.23 (2014-03-12) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 02:34:01 -0000 --x+6KMIRAuhnl3hBn Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 29, 2014 at 03:57:21PM -0700, Ian Lepore wrote: > On Mon, 2014-12-29 at 22:32 +0000, Glen Barber wrote: > > Author: gjb > > Date: Mon Dec 29 22:32:39 2014 > > New Revision: 276383 > > URL: https://svnweb.freebsd.org/changeset/base/276383 > >=20 > > Log: > > Delay dropping to the mountroot prompt for 10 seconds > > in case the root device is not yet ready. > > =20 > > Sponsored by: The FreeBSD Foundation > >=20 > > Modified: > > head/release/Makefile > >=20 > > Modified: head/release/Makefile > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/release/Makefile Mon Dec 29 21:59:44 2014 (r276382) > > +++ head/release/Makefile Mon Dec 29 22:32:39 2014 (r276383) > > @@ -201,6 +201,7 @@ system: packagesystem > > echo sendmail_enable=3D\"NONE\" > release/etc/rc.conf > > echo hostid_enable=3D\"NO\" >> release/etc/rc.conf > > echo debug.witness.trace=3D0 >> release/etc/sysctl.conf > > + echo kern.cam.boot_delay=3D\"10000\" >> release/boot/loader.conf > > cp ${.CURDIR}/rc.local release/etc > > touch ${.TARGET} > > =20 > > @@ -226,6 +227,7 @@ bootonly: packagesystem > > echo sendmail_enable=3D\"NONE\" > bootonly/etc/rc.conf > > echo hostid_enable=3D\"NO\" >> bootonly/etc/rc.conf > > echo debug.witness.trace=3D0 >> bootonly/etc/sysctl.conf > > + echo kern.cam.boot_delay=3D\"10000\" >> bootonly/boot/loader.conf > > cp ${.CURDIR}/rc.local bootonly/etc > > =20 > > dvd: > > @@ -248,6 +250,7 @@ dvd: > > echo sendmail_enable=3D\"NONE\" > ${.TARGET}/etc/rc.conf > > echo hostid_enable=3D\"NO\" >> ${.TARGET}/etc/rc.conf > > echo debug.witness.trace=3D0 >> ${.TARGET}/etc/sysctl.conf > > + echo kern.cam.boot_delay=3D\"10000\" >> ${.TARGET}/boot/loader.conf > > cp ${.CURDIR}/rc.local ${.TARGET}/etc > > touch ${.TARGET} > > =20 > >=20 >=20 > This will hard-wait for 10 seconds even if all devices are ready to roll > much earlier than that. An alternative is to set kern.mountroot.timeout > which will keep trying the available root devices until the timeout > expires and then drop you to the prompt, with the benefit of only > waiting 4 seconds if that's how long it really took the device to become > ready. (The default for kern.mountroot.timeout is 3 seconds.) >=20 Bah, you're right. I'll fix it once I get a few (unrelated, but conflicting) changes committed. Glen --x+6KMIRAuhnl3hBn Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJUog8HAAoJEAMUWKVHj+KTHIkP/A7AUq4SWfzAsH0+0FhOZ/ed izZXxpsg6LWG2BP4NjD0uBXiRScKXtHuBvhrRgtn5H1fahCxfZeePTdqP4UbCmFE nutz09S4F25w6du6uG82XZNJFgY2ZDSw0LGKKtzFdGvYMCyDh+GrIgSiIrF8w5NN qG8Z+favMgI6gUUOlG1l8YzmaMXS8WZ4YDRWsQKydFfigxQ8gJJZJCg/vCDKA/pF vUZh/s3/MX7H/nQo+89+tWjekHjcXJYsZWPCs5M8fWfboubrrIKNHYRCGjLACa6m qQJWowy3/wySlOrgzoM7rEIaFG/nnSgsBvRZuAePmZ2m1/P5e0orZ5XoD2NdnebG QDgyJmGctHlMWSjN+Dc/qeCiGAjVvCkYH1CGBa8WslWAH3o8mcHfeZ2asGQtLiLs 3aKWHiRgmOQr8WZ71EvIE0yrVt4UMOmtCW+9MkbTmYa2Y+2uEYJURAvfGZT3byhp 8GEm5iXd1xr6ZtChn+q4X6/eHGA65GyqObkSA3jYjwKuW+OpRuhPApAqgGlg2+bB Io+9yXeRnsHa9Qm6v24Ni1gJAcG4Z2IJgw46eOuSKYqrjlmzzWhIdZB1T7XoyhAB DiNVAOpEDcSsEuiqC9/7f5yyY3WW4mlZ2WvTT2d+J95tXXiTFVejAkINBPXVwnpA Xw2u9Ulcy/pYpQLbKPx4 =La4B -----END PGP SIGNATURE----- --x+6KMIRAuhnl3hBn-- From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 02:39:46 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1CA205F3; Tue, 30 Dec 2014 02:39:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 08FD11BCE; Tue, 30 Dec 2014 02:39:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU2djIW011211; Tue, 30 Dec 2014 02:39:45 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU2dj67011210; Tue, 30 Dec 2014 02:39:45 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201412300239.sBU2dj67011210@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 30 Dec 2014 02:39:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276390 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 02:39:46 -0000 Author: imp Date: Tue Dec 30 02:39:44 2014 New Revision: 276390 URL: https://svnweb.freebsd.org/changeset/base/276390 Log: The sn driver doesn't actually include microcode at the current time, although it may in the future. Or not since the ositech cards that might need it have become perhaps too rare to support. Modified: head/sys/conf/WITHOUT_SOURCELESS_UCODE Modified: head/sys/conf/WITHOUT_SOURCELESS_UCODE ============================================================================== --- head/sys/conf/WITHOUT_SOURCELESS_UCODE Tue Dec 30 02:32:48 2014 (r276389) +++ head/sys/conf/WITHOUT_SOURCELESS_UCODE Tue Dec 30 02:39:44 2014 (r276390) @@ -13,7 +13,6 @@ nodevice mwlfw nodevice ralfw nodevice runfw nodevice sf -nodevice sn nodevice ti nodevice txp nodevice ce From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 02:39:48 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D7D9D6DE; Tue, 30 Dec 2014 02:39:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C10B51BD0; Tue, 30 Dec 2014 02:39:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU2dmU5011261; Tue, 30 Dec 2014 02:39:48 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU2dmPc011260; Tue, 30 Dec 2014 02:39:48 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201412300239.sBU2dmPc011260@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 30 Dec 2014 02:39:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276391 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 02:39:49 -0000 Author: imp Date: Tue Dec 30 02:39:47 2014 New Revision: 276391 URL: https://svnweb.freebsd.org/changeset/base/276391 Log: Turns out, this isn't only called from i386... Modified: head/sys/kern/subr_module.c Modified: head/sys/kern/subr_module.c ============================================================================== --- head/sys/kern/subr_module.c Tue Dec 30 02:39:44 2014 (r276390) +++ head/sys/kern/subr_module.c Tue Dec 30 02:39:47 2014 (r276391) @@ -253,7 +253,7 @@ preload_fetch_size(caddr_t mod) return (*mdp); } -/* Called from locore on i386. Convert physical pointers to kvm. Sigh. */ +/* Called from locore. Convert physical pointers to kvm. Sigh. */ void preload_bootstrap_relocate(vm_offset_t offset) { From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 02:44:34 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AB2808B8; Tue, 30 Dec 2014 02:44:34 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7D5B61D0F; Tue, 30 Dec 2014 02:44:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU2iYuq015234; Tue, 30 Dec 2014 02:44:34 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU2iYY7015232; Tue, 30 Dec 2014 02:44:34 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412300244.sBU2iYY7015232@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Tue, 30 Dec 2014 02:44:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276392 - head/sys/amd64/vmm/amd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 02:44:34 -0000 Author: neel Date: Tue Dec 30 02:44:33 2014 New Revision: 276392 URL: https://svnweb.freebsd.org/changeset/base/276392 Log: Inject #UD into the guest when it executes either 'MONITOR' or 'MWAIT' on an AMD/SVM host. MFC after: 1 week Modified: head/sys/amd64/vmm/amd/svm.c head/sys/amd64/vmm/amd/vmcb.h Modified: head/sys/amd64/vmm/amd/svm.c ============================================================================== --- head/sys/amd64/vmm/amd/svm.c Tue Dec 30 02:39:47 2014 (r276391) +++ head/sys/amd64/vmm/amd/svm.c Tue Dec 30 02:44:33 2014 (r276392) @@ -461,6 +461,9 @@ vmcb_init(struct svm_softc *sc, int vcpu svm_enable_intercept(sc, vcpu, VMCB_CTRL1_INTCPT, VMCB_INTCPT_FERR_FREEZE); + svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_MONITOR); + svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_MWAIT); + /* * From section "Canonicalization and Consistency Checks" in APMv2 * the VMRUN intercept bit must be set to pass the consistency check. @@ -1140,6 +1143,10 @@ exit_reason_to_str(uint64_t reason) return ("msr"); case VMCB_EXIT_IRET: return ("iret"); + case VMCB_EXIT_MONITOR: + return ("monitor"); + case VMCB_EXIT_MWAIT: + return ("mwait"); default: snprintf(reasonbuf, sizeof(reasonbuf), "%#lx", reason); return (reasonbuf); @@ -1406,6 +1413,12 @@ svm_vmexit(struct svm_softc *svm_sc, int info2, info1, state->rip); } break; + case VMCB_EXIT_MONITOR: + vmexit->exitcode = VM_EXITCODE_MONITOR; + break; + case VMCB_EXIT_MWAIT: + vmexit->exitcode = VM_EXITCODE_MWAIT; + break; default: vmm_stat_incr(svm_sc->vm, vcpu, VMEXIT_UNKNOWN, 1); break; Modified: head/sys/amd64/vmm/amd/vmcb.h ============================================================================== --- head/sys/amd64/vmm/amd/vmcb.h Tue Dec 30 02:39:47 2014 (r276391) +++ head/sys/amd64/vmm/amd/vmcb.h Tue Dec 30 02:44:33 2014 (r276392) @@ -140,6 +140,8 @@ struct svm_softc; #define VMCB_EXIT_MSR 0x7C #define VMCB_EXIT_SHUTDOWN 0x7F #define VMCB_EXIT_VMSAVE 0x83 +#define VMCB_EXIT_MONITOR 0x8A +#define VMCB_EXIT_MWAIT 0x8B #define VMCB_EXIT_NPF 0x400 #define VMCB_EXIT_INVALID -1 From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 02:51:05 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E20B6A45; Tue, 30 Dec 2014 02:51:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CEE231D71; Tue, 30 Dec 2014 02:51:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU2p5V0019316; Tue, 30 Dec 2014 02:51:05 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU2p5xN019315; Tue, 30 Dec 2014 02:51:05 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412300251.sBU2p5xN019315@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 30 Dec 2014 02:51:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276393 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 02:51:06 -0000 Author: ian Date: Tue Dec 30 02:51:04 2014 New Revision: 276393 URL: https://svnweb.freebsd.org/changeset/base/276393 Log: Add arm option ARM_NEW_PMAP, to allow us to begin adding the new pmap code alongside the existing implementation and quickly toggle between the two implementations when testing. Once the new code is past its teething stage we can remove this option. Modified: head/sys/conf/options.arm Modified: head/sys/conf/options.arm ============================================================================== --- head/sys/conf/options.arm Tue Dec 30 02:44:33 2014 (r276392) +++ head/sys/conf/options.arm Tue Dec 30 02:51:04 2014 (r276393) @@ -5,6 +5,7 @@ ARM_CACHE_LOCK_ENABLE opt_global.h ARM_KERN_DIRECTMAP opt_vm.h ARM_L2_PIPT opt_global.h ARM_MANY_BOARD opt_global.h +ARM_NEW_PMAP opt_global.h ARM_WANT_TP_ADDRESS opt_global.h COUNTS_PER_SEC opt_timer.h CPU_ARM9 opt_global.h From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 02:56:32 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BFDC4BEF; Tue, 30 Dec 2014 02:56:32 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AB6801E9E; Tue, 30 Dec 2014 02:56:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU2uWCF020904; Tue, 30 Dec 2014 02:56:32 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU2uWWJ020903; Tue, 30 Dec 2014 02:56:32 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412300256.sBU2uWWJ020903@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 30 Dec 2014 02:56:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276394 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 02:56:32 -0000 Author: ian Date: Tue Dec 30 02:56:31 2014 New Revision: 276394 URL: https://svnweb.freebsd.org/changeset/base/276394 Log: Add armv6 implementations of these cache operations to avoid duplicating the #ifdef stuff at multiple points the functions are called from. Also rework the armv7 implementations so that the invalidate operations work from outermost to innermost cache level, and the writeback works from inner to outer levels. Modified: head/sys/arm/arm/cpu_asm-v6.S Modified: head/sys/arm/arm/cpu_asm-v6.S ============================================================================== --- head/sys/arm/arm/cpu_asm-v6.S Tue Dec 30 02:51:04 2014 (r276393) +++ head/sys/arm/arm/cpu_asm-v6.S Tue Dec 30 02:56:31 2014 (r276394) @@ -33,8 +33,6 @@ #include #include -#if __ARM_ARCH >= 7 - /* * Define cache functions used by startup code, which counts on the fact that * only r0-r3,r12 (ip) are modified and no stack space is used. These functions @@ -47,12 +45,18 @@ /* Invalidate D cache to PoC. (aka all cache levels)*/ ASENTRY_NP(dcache_inv_poc_all) +#if __ARM_ARCH == 6 + mcr CP15_DCIALL + DSB + bx lr +#else mrc CP15_CLIDR(r0) ands r0, r0, #0x07000000 - mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */ - beq 4f + mov r0, r0, lsr #23 /* Get LoC 'naturally' aligned for */ + beq 4f /* use in the CSSELR register below */ -1: mcr CP15_CSSELR(r0) /* set cache level */ +1: sub r0, #2 + mcr CP15_CSSELR(r0) /* set cache level */ isb mrc CP15_CCSIDR(r0) /* read CCSIDR */ @@ -83,28 +87,31 @@ ASENTRY_NP(dcache_inv_poc_all) 3: mrc CP15_CSSELR(r0) /* get cache level */ - add r0, r0, #2 /* next level */ - mrc CP15_CLIDR(r1) - ands r1, r1, #0x07000000 - mov r1, r1, lsr #23 /* Get LoC (naturally aligned) */ - cmp r1, r0 - bgt 1b + teq r0, #0 + bne 1b 4: dsb /* wait for stores to finish */ mov r0, #0 mcr CP15_CSSELR(r0) isb bx lr +#endif /* __ARM_ARCH == 6 */ END(dcache_inv_poc_all) /* Invalidate D cache to PoU. (aka L1 cache only)*/ ASENTRY_NP(dcache_inv_pou_all) +#if __ARM_ARCH == 6 + mcr CP15_DCIALL + DSB + bx lr +#else mrc CP15_CLIDR(r0) ands r0, r0, #0x07000000 mov r0, r0, lsr #26 /* Get LoUU (naturally aligned) */ beq 4f -1: mcr CP15_CSSELR(r0) /* set cache level */ +1: sub r0, #2 + mcr CP15_CSSELR(r0) /* set cache level */ isb mrc CP15_CCSIDR(r0) /* read CCSIDR */ @@ -125,7 +132,7 @@ ASENTRY_NP(dcache_inv_pou_all) mov r2, ip /* r2 now contains set way decr */ /* r3 = ways/sets, r2 = way decr, r1 = set decr, r0 and ip are free */ -2: mcr CP15_DCISW(r3) /* clean & invalidate line */ +2: mcr CP15_DCISW(r3) /* invalidate line */ movs r0, r3 /* get current way/set */ beq 3f /* at 0 means we are done */ movs r0, r0, lsl #10 /* clear way bits leaving only set bits*/ @@ -135,25 +142,27 @@ ASENTRY_NP(dcache_inv_pou_all) 3: mrc CP15_CSSELR(r0) /* get cache level */ - add r0, r0, #2 /* next level */ - mrc CP15_CLIDR(r1) - ands r1, r1, #0x07000000 - mov r1, r1, lsr #26 /* Get LoUU (naturally aligned) */ - cmp r1, r0 - bgt 1b + teq r0, #0 + bne 1b 4: dsb /* wait for stores to finish */ mov r0, #0 mcr CP15_CSSELR(r0) bx lr +#endif END(dcache_inv_pou_all) /* Write back and Invalidate D cache to PoC. */ ASENTRY_NP(dcache_wbinv_poc_all) +#if __ARM_ARCH == 6 + mcr CP15_DCCIALL + DSB + bx lr +#else mrc CP15_CLIDR(r0) ands r0, r0, #0x07000000 - mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */ beq 4f + mov r0, #0 /* Clean from inner to outer levels */ 1: mcr CP15_CSSELR(r0) /* set cache level */ isb @@ -176,7 +185,7 @@ ASENTRY_NP(dcache_wbinv_poc_all) mov r2, ip /* r2 now contains set way decr */ /* r3 = ways/sets, r2 = way decr, r1 = set decr, r0 and ip are free */ -2: mcr CP15_DCCISW(r3) /* clean & invalidate line */ +2: mcr CP15_DCCISW(r3) /* clean and invalidate line */ movs r0, r3 /* get current way/set */ beq 3f /* at 0 means we are done */ movs r0, r0, lsl #10 /* clear way bits leaving only set bits*/ @@ -191,12 +200,11 @@ ASENTRY_NP(dcache_wbinv_poc_all) ands r1, r1, #0x07000000 mov r1, r1, lsr #23 /* Get LoC (naturally aligned) */ cmp r1, r0 - bgt 1b + bne 1b 4: dsb /* wait for stores to finish */ mov r0, #0 mcr CP15_CSSELR(r0) bx lr +#endif /* __ARM_ARCH == 6 */ END(dcache_wbinv_poc_all) - -#endif /* __ARM_ARCH >= 7 */ From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 02:58:35 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 69605D39; Tue, 30 Dec 2014 02:58:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 55C081EDF; Tue, 30 Dec 2014 02:58:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU2wZZ8021166; Tue, 30 Dec 2014 02:58:35 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU2wZbr021165; Tue, 30 Dec 2014 02:58:35 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412300258.sBU2wZbr021165@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 30 Dec 2014 02:58:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276395 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 02:58:35 -0000 Author: ian Date: Tue Dec 30 02:58:34 2014 New Revision: 276395 URL: https://svnweb.freebsd.org/changeset/base/276395 Log: Export MAXCPU to the assembler code, needing by upcoming changes to locore.S. Modified: head/sys/arm/arm/genassym.c Modified: head/sys/arm/arm/genassym.c ============================================================================== --- head/sys/arm/arm/genassym.c Tue Dec 30 02:56:31 2014 (r276394) +++ head/sys/arm/arm/genassym.c Tue Dec 30 02:58:34 2014 (r276395) @@ -143,5 +143,6 @@ ASSYM(P_PROFIL, P_PROFIL); ASSYM(TRAPFRAMESIZE, sizeof(struct trapframe)); ASSYM(MAXCOMLEN, MAXCOMLEN); +ASSYM(MAXCPU, MAXCPU); ASSYM(NIRQ, NIRQ); ASSYM(PCPU_SIZE, sizeof(struct pcpu)); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 03:17:55 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4DA393E8; Tue, 30 Dec 2014 03:17:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 385FB6456B; Tue, 30 Dec 2014 03:17:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU3Htmv031381; Tue, 30 Dec 2014 03:17:55 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU3HsXu031379; Tue, 30 Dec 2014 03:17:54 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412300317.sBU3HsXu031379@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 30 Dec 2014 03:17:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276396 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 03:17:55 -0000 Author: ian Date: Tue Dec 30 03:17:53 2014 New Revision: 276396 URL: https://svnweb.freebsd.org/changeset/base/276396 Log: Rename locore.S to locore-v4.S and add a new locore-v6.S for starting up armv6/7 systems. We need to use some new armv6/7 features at startup and splitting the implemenations to separate files will be more maintainable than adding even more #ifdef sections to locore.S. Because of the standardized interfaces to cache and MMU operations in armv7, we can tolerate the kernel being entered with caches enabled. This allows running u-boot and loader(8) with caches enabled, and the performance improvement can be dramatic (boot times can be cut from over a minute to under 30 seconds). The new implementation also has more robust cache and mmu sequences for launching AP cores, and it paves the way for upcoming changes to the pmap code which will use the TEX remap feature. Changes in mp_machdep.c work with the new behavior in locore-v6 mp_entry, and also reuse the original boot-time page tables to get transitioned from physical to virtual addressing before installing the normal tables. Submitted by Svatopluk Kraus and Michal Meloun with some changes by me. Added: head/sys/arm/arm/locore-v4.S - copied unchanged from r276388, head/sys/arm/arm/locore.S head/sys/arm/arm/locore-v6.S (contents, props changed) Deleted: head/sys/arm/arm/locore.S Modified: head/sys/arm/arm/mp_machdep.c Copied: head/sys/arm/arm/locore-v4.S (from r276388, head/sys/arm/arm/locore.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/arm/locore-v4.S Tue Dec 30 03:17:53 2014 (r276396, copy of r276388, head/sys/arm/arm/locore.S) @@ -0,0 +1,596 @@ +/* $NetBSD: locore.S,v 1.14 2003/04/20 16:21:40 thorpej Exp $ */ + +/*- + * Copyright 2011 Semihalf + * Copyright (C) 1994-1997 Mark Brinicombe + * Copyright (C) 1994 Brini + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Brini. + * 4. The name of Brini may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY BRINI ``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 BRINI BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "assym.s" +#include +#include +#include +#include +#include + +__FBSDID("$FreeBSD$"); + +/* + * Sanity check the configuration. + * FLASHADDR and LOADERRAMADDR depend on PHYSADDR in some cases. + * ARMv4 and ARMv5 make assumptions on where they are loaded. + * + * TODO: Fix the ARMv4/v5 case. + */ +#if (defined(FLASHADDR) || defined(LOADERRAMADDR) || !defined(_ARM_ARCH_6)) && \ + !defined(PHYSADDR) +#error PHYSADDR must be defined for this configuration +#endif + +/* What size should this really be ? It is only used by initarm() */ +#define INIT_ARM_STACK_SIZE (2048 * 4) + +#define CPWAIT_BRANCH \ + sub pc, pc, #4 + +#define CPWAIT(tmp) \ + mrc p15, 0, tmp, c2, c0, 0 /* arbitrary read of CP15 */ ;\ + mov tmp, tmp /* wait for it to complete */ ;\ + CPWAIT_BRANCH /* branch to next insn */ + +/* + * This is for libkvm, and should be the address of the beginning + * of the kernel text segment (not necessarily the same as kernbase). + * + * These are being phased out. Newer copies of libkvm don't need these + * values as the information is added to the core file by inspecting + * the running kernel. + */ + .text + .align 0 +#ifdef PHYSADDR +.globl kernbase +.set kernbase,KERNBASE +.globl physaddr +.set physaddr,PHYSADDR +#endif + +/* + * On entry for FreeBSD boot ABI: + * r0 - metadata pointer or 0 (boothowto on AT91's boot2) + * r1 - if (r0 == 0) then metadata pointer + * On entry for Linux boot ABI: + * r0 - 0 + * r1 - machine type (passed as arg2 to initarm) + * r2 - Pointer to a tagged list or dtb image (phys addr) (passed as arg1 initarm) + * + * For both types of boot we gather up the args, put them in a struct arm_boot_params + * structure and pass that to initarm. + */ + .globl btext +btext: +ASENTRY_NP(_start) + STOP_UNWINDING /* Can't unwind into the bootloader! */ + + mov r9, r0 /* 0 or boot mode from boot2 */ + mov r8, r1 /* Save Machine type */ + mov ip, r2 /* Save meta data */ + mov fp, r3 /* Future expansion */ + + /* Make sure interrupts are disabled. */ + mrs r7, cpsr + orr r7, r7, #(PSR_I | PSR_F) + msr cpsr_c, r7 + +#if defined (FLASHADDR) && defined(LOADERRAMADDR) + /* Check if we're running from flash. */ + ldr r7, =FLASHADDR + /* + * If we're running with MMU disabled, test against the + * physical address instead. + */ + mrc p15, 0, r2, c1, c0, 0 + ands r2, r2, #CPU_CONTROL_MMU_ENABLE + ldreq r6, =PHYSADDR + ldrne r6, =LOADERRAMADDR + cmp r7, r6 + bls flash_lower + cmp r7, pc + bhi from_ram + b do_copy + +flash_lower: + cmp r6, pc + bls from_ram +do_copy: + ldr r7, =KERNBASE + adr r1, _start + ldr r0, Lreal_start + ldr r2, Lend + sub r2, r2, r0 + sub r0, r0, r7 + add r0, r0, r6 + mov r4, r0 + bl memcpy + ldr r0, Lram_offset + add pc, r4, r0 +Lram_offset: .word from_ram-_C_LABEL(_start) +from_ram: + nop +#endif + +disable_mmu: + /* Disable MMU for a while */ + mrc p15, 0, r2, c1, c0, 0 + bic r2, r2, #(CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE |\ + CPU_CONTROL_WBUF_ENABLE) + bic r2, r2, #(CPU_CONTROL_IC_ENABLE) + bic r2, r2, #(CPU_CONTROL_BPRD_ENABLE) + mcr p15, 0, r2, c1, c0, 0 + + nop + nop + nop + CPWAIT(r0) + +Lunmapped: + /* + * Build page table from scratch. + */ + + /* Find the delta between VA and PA */ + adr r0, Lpagetable + bl translate_va_to_pa + +#ifndef _ARM_ARCH_6 + /* + * Some of the older ports (the various XScale, mostly) assume + * that the memory before the kernel is mapped, and use it for + * the various stacks, page tables, etc. For those CPUs, map the + * 64 first MB of RAM, as it used to be. + */ + /* + * Map PA == VA + */ + ldr r5, =PHYSADDR + mov r1, r5 + mov r2, r5 + /* Map 64MiB, preserved over calls to build_pagetables */ + mov r3, #64 + bl build_pagetables + + /* Create the kernel map to jump to */ + mov r1, r5 + ldr r2, =(KERNBASE) + bl build_pagetables + ldr r5, =(KERNPHYSADDR) +#else + /* + * Map PA == VA + */ + /* Find the start kernels load address */ + adr r5, _start + ldr r2, =(L1_S_OFFSET) + bic r5, r2 + mov r1, r5 + mov r2, r5 + /* Map 64MiB, preserved over calls to build_pagetables */ + mov r3, #64 + bl build_pagetables + + /* Create the kernel map to jump to */ + mov r1, r5 + ldr r2, =(KERNVIRTADDR) + bl build_pagetables +#endif + +#if defined(SOCDEV_PA) && defined(SOCDEV_VA) + /* Create the custom map */ + ldr r1, =SOCDEV_PA + ldr r2, =SOCDEV_VA + bl build_pagetables +#endif + +#if defined(SMP) + orr r0, r0, #2 /* Set TTB shared memory flag */ +#endif + mcr p15, 0, r0, c2, c0, 0 /* Set TTB */ + mcr p15, 0, r0, c8, c7, 0 /* Flush TLB */ + +#if defined(CPU_ARM1136) || defined(CPU_ARM1176) || defined(CPU_CORTEXA) || defined(CPU_MV_PJ4B) || defined(CPU_KRAIT) + mov r0, #0 + mcr p15, 0, r0, c13, c0, 1 /* Set ASID to 0 */ +#endif + + /* Set the Domain Access register. Very important! */ + mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) + mcr p15, 0, r0, c3, c0, 0 + /* + * Enable MMU. + * On armv6 enable extended page tables, and set alignment checking + * to modulo-4 (CPU_CONTROL_UNAL_ENABLE) for the ldrd/strd + * instructions emitted by clang. + */ + mrc p15, 0, r0, c1, c0, 0 +#ifdef _ARM_ARCH_6 + orr r0, r0, #(CPU_CONTROL_V6_EXTPAGE | CPU_CONTROL_UNAL_ENABLE) + orr r0, r0, #(CPU_CONTROL_AFLT_ENABLE) + orr r0, r0, #(CPU_CONTROL_AF_ENABLE) +#endif + orr r0, r0, #(CPU_CONTROL_MMU_ENABLE) + mcr p15, 0, r0, c1, c0, 0 + nop + nop + nop + CPWAIT(r0) + +mmu_done: + nop + adr r1, .Lstart + ldmia r1, {r1, r2, sp} /* Set initial stack and */ + sub r2, r2, r1 /* get zero init data */ + mov r3, #0 +.L1: + str r3, [r1], #0x0004 /* get zero init data */ + subs r2, r2, #4 + bgt .L1 + ldr pc, .Lvirt_done + +virt_done: + mov r1, #28 /* loader info size is 28 bytes also second arg */ + subs sp, sp, r1 /* allocate arm_boot_params struct on stack */ + mov r0, sp /* loader info pointer is first arg */ + bic sp, sp, #7 /* align stack to 8 bytes */ + str r1, [r0] /* Store length of loader info */ + str r9, [r0, #4] /* Store r0 from boot loader */ + str r8, [r0, #8] /* Store r1 from boot loader */ + str ip, [r0, #12] /* store r2 from boot loader */ + str fp, [r0, #16] /* store r3 from boot loader */ + str r5, [r0, #20] /* store the physical address */ + adr r4, Lpagetable /* load the pagetable address */ + ldr r5, [r4, #4] + str r5, [r0, #24] /* store the pagetable address */ + mov fp, #0 /* trace back starts here */ + bl _C_LABEL(initarm) /* Off we go */ + + /* init arm will return the new stack pointer. */ + mov sp, r0 + + bl _C_LABEL(mi_startup) /* call mi_startup()! */ + + adr r0, .Lmainreturned + b _C_LABEL(panic) + /* NOTREACHED */ +END(_start) + +#define VA_TO_PA_POINTER(name, table) \ +name: ;\ + .word . ;\ + .word table + +/* + * Returns the physical address of a magic va to pa pointer. + * r0 - The pagetable data pointer. This must be built using the + * VA_TO_PA_POINTER macro. + * e.g. + * VA_TO_PA_POINTER(Lpagetable, pagetable) + * ... + * adr r0, Lpagetable + * bl translate_va_to_pa + * r0 will now contain the physical address of pagetable + * r1, r2 - Trashed + */ +translate_va_to_pa: + ldr r1, [r0] + sub r2, r1, r0 + /* At this point: r2 = VA - PA */ + + /* + * Find the physical address of the table. After these two + * instructions: + * r1 = va(pagetable) + * + * r0 = va(pagetable) - (VA - PA) + * = va(pagetable) - VA + PA + * = pa(pagetable) + */ + ldr r1, [r0, #4] + sub r0, r1, r2 + RET + +/* + * Builds the page table + * r0 - The table base address + * r1 - The physical address (trashed) + * r2 - The virtual address (trashed) + * r3 - The number of 1MiB sections + * r4 - Trashed + * + * Addresses must be 1MiB aligned + */ +build_pagetables: + /* Set the required page attributed */ + ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)) +#if defined(SMP) + orr r4, #(L1_SHARED) +#endif + orr r1, r4 + + /* Move the virtual address to the correct bit location */ + lsr r2, #(L1_S_SHIFT - 2) + + mov r4, r3 +1: + str r1, [r0, r2] + add r2, r2, #4 + add r1, r1, #(L1_S_SIZE) + adds r4, r4, #-1 + bhi 1b + + RET + +VA_TO_PA_POINTER(Lpagetable, pagetable) + +Lreal_start: + .word _start +Lend: + .word _edata + +.Lstart: + .word _edata + .word _ebss + .word svcstk + INIT_ARM_STACK_SIZE + +.Lvirt_done: + .word virt_done + +.Lmainreturned: + .asciz "main() returned" + .align 0 + + .bss +svcstk: + .space INIT_ARM_STACK_SIZE + +/* + * Memory for the initial pagetable. We are unable to place this in + * the bss as this will be cleared after the table is loaded. + */ + .section ".init_pagetable" + .align 14 /* 16KiB aligned */ +pagetable: + .space L1_TABLE_SIZE + + .text + .align 0 + +.Lcpufuncs: + .word _C_LABEL(cpufuncs) + +#if defined(SMP) + +.Lmpvirt_done: + .word mpvirt_done +VA_TO_PA_POINTER(Lstartup_pagetable_secondary, temp_pagetable) + +ASENTRY_NP(mpentry) + + /* Make sure interrupts are disabled. */ + mrs r7, cpsr + orr r7, r7, #(PSR_I | PSR_F) + msr cpsr_c, r7 + + /* Disable MMU. It should be disabled already, but make sure. */ + mrc p15, 0, r2, c1, c0, 0 + bic r2, r2, #(CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE |\ + CPU_CONTROL_WBUF_ENABLE) + bic r2, r2, #(CPU_CONTROL_IC_ENABLE) + bic r2, r2, #(CPU_CONTROL_BPRD_ENABLE) + mcr p15, 0, r2, c1, c0, 0 + nop + nop + nop + CPWAIT(r0) + +#if ARM_MMU_V6 + bl armv6_idcache_inv_all /* Modifies r0 only */ +#elif ARM_MMU_V7 + bl armv7_idcache_inv_all /* Modifies r0-r3, ip */ +#endif + + /* Load the page table physical address */ + adr r0, Lstartup_pagetable_secondary + bl translate_va_to_pa + /* Load the address the secondary page table */ + ldr r0, [r0] + + orr r0, r0, #2 /* Set TTB shared memory flag */ + mcr p15, 0, r0, c2, c0, 0 /* Set TTB */ + mcr p15, 0, r0, c8, c7, 0 /* Flush TLB */ + + mov r0, #0 + mcr p15, 0, r0, c13, c0, 1 /* Set ASID to 0 */ + + /* Set the Domain Access register. Very important! */ + mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) + mcr p15, 0, r0, c3, c0, 0 + /* Enable MMU */ + mrc p15, 0, r0, c1, c0, 0 + orr r0, r0, #CPU_CONTROL_V6_EXTPAGE + orr r0, r0, #CPU_CONTROL_AF_ENABLE + orr r0, r0, #(CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE |\ + CPU_CONTROL_WBUF_ENABLE) + orr r0, r0, #(CPU_CONTROL_IC_ENABLE) + orr r0, r0, #(CPU_CONTROL_BPRD_ENABLE) + mcr p15, 0, r0, c1, c0, 0 + nop + nop + nop + CPWAIT(r0) + + adr r1, .Lstart + ldmia r1, {r1, r2, sp} /* Set initial stack and */ + mrc p15, 0, r0, c0, c0, 5 + and r0, r0, #15 + mov r1, #2048 + mul r2, r1, r0 + sub sp, sp, r2 + str r1, [sp] + ldr pc, .Lmpvirt_done + +mpvirt_done: + + mov fp, #0 /* trace back starts here */ + bl _C_LABEL(init_secondary) /* Off we go */ + + adr r0, .Lmpreturned + b _C_LABEL(panic) + /* NOTREACHED */ + +.Lmpreturned: + .asciz "init_secondary() returned" + .align 0 +END(mpentry) +#endif + +ENTRY_NP(cpu_halt) + mrs r2, cpsr + bic r2, r2, #(PSR_MODE) + orr r2, r2, #(PSR_SVC32_MODE) + orr r2, r2, #(PSR_I | PSR_F) + msr cpsr_fsxc, r2 + + ldr r4, .Lcpu_reset_address + ldr r4, [r4] + + ldr r0, .Lcpufuncs + mov lr, pc + ldr pc, [r0, #CF_IDCACHE_WBINV_ALL] + mov lr, pc + ldr pc, [r0, #CF_L2CACHE_WBINV_ALL] + + /* + * Load the cpu_reset_needs_v4_MMU_disable flag to determine if it's + * necessary. + */ + + ldr r1, .Lcpu_reset_needs_v4_MMU_disable + ldr r1, [r1] + cmp r1, #0 + mov r2, #0 + + /* + * MMU & IDC off, 32 bit program & data space + * Hurl ourselves into the ROM + */ + mov r0, #(CPU_CONTROL_32BP_ENABLE | CPU_CONTROL_32BD_ENABLE) + mcr p15, 0, r0, c1, c0, 0 + mcrne p15, 0, r2, c8, c7, 0 /* nail I+D TLB on ARMv4 and greater */ + mov pc, r4 + + /* + * _cpu_reset_address contains the address to branch to, to complete + * the cpu reset after turning the MMU off + * This variable is provided by the hardware specific code + */ +.Lcpu_reset_address: + .word _C_LABEL(cpu_reset_address) + + /* + * cpu_reset_needs_v4_MMU_disable contains a flag that signals if the + * v4 MMU disable instruction needs executing... it is an illegal instruction + * on f.e. ARM6/7 that locks up the computer in an endless illegal + * instruction / data-abort / reset loop. + */ +.Lcpu_reset_needs_v4_MMU_disable: + .word _C_LABEL(cpu_reset_needs_v4_MMU_disable) +END(cpu_halt) + + +/* + * setjump + longjmp + */ +ENTRY(setjmp) + stmia r0, {r4-r14} + mov r0, #0x00000000 + RET +END(setjmp) + +ENTRY(longjmp) + ldmia r0, {r4-r14} + mov r0, #0x00000001 + RET +END(longjmp) + + .data + .global _C_LABEL(esym) +_C_LABEL(esym): .word _C_LABEL(end) + +ENTRY_NP(abort) + b _C_LABEL(abort) +END(abort) + +ENTRY_NP(sigcode) + mov r0, sp + add r0, r0, #SIGF_UC + + /* + * Call the sigreturn system call. + * + * We have to load r7 manually rather than using + * "ldr r7, =SYS_sigreturn" to ensure the value of szsigcode is + * correct. Using the alternative places esigcode at the address + * of the data rather than the address one past the data. + */ + + ldr r7, [pc, #12] /* Load SYS_sigreturn */ + swi SYS_sigreturn + + /* Well if that failed we better exit quick ! */ + + ldr r7, [pc, #8] /* Load SYS_exit */ + swi SYS_exit + + /* Branch back to retry SYS_sigreturn */ + b . - 16 +END(sigcode) + .word SYS_sigreturn + .word SYS_exit + + .align 0 + .global _C_LABEL(esigcode) + _C_LABEL(esigcode): + + .data + .global szsigcode +szsigcode: + .long esigcode-sigcode + +/* End of locore.S */ Added: head/sys/arm/arm/locore-v6.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/arm/locore-v6.S Tue Dec 30 03:17:53 2014 (r276396) @@ -0,0 +1,537 @@ +/*- + * Copyright 2004-2014 Olivier Houchard + * Copyright 2012-2014 Ian Lepore + * Copyright 2013-2014 Andrew Turner + * Copyright 2014 Svatopluk Kraus + * Copyright 2014 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "assym.s" +#include +#include +#include +#include +#include +#include +#include + +__FBSDID("$FreeBSD$"); + +#ifndef ARM_NEW_PMAP +#define PTE1_OFFSET L1_S_OFFSET +#define PTE1_SHIFT L1_S_SHIFT +#define PTE1_SIZE L1_S_SIZE +#endif + +/* A small statically-allocated stack used only during initarm() and AP startup. */ +#define INIT_ARM_STACK_SIZE 2048 + + .text + .align 0 + +/* + * On entry for FreeBSD boot ABI: + * r0 - metadata pointer or 0 (boothowto on AT91's boot2) + * r1 - if (r0 == 0) then metadata pointer + * On entry for Linux boot ABI: + * r0 - 0 + * r1 - machine type (passed as arg2 to initarm) + * r2 - Pointer to a tagged list or dtb image (phys addr) (passed as arg1 initarm) + * + * For both types of boot we gather up the args, put them in a struct arm_boot_params + * structure and pass that to initarm. + */ + .globl btext +btext: +ASENTRY_NP(_start) + STOP_UNWINDING /* Can't unwind into the bootloader! */ + + /* Make sure interrupts are disabled. */ + cpsid ifa + + mov r8, r0 /* 0 or boot mode from boot2 */ + mov r9, r1 /* Save Machine type */ + mov r10, r2 /* Save meta data */ + mov r11, r3 /* Future expansion */ + + /* + * Check whether data cache is enabled. If it is, then we know + * current tags are valid (not power-on garbage values) and there + * might be dirty lines that need cleaning. Disable cache to prevent + * new lines being allocated, then call wbinv_poc_all to clean it. + */ + mrc CP15_SCTLR(r7) + tst r7, #CPU_CONTROL_DC_ENABLE + beq 1f + bic r7, #CPU_CONTROL_DC_ENABLE + mcr CP15_SCTLR(r7) + ISB + bl dcache_wbinv_poc_all + + /* + * Now there are no dirty lines, but there may still be lines marked + * valid. Disable all caches and the MMU, and invalidate everything + * before setting up new page tables and re-enabling the mmu. + */ +1: + bic r7, #CPU_CONTROL_MMU_ENABLE + bic r7, #CPU_CONTROL_IC_ENABLE + bic r7, #CPU_CONTROL_UNAL_ENABLE + bic r7, #CPU_CONTROL_BPRD_ENABLE + bic r7, #CPU_CONTROL_SW_ENABLE + orr r7, #CPU_CONTROL_AFLT_ENABLE + orr r7, #CPU_CONTROL_VECRELOC + mcr CP15_SCTLR(r7) + ISB + bl dcache_inv_poc_all + mcr CP15_ICIALLU + ISB + + /* + * Build page table from scratch. + */ + + /* Calculate the physical address of the startup pagetable. */ + adr r0, Lpagetable + bl translate_va_to_pa + + /* + * Map PA == VA + */ + /* Find the start kernels load address */ + adr r5, _start + ldr r2, =(PTE1_OFFSET) + bic r5, r2 + mov r1, r5 + mov r2, r5 + /* Map 64MiB, preserved over calls to build_pagetables */ + mov r3, #64 + bl build_pagetables + + /* Create the kernel map to jump to */ + mov r1, r5 + ldr r2, =(KERNVIRTADDR) + bl build_pagetables + +#if defined(SOCDEV_PA) && defined(SOCDEV_VA) + /* Create the custom map used for early_printf(). */ + ldr r1, =SOCDEV_PA + ldr r2, =SOCDEV_VA + bl build_pagetables +#endif + bl init_mmu + + /* Switch to virtual addresses. */ + ldr pc, =1f +1: + + /* Setup stack, clear BSS */ + ldr r1, =.Lstart + ldmia r1, {r1, r2, sp} /* Set initial stack and */ + add sp, sp, #INIT_ARM_STACK_SIZE + sub r2, r2, r1 /* get zero init data */ + mov r3, #0 +2: + str r3, [r1], #0x0004 /* get zero init data */ + subs r2, r2, #4 + bgt 2b + + mov r1, #28 /* loader info size is 28 bytes also second arg */ + subs sp, sp, r1 /* allocate arm_boot_params struct on stack */ + mov r0, sp /* loader info pointer is first arg */ + bic sp, sp, #7 /* align stack to 8 bytes */ + str r1, [r0] /* Store length of loader info */ + str r8, [r0, #4] /* Store r0 from boot loader */ + str r9, [r0, #8] /* Store r1 from boot loader */ + str r10, [r0, #12] /* store r2 from boot loader */ + str r11, [r0, #16] /* store r3 from boot loader */ + str r5, [r0, #20] /* store the physical address */ + adr r4, Lpagetable /* load the pagetable address */ + ldr r5, [r4, #4] + str r5, [r0, #24] /* store the pagetable address */ + mov fp, #0 /* trace back starts here */ + bl _C_LABEL(initarm) /* Off we go */ + + /* init arm will return the new stack pointer. */ + mov sp, r0 + + bl _C_LABEL(mi_startup) /* call mi_startup()! */ + + ldr r0, =.Lmainreturned + b _C_LABEL(panic) + /* NOTREACHED */ +END(_start) + +#define VA_TO_PA_POINTER(name, table) \ +name: ;\ + .word . ;\ + .word table + +/* + * Returns the physical address of a magic va to pa pointer. + * r0 - The pagetable data pointer. This must be built using the + * VA_TO_PA_POINTER macro. + * e.g. + * VA_TO_PA_POINTER(Lpagetable, pagetable) + * ... + * adr r0, Lpagetable + * bl translate_va_to_pa + * r0 will now contain the physical address of pagetable + * r1, r2 - Trashed + */ +translate_va_to_pa: + ldr r1, [r0] + sub r2, r1, r0 + /* At this point: r2 = VA - PA */ + + /* + * Find the physical address of the table. After these two + * instructions: + * r1 = va(pagetable) + * + * r0 = va(pagetable) - (VA - PA) + * = va(pagetable) - VA + PA + * = pa(pagetable) + */ + ldr r1, [r0, #4] + sub r0, r1, r2 + mov pc, lr + +/* + * Init MMU + * r0 - The table base address + */ + +ASENTRY_NP(init_mmu) + + /* Setup TLB and MMU registers */ + mcr CP15_TTBR0(r0) /* Set TTB */ + mov r0, #0 + mcr CP15_CONTEXTIDR(r0) /* Set ASID to 0 */ + + /* Set the Domain Access register */ + mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) + mcr CP15_DACR(r0) + +#ifdef ARM_NEW_PMAP + /* + * Set TEX remap registers + * - All is set to uncacheable memory + */ + ldr r0, =0xAAAAA + mrc CP15_PRRR(r0) + mov r0, #0 + mcr CP15_NMRR(r0) +#endif + mcr CP15_TLBIALL /* Flush TLB */ + DSB + ISB + + /* Enable MMU */ + mrc CP15_SCTLR(r0) + orr r0, r0, #CPU_CONTROL_MMU_ENABLE + orr r0, r0, #CPU_CONTROL_V6_EXTPAGE +#ifdef ARM_NEW_PMAP + orr r0, r0, #CPU_CONTROL_TR_ENABLE +#endif + orr r0, r0, #CPU_CONTROL_AF_ENABLE + mcr CP15_SCTLR(r0) + DSB + ISB + mcr CP15_TLBIALL /* Flush TLB */ + mcr CP15_BPIALL /* Flush Branch predictor */ + ISB + mov pc, lr +END(init_mmu) + + +/* + * Init SMP coherent mode, enable caching and switch to final MMU table. + * Called with disabled caches + * r0 - The table base address + * r1 - clear bits for aux register + * r2 - set bits for aux register + */ +ASENTRY_NP(reinit_mmu) + push {r4-r11, lr} + mov r4, r0 + mov r5, r1 + mov r6, r2 + + /* !! Be very paranoid here !! */ + /* !! We cannot write single bit here !! */ + +#if 0 /* XXX writeback shouldn't be necessary */ + /* Write back and invalidate all integrated caches */ + bl dcache_wbinv_poc_all +#else + bl dcache_inv_pou_all +#endif + mcr CP15_ICIALLU + ISB + + /* Set auxiliary register */ + mrc CP15_ACTLR(r7) + bic r8, r7, r5 /* Mask bits */ + eor r8, r8, r6 /* Set bits */ + teq r7, r8 + mcrne CP15_ACTLR(r8) + ISB + + /* Enable caches. */ + mrc CP15_SCTLR(r7) + orr r7, #CPU_CONTROL_DC_ENABLE + orr r7, #CPU_CONTROL_IC_ENABLE + orr r7, #CPU_CONTROL_BPRD_ENABLE + mcr CP15_SCTLR(r7) + DSB + + mcr CP15_TTBR0(r4) /* Set new TTB */ + DSB + ISB + + /* Flush all TLBs */ + mcr CP15_TLBIALL + DSB + ISB + +#if 0 /* XXX writeback shouldn't be necessary */ + /* Write back and invalidate all integrated caches */ + bl dcache_wbinv_poc_all +#else + bl dcache_inv_pou_all +#endif + mcr CP15_ICIALLU + ISB + + pop {r4-r11, pc} +END(reinit_mmu) + + +/* + * Builds the page table + * r0 - The table base address + * r1 - The physical address (trashed) + * r2 - The virtual address (trashed) + * r3 - The number of 1MiB sections + * r4 - Trashed + * + * Addresses must be 1MiB aligned + */ +ASENTRY_NP(build_pagetables) + /* Set the required page attributed */ +#if defined(ARM_NEW_PMAP) + ldr r4, =PTE1_V|PTE1_A|PTE1_AP_KRW|TEX1_CLASS_0 +#elif defined(SMP) + ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)|L1_SHARED) +#else + ldr r4, =(L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW)) +#endif + orr r1, r4 + + /* Move the virtual address to the correct bit location */ + lsr r2, #(PTE1_SHIFT - 2) + + mov r4, r3 +1: + str r1, [r0, r2] + add r2, r2, #4 + add r1, r1, #(PTE1_SIZE) + adds r4, r4, #-1 + bhi 1b + + mov pc, lr + +VA_TO_PA_POINTER(Lpagetable, boot_pt1) + + +.Lstart: + .word _edata + .word _ebss + .word svcstk + +.Lmainreturned: + .asciz "main() returned" + .align 0 + + .bss +svcstk: + .space INIT_ARM_STACK_SIZE * MAXCPU + +/* + * Memory for the initial pagetable. We are unable to place this in + * the bss as this will be cleared after the table is loaded. + */ + .section ".init_pagetable" + .align 14 /* 16KiB aligned */ + .globl boot_pt1 +boot_pt1: + .space L1_TABLE_SIZE + + .text + .align 0 + +.Lcpufuncs: + .word _C_LABEL(cpufuncs) + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 03:19:47 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 69775545; Tue, 30 Dec 2014 03:19:47 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B96264597; Tue, 30 Dec 2014 03:19:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU3Jlrp031633; Tue, 30 Dec 2014 03:19:47 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU3Jljm031632; Tue, 30 Dec 2014 03:19:47 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412300319.sBU3Jljm031632@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 30 Dec 2014 03:19:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276397 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 03:19:47 -0000 Author: ian Date: Tue Dec 30 03:19:46 2014 New Revision: 276397 URL: https://svnweb.freebsd.org/changeset/base/276397 Log: Add a new locore.S that #includes the right (v4 or v6) implementation. The kernel build machinery really wants the entry point to be in a file named locore.S so doing this avoids a bunch of changes to the build system for relatively little benefit. Added: head/sys/arm/arm/locore.S (contents, props changed) Added: head/sys/arm/arm/locore.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/arm/locore.S Tue Dec 30 03:19:46 2014 (r276397) @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2014 Ian Lepore + * All rights excluded. + * + * 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$ + */ + +/* + * The kernel build machinery wants the file containing the entry point to be + * named locore.S, but we want separate files for v4 and v6 builds, so just + * include the arch-appropriate file from this properly-named file. + */ + +#include + +#if __ARM_ARCH >= 6 +#include "locore-v6.S" +#else +#include "locore-v4.S" +#endif From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 03:25:45 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 14CA774D; Tue, 30 Dec 2014 03:25:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2B66646AF; Tue, 30 Dec 2014 03:25:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU3Pif6035805; Tue, 30 Dec 2014 03:25:44 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU3PhfX035798; Tue, 30 Dec 2014 03:25:43 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412300325.sBU3PhfX035798@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Dec 2014 03:25:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276398 - in head/contrib/elftoolchain: elfcopy libdwarf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 03:25:45 -0000 Author: emaste Date: Tue Dec 30 03:25:42 2014 New Revision: 276398 URL: https://svnweb.freebsd.org/changeset/base/276398 Log: Update elftoolchain to upstream rev 3136 This fixes two strip(1) issues found during ports exp-run and adds a string hash implementation which significantly speeds up certain operations on objects with large numbers of symbols. This also improves libdwarf handling for stripped objects with .eh_frame or .debug_frame (but not other debug) sections. PR: 196107 Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/elfcopy/elfcopy.h head/contrib/elftoolchain/elfcopy/sections.c head/contrib/elftoolchain/elfcopy/segments.c head/contrib/elftoolchain/elfcopy/symbols.c head/contrib/elftoolchain/libdwarf/libdwarf_abbrev.c head/contrib/elftoolchain/libdwarf/libdwarf_info.c head/contrib/elftoolchain/libdwarf/libdwarf_init.c Directory Properties: head/contrib/elftoolchain/ (props changed) Modified: head/contrib/elftoolchain/elfcopy/elfcopy.h ============================================================================== --- head/contrib/elftoolchain/elfcopy/elfcopy.h Tue Dec 30 03:19:46 2014 (r276397) +++ head/contrib/elftoolchain/elfcopy/elfcopy.h Tue Dec 30 03:25:42 2014 (r276398) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: elfcopy.h 2970 2013-12-01 15:22:12Z kaiwang27 $ + * $Id: elfcopy.h 3134 2014-12-23 10:43:59Z kaiwang27 $ */ #include @@ -115,6 +115,7 @@ struct segment; /* Internal data structure for sections. */ struct section { struct segment *seg; /* containing segment */ + struct segment *seg_tls; /* tls segment */ const char *name; /* section name */ char *newname; /* new section name */ Elf_Scn *is; /* input scn */ Modified: head/contrib/elftoolchain/elfcopy/sections.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/sections.c Tue Dec 30 03:19:46 2014 (r276397) +++ head/contrib/elftoolchain/elfcopy/sections.c Tue Dec 30 03:25:42 2014 (r276398) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2007-2011 Kai Wang + * Copyright (c) 2007-2011,2014 Kai Wang * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,7 +35,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: sections.c 3126 2014-12-21 08:03:31Z kaiwang27 $"); +ELFTC_VCSID("$Id: sections.c 3134 2014-12-23 10:43:59Z kaiwang27 $"); static void add_gnu_debuglink(struct elfcopy *ecp); static uint32_t calc_crc32(const char *p, size_t len, uint32_t crc); @@ -485,7 +485,10 @@ insert_shtab(struct elfcopy *ecp, int ta if ((shtab = calloc(1, sizeof(*shtab))) == NULL) errx(EXIT_FAILURE, "calloc failed"); if (!tail) { - /* shoff of input object is used as a hint. */ + /* + * "shoff" of input object is used as a hint for section + * resync later. + */ if (gelf_getehdr(ecp->ein, &ieh) == NULL) errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", elf_errmsg(-1)); @@ -764,6 +767,15 @@ resync_sections(struct elfcopy *ecp) first = 0; } + /* + * Ignore TLS sections with load address 0 and without + * content. We don't need to adjust their file offset or + * VMA, only the size matters. + */ + if (s->seg_tls != NULL && s->type == SHT_NOBITS && + s->off == 0) + continue; + /* Align section offset. */ if (off <= s->off) { if (!s->loadable) @@ -1050,6 +1062,17 @@ copy_data(struct section *s) od->d_size = id->d_size; od->d_version = id->d_version; } + + /* + * Alignment Fixup. libelf does not allow the alignment for + * Elf_Data descriptor to be set to 0. In this case we workaround + * it by setting the alignment to 1. + * + * According to the ELF ABI, alignment 0 and 1 has the same + * meaning: the section has no alignment constraints. + */ + if (od->d_align == 0) + od->d_align = 1; } struct section * Modified: head/contrib/elftoolchain/elfcopy/segments.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/segments.c Tue Dec 30 03:19:46 2014 (r276397) +++ head/contrib/elftoolchain/elfcopy/segments.c Tue Dec 30 03:25:42 2014 (r276398) @@ -35,7 +35,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: segments.c 3113 2014-12-20 08:33:29Z kaiwang27 $"); +ELFTC_VCSID("$Id: segments.c 3134 2014-12-23 10:43:59Z kaiwang27 $"); static void insert_to_inseg_list(struct segment *seg, struct section *sec); @@ -86,6 +86,8 @@ add_to_inseg_list(struct elfcopy *ecp, s insert_to_inseg_list(seg, s); if (seg->type == PT_LOAD) s->seg = seg; + else if (seg->type == PT_TLS) + s->seg_tls = seg; s->lma = seg->addr + (s->off - seg->off); loadable = 1; } Modified: head/contrib/elftoolchain/elfcopy/symbols.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/symbols.c Tue Dec 30 03:19:46 2014 (r276397) +++ head/contrib/elftoolchain/elfcopy/symbols.c Tue Dec 30 03:25:42 2014 (r276398) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: symbols.c 3019 2014-04-17 14:53:40Z jkoshy $"); +ELFTC_VCSID("$Id: symbols.c 3135 2014-12-24 08:22:43Z kaiwang27 $"); /* Symbol table buffer structure. */ struct symbuf { @@ -46,12 +46,25 @@ struct symbuf { size_t gcap, lcap; /* buffer capacities. */ }; +struct sthash { + LIST_ENTRY(sthash) sh_next; + size_t sh_off; +}; +typedef LIST_HEAD(,sthash) hash_head; +#define STHASHSIZE 65536 + +struct strimpl { + char *buf; /* string table */ + size_t sz; /* entries */ + size_t cap; /* buffer capacity */ + hash_head hash[STHASHSIZE]; +}; + + /* String table buffer structure. */ struct strbuf { - char *l; /* local symbol string table */ - char *g; /* global symbol string table */ - size_t lsz, gsz; /* size of each kind */ - size_t gcap, lcap; /* buffer capacities. */ + struct strimpl l; /* local symbols */ + struct strimpl g; /* global symbols */ }; static int is_debug_symbol(unsigned char st_info); @@ -62,10 +75,12 @@ static int is_needed_symbol(struct elfco static int is_remove_symbol(struct elfcopy *ecp, size_t sc, int i, GElf_Sym *s, const char *name); static int is_weak_symbol(unsigned char st_info); -static int lookup_exact_string(const char *buf, size_t sz, const char *s); +static int lookup_exact_string(hash_head *hash, const char *buf, + const char *s); static int generate_symbols(struct elfcopy *ecp); static void mark_symbols(struct elfcopy *ecp, size_t sc); static int match_wildcard(const char *name, const char *pattern); +uint32_t str_hash(const char *s); /* Convenient bit vector operation macros. */ #define BIT_SET(v, n) (v[(n)>>3] |= 1U << ((n) & 7)) @@ -316,10 +331,10 @@ generate_symbols(struct elfcopy *ecp) if ((st_buf = calloc(1, sizeof(*st_buf))) == NULL) err(EXIT_FAILURE, "calloc failed"); sy_buf->gcap = sy_buf->lcap = 64; - st_buf->gcap = 256; - st_buf->lcap = 64; - st_buf->lsz = 1; /* '\0' at start. */ - st_buf->gsz = 0; + st_buf->g.cap = 256; + st_buf->l.cap = 64; + st_buf->l.sz = 1; /* '\0' at start. */ + st_buf->g.sz = 0; ecp->symtab->sz = 0; ecp->strtab->sz = 0; @@ -541,10 +556,10 @@ generate_symbols(struct elfcopy *ecp) /* Update st_name. */ if (ec == ELFCLASS32) sy_buf->g32[ecp->symndx[i]].st_name += - st_buf->lsz; + st_buf->l.sz; else sy_buf->g64[ecp->symndx[i]].st_name += - st_buf->lsz; + st_buf->l.sz; /* Update index map. */ ecp->symndx[i] += sy_buf->nls; @@ -633,6 +648,8 @@ free_symtab(struct elfcopy *ecp) { struct symbuf *sy_buf; struct strbuf *st_buf; + struct sthash *sh, *shtmp; + int i; if (ecp->symtab != NULL && ecp->symtab->buf != NULL) { sy_buf = ecp->symtab->buf; @@ -648,10 +665,22 @@ free_symtab(struct elfcopy *ecp) if (ecp->strtab != NULL && ecp->strtab->buf != NULL) { st_buf = ecp->strtab->buf; - if (st_buf->l != NULL) - free(st_buf->l); - if (st_buf->g != NULL) - free(st_buf->g); + if (st_buf->l.buf != NULL) + free(st_buf->l.buf); + if (st_buf->g.buf != NULL) + free(st_buf->g.buf); + for (i = 0; i < STHASHSIZE; i++) { + LIST_FOREACH_SAFE(sh, &st_buf->l.hash[i], sh_next, + shtmp) { + LIST_REMOVE(sh, sh_next); + free(sh); + } + LIST_FOREACH_SAFE(sh, &st_buf->g.hash[i], sh_next, + shtmp) { + LIST_REMOVE(sh, sh_next); + free(sh); + } + } } } @@ -689,10 +718,10 @@ create_external_symtab(struct elfcopy *e if ((st_buf = calloc(1, sizeof(*st_buf))) == NULL) err(EXIT_FAILURE, "calloc failed"); sy_buf->gcap = sy_buf->lcap = 64; - st_buf->gcap = 256; - st_buf->lcap = 64; - st_buf->lsz = 1; /* '\0' at start. */ - st_buf->gsz = 0; + st_buf->g.cap = 256; + st_buf->l.cap = 64; + st_buf->l.sz = 1; /* '\0' at start. */ + st_buf->g.sz = 0; ecp->symtab->sz = 0; ecp->strtab->sz = 0; @@ -729,6 +758,8 @@ add_to_symtab(struct elfcopy *ecp, const { struct symbuf *sy_buf; struct strbuf *st_buf; + struct sthash *sh; + uint32_t hash; int pos; /* @@ -761,32 +792,39 @@ add_to_symtab(struct elfcopy *ecp, const else \ sy_buf->B##SZ[sy_buf->n##B##s].st_shndx = \ ecp->secndx[st_shndx]; \ - if (st_buf->B == NULL) { \ - st_buf->B = calloc(st_buf->B##cap, sizeof(*st_buf->B)); \ - if (st_buf->B == NULL) \ + if (st_buf->B.buf == NULL) { \ + st_buf->B.buf = calloc(st_buf->B.cap, \ + sizeof(*st_buf->B.buf)); \ + if (st_buf->B.buf == NULL) \ err(EXIT_FAILURE, "malloc failed"); \ } \ if (name != NULL && *name != '\0') { \ - pos = lookup_exact_string(st_buf->B, \ - st_buf->B##sz, name); \ + pos = lookup_exact_string(st_buf->B.hash, st_buf->B.buf,\ + name); \ if (pos != -1) \ sy_buf->B##SZ[sy_buf->n##B##s].st_name = pos; \ else { \ sy_buf->B##SZ[sy_buf->n##B##s].st_name = \ - st_buf->B##sz; \ - while (st_buf->B##sz + strlen(name) >= \ - st_buf->B##cap - 1) { \ - st_buf->B##cap *= 2; \ - st_buf->B = realloc(st_buf->B, \ - st_buf->B##cap); \ - if (st_buf->B == NULL) \ + st_buf->B.sz; \ + while (st_buf->B.sz + strlen(name) >= \ + st_buf->B.cap - 1) { \ + st_buf->B.cap *= 2; \ + st_buf->B.buf = realloc(st_buf->B.buf, \ + st_buf->B.cap); \ + if (st_buf->B.buf == NULL) \ err(EXIT_FAILURE, \ "realloc failed"); \ } \ - strncpy(&st_buf->B[st_buf->B##sz], name, \ + if ((sh = malloc(sizeof(*sh))) == NULL) \ + err(EXIT_FAILURE, "malloc failed"); \ + sh->sh_off = st_buf->B.sz; \ + hash = str_hash(name); \ + LIST_INSERT_HEAD(&st_buf->B.hash[hash], sh, \ + sh_next); \ + strncpy(&st_buf->B.buf[st_buf->B.sz], name, \ strlen(name)); \ - st_buf->B[st_buf->B##sz + strlen(name)] = '\0'; \ - st_buf->B##sz += strlen(name) + 1; \ + st_buf->B.buf[st_buf->B.sz + strlen(name)] = '\0'; \ + st_buf->B.sz += strlen(name) + 1; \ } \ } else \ sy_buf->B##SZ[sy_buf->n##B##s].st_name = 0; \ @@ -811,7 +849,7 @@ add_to_symtab(struct elfcopy *ecp, const /* Update section size. */ ecp->symtab->sz = (sy_buf->nls + sy_buf->ngs) * (ecp->oec == ELFCLASS32 ? sizeof(Elf32_Sym) : sizeof(Elf64_Sym)); - ecp->strtab->sz = st_buf->lsz + st_buf->gsz; + ecp->strtab->sz = st_buf->l.sz + st_buf->g.sz; #undef _ADDSYM } @@ -831,9 +869,9 @@ finalize_external_symtab(struct elfcopy st_buf = ecp->strtab->buf; for (i = 0; (size_t) i < sy_buf->ngs; i++) { if (ecp->oec == ELFCLASS32) - sy_buf->g32[i].st_name += st_buf->lsz; + sy_buf->g32[i].st_name += st_buf->l.sz; else - sy_buf->g64[i].st_name += st_buf->lsz; + sy_buf->g64[i].st_name += st_buf->l.sz; } } @@ -920,19 +958,19 @@ create_symtab_data(struct elfcopy *ecp) elf_errmsg(-1)); lstdata->d_align = 1; lstdata->d_off = 0; - lstdata->d_buf = st_buf->l; - lstdata->d_size = st_buf->lsz; + lstdata->d_buf = st_buf->l.buf; + lstdata->d_size = st_buf->l.sz; lstdata->d_type = ELF_T_BYTE; lstdata->d_version = EV_CURRENT; - if (st_buf->gsz > 0) { + if (st_buf->g.sz > 0) { if ((gstdata = elf_newdata(st->os)) == NULL) errx(EXIT_FAILURE, "elf_newdata() failed: %s.", elf_errmsg(-1)); gstdata->d_align = 1; gstdata->d_off = lstdata->d_size; - gstdata->d_buf = st_buf->g; - gstdata->d_size = st_buf->gsz; + gstdata->d_buf = st_buf->g.buf; + gstdata->d_size = st_buf->g.sz; gstdata->d_type = ELF_T_BYTE; gstdata->d_version = EV_CURRENT; } @@ -1022,18 +1060,25 @@ lookup_symop_list(struct elfcopy *ecp, c } static int -lookup_exact_string(const char *buf, size_t sz, const char *s) +lookup_exact_string(hash_head *buckets, const char *buf, const char *s) { - const char *b; - size_t slen; - - slen = strlen(s); - for (b = buf; b < buf + sz; b += strlen(b) + 1) { - if (strlen(b) != slen) - continue; - if (!strcmp(b, s)) - return (b - buf); - } + struct sthash *sh; + uint32_t hash; + hash = str_hash(s); + LIST_FOREACH(sh, &buckets[hash], sh_next) + if (strcmp(buf + sh->sh_off, s) == 0) + return sh->sh_off; return (-1); } + +uint32_t +str_hash(const char *s) +{ + uint32_t hash; + + for (hash = 2166136261; *s; s++) + hash = (hash ^ *s) * 16777619; + + return (hash & (STHASHSIZE - 1)); +} Modified: head/contrib/elftoolchain/libdwarf/libdwarf_abbrev.c ============================================================================== --- head/contrib/elftoolchain/libdwarf/libdwarf_abbrev.c Tue Dec 30 03:19:46 2014 (r276397) +++ head/contrib/elftoolchain/libdwarf/libdwarf_abbrev.c Tue Dec 30 03:25:42 2014 (r276398) @@ -27,7 +27,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: libdwarf_abbrev.c 2070 2011-10-27 03:05:32Z jkoshy $"); +ELFTC_VCSID("$Id: libdwarf_abbrev.c 3136 2014-12-24 16:04:38Z kaiwang27 $"); int _dwarf_abbrev_add(Dwarf_CU cu, uint64_t entry, uint64_t tag, uint8_t children, @@ -180,7 +180,9 @@ _dwarf_abbrev_find(Dwarf_CU cu, uint64_t /* Load and search the abbrev table. */ ds = _dwarf_find_section(cu->cu_dbg, ".debug_abbrev"); - assert(ds != NULL); + if (ds == NULL) + return (DW_DLE_NO_ENTRY); + offset = cu->cu_abbrev_offset_cur; while (offset < ds->ds_size) { ret = _dwarf_abbrev_parse(cu->cu_dbg, cu, &offset, &ab, error); Modified: head/contrib/elftoolchain/libdwarf/libdwarf_info.c ============================================================================== --- head/contrib/elftoolchain/libdwarf/libdwarf_info.c Tue Dec 30 03:19:46 2014 (r276397) +++ head/contrib/elftoolchain/libdwarf/libdwarf_info.c Tue Dec 30 03:25:42 2014 (r276398) @@ -27,7 +27,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: libdwarf_info.c 3041 2014-05-18 15:11:03Z kaiwang27 $"); +ELFTC_VCSID("$Id: libdwarf_info.c 3136 2014-12-24 16:04:38Z kaiwang27 $"); int _dwarf_info_first_cu(Dwarf_Debug dbg, Dwarf_Error *error) @@ -153,7 +153,8 @@ _dwarf_info_load(Dwarf_Debug dbg, Dwarf_ return (ret); offset = dbg->dbg_info_off; ds = dbg->dbg_info_sec; - assert(ds != NULL); + if (ds == NULL) + return (DW_DLE_NO_ENTRY); } else { if (dbg->dbg_types_loaded) return (ret); Modified: head/contrib/elftoolchain/libdwarf/libdwarf_init.c ============================================================================== --- head/contrib/elftoolchain/libdwarf/libdwarf_init.c Tue Dec 30 03:19:46 2014 (r276397) +++ head/contrib/elftoolchain/libdwarf/libdwarf_init.c Tue Dec 30 03:25:42 2014 (r276398) @@ -26,7 +26,7 @@ #include "_libdwarf.h" -ELFTC_VCSID("$Id: libdwarf_init.c 3061 2014-06-02 00:42:41Z kaiwang27 $"); +ELFTC_VCSID("$Id: libdwarf_init.c 3136 2014-12-24 16:04:38Z kaiwang27 $"); static int _dwarf_consumer_init(Dwarf_Debug dbg, Dwarf_Error *error) @@ -93,12 +93,7 @@ _dwarf_consumer_init(Dwarf_Debug dbg, Dw } dbg->dbg_section[cnt].ds_name = NULL; - if (_dwarf_find_section(dbg, ".debug_abbrev") == NULL || - ((dbg->dbg_info_sec = _dwarf_find_section(dbg, ".debug_info")) == - NULL)) { - DWARF_SET_ERROR(dbg, error, DW_DLE_DEBUG_INFO_NULL); - return (DW_DLE_DEBUG_INFO_NULL); - } + dbg->dbg_info_sec = _dwarf_find_section(dbg, ".debug_info"); /* Try to find the optional DWARF4 .debug_types section. */ dbg->dbg_types_sec = _dwarf_find_next_types_section(dbg, NULL); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 03:35:27 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BB836C42; Tue, 30 Dec 2014 03:35:27 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A21C564876; Tue, 30 Dec 2014 03:35:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU3ZRVM040534; Tue, 30 Dec 2014 03:35:27 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU3ZR6X040533; Tue, 30 Dec 2014 03:35:27 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201412300335.sBU3ZR6X040533@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 30 Dec 2014 03:35:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276400 - head/release X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 03:35:27 -0000 Author: gjb Date: Tue Dec 30 03:35:26 2014 New Revision: 276400 URL: https://svnweb.freebsd.org/changeset/base/276400 Log: Use the correct loader.conf(5) entry for deferring the mountroot prompt. Prodded by: ian Sponsored by: The FreeBSD Foundation Modified: head/release/Makefile Modified: head/release/Makefile ============================================================================== --- head/release/Makefile Tue Dec 30 03:31:42 2014 (r276399) +++ head/release/Makefile Tue Dec 30 03:35:26 2014 (r276400) @@ -201,7 +201,7 @@ system: packagesystem echo sendmail_enable=\"NONE\" > release/etc/rc.conf echo hostid_enable=\"NO\" >> release/etc/rc.conf echo debug.witness.trace=0 >> release/etc/sysctl.conf - echo kern.cam.boot_delay=\"10000\" >> release/boot/loader.conf + echo vfs.mountroot.timeout=\"10\" >> release/boot/loader.conf cp ${.CURDIR}/rc.local release/etc touch ${.TARGET} @@ -227,7 +227,7 @@ bootonly: packagesystem echo sendmail_enable=\"NONE\" > bootonly/etc/rc.conf echo hostid_enable=\"NO\" >> bootonly/etc/rc.conf echo debug.witness.trace=0 >> bootonly/etc/sysctl.conf - echo kern.cam.boot_delay=\"10000\" >> bootonly/boot/loader.conf + echo vfs.mountroot.timeout=\"10\" >> bootonly/boot/loader.conf cp ${.CURDIR}/rc.local bootonly/etc dvd: @@ -250,7 +250,7 @@ dvd: echo sendmail_enable=\"NONE\" > ${.TARGET}/etc/rc.conf echo hostid_enable=\"NO\" >> ${.TARGET}/etc/rc.conf echo debug.witness.trace=0 >> ${.TARGET}/etc/sysctl.conf - echo kern.cam.boot_delay=\"10000\" >> ${.TARGET}/boot/loader.conf + echo vfs.mountroot.timeout=\"10\" >> ${.TARGET}/boot/loader.conf cp ${.CURDIR}/rc.local ${.TARGET}/etc touch ${.TARGET} From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 07:08:31 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9107D55F; Tue, 30 Dec 2014 07:08:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7CCEE2678; Tue, 30 Dec 2014 07:08:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU78VMw036254; Tue, 30 Dec 2014 07:08:31 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU78VS1036253; Tue, 30 Dec 2014 07:08:31 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412300708.sBU78VS1036253@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Tue, 30 Dec 2014 07:08:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276402 - head/sys/amd64/vmm/amd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 07:08:31 -0000 Author: neel Date: Tue Dec 30 07:08:30 2014 New Revision: 276402 URL: https://svnweb.freebsd.org/changeset/base/276402 Log: Remove "svn:mergeinfo" property that was dragged along when these files were svn copied in r273375. Suggested by: ngie, gjb Modified: Directory Properties: head/sys/amd64/vmm/amd/npt.c (props changed) head/sys/amd64/vmm/amd/npt.h (props changed) head/sys/amd64/vmm/amd/svm.c (props changed) head/sys/amd64/vmm/amd/svm.h (props changed) head/sys/amd64/vmm/amd/svm_genassym.c (props changed) head/sys/amd64/vmm/amd/svm_msr.c (props changed) head/sys/amd64/vmm/amd/svm_msr.h (props changed) head/sys/amd64/vmm/amd/svm_softc.h (props changed) head/sys/amd64/vmm/amd/svm_support.S (props changed) head/sys/amd64/vmm/amd/vmcb.c (props changed) head/sys/amd64/vmm/amd/vmcb.h (props changed) From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 08:24:19 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 12AD8486; Tue, 30 Dec 2014 08:24:19 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EEFA73400; Tue, 30 Dec 2014 08:24:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU8OI9D073250; Tue, 30 Dec 2014 08:24:18 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU8OF3D073229; Tue, 30 Dec 2014 08:24:15 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412300824.sBU8OF3D073229@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Tue, 30 Dec 2014 08:24:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276403 - in stable/10: sys/amd64/include sys/amd64/vmm sys/amd64/vmm/amd sys/amd64/vmm/intel sys/amd64/vmm/io sys/modules/vmm usr.sbin/bhyve usr.sbin/bhyvectl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 08:24:19 -0000 Author: neel Date: Tue Dec 30 08:24:14 2014 New Revision: 276403 URL: https://svnweb.freebsd.org/changeset/base/276403 Log: MFC r273375 Add support AMD processors with the SVM/AMD-V hardware extensions. MFC r273749 Remove bhyve SVM feature printf's now that they are available in the general CPU feature detection code. MFC r273766 Add missing 'break' pointed out by Coverity CID 1249760. MFC r276098 Allow ktr(4) tracing of all guest exceptions via the tunable "hw.vmm.trace_guest_exceptions" MFC r276392 Inject #UD into the guest when it executes either 'MONITOR' or 'MWAIT' on an AMD/SVM host. MFC r276402 Remove "svn:mergeinfo" property that was dragged along when these files were svn copied in r273375. Added: - copied unchanged from r273375, head/sys/amd64/vmm/amd/npt.c - copied unchanged from r273375, head/sys/amd64/vmm/amd/npt.h stable/10/sys/amd64/vmm/amd/svm.c (contents, props changed) - copied, changed from r273375, head/sys/amd64/vmm/amd/svm.c - copied unchanged from r273375, head/sys/amd64/vmm/amd/svm.h - copied unchanged from r273375, head/sys/amd64/vmm/amd/svm_genassym.c - copied unchanged from r273375, head/sys/amd64/vmm/amd/svm_msr.c - copied unchanged from r273375, head/sys/amd64/vmm/amd/svm_msr.h - copied unchanged from r273375, head/sys/amd64/vmm/amd/svm_softc.h - copied unchanged from r273375, head/sys/amd64/vmm/amd/svm_support.S stable/10/sys/amd64/vmm/amd/vmcb.c (contents, props changed) - copied, changed from r273375, head/sys/amd64/vmm/amd/vmcb.c stable/10/sys/amd64/vmm/amd/vmcb.h (contents, props changed) - copied, changed from r273375, head/sys/amd64/vmm/amd/vmcb.h Directory Properties: stable/10/sys/amd64/vmm/amd/npt.c (props changed) stable/10/sys/amd64/vmm/amd/npt.h (props changed) stable/10/sys/amd64/vmm/amd/svm.h (props changed) stable/10/sys/amd64/vmm/amd/svm_genassym.c (props changed) stable/10/sys/amd64/vmm/amd/svm_msr.c (props changed) stable/10/sys/amd64/vmm/amd/svm_msr.h (props changed) stable/10/sys/amd64/vmm/amd/svm_softc.h (props changed) stable/10/sys/amd64/vmm/amd/svm_support.S (props changed) Modified: stable/10/sys/amd64/include/vmm.h stable/10/sys/amd64/include/vmm_instruction_emul.h stable/10/sys/amd64/vmm/amd/amdv.c stable/10/sys/amd64/vmm/intel/vmcs.c stable/10/sys/amd64/vmm/intel/vmcs.h stable/10/sys/amd64/vmm/intel/vmx.c stable/10/sys/amd64/vmm/io/vlapic.c stable/10/sys/amd64/vmm/vmm.c stable/10/sys/amd64/vmm/vmm_instruction_emul.c stable/10/sys/amd64/vmm/x86.c stable/10/sys/modules/vmm/Makefile stable/10/usr.sbin/bhyve/bhyverun.c stable/10/usr.sbin/bhyve/xmsr.c stable/10/usr.sbin/bhyvectl/bhyvectl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/include/vmm.h ============================================================================== --- stable/10/sys/amd64/include/vmm.h Tue Dec 30 07:08:30 2014 (r276402) +++ stable/10/sys/amd64/include/vmm.h Tue Dec 30 08:24:14 2014 (r276403) @@ -357,6 +357,8 @@ void vm_copyin(struct vm *vm, int vcpuid void *kaddr, size_t len); void vm_copyout(struct vm *vm, int vcpuid, const void *kaddr, struct vm_copyinfo *copyinfo, size_t len); + +int vcpu_trace_exceptions(struct vm *vm, int vcpuid); #endif /* KERNEL */ #define VM_MAXCPU 16 /* maximum virtual cpus */ @@ -487,6 +489,7 @@ enum vm_exitcode { VM_EXITCODE_TASK_SWITCH, VM_EXITCODE_MONITOR, VM_EXITCODE_MWAIT, + VM_EXITCODE_SVM, VM_EXITCODE_MAX }; @@ -564,6 +567,14 @@ struct vm_exit { int inst_type; int inst_error; } vmx; + /* + * SVM specific payload. + */ + struct { + uint64_t exitcode; + uint64_t exitinfo1; + uint64_t exitinfo2; + } svm; struct { uint32_t code; /* ecx value */ uint64_t wval; Modified: stable/10/sys/amd64/include/vmm_instruction_emul.h ============================================================================== --- stable/10/sys/amd64/include/vmm_instruction_emul.h Tue Dec 30 07:08:30 2014 (r276402) +++ stable/10/sys/amd64/include/vmm_instruction_emul.h Tue Dec 30 08:24:14 2014 (r276403) @@ -93,7 +93,7 @@ int vmm_fetch_instruction(struct vm *vm, int vmm_gla2gpa(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa); -void vie_init(struct vie *vie); +void vie_init(struct vie *vie, const char *inst_bytes, int inst_length); /* * Decode the instruction fetched into 'vie' so it can be emulated. Modified: stable/10/sys/amd64/vmm/amd/amdv.c ============================================================================== --- stable/10/sys/amd64/vmm/amd/amdv.c Tue Dec 30 07:08:30 2014 (r276402) +++ stable/10/sys/amd64/vmm/amd/amdv.c Tue Dec 30 08:24:14 2014 (r276403) @@ -38,149 +38,6 @@ __FBSDID("$FreeBSD$"); #include "io/iommu.h" static int -amdv_init(int ipinum) -{ - - printf("amdv_init: not implemented\n"); - return (ENXIO); -} - -static int -amdv_cleanup(void) -{ - - printf("amdv_cleanup: not implemented\n"); - return (ENXIO); -} - -static void -amdv_resume(void) -{ -} - -static void * -amdv_vminit(struct vm *vm, struct pmap *pmap) -{ - - printf("amdv_vminit: not implemented\n"); - return (NULL); -} - -static int -amdv_vmrun(void *arg, int vcpu, register_t rip, struct pmap *pmap, - void *rptr, void *sptr) -{ - - printf("amdv_vmrun: not implemented\n"); - return (ENXIO); -} - -static void -amdv_vmcleanup(void *arg) -{ - - printf("amdv_vmcleanup: not implemented\n"); - return; -} - -static int -amdv_getreg(void *arg, int vcpu, int regnum, uint64_t *retval) -{ - - printf("amdv_getreg: not implemented\n"); - return (EINVAL); -} - -static int -amdv_setreg(void *arg, int vcpu, int regnum, uint64_t val) -{ - - printf("amdv_setreg: not implemented\n"); - return (EINVAL); -} - -static int -amdv_getdesc(void *vmi, int vcpu, int num, struct seg_desc *desc) -{ - - printf("amdv_get_desc: not implemented\n"); - return (EINVAL); -} - -static int -amdv_setdesc(void *vmi, int vcpu, int num, struct seg_desc *desc) -{ - - printf("amdv_get_desc: not implemented\n"); - return (EINVAL); -} - -static int -amdv_getcap(void *arg, int vcpu, int type, int *retval) -{ - - printf("amdv_getcap: not implemented\n"); - return (EINVAL); -} - -static int -amdv_setcap(void *arg, int vcpu, int type, int val) -{ - - printf("amdv_setcap: not implemented\n"); - return (EINVAL); -} - -static struct vmspace * -amdv_vmspace_alloc(vm_offset_t min, vm_offset_t max) -{ - - printf("amdv_vmspace_alloc: not implemented\n"); - return (NULL); -} - -static void -amdv_vmspace_free(struct vmspace *vmspace) -{ - - printf("amdv_vmspace_free: not implemented\n"); - return; -} - -static struct vlapic * -amdv_vlapic_init(void *arg, int vcpuid) -{ - - panic("amdv_vlapic_init: not implmented"); -} - -static void -amdv_vlapic_cleanup(void *arg, struct vlapic *vlapic) -{ - - panic("amdv_vlapic_cleanup: not implemented"); -} - -struct vmm_ops vmm_ops_amd = { - amdv_init, - amdv_cleanup, - amdv_resume, - amdv_vminit, - amdv_vmrun, - amdv_vmcleanup, - amdv_getreg, - amdv_setreg, - amdv_getdesc, - amdv_setdesc, - amdv_getcap, - amdv_setcap, - amdv_vmspace_alloc, - amdv_vmspace_free, - amdv_vlapic_init, - amdv_vlapic_cleanup, -}; - -static int amd_iommu_init(void) { Copied: stable/10/sys/amd64/vmm/amd/npt.c (from r273375, head/sys/amd64/vmm/amd/npt.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/amd64/vmm/amd/npt.c Tue Dec 30 08:24:14 2014 (r276403, copy of r273375, head/sys/amd64/vmm/amd/npt.c) @@ -0,0 +1,87 @@ +/*- + * Copyright (c) 2013 Anish Gupta (akgupt3@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include "npt.h" + +SYSCTL_DECL(_hw_vmm); +SYSCTL_NODE(_hw_vmm, OID_AUTO, npt, CTLFLAG_RW, NULL, NULL); + +static int npt_flags; +SYSCTL_INT(_hw_vmm_npt, OID_AUTO, pmap_flags, CTLFLAG_RD, + &npt_flags, 0, NULL); + +#define NPT_IPIMASK 0xFF + +/* + * AMD nested page table init. + */ +int +svm_npt_init(int ipinum) +{ + int enable_superpage = 1; + + npt_flags = ipinum & NPT_IPIMASK; + TUNABLE_INT_FETCH("hw.vmm.npt.enable_superpage", &enable_superpage); + if (enable_superpage) + npt_flags |= PMAP_PDE_SUPERPAGE; + + return (0); +} + +static int +npt_pinit(pmap_t pmap) +{ + + return (pmap_pinit_type(pmap, PT_RVI, npt_flags)); +} + +struct vmspace * +svm_npt_alloc(vm_offset_t min, vm_offset_t max) +{ + + return (vmspace_alloc(min, max, npt_pinit)); +} + +void +svm_npt_free(struct vmspace *vmspace) +{ + + vmspace_free(vmspace); +} Copied: stable/10/sys/amd64/vmm/amd/npt.h (from r273375, head/sys/amd64/vmm/amd/npt.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/amd64/vmm/amd/npt.h Tue Dec 30 08:24:14 2014 (r276403, copy of r273375, head/sys/amd64/vmm/amd/npt.h) @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2013 Anish Gupta (akgupt3@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _SVM_NPT_H_ +#define _SVM_NPT_H_ + +int svm_npt_init(int ipinum); +struct vmspace *svm_npt_alloc(vm_offset_t min, vm_offset_t max); +void svm_npt_free(struct vmspace *vmspace); + +#endif /* _SVM_NPT_H_ */ Copied and modified: stable/10/sys/amd64/vmm/amd/svm.c (from r273375, head/sys/amd64/vmm/amd/svm.c) ============================================================================== --- head/sys/amd64/vmm/amd/svm.c Tue Oct 21 07:10:43 2014 (r273375, copy source) +++ stable/10/sys/amd64/vmm/amd/svm.c Tue Dec 30 08:24:14 2014 (r276403) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include "vmm_lapic.h" @@ -174,30 +175,9 @@ check_svm_features(void) do_cpuid(0x8000000A, regs); svm_feature = regs[3]; - printf("SVM: Revision %d\n", regs[0] & 0xFF); - printf("SVM: NumASID %u\n", regs[1]); - nasid = regs[1]; KASSERT(nasid > 1, ("Insufficient ASIDs for guests: %#x", nasid)); - printf("SVM: Features 0x%b\n", svm_feature, - "\020" - "\001NP" /* Nested paging */ - "\002LbrVirt" /* LBR virtualization */ - "\003SVML" /* SVM lock */ - "\004NRIPS" /* NRIP save */ - "\005TscRateMsr" /* MSR based TSC rate control */ - "\006VmcbClean" /* VMCB clean bits */ - "\007FlushByAsid" /* Flush by ASID */ - "\010DecodeAssist" /* Decode assist */ - "\011" - "\012" - "\013PauseFilter" - "\014" - "\015PauseFilterThreshold" - "\016AVIC" - ); - /* bhyve requires the Nested Paging feature */ if (!(svm_feature & AMD_CPUID_SVM_NP)) { printf("SVM: Nested Paging feature not available.\n"); @@ -450,8 +430,24 @@ vmcb_init(struct svm_softc *sc, int vcpu svm_enable_intercept(sc, vcpu, VMCB_CR_INTCPT, mask); } - /* Intercept Machine Check exceptions. */ - svm_enable_intercept(sc, vcpu, VMCB_EXC_INTCPT, BIT(IDT_MC)); + + /* + * Intercept everything when tracing guest exceptions otherwise + * just intercept machine check exception. + */ + if (vcpu_trace_exceptions(sc->vm, vcpu)) { + for (n = 0; n < 32; n++) { + /* + * Skip unimplemented vectors in the exception bitmap. + */ + if (n == 2 || n == 9) { + continue; + } + svm_enable_intercept(sc, vcpu, VMCB_EXC_INTCPT, BIT(n)); + } + } else { + svm_enable_intercept(sc, vcpu, VMCB_EXC_INTCPT, BIT(IDT_MC)); + } /* Intercept various events (for e.g. I/O, MSR and CPUID accesses) */ svm_enable_intercept(sc, vcpu, VMCB_CTRL1_INTCPT, VMCB_INTCPT_IO); @@ -465,6 +461,9 @@ vmcb_init(struct svm_softc *sc, int vcpu svm_enable_intercept(sc, vcpu, VMCB_CTRL1_INTCPT, VMCB_INTCPT_FERR_FREEZE); + svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_MONITOR); + svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_MWAIT); + /* * From section "Canonicalization and Consistency Checks" in APMv2 * the VMRUN intercept bit must be set to pass the consistency check. @@ -1144,6 +1143,10 @@ exit_reason_to_str(uint64_t reason) return ("msr"); case VMCB_EXIT_IRET: return ("iret"); + case VMCB_EXIT_MONITOR: + return ("monitor"); + case VMCB_EXIT_MWAIT: + return ("mwait"); default: snprintf(reasonbuf, sizeof(reasonbuf), "%#lx", reason); return (reasonbuf); @@ -1197,9 +1200,10 @@ svm_vmexit(struct svm_softc *svm_sc, int struct vmcb_state *state; struct vmcb_ctrl *ctrl; struct svm_regctx *ctx; + struct vm_exception exception; uint64_t code, info1, info2, val; uint32_t eax, ecx, edx; - int handled; + int error, errcode_valid, handled, idtvec, reflect; bool retu; ctx = svm_get_guest_regctx(svm_sc, vcpu); @@ -1258,8 +1262,78 @@ svm_vmexit(struct svm_softc *svm_sc, int case VMCB_EXIT_NMI: /* external NMI */ handled = 1; break; - case VMCB_EXIT_MC: /* machine check */ + case 0x40 ... 0x5F: vmm_stat_incr(svm_sc->vm, vcpu, VMEXIT_EXCEPTION, 1); + reflect = 1; + idtvec = code - 0x40; + switch (idtvec) { + case IDT_MC: + /* + * Call the machine check handler by hand. Also don't + * reflect the machine check back into the guest. + */ + reflect = 0; + VCPU_CTR0(svm_sc->vm, vcpu, "Vectoring to MCE handler"); + __asm __volatile("int $18"); + break; + case IDT_PF: + error = svm_setreg(svm_sc, vcpu, VM_REG_GUEST_CR2, + info2); + KASSERT(error == 0, ("%s: error %d updating cr2", + __func__, error)); + /* fallthru */ + case IDT_NP: + case IDT_SS: + case IDT_GP: + case IDT_AC: + case IDT_TS: + errcode_valid = 1; + break; + + case IDT_DF: + errcode_valid = 1; + info1 = 0; + break; + + case IDT_BP: + case IDT_OF: + case IDT_BR: + /* + * The 'nrip' field is populated for INT3, INTO and + * BOUND exceptions and this also implies that + * 'inst_length' is non-zero. + * + * Reset 'inst_length' to zero so the guest %rip at + * event injection is identical to what it was when + * the exception originally happened. + */ + VCPU_CTR2(svm_sc->vm, vcpu, "Reset inst_length from %d " + "to zero before injecting exception %d", + vmexit->inst_length, idtvec); + vmexit->inst_length = 0; + /* fallthru */ + default: + errcode_valid = 0; + break; + } + KASSERT(vmexit->inst_length == 0, ("invalid inst_length (%d) " + "when reflecting exception %d into guest", + vmexit->inst_length, idtvec)); + + if (reflect) { + /* Reflect the exception back into the guest */ + exception.vector = idtvec; + exception.error_code_valid = errcode_valid; + exception.error_code = errcode_valid ? info1 : 0; + VCPU_CTR2(svm_sc->vm, vcpu, "Reflecting exception " + "%d/%#x into the guest", exception.vector, + exception.error_code); + error = vm_inject_exception(svm_sc->vm, vcpu, + &exception); + KASSERT(error == 0, ("%s: vm_inject_exception error %d", + __func__, error)); + } + handled = 1; break; case VMCB_EXIT_MSR: /* MSR access. */ eax = state->rax; @@ -1339,6 +1413,12 @@ svm_vmexit(struct svm_softc *svm_sc, int info2, info1, state->rip); } break; + case VMCB_EXIT_MONITOR: + vmexit->exitcode = VM_EXITCODE_MONITOR; + break; + case VMCB_EXIT_MWAIT: + vmexit->exitcode = VM_EXITCODE_MWAIT; + break; default: vmm_stat_incr(svm_sc->vm, vcpu, VMEXIT_UNKNOWN, 1); break; Copied: stable/10/sys/amd64/vmm/amd/svm.h (from r273375, head/sys/amd64/vmm/amd/svm.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/amd64/vmm/amd/svm.h Tue Dec 30 08:24:14 2014 (r276403, copy of r273375, head/sys/amd64/vmm/amd/svm.h) @@ -0,0 +1,54 @@ +/*- + * Copyright (c) 2013 Anish Gupta (akgupt3@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _SVM_H_ +#define _SVM_H_ + +/* + * Guest register state that is saved outside the VMCB. + */ +struct svm_regctx { + register_t sctx_rbp; + register_t sctx_rbx; + register_t sctx_rcx; + register_t sctx_rdx; + register_t sctx_rdi; + register_t sctx_rsi; + register_t sctx_r8; + register_t sctx_r9; + register_t sctx_r10; + register_t sctx_r11; + register_t sctx_r12; + register_t sctx_r13; + register_t sctx_r14; + register_t sctx_r15; +}; + +void svm_launch(uint64_t pa, struct svm_regctx *); + +#endif /* _SVM_H_ */ Copied: stable/10/sys/amd64/vmm/amd/svm_genassym.c (from r273375, head/sys/amd64/vmm/amd/svm_genassym.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/amd64/vmm/amd/svm_genassym.c Tue Dec 30 08:24:14 2014 (r276403, copy of r273375, head/sys/amd64/vmm/amd/svm_genassym.c) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2013 Anish Gupta (akgupt3@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include "svm.h" + +ASSYM(SCTX_RBX, offsetof(struct svm_regctx, sctx_rbx)); +ASSYM(SCTX_RCX, offsetof(struct svm_regctx, sctx_rcx)); +ASSYM(SCTX_RBP, offsetof(struct svm_regctx, sctx_rbp)); +ASSYM(SCTX_RDX, offsetof(struct svm_regctx, sctx_rdx)); +ASSYM(SCTX_RDI, offsetof(struct svm_regctx, sctx_rdi)); +ASSYM(SCTX_RSI, offsetof(struct svm_regctx, sctx_rsi)); +ASSYM(SCTX_R8, offsetof(struct svm_regctx, sctx_r8)); +ASSYM(SCTX_R9, offsetof(struct svm_regctx, sctx_r9)); +ASSYM(SCTX_R10, offsetof(struct svm_regctx, sctx_r10)); +ASSYM(SCTX_R11, offsetof(struct svm_regctx, sctx_r11)); +ASSYM(SCTX_R12, offsetof(struct svm_regctx, sctx_r12)); +ASSYM(SCTX_R13, offsetof(struct svm_regctx, sctx_r13)); +ASSYM(SCTX_R14, offsetof(struct svm_regctx, sctx_r14)); +ASSYM(SCTX_R15, offsetof(struct svm_regctx, sctx_r15)); Copied: stable/10/sys/amd64/vmm/amd/svm_msr.c (from r273375, head/sys/amd64/vmm/amd/svm_msr.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/amd64/vmm/amd/svm_msr.c Tue Dec 30 08:24:14 2014 (r276403, copy of r273375, head/sys/amd64/vmm/amd/svm_msr.c) @@ -0,0 +1,136 @@ +/*- + * Copyright (c) 2014, Neel Natu (neel@freebsd.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include +#include + +#include "svm_msr.h" + +#ifndef MSR_AMDK8_IPM +#define MSR_AMDK8_IPM 0xc0010055 +#endif + +enum { + IDX_MSR_LSTAR, + IDX_MSR_CSTAR, + IDX_MSR_STAR, + IDX_MSR_SF_MASK, + HOST_MSR_NUM /* must be the last enumeration */ +}; + +static uint64_t host_msrs[HOST_MSR_NUM]; + +void +svm_msr_init(void) +{ + /* + * It is safe to cache the values of the following MSRs because they + * don't change based on curcpu, curproc or curthread. + */ + host_msrs[IDX_MSR_LSTAR] = rdmsr(MSR_LSTAR); + host_msrs[IDX_MSR_CSTAR] = rdmsr(MSR_CSTAR); + host_msrs[IDX_MSR_STAR] = rdmsr(MSR_STAR); + host_msrs[IDX_MSR_SF_MASK] = rdmsr(MSR_SF_MASK); +} + +void +svm_msr_guest_init(struct svm_softc *sc, int vcpu) +{ + /* + * All the MSRs accessible to the guest are either saved/restored by + * hardware on every #VMEXIT/VMRUN (e.g., G_PAT) or are saved/restored + * by VMSAVE/VMLOAD (e.g., MSR_GSBASE). + * + * There are no guest MSRs that are saved/restored "by hand" so nothing + * more to do here. + */ + return; +} + +void +svm_msr_guest_enter(struct svm_softc *sc, int vcpu) +{ + /* + * Save host MSRs (if any) and restore guest MSRs (if any). + */ +} + +void +svm_msr_guest_exit(struct svm_softc *sc, int vcpu) +{ + /* + * Save guest MSRs (if any) and restore host MSRs. + */ + wrmsr(MSR_LSTAR, host_msrs[IDX_MSR_LSTAR]); + wrmsr(MSR_CSTAR, host_msrs[IDX_MSR_CSTAR]); + wrmsr(MSR_STAR, host_msrs[IDX_MSR_STAR]); + wrmsr(MSR_SF_MASK, host_msrs[IDX_MSR_SF_MASK]); + + /* MSR_KGSBASE will be restored on the way back to userspace */ +} + +int +svm_rdmsr(struct svm_softc *sc, int vcpu, u_int num, uint64_t *result, + bool *retu) +{ + int error = 0; + + switch (num) { + case MSR_AMDK8_IPM: + *result = 0; + break; + default: + error = EINVAL; + break; + } + + return (error); +} + +int +svm_wrmsr(struct svm_softc *sc, int vcpu, u_int num, uint64_t val, bool *retu) +{ + int error = 0; + + switch (num) { + case MSR_AMDK8_IPM: + /* + * Ignore writes to the "Interrupt Pending Message" MSR. + */ + break; + default: + error = EINVAL; + break; + } + + return (error); +} Copied: stable/10/sys/amd64/vmm/amd/svm_msr.h (from r273375, head/sys/amd64/vmm/amd/svm_msr.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/amd64/vmm/amd/svm_msr.h Tue Dec 30 08:24:14 2014 (r276403, copy of r273375, head/sys/amd64/vmm/amd/svm_msr.h) @@ -0,0 +1,44 @@ +/*- + * Copyright (c) 2014 Neel Natu (neel@freebsd.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _SVM_MSR_H_ +#define _SVM_MSR_H_ + +struct svm_softc; + +void svm_msr_init(void); +void svm_msr_guest_init(struct svm_softc *sc, int vcpu); +void svm_msr_guest_enter(struct svm_softc *sc, int vcpu); +void svm_msr_guest_exit(struct svm_softc *sc, int vcpu); + +int svm_wrmsr(struct svm_softc *sc, int vcpu, u_int num, uint64_t val, + bool *retu); +int svm_rdmsr(struct svm_softc *sc, int vcpu, u_int num, uint64_t *result, + bool *retu); + +#endif /* _SVM_MSR_H_ */ Copied: stable/10/sys/amd64/vmm/amd/svm_softc.h (from r273375, head/sys/amd64/vmm/amd/svm_softc.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/amd64/vmm/amd/svm_softc.h Tue Dec 30 08:24:14 2014 (r276403, copy of r273375, head/sys/amd64/vmm/amd/svm_softc.h) @@ -0,0 +1,113 @@ +/*- + * Copyright (c) 2013 Anish Gupta (akgupt3@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _SVM_SOFTC_H_ +#define _SVM_SOFTC_H_ + +#define SVM_IO_BITMAP_SIZE (3 * PAGE_SIZE) +#define SVM_MSR_BITMAP_SIZE (2 * PAGE_SIZE) + +struct asid { + uint64_t gen; /* range is [1, ~0UL] */ + uint32_t num; /* range is [1, nasid - 1] */ +}; + +/* + * XXX separate out 'struct vmcb' from 'svm_vcpu' to avoid wasting space + * due to VMCB alignment requirements. + */ +struct svm_vcpu { + struct vmcb vmcb; /* hardware saved vcpu context */ + struct svm_regctx swctx; /* software saved vcpu context */ + uint64_t vmcb_pa; /* VMCB physical address */ + int lastcpu; /* host cpu that the vcpu last ran on */ + uint32_t dirty; /* state cache bits that must be cleared */ + long eptgen; /* pmap->pm_eptgen when the vcpu last ran */ + struct asid asid; +} __aligned(PAGE_SIZE); + +/* + * SVM softc, one per virtual machine. + */ +struct svm_softc { + uint8_t iopm_bitmap[SVM_IO_BITMAP_SIZE]; /* shared by all vcpus */ + uint8_t msr_bitmap[SVM_MSR_BITMAP_SIZE]; /* shared by all vcpus */ + uint8_t apic_page[VM_MAXCPU][PAGE_SIZE]; + struct svm_vcpu vcpu[VM_MAXCPU]; + vm_offset_t nptp; /* nested page table */ + struct vm *vm; +} __aligned(PAGE_SIZE); + +CTASSERT((offsetof(struct svm_softc, nptp) & PAGE_MASK) == 0); + +static __inline struct svm_vcpu * +svm_get_vcpu(struct svm_softc *sc, int vcpu) +{ + + return (&(sc->vcpu[vcpu])); +} + +static __inline struct vmcb * +svm_get_vmcb(struct svm_softc *sc, int vcpu) +{ + + return (&(sc->vcpu[vcpu].vmcb)); +} + +static __inline struct vmcb_state * +svm_get_vmcb_state(struct svm_softc *sc, int vcpu) +{ + + return (&(sc->vcpu[vcpu].vmcb.state)); +} + +static __inline struct vmcb_ctrl * +svm_get_vmcb_ctrl(struct svm_softc *sc, int vcpu) +{ + + return (&(sc->vcpu[vcpu].vmcb.ctrl)); +} + +static __inline struct svm_regctx * +svm_get_guest_regctx(struct svm_softc *sc, int vcpu) +{ + + return (&(sc->vcpu[vcpu].swctx)); +} + +static __inline void +svm_set_dirty(struct svm_softc *sc, int vcpu, uint32_t dirtybits) +{ + struct svm_vcpu *vcpustate; + + vcpustate = svm_get_vcpu(sc, vcpu); + + vcpustate->dirty |= dirtybits; +} + +#endif /* _SVM_SOFTC_H_ */ Copied: stable/10/sys/amd64/vmm/amd/svm_support.S (from r273375, head/sys/amd64/vmm/amd/svm_support.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/amd64/vmm/amd/svm_support.S Tue Dec 30 08:24:14 2014 (r276403, copy of r273375, head/sys/amd64/vmm/amd/svm_support.S) @@ -0,0 +1,115 @@ +/*- + * Copyright (c) 2013, Anish Gupta (akgupt3@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include + +#include "svm_assym.h" + +/* + * Be friendly to DTrace FBT's prologue/epilogue pattern matching. + * + * They are also responsible for saving/restoring the host %rbp across VMRUN. + */ +#define VENTER push %rbp ; mov %rsp,%rbp +#define VLEAVE pop %rbp + +/* + * svm_launch(uint64_t vmcb, struct svm_regctx *gctx) + * %rdi: physical address of VMCB + * %rsi: pointer to guest context + */ +ENTRY(svm_launch) + VENTER + + /* + * Host register state saved across a VMRUN. + * + * All "callee saved registers" except: + * %rsp: because it is preserved by the processor across VMRUN. + * %rbp: because it is saved/restored by the function prologue/epilogue. + */ + push %rbx + push %r12 + push %r13 + push %r14 + push %r15 + + /* Save the physical address of the VMCB in %rax */ + movq %rdi, %rax + + push %rsi /* push guest context pointer on the stack */ + + /* + * Restore guest state. + */ + movq SCTX_R8(%rsi), %r8 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 08:33:52 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1140291D; Tue, 30 Dec 2014 08:33:52 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F0DBF35BB; Tue, 30 Dec 2014 08:33:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU8XpPM078447; Tue, 30 Dec 2014 08:33:51 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU8Xp55078446; Tue, 30 Dec 2014 08:33:51 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201412300833.sBU8Xp55078446@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 30 Dec 2014 08:33:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276404 - head/sys/dev/usb/controller X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 08:33:52 -0000 Author: hselasky Date: Tue Dec 30 08:33:51 2014 New Revision: 276404 URL: https://svnweb.freebsd.org/changeset/base/276404 Log: Add missed flushing of data which can happen when "xhci_configure_mask()" is called from "xhci_configure_reset_endpoint()". Ensure the 3-strikes error feature is always enabled except for ISOCHRONOUS transfers. MFC after: 1 week Suggested by: marius@ Modified: head/sys/dev/usb/controller/xhci.c Modified: head/sys/dev/usb/controller/xhci.c ============================================================================== --- head/sys/dev/usb/controller/xhci.c Tue Dec 30 08:24:14 2014 (r276403) +++ head/sys/dev/usb/controller/xhci.c Tue Dec 30 08:33:51 2014 (r276404) @@ -2283,6 +2283,7 @@ xhci_configure_mask(struct usb_device *u temp |= XHCI_SCTX_0_CTX_NUM_SET(x + 1); xhci_ctx_set_le32(sc, &pinp->ctx_slot.dwSctx0, temp); } + usb_pc_cpu_flush(&sc->sc_hw.devs[index].input_pc); return (0); } @@ -2387,10 +2388,14 @@ xhci_configure_endpoint(struct usb_devic XHCI_EPCTX_1_MAXB_SET(max_packet_count) | XHCI_EPCTX_1_MAXP_SIZE_SET(max_packet_size); - if ((udev->parent_hs_hub != NULL) || (udev->address != 0)) { - if (type != UE_ISOCHRONOUS) - temp |= XHCI_EPCTX_1_CERR_SET(3); - } + /* + * Always enable the "three strikes and you are gone" feature + * except for ISOCHRONOUS endpoints. This is suggested by + * section 4.3.3 in the XHCI specification about device slot + * initialisation. + */ + if (type != UE_ISOCHRONOUS) + temp |= XHCI_EPCTX_1_CERR_SET(3); switch (type) { case UE_CONTROL: From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 08:34:27 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5370AA8C for ; Tue, 30 Dec 2014 08:34:27 +0000 (UTC) Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1A6F735CF for ; Tue, 30 Dec 2014 08:34:26 +0000 (UTC) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 6672D20B27 for ; Tue, 30 Dec 2014 03:34:25 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute1.internal (MEProxy); Tue, 30 Dec 2014 03:34:25 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.net; h= x-sasl-enc:message-id:date:from:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; s=mesmtp; bh=2Nlv8oGsbY8CmADNubbXd9rHNHg=; b=DbyhpJv0jLWgFrJLvy VzQUz6dUBFrFWZ6y7o+ElEmtGZ4EdtLM5DHIs5Wrq4Qx3UIY2MeBuupNDa2l/Czo 5HhAomNzDgLikr9YNot+a9gD2Pr7bSfQgUrABPUFxUanSY5ytVRszWXVAF4Lw6MU +Frd4zQs3JUDxrLkiOGsecKH4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=x-sasl-enc:message-id:date:from :mime-version:to:subject:references:in-reply-to:content-type :content-transfer-encoding; s=smtpout; bh=2Nlv8oGsbY8CmADNubbXd9 rHNHg=; b=GAxKTsxoJoJsd4pZfpeZ/PpHqo31QFzM0+8DH/QHjXPJ4vYNSOza5U U+7mt5XzhoR6U3NYFE8lF2FE3tMoKpzS83F+wwhRQoTGSXwTKjTM8riBZOZSZkHK /FiVXutZ21i3Co/ftTa/l64k5n+Th2veWeG/Kp0CQ3CU4u18/DGUA= X-Sasl-enc: Ysk8MvzYrSJdj9o3uBb5g1IYutppRztj4vtAIedpOgNL 1419928465 Received: from [10.106.39.117] (unknown [46.233.112.192]) by mail.messagingengine.com (Postfix) with ESMTPA id 8283FC00283; Tue, 30 Dec 2014 03:34:24 -0500 (EST) Message-ID: <54A26390.8030609@fastmail.net> Date: Tue, 30 Dec 2014 08:34:24 +0000 From: Bruce Simpson User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Dmitry Morozovsky , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r276083 - head/etc References: <201412222126.sBMLQo7w070013@svn.freebsd.org> In-Reply-To: <201412222126.sBMLQo7w070013@svn.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 08:34:27 -0000 On 22/12/2014 21:26, Dmitry Morozovsky wrote: > Log: > Add VAMI (VMware Appliance Management Interface) port. > This is vApp / VMware Studio related; any plans to get FreeBSD guests working? From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 08:50:09 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 07296F51; Tue, 30 Dec 2014 08:50:09 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CD183372C; Tue, 30 Dec 2014 08:50:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU8o8mv084261; Tue, 30 Dec 2014 08:50:08 GMT (envelope-from royger@FreeBSD.org) Received: (from royger@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU8o85h084260; Tue, 30 Dec 2014 08:50:08 GMT (envelope-from royger@FreeBSD.org) Message-Id: <201412300850.sBU8o85h084260@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: royger set sender to royger@FreeBSD.org using -f From: Roger Pau Monné Date: Tue, 30 Dec 2014 08:50:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276405 - head/sys/dev/vt/hw/efifb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 08:50:09 -0000 Author: royger Date: Tue Dec 30 08:50:07 2014 New Revision: 276405 URL: https://svnweb.freebsd.org/changeset/base/276405 Log: Partially revert "vt: register the memory regions used by the vt drivers" Revert the EFI part of r276064 until I can test it properly on a real EFI system. This was causing problems to people booting using UEFI and vt. Reported by: O. Hartmann Modified: head/sys/dev/vt/hw/efifb/efifb.c Modified: head/sys/dev/vt/hw/efifb/efifb.c ============================================================================== --- head/sys/dev/vt/hw/efifb/efifb.c Tue Dec 30 08:33:51 2014 (r276404) +++ head/sys/dev/vt/hw/efifb/efifb.c Tue Dec 30 08:50:07 2014 (r276405) @@ -37,9 +37,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include -#include -#include #include "opt_platform.h" @@ -182,53 +179,3 @@ vt_efifb_remap(void *xinfo) info->fb_size, VM_MEMATTR_WRITE_COMBINING); } -/* Dummy NewBus functions to reserve the resources used by the efifb driver */ -static void -vtefifb_identify(driver_t *driver, device_t parent) -{ - - if (local_info.fb_pbase == 0 || local_info.fb_size == 0) - return; - - if (BUS_ADD_CHILD(parent, 0, driver->name, 0) == NULL) - panic("Unable to attach vt_efifb console"); -} - -static int -vtefifb_probe(device_t dev) -{ - - device_set_desc(dev, "vt_efifb driver"); - return (BUS_PROBE_NOWILDCARD); -} - -static int -vtefifb_attach(device_t dev) -{ - struct resource *pseudo_phys_res; - int res_id; - - res_id = 0; - pseudo_phys_res = bus_alloc_resource(dev, SYS_RES_MEMORY, - &res_id, local_info.fb_pbase, - local_info.fb_pbase + local_info.fb_size, - local_info.fb_size, RF_ACTIVE); - if (pseudo_phys_res == NULL) - panic("Unable to reserve vt_efifb memory"); - return (0); -} - -/*-------------------- Private Device Attachment Data -----------------------*/ -static device_method_t vtefifb_methods[] = { - /* Device interface */ - DEVMETHOD(device_identify, vtefifb_identify), - DEVMETHOD(device_probe, vtefifb_probe), - DEVMETHOD(device_attach, vtefifb_attach), - - DEVMETHOD_END -}; - -DEFINE_CLASS_0(vtefifb, vtefifb_driver, vtefifb_methods, 0); -devclass_t vtefifb_devclass; - -DRIVER_MODULE(vtefifb, nexus, vtefifb_driver, vtefifb_devclass, NULL, NULL); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 08:50:52 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 344CB118; Tue, 30 Dec 2014 08:50:52 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 20232373B; Tue, 30 Dec 2014 08:50:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU8opS2086733; Tue, 30 Dec 2014 08:50:51 GMT (envelope-from royger@FreeBSD.org) Received: (from royger@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU8oplE086732; Tue, 30 Dec 2014 08:50:51 GMT (envelope-from royger@FreeBSD.org) Message-Id: <201412300850.sBU8oplE086732@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: royger set sender to royger@FreeBSD.org using -f From: Roger Pau Monné Date: Tue, 30 Dec 2014 08:50:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276406 - head/sys/dev/vt/hw/vga X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 08:50:52 -0000 Author: royger Date: Tue Dec 30 08:50:50 2014 New Revision: 276406 URL: https://svnweb.freebsd.org/changeset/base/276406 Log: vt_vga: fix an off-by-one error This correctly sets the end of the memory region registered by vt_vga. Reported by: marius Modified: head/sys/dev/vt/hw/vga/vt_vga.c Modified: head/sys/dev/vt/hw/vga/vt_vga.c ============================================================================== --- head/sys/dev/vt/hw/vga/vt_vga.c Tue Dec 30 08:50:07 2014 (r276405) +++ head/sys/dev/vt/hw/vga/vt_vga.c Tue Dec 30 08:50:50 2014 (r276406) @@ -1275,7 +1275,7 @@ vtvga_attach(device_t dev) res_id = 0; pseudo_phys_res = bus_alloc_resource(dev, SYS_RES_MEMORY, - &res_id, VGA_MEM_BASE, VGA_MEM_BASE + VGA_MEM_SIZE, + &res_id, VGA_MEM_BASE, VGA_MEM_BASE + VGA_MEM_SIZE - 1, VGA_MEM_SIZE, RF_ACTIVE); if (pseudo_phys_res == NULL) panic("Unable to reserve vt_vga memory"); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 09:20:31 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 27EC49CB; Tue, 30 Dec 2014 09:20:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 135FA1E37; Tue, 30 Dec 2014 09:20:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBU9KUlv002257; Tue, 30 Dec 2014 09:20:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBU9KUIU002256; Tue, 30 Dec 2014 09:20:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201412300920.sBU9KUIU002256@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 30 Dec 2014 09:20:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276407 - head/sys/dev/usb/controller X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 09:20:31 -0000 Author: hselasky Date: Tue Dec 30 09:20:29 2014 New Revision: 276407 URL: https://svnweb.freebsd.org/changeset/base/276407 Log: Allow systems having a page size greater than 4K to use fewer scatter-gather XHCI TRB entries for its payload data. The XHCI controller can handle at least 65536 bytes per scatter-gather list entry. MFC after: 1 week Suggested by: Kohji Okuno Modified: head/sys/dev/usb/controller/xhci.h Modified: head/sys/dev/usb/controller/xhci.h ============================================================================== --- head/sys/dev/usb/controller/xhci.h Tue Dec 30 08:50:50 2014 (r276406) +++ head/sys/dev/usb/controller/xhci.h Tue Dec 30 09:20:29 2014 (r276407) @@ -320,11 +320,23 @@ struct xhci_dev_endpoint_trbs { XHCI_MAX_TRANSFERS) + XHCI_MAX_STREAMS]; }; -#define XHCI_TD_PAGE_NBUF 17 /* units, room enough for 64Kbytes */ -#define XHCI_TD_PAGE_SIZE 4096 /* bytes */ -#define XHCI_TD_PAYLOAD_MAX (XHCI_TD_PAGE_SIZE * (XHCI_TD_PAGE_NBUF - 1)) +#if (USB_PAGE_SIZE < 4096) +#error "The XHCI driver needs a pagesize above 4K" +#endif + +/* Define the maximum payload which we will handle in a single TRB */ +#define XHCI_TD_PAYLOAD_MAX 65536 /* bytes */ + +/* Define the maximum payload of a single scatter-gather list element */ +#define XHCI_TD_PAGE_SIZE \ + ((USB_PAGE_SIZE < XHCI_TD_PAYLOAD_MAX) ? USB_PAGE_SIZE : XHCI_TD_PAYLOAD_MAX) + +/* Define the maximum length of the scatter-gather list */ +#define XHCI_TD_PAGE_NBUF \ + (((XHCI_TD_PAYLOAD_MAX + XHCI_TD_PAGE_SIZE - 1) / XHCI_TD_PAGE_SIZE) + 1) struct xhci_td { + /* one LINK TRB has been added to the TRB array */ struct xhci_trb td_trb[XHCI_TD_PAGE_NBUF + 1]; /* From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 10:30:14 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 29418C78; Tue, 30 Dec 2014 10:30:14 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 14DCB64A7D; Tue, 30 Dec 2014 10:30:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUAUDoA039791; Tue, 30 Dec 2014 10:30:13 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUAUDJS039785; Tue, 30 Dec 2014 10:30:13 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201412301030.sBUAUDJS039785@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 30 Dec 2014 10:30:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276408 - in stable/10/sys: fs/msdosfs kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 10:30:14 -0000 Author: kib Date: Tue Dec 30 10:30:12 2014 New Revision: 276408 URL: https://svnweb.freebsd.org/changeset/base/276408 Log: MFC r275638: Do not call VFS_SYNC() before VFS_UNMOUNT() for forced unmount. Modified: stable/10/sys/fs/msdosfs/msdosfs_vfsops.c stable/10/sys/kern/vfs_mount.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/msdosfs/msdosfs_vfsops.c ============================================================================== --- stable/10/sys/fs/msdosfs/msdosfs_vfsops.c Tue Dec 30 09:20:29 2014 (r276407) +++ stable/10/sys/fs/msdosfs/msdosfs_vfsops.c Tue Dec 30 10:30:12 2014 (r276408) @@ -797,11 +797,15 @@ msdosfs_unmount(struct mount *mp, int mn int error, flags; flags = 0; - if (mntflags & MNT_FORCE) + error = msdosfs_sync(mp, MNT_WAIT); + if ((mntflags & MNT_FORCE) != 0) { flags |= FORCECLOSE; + } else if (error != 0) { + return (error); + } error = vflush(mp, 0, flags, curthread); - if (error && error != ENXIO) - return error; + if (error != 0 && error != ENXIO) + return (error); pmp = VFSTOMSDOSFS(mp); if ((pmp->pm_flags & MSDOSFSMNT_RONLY) == 0) { error = markvoldirty(pmp, 0); Modified: stable/10/sys/kern/vfs_mount.c ============================================================================== --- stable/10/sys/kern/vfs_mount.c Tue Dec 30 09:20:29 2014 (r276407) +++ stable/10/sys/kern/vfs_mount.c Tue Dec 30 10:30:12 2014 (r276408) @@ -1305,8 +1305,8 @@ dounmount(mp, flags, td) } vput(fsrootvp); } - if (((mp->mnt_flag & MNT_RDONLY) || - (error = VFS_SYNC(mp, MNT_WAIT)) == 0) || (flags & MNT_FORCE) != 0) + if ((mp->mnt_flag & MNT_RDONLY) != 0 || (flags & MNT_FORCE) != 0 || + (error = VFS_SYNC(mp, MNT_WAIT)) == 0) error = VFS_UNMOUNT(mp, flags); vn_finished_write(mp); /* From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 12:47:45 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7D01316F; Tue, 30 Dec 2014 12:47:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6927064116; Tue, 30 Dec 2014 12:47:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUCljF8013395; Tue, 30 Dec 2014 12:47:45 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUClja7013394; Tue, 30 Dec 2014 12:47:45 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201412301247.sBUClja7013394@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 30 Dec 2014 12:47:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276409 - head/sys/dev/virtio/mmio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 12:47:45 -0000 Author: andrew Date: Tue Dec 30 12:47:44 2014 New Revision: 276409 URL: https://svnweb.freebsd.org/changeset/base/276409 Log: Set the page size in the virtio-mmio driver. Some backends, e.g QEMU, assume a 1 byte page size until told otherwise. Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/virtio/mmio/virtio_mmio.c Modified: head/sys/dev/virtio/mmio/virtio_mmio.c ============================================================================== --- head/sys/dev/virtio/mmio/virtio_mmio.c Tue Dec 30 10:30:12 2014 (r276408) +++ head/sys/dev/virtio/mmio/virtio_mmio.c Tue Dec 30 12:47:44 2014 (r276409) @@ -506,6 +506,8 @@ vtmmio_alloc_virtqueues(device_t dev, in if (sc->vtmmio_vqs == NULL) return (ENOMEM); + vtmmio_write_config_4(sc, VIRTIO_MMIO_GUEST_PAGE_SIZE, 1 << PAGE_SHIFT); + for (idx = 0; idx < nvqs; idx++) { vqx = &sc->vtmmio_vqs[idx]; info = &vq_info[idx]; From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 16:55:54 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C2D09949; Tue, 30 Dec 2014 16:55:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AE48E2BA2; Tue, 30 Dec 2014 16:55:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUGtsYx033909; Tue, 30 Dec 2014 16:55:54 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUGtsI1033908; Tue, 30 Dec 2014 16:55:54 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201412301655.sBUGtsI1033908@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Tue, 30 Dec 2014 16:55:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276412 - head/lib/libstand X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 16:55:54 -0000 Author: nwhitehorn Date: Tue Dec 30 16:55:53 2014 New Revision: 276412 URL: https://svnweb.freebsd.org/changeset/base/276412 Log: Fix loader's ability to read the 10.1 release PowerPC ISOs. There appears to be some kind of problem with the version of makefs used for these disks. There may be a better way to handle this problem, so I've set the MFC timer for a fairly long time period. MFC after: 2 weeks Modified: head/lib/libstand/cd9660.c Modified: head/lib/libstand/cd9660.c ============================================================================== --- head/lib/libstand/cd9660.c Tue Dec 30 16:22:20 2014 (r276411) +++ head/lib/libstand/cd9660.c Tue Dec 30 16:55:53 2014 (r276412) @@ -151,9 +151,14 @@ susp_lookup_record(struct open_file *f, return (NULL); p = susp_buffer + isonum_733(shc->offset); end = p + isonum_733(shc->length); - } else + } else { /* Ignore this record and skip to the next. */ p += isonum_711(sh->length); + + /* Avoid infinite loops with corrupted file systems */ + if (isonum_711(sh->length) == 0) + return (NULL); + } } return (NULL); } From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 18:42:54 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D18BDE06; Tue, 30 Dec 2014 18:42:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BD5352E18; Tue, 30 Dec 2014 18:42:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUIgsQW086422; Tue, 30 Dec 2014 18:42:54 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUIgs8W086420; Tue, 30 Dec 2014 18:42:54 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412301842.sBUIgs8W086420@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Dec 2014 18:42:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276414 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 18:42:54 -0000 Author: emaste Date: Tue Dec 30 18:42:53 2014 New Revision: 276414 URL: https://svnweb.freebsd.org/changeset/base/276414 Log: Use BINUTILS_BOOTSTRAP knob for binutils only Previously it also disabled building elftoolchain bootstrap tools such as strip(1). Differential Revision: https://reviews.freebsd.org/D1398 Reviewed by: imp Sponsored by: The FreeBSD Foundation Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Tue Dec 30 17:30:47 2014 (r276413) +++ head/Makefile.inc1 Tue Dec 30 18:42:53 2014 (r276414) @@ -1440,8 +1440,10 @@ _kgzip= usr.sbin/kgzip .endif # If we're given an XAS, don't build binutils. -.if ${XAS:M/*} == "" && ${MK_BINUTILS_BOOTSTRAP} != "no" +.if ${XAS:M/*} == "" +.if ${MK_BINUTILS_BOOTSTRAP} != "no" _binutils= gnu/usr.bin/binutils +.endif .if ${MK_ELFTOOLCHAIN_TOOLS} != "no" _elftctools= lib/libelftc \ usr.bin/addr2line \ From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 19:39:37 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B9DC4151; Tue, 30 Dec 2014 19:39:37 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A15A91769; Tue, 30 Dec 2014 19:39:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUJdbEm011886; Tue, 30 Dec 2014 19:39:37 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUJdWRt011860; Tue, 30 Dec 2014 19:39:32 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201412301939.sBUJdWRt011860@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 30 Dec 2014 19:39:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276415 - in stable/10: contrib/file contrib/file/doc contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/tests lib/libmagic X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 19:39:37 -0000 Author: delphij Date: Tue Dec 30 19:39:31 2014 New Revision: 276415 URL: https://svnweb.freebsd.org/changeset/base/276415 Log: MFC r275698: MFV r275696: file 5.21. Added: stable/10/contrib/file/magic/Magdir/kerberos - copied unchanged from r275698, head/contrib/file/magic/Magdir/kerberos stable/10/contrib/file/magic/Magdir/meteorological - copied unchanged from r275698, head/contrib/file/magic/Magdir/meteorological Deleted: stable/10/contrib/file/magic/Magdir/rinex Modified: stable/10/contrib/file/ChangeLog stable/10/contrib/file/Makefile.in stable/10/contrib/file/TODO stable/10/contrib/file/aclocal.m4 stable/10/contrib/file/config.h.in stable/10/contrib/file/configure stable/10/contrib/file/configure.ac stable/10/contrib/file/doc/Makefile.in stable/10/contrib/file/doc/file.man stable/10/contrib/file/doc/libmagic.man stable/10/contrib/file/magic/Localstuff stable/10/contrib/file/magic/Magdir/android stable/10/contrib/file/magic/Magdir/animation stable/10/contrib/file/magic/Magdir/archive stable/10/contrib/file/magic/Magdir/blender stable/10/contrib/file/magic/Magdir/commands stable/10/contrib/file/magic/Magdir/compress stable/10/contrib/file/magic/Magdir/database stable/10/contrib/file/magic/Magdir/elf stable/10/contrib/file/magic/Magdir/filesystems stable/10/contrib/file/magic/Magdir/images stable/10/contrib/file/magic/Magdir/jpeg stable/10/contrib/file/magic/Magdir/linux stable/10/contrib/file/magic/Magdir/macintosh stable/10/contrib/file/magic/Magdir/msooxml stable/10/contrib/file/magic/Magdir/netbsd stable/10/contrib/file/magic/Magdir/pascal stable/10/contrib/file/magic/Magdir/pgp stable/10/contrib/file/magic/Magdir/python stable/10/contrib/file/magic/Magdir/riff stable/10/contrib/file/magic/Magdir/sequent stable/10/contrib/file/magic/Magdir/sereal stable/10/contrib/file/magic/Magdir/ssh stable/10/contrib/file/magic/Magdir/vms stable/10/contrib/file/magic/Magdir/vorbis stable/10/contrib/file/magic/Magdir/windows stable/10/contrib/file/magic/Makefile.am stable/10/contrib/file/magic/Makefile.in stable/10/contrib/file/missing stable/10/contrib/file/python/Makefile.in stable/10/contrib/file/src/Makefile.in stable/10/contrib/file/src/apprentice.c stable/10/contrib/file/src/ascmagic.c stable/10/contrib/file/src/cdf.c stable/10/contrib/file/src/cdf.h stable/10/contrib/file/src/compress.c stable/10/contrib/file/src/elfclass.h stable/10/contrib/file/src/encoding.c stable/10/contrib/file/src/file.c stable/10/contrib/file/src/file.h stable/10/contrib/file/src/file_opts.h stable/10/contrib/file/src/fsmagic.c stable/10/contrib/file/src/funcs.c stable/10/contrib/file/src/getline.c stable/10/contrib/file/src/magic.c stable/10/contrib/file/src/magic.h stable/10/contrib/file/src/magic.h.in stable/10/contrib/file/src/pread.c stable/10/contrib/file/src/readcdf.c stable/10/contrib/file/src/readelf.c stable/10/contrib/file/src/softmagic.c stable/10/contrib/file/src/vasprintf.c stable/10/contrib/file/tests/Makefile.in stable/10/lib/libmagic/config.h Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/file/ChangeLog ============================================================================== --- stable/10/contrib/file/ChangeLog Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/ChangeLog Tue Dec 30 19:39:31 2014 (r276415) @@ -1,3 +1,69 @@ +2014-12-10 20:01 Christos Zoulas + + * release 5.21 + +2014-11-27 18:40 Christos Zoulas + + * Allow setting more parameters from the command line. + * Split name/use and indirect magic recursion limits. + +2014-11-27 11:12 Christos Zoulas + + * Adjust ELF parameters and the default recursion + level. + * Allow setting the recursion level dynamically. + +2014-11-24 8:55 Christos Zoulas + + * The following fixes resulted from Thomas Jarosch's fuzzing + tests that revealed severe performance issues on pathological + input: + - limit number of elf program and sections processing + - abort elf note processing quickly + - reduce the number of recursion levels from 20 to 10 + - preserve error messages in indirect magic handling + +2014-11-12 10:30 Christos Zoulas + + * fix bogus free in the user buffer case. + +2014-11-11 12:35 Christos Zoulas + + * fix out of bounds read for pascal strings + * fix memory leak (not freeing the head of each mlist) + +2014-11-07 10:25 Christos Zoulas + + * When printing strings from a file, convert them to printable + on a byte by byte basis, so that we don't get issues with + locale's trying to interpret random byte streams as UTF-8 and + having printf error out with EILSEQ. + +2014-10-17 11:48 Christos Zoulas + + * fix bounds in note reading (Francisco Alonso / Red Hat) + +2014-10-11 15:02 Christos Zoulas + + * fix autoconf glue for setlocale and locale_t; some OS's + have locale_t in xlocale.h + +2014-10-10 15:01 Christos Zoulas + + * release 5.20 + +2014-08-17 10:01 Christos Zoulas + + * recognize encrypted CDF documents + +2014-08-04 9:18 Christos Zoulas + + * add magic_load_buffers from Brooks Davis + +2014-07-24 16:40 Christos Zoulas + + * add thumbs.db support + 2014-06-12 12:28 Christos Zoulas * release 5.19 Modified: stable/10/contrib/file/Makefile.in ============================================================================== --- stable/10/contrib/file/Makefile.in Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/Makefile.in Tue Dec 30 19:39:31 2014 (r276415) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -618,9 +618,10 @@ distcheck: dist && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ Modified: stable/10/contrib/file/TODO ============================================================================== --- stable/10/contrib/file/TODO Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/TODO Tue Dec 30 19:39:31 2014 (r276415) @@ -15,3 +15,5 @@ small amount of C is needed (because fas required for soft magic, not the more detailed information given by hard-wired routines). In this regard, note that hplip, which is BSD-licensed, has a magic reimplementation in Python. + +Read the kerberos magic entry for more ideas. Modified: stable/10/contrib/file/aclocal.m4 ============================================================================== --- stable/10/contrib/file/aclocal.m4 Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/aclocal.m4 Tue Dec 30 19:39:31 2014 (r276415) @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.14 -*- Autoconf -*- +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -21,7 +21,7 @@ If you have problems, you may need to re To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # visibility.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2005, 2008, 2010-2013 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2008, 2010-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -113,7 +113,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14], [], +m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -129,7 +129,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14])dnl +[AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) Modified: stable/10/contrib/file/config.h.in ============================================================================== --- stable/10/contrib/file/config.h.in Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/config.h.in Tue Dec 30 19:39:31 2014 (r276415) @@ -44,6 +44,9 @@ /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK +/* Define to 1 if you have the `freelocale' function. */ +#undef HAVE_FREELOCALE + /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO @@ -95,9 +98,15 @@ /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP +/* Define to 1 if you have the `newlocale' function. */ +#undef HAVE_NEWLOCALE + /* Define to 1 if you have the `pread' function. */ #undef HAVE_PREAD +/* Define to 1 if you have the `setlocale' function. */ +#undef HAVE_SETLOCALE + /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H @@ -182,6 +191,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H +/* Define to 1 if you have the `uselocale' function. */ +#undef HAVE_USELOCALE + /* Define to 1 if you have the `utime' function. */ #undef HAVE_UTIME @@ -219,6 +231,9 @@ /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK +/* Define to 1 if you have the header file. */ +#undef HAVE_XLOCALE_H + /* Define to 1 if you have the header file. */ #undef HAVE_ZLIB_H Modified: stable/10/contrib/file/configure ============================================================================== --- stable/10/contrib/file/configure Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/configure Tue Dec 30 19:39:31 2014 (r276415) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for file 5.19. +# Generated by GNU Autoconf 2.69 for file 5.21. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='file' PACKAGE_TARNAME='file' -PACKAGE_VERSION='5.19' -PACKAGE_STRING='file 5.19' +PACKAGE_VERSION='5.21' +PACKAGE_STRING='file 5.21' PACKAGE_BUGREPORT='christos@astron.com' PACKAGE_URL='' @@ -1327,7 +1327,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures file 5.19 to adapt to many kinds of systems. +\`configure' configures file 5.21 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1397,7 +1397,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of file 5.19:";; + short | recursive ) echo "Configuration of file 5.21:";; esac cat <<\_ACEOF @@ -1507,7 +1507,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -file configure 5.19 +file configure 5.21 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2163,7 +2163,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by file $as_me 5.19, which was +It was created by file $as_me 5.21, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3029,7 +3029,7 @@ fi # Define the identity of the package. PACKAGE='file' - VERSION='5.19' + VERSION='5.21' cat >>confdefs.h <<_ACEOF @@ -12785,7 +12785,7 @@ fi done -for ac_header in getopt.h err.h +for ac_header in getopt.h err.h xlocale.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -14191,7 +14191,7 @@ fi fi -for ac_func in strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof +for ac_func in strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -14998,7 +14998,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by file $as_me 5.19, which was +This file was extended by file $as_me 5.21, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15064,7 +15064,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -file config.status 5.19 +file config.status 5.21 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: stable/10/contrib/file/configure.ac ============================================================================== --- stable/10/contrib/file/configure.ac Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/configure.ac Tue Dec 30 19:39:31 2014 (r276415) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([file],[5.19],[christos@astron.com]) +AC_INIT([file],[5.21],[christos@astron.com]) AM_INIT_AUTOMAKE([subdir-objects foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) @@ -82,7 +82,7 @@ AC_HEADER_MAJOR AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h) AC_CHECK_HEADERS(stddef.h utime.h wchar.h wctype.h limits.h) -AC_CHECK_HEADERS(getopt.h err.h) +AC_CHECK_HEADERS(getopt.h err.h xlocale.h) AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h) AC_CHECK_HEADERS(zlib.h) @@ -138,7 +138,7 @@ else fi]) dnl Checks for functions -AC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof) +AC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale) dnl Provide implementation of some required functions if necessary AC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r asctime_r pread strcasestr fmtcheck) Modified: stable/10/contrib/file/doc/Makefile.in ============================================================================== --- stable/10/contrib/file/doc/Makefile.in Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/doc/Makefile.in Tue Dec 30 19:39:31 2014 (r276415) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. Modified: stable/10/contrib/file/doc/file.man ============================================================================== --- stable/10/contrib/file/doc/file.man Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/doc/file.man Tue Dec 30 19:39:31 2014 (r276415) @@ -1,5 +1,5 @@ -.\" $File: file.man,v 1.106 2014/03/07 23:11:51 christos Exp $ -.Dd January 30, 2014 +.\" $File: file.man,v 1.110 2014/11/28 02:46:39 christos Exp $ +.Dd November 27, 2014 .Dt FILE __CSECTION__ .Os .Sh NAME @@ -16,6 +16,7 @@ .Op Fl F Ar separator .Op Fl f Ar namefile .Op Fl m Ar magicfiles +.Op Fl P Ar name=value .Ar .Ek .Nm @@ -303,6 +304,15 @@ or attempt to preserve the access time of files analyzed, to pretend that .Nm never read them. +.It Fl P , Fl Fl parameter Ar name=value +Set various parameter limits. +.Bl -column "elf_phnum" "Default" "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -offset indent +.It Sy "Name" Ta Sy "Default" Ta Sy "Explanation" +.It Li indir Ta 15 Ta recursion limit for indirect magic +.It Li name Ta 30 Ta use count limit for name/use magic +.It Li elf_phnum Ta 128 Ta max ELF program sections processed +.It Li elf_shnum Ta 32768 Ta max ELF sections processed +.El .It Fl r , Fl Fl raw Don't translate unprintable characters to \eooo. Normally Modified: stable/10/contrib/file/doc/libmagic.man ============================================================================== --- stable/10/contrib/file/doc/libmagic.man Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/doc/libmagic.man Tue Dec 30 19:39:31 2014 (r276415) @@ -1,4 +1,4 @@ -.\" $File: libmagic.man,v 1.28 2014/03/02 14:47:16 christos Exp $ +.\" $File: libmagic.man,v 1.33 2014/11/28 02:46:39 christos Exp $ .\" .\" Copyright (c) Christos Zoulas 2003. .\" All Rights Reserved. @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 6, 2012 +.Dd November 27, 2014 .Dt LIBMAGIC 3 .Os .Sh NAME @@ -40,6 +40,9 @@ .Nm magic_compile , .Nm magic_list , .Nm magic_load , +.Nm magic_load_buffers , +.Nm magic_setparam , +.Nm magic_getparam , .Nm magic_version .Nd Magic number recognition library .Sh LIBRARY @@ -71,6 +74,12 @@ .Ft int .Fn magic_load "magic_t cookie" "const char *filename" .Ft int +.Fn magic_load_buffers "magic_t cookie" "void **buffers" "size_t *sizes" "size_t nbuffers" +.Ft int +.Fn magic_getparam "magic_t cookie" "int param" "void *value" +.Ft int +.Fn magic_setparam "magic_t cookie" "int param" "const void *value" +.Ft int .Fn magic_version "void" .Sh DESCRIPTION These functions @@ -253,6 +262,55 @@ adds to the database filename as appropriate. .Pp The +.Fn magic_load_buffers +function takes an array of size +.Fa nbuffers +of +.Fa buffers +with a respective size for each in the array of +.Fa sizes +loaded with the contents of the magic databases from the filesystem. +This function can be used in environment where the magic library does +not have direct access to the filesystem, but can access the magic +database via shared memory or other IPC means. +.Pp +The +.Fn magic_getparam +and +.Fn magic_setparam +allow getting and setting various limits related to the the magic +library. +.Bl -column "MAGIC_PARAM_ELF_PHNUM_MAX" "size_t" "Default" -offset indent +.It Sy "Parameter" Ta Sy "Type" Ta Sy "Default" +.It Li MAGIC_PARAM_INDIR_MAX Ta size_t Ta 15 +.It Li MAGIC_PARAM_NAME_MAX Ta size_t Ta 30 +.It Li MAGIC_PARAM_ELF_PHNUM_MAX Ta size_t Ta 128 +.It Li MAGIC_PARAM_ELF_SHNUM_MAX Ta size_t Ta 32768 +.El +.Pp +The +.Dv MAGIC_PARAM_INDIR_RECURSION +parameter controls how many levels of recursion will be followed for +indirect magic entries. +.Pp +The +.Dv MAGIC_PARAM_NAME_RECURSION +parameter controls how many levels of recursion will be followed for +for name/use calls. +.Pp +The +.Dv MAGIC_PARAM_NAME_MAX +parameter controls the maximum number of calls for name/use. +.Pp +The +.Dv MAGIC_PARAM_PHNUM_MAX +parameter controls how many elf program sections will be processed. +.Pp +The +.Dv MAGIC_PARAM_SHNUM_MAX +parameter controls how many elf sections will be processed. +.Pp +The .Fn magic_version command returns the version number of this library which is compiled into the shared library using the constant Modified: stable/10/contrib/file/magic/Localstuff ============================================================================== --- stable/10/contrib/file/magic/Localstuff Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/magic/Localstuff Tue Dec 30 19:39:31 2014 (r276415) @@ -2,6 +2,6 @@ #------------------------------------------------------------------------------ # Localstuff: file(1) magic for locally observed files # -# $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $ +# $File: Localstuff,v 1.5 2007/01/12 17:38:27 christos Exp $ # Add any locally observed files here. Remember: # text if readable, executable if runnable binary, data if unreadable. Modified: stable/10/contrib/file/magic/Magdir/android ============================================================================== --- stable/10/contrib/file/magic/Magdir/android Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/magic/Magdir/android Tue Dec 30 19:39:31 2014 (r276415) @@ -1,6 +1,6 @@ #------------------------------------------------------------ -# $File: android,v 1.4 2014/06/03 19:01:34 christos Exp $ +# $File: android,v 1.7 2014/11/10 05:08:23 christos Exp $ # Various android related magic entries #------------------------------------------------------------ @@ -15,54 +15,11 @@ >0 regex dey\n[0-9]{2}\0 Dalvik dex file (optimized for host) >4 string >000 version %s -# http://android.stackexchange.com/questions/23357/\ -# is-there-a-way-to-look-inside-and-modify-an-adb-backup-created-file/\ -# 23608#23608 -0 string ANDROID\040BACKUP\n Android Backup ->15 string 1\n \b, version 1 ->17 string 0\n \b, uncompressed ->17 string 1\n \b, compressed ->19 string none\n \b, unencrypted ->19 string AES-256\n \b, encrypted AES-256 - -# Android bootimg format -# From https://android.googlesource.com/\ -# platform/system/core/+/master/mkbootimg/bootimg.h -0 string ANDROID! Android bootimg ->8 lelong >0 \b, kernel ->>12 lelong >0 \b (0x%x) ->16 lelong >0 \b, ramdisk ->>20 lelong >0 \b (0x%x) ->24 lelong >0 \b, second stage ->>28 lelong >0 \b (0x%x) ->36 lelong >0 \b, page size: %d ->38 string >0 \b, name: %s ->64 string >0 \b, cmdline (%s) -# Dalvik .dex format. http://retrodev.com/android/dexformat.html -# From "Mike Fleming" -# Fixed to avoid regexec 17 errors on some dex files -# From "Tim Strazzere" -0 string dex\n ->0 regex dex\n[0-9]{2}\0 Dalvik dex file ->4 string >000 version %s -0 string dey\n ->0 regex dey\n[0-9]{2}\0 Dalvik dex file (optimized for host) ->4 string >000 version %s - -# http://android.stackexchange.com/questions/23357/\ -# is-there-a-way-to-look-inside-and-modify-an-adb-backup-created-file/\ -# 23608#23608 -0 string ANDROID\040BACKUP\n Android Backup ->15 string 1\n \b, version 1 ->17 string 0\n \b, uncompressed ->17 string 1\n \b, compressed ->19 string none\n \b, unencrypted ->19 string AES-256\n \b, encrypted AES-256 - # Android bootimg format # From https://android.googlesource.com/\ # platform/system/core/+/master/mkbootimg/bootimg.h 0 string ANDROID! Android bootimg +>1024 string LOKI\01 \b, LOKI'd >8 lelong >0 \b, kernel >>12 lelong >0 \b (0x%x) >16 lelong >0 \b, ramdisk @@ -98,3 +55,85 @@ #>>>>>&1 regex/1l .* \b, PBKDF2 rounds: %s #>>>>>>&1 regex/1l .* \b, IV: %s #>>>>>>>&1 regex/1l .* \b, Key: %s + +# *.pit files by Joerg Jenderek +# http://forum.xda-developers.com/showthread.php?p=9122369 +# http://forum.xda-developers.com/showthread.php?t=816449 +# Partition Information Table for Samsung's smartphone with Android +# used by flash software Odin +0 ulelong 0x12349876 +# 1st pit entry marker +>0x01C ulequad&0xFFFFFFFCFFFFFFFC =0x0000000000000000 +# minimal 13 and maximal 18 PIT entries found +>>4 ulelong <128 Partition Information Table for Samsung smartphone +>>>4 ulelong x \b, %d entries +# 1. pit entry +>>>4 ulelong >0 \b; #1 +>>>0x01C use PIT-entry +>>>4 ulelong >1 \b; #2 +>>>0x0A0 use PIT-entry +>>>4 ulelong >2 \b; #3 +>>>0x124 use PIT-entry +>>>4 ulelong >3 \b; #4 +>>>0x1A8 use PIT-entry +>>>4 ulelong >4 \b; #5 +>>>0x22C use PIT-entry +>>>4 ulelong >5 \b; #6 +>>>0x2B0 use PIT-entry +>>>4 ulelong >6 \b; #7 +>>>0x334 use PIT-entry +>>>4 ulelong >7 \b; #8 +>>>0x3B8 use PIT-entry +>>>4 ulelong >8 \b; #9 +>>>0x43C use PIT-entry +>>>4 ulelong >9 \b; #10 +>>>0x4C0 use PIT-entry +>>>4 ulelong >10 \b; #11 +>>>0x544 use PIT-entry +>>>4 ulelong >11 \b; #12 +>>>0x5C8 use PIT-entry +>>>4 ulelong >12 \b; #13 +>>>>0x64C use PIT-entry +# 14. pit entry +>>>4 ulelong >13 \b; #14 +>>>>0x6D0 use PIT-entry +>>>4 ulelong >14 \b; #15 +>>>0x754 use PIT-entry +>>>4 ulelong >15 \b; #16 +>>>0x7D8 use PIT-entry +>>>4 ulelong >16 \b; #17 +>>>0x85C use PIT-entry +# 18. pit entry +>>>4 ulelong >17 \b; #18 +>>>0x8E0 use PIT-entry + +0 name PIT-entry +# garbage value implies end of pit entries +>0x00 ulequad&0xFFFFFFFCFFFFFFFC =0x0000000000000000 +# skip empty partition name +>>0x24 ubyte !0 +# partition name +>>>0x24 string >\0 %-.32s +# flags +>>>0x0C ulelong&0x00000002 2 \b+RW +# partition ID: +# 0~IPL,MOVINAND,GANG;1~PIT,GPT;2~HIDDEN;3~SBL,HIDDEN;4~SBL2,HIDDEN;5~BOOT;6~KENREl,RECOVER,misc;7~RECOVER +# ;11~MODEM;20~efs;21~PARAM;22~FACTORY,SYSTEM;23~DBDATAFS,USERDATA;24~CACHE;80~BOOTLOADER;81~TZSW +>>>0x08 ulelong x (0x%x) +# filename +>>>0x44 string >\0 "%-.64s" +#>>>0x18 ulelong >0 +# blocksize in 512 byte units ? +#>>>>0x18 ulelong x \b, %db +# partition size in blocks ? +#>>>>0x22 ulelong x \b*%d + +# Android bootimg format +# From https://android.googlesource.com/\ +# platform/system/core/+/master/libsparse/sparse_format.h +0 lelong 0xed26ff3a Android sparse image +>4 leshort x \b, version: %d +>6 leshort x \b.%d +>16 lelong x \b, Total of %d +>12 lelong x \b %d-byte output blocks in +>20 lelong x \b %d input chunks. Modified: stable/10/contrib/file/magic/Magdir/animation ============================================================================== --- stable/10/contrib/file/magic/Magdir/animation Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/magic/Magdir/animation Tue Dec 30 19:39:31 2014 (r276415) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: animation,v 1.53 2014/04/30 21:41:02 christos Exp $ +# $File: animation,v 1.56 2014/10/23 23:12:51 christos Exp $ # animation: file(1) magic for animation/movie formats # # animation formats @@ -32,43 +32,155 @@ !:mime application/x-quicktime-player 4 string/W jP JPEG 2000 image !:mime image/jp2 +# http://www.ftyps.com/ with local additions 4 string ftyp ISO Media ->8 string isom \b, MPEG v4 system, version 1 -!:mime video/mp4 ->8 string iso2 \b, MPEG v4 system, part 12 revision ->8 string mp41 \b, MPEG v4 system, version 1 -!:mime video/mp4 ->8 string mp42 \b, MPEG v4 system, version 2 -!:mime video/mp4 ->8 string mp7t \b, MPEG v4 system, MPEG v7 XML ->8 string mp7b \b, MPEG v4 system, MPEG v7 binary XML ->8 string/W jp2 \b, JPEG 2000 -!:mime image/jp2 +>8 string 3g2 \b, MPEG v4 system, 3GPP2 +!:mime video/3gpp2 +>>11 byte 4 \b v4 (H.263/AMR GSM 6.10) +>>11 byte 5 \b v5 (H.263/AMR GSM 6.10) +>>11 byte 6 \b v6 (ITU H.264/AMR GSM 6.10) +>>11 byte a \b C.S0050-0 V1.0 +>>11 byte b \b C.S0050-0-A V1.0.0 +>>11 byte c \b C.S0050-0-B V1.0 >8 string 3ge \b, MPEG v4 system, 3GPP !:mime video/3gpp +>>11 byte 6 \b, Release 6 MBMS Extended Presentations +>>11 byte 7 \b, Release 7 MBMS Extended Presentations >8 string 3gg \b, MPEG v4 system, 3GPP +>11 byte 6 \b, Release 6 General Profile !:mime video/3gpp >8 string 3gp \b, MPEG v4 system, 3GPP +>11 byte 1 \b, Release %d (non existent) +>11 byte 2 \b, Release %d (non existent) +>11 byte 3 \b, Release %d (non existent) +>11 byte 4 \b, Release %d +>11 byte 5 \b, Release %d +>11 byte 6 \b, Release %d +>11 byte 7 \b, Release %d Streaming Servers !:mime video/3gpp >8 string 3gs \b, MPEG v4 system, 3GPP +>11 byte 7 \b, Release %d Streaming Servers !:mime video/3gpp ->8 string 3g2 \b, MPEG v4 system, 3GPP2 +>8 string avc1 \b, MPEG v4 system, 3GPP JVT AVC [ISO 14496-12:2005] +!:mime video/mp4 +>8 string/W qt \b, Apple QuickTime movie +!:mime video/quicktime +>8 string CAEP \b, Canon Digital Camera +>8 string caqv \b, Casio Digital Camera +>8 string CDes \b, Convergent Design +>8 string da0a \b, DMB MAF w/ MPEG Layer II aud, MOT slides, DLS, JPG/PNG/MNG +>8 string da0b \b, DMB MAF, ext DA0A, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string da1a \b, DMB MAF audio with ER-BSAC audio, JPG/PNG/MNG images +>8 string da1b \b, DMB MAF, ext da1a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string da2a \b, DMB MAF aud w/ HE-AAC v2 aud, MOT slides, DLS, JPG/PNG/MNG +>8 string da2b \b, DMB MAF, ext da2a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string da3a \b, DMB MAF aud with HE-AAC aud, JPG/PNG/MNG images +>8 string da3b \b, DMB MAF, ext da3a w/ BIFS, 3GPP, DID, TVA, REL, IPMP +>8 string dmb1 \b, DMB MAF supporting all the components defined in the spec +>8 string dmpf \b, Digital Media Project +>8 string drc1 \b, Dirac (wavelet compression), encap in ISO base media (MP4) +>8 string dv1a \b, DMB MAF vid w/ AVC vid, ER-BSAC aud, BIFS, JPG/PNG/MNG, TS +>8 string dv1b \b, DMB MAF, ext dv1a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string dv2a \b, DMB MAF vid w/ AVC vid, HE-AAC v2 aud, BIFS, JPG/PNG/MNG, TS +>8 string dv2b \b, DMB MAF, ext dv2a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string dv3a \b, DMB MAF vid w/ AVC vid, HE-AAC aud, BIFS, JPG/PNG/MNG, TS +>8 string dv3b \b, DMB MAF, ext dv3a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string dvr1 \b, DVB (.DVB) over RTP +!:mime video/vnd.dvb.file +>8 string dvt1 \b, DVB (.DVB) over MPEG-2 Transport Stream +!:mime video/vnd.dvb.file +>8 string F4V \b, Video for Adobe Flash Player 9+ (.F4V) +!:mime video/mp4 +>8 string F4P \b, Protected Video for Adobe Flash Player 9+ (.F4P) +!:mime video/mp4 +>8 string F4A \b, Audio for Adobe Flash Player 9+ (.F4A) +!:mime audio/mp4 +>8 string F4B \b, Audio Book for Adobe Flash Player 9+ (.F4B) +!:mime audio/mp4 +>8 string isc2 \b, ISMACryp 2.0 Encrypted File +# ?/enc-isoff-generic +>8 string iso2 \b, MP4 Base Media v2 [ISO 14496-12:2005] +!:mime video/mp4 +>8 string isom \b, MP4 Base Media v1 [IS0 14496-12:2003] +!:mime video/mp4 +>8 string/W jp2 \b, JPEG 2000 +!:mime image/jp2 +>8 string JP2 \b, JPEG 2000 Image (.JP2) [ISO 15444-1 ?] +!:mime image/jp2 +>8 string JP20 \b, Unknown, from GPAC samples (prob non-existent) +>8 string jpm \b, JPEG 2000 Compound Image (.JPM) [ISO 15444-6] +!:mime image/jpm +>8 string jpx \b, JPEG 2000 w/ extensions (.JPX) [ISO 15444-2] +!:mime image/jpx +>8 string KDDI \b, 3GPP2 EZmovie for KDDI 3G cellphones !:mime video/3gpp2 ->>11 byte 4 \b v4 (H.263/AMR GSM 6.10) ->>11 byte 5 \b v5 (H.263/AMR GSM 6.10) ->>11 byte 6 \b v6 (ITU H.264/AMR GSM 6.10) +>8 string M4A \b, Apple iTunes ALAC/AAC-LC (.M4A) Audio +!:mime audio/x-m4a +>8 string M4B \b, Apple iTunes ALAC/AAC-LC (.M4B) Audio Book +!:mime audio/mp4 +>8 string M4P \b, Apple iTunes ALAC/AAC-LC (.M4P) AES Protected Audio +!:mime video/mp4 +>8 string M4V \b, Apple iTunes Video (.M4V) Video +!:mime video/x-m4v +>8 string M4VH \b, Apple TV (.M4V) +!:mime video/x-m4v +>8 string M4VP \b, Apple iPhone (.M4V) +!:mime video/x-m4v +>8 string mj2s \b, Motion JPEG 2000 [ISO 15444-3] Simple Profile +!:mime video/mj2 +>8 string mjp2 \b, Motion JPEG 2000 [ISO 15444-3] General Profile +!:mime video/mj2 +>8 string mmp4 \b, MPEG-4/3GPP Mobile Profile (.MP4 / .3GP) (for NTT) +!:mime video/mp4 +>8 string mobi \b, MPEG-4, MOBI format +!:mime video/mp4 +>8 string mp21 \b, MPEG-21 [ISO/IEC 21000-9] +>8 string mp41 \b, MP4 v1 [ISO 14496-1:ch13] +!:mime video/mp4 +>8 string mp42 \b, MP4 v2 [ISO 14496-14] +!:mime video/mp4 +>8 string mp71 \b, MP4 w/ MPEG-7 Metadata [per ISO 14496-12] +>8 string mp7t \b, MPEG v4 system, MPEG v7 XML +>8 string mp7b \b, MPEG v4 system, MPEG v7 binary XML >8 string mmp4 \b, MPEG v4 system, 3GPP Mobile !:mime video/mp4 ->8 string avc1 \b, MPEG v4 system, 3GPP JVT AVC -!:mime video/3gpp ->8 string/W M4A \b, MPEG v4 system, iTunes AAC-LC +>8 string MPPI \b, Photo Player, MAF [ISO/IEC 23000-3] +>8 string mqt \b, Sony / Mobile QuickTime (.MQV) US Pat 7,477,830 +!:mime video/quicktime +>8 string MSNV \b, MPEG-4 (.MP4) for SonyPSP +!:mime audio/mp4 +>8 string NDAS \b, MP4 v2 [ISO 14496-14] Nero Digital AAC Audio !:mime audio/mp4 ->8 string/W M4V \b, MPEG v4 system, iTunes AVC-LC +>8 string NDSC \b, MPEG-4 (.MP4) Nero Cinema Profile !:mime video/mp4 ->8 string/W M4P \b, MPEG v4 system, iTunes AES encrypted ->8 string/W M4B \b, MPEG v4 system, iTunes bookmarked ->8 string/W qt \b, Apple QuickTime movie +>8 string NDSH \b, MPEG-4 (.MP4) Nero HDTV Profile +!:mime video/mp4 +>8 string NDSM \b, MPEG-4 (.MP4) Nero Mobile Profile +!:mime video/mp4 +>8 string NDSP \b, MPEG-4 (.MP4) Nero Portable Profile +!:mime video/mp4 +>8 string NDSS \b, MPEG-4 (.MP4) Nero Standard Profile +!:mime video/mp4 +>8 string NDXC \b, H.264/MPEG-4 AVC (.MP4) Nero Cinema Profile +!:mime video/mp4 +>8 string NDXH \b, H.264/MPEG-4 AVC (.MP4) Nero HDTV Profile +!:mime video/mp4 +>8 string NDXM \b, H.264/MPEG-4 AVC (.MP4) Nero Mobile Profile +!:mime video/mp4 +>8 string NDXP \b, H.264/MPEG-4 AVC (.MP4) Nero Portable Profile +!:mime video/mp4 +>8 string NDXS \b, H.264/MPEG-4 AVC (.MP4) Nero Standard Profile +!:mime video/mp4 +>8 string odcf \b, OMA DCF DRM Format 2.0 (OMA-TS-DRM-DCF-V2_0-20060303-A) +>8 string opf2 \b, OMA PDCF DRM Format 2.1 (OMA-TS-DRM-DCF-V2_1-20070724-C) +>8 string opx2 \b, OMA PDCF DRM + XBS ext (OMA-TS-DRM_XBS-V1_0-20070529-C) +>8 string pana \b, Panasonic Digital Camera +>8 string qt \b, Apple QuickTime (.MOV/QT) !:mime video/quicktime +>8 string ROSS \b, Ross Video +>8 string sdv \b, SD Memory Card Video +>8 string ssc1 \b, Samsung stereo, single stream (patent pending) +>8 string ssc2 \b, Samsung stereo, dual stream (patent pending) # MPEG sequences # Scans for all common MPEG header start codes Modified: stable/10/contrib/file/magic/Magdir/archive ============================================================================== --- stable/10/contrib/file/magic/Magdir/archive Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/magic/Magdir/archive Tue Dec 30 19:39:31 2014 (r276415) @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------ -# $File: archive,v 1.87 2014/06/03 19:15:58 christos Exp $ +# $File: archive,v 1.88 2014/08/16 10:42:17 christos Exp $ # archive: file(1) magic for archive formats (see also "msdos" for self- # extracting compressed archives) # @@ -954,34 +954,3 @@ >0xE08 search/7776 \x55\xAA >>&-512 indirect x \b; contains -# Symantec GHOST image by Joerg Jenderek at May 2014 -# http://us.norton.com/ghost/ -# http://www.garykessler.net/library/file_sigs.html -0 ubelong&0xFFFFf7f0 0xFEEF0100 Norton GHost image -# *.GHO ->2 ubyte&0x08 0x00 \b, first file -# *.GHS or *.[0-9] with cns program option ->2 ubyte&0x08 0x08 \b, split file -# part of split index interesting for *.ghs ->>4 ubyte x id=0x%x -# compression tag minus one equals numeric compression command line switch z[1-9] ->3 ubyte 0 \b, no compression ->3 ubyte 2 \b, fast compression (Z1) ->3 ubyte 3 \b, medium compression (Z2) ->3 ubyte >3 ->>3 ubyte <11 \b, compression (Z%d-1) ->2 ubyte&0x08 0x00 -# ~ 30 byte password field only for *.gho ->>12 ubequad !0 \b, password protected ->>44 ubyte !1 -# 1~Image All, sector-by-sector only for *.gho ->>>10 ubyte 1 \b, sector copy -# 1~Image Boot track only for *.gho ->>>43 ubyte 1 \b, boot track -# 1~Image Disc only for *.gho implies Image Boot track and sector copy ->>44 ubyte 1 \b, disc sector copy -# optional image description only *.gho ->>0xff string >\0 "%-.254s" -# look for DOS sector end sequence ->0xE08 search/7776 \x55\xAA ->>&-512 indirect x \b; contains Modified: stable/10/contrib/file/magic/Magdir/blender ============================================================================== --- stable/10/contrib/file/magic/Magdir/blender Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/magic/Magdir/blender Tue Dec 30 19:39:31 2014 (r276415) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: blender,v 1.5 2009/09/19 16:28:08 christos Exp $ +# $File: blender,v 1.6 2014/08/30 08:34:17 christos Exp $ # blender: file(1) magic for Blender 3D related files # # Native format rule v1.2. For questions use the developers list @@ -35,5 +35,5 @@ >>>0x44 string =GLOB \b. >>>>0x60 beshort x \b%.4d -# Scripts that run in the embeded Python interpreter +# Scripts that run in the embedded Python interpreter 0 string #!BPY Blender3D BPython script Modified: stable/10/contrib/file/magic/Magdir/commands ============================================================================== --- stable/10/contrib/file/magic/Magdir/commands Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/magic/Magdir/commands Tue Dec 30 19:39:31 2014 (r276415) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: commands,v 1.50 2014/05/30 16:48:44 christos Exp $ +# $File: commands,v 1.51 2014/09/27 00:12:55 christos Exp $ # commands: file(1) magic for various shells and interpreters # #0 string/w : shell archive or script for antique kernel text @@ -56,7 +56,7 @@ !:mime text/x-awk 0 string/wt #!\ /usr/bin/awk awk script text executable !:mime text/x-awk -0 regex/4096 =^\\s{0,100}BEGIN\\s{0,100}[{] awk script text +0 regex/4096 =^\\s{0,100}BEGIN\\s{0,100}[{] awk or perl script text # AT&T Bell Labs' Plan 9 shell 0 string/wt #!\ /bin/rc Plan 9 rc shell script text executable Modified: stable/10/contrib/file/magic/Magdir/compress ============================================================================== --- stable/10/contrib/file/magic/Magdir/compress Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/magic/Magdir/compress Tue Dec 30 19:39:31 2014 (r276415) @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------ -# $File: compress,v 1.58 2014/05/07 19:36:59 christos Exp $ +# $File: compress,v 1.62 2014/09/13 14:27:12 christos Exp $ # compress: file(1) magic for pure-compression formats (no archives) # # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc. @@ -251,3 +251,13 @@ # http://code.google.com/p/snappy/source/browse/trunk/framing_format.txt 0 string \377\006\0\0sNaPpY snappy framed data !:mime application/x-snappy-framed + +# qpress, http://www.quicklz.com/ +0 string qpress10 qpress compressed data +!:mime application/x-qpress + +# Zlib https://www.ietf.org/rfc/rfc6713.txt +0 beshort%31 =0 +>0 byte&0xf =8 +>>0 byte&0x80 =0 zlib compressed data +!:mime application/zlib Modified: stable/10/contrib/file/magic/Magdir/database ============================================================================== --- stable/10/contrib/file/magic/Magdir/database Tue Dec 30 18:42:53 2014 (r276414) +++ stable/10/contrib/file/magic/Magdir/database Tue Dec 30 19:39:31 2014 (r276415) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: database,v 1.41 2014/06/03 19:17:27 christos Exp $ +# $File: database,v 1.43 2014/10/28 15:47:39 christos Exp $ # database: file(1) magic for various databases # # extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk) @@ -9,9 +9,17 @@ # GDBM magic numbers # Will be maintained as part of the GDBM distribution in the future. # -0 belong 0x13579ace GNU dbm 1.x or ndbm database, big endian +0 belong 0x13579acd GNU dbm 1.x or ndbm database, big endian, 32-bit !:mime application/x-gdbm -0 lelong 0x13579ace GNU dbm 1.x or ndbm database, little endian +0 belong 0x13579ace GNU dbm 1.x or ndbm database, big endian, old +!:mime application/x-gdbm +0 belong 0x13579acf GNU dbm 1.x or ndbm database, big endian, 64-bit +!:mime application/x-gdbm +0 lelong 0x13579acd GNU dbm 1.x or ndbm database, little endian, 32-bit +!:mime application/x-gdbm +0 lelong 0x13579ace GNU dbm 1.x or ndbm database, little endian, old +!:mime application/x-gdbm +0 lelong 0x13579acf GNU dbm 1.x or ndbm database, little endian, 64-bit !:mime application/x-gdbm 0 string GDBM GNU dbm 2.x database !:mime application/x-gdbm @@ -202,27 +210,27 @@ # for multiple index files (*.MDX) Production flag,tag numbers(<=0x30),tag length(<=0x20), reserverd (NULL) >>>>>>>24 ubelong&0x0133f7ff >0 # test for reserved NULL byte ->>>>>>>>47 ubyte x +>>>>>>>>47 ubyte 0 # test for valid TAG key format (0x10 or 0) >>>>>>>>>559 ubyte&0xeF 0 # test MM <= 12 ->>>>>>>>>45 ubeshort <0x0C20 ->>>>>>>>>>45 ubyte >0 ->>>>>>>>>>>46 ubyte <32 ->>>>>>>>>>>>46 ubyte >0 +>>>>>>>>>>45 ubeshort <0x0C20 +>>>>>>>>>>>45 ubyte >0 +>>>>>>>>>>>>46 ubyte <32 +>>>>>>>>>>>>>46 ubyte >0 #!:mime application/x-mdx ->>>>>>>>>>>>>0 use xbase-type ->>>>>>>>>>>>>0 ubyte x \b MDX ->>>>>>>>>>>>>1 ubyte x \b, creation-date ->>>>>>>>>>>>>1 use xbase-date ->>>>>>>>>>>>>44 ubyte x \b, update-date ->>>>>>>>>>>>>44 use xbase-date +>>>>>>>>>>>>>>0 use xbase-type +>>>>>>>>>>>>>>0 ubyte x \b MDX +>>>>>>>>>>>>>>1 ubyte x \b, creation-date +>>>>>>>>>>>>>>1 use xbase-date +>>>>>>>>>>>>>>44 ubyte x \b, update-date +>>>>>>>>>>>>>>44 use xbase-date # No.of tags in use (1,2,5,12) ->>>>>>>>>>>>>28 uleshort x \b, %d +>>>>>>>>>>>>>>28 uleshort x \b, %d # No. of entries in tag (0x30) ->>>>>>>>>>>>>25 ubyte x \b/%d tags +>>>>>>>>>>>>>>25 ubyte x \b/%d tags # Length of tag ->>>>>>>>>>>>>26 ubyte x * %d +>>>>>>>>>>>>>>26 ubyte x * %d # 1st tag name_ >>>>>>>>>>>>>548 string x \b, 1st tag "%.11s" # 2nd tag name @@ -337,60 +345,103 @@ # dBASE III >>>>>>16 ubyte 3 # dBASE III DBT ->>>>>>>0 use xbase-memo-print -# dBASE IV DBT , FoxPro FPT or many PNG , ZIP , DBF garbage +>>>>>>>0 use dbase3-memo-print +# dBASE III DBT without version, dBASE IV DBT , FoxPro FPT , or many ZIP , DBF garbage >>>>>>16 ubyte 0 -# dBASE IV DBT with DBF name or DBF garbage ->>>>>>>8 ubelong >0x40000000 -# skip DBF and catch dBASE IV DBT with DBF name and with non big index of next free block ->>>>>>>>0 ulelong <0x01010002 ->>>>>>>>>0 use xbase-memo-print ->>>>>>>8 ubelong 0 +# unusual dBASE III DBT like angest.dbt, dBASE IV DBT with block size 0 , FoxPro FPT , or garbage PCX DBF +>>>>>>>20 uleshort 0 +# FoxPro FPT , unusual dBASE III DBT like biblio.dbt or garbage +>>>>>>>>8 ulong =0 +>>>>>>>>>6 ubeshort >0 +# skip emacs.PIF +>>>>>>>>>>4 ushort 0 +>>>>>>>>>>>0 use foxpro-memo-print +# dBASE III DBT , garbage +>>>>>>>>>6 ubeshort 0 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 19:51:32 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9C568361; Tue, 30 Dec 2014 19:51:32 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 23CBC199E; Tue, 30 Dec 2014 19:51:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUJpWat020203; Tue, 30 Dec 2014 19:51:32 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUJpVjZ020198; Tue, 30 Dec 2014 19:51:31 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201412301951.sBUJpVjZ020198@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 30 Dec 2014 19:51:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276416 - in stable/9: contrib/file contrib/file/Magdir contrib/file/doc contrib/file/m4 contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/t... X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 19:51:32 -0000 Author: delphij Date: Tue Dec 30 19:51:30 2014 New Revision: 276416 URL: https://svnweb.freebsd.org/changeset/base/276416 Log: MFC: file 5.21 Added: stable/9/contrib/file/config.guess - copied unchanged from r267897, head/contrib/file/config.guess stable/9/contrib/file/config.sub - copied unchanged from r267897, head/contrib/file/config.sub stable/9/contrib/file/depcomp - copied unchanged from r267897, head/contrib/file/depcomp stable/9/contrib/file/doc/ - copied from r267897, head/contrib/file/doc/ stable/9/contrib/file/ltmain.sh - copied unchanged from r267897, head/contrib/file/ltmain.sh stable/9/contrib/file/m4/ - copied from r267897, head/contrib/file/m4/ stable/9/contrib/file/magic/ - copied from r267897, head/contrib/file/magic/ stable/9/contrib/file/magic/Magdir/kerberos - copied unchanged from r275698, head/contrib/file/magic/Magdir/kerberos stable/9/contrib/file/magic/Magdir/meteorological - copied unchanged from r275698, head/contrib/file/magic/Magdir/meteorological stable/9/contrib/file/missing - copied, changed from r267897, head/contrib/file/missing stable/9/contrib/file/python/ - copied from r267897, head/contrib/file/python/ stable/9/contrib/file/src/ - copied from r267897, head/contrib/file/src/ stable/9/contrib/file/tests/escapevel.result - copied unchanged from r267897, head/contrib/file/tests/escapevel.result stable/9/contrib/file/tests/escapevel.testfile - copied unchanged from r267897, head/contrib/file/tests/escapevel.testfile stable/9/contrib/file/tests/issue311docx.result - copied unchanged from r267897, head/contrib/file/tests/issue311docx.result stable/9/contrib/file/tests/issue311docx.testfile - copied unchanged from r267897, head/contrib/file/tests/issue311docx.testfile Deleted: stable/9/contrib/file/Header stable/9/contrib/file/Localstuff stable/9/contrib/file/Magdir/ stable/9/contrib/file/Makefile.am-src stable/9/contrib/file/apprentice.c stable/9/contrib/file/apptype.c stable/9/contrib/file/ascmagic.c stable/9/contrib/file/asprintf.c stable/9/contrib/file/cdf.c stable/9/contrib/file/cdf.h stable/9/contrib/file/cdf_time.c stable/9/contrib/file/compress.c stable/9/contrib/file/elfclass.h stable/9/contrib/file/encoding.c stable/9/contrib/file/file.c stable/9/contrib/file/file.h stable/9/contrib/file/file.man stable/9/contrib/file/file_opts.h stable/9/contrib/file/fsmagic.c stable/9/contrib/file/funcs.c stable/9/contrib/file/getline.c stable/9/contrib/file/getopt_long.c stable/9/contrib/file/is_tar.c stable/9/contrib/file/libmagic.man stable/9/contrib/file/magic.c stable/9/contrib/file/magic.h stable/9/contrib/file/magic.man stable/9/contrib/file/magic/Magdir/rinex stable/9/contrib/file/magic2mime stable/9/contrib/file/mygetopt.h stable/9/contrib/file/names.h stable/9/contrib/file/print.c stable/9/contrib/file/readcdf.c stable/9/contrib/file/readelf.c stable/9/contrib/file/readelf.h stable/9/contrib/file/softmagic.c stable/9/contrib/file/strlcat.c stable/9/contrib/file/strlcpy.c stable/9/contrib/file/tar.h stable/9/contrib/file/tests/gedcom.magic stable/9/contrib/file/vasprintf.c Modified: stable/9/contrib/file/ChangeLog stable/9/contrib/file/Makefile.am stable/9/contrib/file/Makefile.in stable/9/contrib/file/README stable/9/contrib/file/TODO stable/9/contrib/file/aclocal.m4 stable/9/contrib/file/compile stable/9/contrib/file/config.h.in stable/9/contrib/file/configure stable/9/contrib/file/configure.ac stable/9/contrib/file/doc/Makefile.in stable/9/contrib/file/doc/file.man stable/9/contrib/file/doc/libmagic.man stable/9/contrib/file/install-sh stable/9/contrib/file/magic/Localstuff stable/9/contrib/file/magic/Magdir/android stable/9/contrib/file/magic/Magdir/animation stable/9/contrib/file/magic/Magdir/archive stable/9/contrib/file/magic/Magdir/blender stable/9/contrib/file/magic/Magdir/commands stable/9/contrib/file/magic/Magdir/compress stable/9/contrib/file/magic/Magdir/database stable/9/contrib/file/magic/Magdir/elf stable/9/contrib/file/magic/Magdir/filesystems stable/9/contrib/file/magic/Magdir/images stable/9/contrib/file/magic/Magdir/jpeg stable/9/contrib/file/magic/Magdir/linux stable/9/contrib/file/magic/Magdir/macintosh stable/9/contrib/file/magic/Magdir/msooxml stable/9/contrib/file/magic/Magdir/netbsd stable/9/contrib/file/magic/Magdir/pascal stable/9/contrib/file/magic/Magdir/pgp stable/9/contrib/file/magic/Magdir/python stable/9/contrib/file/magic/Magdir/riff stable/9/contrib/file/magic/Magdir/sequent stable/9/contrib/file/magic/Magdir/sereal stable/9/contrib/file/magic/Magdir/ssh stable/9/contrib/file/magic/Magdir/vms stable/9/contrib/file/magic/Magdir/vorbis stable/9/contrib/file/magic/Magdir/windows stable/9/contrib/file/magic/Makefile.am stable/9/contrib/file/magic/Makefile.in stable/9/contrib/file/python/Makefile.in stable/9/contrib/file/src/Makefile.in stable/9/contrib/file/src/apprentice.c stable/9/contrib/file/src/ascmagic.c stable/9/contrib/file/src/cdf.c stable/9/contrib/file/src/cdf.h stable/9/contrib/file/src/compress.c stable/9/contrib/file/src/elfclass.h stable/9/contrib/file/src/encoding.c stable/9/contrib/file/src/file.c stable/9/contrib/file/src/file.h stable/9/contrib/file/src/file_opts.h stable/9/contrib/file/src/fsmagic.c stable/9/contrib/file/src/funcs.c stable/9/contrib/file/src/getline.c stable/9/contrib/file/src/magic.c stable/9/contrib/file/src/magic.h stable/9/contrib/file/src/magic.h.in stable/9/contrib/file/src/pread.c stable/9/contrib/file/src/readcdf.c stable/9/contrib/file/src/readelf.c stable/9/contrib/file/src/softmagic.c stable/9/contrib/file/src/vasprintf.c stable/9/contrib/file/tests/Makefile.am stable/9/contrib/file/tests/Makefile.in stable/9/contrib/file/tests/README stable/9/contrib/file/tests/gedcom.result stable/9/lib/libmagic/Makefile stable/9/lib/libmagic/config.h Directory Properties: stable/9/contrib/file/ (props changed) stable/9/lib/libmagic/ (props changed) Modified: stable/9/contrib/file/ChangeLog ============================================================================== --- stable/9/contrib/file/ChangeLog Tue Dec 30 19:39:31 2014 (r276415) +++ stable/9/contrib/file/ChangeLog Tue Dec 30 19:51:30 2014 (r276416) @@ -1,3 +1,311 @@ +2014-12-10 20:01 Christos Zoulas + + * release 5.21 + +2014-11-27 18:40 Christos Zoulas + + * Allow setting more parameters from the command line. + * Split name/use and indirect magic recursion limits. + +2014-11-27 11:12 Christos Zoulas + + * Adjust ELF parameters and the default recursion + level. + * Allow setting the recursion level dynamically. + +2014-11-24 8:55 Christos Zoulas + + * The following fixes resulted from Thomas Jarosch's fuzzing + tests that revealed severe performance issues on pathological + input: + - limit number of elf program and sections processing + - abort elf note processing quickly + - reduce the number of recursion levels from 20 to 10 + - preserve error messages in indirect magic handling + +2014-11-12 10:30 Christos Zoulas + + * fix bogus free in the user buffer case. + +2014-11-11 12:35 Christos Zoulas + + * fix out of bounds read for pascal strings + * fix memory leak (not freeing the head of each mlist) + +2014-11-07 10:25 Christos Zoulas + + * When printing strings from a file, convert them to printable + on a byte by byte basis, so that we don't get issues with + locale's trying to interpret random byte streams as UTF-8 and + having printf error out with EILSEQ. + +2014-10-17 11:48 Christos Zoulas + + * fix bounds in note reading (Francisco Alonso / Red Hat) + +2014-10-11 15:02 Christos Zoulas + + * fix autoconf glue for setlocale and locale_t; some OS's + have locale_t in xlocale.h + +2014-10-10 15:01 Christos Zoulas + + * release 5.20 + +2014-08-17 10:01 Christos Zoulas + + * recognize encrypted CDF documents + +2014-08-04 9:18 Christos Zoulas + + * add magic_load_buffers from Brooks Davis + +2014-07-24 16:40 Christos Zoulas + + * add thumbs.db support + +2014-06-12 12:28 Christos Zoulas + + * release 5.19 + +2014-06-09 9:04 Christos Zoulas + + * Misc buffer overruns and missing buffer size tests in cdf parsing + (Francisco Alonso, Jan Kaluza) + +2014-06-02 14:50 Christos Zoulas + + * Enforce limit of 8K on regex searches that have no limits + * Allow the l modifier for regex to mean line count. Default + to byte count. If line count is specified, assume a max + of 80 characters per line to limit the byte count. + * Don't allow conversions to be used for dates, allowing + the mask field to be used as an offset. + +2014-05-30 12:51 Christos Zoulas + + * Make the range operator limit the length of the + regex search. + +2014-05-14 19:23 Christos Zoulas + + * PR/347: Windows fixes + * PR/352: Hangul word processor recognition + * PR/354: Encoding irregularities in text files + +2014-05-06 6:12 Christos Zoulas + + * Fix uninitialized title in CDF files (Jan Kaluza) + +2014-05-04 14:55 Christos Zoulas + + * PR/351: Fix compilation of empty files + +2014-04-30 17:39 Christos Zoulas + + * Fix integer formats: We don't specify 'l' or + 'h' and 'hh' specifiers anymore, only 'll' for + quads and nothing for the rest. This is so that + magic writing is simpler. + +2014-04-01 15:25 Christos Zoulas + + * PR/341: Jan Kaluza, fix memory leak + * PR/342: Jan Kaluza, fix out of bounds read + +2014-03-28 15:25 Christos Zoulas + + * Fix issue with long formats not matching fmtcheck + +2014-03-26 11:25 Christos Zoulas + + * release 5.18 + +2014-03-15 17:45 Christos Zoulas + + * add fmtcheck(3) for those who don't have it + +2014-03-14 15:12 Christos Zoulas + + * prevent mime entries from being attached to magic + entries with no descriptions + + * adjust magic strength for regex type + + * remove superfluous ascmagic with encoding test + +2014-03-06 12:01 Christos Zoulas + + * fix regression fix echo -ne "\012\013\014" | file -i - + which printed "binary" instead of "application/octet-stream" + + * add size_t overflow check for magic file size + +2014-02-27 16:01 Christos Zoulas + + * experimental support for matching with CFD CLSID + +2014-02-18 13:04 Kimmo Suominen (kimmo@suominen.com) + + * Cache old LC_CTYPE locale before setting it to "C", so + we can use it to restore LC_CTYPE instead of asking + setlocale() to scan the environment variables. + +2014-02-12 18:21 Christos Zoulas + + * Count recursion levels through indirect magic + +2014-02-11 10:40 Christos Zoulas + + * Prevent infinite recursion on files with indirect offsets of 0 + +2014-01-30 21:00 Christos Zoulas + + * Add -E flag that makes file print filesystem errors to stderr + and exit. + +2014-01-08 17:20 Christos Zoulas + + * mime printing could print results from multiple magic entries + if there were multiple matches. + * in some cases overflow was not detected when computing offsets + in softmagic. + +2013-12-05 12:00 Christos Zoulas + + * use strcasestr() to for cdf strings + * reset to the "C" locale while doing regex operations, or case + insensitive comparisons; this is provisional + +2013-11-19 20:10 Christos Zoulas + + * always leave magic file loaded, don't unload for magic_check, etc. + * fix default encoding to binary instead of unknown which broke recently + * handle empty and one byte files, less specially so that + --mime-encoding does not break completely. + ` +2013-11-06 14:40 Christos Zoulas + + * fix erroneous non-zero exit code from non-existant file and message + +2013-10-29 14:25 Christos Zoulas + + * add CDF MSI file detection (Guy Helmer) + +2013-09-03 11:56 Christos Zoulas + + * Don't mix errors and regular output if there was an error + * in magic_descriptor() don't close the file and try to restore + its position + +2013-05-30 17:25 Christos Zoulas + + * Don't treat magic as an error if offset was past EOF (Christoph Biedl) + +2013-05-28 17:25 Christos Zoulas + + * Fix spacing issues in softmagic and elf (Jan Kaluza) + +2013-05-02 18:00 Christos Zoulas + + * Fix segmentation fault with multiple magic_load commands. + +2013-04-22 11:20 Christos Zoulas + + * The way "default" was implemented was not very useful + because the "if something was printed at that level" + was not easily controlled by the user, and the format + was bound to a string which is too restrictive. Add + a "clear" for that level keyword and make "default" + void. This way one can do: + + >>13 clear x + >>13 lelong 1 foo + >>13 lelong 2 bar + >>13 default x + >>>13 lelong x unknown %x + +2013-03-25 13:20 Christos Zoulas + + * disallow strength setting in "name" entries + +2013-03-06 21:24 Christos Zoulas + + * fix recursive magic separator printing + +2013-02-26 19:28 Christos Zoulas + + * limit recursion level for mget + * fix pread() related breakage in cdf + * handle offsets properly in recursive "use" + +2013-02-18 10:39 Christos Zoulas + + * add elf reading of debug info to determine if file is stripped + (Jan Kaluza) + * use pread() + +2013-01-25 18:05 Christos Zoulas + + * change mime description size from 64 to 80 to accommodate OOXML. + +2013-01-11 14:50 Christos Zoulas + + * Warn about inconsistent continuation levels. + * Change fsmagic to add a space after it prints. + +2013-01-10 21:00 Christos Zoulas + + * Make getline public so that file can link against it. + Perhaps it is better to rename it, or hide it differently. + Fixes builds on platforms that do not provide it. + +2013-01-07 16:30 Christos Zoulas + + * Add SuS d{,1,2,4,8}, u{,1,2,4,8} and document + what long, int, short, etc is (Guy Harris) + +2013-01-06 11:20 Christos Zoulas + + * add magic_version function and constant + * Redo memory allocation and de-allocation. + (prevents double frees on non mmap platforms) + * Fix bug with name/use having to do with passing + found state from the parent to the child and back. + +2012-12-19 8:47 Christos Zoulas + + * Only print elf capabilities for archs we know (Jan Kaluza) + +2012-10-30 19:14 Christos Zoulas + + * Add "name" and "use" file types in order to look + inside mach-o files. + +2012-09-06 10:40 Christos Zoulas + + * make --version exit 0 (Matthew Schultz) + * add string/T (Jan Kaluza) + +2012-08-09 2:15 Christos Zoulas + + * add z and t modifiers for our own vasprintf + * search for $HOME/.magic.mgc if it is there first + * fix reads from a pipe, and preserve errno + +2012-05-15 13:12 Christos Zoulas + + * use ctime_r, asctime_r + +2012-04-06 17:18 Christos Zoulas + + * Fixes for indirect offsets to handle apple disk formats + +2012-04-03 18:26 Christos Zoulas + + * Add windows date field types + * More info for windows shortcuts (incomplete) + 2012-02-20 17:33 Christos Zoulas * Fix CDF parsing issues found by CERT's fuzzing tool (Will Dormann) @@ -851,7 +1159,7 @@ * Identify gnu tar vs. posix tar - * When keep going, don't print spurious newlines (Radek Vokál) + * When keep going, don't print spurious newlines (Radek Vokal) 2006-04-01 12:02 Christos Zoulas @@ -875,7 +1183,7 @@ 2005-10-31 8:54 Christos Zoulas * Fix regression where the core info was not completely processed - (Radek Vokál) + (Radek Vokal) 2005-10-20 11:15 Christos Zoulas @@ -892,7 +1200,7 @@ 2005-09-20 13:33 Christos Zoulas * Don't print SVR4 Style in core files multiple times - (Radek Vokál) + (Radek Vokal) 2005-08-27 04:09 Christos Zoulas Modified: stable/9/contrib/file/Makefile.am ============================================================================== --- stable/9/contrib/file/Makefile.am Tue Dec 30 19:39:31 2014 (r276415) +++ stable/9/contrib/file/Makefile.am Tue Dec 30 19:51:30 2014 (r276416) @@ -1,280 +1,5 @@ -# -# $File: Makefile.am,v 1.78 2012/01/27 01:41:26 christos Exp $ -# -MAGIC_FRAGMENT_BASE = Magdir -MAGIC_DIR = $(top_srcdir)/magic -MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE) +ACLOCAL_AMFLAGS = -I m4 -pkgdata_DATA = magic.mgc +EXTRA_DIST = MAINT -EXTRA_DIST = \ -$(MAGIC_DIR)/Header \ -$(MAGIC_DIR)/Localstuff \ -$(MAGIC_FRAGMENT_DIR)/acorn \ -$(MAGIC_FRAGMENT_DIR)/adi \ -$(MAGIC_FRAGMENT_DIR)/adventure \ -$(MAGIC_FRAGMENT_DIR)/allegro \ -$(MAGIC_FRAGMENT_DIR)/alliant \ -$(MAGIC_FRAGMENT_DIR)/amanda \ -$(MAGIC_FRAGMENT_DIR)/amigaos \ -$(MAGIC_FRAGMENT_DIR)/animation \ -$(MAGIC_FRAGMENT_DIR)/apl \ -$(MAGIC_FRAGMENT_DIR)/apple \ -$(MAGIC_FRAGMENT_DIR)/applix \ -$(MAGIC_FRAGMENT_DIR)/archive \ -$(MAGIC_FRAGMENT_DIR)/assembler \ -$(MAGIC_FRAGMENT_DIR)/asterix \ -$(MAGIC_FRAGMENT_DIR)/att3b \ -$(MAGIC_FRAGMENT_DIR)/audio \ -$(MAGIC_FRAGMENT_DIR)/basis \ -$(MAGIC_FRAGMENT_DIR)/bflt \ -$(MAGIC_FRAGMENT_DIR)/blcr \ -$(MAGIC_FRAGMENT_DIR)/blender \ -$(MAGIC_FRAGMENT_DIR)/blit \ -$(MAGIC_FRAGMENT_DIR)/bout \ -$(MAGIC_FRAGMENT_DIR)/bsdi \ -$(MAGIC_FRAGMENT_DIR)/bsi \ -$(MAGIC_FRAGMENT_DIR)/btsnoop \ -$(MAGIC_FRAGMENT_DIR)/c-lang \ -$(MAGIC_FRAGMENT_DIR)/c64 \ -$(MAGIC_FRAGMENT_DIR)/cad \ -$(MAGIC_FRAGMENT_DIR)/cafebabe \ -$(MAGIC_FRAGMENT_DIR)/cddb \ -$(MAGIC_FRAGMENT_DIR)/chord \ -$(MAGIC_FRAGMENT_DIR)/cisco \ -$(MAGIC_FRAGMENT_DIR)/citrus \ -$(MAGIC_FRAGMENT_DIR)/clarion \ -$(MAGIC_FRAGMENT_DIR)/claris \ -$(MAGIC_FRAGMENT_DIR)/clipper \ -$(MAGIC_FRAGMENT_DIR)/commands \ -$(MAGIC_FRAGMENT_DIR)/communications \ -$(MAGIC_FRAGMENT_DIR)/compress \ -$(MAGIC_FRAGMENT_DIR)/console \ -$(MAGIC_FRAGMENT_DIR)/convex \ -$(MAGIC_FRAGMENT_DIR)/cracklib \ -$(MAGIC_FRAGMENT_DIR)/ctags \ -$(MAGIC_FRAGMENT_DIR)/cups \ -$(MAGIC_FRAGMENT_DIR)/dact \ -$(MAGIC_FRAGMENT_DIR)/database \ -$(MAGIC_FRAGMENT_DIR)/diamond \ -$(MAGIC_FRAGMENT_DIR)/diff \ -$(MAGIC_FRAGMENT_DIR)/digital \ -$(MAGIC_FRAGMENT_DIR)/dolby \ -$(MAGIC_FRAGMENT_DIR)/dump \ -$(MAGIC_FRAGMENT_DIR)/dyadic \ -$(MAGIC_FRAGMENT_DIR)/ebml \ -$(MAGIC_FRAGMENT_DIR)/editors \ -$(MAGIC_FRAGMENT_DIR)/efi \ -$(MAGIC_FRAGMENT_DIR)/elf \ -$(MAGIC_FRAGMENT_DIR)/encore \ -$(MAGIC_FRAGMENT_DIR)/epoc \ -$(MAGIC_FRAGMENT_DIR)/erlang \ -$(MAGIC_FRAGMENT_DIR)/esri \ -$(MAGIC_FRAGMENT_DIR)/fcs \ -$(MAGIC_FRAGMENT_DIR)/filesystems \ -$(MAGIC_FRAGMENT_DIR)/flash \ -$(MAGIC_FRAGMENT_DIR)/fonts \ -$(MAGIC_FRAGMENT_DIR)/fortran \ -$(MAGIC_FRAGMENT_DIR)/frame \ -$(MAGIC_FRAGMENT_DIR)/freebsd \ -$(MAGIC_FRAGMENT_DIR)/fsav \ -$(MAGIC_FRAGMENT_DIR)/fusecompress \ -$(MAGIC_FRAGMENT_DIR)/games \ -$(MAGIC_FRAGMENT_DIR)/gcc \ -$(MAGIC_FRAGMENT_DIR)/geo \ -$(MAGIC_FRAGMENT_DIR)/geos \ -$(MAGIC_FRAGMENT_DIR)/gimp \ -$(MAGIC_FRAGMENT_DIR)/gnome-keyring \ -$(MAGIC_FRAGMENT_DIR)/gnu \ -$(MAGIC_FRAGMENT_DIR)/gnumeric \ -$(MAGIC_FRAGMENT_DIR)/grace \ -$(MAGIC_FRAGMENT_DIR)/graphviz \ -$(MAGIC_FRAGMENT_DIR)/gringotts \ -$(MAGIC_FRAGMENT_DIR)/guile \ -$(MAGIC_FRAGMENT_DIR)/hitachi-sh \ -$(MAGIC_FRAGMENT_DIR)/hp \ -$(MAGIC_FRAGMENT_DIR)/human68k \ -$(MAGIC_FRAGMENT_DIR)/ibm370 \ -$(MAGIC_FRAGMENT_DIR)/ibm6000 \ -$(MAGIC_FRAGMENT_DIR)/iff \ -$(MAGIC_FRAGMENT_DIR)/images \ -$(MAGIC_FRAGMENT_DIR)/inform \ -$(MAGIC_FRAGMENT_DIR)/intel \ -$(MAGIC_FRAGMENT_DIR)/interleaf \ -$(MAGIC_FRAGMENT_DIR)/island \ -$(MAGIC_FRAGMENT_DIR)/ispell \ -$(MAGIC_FRAGMENT_DIR)/isz \ -$(MAGIC_FRAGMENT_DIR)/java \ -$(MAGIC_FRAGMENT_DIR)/jpeg \ -$(MAGIC_FRAGMENT_DIR)/karma \ -$(MAGIC_FRAGMENT_DIR)/kde \ -$(MAGIC_FRAGMENT_DIR)/kml \ -$(MAGIC_FRAGMENT_DIR)/lecter \ -$(MAGIC_FRAGMENT_DIR)/lex \ -$(MAGIC_FRAGMENT_DIR)/lif \ -$(MAGIC_FRAGMENT_DIR)/linux \ -$(MAGIC_FRAGMENT_DIR)/lisp \ -$(MAGIC_FRAGMENT_DIR)/llvm \ -$(MAGIC_FRAGMENT_DIR)/lua \ -$(MAGIC_FRAGMENT_DIR)/luks \ -$(MAGIC_FRAGMENT_DIR)/m4 \ -$(MAGIC_FRAGMENT_DIR)/mach \ -$(MAGIC_FRAGMENT_DIR)/macintosh \ -$(MAGIC_FRAGMENT_DIR)/magic \ -$(MAGIC_FRAGMENT_DIR)/mail.news \ -$(MAGIC_FRAGMENT_DIR)/make \ -$(MAGIC_FRAGMENT_DIR)/maple \ -$(MAGIC_FRAGMENT_DIR)/marc21 \ -$(MAGIC_FRAGMENT_DIR)/mathcad \ -$(MAGIC_FRAGMENT_DIR)/mathematica \ -$(MAGIC_FRAGMENT_DIR)/matroska \ -$(MAGIC_FRAGMENT_DIR)/mcrypt \ -$(MAGIC_FRAGMENT_DIR)/mercurial \ -$(MAGIC_FRAGMENT_DIR)/metastore \ -$(MAGIC_FRAGMENT_DIR)/mime \ -$(MAGIC_FRAGMENT_DIR)/mips \ -$(MAGIC_FRAGMENT_DIR)/mirage \ -$(MAGIC_FRAGMENT_DIR)/misctools \ -$(MAGIC_FRAGMENT_DIR)/mkid \ -$(MAGIC_FRAGMENT_DIR)/mlssa \ -$(MAGIC_FRAGMENT_DIR)/mmdf \ -$(MAGIC_FRAGMENT_DIR)/modem \ -$(MAGIC_FRAGMENT_DIR)/motorola \ -$(MAGIC_FRAGMENT_DIR)/mozilla \ -$(MAGIC_FRAGMENT_DIR)/msdos \ -$(MAGIC_FRAGMENT_DIR)/msooxml \ -$(MAGIC_FRAGMENT_DIR)/msvc \ -$(MAGIC_FRAGMENT_DIR)/mup \ -$(MAGIC_FRAGMENT_DIR)/music \ -$(MAGIC_FRAGMENT_DIR)/natinst \ -$(MAGIC_FRAGMENT_DIR)/ncr \ -$(MAGIC_FRAGMENT_DIR)/netbsd \ -$(MAGIC_FRAGMENT_DIR)/netscape \ -$(MAGIC_FRAGMENT_DIR)/netware \ -$(MAGIC_FRAGMENT_DIR)/news \ -$(MAGIC_FRAGMENT_DIR)/nitpicker \ -$(MAGIC_FRAGMENT_DIR)/oasis \ -$(MAGIC_FRAGMENT_DIR)/ocaml \ -$(MAGIC_FRAGMENT_DIR)/octave \ -$(MAGIC_FRAGMENT_DIR)/ole2compounddocs \ -$(MAGIC_FRAGMENT_DIR)/olf \ -$(MAGIC_FRAGMENT_DIR)/os2 \ -$(MAGIC_FRAGMENT_DIR)/os400 \ -$(MAGIC_FRAGMENT_DIR)/os9 \ -$(MAGIC_FRAGMENT_DIR)/osf1 \ -$(MAGIC_FRAGMENT_DIR)/palm \ -$(MAGIC_FRAGMENT_DIR)/parix \ -$(MAGIC_FRAGMENT_DIR)/parrot \ -$(MAGIC_FRAGMENT_DIR)/pascal \ -$(MAGIC_FRAGMENT_DIR)/pbm \ -$(MAGIC_FRAGMENT_DIR)/pdf \ -$(MAGIC_FRAGMENT_DIR)/pdp \ -$(MAGIC_FRAGMENT_DIR)/perl \ -$(MAGIC_FRAGMENT_DIR)/pgp \ -$(MAGIC_FRAGMENT_DIR)/pkgadd \ -$(MAGIC_FRAGMENT_DIR)/plan9 \ -$(MAGIC_FRAGMENT_DIR)/plus5 \ -$(MAGIC_FRAGMENT_DIR)/printer \ -$(MAGIC_FRAGMENT_DIR)/project \ -$(MAGIC_FRAGMENT_DIR)/psdbms \ -$(MAGIC_FRAGMENT_DIR)/pulsar \ -$(MAGIC_FRAGMENT_DIR)/pyramid \ -$(MAGIC_FRAGMENT_DIR)/python \ -$(MAGIC_FRAGMENT_DIR)/revision \ -$(MAGIC_FRAGMENT_DIR)/riff \ -$(MAGIC_FRAGMENT_DIR)/rinex \ -$(MAGIC_FRAGMENT_DIR)/rpm \ -$(MAGIC_FRAGMENT_DIR)/rtf \ -$(MAGIC_FRAGMENT_DIR)/ruby \ -$(MAGIC_FRAGMENT_DIR)/sc \ -$(MAGIC_FRAGMENT_DIR)/sccs \ -$(MAGIC_FRAGMENT_DIR)/scientific \ -$(MAGIC_FRAGMENT_DIR)/securitycerts \ -$(MAGIC_FRAGMENT_DIR)/selinux \ -$(MAGIC_FRAGMENT_DIR)/sendmail \ -$(MAGIC_FRAGMENT_DIR)/sequent \ -$(MAGIC_FRAGMENT_DIR)/sgi \ -$(MAGIC_FRAGMENT_DIR)/sgml \ -$(MAGIC_FRAGMENT_DIR)/sharc \ -$(MAGIC_FRAGMENT_DIR)/sinclair \ -$(MAGIC_FRAGMENT_DIR)/sisu \ -$(MAGIC_FRAGMENT_DIR)/sketch \ -$(MAGIC_FRAGMENT_DIR)/smalltalk \ -$(MAGIC_FRAGMENT_DIR)/smile \ -$(MAGIC_FRAGMENT_DIR)/sniffer \ -$(MAGIC_FRAGMENT_DIR)/softquad \ -$(MAGIC_FRAGMENT_DIR)/spec \ -$(MAGIC_FRAGMENT_DIR)/spectrum \ -$(MAGIC_FRAGMENT_DIR)/sql \ -$(MAGIC_FRAGMENT_DIR)/ssh \ -$(MAGIC_FRAGMENT_DIR)/ssl \ -$(MAGIC_FRAGMENT_DIR)/sun \ -$(MAGIC_FRAGMENT_DIR)/sysex \ -$(MAGIC_FRAGMENT_DIR)/tcl \ -$(MAGIC_FRAGMENT_DIR)/teapot \ -$(MAGIC_FRAGMENT_DIR)/terminfo \ -$(MAGIC_FRAGMENT_DIR)/tex \ -$(MAGIC_FRAGMENT_DIR)/tgif \ -$(MAGIC_FRAGMENT_DIR)/ti-8x \ -$(MAGIC_FRAGMENT_DIR)/timezone \ -$(MAGIC_FRAGMENT_DIR)/troff \ -$(MAGIC_FRAGMENT_DIR)/tuxedo \ -$(MAGIC_FRAGMENT_DIR)/typeset \ -$(MAGIC_FRAGMENT_DIR)/unicode \ -$(MAGIC_FRAGMENT_DIR)/unknown \ -$(MAGIC_FRAGMENT_DIR)/uuencode \ -$(MAGIC_FRAGMENT_DIR)/varied.out \ -$(MAGIC_FRAGMENT_DIR)/varied.script \ -$(MAGIC_FRAGMENT_DIR)/vax \ -$(MAGIC_FRAGMENT_DIR)/vicar \ -$(MAGIC_FRAGMENT_DIR)/virtual \ -$(MAGIC_FRAGMENT_DIR)/virtutech \ -$(MAGIC_FRAGMENT_DIR)/visx \ -$(MAGIC_FRAGMENT_DIR)/vms \ -$(MAGIC_FRAGMENT_DIR)/vmware \ -$(MAGIC_FRAGMENT_DIR)/vorbis \ -$(MAGIC_FRAGMENT_DIR)/vxl \ -$(MAGIC_FRAGMENT_DIR)/warc \ -$(MAGIC_FRAGMENT_DIR)/weak \ -$(MAGIC_FRAGMENT_DIR)/windows \ -$(MAGIC_FRAGMENT_DIR)/wireless \ -$(MAGIC_FRAGMENT_DIR)/wordprocessors \ -$(MAGIC_FRAGMENT_DIR)/wsdl \ -$(MAGIC_FRAGMENT_DIR)/xdelta \ -$(MAGIC_FRAGMENT_DIR)/xenix \ -$(MAGIC_FRAGMENT_DIR)/xilinx \ -$(MAGIC_FRAGMENT_DIR)/xo65 \ -$(MAGIC_FRAGMENT_DIR)/xwindows \ -$(MAGIC_FRAGMENT_DIR)/zfs \ -$(MAGIC_FRAGMENT_DIR)/zilog \ -$(MAGIC_FRAGMENT_DIR)/zyxel - -MAGIC = magic.mgc -CLEANFILES = ${MAGIC} $(MAGIC_FRAGMENT_DIR)/Localstuff - -# FIXME: Build file natively as well so that it can be used to compile -# the target's magic file; for now we bail if the local version does not match -if IS_CROSS_COMPILE -FILE_COMPILE = file -FILE_COMPILE_DEP = -else -FILE_COMPILE = $(top_builddir)/src/file -FILE_COMPILE_DEP = $(FILE_COMPILE) -endif - -${MAGIC}: $(EXTRA_DIST) $(FILE_COMPILE_DEP) - @rm -fr magic - @mkdir magic && cp -p $(EXTRA_DIST) magic - @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \ - echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \ - else \ - v=$$(file --version | sed -e s/file-// -e q); \ - if [ "$$v" != "${PACKAGE_VERSION}" ]; then \ - echo "Cannot use the installed version of file ($$v) to"; \ - echo "cross-compile file ${PACKAGE_VERSION}"; \ - echo "Please install file ${PACKAGE_VERSION} locally first"; \ - exit 1; \ - fi; \ - fi) - $(FILE_COMPILE) -C -m magic - @rm -fr magic +SUBDIRS = src magic tests doc python Modified: stable/9/contrib/file/Makefile.in ============================================================================== --- stable/9/contrib/file/Makefile.in Tue Dec 30 19:39:31 2014 (r276415) +++ stable/9/contrib/file/Makefile.in Tue Dec 30 19:51:30 2014 (r276416) @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -14,8 +13,52 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ @@ -33,8 +76,12 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = magic -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +subdir = . +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/config.h.in AUTHORS COPYING ChangeLog INSTALL NEWS \ + README TODO compile config.guess config.sub depcomp install-sh \ + missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -42,42 +89,111 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/l $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(pkgdatadir)" -DATA = $(pkgdata_DATA) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print pkgdatadir = @pkgdatadir@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -90,11 +206,13 @@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -104,6 +222,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -118,6 +237,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MINGW = @MINGW@ MKDIR_P = @MKDIR_P@ NM = @NM@ @@ -145,6 +265,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -178,7 +299,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -194,332 +314,181 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ - -# -# $File: Makefile.am,v 1.78 2012/01/27 01:41:26 christos Exp $ -# -MAGIC_FRAGMENT_BASE = Magdir -MAGIC_DIR = $(top_srcdir)/magic -MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE) -pkgdata_DATA = magic.mgc -EXTRA_DIST = \ -$(MAGIC_DIR)/Header \ -$(MAGIC_DIR)/Localstuff \ -$(MAGIC_FRAGMENT_DIR)/acorn \ -$(MAGIC_FRAGMENT_DIR)/adi \ -$(MAGIC_FRAGMENT_DIR)/adventure \ -$(MAGIC_FRAGMENT_DIR)/allegro \ -$(MAGIC_FRAGMENT_DIR)/alliant \ -$(MAGIC_FRAGMENT_DIR)/amanda \ -$(MAGIC_FRAGMENT_DIR)/amigaos \ -$(MAGIC_FRAGMENT_DIR)/animation \ -$(MAGIC_FRAGMENT_DIR)/apl \ -$(MAGIC_FRAGMENT_DIR)/apple \ -$(MAGIC_FRAGMENT_DIR)/applix \ -$(MAGIC_FRAGMENT_DIR)/archive \ -$(MAGIC_FRAGMENT_DIR)/assembler \ -$(MAGIC_FRAGMENT_DIR)/asterix \ -$(MAGIC_FRAGMENT_DIR)/att3b \ -$(MAGIC_FRAGMENT_DIR)/audio \ -$(MAGIC_FRAGMENT_DIR)/basis \ -$(MAGIC_FRAGMENT_DIR)/bflt \ -$(MAGIC_FRAGMENT_DIR)/blcr \ -$(MAGIC_FRAGMENT_DIR)/blender \ -$(MAGIC_FRAGMENT_DIR)/blit \ -$(MAGIC_FRAGMENT_DIR)/bout \ -$(MAGIC_FRAGMENT_DIR)/bsdi \ -$(MAGIC_FRAGMENT_DIR)/bsi \ -$(MAGIC_FRAGMENT_DIR)/btsnoop \ -$(MAGIC_FRAGMENT_DIR)/c-lang \ -$(MAGIC_FRAGMENT_DIR)/c64 \ -$(MAGIC_FRAGMENT_DIR)/cad \ -$(MAGIC_FRAGMENT_DIR)/cafebabe \ -$(MAGIC_FRAGMENT_DIR)/cddb \ -$(MAGIC_FRAGMENT_DIR)/chord \ -$(MAGIC_FRAGMENT_DIR)/cisco \ -$(MAGIC_FRAGMENT_DIR)/citrus \ -$(MAGIC_FRAGMENT_DIR)/clarion \ -$(MAGIC_FRAGMENT_DIR)/claris \ -$(MAGIC_FRAGMENT_DIR)/clipper \ -$(MAGIC_FRAGMENT_DIR)/commands \ -$(MAGIC_FRAGMENT_DIR)/communications \ -$(MAGIC_FRAGMENT_DIR)/compress \ -$(MAGIC_FRAGMENT_DIR)/console \ -$(MAGIC_FRAGMENT_DIR)/convex \ -$(MAGIC_FRAGMENT_DIR)/cracklib \ -$(MAGIC_FRAGMENT_DIR)/ctags \ -$(MAGIC_FRAGMENT_DIR)/cups \ -$(MAGIC_FRAGMENT_DIR)/dact \ -$(MAGIC_FRAGMENT_DIR)/database \ -$(MAGIC_FRAGMENT_DIR)/diamond \ -$(MAGIC_FRAGMENT_DIR)/diff \ -$(MAGIC_FRAGMENT_DIR)/digital \ -$(MAGIC_FRAGMENT_DIR)/dolby \ -$(MAGIC_FRAGMENT_DIR)/dump \ -$(MAGIC_FRAGMENT_DIR)/dyadic \ -$(MAGIC_FRAGMENT_DIR)/ebml \ -$(MAGIC_FRAGMENT_DIR)/editors \ -$(MAGIC_FRAGMENT_DIR)/efi \ -$(MAGIC_FRAGMENT_DIR)/elf \ -$(MAGIC_FRAGMENT_DIR)/encore \ -$(MAGIC_FRAGMENT_DIR)/epoc \ -$(MAGIC_FRAGMENT_DIR)/erlang \ -$(MAGIC_FRAGMENT_DIR)/esri \ -$(MAGIC_FRAGMENT_DIR)/fcs \ -$(MAGIC_FRAGMENT_DIR)/filesystems \ -$(MAGIC_FRAGMENT_DIR)/flash \ -$(MAGIC_FRAGMENT_DIR)/fonts \ -$(MAGIC_FRAGMENT_DIR)/fortran \ -$(MAGIC_FRAGMENT_DIR)/frame \ -$(MAGIC_FRAGMENT_DIR)/freebsd \ -$(MAGIC_FRAGMENT_DIR)/fsav \ -$(MAGIC_FRAGMENT_DIR)/fusecompress \ -$(MAGIC_FRAGMENT_DIR)/games \ -$(MAGIC_FRAGMENT_DIR)/gcc \ -$(MAGIC_FRAGMENT_DIR)/geo \ -$(MAGIC_FRAGMENT_DIR)/geos \ -$(MAGIC_FRAGMENT_DIR)/gimp \ -$(MAGIC_FRAGMENT_DIR)/gnome-keyring \ -$(MAGIC_FRAGMENT_DIR)/gnu \ -$(MAGIC_FRAGMENT_DIR)/gnumeric \ -$(MAGIC_FRAGMENT_DIR)/grace \ -$(MAGIC_FRAGMENT_DIR)/graphviz \ -$(MAGIC_FRAGMENT_DIR)/gringotts \ -$(MAGIC_FRAGMENT_DIR)/guile \ -$(MAGIC_FRAGMENT_DIR)/hitachi-sh \ -$(MAGIC_FRAGMENT_DIR)/hp \ -$(MAGIC_FRAGMENT_DIR)/human68k \ -$(MAGIC_FRAGMENT_DIR)/ibm370 \ -$(MAGIC_FRAGMENT_DIR)/ibm6000 \ -$(MAGIC_FRAGMENT_DIR)/iff \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 20:01:10 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 967D75DC; Tue, 30 Dec 2014 20:01:10 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 81A1F1A44; Tue, 30 Dec 2014 20:01:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUK1AwA024833; Tue, 30 Dec 2014 20:01:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUK174f024509; Tue, 30 Dec 2014 20:01:07 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412302001.sBUK174f024509@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 30 Dec 2014 20:01:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276417 - head/contrib/libcxxrt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 20:01:10 -0000 Author: dim Date: Tue Dec 30 20:01:06 2014 New Revision: 276417 URL: https://svnweb.freebsd.org/changeset/base/276417 Log: Import libcxxrt master 00bc29eb6513624824a6d7db2ebc768a4216a604. Interesting fixes: 76584a0 Reorganize code to use only 32bit atomic ops for 32bit platforms 30d2ae5 Implement __cxa_throw_bad_array_new_length Reviewed by: bapt MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D1390 Modified: head/contrib/libcxxrt/atomic.h head/contrib/libcxxrt/cxxabi.h head/contrib/libcxxrt/dwarf_eh.h head/contrib/libcxxrt/dynamic_cast.cc head/contrib/libcxxrt/exception.cc head/contrib/libcxxrt/guard.cc head/contrib/libcxxrt/stdexcept.cc head/contrib/libcxxrt/stdexcept.h head/contrib/libcxxrt/typeinfo.cc head/contrib/libcxxrt/unwind-arm.h head/contrib/libcxxrt/unwind.h Directory Properties: head/contrib/libcxxrt/ (props changed) Modified: head/contrib/libcxxrt/atomic.h ============================================================================== --- head/contrib/libcxxrt/atomic.h Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/atomic.h Tue Dec 30 20:01:06 2014 (r276417) @@ -11,7 +11,7 @@ */ #if __has_builtin(__c11_atomic_exchange) #define ATOMIC_SWAP(addr, val)\ - __c11_atomic_exchange((_Atomic(__typeof__(val))*)addr, val, __ATOMIC_ACQ_REL) + __c11_atomic_exchange(reinterpret_cast<_Atomic(__typeof__(val))*>(addr), val, __ATOMIC_ACQ_REL) #elif __has_builtin(__sync_swap) #define ATOMIC_SWAP(addr, val)\ __sync_swap(addr, val) @@ -22,7 +22,7 @@ #if __has_builtin(__c11_atomic_load) #define ATOMIC_LOAD(addr)\ - __c11_atomic_load((_Atomic(__typeof__(*addr))*)addr, __ATOMIC_ACQUIRE) + __c11_atomic_load(reinterpret_cast<_Atomic(__typeof__(*addr))*>(addr), __ATOMIC_ACQUIRE) #else #define ATOMIC_LOAD(addr)\ (__sync_synchronize(), *addr) Modified: head/contrib/libcxxrt/cxxabi.h ============================================================================== --- head/contrib/libcxxrt/cxxabi.h Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/cxxabi.h Tue Dec 30 20:01:06 2014 (r276417) @@ -110,7 +110,7 @@ struct __cxa_exception * handler count reaches 0 (which it doesn't with the top bit set). */ int handlerCount; -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) /** * The ARM EH ABI requires the unwind library to keep track of exceptions * during cleanups. These support nesting, so we need to keep a list of Modified: head/contrib/libcxxrt/dwarf_eh.h ============================================================================== --- head/contrib/libcxxrt/dwarf_eh.h Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/dwarf_eh.h Tue Dec 30 20:01:06 2014 (r276417) @@ -83,7 +83,7 @@ enum dwarf_data_encoding */ static inline enum dwarf_data_encoding get_encoding(unsigned char x) { - return (enum dwarf_data_encoding)(x & 0xf); + return static_cast(x & 0xf); } /** @@ -115,7 +115,7 @@ enum dwarf_data_relative */ static inline enum dwarf_data_relative get_base(unsigned char x) { - return (enum dwarf_data_relative)(x & 0x70); + return static_cast(x & 0x70); } /** * Returns whether an encoding represents an indirect address. @@ -206,9 +206,9 @@ static int64_t read_sleb128(dw_eh_ptr_t if ((uleb >> (bits-1)) == 1) { // Sign extend by setting all bits in front of it to 1 - uleb |= ((int64_t)-1) << bits; + uleb |= static_cast(-1) << bits; } - return (int64_t)uleb; + return static_cast(uleb); } /** * Reads a value using the specified encoding from the address pointed to by @@ -224,7 +224,7 @@ static uint64_t read_value(char encoding // Read fixed-length types #define READ(dwarf, type) \ case dwarf:\ - v = (uint64_t)(*(type*)(*data));\ + v = static_cast(*reinterpret_cast(*data));\ *data += sizeof(type);\ break; READ(DW_EH_PE_udata2, uint16_t) @@ -263,16 +263,16 @@ static uint64_t resolve_indirect_value(_ switch (get_base(encoding)) { case DW_EH_PE_pcrel: - v += (uint64_t)start; + v += reinterpret_cast(start); break; case DW_EH_PE_textrel: - v += (uint64_t)_Unwind_GetTextRelBase(c); + v += static_cast(static_cast(_Unwind_GetTextRelBase(c))); break; case DW_EH_PE_datarel: - v += (uint64_t)_Unwind_GetDataRelBase(c); + v += static_cast(static_cast(_Unwind_GetDataRelBase(c))); break; case DW_EH_PE_funcrel: - v += (uint64_t)_Unwind_GetRegionStart(c); + v += static_cast(static_cast(_Unwind_GetRegionStart(c))); default: break; } @@ -282,7 +282,7 @@ static uint64_t resolve_indirect_value(_ // be a GCC extensions, so not properly documented... if (is_indirect(encoding)) { - v = (uint64_t)(uintptr_t)*(void**)v; + v = static_cast(reinterpret_cast(*reinterpret_cast(v))); } return v; } @@ -342,14 +342,14 @@ static inline struct dwarf_eh_lsda parse { struct dwarf_eh_lsda lsda; - lsda.region_start = (dw_eh_ptr_t)(uintptr_t)_Unwind_GetRegionStart(context); + lsda.region_start = reinterpret_cast(_Unwind_GetRegionStart(context)); // If the landing pads are relative to anything other than the start of // this region, find out where. This is @LPStart in the spec, although the // encoding that GCC uses does not quite match the spec. - uint64_t v = (uint64_t)(uintptr_t)lsda.region_start; + uint64_t v = static_cast(reinterpret_cast(lsda.region_start)); read_value_with_encoding(context, &data, &v); - lsda.landing_pads = (dw_eh_ptr_t)(uintptr_t)v; + lsda.landing_pads = reinterpret_cast(static_cast(v)); // If there is a type table, find out where it is. This is @TTBase in the // spec. Note: we find whether there is a type table pointer by checking @@ -365,18 +365,18 @@ static inline struct dwarf_eh_lsda parse lsda.type_table = type_table; //lsda.type_table = (uintptr_t*)(data + v); } -#if __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) lsda.type_table_encoding = (DW_EH_PE_pcrel | DW_EH_PE_indirect); #endif - lsda.callsite_encoding = (enum dwarf_data_encoding)(*(data++)); + lsda.callsite_encoding = static_cast(*(data++)); // Action table is immediately after the call site table lsda.action_table = data; - uintptr_t callsite_size = (uintptr_t)read_uleb128(&data); + uintptr_t callsite_size = static_cast(read_uleb128(&data)); lsda.action_table = data + callsite_size; // Call site table is immediately after the header - lsda.call_site_table = (dw_eh_ptr_t)data; + lsda.call_site_table = static_cast(data); return lsda; @@ -413,7 +413,7 @@ static bool dwarf_eh_find_callsite(struc result->landing_pad = 0; // The current instruction pointer offset within the region uint64_t ip = _Unwind_GetIP(context) - _Unwind_GetRegionStart(context); - unsigned char *callsite_table = (unsigned char*)lsda->call_site_table; + unsigned char *callsite_table = static_cast(lsda->call_site_table); while (callsite_table <= lsda->action_table) { @@ -463,17 +463,17 @@ static bool dwarf_eh_find_callsite(struc /// Defines an exception class from 8 bytes (endian independent) #define EXCEPTION_CLASS(a,b,c,d,e,f,g,h) \ - (((uint64_t)a << 56) +\ - ((uint64_t)b << 48) +\ - ((uint64_t)c << 40) +\ - ((uint64_t)d << 32) +\ - ((uint64_t)e << 24) +\ - ((uint64_t)f << 16) +\ - ((uint64_t)g << 8) +\ - ((uint64_t)h)) + ((static_cast(a) << 56) +\ + (static_cast(b) << 48) +\ + (static_cast(c) << 40) +\ + (static_cast(d) << 32) +\ + (static_cast(e) << 24) +\ + (static_cast(f) << 16) +\ + (static_cast(g) << 8) +\ + (static_cast(h))) #define GENERIC_EXCEPTION_CLASS(e,f,g,h) \ - ((uint32_t)e << 24) +\ - ((uint32_t)f << 16) +\ - ((uint32_t)g << 8) +\ - ((uint32_t)h) + (static_cast(e) << 24) +\ + (static_cast(f) << 16) +\ + (static_cast(g) << 8) +\ + (static_cast(h)) Modified: head/contrib/libcxxrt/dynamic_cast.cc ============================================================================== --- head/contrib/libcxxrt/dynamic_cast.cc Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/dynamic_cast.cc Tue Dec 30 20:01:06 2014 (r276417) @@ -44,7 +44,7 @@ struct vtable_header * Simple macro that does pointer arithmetic in bytes but returns a value of * the same type as the original. */ -#define ADD_TO_PTR(x, off) (__typeof__(x))(((char*)x) + off) +#define ADD_TO_PTR(x, off) reinterpret_cast<__typeof__(x)>(reinterpret_cast(x) + off) bool std::type_info::__do_catch(std::type_info const *ex_type, void **exception_object, @@ -166,7 +166,7 @@ bool __vmi_class_type_info::__do_upcast( if (info->isVirtual()) { // Object's vtable - ptrdiff_t *off = *(ptrdiff_t**)obj; + ptrdiff_t *off = *static_cast(obj); // Offset location in vtable off = ADD_TO_PTR(off, offset); offset = *off; @@ -202,9 +202,9 @@ extern "C" void* __dynamic_cast(const vo const __class_type_info *dst, ptrdiff_t src2dst_offset) { - char *vtable_location = *(char**)sub; + const char *vtable_location = *static_cast(sub); const vtable_header *header = - (const vtable_header*)(vtable_location - sizeof(vtable_header)); - void *leaf = ADD_TO_PTR((void*)sub, header->leaf_offset); + reinterpret_cast(vtable_location - sizeof(vtable_header)); + void *leaf = ADD_TO_PTR(const_cast(sub), header->leaf_offset); return header->type->cast_to(leaf, dst); } Modified: head/contrib/libcxxrt/exception.cc ============================================================================== --- head/contrib/libcxxrt/exception.cc Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/exception.cc Tue Dec 30 20:01:06 2014 (r276417) @@ -71,11 +71,11 @@ static void saveLandingPad(struct _Unwin int selector, dw_eh_ptr_t landingPad) { -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) // On ARM, we store the saved exception in the generic part of the structure ucb->barrier_cache.sp = _Unwind_GetGR(context, 13); - ucb->barrier_cache.bitpattern[1] = (uint32_t)selector; - ucb->barrier_cache.bitpattern[3] = (uint32_t)landingPad; + ucb->barrier_cache.bitpattern[1] = static_cast(selector); + ucb->barrier_cache.bitpattern[3] = reinterpret_cast(landingPad); #endif // Cache the results for the phase 2 unwind, if we found a handler // and this is not a foreign exception. @@ -95,15 +95,15 @@ static int loadLandingPad(struct _Unwind unsigned long *selector, dw_eh_ptr_t *landingPad) { -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) *selector = ucb->barrier_cache.bitpattern[1]; - *landingPad = (dw_eh_ptr_t)ucb->barrier_cache.bitpattern[3]; + *landingPad = reinterpret_cast(ucb->barrier_cache.bitpattern[3]); return 1; #else if (ex) { *selector = ex->handlerSwitchValue; - *landingPad = (dw_eh_ptr_t)ex->catchTemp; + *landingPad = reinterpret_cast(ex->catchTemp); return 0; } return 0; @@ -113,7 +113,7 @@ static int loadLandingPad(struct _Unwind static inline _Unwind_Reason_Code continueUnwinding(struct _Unwind_Exception *ex, struct _Unwind_Context *context) { -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) if (__gnu_unwind_frame(ex, context) != _URC_OK) { return _URC_FAILURE; } #endif return _URC_CONTINUE_UNWIND; @@ -204,7 +204,7 @@ struct __cxa_dependent_exception terminate_handler terminateHandler; __cxa_exception *nextException; int handlerCount; -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) _Unwind_Exception *nextCleanup; int cleanupCount; #endif @@ -267,13 +267,13 @@ static bool isDependentException(uint64_ static __cxa_exception *exceptionFromPointer(void *ex) { - return (__cxa_exception*)((char*)ex - + return reinterpret_cast<__cxa_exception*>(static_cast(ex) - offsetof(struct __cxa_exception, unwindHeader)); } static __cxa_exception *realExceptionFromException(__cxa_exception *ex) { if (!isDependentException(ex->unwindHeader.exception_class)) { return ex; } - return ((__cxa_exception*)(((__cxa_dependent_exception*)ex)->primaryException))-1; + return reinterpret_cast<__cxa_exception*>((reinterpret_cast<__cxa_dependent_exception*>(ex))->primaryException)-1; } @@ -304,13 +304,13 @@ static pthread_key_t eh_key; static void exception_cleanup(_Unwind_Reason_Code reason, struct _Unwind_Exception *ex) { - __cxa_free_exception((void*)ex); + __cxa_free_exception(static_cast(ex)); } static void dependent_exception_cleanup(_Unwind_Reason_Code reason, struct _Unwind_Exception *ex) { - __cxa_free_dependent_exception((void*)ex); + __cxa_free_dependent_exception(static_cast(ex)); } /** @@ -333,13 +333,13 @@ static void free_exception_list(__cxa_ex */ static void thread_cleanup(void* thread_info) { - __cxa_thread_info *info = (__cxa_thread_info*)thread_info; + __cxa_thread_info *info = static_cast<__cxa_thread_info*>(thread_info); if (info->globals.caughtExceptions) { // If this is a foreign exception, ask it to clean itself up. if (info->foreign_exception_state != __cxa_thread_info::none) { - _Unwind_Exception *e = (_Unwind_Exception*)info->globals.caughtExceptions; + _Unwind_Exception *e = reinterpret_cast<_Unwind_Exception*>(info->globals.caughtExceptions); e->exception_cleanup(_URC_FOREIGN_EXCEPTION_CAUGHT, e); } else @@ -379,8 +379,8 @@ static void init_key(void) return; } pthread_key_create(&eh_key, thread_cleanup); - pthread_setspecific(eh_key, (void*)0x42); - fakeTLS = (pthread_getspecific(eh_key) != (void*)0x42); + pthread_setspecific(eh_key, reinterpret_cast(0x42)); + fakeTLS = (pthread_getspecific(eh_key) != reinterpret_cast(0x42)); pthread_setspecific(eh_key, 0); } @@ -394,10 +394,10 @@ static __cxa_thread_info *thread_info() fakeTLS = true; } if (fakeTLS) { return &singleThreadInfo; } - __cxa_thread_info *info = (__cxa_thread_info*)pthread_getspecific(eh_key); + __cxa_thread_info *info = static_cast<__cxa_thread_info*>(pthread_getspecific(eh_key)); if (0 == info) { - info = (__cxa_thread_info*)calloc(1, sizeof(__cxa_thread_info)); + info = static_cast<__cxa_thread_info*>(calloc(1, sizeof(__cxa_thread_info))); pthread_setspecific(eh_key, info); } return info; @@ -409,7 +409,7 @@ static __cxa_thread_info *thread_info() static __cxa_thread_info *thread_info_fast() { if (fakeTLS) { return &singleThreadInfo; } - return (__cxa_thread_info*)pthread_getspecific(eh_key); + return static_cast<__cxa_thread_info*>(pthread_getspecific(eh_key)); } /** * ABI function returning the __cxa_eh_globals structure. @@ -472,7 +472,7 @@ static char *emergency_malloc(size_t siz if (0 != m) { pthread_mutex_unlock(&emergency_malloc_lock); - return (char*)m; + return static_cast(m); } for (int i=0 ; i<16 ; i++) { @@ -510,7 +510,7 @@ static void emergency_malloc_free(char * // Find the buffer corresponding to this pointer. for (int i=0 ; i<16 ; i++) { - if (ptr == (void*)(emergency_buffer + (1024 * i))) + if (ptr == static_cast(emergency_buffer + (1024 * i))) { buffer = i; break; @@ -521,7 +521,7 @@ static void emergency_malloc_free(char * // emergency_malloc() is expected to return 0-initialized data. We don't // zero the buffer when allocating it, because the static buffers will // begin life containing 0 values. - memset((void*)ptr, 0, 1024); + memset(ptr, 0, 1024); // Signal the condition variable to wake up any threads that are blocking // waiting for some space in the emergency buffer pthread_mutex_lock(&emergency_malloc_lock); @@ -535,7 +535,7 @@ static void emergency_malloc_free(char * static char *alloc_or_die(size_t size) { - char *buffer = (char*)calloc(1, size); + char *buffer = static_cast(calloc(1, size)); // If calloc() doesn't want to give us any memory, try using an emergency // buffer. @@ -597,7 +597,7 @@ extern "C" void *__cxa_allocate_dependen */ extern "C" void __cxa_free_exception(void *thrown_exception) { - __cxa_exception *ex = ((__cxa_exception*)thrown_exception) - 1; + __cxa_exception *ex = reinterpret_cast<__cxa_exception*>(thrown_exception) - 1; // Free the object that was thrown, calling its destructor if (0 != ex->exceptionDestructor) { @@ -612,7 +612,7 @@ extern "C" void __cxa_free_exception(voi } } - free_exception((char*)ex); + free_exception(reinterpret_cast(ex)); } static void releaseException(__cxa_exception *exception) @@ -633,13 +633,13 @@ static void releaseException(__cxa_excep void __cxa_free_dependent_exception(void *thrown_exception) { - __cxa_dependent_exception *ex = ((__cxa_dependent_exception*)thrown_exception) - 1; + __cxa_dependent_exception *ex = reinterpret_cast<__cxa_dependent_exception*>(thrown_exception) - 1; assert(isDependentException(ex->unwindHeader.exception_class)); if (ex->primaryException) { - releaseException(realExceptionFromException((__cxa_exception*)ex)); + releaseException(realExceptionFromException(reinterpret_cast<__cxa_exception*>(ex))); } - free_exception((char*)ex); + free_exception(reinterpret_cast(ex)); } /** @@ -654,8 +654,8 @@ static _Unwind_Reason_Code trace(struct { Dl_info myinfo; int mylookup = - dladdr((void*)(uintptr_t)__cxa_current_exception_type, &myinfo); - void *ip = (void*)_Unwind_GetIP(context); + dladdr(reinterpret_cast(__cxa_current_exception_type), &myinfo); + void *ip = reinterpret_cast(_Unwind_GetIP(context)); Dl_info info; if (dladdr(ip, &info) != 0) { @@ -673,6 +673,11 @@ static _Unwind_Reason_Code trace(struct * If the failure happened by falling off the end of the stack without finding * a handler, prints a back trace before aborting. */ +#if __GNUC__ > 3 && __GNUC_MINOR__ > 2 +extern "C" void *__cxa_begin_catch(void *e) throw(); +#else +extern "C" void *__cxa_begin_catch(void *e); +#endif static void report_failure(_Unwind_Reason_Code err, __cxa_exception *thrown_exception) { switch (err) @@ -681,14 +686,16 @@ static void report_failure(_Unwind_Reaso case _URC_FATAL_PHASE1_ERROR: fprintf(stderr, "Fatal error during phase 1 unwinding\n"); break; -#ifndef __arm__ +#if !defined(__arm__) || defined(__ARM_DWARF_EH__) case _URC_FATAL_PHASE2_ERROR: fprintf(stderr, "Fatal error during phase 2 unwinding\n"); break; #endif case _URC_END_OF_STACK: + __cxa_begin_catch (&(thrown_exception->unwindHeader)); + std::terminate(); fprintf(stderr, "Terminating due to uncaught exception %p", - (void*)thrown_exception); + static_cast(thrown_exception)); thrown_exception = realExceptionFromException(thrown_exception); static const __class_type_info *e_ti = static_cast(&typeid(std::exception)); @@ -697,8 +704,8 @@ static void report_failure(_Unwind_Reaso if (throw_ti) { std::exception *e = - (std::exception*)e_ti->cast_to((void*)(thrown_exception+1), - throw_ti); + static_cast(e_ti->cast_to(static_cast(thrown_exception+1), + throw_ti)); if (e) { fprintf(stderr, " '%s'", e->what()); @@ -706,18 +713,21 @@ static void report_failure(_Unwind_Reaso } size_t bufferSize = 128; - char *demangled = (char*)malloc(bufferSize); + char *demangled = static_cast(malloc(bufferSize)); const char *mangled = thrown_exception->exceptionType->name(); int status; demangled = __cxa_demangle(mangled, demangled, &bufferSize, &status); fprintf(stderr, " of type %s\n", - status == 0 ? (const char*)demangled : mangled); + status == 0 ? demangled : mangled); if (status == 0) { free(demangled); } // Print a back trace if no handler is found. // TODO: Make this optional #ifndef __arm__ _Unwind_Backtrace(trace, 0); #endif + + // Just abort. No need to call std::terminate for the second time + abort(); break; } std::terminate(); @@ -755,7 +765,7 @@ extern "C" void __cxa_throw(void *thrown std::type_info *tinfo, void(*dest)(void*)) { - __cxa_exception *ex = ((__cxa_exception*)thrown_exception) - 1; + __cxa_exception *ex = reinterpret_cast<__cxa_exception*>(thrown_exception) - 1; ex->referenceCount = 1; ex->exceptionType = tinfo; @@ -773,7 +783,7 @@ extern "C" void __cxa_rethrow_primary_ex if (NULL == thrown_exception) { return; } __cxa_exception *original = exceptionFromPointer(thrown_exception); - __cxa_dependent_exception *ex = ((__cxa_dependent_exception*)__cxa_allocate_dependent_exception())-1; + __cxa_dependent_exception *ex = reinterpret_cast<__cxa_dependent_exception*>(__cxa_allocate_dependent_exception())-1; ex->primaryException = thrown_exception; __cxa_increment_exception_refcount(thrown_exception); @@ -782,7 +792,7 @@ extern "C" void __cxa_rethrow_primary_ex ex->unwindHeader.exception_class = dependent_exception_class; ex->unwindHeader.exception_cleanup = dependent_exception_cleanup; - throw_exception((__cxa_exception*)ex); + throw_exception(reinterpret_cast<__cxa_exception*>(ex)); } extern "C" void *__cxa_current_primary_exception(void) @@ -799,14 +809,14 @@ extern "C" void *__cxa_current_primary_e extern "C" void __cxa_increment_exception_refcount(void* thrown_exception) { if (NULL == thrown_exception) { return; } - __cxa_exception *ex = ((__cxa_exception*)thrown_exception) - 1; + __cxa_exception *ex = static_cast<__cxa_exception*>(thrown_exception) - 1; if (isDependentException(ex->unwindHeader.exception_class)) { return; } __sync_fetch_and_add(&ex->referenceCount, 1); } extern "C" void __cxa_decrement_exception_refcount(void* thrown_exception) { if (NULL == thrown_exception) { return; } - __cxa_exception *ex = ((__cxa_exception*)thrown_exception) - 1; + __cxa_exception *ex = static_cast<__cxa_exception*>(thrown_exception) - 1; releaseException(ex); } @@ -838,7 +848,7 @@ extern "C" void __cxa_rethrow() if (ti->foreign_exception_state != __cxa_thread_info::none) { ti->foreign_exception_state = __cxa_thread_info::rethrown; - _Unwind_Exception *e = (_Unwind_Exception*)ex; + _Unwind_Exception *e = reinterpret_cast<_Unwind_Exception*>(ex); _Unwind_Reason_Code err = _Unwind_Resume_or_Rethrow(e); report_failure(err, ex); return; @@ -881,8 +891,8 @@ static std::type_info *get_type_info_ent if (offset == 0) { return 0; } // ...so we need to resolve it - return (std::type_info*)resolve_indirect_value(context, - lsda->type_table_encoding, offset, start); + return reinterpret_cast(resolve_indirect_value(context, + lsda->type_table_encoding, offset, start)); } @@ -896,13 +906,13 @@ static bool check_type_signature(__cxa_e const std::type_info *type, void *&adjustedPtr) { - void *exception_ptr = (void*)(ex+1); + void *exception_ptr = static_cast(ex+1); const std::type_info *ex_type = ex ? ex->exceptionType : 0; bool is_ptr = ex ? ex_type->__is_pointer_p() : false; if (is_ptr) { - exception_ptr = *(void**)exception_ptr; + exception_ptr = *static_cast(exception_ptr); } // Always match a catchall, even with a foreign exception // @@ -974,7 +984,7 @@ static handler_type check_action_record( { bool matched = false; *selector = filter; -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) filter++; std::type_info *handler_type = get_type_info_entry(context, lsda, filter--); while (handler_type) @@ -987,7 +997,7 @@ static handler_type check_action_record( handler_type = get_type_info_entry(context, lsda, filter--); } #else - unsigned char *type_index = ((unsigned char*)lsda->type_table - filter - 1); + unsigned char *type_index = reinterpret_cast(lsda->type_table) - filter - 1; while (*type_index) { std::type_info *handler_type = get_type_info_entry(context, lsda, *(type_index++)); @@ -1019,7 +1029,7 @@ static handler_type check_action_record( static void pushCleanupException(_Unwind_Exception *exceptionObject, __cxa_exception *ex) { -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) __cxa_thread_info *info = thread_info_fast(); if (ex) { @@ -1064,8 +1074,13 @@ BEGIN_PERSONALITY_FUNCTION(__gxx_persona realEx = realExceptionFromException(ex); } +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) + unsigned char *lsda_addr = + static_cast(_Unwind_GetLanguageSpecificData(context)); +#else unsigned char *lsda_addr = - (unsigned char*)_Unwind_GetLanguageSpecificData(context); + reinterpret_cast(static_cast(_Unwind_GetLanguageSpecificData(context))); +#endif // No LSDA implies no landing pads - try the next frame if (0 == lsda_addr) { return continueUnwinding(exceptionObject, context); } @@ -1114,8 +1129,8 @@ BEGIN_PERSONALITY_FUNCTION(__gxx_persona if (ex) { saveLandingPad(context, exceptionObject, ex, selector, action.landing_pad); - ex->languageSpecificData = (const char*)lsda_addr; - ex->actionRecord = (const char*)action.action_record; + ex->languageSpecificData = reinterpret_cast(lsda_addr); + ex->actionRecord = reinterpret_cast(action.action_record); // ex->adjustedPtr is set when finding the action record. } return _URC_HANDLER_FOUND; @@ -1161,9 +1176,9 @@ BEGIN_PERSONALITY_FUNCTION(__gxx_persona } - _Unwind_SetIP(context, (unsigned long)action.landing_pad); + _Unwind_SetIP(context, reinterpret_cast(action.landing_pad)); _Unwind_SetGR(context, __builtin_eh_return_data_regno(0), - (unsigned long)exceptionObject); + reinterpret_cast(exceptionObject)); _Unwind_SetGR(context, __builtin_eh_return_data_regno(1), selector); return _URC_INSTALL_CONTEXT; @@ -1187,7 +1202,7 @@ extern "C" void *__cxa_begin_catch(void __cxa_thread_info *ti = thread_info(); __cxa_eh_globals *globals = &ti->globals; globals->uncaughtExceptions--; - _Unwind_Exception *exceptionObject = (_Unwind_Exception*)e; + _Unwind_Exception *exceptionObject = static_cast<_Unwind_Exception*>(e); if (isCXXException(exceptionObject->exception_class)) { @@ -1241,12 +1256,12 @@ extern "C" void *__cxa_begin_catch(void { std::terminate(); } - globals->caughtExceptions = (__cxa_exception*)exceptionObject; + globals->caughtExceptions = reinterpret_cast<__cxa_exception*>(exceptionObject); ti->foreign_exception_state = __cxa_thread_info::caught; } // exceptionObject is the pointer to the _Unwind_Exception within the // __cxa_exception. The throw object is after this - return ((char*)exceptionObject + sizeof(_Unwind_Exception)); + return (reinterpret_cast(exceptionObject) + sizeof(_Unwind_Exception)); } @@ -1270,7 +1285,7 @@ extern "C" void __cxa_end_catch() globals->caughtExceptions = 0; if (ti->foreign_exception_state != __cxa_thread_info::rethrown) { - _Unwind_Exception *e = (_Unwind_Exception*)ti->globals.caughtExceptions; + _Unwind_Exception *e = reinterpret_cast<_Unwind_Exception*>(ti->globals.caughtExceptions); e->exception_cleanup(_URC_FOREIGN_EXCEPTION_CAUGHT, e); } ti->foreign_exception_state = __cxa_thread_info::none; @@ -1332,7 +1347,7 @@ extern "C" std::type_info *__cxa_current */ extern "C" void __cxa_call_unexpected(void*exception) { - _Unwind_Exception *exceptionObject = (_Unwind_Exception*)exception; + _Unwind_Exception *exceptionObject = static_cast<_Unwind_Exception*>(exception); if (exceptionObject->exception_class == exception_class) { __cxa_exception *ex = exceptionFromPointer(exceptionObject); @@ -1483,7 +1498,7 @@ namespace std return ATOMIC_LOAD(&terminateHandler); } } -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) extern "C" _Unwind_Exception *__cxa_get_cleanup(void) { __cxa_thread_info *info = thread_info_fast(); Modified: head/contrib/libcxxrt/guard.cc ============================================================================== --- head/contrib/libcxxrt/guard.cc Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/guard.cc Tue Dec 30 20:01:06 2014 (r276417) @@ -70,18 +70,45 @@ #ifdef __arm__ // ARM ABI - 32-bit guards. typedef uint32_t guard_t; -static const uint32_t LOCKED = ((guard_t)1) << 31; +typedef uint32_t guard_lock_t; +static const uint32_t LOCKED = static_cast(1) << 31; static const uint32_t INITIALISED = 1; -#else +#define LOCK_PART(guard) (guard) +#define INIT_PART(guard) (guard) +#elif defined(_LP64) typedef uint64_t guard_t; +typedef uint64_t guard_lock_t; # if defined(__LITTLE_ENDIAN__) -static const guard_t LOCKED = ((guard_t)1) << 63; +static const guard_t LOCKED = static_cast(1) << 63; static const guard_t INITIALISED = 1; # else static const guard_t LOCKED = 1; -static const guard_t INITIALISED = ((guard_t)1) << 56; +static const guard_t INITIALISED = static_cast(1) << 56; +# endif +#define LOCK_PART(guard) (guard) +#define INIT_PART(guard) (guard) +#else +typedef uint32_t guard_lock_t; +# if defined(__LITTLE_ENDIAN__) +typedef struct { + uint32_t init_half; + uint32_t lock_half; +} guard_t; +static const uint32_t LOCKED = static_cast(1) << 31; +static const uint32_t INITIALISED = 1; +# else +typedef struct { + uint32_t init_half; + uint32_t lock_half; +} guard_t; +_Static_assert(sizeof(guard_t) == sizeof(uint64_t), ""); +static const uint32_t LOCKED = 1; +static const uint32_t INITIALISED = static_cast(1) << 24; # endif +#define LOCK_PART(guard) (&(guard)->lock_half) +#define INIT_PART(guard) (&(guard)->init_half) #endif +static const guard_lock_t INITIAL = 0; /** * Acquires a lock on a guard, returning 0 if the object has already been @@ -90,42 +117,49 @@ static const guard_t INITIALISED = ((gua */ extern "C" int __cxa_guard_acquire(volatile guard_t *guard_object) { + guard_lock_t old; // Not an atomic read, doesn't establish a happens-before relationship, but // if one is already established and we end up seeing an initialised state // then it's a fast path, otherwise we'll do something more expensive than // this test anyway... - if ((INITIALISED == *guard_object)) { return 0; } + if (INITIALISED == *INIT_PART(guard_object)) + return 0; // Spin trying to do the initialisation - while (1) + for (;;) { // Loop trying to move the value of the guard from 0 (not // locked, not initialised) to the locked-uninitialised // position. - switch (__sync_val_compare_and_swap(guard_object, 0, LOCKED)) - { - // If the old value was 0, we succeeded, so continue - // initialising - case 0: + old = __sync_val_compare_and_swap(LOCK_PART(guard_object), + INITIAL, LOCKED); + if (old == INITIAL) { + // Lock obtained. If lock and init bit are + // in separate words, check for init race. + if (INIT_PART(guard_object) == LOCK_PART(guard_object)) return 1; - // If this was already initialised, return and let the caller skip - // initialising it again. - case INITIALISED: - return 0; - // If it is locked by another thread, relinquish the CPU and try - // again later. - case LOCKED: - case LOCKED | INITIALISED: - sched_yield(); - break; - // If it is some other value, then something has gone badly wrong. - // Give up. - default: - fprintf(stderr, "Invalid state detected attempting to lock static initialiser.\n"); - abort(); + if (INITIALISED != *INIT_PART(guard_object)) + return 1; + + // No need for a memory barrier here, + // see first comment. + *LOCK_PART(guard_object) = INITIAL; + return 0; } + // If lock and init bit are in the same word, check again + // if we are done. + if (INIT_PART(guard_object) == LOCK_PART(guard_object) && + old == INITIALISED) + return 0; + + assert(old == LOCKED); + // Another thread holds the lock. + // If lock and init bit are in different words, check + // if we are done before yielding and looping. + if (INIT_PART(guard_object) != LOCK_PART(guard_object) && + INITIALISED == *INIT_PART(guard_object)) + return 0; + sched_yield(); } - //__builtin_unreachable(); - return 0; } /** @@ -135,7 +169,8 @@ extern "C" int __cxa_guard_acquire(volat extern "C" void __cxa_guard_abort(volatile guard_t *guard_object) { __attribute__((unused)) - bool reset = __sync_bool_compare_and_swap(guard_object, LOCKED, 0); + bool reset = __sync_bool_compare_and_swap(LOCK_PART(guard_object), + LOCKED, INITIAL); assert(reset); } /** @@ -144,9 +179,15 @@ extern "C" void __cxa_guard_abort(volati */ extern "C" void __cxa_guard_release(volatile guard_t *guard_object) { + guard_lock_t old; + if (INIT_PART(guard_object) == LOCK_PART(guard_object)) + old = LOCKED; + else + old = INITIAL; __attribute__((unused)) - bool reset = __sync_bool_compare_and_swap(guard_object, LOCKED, INITIALISED); + bool reset = __sync_bool_compare_and_swap(INIT_PART(guard_object), + old, INITIALISED); assert(reset); + if (INIT_PART(guard_object) != LOCK_PART(guard_object)) + *LOCK_PART(guard_object) = INITIAL; } - - Modified: head/contrib/libcxxrt/stdexcept.cc ============================================================================== --- head/contrib/libcxxrt/stdexcept.cc Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/stdexcept.cc Tue Dec 30 20:01:06 2014 (r276417) @@ -95,7 +95,7 @@ bad_array_new_length& bad_array_new_leng } __attribute__((weak)) -const char *bad_array_new_length::what() const throw() +const char* bad_array_new_length::what() const throw() { return "std::bad_array_new_length"; } Modified: head/contrib/libcxxrt/stdexcept.h ============================================================================== --- head/contrib/libcxxrt/stdexcept.h Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/stdexcept.h Tue Dec 30 20:01:06 2014 (r276417) @@ -81,7 +81,7 @@ namespace std virtual const char* what() const throw(); }; - class bad_array_new_length: public exception + class bad_array_new_length: public bad_alloc { public: bad_array_new_length() throw(); Modified: head/contrib/libcxxrt/typeinfo.cc ============================================================================== --- head/contrib/libcxxrt/typeinfo.cc Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/typeinfo.cc Tue Dec 30 20:01:06 2014 (r276417) @@ -35,7 +35,7 @@ type_info::~type_info() {} bool type_info::operator==(const type_info &other) const { -#ifdef LIBCXXRT_MERGED_TYPEINFO +#ifdef LIBCXXRT_MERGED_TYPEINFO return __type_name == other.__type_name; #else return __type_name == other.__type_name || strcmp(__type_name, other.__type_name) == 0; @@ -104,7 +104,7 @@ extern "C" char* __cxa_demangle(const ch } if (*n < len+1) { - buf = (char*)realloc(buf, len+1); + buf = static_cast(realloc(buf, len+1)); } if (0 != buf) { Modified: head/contrib/libcxxrt/unwind-arm.h ============================================================================== --- head/contrib/libcxxrt/unwind-arm.h Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/unwind-arm.h Tue Dec 30 20:01:06 2014 (r276417) @@ -218,6 +218,6 @@ _Unwind_Reason_Code name(_Unwind_State s break;\ }\ }\ - _Unwind_SetGR (context, 12, (unsigned long)exceptionObject);\ + _Unwind_SetGR (context, 12, reinterpret_cast(exceptionObject));\ #define CALL_PERSONALITY_FUNCTION(name) name(state,exceptionObject,context) Modified: head/contrib/libcxxrt/unwind.h ============================================================================== --- head/contrib/libcxxrt/unwind.h Tue Dec 30 19:51:30 2014 (r276416) +++ head/contrib/libcxxrt/unwind.h Tue Dec 30 20:01:06 2014 (r276417) @@ -27,7 +27,7 @@ extern "C" { #endif -#ifdef __arm__ +#if defined(__arm__) && !defined(__ARM_DWARF_EH__) #include "unwind-arm.h" #else #include "unwind-itanium.h" From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 20:06:11 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B81FB86B; Tue, 30 Dec 2014 20:06:11 +0000 (UTC) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebius.int.ru", Issuer "cell.glebius.int.ru" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 387761B8F; Tue, 30 Dec 2014 20:06:10 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.9/8.14.9) with ESMTP id sBUK6118035637 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 30 Dec 2014 23:06:01 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.9/8.14.9/Submit) id sBUK61ST035636; Tue, 30 Dec 2014 23:06:01 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 30 Dec 2014 23:06:01 +0300 From: Gleb Smirnoff To: Mateusz Guzik Subject: Re: svn commit: r276341 - head/sys/kern Message-ID: <20141230200601.GF15484@FreeBSD.org> References: <201412281924.sBSJO284028980@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201412281924.sBSJO284028980@svn.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 20:06:11 -0000 On Sun, Dec 28, 2014 at 07:24:02PM +0000, Mateusz Guzik wrote: M> Author: mjg M> Date: Sun Dec 28 19:24:01 2014 M> New Revision: 276341 M> URL: https://svnweb.freebsd.org/changeset/base/276341 M> M> Log: M> sysctl: don't modify oid_running for static nodes M> M> It is necessary to prevent nodes from being destroyed while used, but static M> ones cannot be destroyed. What about nodes that go away on kernel module unload? Not sure they were protected properly before your commit, though :) -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 20:20:19 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C2E3BFE8; Tue, 30 Dec 2014 20:20:19 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AE52A1DAE; Tue, 30 Dec 2014 20:20:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUKKJUh037145; Tue, 30 Dec 2014 20:20:19 GMT (envelope-from wblock@FreeBSD.org) Received: (from wblock@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUKKJvF037125; Tue, 30 Dec 2014 20:20:19 GMT (envelope-from wblock@FreeBSD.org) Message-Id: <201412302020.sBUKKJvF037125@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: wblock set sender to wblock@FreeBSD.org using -f From: Warren Block Date: Tue, 30 Dec 2014 20:20:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276419 - head/usr.sbin/binmiscctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 20:20:20 -0000 Author: wblock (doc committer) Date: Tue Dec 30 20:20:18 2014 New Revision: 276419 URL: https://svnweb.freebsd.org/changeset/base/276419 Log: Move the explanation for examples before the example itself. Add numerous QEMU examples and explanations supplied by sbruno, with thanks to Ingo Schwarze for help with the mdoc markup. Code, text, testing, proofreading, cinematography, stunts, and the haunting theme song supplied by sbruno. Submitted by: sbruno Reviewed by: sbruno MFC after: 1 week Modified: head/usr.sbin/binmiscctl/binmiscctl.8 Modified: head/usr.sbin/binmiscctl/binmiscctl.8 ============================================================================== --- head/usr.sbin/binmiscctl/binmiscctl.8 Tue Dec 30 20:10:37 2014 (r276418) +++ head/usr.sbin/binmiscctl/binmiscctl.8 Tue Dec 30 20:20:18 2014 (r276419) @@ -27,7 +27,7 @@ .\" .\" Support for miscellaneous binary image activators .\" -.Dd April 10, 2014 +.Dd December 30, 2014 .Dt BINMISCCTL 8 .Os .Sh NAME @@ -146,46 +146,148 @@ Look up and print out the activator entr Take a snapshot and print all the activator entries currently configured. .El .Sh EXAMPLES +Add an image activator to run the LLVM interpreter (lli) on bitcode +compiled files: .Bd -ragged -offset indent # binmiscctl add llvmbc --interpreter ''/usr/bin/lli --fake-argv0=#a'' --magic ''BC\\xc0\\xde'' --size 4 --set-enabled .Ed .Pp -Add an image activator to run the LLVM interpreter (lli) on bitcode -compiled files. .Ar #a -gets replaced with the old +is replaced with the old .Dv argv0 value so that 'lli' can fake its .Dv argv0 . Set its state to enabled. .Pp +Set the state of the +.Ar llvmbc +image activator to disabled: .Dl # binmiscctl disable llvmbc .Pp Set the state of the .Ar llvmbc -image activator to disabled. -.Pp +image activator to enabled: .Dl # binmiscctl enable llvmbc .Pp -Set the state of the +Delete the .Ar llvmbc -image activator to enabled. -.Pp +image activator: .Dl # binmiscctl remove llvmbc .Pp -Delete the +Look up and list the record for the .Ar llvmbc -image activator. -.Pp +image activator: .Dl # binmiscctl lookup llvmbc .Pp -Look up and list the record for the -.Ar llvmbc -image activator. +Add QEMU bsd-user program as an image activator for ARM little-endian binaries: +.Bd -literal -offset indent +# binmiscctl add armelf \e + --interpreter "/usr/local/bin/qemu-arm-static" \e + --magic "\ex7f\ex45\ex4c\ex46\ex01\ex01\ex01\ex00\ex00\ex00\e + \ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\ex28\ex00" \e + --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e + \exff\exff\exff\exff\exff\exff\exfe\exff\exff\exff" \e + --size 20 --set-enabled +.Ed +.Pp +Add QEMU bsd-user program as an image activator for ARM big-endian binaries: +.Bd -literal -offset indent +# binmiscctl add armebelf \e + --interpreter "/usr/local/bin/qemu-arm-static" \e + --magic "\ex7f\ex45\ex4c\ex46\ex01\ex02\ex01\ex00\ex00\ex00\e + \ex00\ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\ex28" \e + --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e + \exff\exff\exff\exff\exff\exff\exff\exfe\exff\exff" \e + --size 20 --set-enabled +.Ed +.Pp +Add QEMU bsd-user program as an image activator for MIPS32 binaries: +.Bd -literal -offset indent +# binmiscctl add mips32 \e + --interpreter "/usr/local/bin/qemu-mips-static" \e + --magic "\ex7f\ex45\ex4c\ex46\ex01\ex02\ex01\ex00\ex00\ex00\e + \ex00\ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\ex08" \e + --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e + \exff\exff\exff\exff\exff\exff\exff\exfe\exff\exff" \e + --size 20 --set-enabled +.Ed +.Pp +Add QEMU bsd-user program as an image activator for MIPS64 binaries: +.Bd -literal -offset indent +# binmiscctl add mips64 \e + --interpreter "/usr/local/bin/qemu-mips64-static" \e + --magic "\ex7f\ex45\ex4c\ex46\ex02\ex02\ex01\ex00\ex00\ex00\e + \ex00\ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\ex08" \e + --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e + \exff\exff\exff\exff\exff\exff\exff\exfe\exff\exff" \e + --size 20 --set-enabled +.Ed +.Pp +Add QEMU bsd-user program as an image activator for PowerPC binaries: +.Bd -literal -offset indent +# binmiscctl add powerpc \e + --interpreter "/usr/local/bin/qemu-ppc-static" \e + --magic "\ex7f\ex45\ex4c\ex46\ex01\ex02\ex01\ex00\ex00\ex00\e + \ex00\ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\ex14" \e + --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e + \exff\exff\exff\exff\exff\exff\exff\exfe\exff\exff" \e + --size 20 --set-enabled +.Ed +.Pp +Add QEMU bsd-user program as an image activator for PowerPC64 binaries: +.Bd -literal -offset indent +# binmiscctl add powerpc64 \e + --interpreter "/usr/local/bin/qemu-ppc64-static" \e + --magic "\ex7f\ex45\ex4c\ex46\ex01\ex02\ex01\ex00\ex00\ex00\e + \ex00\ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\ex15" \e + --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e + \exff\exff\exff\exff\exff\exff\exff\exfe\exff\exff" \e + --size 20 --set-enabled +.Ed +.Pp +Add QEMU bsd-user program as an image activator for SPARC64 binaries: +.Bd -literal -offset indent +# binmiscctl add sparc64 \e + --interpreter "/usr/local/bin/qemu-sparc64-static" \e + --magic "\ex7f\ex45\ex4c\ex46\ex02\ex02\ex01\ex00\ex00\ex00\e + \ex00\ex00\ex00\ex00\ex00\ex00\ex00\ex02\ex00\ex2b" \e + --mask "\exff\exff\exff\exff\exff\exff\exff\ex00\exff\exff\e + \exff\exff\exff\exff\exff\exff\exff\exfe\exff\exff" \e + --size 20 --set-enabled +.Ed +.Pp +.Ss "Create and use an ARMv6 chroot on an AMD64 host" +Use an existing source tree to build a chroot host with architecture +overrides: +.Bd -literal +D=/path/to/chroot +cd /usr/src +mkdir -p $D +make world TARGET=arm TARGET_ARCH=armv6 DESTDIR=$D +make distribution TARGET=arm TARGET_ARCH=armv6 DESTDIR=$D +.Ed +.Pp +With +.Pa emulators/qemu-user-static +from the +.Fx +Ports Collection, the emulator must be copied into the jail path +specified in the binmiscctl command. +Using the example above: +.Bd -literal +mkdir $D/usr/local/bin +cp /usr/local/bin/qemu-arm-static $D/usr/local/bin +.Ed +.Pp +Now the user can chroot into the environment normally, as root: +.Bd -literal +chroot $D +.Ed .Sh SEE ALSO .Xr lli 1 , -.Xr execve 2 +.Xr execve 2 , +.Xr jail 8 .Sh HISTORY The .Cm binmiscctl From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 20:22:32 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AE6361C5; Tue, 30 Dec 2014 20:22:32 +0000 (UTC) Received: from mail-we0-x229.google.com (mail-we0-x229.google.com [IPv6:2a00:1450:400c:c03::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3F6E31E95; Tue, 30 Dec 2014 20:22:32 +0000 (UTC) Received: by mail-we0-f169.google.com with SMTP id m14so1539884wev.28; Tue, 30 Dec 2014 12:22:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=50yD2rKnQ27Gc+I97RRL3eH/+dF0JyEjrPpwlE7cex8=; b=YtwOFTcypLn+8smwOd97MgfANp+m3GfZg5qvHwmzNq/TzkHcwwkcLfUFAxXMA5j+xC ZdgeFuhAYwmP4zu8nnvj0IybV7cdsKh06yJOuyMyKNSw5mZhqrodbzk0FQAqY80wCNfS 3lSyQfHbBQt4zJL5Fjx+2ddyNIkJ/VmEABYHnOZicf2eJaCXgeBl3M6gm3cDeXyQx2gr XrBObXxg9VD8LkQDEymAszNOhLjIwNjKGnjk6q//XTkSfP3r1wKMwxYnxfFiyYgoZd3S AxqrILEb7pwnLf8FRG6zQbzIASD8f9bpIjAXUIPuSTCHiukFRI3T4G9cQ4oR0gmVRDKh UPHA== X-Received: by 10.194.94.227 with SMTP id df3mr127344482wjb.34.1419970950639; Tue, 30 Dec 2014 12:22:30 -0800 (PST) Received: from dft-labs.eu (n1x0n-1-pt.tunnel.tserv5.lon1.ipv6.he.net. [2001:470:1f08:1f7::2]) by mx.google.com with ESMTPSA id r3sm44625768wic.10.2014.12.30.12.22.29 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 30 Dec 2014 12:22:29 -0800 (PST) Date: Tue, 30 Dec 2014 21:22:27 +0100 From: Mateusz Guzik To: Gleb Smirnoff Subject: Re: svn commit: r276341 - head/sys/kern Message-ID: <20141230202226.GA27329@dft-labs.eu> References: <201412281924.sBSJO284028980@svn.freebsd.org> <20141230200601.GF15484@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20141230200601.GF15484@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 20:22:32 -0000 On Tue, Dec 30, 2014 at 11:06:01PM +0300, Gleb Smirnoff wrote: > On Sun, Dec 28, 2014 at 07:24:02PM +0000, Mateusz Guzik wrote: > M> Author: mjg > M> Date: Sun Dec 28 19:24:01 2014 > M> New Revision: 276341 > M> URL: https://svnweb.freebsd.org/changeset/base/276341 > M> > M> Log: > M> sysctl: don't modify oid_running for static nodes > M> > M> It is necessary to prevent nodes from being destroyed while used, but static > M> ones cannot be destroyed. > > What about nodes that go away on kernel module unload? Not sure > they were protected properly before your commit, though :) > They are not static. They seem to be protected properly though. -- Mateusz Guzik From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 20:44:07 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3423F96F; Tue, 30 Dec 2014 20:44:07 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 05CE92235; Tue, 30 Dec 2014 20:44:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUKi6NN048677; Tue, 30 Dec 2014 20:44:06 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUKi6vY048674; Tue, 30 Dec 2014 20:44:06 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201412302044.sBUKi6vY048674@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 30 Dec 2014 20:44:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276422 - stable/10/share/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 20:44:07 -0000 Author: ngie Date: Tue Dec 30 20:44:05 2014 New Revision: 276422 URL: https://svnweb.freebsd.org/changeset/base/276422 Log: MFC r267276: Ensure files are created during the build when using bsd.subdir.mk. When FILES is defined in a Makefile that _also_ includes bsd.subdir.mk, the build of the files (if any) was not properly triggered during the build stage. This was because bsd.files.mk did not define the buildfiles target if it was already defined... and bsd.subdir.mk defined this target on its own, thus causing a conflict. Fix this by unconditionally defining buildfiles from bsd.files.mk; this is safe because nothing else in the tree needs to redefine this and because the target itself contains no commands: all it does is define dependencies. Also ensure that bsd.files.mk is always pulled in by bsd.test.mk regardless of what bsd.prog.mk does. These fixes allow "make installworld" to run cleanly on a system with read-only src and obj trees. This is "make tinderbox" clean. Reviewed by: imp Obtained from: jilles Modified: stable/10/share/mk/bsd.files.mk stable/10/share/mk/bsd.test.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/share/mk/bsd.files.mk ============================================================================== --- stable/10/share/mk/bsd.files.mk Tue Dec 30 20:23:03 2014 (r276421) +++ stable/10/share/mk/bsd.files.mk Tue Dec 30 20:44:05 2014 (r276422) @@ -4,13 +4,14 @@ .error bsd.files.mk cannot be included directly. .endif +.if !target(____) +____: + FILESGROUPS?= FILES -.if !target(buildfiles) .for group in ${FILESGROUPS} buildfiles: ${${group}} .endfor -.endif all: buildfiles @@ -65,3 +66,5 @@ _${group}INS: ${_${group}FILES} realinstall: installfiles .ORDER: beforeinstall installfiles + +.endif # !target(____) Modified: stable/10/share/mk/bsd.test.mk ============================================================================== --- stable/10/share/mk/bsd.test.mk Tue Dec 30 20:23:03 2014 (r276421) +++ stable/10/share/mk/bsd.test.mk Tue Dec 30 20:44:05 2014 (r276422) @@ -94,8 +94,7 @@ test: aftertest .if !empty(PROGS) || !empty(PROGS_CXX) || !empty(SCRIPTS) .include -.elif !empty(FILES) -.include .endif +.include .include From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 20:46:03 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 75F8FB5F; Tue, 30 Dec 2014 20:46:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47684225D; Tue, 30 Dec 2014 20:46:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUKk3jg049047; Tue, 30 Dec 2014 20:46:03 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUKk2B3049040; Tue, 30 Dec 2014 20:46:02 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201412302046.sBUKk2B3049040@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 30 Dec 2014 20:46:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276423 - stable/10/share/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 20:46:03 -0000 Author: ngie Date: Tue Dec 30 20:46:01 2014 New Revision: 276423 URL: https://svnweb.freebsd.org/changeset/base/276423 Log: MFC r274077: As an optimization (in simple, well used cases) only call cat ${.ALLSRC} when generating files from various sources instead of calling cat ${.ALLSRC} | sed The perl case was skipped because it's not being used in the tree at this time Modified: stable/10/share/mk/atf.test.mk stable/10/share/mk/plain.test.mk stable/10/share/mk/tap.test.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/share/mk/atf.test.mk ============================================================================== --- stable/10/share/mk/atf.test.mk Tue Dec 30 20:44:05 2014 (r276422) +++ stable/10/share/mk/atf.test.mk Tue Dec 30 20:46:01 2014 (r276423) @@ -105,8 +105,12 @@ ATF_TESTS_SH_SED_${_T}?= # empty ATF_TESTS_SH_SRC_${_T}?= ${_T}.sh ${_T}: ${ATF_TESTS_SH_SRC_${_T}} echo '#! /usr/libexec/atf-sh' > ${.TARGET}.tmp +.if empty(ATF_TESTS_SH_SED_${_T}) + cat ${.ALLSRC:N*Makefile*} >>${.TARGET}.tmp +.else cat ${.ALLSRC:N*Makefile*} \ | sed ${ATF_TESTS_SH_SED_${_T}} >>${.TARGET}.tmp +.endif chmod +x ${.TARGET}.tmp mv ${.TARGET}.tmp ${.TARGET} .endfor Modified: stable/10/share/mk/plain.test.mk ============================================================================== --- stable/10/share/mk/plain.test.mk Tue Dec 30 20:44:05 2014 (r276422) +++ stable/10/share/mk/plain.test.mk Tue Dec 30 20:46:01 2014 (r276423) @@ -57,8 +57,12 @@ CLEANFILES+= ${_T} ${_T}.tmp PLAIN_TESTS_SH_SED_${_T}?= # empty PLAIN_TESTS_SH_SRC_${_T}?= ${_T}.sh ${_T}: ${PLAIN_TESTS_SH_SRC_${_T}} +.if empty(PLAIN_TESTS_SH_SED_${_T}) + cat ${.ALLSRC:N*Makefile*} >${.TARGET}.tmp +.else cat ${.ALLSRC:N*Makefile*} \ | sed ${PLAIN_TESTS_SH_SED_${_T}} >${.TARGET}.tmp +.endif chmod +x ${.TARGET}.tmp mv ${.TARGET}.tmp ${.TARGET} .endfor Modified: stable/10/share/mk/tap.test.mk ============================================================================== --- stable/10/share/mk/tap.test.mk Tue Dec 30 20:44:05 2014 (r276422) +++ stable/10/share/mk/tap.test.mk Tue Dec 30 20:46:01 2014 (r276423) @@ -86,7 +86,11 @@ CLEANFILES+= ${_T} ${_T}.tmp TAP_TESTS_SH_SED_${_T}?= # empty TAP_TESTS_SH_SRC_${_T}?= ${_T}.sh ${_T}: ${TAP_TESTS_SH_SRC_${_T}} +.if empty(TAP_TESTS_SH_SED_${_T}) + cat ${.ALLSRC} >${.TARGET}.tmp +.else cat ${.ALLSRC} | sed ${TAP_TESTS_SH_SED_${_T}} >${.TARGET}.tmp +.endif chmod +x ${.TARGET}.tmp mv ${.TARGET}.tmp ${.TARGET} .endfor From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 21:40:46 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4856B61E; Tue, 30 Dec 2014 21:40:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 33C0D2B34; Tue, 30 Dec 2014 21:40:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBULekn3076020; Tue, 30 Dec 2014 21:40:46 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBULek5f076019; Tue, 30 Dec 2014 21:40:46 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201412302140.sBULek5f076019@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 30 Dec 2014 21:40:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276424 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 21:40:46 -0000 Author: mjg Date: Tue Dec 30 21:40:45 2014 New Revision: 276424 URL: https://svnweb.freebsd.org/changeset/base/276424 Log: Convert vfs hash lock from a mutex to an rwlock. Modified: head/sys/kern/vfs_hash.c Modified: head/sys/kern/vfs_hash.c ============================================================================== --- head/sys/kern/vfs_hash.c Tue Dec 30 20:46:01 2014 (r276423) +++ head/sys/kern/vfs_hash.c Tue Dec 30 21:40:45 2014 (r276424) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include static MALLOC_DEFINE(M_VFS_HASH, "vfs_hash", "VFS hash table"); @@ -40,14 +41,14 @@ static MALLOC_DEFINE(M_VFS_HASH, "vfs_ha static LIST_HEAD(vfs_hash_head, vnode) *vfs_hash_tbl; static LIST_HEAD(,vnode) vfs_hash_side; static u_long vfs_hash_mask; -static struct mtx vfs_hash_mtx; +static struct rwlock vfs_hash_lock; static void vfs_hashinit(void *dummy __unused) { vfs_hash_tbl = hashinit(desiredvnodes, M_VFS_HASH, &vfs_hash_mask); - mtx_init(&vfs_hash_mtx, "vfs hash", NULL, MTX_DEF); + rw_init(&vfs_hash_lock, "vfs hash"); LIST_INIT(&vfs_hash_side); } @@ -75,7 +76,7 @@ vfs_hash_get(const struct mount *mp, u_i int error; while (1) { - mtx_lock(&vfs_hash_mtx); + rw_rlock(&vfs_hash_lock); LIST_FOREACH(vp, vfs_hash_bucket(mp, hash), v_hashlist) { if (vp->v_hash != hash) continue; @@ -84,7 +85,7 @@ vfs_hash_get(const struct mount *mp, u_i if (fn != NULL && fn(vp, arg)) continue; VI_LOCK(vp); - mtx_unlock(&vfs_hash_mtx); + rw_runlock(&vfs_hash_lock); error = vget(vp, flags | LK_INTERLOCK, td); if (error == ENOENT && (flags & LK_NOWAIT) == 0) break; @@ -94,7 +95,7 @@ vfs_hash_get(const struct mount *mp, u_i return (0); } if (vp == NULL) { - mtx_unlock(&vfs_hash_mtx); + rw_runlock(&vfs_hash_lock); *vpp = NULL; return (0); } @@ -105,9 +106,9 @@ void vfs_hash_remove(struct vnode *vp) { - mtx_lock(&vfs_hash_mtx); + rw_wlock(&vfs_hash_lock); LIST_REMOVE(vp, v_hashlist); - mtx_unlock(&vfs_hash_mtx); + rw_wunlock(&vfs_hash_lock); } int @@ -118,7 +119,7 @@ vfs_hash_insert(struct vnode *vp, u_int *vpp = NULL; while (1) { - mtx_lock(&vfs_hash_mtx); + rw_wlock(&vfs_hash_lock); LIST_FOREACH(vp2, vfs_hash_bucket(vp->v_mount, hash), v_hashlist) { if (vp2->v_hash != hash) @@ -128,13 +129,13 @@ vfs_hash_insert(struct vnode *vp, u_int if (fn != NULL && fn(vp2, arg)) continue; VI_LOCK(vp2); - mtx_unlock(&vfs_hash_mtx); + rw_wunlock(&vfs_hash_lock); error = vget(vp2, flags | LK_INTERLOCK, td); if (error == ENOENT && (flags & LK_NOWAIT) == 0) break; - mtx_lock(&vfs_hash_mtx); + rw_wlock(&vfs_hash_lock); LIST_INSERT_HEAD(&vfs_hash_side, vp, v_hashlist); - mtx_unlock(&vfs_hash_mtx); + rw_wunlock(&vfs_hash_lock); vput(vp); if (!error) *vpp = vp2; @@ -146,7 +147,7 @@ vfs_hash_insert(struct vnode *vp, u_int } vp->v_hash = hash; LIST_INSERT_HEAD(vfs_hash_bucket(vp->v_mount, hash), vp, v_hashlist); - mtx_unlock(&vfs_hash_mtx); + rw_wunlock(&vfs_hash_lock); return (0); } @@ -154,9 +155,9 @@ void vfs_hash_rehash(struct vnode *vp, u_int hash) { - mtx_lock(&vfs_hash_mtx); + rw_wlock(&vfs_hash_lock); LIST_REMOVE(vp, v_hashlist); LIST_INSERT_HEAD(vfs_hash_bucket(vp->v_mount, hash), vp, v_hashlist); vp->v_hash = hash; - mtx_unlock(&vfs_hash_mtx); + rw_wunlock(&vfs_hash_lock); } From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 21:42:39 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8C63178D; Tue, 30 Dec 2014 21:42:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 37B5C2C18; Tue, 30 Dec 2014 21:41:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBULfauA076792; Tue, 30 Dec 2014 21:41:36 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBULfaoZ076791; Tue, 30 Dec 2014 21:41:36 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201412302141.sBULfaoZ076791@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 30 Dec 2014 21:41:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276425 - head/sys/fs/nullfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 21:42:39 -0000 Author: mjg Date: Tue Dec 30 21:41:35 2014 New Revision: 276425 URL: https://svnweb.freebsd.org/changeset/base/276425 Log: Convert nullfs hash lock from a mutex to an rwlock. Modified: head/sys/fs/nullfs/null_subr.c Modified: head/sys/fs/nullfs/null_subr.c ============================================================================== --- head/sys/fs/nullfs/null_subr.c Tue Dec 30 21:40:45 2014 (r276424) +++ head/sys/fs/nullfs/null_subr.c Tue Dec 30 21:41:35 2014 (r276425) @@ -38,7 +38,7 @@ #include #include #include -#include +#include #include #include #include @@ -57,7 +57,7 @@ #define NULL_NHASH(vp) (&null_node_hashtbl[vfs_hash_index(vp) & null_hash_mask]) static LIST_HEAD(null_node_hashhead, null_node) *null_node_hashtbl; -static struct mtx null_hashmtx; +static struct rwlock null_hash_lock; static u_long null_hash_mask; static MALLOC_DEFINE(M_NULLFSHASH, "nullfs_hash", "NULLFS hash table"); @@ -75,7 +75,7 @@ nullfs_init(vfsp) null_node_hashtbl = hashinit(desiredvnodes, M_NULLFSHASH, &null_hash_mask); - mtx_init(&null_hashmtx, "nullhs", NULL, MTX_DEF); + rw_init(&null_hash_lock, "nullhs"); return (0); } @@ -84,7 +84,7 @@ nullfs_uninit(vfsp) struct vfsconf *vfsp; { - mtx_destroy(&null_hashmtx); + rw_destroy(&null_hash_lock); hashdestroy(null_node_hashtbl, M_NULLFSHASH, null_hash_mask); return (0); } @@ -111,7 +111,7 @@ null_hashget(mp, lowervp) * reference count (but NOT the lower vnode's VREF counter). */ hd = NULL_NHASH(lowervp); - mtx_lock(&null_hashmtx); + rw_rlock(&null_hash_lock); LIST_FOREACH(a, hd, null_hash) { if (a->null_lowervp == lowervp && NULLTOV(a)->v_mount == mp) { /* @@ -122,11 +122,11 @@ null_hashget(mp, lowervp) */ vp = NULLTOV(a); vref(vp); - mtx_unlock(&null_hashmtx); + rw_runlock(&null_hash_lock); return (vp); } } - mtx_unlock(&null_hashmtx); + rw_runlock(&null_hash_lock); return (NULLVP); } @@ -144,7 +144,7 @@ null_hashins(mp, xp) struct vnode *ovp; hd = NULL_NHASH(xp->null_lowervp); - mtx_lock(&null_hashmtx); + rw_wlock(&null_hash_lock); LIST_FOREACH(oxp, hd, null_hash) { if (oxp->null_lowervp == xp->null_lowervp && NULLTOV(oxp)->v_mount == mp) { @@ -154,12 +154,12 @@ null_hashins(mp, xp) */ ovp = NULLTOV(oxp); vref(ovp); - mtx_unlock(&null_hashmtx); + rw_wunlock(&null_hash_lock); return (ovp); } } LIST_INSERT_HEAD(hd, xp, null_hash); - mtx_unlock(&null_hashmtx); + rw_wunlock(&null_hash_lock); return (NULLVP); } @@ -277,9 +277,9 @@ null_hashrem(xp) struct null_node *xp; { - mtx_lock(&null_hashmtx); + rw_wlock(&null_hash_lock); LIST_REMOVE(xp, null_hash); - mtx_unlock(&null_hashmtx); + rw_wunlock(&null_hash_lock); } #ifdef DIAGNOSTIC From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 21:55:51 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CA9AABEB; Tue, 30 Dec 2014 21:55:51 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9D39264D95; Tue, 30 Dec 2014 21:55:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBULtphs084408; Tue, 30 Dec 2014 21:55:51 GMT (envelope-from wblock@FreeBSD.org) Received: (from wblock@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBULtpSP084407; Tue, 30 Dec 2014 21:55:51 GMT (envelope-from wblock@FreeBSD.org) Message-Id: <201412302155.sBULtpSP084407@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: wblock set sender to wblock@FreeBSD.org using -f From: Warren Block Date: Tue, 30 Dec 2014 21:55:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276426 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 21:55:51 -0000 Author: wblock (doc committer) Date: Tue Dec 30 21:55:50 2014 New Revision: 276426 URL: https://svnweb.freebsd.org/changeset/base/276426 Log: Remove the svn:executable property from iscsi.4. PR: 196380 Submitted by: Trond.Endrestol@ximalas.info MFC after: 1 week Modified: Directory Properties: head/share/man/man4/iscsi.4 (props changed) From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 22:04:26 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 263BDF55; Tue, 30 Dec 2014 22:04:26 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EDD7464F07; Tue, 30 Dec 2014 22:04:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUM4Par089062; Tue, 30 Dec 2014 22:04:25 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUM4PHr089061; Tue, 30 Dec 2014 22:04:25 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412302204.sBUM4PHr089061@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Dec 2014 22:04:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276427 - head/contrib/elftoolchain/libelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 22:04:26 -0000 Author: emaste Date: Tue Dec 30 22:04:24 2014 New Revision: 276427 URL: https://svnweb.freebsd.org/changeset/base/276427 Log: Check for multiplication integer overflow in CHECK_EHDR The initial fix in r276374 is valid only for 64-bit objects. Revert it and return an error in CHECK_EHDR if the multiplication would overflow. The original buffer overflow issue was found with the security/afl fuzzer and has upstream elftoolchain ticket 462. The 32-bit object issue with r276374 found by antoine@ during an i386 exp-run. Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/libelf/elf_scn.c Modified: head/contrib/elftoolchain/libelf/elf_scn.c ============================================================================== --- head/contrib/elftoolchain/libelf/elf_scn.c Tue Dec 30 21:55:50 2014 (r276426) +++ head/contrib/elftoolchain/libelf/elf_scn.c Tue Dec 30 22:04:24 2014 (r276427) @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "_libelf.h" @@ -50,7 +51,6 @@ _libelf_load_section_headers(Elf *e, voi Elf64_Ehdr *eh64; int ec, swapbytes; unsigned char *src; - unsigned char *rawend; size_t fsz, i, shnum; int (*xlator)(unsigned char *_d, size_t _dsz, unsigned char *_s, size_t _c, int _swap); @@ -61,6 +61,7 @@ _libelf_load_section_headers(Elf *e, voi #define CHECK_EHDR(E,EH) do { \ if (fsz != (EH)->e_shentsize || \ + shnum > SIZE_MAX / fsz || \ shoff + fsz * shnum > e->e_rawsize) { \ LIBELF_SET_ERROR(HEADER, 0); \ return (0); \ @@ -87,7 +88,6 @@ _libelf_load_section_headers(Elf *e, voi swapbytes = e->e_byteorder != LIBELF_PRIVATE(byteorder); src = e->e_rawfile + shoff; - rawend = e->e_rawfile + e->e_rawsize; /* * If the file is using extended numbering then section #0 @@ -104,8 +104,6 @@ _libelf_load_section_headers(Elf *e, voi } for (; i < shnum; i++, src += fsz) { - if (src + sizeof(scn->s_shdr) > rawend) - return (0); if ((scn = _libelf_allocate_scn(e, i)) == NULL) return (0); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 22:12:47 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C8500187; Tue, 30 Dec 2014 22:12:47 +0000 (UTC) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebius.int.ru", Issuer "cell.glebius.int.ru" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 5096F1075; Tue, 30 Dec 2014 22:12:46 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.9/8.14.9) with ESMTP id sBUMCiAc036085 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 31 Dec 2014 01:12:44 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.9/8.14.9/Submit) id sBUMCh6U036084; Wed, 31 Dec 2014 01:12:43 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Wed, 31 Dec 2014 01:12:43 +0300 From: Gleb Smirnoff To: Mateusz Guzik Subject: Re: svn commit: r276341 - head/sys/kern Message-ID: <20141230221243.GH15484@FreeBSD.org> References: <201412281924.sBSJO284028980@svn.freebsd.org> <20141230200601.GF15484@FreeBSD.org> <20141230202226.GA27329@dft-labs.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20141230202226.GA27329@dft-labs.eu> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 22:12:47 -0000 On Tue, Dec 30, 2014 at 09:22:27PM +0100, Mateusz Guzik wrote: M> On Tue, Dec 30, 2014 at 11:06:01PM +0300, Gleb Smirnoff wrote: M> > On Sun, Dec 28, 2014 at 07:24:02PM +0000, Mateusz Guzik wrote: M> > M> Author: mjg M> > M> Date: Sun Dec 28 19:24:01 2014 M> > M> New Revision: 276341 M> > M> URL: https://svnweb.freebsd.org/changeset/base/276341 M> > M> M> > M> Log: M> > M> sysctl: don't modify oid_running for static nodes M> > M> M> > M> It is necessary to prevent nodes from being destroyed while used, but static M> > M> ones cannot be destroyed. M> > M> > What about nodes that go away on kernel module unload? Not sure M> > they were protected properly before your commit, though :) M> > M> M> They are not static. I don't see how they can get CTLFLAG_DYN. Look for any (un)loadable modules as an example, e.g. aio(4) implemented in vfs_aio.c. How its sysctls get CTLFLAG_DYN? -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 22:19:37 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6DAFB3AC; Tue, 30 Dec 2014 22:19:37 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5763510F2; Tue, 30 Dec 2014 22:19:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUMJbKn094880; Tue, 30 Dec 2014 22:19:37 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUMJZ1x094872; Tue, 30 Dec 2014 22:19:35 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412302219.sBUMJZ1x094872@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Tue, 30 Dec 2014 22:19:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276428 - in head: lib/libvmmapi sys/amd64/include sys/amd64/vmm sys/amd64/vmm/io sys/modules/vmm usr.sbin/bhyve usr.sbin/bhyvectl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 22:19:37 -0000 Author: neel Date: Tue Dec 30 22:19:34 2014 New Revision: 276428 URL: https://svnweb.freebsd.org/changeset/base/276428 Log: Replace bhyve's minimal RTC emulation with a fully featured one in vmm.ko. The new RTC emulation supports all interrupt modes: periodic, update ended and alarm. It is also capable of maintaining the date/time and NVRAM contents across virtual machine reset. Also, the date/time fields can now be modified by the guest. Since bhyve now emulates both the PIT and the RTC there is no need for "Legacy Replacement Routing" in the HPET so get rid of it. The RTC device state can be inspected via bhyvectl as follows: bhyvectl --vm=vm --get-rtc-time bhyvectl --vm=vm --set-rtc-time= bhyvectl --vm=vm --rtc-nvram-offset= --get-rtc-nvram bhyvectl --vm=vm --rtc-nvram-offset= --set-rtc-nvram= Reviewed by: tychon Discussed with: grehan Differential Revision: https://reviews.freebsd.org/D1385 MFC after: 2 weeks Added: head/sys/amd64/vmm/io/vrtc.c (contents, props changed) head/sys/amd64/vmm/io/vrtc.h (contents, props changed) Modified: head/lib/libvmmapi/vmmapi.c head/lib/libvmmapi/vmmapi.h head/sys/amd64/include/vmm.h head/sys/amd64/include/vmm_dev.h head/sys/amd64/vmm/io/vhpet.c head/sys/amd64/vmm/vmm.c head/sys/amd64/vmm/vmm_dev.c head/sys/amd64/vmm/vmm_ioport.c head/sys/modules/vmm/Makefile head/usr.sbin/bhyve/rtc.c head/usr.sbin/bhyvectl/bhyvectl.c Modified: head/lib/libvmmapi/vmmapi.c ============================================================================== --- head/lib/libvmmapi/vmmapi.c Tue Dec 30 22:04:24 2014 (r276427) +++ head/lib/libvmmapi/vmmapi.c Tue Dec 30 22:19:34 2014 (r276428) @@ -1146,3 +1146,55 @@ vm_set_intinfo(struct vmctx *ctx, int vc error = ioctl(ctx->fd, VM_SET_INTINFO, &vmii); return (error); } + +int +vm_rtc_write(struct vmctx *ctx, int offset, uint8_t value) +{ + struct vm_rtc_data rtcdata; + int error; + + bzero(&rtcdata, sizeof(struct vm_rtc_data)); + rtcdata.offset = offset; + rtcdata.value = value; + error = ioctl(ctx->fd, VM_RTC_WRITE, &rtcdata); + return (error); +} + +int +vm_rtc_read(struct vmctx *ctx, int offset, uint8_t *retval) +{ + struct vm_rtc_data rtcdata; + int error; + + bzero(&rtcdata, sizeof(struct vm_rtc_data)); + rtcdata.offset = offset; + error = ioctl(ctx->fd, VM_RTC_READ, &rtcdata); + if (error == 0) + *retval = rtcdata.value; + return (error); +} + +int +vm_rtc_settime(struct vmctx *ctx, time_t secs) +{ + struct vm_rtc_time rtctime; + int error; + + bzero(&rtctime, sizeof(struct vm_rtc_time)); + rtctime.secs = secs; + error = ioctl(ctx->fd, VM_RTC_SETTIME, &rtctime); + return (error); +} + +int +vm_rtc_gettime(struct vmctx *ctx, time_t *secs) +{ + struct vm_rtc_time rtctime; + int error; + + bzero(&rtctime, sizeof(struct vm_rtc_time)); + error = ioctl(ctx->fd, VM_RTC_GETTIME, &rtctime); + if (error == 0) + *secs = rtctime.secs; + return (error); +} Modified: head/lib/libvmmapi/vmmapi.h ============================================================================== --- head/lib/libvmmapi/vmmapi.h Tue Dec 30 22:04:24 2014 (r276427) +++ head/lib/libvmmapi/vmmapi.h Tue Dec 30 22:19:34 2014 (r276428) @@ -133,6 +133,12 @@ void vm_copyin(struct vmctx *ctx, int vc void vm_copyout(struct vmctx *ctx, int vcpu, const void *host_src, struct iovec *guest_iov, size_t len); +/* RTC */ +int vm_rtc_write(struct vmctx *ctx, int offset, uint8_t value); +int vm_rtc_read(struct vmctx *ctx, int offset, uint8_t *retval); +int vm_rtc_settime(struct vmctx *ctx, time_t secs); +int vm_rtc_gettime(struct vmctx *ctx, time_t *secs); + /* Reset vcpu register state */ int vcpu_reset(struct vmctx *ctx, int vcpu); Modified: head/sys/amd64/include/vmm.h ============================================================================== --- head/sys/amd64/include/vmm.h Tue Dec 30 22:04:24 2014 (r276427) +++ head/sys/amd64/include/vmm.h Tue Dec 30 22:19:34 2014 (r276428) @@ -286,6 +286,7 @@ int vm_unassign_pptdev(struct vm *vm, in struct vatpic *vm_atpic(struct vm *vm); struct vatpit *vm_atpit(struct vm *vm); struct vpmtmr *vm_pmtmr(struct vm *vm); +struct vrtc *vm_rtc(struct vm *vm); /* * Inject exception 'vme' into the guest vcpu. This function returns 0 on Modified: head/sys/amd64/include/vmm_dev.h ============================================================================== --- head/sys/amd64/include/vmm_dev.h Tue Dec 30 22:04:24 2014 (r276427) +++ head/sys/amd64/include/vmm_dev.h Tue Dec 30 22:19:34 2014 (r276428) @@ -195,6 +195,15 @@ struct vm_intinfo { uint64_t info2; }; +struct vm_rtc_time { + time_t secs; +}; + +struct vm_rtc_data { + int offset; + uint8_t value; +}; + enum { /* general routines */ IOCNUM_ABIVERS = 0, @@ -254,6 +263,12 @@ enum { /* vm_cpuset */ IOCNUM_ACTIVATE_CPU = 90, IOCNUM_GET_CPUSET = 91, + + /* RTC */ + IOCNUM_RTC_READ = 100, + IOCNUM_RTC_WRITE = 101, + IOCNUM_RTC_SETTIME = 102, + IOCNUM_RTC_GETTIME = 103, }; #define VM_RUN \ @@ -336,4 +351,12 @@ enum { _IOW('v', IOCNUM_SET_INTINFO, struct vm_intinfo) #define VM_GET_INTINFO \ _IOWR('v', IOCNUM_GET_INTINFO, struct vm_intinfo) +#define VM_RTC_WRITE \ + _IOW('v', IOCNUM_RTC_WRITE, struct vm_rtc_data) +#define VM_RTC_READ \ + _IOWR('v', IOCNUM_RTC_READ, struct vm_rtc_data) +#define VM_RTC_SETTIME \ + _IOW('v', IOCNUM_RTC_SETTIME, struct vm_rtc_time) +#define VM_RTC_GETTIME \ + _IOR('v', IOCNUM_RTC_GETTIME, struct vm_rtc_time) #endif Modified: head/sys/amd64/vmm/io/vhpet.c ============================================================================== --- head/sys/amd64/vmm/io/vhpet.c Tue Dec 30 22:04:24 2014 (r276427) +++ head/sys/amd64/vmm/io/vhpet.c Tue Dec 30 22:19:34 2014 (r276428) @@ -104,7 +104,6 @@ vhpet_capabilities(void) uint64_t cap = 0; cap |= 0x8086 << 16; /* vendor id */ - cap |= HPET_CAP_LEG_RT; /* legacy routing capable */ cap |= (VHPET_NUM_TIMERS - 1) << 8; /* number of timers */ cap |= 1; /* revision */ cap &= ~HPET_CAP_COUNT_SIZE; /* 32-bit timer */ @@ -127,15 +126,6 @@ vhpet_timer_msi_enabled(struct vhpet *vh { const uint64_t msi_enable = HPET_TCAP_FSB_INT_DEL | HPET_TCNF_FSB_EN; - /* - * LegacyReplacement Route configuration takes precedence over MSI - * for timers 0 and 1. - */ - if (n == 0 || n == 1) { - if (vhpet->config & HPET_CNF_LEG_RT) - return (false); - } - if ((vhpet->timer[n].cap_config & msi_enable) == msi_enable) return (true); else @@ -152,41 +142,9 @@ vhpet_timer_ioapic_pin(struct vhpet *vhp if (vhpet_timer_msi_enabled(vhpet, n)) return (0); - if (vhpet->config & HPET_CNF_LEG_RT) { - /* - * In "legacy routing" timers 0 and 1 are connected to - * ioapic pins 2 and 8 respectively. - */ - switch (n) { - case 0: - return (2); - case 1: - return (8); - } - } - return ((vhpet->timer[n].cap_config & HPET_TCNF_INT_ROUTE) >> 9); } -static __inline int -vhpet_timer_atpic_pin(struct vhpet *vhpet, int n) -{ - if (vhpet->config & HPET_CNF_LEG_RT) { - /* - * In "legacy routing" timers 0 and 1 are connected to - * 8259 master pin 0 and slave pin 0 respectively. - */ - switch (n) { - case 0: - return (0); - case 1: - return (8); - } - } - - return (-1); -} - static uint32_t vhpet_counter(struct vhpet *vhpet, sbintime_t *nowptr) { @@ -216,17 +174,12 @@ vhpet_counter(struct vhpet *vhpet, sbint static void vhpet_timer_clear_isr(struct vhpet *vhpet, int n) { - int pin, legacy_pin; + int pin; if (vhpet->isr & (1 << n)) { pin = vhpet_timer_ioapic_pin(vhpet, n); KASSERT(pin != 0, ("vhpet timer %d irq incorrectly routed", n)); vioapic_deassert_irq(vhpet->vm, pin); - - legacy_pin = vhpet_timer_atpic_pin(vhpet, n); - if (legacy_pin != -1) - vatpic_deassert_irq(vhpet->vm, legacy_pin); - vhpet->isr &= ~(1 << n); } } @@ -252,12 +205,6 @@ vhpet_timer_edge_trig(struct vhpet *vhpe KASSERT(!vhpet_timer_msi_enabled(vhpet, n), ("vhpet_timer_edge_trig: " "timer %d is using MSI", n)); - /* The legacy replacement interrupts are always edge triggered */ - if (vhpet->config & HPET_CNF_LEG_RT) { - if (n == 0 || n == 1) - return (true); - } - if ((vhpet->timer[n].cap_config & HPET_TCNF_INT_TYPE) == 0) return (true); else @@ -267,7 +214,7 @@ vhpet_timer_edge_trig(struct vhpet *vhpe static void vhpet_timer_interrupt(struct vhpet *vhpet, int n) { - int pin, legacy_pin; + int pin; /* If interrupts are not enabled for this timer then just return. */ if (!vhpet_timer_interrupt_enabled(vhpet, n)) @@ -293,17 +240,11 @@ vhpet_timer_interrupt(struct vhpet *vhpe return; } - legacy_pin = vhpet_timer_atpic_pin(vhpet, n); - if (vhpet_timer_edge_trig(vhpet, n)) { vioapic_pulse_irq(vhpet->vm, pin); - if (legacy_pin != -1) - vatpic_pulse_irq(vhpet->vm, legacy_pin); } else { vhpet->isr |= 1 << n; vioapic_assert_irq(vhpet->vm, pin); - if (legacy_pin != -1) - vatpic_assert_irq(vhpet->vm, legacy_pin); } } @@ -579,6 +520,13 @@ vhpet_mmio_write(void *vm, int vcpuid, u counter = vhpet_counter(vhpet, nowptr); oldval = vhpet->config; update_register(&vhpet->config, data, mask); + + /* + * LegacyReplacement Routing is not supported so clear the + * bit explicitly. + */ + vhpet->config &= ~HPET_CNF_LEG_RT; + if ((oldval ^ vhpet->config) & HPET_CNF_ENABLE) { if (vhpet_counter_enabled(vhpet)) { vhpet_start_counting(vhpet); Added: head/sys/amd64/vmm/io/vrtc.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/amd64/vmm/io/vrtc.c Tue Dec 30 22:19:34 2014 (r276428) @@ -0,0 +1,952 @@ +/*- + * Copyright (c) 2014, Neel Natu (neel@freebsd.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include "vmm_ktr.h" +#include "vatpic.h" +#include "vioapic.h" +#include "vrtc.h" + +/* Register layout of the RTC */ +struct rtcdev { + uint8_t sec; + uint8_t alarm_sec; + uint8_t min; + uint8_t alarm_min; + uint8_t hour; + uint8_t alarm_hour; + uint8_t day_of_week; + uint8_t day_of_month; + uint8_t month; + uint8_t year; + uint8_t reg_a; + uint8_t reg_b; + uint8_t reg_c; + uint8_t reg_d; + uint8_t nvram[128 - 14]; +} __packed; +CTASSERT(sizeof(struct rtcdev) == 128); + +struct vrtc { + struct vm *vm; + struct mtx mtx; + struct callout callout; + u_int addr; /* RTC register to read or write */ + sbintime_t base_uptime; + time_t base_rtctime; + struct rtcdev rtcdev; +}; + +#define VRTC_LOCK(vrtc) mtx_lock(&((vrtc)->mtx)) +#define VRTC_UNLOCK(vrtc) mtx_unlock(&((vrtc)->mtx)) +#define VRTC_LOCKED(vrtc) mtx_owned(&((vrtc)->mtx)) + +/* + * RTC time is considered "broken" if: + * - RTC updates are halted by the guest + * - RTC date/time fields have invalid values + */ +#define VRTC_BROKEN_TIME ((time_t)-1) + +#define RTC_IRQ 8 +#define RTCSB_BIN 0x04 +#define RTCSB_ALL_INTRS (RTCSB_UINTR | RTCSB_AINTR | RTCSB_PINTR) +#define rtc_halted(vrtc) ((vrtc->rtcdev.reg_b & RTCSB_HALT) != 0) +#define aintr_enabled(vrtc) (((vrtc)->rtcdev.reg_b & RTCSB_AINTR) != 0) +#define pintr_enabled(vrtc) (((vrtc)->rtcdev.reg_b & RTCSB_PINTR) != 0) +#define uintr_enabled(vrtc) (((vrtc)->rtcdev.reg_b & RTCSB_UINTR) != 0) + +static void vrtc_callout_handler(void *arg); +static void vrtc_set_reg_c(struct vrtc *vrtc, uint8_t newval); + +static MALLOC_DEFINE(M_VRTC, "vrtc", "bhyve virtual rtc"); + +SYSCTL_DECL(_hw_vmm); +SYSCTL_NODE(_hw_vmm, OID_AUTO, vrtc, CTLFLAG_RW, NULL, NULL); + +static int rtc_flag_broken_time = 1; +SYSCTL_INT(_hw_vmm_vrtc, OID_AUTO, flag_broken_time, CTLFLAG_RDTUN, + &rtc_flag_broken_time, 0, "Stop guest when invalid RTC time is detected"); + +static __inline bool +divider_enabled(int reg_a) +{ + /* + * The RTC is counting only when dividers are not held in reset. + */ + return ((reg_a & 0x70) == 0x20); +} + +static __inline bool +update_enabled(struct vrtc *vrtc) +{ + /* + * RTC date/time can be updated only if: + * - divider is not held in reset + * - guest has not disabled updates + * - the date/time fields have valid contents + */ + if (!divider_enabled(vrtc->rtcdev.reg_a)) + return (false); + + if (rtc_halted(vrtc)) + return (false); + + if (vrtc->base_rtctime == VRTC_BROKEN_TIME) + return (false); + + return (true); +} + +static time_t +vrtc_curtime(struct vrtc *vrtc) +{ + sbintime_t now, delta; + time_t t; + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + t = vrtc->base_rtctime; + if (update_enabled(vrtc)) { + now = sbinuptime(); + delta = now - vrtc->base_uptime; + KASSERT(delta >= 0, ("vrtc_curtime: uptime went backwards: " + "%#lx to %#lx", vrtc->base_uptime, now)); + t += delta / SBT_1S; + } + return (t); +} + +static __inline uint8_t +rtcset(struct rtcdev *rtc, int val) +{ + + KASSERT(val >= 0 && val < 100, ("%s: invalid bin2bcd index %d", + __func__, val)); + + return ((rtc->reg_b & RTCSB_BIN) ? val : bin2bcd_data[val]); +} + +static void +secs_to_rtc(time_t rtctime, struct vrtc *vrtc, int force_update) +{ + struct clocktime ct; + struct timespec ts; + struct rtcdev *rtc; + int hour; + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + if (rtctime < 0) { + KASSERT(rtctime == VRTC_BROKEN_TIME, + ("%s: invalid vrtc time %#lx", __func__, rtctime)); + return; + } + + /* + * If the RTC is halted then the guest has "ownership" of the + * date/time fields. Don't update the RTC date/time fields in + * this case (unless forced). + */ + if (rtc_halted(vrtc) && !force_update) + return; + + ts.tv_sec = rtctime; + ts.tv_nsec = 0; + clock_ts_to_ct(&ts, &ct); + + KASSERT(ct.sec >= 0 && ct.sec <= 59, ("invalid clocktime sec %d", + ct.sec)); + KASSERT(ct.min >= 0 && ct.min <= 59, ("invalid clocktime min %d", + ct.min)); + KASSERT(ct.hour >= 0 && ct.hour <= 23, ("invalid clocktime hour %d", + ct.hour)); + KASSERT(ct.dow >= 0 && ct.dow <= 6, ("invalid clocktime wday %d", + ct.dow)); + KASSERT(ct.day >= 1 && ct.day <= 31, ("invalid clocktime mday %d", + ct.day)); + KASSERT(ct.mon >= 1 && ct.mon <= 12, ("invalid clocktime month %d", + ct.mon)); + KASSERT(ct.year >= POSIX_BASE_YEAR, ("invalid clocktime year %d", + ct.year)); + + rtc = &vrtc->rtcdev; + rtc->sec = rtcset(rtc, ct.sec); + rtc->min = rtcset(rtc, ct.min); + + hour = ct.hour; + if ((rtc->reg_b & RTCSB_24HR) == 0) + hour = (hour % 12) + 1; /* convert to a 12-hour format */ + + rtc->hour = rtcset(rtc, hour); + + if ((rtc->reg_b & RTCSB_24HR) == 0 && ct.hour >= 12) + rtc->hour |= 0x80; /* set MSB to indicate PM */ + + rtc->day_of_week = rtcset(rtc, ct.dow + 1); + rtc->day_of_month = rtcset(rtc, ct.day); + rtc->month = rtcset(rtc, ct.mon); + rtc->year = rtcset(rtc, ct.year % 100); +} + +static int +rtcget(struct rtcdev *rtc, int val, int *retval) +{ + uint8_t upper, lower; + + if (rtc->reg_b & RTCSB_BIN) { + *retval = val; + return (0); + } + + lower = val & 0xf; + upper = (val >> 4) & 0xf; + + if (lower > 9 || upper > 9) + return (-1); + + *retval = upper * 10 + lower; + return (0); +} + +static time_t +rtc_to_secs(struct vrtc *vrtc) +{ + struct clocktime ct; + struct timespec ts; + struct rtcdev *rtc; + struct vm *vm; + int error, hour, pm, year; + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + vm = vrtc->vm; + rtc = &vrtc->rtcdev; + + bzero(&ct, sizeof(struct clocktime)); + + error = rtcget(rtc, rtc->sec, &ct.sec); + if (error || ct.sec < 0 || ct.sec > 59) { + VM_CTR2(vm, "Invalid RTC sec %#x/%d", rtc->sec, ct.sec); + goto fail; + } + + error = rtcget(rtc, rtc->min, &ct.min); + if (error || ct.min < 0 || ct.min > 59) { + VM_CTR2(vm, "Invalid RTC min %#x/%d", rtc->min, ct.min); + goto fail; + } + + pm = 0; + hour = rtc->hour; + if ((rtc->reg_b & RTCSB_24HR) == 0) { + if (hour & 0x80) { + hour &= ~0x80; + pm = 1; + } + } + error = rtcget(rtc, hour, &ct.hour); + if ((rtc->reg_b & RTCSB_24HR) == 0) { + ct.hour -= 1; + if (pm) + ct.hour += 12; + } + + if (error || ct.hour < 0 || ct.hour > 23) { + VM_CTR2(vm, "Invalid RTC hour %#x/%d", rtc->hour, ct.hour); + goto fail; + } + + /* + * Ignore 'rtc->dow' because some guests like Linux don't bother + * setting it at all while others like OpenBSD/i386 set it incorrectly. + * + * clock_ct_to_ts() does not depend on 'ct.dow' anyways so ignore it. + */ + ct.dow = -1; + + error = rtcget(rtc, rtc->day_of_month, &ct.day); + if (error || ct.day < 1 || ct.day > 31) { + VM_CTR2(vm, "Invalid RTC mday %#x/%d", rtc->day_of_month, + ct.day); + goto fail; + } + + error = rtcget(rtc, rtc->month, &ct.mon); + if (error || ct.mon < 1 || ct.mon > 12) { + VM_CTR2(vm, "Invalid RTC month %#x/%d", rtc->month, ct.mon); + goto fail; + } + + error = rtcget(rtc, rtc->year, &year); + if (error || year < 0 || year > 99) { + VM_CTR2(vm, "Invalid RTC year %#x/%d", rtc->year, year); + goto fail; + } + if (year >= 70) + ct.year = 1900 + year; + else + ct.year = 2000 + year; + + error = clock_ct_to_ts(&ct, &ts); + if (error || ts.tv_sec < 0) { + VM_CTR3(vm, "Invalid RTC clocktime.date %04d-%02d-%02d", + ct.year, ct.mon, ct.day); + VM_CTR3(vm, "Invalid RTC clocktime.time %02d:%02d:%02d", + ct.hour, ct.min, ct.sec); + goto fail; + } + return (ts.tv_sec); /* success */ +fail: + return (VRTC_BROKEN_TIME); /* failure */ +} + +static int +vrtc_time_update(struct vrtc *vrtc, time_t newtime) +{ + struct rtcdev *rtc; + time_t oldtime; + uint8_t alarm_sec, alarm_min, alarm_hour; + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + rtc = &vrtc->rtcdev; + alarm_sec = rtc->alarm_sec; + alarm_min = rtc->alarm_min; + alarm_hour = rtc->alarm_hour; + + oldtime = vrtc->base_rtctime; + VM_CTR2(vrtc->vm, "Updating RTC time from %#lx to %#lx", + oldtime, newtime); + + if (newtime == oldtime) + return (0); + + /* + * If 'newtime' indicates that RTC updates are disabled then just + * record that and return. There is no need to do alarm interrupt + * processing or update 'base_uptime' in this case. + */ + if (newtime == VRTC_BROKEN_TIME) { + vrtc->base_rtctime = VRTC_BROKEN_TIME; + return (0); + } + + /* + * Return an error if RTC updates are halted by the guest. + */ + if (rtc_halted(vrtc)) { + VM_CTR0(vrtc->vm, "RTC update halted by guest"); + return (EBUSY); + } + + do { + /* + * If the alarm interrupt is enabled and 'oldtime' is valid + * then visit all the seconds between 'oldtime' and 'newtime' + * to check for the alarm condition. + * + * Otherwise move the RTC time forward directly to 'newtime'. + */ + if (aintr_enabled(vrtc) && oldtime != VRTC_BROKEN_TIME) + vrtc->base_rtctime++; + else + vrtc->base_rtctime = newtime; + + if (aintr_enabled(vrtc)) { + /* + * Update the RTC date/time fields before checking + * if the alarm conditions are satisfied. + */ + secs_to_rtc(vrtc->base_rtctime, vrtc, 0); + + if ((alarm_sec >= 0xC0 || alarm_sec == rtc->sec) && + (alarm_min >= 0xC0 || alarm_min == rtc->min) && + (alarm_hour >= 0xC0 || alarm_hour == rtc->hour)) { + vrtc_set_reg_c(vrtc, rtc->reg_c | RTCIR_ALARM); + } + } + } while (vrtc->base_rtctime != newtime); + + if (uintr_enabled(vrtc)) + vrtc_set_reg_c(vrtc, rtc->reg_c | RTCIR_UPDATE); + + vrtc->base_uptime = sbinuptime(); + + return (0); +} + +static sbintime_t +vrtc_freq(struct vrtc *vrtc) +{ + int ratesel; + + static sbintime_t pf[16] = { + 0, + SBT_1S / 256, + SBT_1S / 128, + SBT_1S / 8192, + SBT_1S / 4096, + SBT_1S / 2048, + SBT_1S / 1024, + SBT_1S / 512, + SBT_1S / 256, + SBT_1S / 128, + SBT_1S / 64, + SBT_1S / 32, + SBT_1S / 16, + SBT_1S / 8, + SBT_1S / 4, + SBT_1S / 2, + }; + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + /* + * If both periodic and alarm interrupts are enabled then use the + * periodic frequency to drive the callout. The minimum periodic + * frequency (2 Hz) is higher than the alarm frequency (1 Hz) so + * piggyback the alarm on top of it. The same argument applies to + * the update interrupt. + */ + if (pintr_enabled(vrtc) && divider_enabled(vrtc->rtcdev.reg_a)) { + ratesel = vrtc->rtcdev.reg_a & 0xf; + return (pf[ratesel]); + } else if (aintr_enabled(vrtc) && update_enabled(vrtc)) { + return (SBT_1S); + } else if (uintr_enabled(vrtc) && update_enabled(vrtc)) { + return (SBT_1S); + } else { + return (0); + } +} + +static void +vrtc_callout_reset(struct vrtc *vrtc, sbintime_t freqsbt) +{ + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + if (freqsbt == 0) { + if (callout_active(&vrtc->callout)) { + VM_CTR0(vrtc->vm, "RTC callout stopped"); + callout_stop(&vrtc->callout); + } + return; + } + VM_CTR1(vrtc->vm, "RTC callout frequency %d hz", SBT_1S / freqsbt); + callout_reset_sbt(&vrtc->callout, freqsbt, 0, vrtc_callout_handler, + vrtc, 0); +} + +static void +vrtc_callout_handler(void *arg) +{ + struct vrtc *vrtc = arg; + sbintime_t freqsbt; + time_t rtctime; + int error; + + VM_CTR0(vrtc->vm, "vrtc callout fired"); + + VRTC_LOCK(vrtc); + if (callout_pending(&vrtc->callout)) /* callout was reset */ + goto done; + + if (!callout_active(&vrtc->callout)) /* callout was stopped */ + goto done; + + callout_deactivate(&vrtc->callout); + + KASSERT((vrtc->rtcdev.reg_b & RTCSB_ALL_INTRS) != 0, + ("gratuitous vrtc callout")); + + if (pintr_enabled(vrtc)) + vrtc_set_reg_c(vrtc, vrtc->rtcdev.reg_c | RTCIR_PERIOD); + + if (aintr_enabled(vrtc) || uintr_enabled(vrtc)) { + rtctime = vrtc_curtime(vrtc); + error = vrtc_time_update(vrtc, rtctime); + KASSERT(error == 0, ("%s: vrtc_time_update error %d", + __func__, error)); + } + + freqsbt = vrtc_freq(vrtc); + KASSERT(freqsbt != 0, ("%s: vrtc frequency cannot be zero", __func__)); + vrtc_callout_reset(vrtc, freqsbt); +done: + VRTC_UNLOCK(vrtc); +} + +static __inline void +vrtc_callout_check(struct vrtc *vrtc, sbintime_t freq) +{ + int active; + + active = callout_active(&vrtc->callout) ? 1 : 0; + KASSERT((freq == 0 && !active) || (freq != 0 && active), + ("vrtc callout %s with frequency %#lx", + active ? "active" : "inactive", freq)); +} + +static void +vrtc_set_reg_c(struct vrtc *vrtc, uint8_t newval) +{ + struct rtcdev *rtc; + int oldirqf, newirqf; + uint8_t oldval, changed; + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + rtc = &vrtc->rtcdev; + newval &= RTCIR_ALARM | RTCIR_PERIOD | RTCIR_UPDATE; + + oldirqf = rtc->reg_c & RTCIR_INT; + if ((aintr_enabled(vrtc) && (newval & RTCIR_ALARM) != 0) || + (pintr_enabled(vrtc) && (newval & RTCIR_PERIOD) != 0) || + (uintr_enabled(vrtc) && (newval & RTCIR_UPDATE) != 0)) { + newirqf = RTCIR_INT; + } else { + newirqf = 0; + } + + oldval = rtc->reg_c; + rtc->reg_c = newirqf | newval; + changed = oldval ^ rtc->reg_c; + if (changed) { + VM_CTR2(vrtc->vm, "RTC reg_c changed from %#x to %#x", + oldval, rtc->reg_c); + } + + if (!oldirqf && newirqf) { + VM_CTR1(vrtc->vm, "RTC irq %d asserted", RTC_IRQ); + vatpic_pulse_irq(vrtc->vm, RTC_IRQ); + vioapic_pulse_irq(vrtc->vm, RTC_IRQ); + } else if (oldirqf && !newirqf) { + VM_CTR1(vrtc->vm, "RTC irq %d deasserted", RTC_IRQ); + } +} + +static int +vrtc_set_reg_b(struct vrtc *vrtc, uint8_t newval) +{ + struct rtcdev *rtc; + sbintime_t oldfreq, newfreq; + time_t curtime, rtctime; + int error; + uint8_t oldval, changed; + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + rtc = &vrtc->rtcdev; + oldval = rtc->reg_b; + oldfreq = vrtc_freq(vrtc); + + rtc->reg_b = newval; + changed = oldval ^ newval; + if (changed) { + VM_CTR2(vrtc->vm, "RTC reg_b changed from %#x to %#x", + oldval, newval); + } + + if (changed & RTCSB_HALT) { + if ((newval & RTCSB_HALT) == 0) { + rtctime = rtc_to_secs(vrtc); + if (rtctime == VRTC_BROKEN_TIME) { + /* + * Stop updating the RTC if the date/time + * programmed by the guest is not correct. + */ + VM_CTR0(vrtc->vm, "Invalid RTC date/time " + "programming detected"); + + if (rtc_flag_broken_time) + return (-1); + } + } else { + curtime = vrtc_curtime(vrtc); + KASSERT(curtime == vrtc->base_rtctime, ("%s: mismatch " + "between vrtc basetime (%#lx) and curtime (%#lx)", + __func__, vrtc->base_rtctime, curtime)); + + /* + * Force a refresh of the RTC date/time fields so + * they reflect the time right before the guest set + * the HALT bit. + */ + secs_to_rtc(curtime, vrtc, 1); + + /* + * Updates are halted so mark 'base_rtctime' to denote + * that the RTC date/time is in flux. + */ + rtctime = VRTC_BROKEN_TIME; + rtc->reg_b &= ~RTCSB_UINTR; + } + error = vrtc_time_update(vrtc, rtctime); + KASSERT(error == 0, ("vrtc_time_update error %d", error)); + } + + /* + * Side effect of changes to the interrupt enable bits. + */ + if (changed & RTCSB_ALL_INTRS) + vrtc_set_reg_c(vrtc, vrtc->rtcdev.reg_c); + + /* + * Change the callout frequency if it has changed. + */ + newfreq = vrtc_freq(vrtc); + if (newfreq != oldfreq) + vrtc_callout_reset(vrtc, newfreq); + else + vrtc_callout_check(vrtc, newfreq); + + /* + * The side effect of bits that control the RTC date/time format + * is handled lazily when those fields are actually read. + */ + return (0); +} + +static void +vrtc_set_reg_a(struct vrtc *vrtc, uint8_t newval) +{ + sbintime_t oldfreq, newfreq; + uint8_t oldval, changed; + + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); + + newval &= ~RTCSA_TUP; + oldval = vrtc->rtcdev.reg_a; + oldfreq = vrtc_freq(vrtc); + + if (divider_enabled(oldval) && !divider_enabled(newval)) { + VM_CTR2(vrtc->vm, "RTC divider held in reset at %#lx/%#lx", + vrtc->base_rtctime, vrtc->base_uptime); + } else if (!divider_enabled(oldval) && divider_enabled(newval)) { + /* + * If the dividers are coming out of reset then update + * 'base_uptime' before this happens. This is done to + * maintain the illusion that the RTC date/time was frozen + * while the dividers were disabled. + */ + vrtc->base_uptime = sbinuptime(); + VM_CTR2(vrtc->vm, "RTC divider out of reset at %#lx/%#lx", + vrtc->base_rtctime, vrtc->base_uptime); + } else { + /* NOTHING */ + } + + vrtc->rtcdev.reg_a = newval; + changed = oldval ^ newval; + if (changed) { + VM_CTR2(vrtc->vm, "RTC reg_a changed from %#x to %#x", + oldval, newval); + } + + /* + * Side effect of changes to rate select and divider enable bits. + */ + newfreq = vrtc_freq(vrtc); + if (newfreq != oldfreq) + vrtc_callout_reset(vrtc, newfreq); + else + vrtc_callout_check(vrtc, newfreq); +} + +int +vrtc_set_time(struct vm *vm, time_t secs) +{ + struct vrtc *vrtc; + int error; + + vrtc = vm_rtc(vm); + VRTC_LOCK(vrtc); + error = vrtc_time_update(vrtc, secs); + VRTC_UNLOCK(vrtc); + + if (error) { + VM_CTR2(vrtc->vm, "Error %d setting RTC time to %#lx", error, + secs); + } else { + VM_CTR1(vrtc->vm, "RTC time set to %#lx", secs); + } + + return (error); +} + +time_t +vrtc_get_time(struct vm *vm) +{ + struct vrtc *vrtc; + time_t t; + + vrtc = vm_rtc(vm); + VRTC_LOCK(vrtc); + t = vrtc_curtime(vrtc); + VRTC_UNLOCK(vrtc); + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 22:22:52 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EE769519; Tue, 30 Dec 2014 22:22:51 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7256120C; Tue, 30 Dec 2014 22:22:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUMMpkm098803; Tue, 30 Dec 2014 22:22:51 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUMMl35098781; Tue, 30 Dec 2014 22:22:47 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412302222.sBUMMl35098781@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Tue, 30 Dec 2014 22:22:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276429 - in stable/10: sys/amd64/include sys/amd64/vmm sys/amd64/vmm/intel sys/amd64/vmm/io sys/modules/linux sys/modules/vmm usr.sbin/bhyve X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 22:22:52 -0000 Author: neel Date: Tue Dec 30 22:22:46 2014 New Revision: 276429 URL: https://svnweb.freebsd.org/changeset/base/276429 Log: MFC r273683 Move the ACPI PM timer emulation into vmm.ko. MFC r273706 Change the type of the first argument to the I/O emulation handlers to 'struct vm *'. MFC r273710 Add a comment explaining the intent behind the I/O reservation [0x72-0x77]. MFC r273744 Add foo_genassym.c files to DPSRCS so dependencies for them are generated. This ensures these objects are rebuilt to generate an updated header of assembly constants if needed. MFC r274045 If the start bit, PxCMD.ST, is cleared and nothing is in-flight then PxCI, PxSACT, PxCMD.CCS and PxCMD.CR should be 0. MFC r274076 Improve the ability to cancel an in-flight request by using an interrupt, via SIGCONT, to force the read or write system call to return prematurely. MFC r274330 To allow a request to be submitted from within the callback routine of a completing one increase the total by 1 but don't advertise it. MFC r274931 Change the lower bound for guest vmspace allocation to 0 instead of using the VM_MIN_ADDRESS constant. MFC r275817 For level triggered interrupts clear the PIC IRR bit when the interrupt pin is deasserted. MFC r275850 Fix 8259 IRQ priority resolver. MFC r275952 Various 8259 device model improvements. MFC r275965 Emulate writes to the IA32_MISC_ENABLE MSR. Added: stable/10/sys/amd64/vmm/io/vpmtmr.c - copied, changed from r273683, head/sys/amd64/vmm/io/vpmtmr.c stable/10/sys/amd64/vmm/io/vpmtmr.h - copied, changed from r273683, head/sys/amd64/vmm/io/vpmtmr.h Deleted: stable/10/usr.sbin/bhyve/pmtmr.c Modified: stable/10/sys/amd64/include/vmm.h stable/10/sys/amd64/vmm/intel/vmx_msr.c stable/10/sys/amd64/vmm/io/vatpic.c stable/10/sys/amd64/vmm/io/vatpic.h stable/10/sys/amd64/vmm/io/vatpit.c stable/10/sys/amd64/vmm/io/vatpit.h stable/10/sys/amd64/vmm/vmm.c stable/10/sys/amd64/vmm/vmm_ioport.c stable/10/sys/amd64/vmm/vmm_ioport.h stable/10/sys/modules/linux/Makefile stable/10/sys/modules/vmm/Makefile stable/10/usr.sbin/bhyve/Makefile stable/10/usr.sbin/bhyve/block_if.c stable/10/usr.sbin/bhyve/pci_ahci.c stable/10/usr.sbin/bhyve/rtc.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/include/vmm.h ============================================================================== --- stable/10/sys/amd64/include/vmm.h Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/include/vmm.h Tue Dec 30 22:22:46 2014 (r276429) @@ -285,6 +285,7 @@ int vm_assign_pptdev(struct vm *vm, int int vm_unassign_pptdev(struct vm *vm, int bus, int slot, int func); struct vatpic *vm_atpic(struct vm *vm); struct vatpit *vm_atpit(struct vm *vm); +struct vpmtmr *vm_pmtmr(struct vm *vm); /* * Inject exception 'vme' into the guest vcpu. This function returns 0 on Modified: stable/10/sys/amd64/vmm/intel/vmx_msr.c ============================================================================== --- stable/10/sys/amd64/vmm/intel/vmx_msr.c Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/vmm/intel/vmx_msr.c Tue Dec 30 22:22:46 2014 (r276429) @@ -376,9 +376,31 @@ vmx_rdmsr(struct vmx *vmx, int vcpuid, u int vmx_wrmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t val, bool *retu) { - int error = 0; - + uint64_t changed; + int error; + + error = 0; switch (num) { + case MSR_IA32_MISC_ENABLE: + changed = val ^ misc_enable; + /* + * If the host has disabled the NX feature then the guest + * also cannot use it. However, a Linux guest will try to + * enable the NX feature by writing to the MISC_ENABLE MSR. + * + * This can be safely ignored because the memory management + * code looks at CPUID.80000001H:EDX.NX to check if the + * functionality is actually enabled. + */ + changed &= ~(1UL << 34); + + /* + * Punt to userspace if any other bits are being modified. + */ + if (changed) + error = EINVAL; + + break; default: error = EINVAL; break; Modified: stable/10/sys/amd64/vmm/io/vatpic.c ============================================================================== --- stable/10/sys/amd64/vmm/io/vatpic.c Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/vmm/io/vatpic.c Tue Dec 30 22:22:46 2014 (r276429) @@ -75,7 +75,7 @@ struct atpic { uint8_t mask; /* Interrupt Mask Register (IMR) */ int acnt[8]; /* sum of pin asserts and deasserts */ - int priority; /* current pin priority */ + int lowprio; /* lowest priority irq */ bool intr_raised; }; @@ -102,16 +102,33 @@ struct vatpic { #define VATPIC_CTR4(vatpic, fmt, a1, a2, a3, a4) \ VM_CTR4((vatpic)->vm, fmt, a1, a2, a3, a4) +/* + * Loop over all the pins in priority order from highest to lowest. + */ +#define ATPIC_PIN_FOREACH(pinvar, atpic, tmpvar) \ + for (tmpvar = 0, pinvar = (atpic->lowprio + 1) & 0x7; \ + tmpvar < 8; \ + tmpvar++, pinvar = (pinvar + 1) & 0x7) + static void vatpic_set_pinstate(struct vatpic *vatpic, int pin, bool newstate); +static __inline bool +master_atpic(struct vatpic *vatpic, struct atpic *atpic) +{ + + if (atpic == &vatpic->atpic[0]) + return (true); + else + return (false); +} + static __inline int vatpic_get_highest_isrpin(struct atpic *atpic) { int bit, pin; int i; - for (i = 0; i <= 7; i++) { - pin = ((i + 7 - atpic->priority) & 0x7); + ATPIC_PIN_FOREACH(pin, atpic, i) { bit = (1 << pin); if (atpic->service & bit) @@ -125,8 +142,7 @@ static __inline int vatpic_get_highest_irrpin(struct atpic *atpic) { int serviced; - int bit, pin; - int i, j; + int bit, pin, tmp; /* * In 'Special Fully-Nested Mode' when an interrupt request from @@ -137,17 +153,21 @@ vatpic_get_highest_irrpin(struct atpic * if (atpic->sfn) serviced &= ~(1 << 2); - for (i = 0; i <= 7; i++) { - pin = ((i + 7 - atpic->priority) & 0x7); - bit = (1 << pin); - if (serviced & bit) + ATPIC_PIN_FOREACH(pin, atpic, tmp) { + bit = 1 << pin; + + /* + * If there is already an interrupt in service at the same + * or higher priority then bail. + */ + if ((serviced & bit) != 0) break; - } - for (j = 0; j < i; j++) { - pin = ((j + 7 - atpic->priority) & 0x7); - bit = (1 << pin); - if (atpic->request & bit && (~atpic->mask & bit)) + /* + * If an interrupt is asserted and not masked then return + * the corresponding 'pin' to the caller. + */ + if ((atpic->request & bit) != 0 && (atpic->mask & bit) == 0) return (pin); } @@ -238,8 +258,9 @@ vatpic_icw1(struct vatpic *vatpic, struc atpic->icw_num = 1; atpic->mask = 0; - atpic->priority = 0; + atpic->lowprio = 7; atpic->rd_cmd_reg = 0; + atpic->poll = 0; if ((val & ICW1_SNGL) != 0) { VATPIC_CTR0(vatpic, "vatpic cascade mode required"); @@ -291,6 +312,15 @@ vatpic_icw4(struct vatpic *vatpic, struc if ((val & ICW4_AEOI) != 0) atpic->aeoi = true; + if ((val & ICW4_SFNM) != 0) { + if (master_atpic(vatpic, atpic)) { + atpic->sfn = true; + } else { + VATPIC_CTR1(vatpic, "Ignoring special fully nested " + "mode on slave atpic: %#x", val); + } + } + atpic->icw_num = 0; atpic->ready = true; @@ -329,11 +359,11 @@ vatpic_ocw2(struct vatpic *vatpic, struc atpic->service &= ~(1 << isr_bit); if (atpic->rotate) - atpic->priority = isr_bit; + atpic->lowprio = isr_bit; } } else if ((val & OCW2_SL) != 0 && atpic->rotate == true) { /* specific priority */ - atpic->priority = val & 0x7; + atpic->lowprio = val & 0x7; } return (0); @@ -344,11 +374,17 @@ vatpic_ocw3(struct vatpic *vatpic, struc { VATPIC_CTR1(vatpic, "atpic ocw3 0x%x", val); - atpic->poll = ((val & OCW3_P) != 0); + if (val & OCW3_ESMM) { + VATPIC_CTR0(vatpic, "atpic special mask mode not implemented"); + return (-1); + } if (val & OCW3_RR) { /* read register command */ atpic->rd_cmd_reg = val & OCW3_RIS; + + /* Polling mode */ + atpic->poll = ((val & OCW3_P) != 0); } return (0); @@ -388,6 +424,8 @@ vatpic_set_pinstate(struct vatpic *vatpi } else if (oldcnt == 1 && newcnt == 0) { /* falling edge */ VATPIC_CTR1(vatpic, "atpic pin%d: deasserted", pin); + if (level) + atpic->request &= ~(1 << (pin & 0x7)); } else { VATPIC_CTR3(vatpic, "atpic pin%d: %s, ignored, acnt %d", pin, newstate ? "asserted" : "deasserted", newcnt); @@ -528,7 +566,7 @@ vatpic_pin_accepted(struct atpic *atpic, if (atpic->aeoi == true) { if (atpic->rotate == true) - atpic->priority = pin; + atpic->lowprio = pin; } else { atpic->service |= (1 << pin); } @@ -566,12 +604,19 @@ static int vatpic_read(struct vatpic *vatpic, struct atpic *atpic, bool in, int port, int bytes, uint32_t *eax) { + int pin; + VATPIC_LOCK(vatpic); if (atpic->poll) { - VATPIC_CTR0(vatpic, "vatpic polled mode not supported"); - VATPIC_UNLOCK(vatpic); - return (-1); + atpic->poll = 0; + pin = vatpic_get_highest_irrpin(atpic); + if (pin >= 0) { + vatpic_pin_accepted(atpic, pin); + *eax = 0x80 | pin; + } else { + *eax = 0; + } } else { if (port & ICU_IMR_OFFSET) { /* read interrrupt mask register */ @@ -641,7 +686,7 @@ vatpic_write(struct vatpic *vatpic, stru } int -vatpic_master_handler(void *vm, int vcpuid, bool in, int port, int bytes, +vatpic_master_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *eax) { struct vatpic *vatpic; @@ -661,7 +706,7 @@ vatpic_master_handler(void *vm, int vcpu } int -vatpic_slave_handler(void *vm, int vcpuid, bool in, int port, int bytes, +vatpic_slave_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *eax) { struct vatpic *vatpic; @@ -681,7 +726,7 @@ vatpic_slave_handler(void *vm, int vcpui } int -vatpic_elc_handler(void *vm, int vcpuid, bool in, int port, int bytes, +vatpic_elc_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *eax) { struct vatpic *vatpic; Modified: stable/10/sys/amd64/vmm/io/vatpic.h ============================================================================== --- stable/10/sys/amd64/vmm/io/vatpic.h Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/vmm/io/vatpic.h Tue Dec 30 22:22:46 2014 (r276429) @@ -39,11 +39,11 @@ struct vatpic *vatpic_init(struct vm *vm); void vatpic_cleanup(struct vatpic *vatpic); -int vatpic_master_handler(void *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *eax); -int vatpic_slave_handler(void *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *eax); -int vatpic_elc_handler(void *vm, int vcpuid, bool in, int port, int bytes, +int vatpic_master_handler(struct vm *vm, int vcpuid, bool in, int port, + int bytes, uint32_t *eax); +int vatpic_slave_handler(struct vm *vm, int vcpuid, bool in, int port, + int bytes, uint32_t *eax); +int vatpic_elc_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *eax); int vatpic_assert_irq(struct vm *vm, int irq); Modified: stable/10/sys/amd64/vmm/io/vatpit.c ============================================================================== --- stable/10/sys/amd64/vmm/io/vatpit.c Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/vmm/io/vatpit.c Tue Dec 30 22:22:46 2014 (r276429) @@ -317,7 +317,7 @@ vatpit_update_mode(struct vatpit *vatpit } int -vatpit_handler(void *vm, int vcpuid, bool in, int port, int bytes, +vatpit_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *eax) { struct vatpit *vatpit; @@ -400,7 +400,7 @@ vatpit_handler(void *vm, int vcpuid, boo } int -vatpit_nmisc_handler(void *vm, int vcpuid, bool in, int port, int bytes, +vatpit_nmisc_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *eax) { struct vatpit *vatpit; Modified: stable/10/sys/amd64/vmm/io/vatpit.h ============================================================================== --- stable/10/sys/amd64/vmm/io/vatpit.h Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/vmm/io/vatpit.h Tue Dec 30 22:22:46 2014 (r276429) @@ -37,9 +37,9 @@ struct vatpit *vatpit_init(struct vm *vm); void vatpit_cleanup(struct vatpit *vatpit); -int vatpit_handler(void *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *eax); -int vatpit_nmisc_handler(void *vm, int vcpuid, bool in, int port, int bytes, +int vatpit_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *eax); +int vatpit_nmisc_handler(struct vm *vm, int vcpuid, bool in, int port, + int bytes, uint32_t *eax); #endif /* _VATPIT_H_ */ Copied and modified: stable/10/sys/amd64/vmm/io/vpmtmr.c (from r273683, head/sys/amd64/vmm/io/vpmtmr.c) ============================================================================== --- head/sys/amd64/vmm/io/vpmtmr.c Sun Oct 26 04:44:28 2014 (r273683, copy source) +++ stable/10/sys/amd64/vmm/io/vpmtmr.c Tue Dec 30 22:22:46 2014 (r276429) @@ -79,7 +79,7 @@ vpmtmr_cleanup(struct vpmtmr *vpmtmr) } int -vpmtmr_handler(void *vm, int vcpuid, bool in, int port, int bytes, +vpmtmr_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *val) { struct vpmtmr *vpmtmr; Copied and modified: stable/10/sys/amd64/vmm/io/vpmtmr.h (from r273683, head/sys/amd64/vmm/io/vpmtmr.h) ============================================================================== --- head/sys/amd64/vmm/io/vpmtmr.h Sun Oct 26 04:44:28 2014 (r273683, copy source) +++ stable/10/sys/amd64/vmm/io/vpmtmr.h Tue Dec 30 22:22:46 2014 (r276429) @@ -36,7 +36,7 @@ struct vpmtmr; struct vpmtmr *vpmtmr_init(struct vm *vm); void vpmtmr_cleanup(struct vpmtmr *pmtmr); -int vpmtmr_handler(void *vm, int vcpuid, bool in, int port, int bytes, +int vpmtmr_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *val); #endif Modified: stable/10/sys/amd64/vmm/vmm.c ============================================================================== --- stable/10/sys/amd64/vmm/vmm.c Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/vmm/vmm.c Tue Dec 30 22:22:46 2014 (r276429) @@ -74,6 +74,7 @@ __FBSDID("$FreeBSD$"); #include "vhpet.h" #include "vioapic.h" #include "vlapic.h" +#include "vpmtmr.h" #include "vmm_ipi.h" #include "vmm_stat.h" #include "vmm_lapic.h" @@ -134,6 +135,7 @@ struct vm { struct vioapic *vioapic; /* (i) virtual ioapic */ struct vatpic *vatpic; /* (i) virtual atpic */ struct vatpit *vatpit; /* (i) virtual atpit */ + struct vpmtmr *vpmtmr; /* (i) virtual ACPI PM timer */ volatile cpuset_t active_cpus; /* (i) active vcpus */ int suspend; /* (i) stop VM execution */ volatile cpuset_t suspended_cpus; /* (i) suspended vcpus */ @@ -373,6 +375,7 @@ vm_init(struct vm *vm, bool create) vm->vhpet = vhpet_init(vm); vm->vatpic = vatpic_init(vm); vm->vatpit = vatpit_init(vm); + vm->vpmtmr = vpmtmr_init(vm); CPU_ZERO(&vm->active_cpus); @@ -399,7 +402,7 @@ vm_create(const char *name, struct vm ** if (name == NULL || strlen(name) >= VM_MAX_NAMELEN) return (EINVAL); - vmspace = VMSPACE_ALLOC(VM_MIN_ADDRESS, VM_MAXUSER_ADDRESS); + vmspace = VMSPACE_ALLOC(0, VM_MAXUSER_ADDRESS); if (vmspace == NULL) return (ENOMEM); @@ -435,6 +438,7 @@ vm_cleanup(struct vm *vm, bool destroy) if (vm->iommu != NULL) iommu_destroy_domain(vm->iommu); + vpmtmr_cleanup(vm->vpmtmr); vatpit_cleanup(vm->vatpit); vhpet_cleanup(vm->vhpet); vatpic_cleanup(vm->vatpic); @@ -2212,6 +2216,13 @@ vm_atpit(struct vm *vm) return (vm->vatpit); } +struct vpmtmr * +vm_pmtmr(struct vm *vm) +{ + + return (vm->vpmtmr); +} + enum vm_reg_name vm_segment_name(int seg) { Modified: stable/10/sys/amd64/vmm/vmm_ioport.c ============================================================================== --- stable/10/sys/amd64/vmm/vmm_ioport.c Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/vmm/vmm_ioport.c Tue Dec 30 22:22:46 2014 (r276429) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include "vatpic.h" #include "vatpit.h" +#include "vpmtmr.h" #include "vmm_ioport.h" #include "vmm_ktr.h" @@ -58,6 +59,7 @@ ioport_handler_func_t ioport_handler[MAX [IO_ICU2 + ICU_IMR_OFFSET] = vatpic_slave_handler, [IO_ELCR1] = vatpic_elc_handler, [IO_ELCR2] = vatpic_elc_handler, + [IO_PMTMR] = vpmtmr_handler, }; #ifdef KTR Modified: stable/10/sys/amd64/vmm/vmm_ioport.h ============================================================================== --- stable/10/sys/amd64/vmm/vmm_ioport.h Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/amd64/vmm/vmm_ioport.h Tue Dec 30 22:22:46 2014 (r276429) @@ -29,7 +29,7 @@ #ifndef _VMM_IOPORT_H_ #define _VMM_IOPORT_H_ -typedef int (*ioport_handler_func_t)(void *vm, int vcpuid, +typedef int (*ioport_handler_func_t)(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *val); int vm_handle_inout(struct vm *vm, int vcpuid, struct vm_exit *vme, bool *retu); Modified: stable/10/sys/modules/linux/Makefile ============================================================================== --- stable/10/sys/modules/linux/Makefile Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/modules/linux/Makefile Tue Dec 30 22:22:46 2014 (r276429) @@ -16,6 +16,7 @@ SRCS= linux_fork.c linux${SFX}_dummy.c l linux_timer.c \ opt_inet6.h opt_compat.h opt_kdtrace.h opt_posix.h opt_usb.h \ vnode_if.h device_if.h bus_if.h assym.s +DPSRCS= linux${SFX}_genassym.c # XXX: for assym.s SRCS+= opt_kstack_pages.h opt_nfs.h opt_compat.h opt_hwpmc_hooks.h Modified: stable/10/sys/modules/vmm/Makefile ============================================================================== --- stable/10/sys/modules/vmm/Makefile Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/sys/modules/vmm/Makefile Tue Dec 30 22:22:46 2014 (r276429) @@ -4,6 +4,7 @@ KMOD= vmm SRCS= opt_acpi.h opt_ddb.h device_if.h bus_if.h pci_if.h SRCS+= vmx_assym.h svm_assym.h +DPSRCS= vmx_genassym.c svm_genassym.c CFLAGS+= -DVMM_KEEP_STATS -DSMP CFLAGS+= -I${.CURDIR}/../../amd64/vmm @@ -33,7 +34,8 @@ SRCS+= iommu.c \ vatpit.c \ vhpet.c \ vioapic.c \ - vlapic.c + vlapic.c \ + vpmtmr.c # intel-specific files .PATH: ${.CURDIR}/../../amd64/vmm/intel @@ -52,7 +54,7 @@ SRCS+= vmcb.c \ npt.c \ amdv.c \ svm_msr.c - + CLEANFILES= vmx_assym.h vmx_genassym.o svm_assym.h svm_genassym.o vmx_assym.h: vmx_genassym.o Modified: stable/10/usr.sbin/bhyve/Makefile ============================================================================== --- stable/10/usr.sbin/bhyve/Makefile Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/usr.sbin/bhyve/Makefile Tue Dec 30 22:22:46 2014 (r276429) @@ -31,7 +31,6 @@ SRCS= \ pci_virtio_rnd.c \ pci_uart.c \ pm.c \ - pmtmr.c \ post.c \ rtc.c \ smbiostbl.c \ Modified: stable/10/usr.sbin/bhyve/block_if.c ============================================================================== --- stable/10/usr.sbin/bhyve/block_if.c Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/usr.sbin/bhyve/block_if.c Tue Dec 30 22:22:46 2014 (r276429) @@ -43,14 +43,18 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include + #include "bhyverun.h" +#include "mevent.h" #include "block_if.h" #define BLOCKIF_SIG 0xb109b109 -#define BLOCKIF_MAXREQ 32 +#define BLOCKIF_MAXREQ 33 enum blockop { BOP_READ, @@ -60,7 +64,9 @@ enum blockop { enum blockstat { BST_FREE, - BST_INUSE + BST_PEND, + BST_BUSY, + BST_DONE }; struct blockif_elem { @@ -68,6 +74,7 @@ struct blockif_elem { struct blockif_req *be_req; enum blockop be_op; enum blockstat be_status; + pthread_t be_tid; }; struct blockif_ctxt { @@ -81,13 +88,25 @@ struct blockif_ctxt { pthread_cond_t bc_cond; int bc_closing; - /* Request elements and free/inuse queues */ + /* Request elements and free/pending/busy queues */ TAILQ_HEAD(, blockif_elem) bc_freeq; - TAILQ_HEAD(, blockif_elem) bc_inuseq; + TAILQ_HEAD(, blockif_elem) bc_pendq; + TAILQ_HEAD(, blockif_elem) bc_busyq; u_int bc_req_count; struct blockif_elem bc_reqs[BLOCKIF_MAXREQ]; }; +static pthread_once_t blockif_once = PTHREAD_ONCE_INIT; + +struct blockif_sig_elem { + pthread_mutex_t bse_mtx; + pthread_cond_t bse_cond; + int bse_pending; + struct blockif_sig_elem *bse_next; +}; + +static struct blockif_sig_elem *blockif_bse_head; + static int blockif_enqueue(struct blockif_ctxt *bc, struct blockif_req *breq, enum blockop op) @@ -101,10 +120,10 @@ blockif_enqueue(struct blockif_ctxt *bc, assert(be->be_status == BST_FREE); TAILQ_REMOVE(&bc->bc_freeq, be, be_link); - be->be_status = BST_INUSE; + be->be_status = BST_PEND; be->be_req = breq; be->be_op = op; - TAILQ_INSERT_TAIL(&bc->bc_inuseq, be, be_link); + TAILQ_INSERT_TAIL(&bc->bc_pendq, be, be_link); bc->bc_req_count++; @@ -112,26 +131,38 @@ blockif_enqueue(struct blockif_ctxt *bc, } static int -blockif_dequeue(struct blockif_ctxt *bc, struct blockif_elem *el) +blockif_dequeue(struct blockif_ctxt *bc, struct blockif_elem **bep) { struct blockif_elem *be; if (bc->bc_req_count == 0) return (ENOENT); - be = TAILQ_FIRST(&bc->bc_inuseq); + be = TAILQ_FIRST(&bc->bc_pendq); assert(be != NULL); - assert(be->be_status == BST_INUSE); - *el = *be; + assert(be->be_status == BST_PEND); + TAILQ_REMOVE(&bc->bc_pendq, be, be_link); + be->be_status = BST_BUSY; + be->be_tid = bc->bc_btid; + TAILQ_INSERT_TAIL(&bc->bc_busyq, be, be_link); + + *bep = be; - TAILQ_REMOVE(&bc->bc_inuseq, be, be_link); + return (0); +} + +static void +blockif_complete(struct blockif_ctxt *bc, struct blockif_elem *be) +{ + assert(be->be_status == BST_DONE); + + TAILQ_REMOVE(&bc->bc_busyq, be, be_link); + be->be_tid = 0; be->be_status = BST_FREE; be->be_req = NULL; TAILQ_INSERT_TAIL(&bc->bc_freeq, be, be_link); - - bc->bc_req_count--; - return (0); + bc->bc_req_count--; } static void @@ -163,6 +194,8 @@ blockif_proc(struct blockif_ctxt *bc, st break; } + be->be_status = BST_DONE; + (*br->br_callback)(br, err); } @@ -170,16 +203,17 @@ static void * blockif_thr(void *arg) { struct blockif_ctxt *bc; - struct blockif_elem req; + struct blockif_elem *be; bc = arg; for (;;) { pthread_mutex_lock(&bc->bc_mtx); - while (!blockif_dequeue(bc, &req)) { + while (!blockif_dequeue(bc, &be)) { pthread_mutex_unlock(&bc->bc_mtx); - blockif_proc(bc, &req); + blockif_proc(bc, be); pthread_mutex_lock(&bc->bc_mtx); + blockif_complete(bc, be); } pthread_cond_wait(&bc->bc_cond, &bc->bc_mtx); pthread_mutex_unlock(&bc->bc_mtx); @@ -195,6 +229,38 @@ blockif_thr(void *arg) return (NULL); } +static void +blockif_sigcont_handler(int signal, enum ev_type type, void *arg) +{ + struct blockif_sig_elem *bse; + + for (;;) { + /* + * Process the entire list even if not intended for + * this thread. + */ + do { + bse = blockif_bse_head; + if (bse == NULL) + return; + } while (!atomic_cmpset_ptr((uintptr_t *)&blockif_bse_head, + (uintptr_t)bse, + (uintptr_t)bse->bse_next)); + + pthread_mutex_lock(&bse->bse_mtx); + bse->bse_pending = 0; + pthread_cond_signal(&bse->bse_cond); + pthread_mutex_unlock(&bse->bse_mtx); + } +} + +static void +blockif_init(void) +{ + mevent_add(SIGCONT, EVF_SIGNAL, blockif_sigcont_handler, NULL); + (void) signal(SIGCONT, SIG_IGN); +} + struct blockif_ctxt * blockif_open(const char *optstr, const char *ident) { @@ -206,6 +272,8 @@ blockif_open(const char *optstr, const c int extra, fd, i, sectsz; int nocache, sync, ro; + pthread_once(&blockif_once, blockif_init); + nocache = 0; sync = 0; ro = 0; @@ -280,7 +348,8 @@ blockif_open(const char *optstr, const c pthread_mutex_init(&bc->bc_mtx, NULL); pthread_cond_init(&bc->bc_cond, NULL); TAILQ_INIT(&bc->bc_freeq); - TAILQ_INIT(&bc->bc_inuseq); + TAILQ_INIT(&bc->bc_pendq); + TAILQ_INIT(&bc->bc_busyq); bc->bc_req_count = 0; for (i = 0; i < BLOCKIF_MAXREQ; i++) { bc->bc_reqs[i].be_status = BST_FREE; @@ -357,23 +426,76 @@ blockif_cancel(struct blockif_ctxt *bc, assert(bc->bc_magic == BLOCKIF_SIG); pthread_mutex_lock(&bc->bc_mtx); - TAILQ_FOREACH(be, &bc->bc_inuseq, be_link) { + /* + * Check pending requests. + */ + TAILQ_FOREACH(be, &bc->bc_pendq, be_link) { + if (be->be_req == breq) + break; + } + if (be != NULL) { + /* + * Found it. + */ + TAILQ_REMOVE(&bc->bc_pendq, be, be_link); + be->be_status = BST_FREE; + be->be_req = NULL; + TAILQ_INSERT_TAIL(&bc->bc_freeq, be, be_link); + bc->bc_req_count--; + pthread_mutex_unlock(&bc->bc_mtx); + + return (0); + } + + /* + * Check in-flight requests. + */ + TAILQ_FOREACH(be, &bc->bc_busyq, be_link) { if (be->be_req == breq) break; } if (be == NULL) { + /* + * Didn't find it. + */ pthread_mutex_unlock(&bc->bc_mtx); return (EINVAL); } - TAILQ_REMOVE(&bc->bc_inuseq, be, be_link); - be->be_status = BST_FREE; - be->be_req = NULL; - TAILQ_INSERT_TAIL(&bc->bc_freeq, be, be_link); - bc->bc_req_count--; + /* + * Interrupt the processing thread to force it return + * prematurely via it's normal callback path. + */ + while (be->be_status == BST_BUSY) { + struct blockif_sig_elem bse, *old_head; + + pthread_mutex_init(&bse.bse_mtx, NULL); + pthread_cond_init(&bse.bse_cond, NULL); + + bse.bse_pending = 1; + + do { + old_head = blockif_bse_head; + bse.bse_next = old_head; + } while (!atomic_cmpset_ptr((uintptr_t *)&blockif_bse_head, + (uintptr_t)old_head, + (uintptr_t)&bse)); + + pthread_kill(be->be_tid, SIGCONT); + + pthread_mutex_lock(&bse.bse_mtx); + while (bse.bse_pending) + pthread_cond_wait(&bse.bse_cond, &bse.bse_mtx); + pthread_mutex_unlock(&bse.bse_mtx); + } + pthread_mutex_unlock(&bc->bc_mtx); - return (0); + /* + * The processing thread has been interrupted. Since it's not + * clear if the callback has been invoked yet, return EBUSY. + */ + return (EBUSY); } int @@ -478,7 +600,7 @@ blockif_queuesz(struct blockif_ctxt *bc) { assert(bc->bc_magic == BLOCKIF_SIG); - return (BLOCKIF_MAXREQ); + return (BLOCKIF_MAXREQ - 1); } int Modified: stable/10/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- stable/10/usr.sbin/bhyve/pci_ahci.c Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/usr.sbin/bhyve/pci_ahci.c Tue Dec 30 22:22:46 2014 (r276429) @@ -367,11 +367,15 @@ ahci_check_stopped(struct ahci_port *p) { /* * If we are no longer processing the command list and nothing - * is in-flight, clear the running bit. + * is in-flight, clear the running bit, the current command + * slot, the command issue and active bits. */ if (!(p->cmd & AHCI_P_CMD_ST)) { - if (p->pending == 0) + if (p->pending == 0) { p->cmd &= ~(AHCI_P_CMD_CR | AHCI_P_CMD_CCS_MASK); + p->ci = 0; + p->sact = 0; + } } } Modified: stable/10/usr.sbin/bhyve/rtc.c ============================================================================== --- stable/10/usr.sbin/bhyve/rtc.c Tue Dec 30 22:19:34 2014 (r276428) +++ stable/10/usr.sbin/bhyve/rtc.c Tue Dec 30 22:22:46 2014 (r276429) @@ -375,4 +375,8 @@ rtc_dsdt(void) } LPC_DSDT(rtc_dsdt); +/* + * Reserve the extended RTC I/O ports although they are not emulated at this + * time. + */ SYSRES_IO(0x72, 6); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 22:32:30 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 561036E7; Tue, 30 Dec 2014 22:32:30 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 424E6138E; Tue, 30 Dec 2014 22:32:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUMWUKu003606; Tue, 30 Dec 2014 22:32:30 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUMWUWA003605; Tue, 30 Dec 2014 22:32:30 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201412302232.sBUMWUWA003605@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Tue, 30 Dec 2014 22:32:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276430 - head/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 22:32:30 -0000 Author: ngie Date: Tue Dec 30 22:32:29 2014 New Revision: 276430 URL: https://svnweb.freebsd.org/changeset/base/276430 Log: Expect access_test:access_inval to fail before __FreeBSD_version == 1100033 This will allow me to MFC the test, as jilles@ requested that I don't MFC the access(2) KBI change to 10-STABLE in r271655 Modified: head/contrib/netbsd-tests/lib/libc/sys/t_access.c Modified: head/contrib/netbsd-tests/lib/libc/sys/t_access.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/sys/t_access.c Tue Dec 30 22:22:46 2014 (r276429) +++ head/contrib/netbsd-tests/lib/libc/sys/t_access.c Tue Dec 30 22:32:29 2014 (r276430) @@ -41,6 +41,7 @@ __RCSID("$NetBSD: t_access.c,v 1.1 2011/ #include #ifdef __FreeBSD__ +#include #include #endif @@ -116,6 +117,10 @@ ATF_TC_HEAD(access_inval, tc) ATF_TC_BODY(access_inval, tc) { +#if defined(__FreeBSD__) && __FreeBSD_version < 1100033 + atf_tc_expect_fail("arguments to access aren't validated; see " + "bug # 181155 for more details"); +#endif errno = 0; ATF_REQUIRE(access("/usr", -1) != 0); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 22:41:54 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1792F8A0; Tue, 30 Dec 2014 22:41:54 +0000 (UTC) Received: from mail-wg0-x22b.google.com (mail-wg0-x22b.google.com [IPv6:2a00:1450:400c:c00::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AC01C1518; Tue, 30 Dec 2014 22:41:53 +0000 (UTC) Received: by mail-wg0-f43.google.com with SMTP id k14so3471700wgh.30; Tue, 30 Dec 2014 14:41:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=kj6WXzEf3nFFY0nIeZilQzFKIRTLNPqMmhCWOZjnaTs=; b=LIs91Phhci00wA6mcy71gKpZsTfK5GPpUvBskC5nKtyH1Q3XpHTOv2emHi4vbZPX8q w3YAwnDrhYkHeDRW4mqdIOEJjmkj1EQnJ94DksiBqARGxW6SC4Ozn1eTLtjEwQ/zSc/5 tCFkdYyY6RWoSsFiQWv0slebSR1fMNGQODwdQLTfJE1gR+bXXSeMC14Fl4wxxmnSr22P exBdjPiUgC2lw0aK4USTYGWxTiA0ufkD3BzickAhmLJQbPZ5AhFR04m19kiQjnY1SexS qW+LzIO9mLG+oWGTWx1gDxl9NW4rRPr97x/eVBlNIdFLJOBEmwgpzommuPCCUJF7FRa6 XRmw== X-Received: by 10.180.205.163 with SMTP id lh3mr111715921wic.63.1419979311637; Tue, 30 Dec 2014 14:41:51 -0800 (PST) Received: from dft-labs.eu (n1x0n-1-pt.tunnel.tserv5.lon1.ipv6.he.net. [2001:470:1f08:1f7::2]) by mx.google.com with ESMTPSA id fp2sm42438771wib.8.2014.12.30.14.41.50 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 30 Dec 2014 14:41:50 -0800 (PST) Date: Tue, 30 Dec 2014 23:41:48 +0100 From: Mateusz Guzik To: Gleb Smirnoff Subject: Re: svn commit: r276341 - head/sys/kern Message-ID: <20141230224148.GB27329@dft-labs.eu> References: <201412281924.sBSJO284028980@svn.freebsd.org> <20141230200601.GF15484@FreeBSD.org> <20141230202226.GA27329@dft-labs.eu> <20141230221243.GH15484@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20141230221243.GH15484@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 22:41:54 -0000 On Wed, Dec 31, 2014 at 01:12:43AM +0300, Gleb Smirnoff wrote: > On Tue, Dec 30, 2014 at 09:22:27PM +0100, Mateusz Guzik wrote: > M> On Tue, Dec 30, 2014 at 11:06:01PM +0300, Gleb Smirnoff wrote: > M> > On Sun, Dec 28, 2014 at 07:24:02PM +0000, Mateusz Guzik wrote: > M> > M> Author: mjg > M> > M> Date: Sun Dec 28 19:24:01 2014 > M> > M> New Revision: 276341 > M> > M> URL: https://svnweb.freebsd.org/changeset/base/276341 > M> > M> > M> > M> Log: > M> > M> sysctl: don't modify oid_running for static nodes > M> > M> > M> > M> It is necessary to prevent nodes from being destroyed while used, but static > M> > M> ones cannot be destroyed. > M> > > M> > What about nodes that go away on kernel module unload? Not sure > M> > they were protected properly before your commit, though :) > M> > > M> > M> They are not static. > > I don't see how they can get CTLFLAG_DYN. Look for any (un)loadable > modules as an example, e.g. aio(4) implemented in vfs_aio.c. How its > sysctls get CTLFLAG_DYN? > Bugger. Turns out indeed one can sysctl_register_oid and then it does not have the flag. What's more, one can unregister it in similar way which completely ignores oid_running anyway. As such, yes, there is a bug but my changes don't affect it. Maybe I'll try to fix it later with a proven hack (a macro which expands to 0 at kernel compile time and to _DYN during module build). -- Mateusz Guzik From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 22:46:31 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 36307B13; Tue, 30 Dec 2014 22:46:31 +0000 (UTC) Received: from mx1.sbone.de (bird.sbone.de [46.4.1.90]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 618811572; Tue, 30 Dec 2014 22:46:30 +0000 (UTC) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id AA6F625D388C; Tue, 30 Dec 2014 22:46:20 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id B08B5C7709C; Tue, 30 Dec 2014 22:46:19 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id 2y25BAHTOcgu; Tue, 30 Dec 2014 22:46:17 +0000 (UTC) Received: from [IPv6:fde9:577b:c1a9:4410:dbd:a00d:7703:7346] (unknown [IPv6:fde9:577b:c1a9:4410:dbd:a00d:7703:7346]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id F17AEC7706F; Tue, 30 Dec 2014 22:46:16 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Subject: Re: svn commit: r276424 - head/sys/kern From: "Bjoern A. Zeeb" In-Reply-To: <201412302140.sBULek5f076019@svn.freebsd.org> Date: Tue, 30 Dec 2014 22:45:43 +0000 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201412302140.sBULek5f076019@svn.freebsd.org> To: Mateusz Guzik X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 22:46:31 -0000 > On 30 Dec 2014, at 21:40 , Mateusz Guzik wrote: >=20 > Author: mjg > Date: Tue Dec 30 21:40:45 2014 > New Revision: 276424 > URL: https://svnweb.freebsd.org/changeset/base/276424 >=20 > Log: > Convert vfs hash lock from a mutex to an rwlock. This is very obvious from the change. What is not and should be described as well is some of this: - Why? - What are the benefits? - What are the locking implications? - Does it make a performance difference? If yes, was it measured? - =E2=80=A6 (you got the idea) >=20 > Modified: > head/sys/kern/vfs_hash.c >=20 > Modified: head/sys/kern/vfs_hash.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/kern/vfs_hash.c Tue Dec 30 20:46:01 2014 = (r276423) > +++ head/sys/kern/vfs_hash.c Tue Dec 30 21:40:45 2014 = (r276424) > @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > +#include > #include >=20 > static MALLOC_DEFINE(M_VFS_HASH, "vfs_hash", "VFS hash table"); > @@ -40,14 +41,14 @@ static MALLOC_DEFINE(M_VFS_HASH, "vfs_ha > static LIST_HEAD(vfs_hash_head, vnode) *vfs_hash_tbl; > static LIST_HEAD(,vnode) vfs_hash_side; > static u_long vfs_hash_mask; > -static struct mtx vfs_hash_mtx; > +static struct rwlock vfs_hash_lock; >=20 > static void > vfs_hashinit(void *dummy __unused) > { >=20 > vfs_hash_tbl =3D hashinit(desiredvnodes, M_VFS_HASH, = &vfs_hash_mask); > - mtx_init(&vfs_hash_mtx, "vfs hash", NULL, MTX_DEF); > + rw_init(&vfs_hash_lock, "vfs hash"); > LIST_INIT(&vfs_hash_side); > } >=20 > @@ -75,7 +76,7 @@ vfs_hash_get(const struct mount *mp, u_i > int error; >=20 > while (1) { > - mtx_lock(&vfs_hash_mtx); > + rw_rlock(&vfs_hash_lock); > LIST_FOREACH(vp, vfs_hash_bucket(mp, hash), v_hashlist) = { > if (vp->v_hash !=3D hash) > continue; > @@ -84,7 +85,7 @@ vfs_hash_get(const struct mount *mp, u_i > if (fn !=3D NULL && fn(vp, arg)) > continue; > VI_LOCK(vp); > - mtx_unlock(&vfs_hash_mtx); > + rw_runlock(&vfs_hash_lock); > error =3D vget(vp, flags | LK_INTERLOCK, td); > if (error =3D=3D ENOENT && (flags & LK_NOWAIT) = =3D=3D 0) > break; > @@ -94,7 +95,7 @@ vfs_hash_get(const struct mount *mp, u_i > return (0); > } > if (vp =3D=3D NULL) { > - mtx_unlock(&vfs_hash_mtx); > + rw_runlock(&vfs_hash_lock); > *vpp =3D NULL; > return (0); > } > @@ -105,9 +106,9 @@ void > vfs_hash_remove(struct vnode *vp) > { >=20 > - mtx_lock(&vfs_hash_mtx); > + rw_wlock(&vfs_hash_lock); > LIST_REMOVE(vp, v_hashlist); > - mtx_unlock(&vfs_hash_mtx); > + rw_wunlock(&vfs_hash_lock); > } >=20 > int > @@ -118,7 +119,7 @@ vfs_hash_insert(struct vnode *vp, u_int=20 >=20 > *vpp =3D NULL; > while (1) { > - mtx_lock(&vfs_hash_mtx); > + rw_wlock(&vfs_hash_lock); > LIST_FOREACH(vp2, > vfs_hash_bucket(vp->v_mount, hash), v_hashlist) { > if (vp2->v_hash !=3D hash) > @@ -128,13 +129,13 @@ vfs_hash_insert(struct vnode *vp, u_int=20 > if (fn !=3D NULL && fn(vp2, arg)) > continue; > VI_LOCK(vp2); > - mtx_unlock(&vfs_hash_mtx); > + rw_wunlock(&vfs_hash_lock); > error =3D vget(vp2, flags | LK_INTERLOCK, td); > if (error =3D=3D ENOENT && (flags & LK_NOWAIT) = =3D=3D 0) > break; > - mtx_lock(&vfs_hash_mtx); > + rw_wlock(&vfs_hash_lock); > LIST_INSERT_HEAD(&vfs_hash_side, vp, = v_hashlist); > - mtx_unlock(&vfs_hash_mtx); > + rw_wunlock(&vfs_hash_lock); > vput(vp); > if (!error) > *vpp =3D vp2; > @@ -146,7 +147,7 @@ vfs_hash_insert(struct vnode *vp, u_int=20 > } > vp->v_hash =3D hash; > LIST_INSERT_HEAD(vfs_hash_bucket(vp->v_mount, hash), vp, = v_hashlist); > - mtx_unlock(&vfs_hash_mtx); > + rw_wunlock(&vfs_hash_lock); > return (0); > } >=20 > @@ -154,9 +155,9 @@ void > vfs_hash_rehash(struct vnode *vp, u_int hash) > { >=20 > - mtx_lock(&vfs_hash_mtx); > + rw_wlock(&vfs_hash_lock); > LIST_REMOVE(vp, v_hashlist); > LIST_INSERT_HEAD(vfs_hash_bucket(vp->v_mount, hash), vp, = v_hashlist); > vp->v_hash =3D hash; > - mtx_unlock(&vfs_hash_mtx); > + rw_wunlock(&vfs_hash_lock); > } >=20 =E2=80=94=20 Bjoern A. Zeeb Charles Haddon Spurgeon: "Friendship is one of the sweetest joys of life. Many might have failed beneath the bitterness of their trial had they not found a friend." From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 23:38:33 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 03B5B319; Tue, 30 Dec 2014 23:38:33 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E46293CC9; Tue, 30 Dec 2014 23:38:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUNcWqr032730; Tue, 30 Dec 2014 23:38:32 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUNcW97032729; Tue, 30 Dec 2014 23:38:32 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412302338.sBUNcW97032729@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Tue, 30 Dec 2014 23:38:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276432 - head/sys/amd64/vmm/amd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 23:38:33 -0000 Author: neel Date: Tue Dec 30 23:38:31 2014 New Revision: 276432 URL: https://svnweb.freebsd.org/changeset/base/276432 Log: Initialize all fields of 'struct vm_exception exception' before passing it to vm_inject_exception(). This fixes the issue that 'exception.cpuid' is uninitialized when calling 'vm_inject_exception()'. However, in practice this change is a no-op because vm_inject_exception() does not use 'exception.cpuid' for anything. Reported by: Coverity Scan CID: 1261297 MFC after: 3 days Modified: head/sys/amd64/vmm/amd/svm.c Modified: head/sys/amd64/vmm/amd/svm.c ============================================================================== --- head/sys/amd64/vmm/amd/svm.c Tue Dec 30 22:46:20 2014 (r276431) +++ head/sys/amd64/vmm/amd/svm.c Tue Dec 30 23:38:31 2014 (r276432) @@ -1322,9 +1322,12 @@ svm_vmexit(struct svm_softc *svm_sc, int if (reflect) { /* Reflect the exception back into the guest */ + bzero(&exception, sizeof(struct vm_exception)); exception.vector = idtvec; - exception.error_code_valid = errcode_valid; - exception.error_code = errcode_valid ? info1 : 0; + if (errcode_valid) { + exception.error_code = info1; + exception.error_code_valid = 1; + } VCPU_CTR2(svm_sc->vm, vcpu, "Reflecting exception " "%d/%#x into the guest", exception.vector, exception.error_code); From owner-svn-src-all@FreeBSD.ORG Tue Dec 30 23:52:50 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8C57E685; Tue, 30 Dec 2014 23:52:50 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6D9F83FF3; Tue, 30 Dec 2014 23:52:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUNqo0U041746; Tue, 30 Dec 2014 23:52:50 GMT (envelope-from peterj@FreeBSD.org) Received: (from peterj@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUNqo3F041744; Tue, 30 Dec 2014 23:52:50 GMT (envelope-from peterj@FreeBSD.org) Message-Id: <201412302352.sBUNqo3F041744@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: peterj set sender to peterj@FreeBSD.org using -f From: Peter Jeremy Date: Tue, 30 Dec 2014 23:52:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276433 - stable/10/share/man/man4 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Dec 2014 23:52:50 -0000 Author: peterj Date: Tue Dec 30 23:52:48 2014 New Revision: 276433 URL: https://svnweb.freebsd.org/changeset/base/276433 Log: MFH r274083: convert .Nm to proper .Xr's... MFH r275298: Cross reference tap(4) and tun(4) and include a short explanation as to how they differ. This will assist users in selecting which interface is more appropriate for their purposes. No objection: jmg (r274083) Approved by: grog (co-mentor) Modified: stable/10/share/man/man4/tap.4 stable/10/share/man/man4/tun.4 Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/tap.4 ============================================================================== --- stable/10/share/man/man4/tap.4 Tue Dec 30 23:38:31 2014 (r276432) +++ stable/10/share/man/man4/tap.4 Tue Dec 30 23:52:48 2014 (r276433) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Based on PR#2411 .\" -.Dd January 26, 2012 +.Dd November 30, 2014 .Dt TAP 4 .Os .Sh NAME @@ -18,22 +18,33 @@ described as the network interface analo that is, .Nm does for network interfaces what the -.Nm pty +.Xr pty 4 driver does for terminals. .Pp The .Nm driver, like the -.Nm pty +.Xr pty 4 driver, provides two interfaces: an interface like the usual facility it is simulating (an Ethernet network interface in the case of .Nm , or a terminal for -.Nm pty ) , +.Xr pty 4 ) , and a character-special device .Dq control interface. +A client program transfers Ethernet frames to or from the +.Nm +.Dq control +interface. +The +.Xr tun 4 +interface provides similar functionality at the network layer: +a client will transfer IP (by default) packets to or from a +.Xr tun 4 +.Dq control +interface. .Pp The network interfaces are named .Dq Li tap0 , @@ -314,4 +325,5 @@ VMware .El .Sh SEE ALSO .Xr inet 4 , -.Xr intro 4 +.Xr intro 4 , +.Xr tun 4 Modified: stable/10/share/man/man4/tun.4 ============================================================================== --- stable/10/share/man/man4/tun.4 Tue Dec 30 23:38:31 2014 (r276432) +++ stable/10/share/man/man4/tun.4 Tue Dec 30 23:52:48 2014 (r276433) @@ -2,7 +2,7 @@ .\" $FreeBSD$ .\" Based on PR#2411 .\" -.Dd February 4, 2007 +.Dd November 30, 2014 .Dt TUN 4 .Os .Sh NAME @@ -35,6 +35,17 @@ or a terminal for and a character-special device .Dq control interface. +A client program transfers IP (by default) packets to or from the +.Nm +.Dq control +interface. +The +.Xr tap 4 +interface provides similar functionality at the Ethernet layer: +a client will transfer Ethernet frames to or from a +.Xr tap 4 +.Dq control +interface. .Pp The network interfaces are named .Dq Li tun0 , @@ -307,6 +318,7 @@ them pile up. .Xr inet 4 , .Xr intro 4 , .Xr pty 4 , +.Xr tap 4 , .Xr ifconfig 8 .Sh AUTHORS This manual page was originally obtained from From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 00:08:38 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B227B99C; Wed, 31 Dec 2014 00:08:38 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9D60420F4; Wed, 31 Dec 2014 00:08:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV08c5w048946; Wed, 31 Dec 2014 00:08:38 GMT (envelope-from peterj@FreeBSD.org) Received: (from peterj@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV08cRs048944; Wed, 31 Dec 2014 00:08:38 GMT (envelope-from peterj@FreeBSD.org) Message-Id: <201412310008.sBV08cRs048944@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: peterj set sender to peterj@FreeBSD.org using -f From: Peter Jeremy Date: Wed, 31 Dec 2014 00:08:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276434 - stable/9/share/man/man4 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 00:08:38 -0000 Author: peterj Date: Wed Dec 31 00:08:37 2014 New Revision: 276434 URL: https://svnweb.freebsd.org/changeset/base/276434 Log: MFH r230580: Don't mention no longer supported ioctl commands. MFH r274083: convert .Nm to proper .Xr's... MFH r275298: Cross reference tap(4) and tun(4) and include a short explanation as to how they differ. This will assist users in selecting which interface is more appropriate for their purposes. No objection: glebius (r230580), jmg (r274083) Approved by: grog (co-mentor) Modified: stable/9/share/man/man4/tap.4 stable/9/share/man/man4/tun.4 Directory Properties: stable/9/share/man/man4/ (props changed) Modified: stable/9/share/man/man4/tap.4 ============================================================================== --- stable/9/share/man/man4/tap.4 Tue Dec 30 23:52:48 2014 (r276433) +++ stable/9/share/man/man4/tap.4 Wed Dec 31 00:08:37 2014 (r276434) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Based on PR#2411 .\" -.Dd September 8, 2008 +.Dd November 30, 2014 .Dt TAP 4 .Os .Sh NAME @@ -18,22 +18,33 @@ described as the network interface analo that is, .Nm does for network interfaces what the -.Nm pty +.Xr pty 4 driver does for terminals. .Pp The .Nm driver, like the -.Nm pty +.Xr pty 4 driver, provides two interfaces: an interface like the usual facility it is simulating (an Ethernet network interface in the case of .Nm , or a terminal for -.Nm pty ) , +.Xr pty 4 ) , and a character-special device .Dq control interface. +A client program transfers Ethernet frames to or from the +.Nm +.Dq control +interface. +The +.Xr tun 4 +interface provides similar functionality at the network layer: +a client will transfer IP (by default) packets to or from a +.Xr tun 4 +.Dq control +interface. .Pp The network interfaces are named .Dq Li tap0 , @@ -89,11 +100,7 @@ Control devices (once successfully opene is unloaded or the interface is destroyed. .Pp Each interface supports the usual Ethernet network interface -.Xr ioctl 2 Ns s , -such as -.Dv SIOCSIFADDR -and -.Dv SIOCSIFNETMASK , +.Xr ioctl 2 Ns s and thus can be used with .Xr ifconfig 8 like any other Ethernet interface. @@ -318,4 +325,5 @@ VMware .El .Sh SEE ALSO .Xr inet 4 , -.Xr intro 4 +.Xr intro 4 , +.Xr tun 4 Modified: stable/9/share/man/man4/tun.4 ============================================================================== --- stable/9/share/man/man4/tun.4 Tue Dec 30 23:52:48 2014 (r276433) +++ stable/9/share/man/man4/tun.4 Wed Dec 31 00:08:37 2014 (r276434) @@ -2,7 +2,7 @@ .\" $FreeBSD$ .\" Based on PR#2411 .\" -.Dd February 4, 2007 +.Dd November 30, 2014 .Dt TUN 4 .Os .Sh NAME @@ -35,6 +35,17 @@ or a terminal for and a character-special device .Dq control interface. +A client program transfers IP (by default) packets to or from the +.Nm +.Dq control +interface. +The +.Xr tap 4 +interface provides similar functionality at the Ethernet layer: +a client will transfer Ethernet frames to or from a +.Xr tap 4 +.Dq control +interface. .Pp The network interfaces are named .Dq Li tun0 , @@ -307,6 +318,7 @@ them pile up. .Xr inet 4 , .Xr intro 4 , .Xr pty 4 , +.Xr tap 4 , .Xr ifconfig 8 .Sh AUTHORS This manual page was originally obtained from From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 00:09:06 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BE091ACA; Wed, 31 Dec 2014 00:09:06 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AA22220FB; Wed, 31 Dec 2014 00:09:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV096oh049113; Wed, 31 Dec 2014 00:09:06 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV096FR049111; Wed, 31 Dec 2014 00:09:06 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201412310009.sBV096FR049111@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Wed, 31 Dec 2014 00:09:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276435 - stable/9/usr.bin/file X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 00:09:06 -0000 Author: delphij Date: Wed Dec 31 00:09:05 2014 New Revision: 276435 URL: https://svnweb.freebsd.org/changeset/base/276435 Log: MFC r267897: Update Makefile to reflect file update. Modified: stable/9/usr.bin/file/Makefile Directory Properties: stable/9/usr.bin/file/ (props changed) Modified: stable/9/usr.bin/file/Makefile ============================================================================== --- stable/9/usr.bin/file/Makefile Wed Dec 31 00:08:37 2014 (r276434) +++ stable/9/usr.bin/file/Makefile Wed Dec 31 00:09:05 2014 (r276435) @@ -21,7 +21,8 @@ # 4. This notice may not be removed or altered. SRCDIR= ${.CURDIR}/../../contrib/file -.PATH: ${SRCDIR} +.PATH: ${SRCDIR}/src +.PATH: ${SRCDIR}/doc PROG= file From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 00:34:38 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EDD3EE80; Wed, 31 Dec 2014 00:34:38 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BFD102725; Wed, 31 Dec 2014 00:34:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV0Yc8U064520; Wed, 31 Dec 2014 00:34:38 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV0YcAs064519; Wed, 31 Dec 2014 00:34:38 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201412310034.sBV0YcAs064519@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Wed, 31 Dec 2014 00:34:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276436 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 00:34:39 -0000 Author: rmacklem Date: Wed Dec 31 00:34:37 2014 New Revision: 276436 URL: https://svnweb.freebsd.org/changeset/base/276436 Log: MFC: r276192, r276200 Modify vop_stdadvlock{async}() so that it only locks/unlocks the vnode and does a VOP_GETATTR() for the SEEK_END case. This is safe to do, since lf_advlock{async}() only uses the size argument for the SEEK_END case. The NFSv4 server needs this when vfs.nfsd.enable_locallocks!=0 since locking the vnode results in a LOR that can cause a deadlock for the nfsd threads. Modified: stable/10/sys/kern/vfs_default.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/vfs_default.c ============================================================================== --- stable/10/sys/kern/vfs_default.c Wed Dec 31 00:09:05 2014 (r276435) +++ stable/10/sys/kern/vfs_default.c Wed Dec 31 00:34:37 2014 (r276436) @@ -399,17 +399,24 @@ int vop_stdadvlock(struct vop_advlock_args *ap) { struct vnode *vp; - struct ucred *cred; struct vattr vattr; int error; vp = ap->a_vp; - cred = curthread->td_ucred; - vn_lock(vp, LK_SHARED | LK_RETRY); - error = VOP_GETATTR(vp, &vattr, cred); - VOP_UNLOCK(vp, 0); - if (error) - return (error); + if (ap->a_fl->l_whence == SEEK_END) { + /* + * The NFSv4 server must avoid doing a vn_lock() here, since it + * can deadlock the nfsd threads, due to a LOR. Fortunately + * the NFSv4 server always uses SEEK_SET and this code is + * only required for the SEEK_END case. + */ + vn_lock(vp, LK_SHARED | LK_RETRY); + error = VOP_GETATTR(vp, &vattr, curthread->td_ucred); + VOP_UNLOCK(vp, 0); + if (error) + return (error); + } else + vattr.va_size = 0; return (lf_advlock(ap, &(vp->v_lockf), vattr.va_size)); } @@ -418,17 +425,19 @@ int vop_stdadvlockasync(struct vop_advlockasync_args *ap) { struct vnode *vp; - struct ucred *cred; struct vattr vattr; int error; vp = ap->a_vp; - cred = curthread->td_ucred; - vn_lock(vp, LK_SHARED | LK_RETRY); - error = VOP_GETATTR(vp, &vattr, cred); - VOP_UNLOCK(vp, 0); - if (error) - return (error); + if (ap->a_fl->l_whence == SEEK_END) { + /* The size argument is only needed for SEEK_END. */ + vn_lock(vp, LK_SHARED | LK_RETRY); + error = VOP_GETATTR(vp, &vattr, curthread->td_ucred); + VOP_UNLOCK(vp, 0); + if (error) + return (error); + } else + vattr.va_size = 0; return (lf_advlockasync(ap, &(vp->v_lockf), vattr.va_size)); } From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 00:40:11 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DD5ED16F; Wed, 31 Dec 2014 00:40:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF9AA2778; Wed, 31 Dec 2014 00:40:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV0eBHj065830; Wed, 31 Dec 2014 00:40:11 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV0eBOk065827; Wed, 31 Dec 2014 00:40:11 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201412310040.sBV0eBOk065827@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Wed, 31 Dec 2014 00:40:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276437 - stable/10/sys/fs/nfsserver X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 00:40:12 -0000 Author: rmacklem Date: Wed Dec 31 00:40:10 2014 New Revision: 276437 URL: https://svnweb.freebsd.org/changeset/base/276437 Log: MFC: r276193 A deadlock in the NFSv4 server with vfs.nfsd.enable_locallocks=1 was reported via email. This was caused by a LOR between the sleep lock used to serialize the local locking (nfsrv_locklf()) and locking the vnode. I believe this patch fixes the problem by delaying relocking of the vnode until the sleep lock is unlocked (nfsrv_unlocklf()). To avoid nfsvno_advlock() having the side effect of unlocking the vnode, unlocking the vnode was moved to before the functions that call nfsvno_advlock(). It shouldn't affect the execution of the default case where vfs.nfsd.enable_locallocks=0. Modified: stable/10/sys/fs/nfsserver/nfs_nfsdport.c stable/10/sys/fs/nfsserver/nfs_nfsdstate.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- stable/10/sys/fs/nfsserver/nfs_nfsdport.c Wed Dec 31 00:34:37 2014 (r276436) +++ stable/10/sys/fs/nfsserver/nfs_nfsdport.c Wed Dec 31 00:40:10 2014 (r276437) @@ -2965,12 +2965,7 @@ nfsvno_advlock(struct vnode *vp, int fty if (nfsrv_dolocallocks == 0) goto out; - - /* Check for VI_DOOMED here, so that VOP_ADVLOCK() isn't performed. */ - if ((vp->v_iflag & VI_DOOMED) != 0) { - error = EPERM; - goto out; - } + ASSERT_VOP_UNLOCKED(vp, "nfsvno_advlock: vp locked"); fl.l_whence = SEEK_SET; fl.l_type = ftype; @@ -2994,14 +2989,12 @@ nfsvno_advlock(struct vnode *vp, int fty fl.l_pid = (pid_t)0; fl.l_sysid = (int)nfsv4_sysid; - NFSVOPUNLOCK(vp, 0); if (ftype == F_UNLCK) error = VOP_ADVLOCK(vp, (caddr_t)td->td_proc, F_UNLCK, &fl, (F_POSIX | F_REMOTE)); else error = VOP_ADVLOCK(vp, (caddr_t)td->td_proc, F_SETLK, &fl, (F_POSIX | F_REMOTE)); - NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); out: NFSEXITCODE(error); Modified: stable/10/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- stable/10/sys/fs/nfsserver/nfs_nfsdstate.c Wed Dec 31 00:34:37 2014 (r276436) +++ stable/10/sys/fs/nfsserver/nfs_nfsdstate.c Wed Dec 31 00:40:10 2014 (r276437) @@ -1344,6 +1344,8 @@ nfsrv_freeallnfslocks(struct nfsstate *s vnode_t tvp = NULL; uint64_t first, end; + if (vp != NULL) + ASSERT_VOP_UNLOCKED(vp, "nfsrv_freeallnfslocks: vnode locked"); lop = LIST_FIRST(&stp->ls_lock); while (lop != LIST_END(&stp->ls_lock)) { nlop = LIST_NEXT(lop, lo_lckowner); @@ -1363,9 +1365,10 @@ nfsrv_freeallnfslocks(struct nfsstate *s if (gottvp == 0) { if (nfsrv_dolocallocks == 0) tvp = NULL; - else if (vp == NULL && cansleep != 0) + else if (vp == NULL && cansleep != 0) { tvp = nfsvno_getvp(&lfp->lf_fh); - else + NFSVOPUNLOCK(tvp, 0); + } else tvp = vp; gottvp = 1; } @@ -1386,7 +1389,7 @@ nfsrv_freeallnfslocks(struct nfsstate *s lop = nlop; } if (vp == NULL && tvp != NULL) - vput(tvp); + vrele(tvp); } /* @@ -1497,7 +1500,7 @@ nfsrv_lockctrl(vnode_t vp, struct nfssta struct nfsclient *clp = NULL; u_int32_t bits; int error = 0, haslock = 0, ret, reterr; - int getlckret, delegation = 0, filestruct_locked; + int getlckret, delegation = 0, filestruct_locked, vnode_unlocked = 0; fhandle_t nfh; uint64_t first, end; uint32_t lock_flags; @@ -1587,6 +1590,11 @@ tryagain: * locking rolled back. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl1"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } reterr = nfsrv_locallock(vp, lfp, (new_lop->lo_flags & (NFSLCK_READ | NFSLCK_WRITE)), new_lop->lo_first, new_lop->lo_end, cfp, p); @@ -1748,6 +1756,11 @@ tryagain: if (filestruct_locked != 0) { /* Roll back local locks. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl2"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); @@ -1825,6 +1838,12 @@ tryagain: if (filestruct_locked != 0) { /* Roll back local locks. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, + "nfsrv_lockctrl3"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); @@ -1844,6 +1863,8 @@ tryagain: bits = tstp->ls_flags; bits >>= NFSLCK_SHIFT; if (new_stp->ls_flags & bits & NFSLCK_ACCESSBITS) { + KASSERT(vnode_unlocked == 0, + ("nfsrv_lockctrl: vnode unlocked1")); ret = nfsrv_clientconflict(tstp->ls_clp, &haslock, vp, p); if (ret == 1) { @@ -1875,6 +1896,8 @@ tryagain: * For setattr, just get rid of all the Delegations for other clients. */ if (new_stp->ls_flags & NFSLCK_SETATTR) { + KASSERT(vnode_unlocked == 0, + ("nfsrv_lockctrl: vnode unlocked2")); ret = nfsrv_cleandeleg(vp, lfp, clp, &haslock, p); if (ret) { /* @@ -1925,14 +1948,26 @@ tryagain: (new_lop->lo_flags & NFSLCK_WRITE) && (clp != tstp->ls_clp || (tstp->ls_flags & NFSLCK_DELEGREAD)))) { + ret = 0; if (filestruct_locked != 0) { /* Roll back local locks. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl4"); + NFSVOPUNLOCK(vp, 0); + } nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); + NFSUNLOCKSTATE(); + NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); + vnode_unlocked = 0; + if ((vp->v_iflag & VI_DOOMED) != 0) + ret = NFSERR_SERVERFAULT; + NFSLOCKSTATE(); } - ret = nfsrv_delegconflict(tstp, &haslock, p, vp); + if (ret == 0) + ret = nfsrv_delegconflict(tstp, &haslock, p, vp); if (ret) { /* * nfsrv_delegconflict unlocks state when it @@ -1971,6 +2006,11 @@ tryagain: stateidp->other[2] = stp->ls_stateid.other[2]; if (filestruct_locked != 0) { NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl5"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } /* Update the local locks. */ nfsrv_localunlock(vp, lfp, first, end, p); NFSLOCKSTATE(); @@ -2001,14 +2041,29 @@ tryagain: FREE((caddr_t)other_lop, M_NFSDLOCK); other_lop = NULL; } - ret = nfsrv_clientconflict(lop->lo_stp->ls_clp,&haslock,vp,p); + if (vnode_unlocked != 0) + ret = nfsrv_clientconflict(lop->lo_stp->ls_clp, &haslock, + NULL, p); + else + ret = nfsrv_clientconflict(lop->lo_stp->ls_clp, &haslock, + vp, p); if (ret == 1) { if (filestruct_locked != 0) { + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl6"); + NFSVOPUNLOCK(vp, 0); + } /* Roll back local locks. */ nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); NFSUNLOCKSTATE(); + NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); + vnode_unlocked = 0; + if ((vp->v_iflag & VI_DOOMED) != 0) { + error = NFSERR_SERVERFAULT; + goto out; + } } /* * nfsrv_clientconflict() unlocks state when it @@ -2042,6 +2097,11 @@ tryagain: if (filestruct_locked != 0 && ret == 0) { /* Roll back local locks. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl7"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); @@ -2120,6 +2180,11 @@ out: nfsv4_unlock(&nfsv4rootfs_lock, 1); NFSUNLOCKV4ROOTMUTEX(); } + if (vnode_unlocked != 0) { + NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + error = NFSERR_SERVERFAULT; + } if (other_lop) FREE((caddr_t)other_lop, M_NFSDLOCK); NFSEXITCODE2(error, nd); @@ -3227,11 +3292,14 @@ nfsrv_openupdate(vnode_t vp, struct nfss /* Get the lf lock */ nfsrv_locklf(lfp); NFSUNLOCKSTATE(); + ASSERT_VOP_ELOCKED(vp, "nfsrv_openupdate"); + NFSVOPUNLOCK(vp, 0); if (nfsrv_freeopen(stp, vp, 1, p) == 0) { NFSLOCKSTATE(); nfsrv_unlocklf(lfp); NFSUNLOCKSTATE(); } + NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); } else { (void) nfsrv_freeopen(stp, NULL, 0, p); NFSUNLOCKSTATE(); @@ -4619,7 +4687,7 @@ static int nfsrv_clientconflict(struct nfsclient *clp, int *haslockp, vnode_t vp, NFSPROC_T *p) { - int gotlock, lktype; + int gotlock, lktype = 0; /* * If lease hasn't expired, we can't fix it. @@ -4629,8 +4697,10 @@ nfsrv_clientconflict(struct nfsclient *c return (0); if (*haslockp == 0) { NFSUNLOCKSTATE(); - lktype = NFSVOPISLOCKED(vp); - NFSVOPUNLOCK(vp, 0); + if (vp != NULL) { + lktype = NFSVOPISLOCKED(vp); + NFSVOPUNLOCK(vp, 0); + } NFSLOCKV4ROOTMUTEX(); nfsv4_relref(&nfsv4rootfs_lock); do { @@ -4639,11 +4709,12 @@ nfsrv_clientconflict(struct nfsclient *c } while (!gotlock); NFSUNLOCKV4ROOTMUTEX(); *haslockp = 1; - NFSVOPLOCK(vp, lktype | LK_RETRY); - if ((vp->v_iflag & VI_DOOMED) != 0) - return (2); - else - return (1); + if (vp != NULL) { + NFSVOPLOCK(vp, lktype | LK_RETRY); + if ((vp->v_iflag & VI_DOOMED) != 0) + return (2); + } + return (1); } NFSUNLOCKSTATE(); @@ -4684,7 +4755,7 @@ nfsrv_delegconflict(struct nfsstate *stp vnode_t vp) { struct nfsclient *clp = stp->ls_clp; - int gotlock, error, lktype, retrycnt, zapped_clp; + int gotlock, error, lktype = 0, retrycnt, zapped_clp; nfsv4stateid_t tstateid; fhandle_t tfh; @@ -4801,8 +4872,10 @@ nfsrv_delegconflict(struct nfsstate *stp */ if (*haslockp == 0) { NFSUNLOCKSTATE(); - lktype = NFSVOPISLOCKED(vp); - NFSVOPUNLOCK(vp, 0); + if (vp != NULL) { + lktype = NFSVOPISLOCKED(vp); + NFSVOPUNLOCK(vp, 0); + } NFSLOCKV4ROOTMUTEX(); nfsv4_relref(&nfsv4rootfs_lock); do { @@ -4811,14 +4884,16 @@ nfsrv_delegconflict(struct nfsstate *stp } while (!gotlock); NFSUNLOCKV4ROOTMUTEX(); *haslockp = 1; - NFSVOPLOCK(vp, lktype | LK_RETRY); - if ((vp->v_iflag & VI_DOOMED) != 0) { - *haslockp = 0; - NFSLOCKV4ROOTMUTEX(); - nfsv4_unlock(&nfsv4rootfs_lock, 1); - NFSUNLOCKV4ROOTMUTEX(); - error = NFSERR_PERM; - goto out; + if (vp != NULL) { + NFSVOPLOCK(vp, lktype | LK_RETRY); + if ((vp->v_iflag & VI_DOOMED) != 0) { + *haslockp = 0; + NFSLOCKV4ROOTMUTEX(); + nfsv4_unlock(&nfsv4rootfs_lock, 1); + NFSUNLOCKV4ROOTMUTEX(); + error = NFSERR_PERM; + goto out; + } } error = -1; goto out; From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 00:44:12 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A36012D7; Wed, 31 Dec 2014 00:44:12 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8F187287D; Wed, 31 Dec 2014 00:44:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV0iCtc070029; Wed, 31 Dec 2014 00:44:12 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV0iCr5070028; Wed, 31 Dec 2014 00:44:12 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201412310044.sBV0iCr5070028@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Wed, 31 Dec 2014 00:44:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276438 - stable/10/sys/fs/nfsclient X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 00:44:12 -0000 Author: rmacklem Date: Wed Dec 31 00:44:11 2014 New Revision: 276438 URL: https://svnweb.freebsd.org/changeset/base/276438 Log: MFC: r276221 Delete some duplicate code that was harmless because exactly the same code is at the end of the nfscl_checksattr() function that is called just before it. As such, this code had already been executed and didn't do anything. Modified: stable/10/sys/fs/nfsclient/nfs_clvnops.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clvnops.c Wed Dec 31 00:40:10 2014 (r276437) +++ stable/10/sys/fs/nfsclient/nfs_clvnops.c Wed Dec 31 00:44:11 2014 (r276438) @@ -1608,20 +1608,6 @@ again: } } else if (NFS_ISV34(dvp) && (fmode & O_EXCL)) { if (nfscl_checksattr(vap, &nfsva)) { - /* - * We are normally called with only a partially - * initialized VAP. Since the NFSv3 spec says that - * the server may use the file attributes to - * store the verifier, the spec requires us to do a - * SETATTR RPC. FreeBSD servers store the verifier in - * atime, but we can't really assume that all servers - * will so we ensure that our SETATTR sets both atime - * and mtime. - */ - if (vap->va_mtime.tv_sec == VNOVAL) - vfs_timestamp(&vap->va_mtime); - if (vap->va_atime.tv_sec == VNOVAL) - vap->va_atime = vap->va_mtime; error = nfsrpc_setattr(newvp, vap, NULL, cnp->cn_cred, cnp->cn_thread, &nfsva, &attrflag, NULL); if (error && (vap->va_uid != (uid_t)VNOVAL || From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 00:54:40 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 977EE52B; Wed, 31 Dec 2014 00:54:40 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 82F1229F1; Wed, 31 Dec 2014 00:54:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV0seQM075551; Wed, 31 Dec 2014 00:54:40 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV0sdk1075545; Wed, 31 Dec 2014 00:54:39 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201412310054.sBV0sdk1075545@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Wed, 31 Dec 2014 00:54:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276439 - in head/sys: amd64/include mips/include vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 00:54:40 -0000 Author: alc Date: Wed Dec 31 00:54:38 2014 New Revision: 276439 URL: https://svnweb.freebsd.org/changeset/base/276439 Log: The physical memory allocator supports the use of distinct free lists for managing pages from different address ranges. Generally speaking, this feature is used to increase the likelihood that physical pages are available that can meet special DMA requirements or can be accessed through a limited-coverage direct mapping (e.g., MIPS). However, prior to this change, the configuration of the free lists was static, i.e., it was determined at compile time. Consequentally, free lists could be created for address ranges that held no actual pages, for example, on 32-bit MIPS- based systems with 512 MB or less of physical memory. This change makes the creation of the free lists dynamic, i.e., it is based on the available physical memory at boot time. On 64-bit x86-based systems with 64 GB or more of physical memory, create free lists for managing pages with physical addresses below 4 GB. This change is to address reported problems with initializing devices that require the allocation of physical pages below 4 GB on some systems with 128 GB or more of physical memory. PR: 185727 Differential Revision: https://reviews.freebsd.org/D1274 Reviewed by: jhb, kib MFC after: 3 weeks Sponsored by: EMC / Isilon Storage Division Modified: head/sys/amd64/include/vmparam.h head/sys/mips/include/vmparam.h head/sys/vm/vm_phys.c head/sys/vm/vm_phys.h Modified: head/sys/amd64/include/vmparam.h ============================================================================== --- head/sys/amd64/include/vmparam.h Wed Dec 31 00:44:11 2014 (r276438) +++ head/sys/amd64/include/vmparam.h Wed Dec 31 00:54:38 2014 (r276439) @@ -101,14 +101,22 @@ #define VM_FREEPOOL_DIRECT 1 /* - * Create two free page lists: VM_FREELIST_DEFAULT is for physical - * pages that are above the largest physical address that is - * accessible by ISA DMA and VM_FREELIST_ISADMA is for physical pages - * that are below that address. + * Create up to three free page lists: VM_FREELIST_DMA32 is for physical pages + * that have physical addresses below 4G but are not accessible by ISA DMA, + * and VM_FREELIST_ISADMA is for physical pages that are accessible by ISA + * DMA. */ -#define VM_NFREELIST 2 +#define VM_NFREELIST 3 #define VM_FREELIST_DEFAULT 0 -#define VM_FREELIST_ISADMA 1 +#define VM_FREELIST_DMA32 1 +#define VM_FREELIST_ISADMA 2 + +/* + * Create the DMA32 free list only if the number of physical pages above + * physical address 4G is at least 16M, which amounts to 64GB of physical + * memory. + */ +#define VM_DMA32_NPAGES_THRESHOLD 16777216 /* * An allocation size of 16MB is supported in order to optimize the Modified: head/sys/mips/include/vmparam.h ============================================================================== --- head/sys/mips/include/vmparam.h Wed Dec 31 00:44:11 2014 (r276438) +++ head/sys/mips/include/vmparam.h Wed Dec 31 00:54:38 2014 (r276439) @@ -160,13 +160,11 @@ #define VM_FREEPOOL_DIRECT 1 /* - * we support 2 free lists: - * - * - DEFAULT for direct mapped (KSEG0) pages. - * Note: This usage of DEFAULT may be misleading because we use - * DEFAULT for allocating direct mapped pages. The normal page - * allocations use HIGHMEM if available, and then DEFAULT. - * - HIGHMEM for other pages + * Create up to two free lists on !__mips_n64: VM_FREELIST_DEFAULT is for + * physical pages that are above the largest physical address that is + * accessible through the direct map (KSEG0) and VM_FREELIST_LOWMEM is for + * physical pages that are below that address. VM_LOWMEM_BOUNDARY is the + * physical address for the end of the direct map (KSEG0). */ #ifdef __mips_n64 #define VM_NFREELIST 1 @@ -174,10 +172,10 @@ #define VM_FREELIST_DIRECT VM_FREELIST_DEFAULT #else #define VM_NFREELIST 2 -#define VM_FREELIST_DEFAULT 1 -#define VM_FREELIST_HIGHMEM 0 -#define VM_FREELIST_DIRECT VM_FREELIST_DEFAULT -#define VM_HIGHMEM_ADDRESS ((vm_paddr_t)0x20000000) +#define VM_FREELIST_DEFAULT 0 +#define VM_FREELIST_LOWMEM 1 +#define VM_FREELIST_DIRECT VM_FREELIST_LOWMEM +#define VM_LOWMEM_BOUNDARY ((vm_paddr_t)0x20000000) #endif /* Modified: head/sys/vm/vm_phys.c ============================================================================== --- head/sys/vm/vm_phys.c Wed Dec 31 00:44:11 2014 (r276438) +++ head/sys/vm/vm_phys.c Wed Dec 31 00:54:38 2014 (r276439) @@ -101,7 +101,32 @@ MALLOC_DEFINE(M_FICT_PAGES, "vm_fictitio static struct vm_freelist vm_phys_free_queues[MAXMEMDOM][VM_NFREELIST][VM_NFREEPOOL][VM_NFREEORDER]; -static int vm_nfreelists = VM_FREELIST_DEFAULT + 1; +static int vm_nfreelists; + +/* + * Provides the mapping from VM_FREELIST_* to free list indices (flind). + */ +static int vm_freelist_to_flind[VM_NFREELIST]; + +CTASSERT(VM_FREELIST_DEFAULT == 0); + +#ifdef VM_FREELIST_ISADMA +#define VM_ISADMA_BOUNDARY 16777216 +#endif +#ifdef VM_FREELIST_DMA32 +#define VM_DMA32_BOUNDARY ((vm_paddr_t)1 << 32) +#endif + +/* + * Enforce the assumptions made by vm_phys_add_seg() and vm_phys_init() about + * the ordering of the free list boundaries. + */ +#if defined(VM_ISADMA_BOUNDARY) && defined(VM_LOWMEM_BOUNDARY) +CTASSERT(VM_ISADMA_BOUNDARY < VM_LOWMEM_BOUNDARY); +#endif +#if defined(VM_LOWMEM_BOUNDARY) && defined(VM_DMA32_BOUNDARY) +CTASSERT(VM_LOWMEM_BOUNDARY < VM_DMA32_BOUNDARY); +#endif static int cnt_prezero; SYSCTL_INT(_vm_stats_misc, OID_AUTO, cnt_prezero, CTLFLAG_RD, @@ -120,9 +145,8 @@ SYSCTL_INT(_vm, OID_AUTO, ndomains, CTLF static vm_page_t vm_phys_alloc_domain_pages(int domain, int flind, int pool, int order); -static void _vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end, int flind, - int domain); -static void vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end, int flind); +static void _vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end, int domain); +static void vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end); static int vm_phys_paddr_to_segind(vm_paddr_t pa); static void vm_phys_split_pages(vm_page_t m, int oind, struct vm_freelist *fl, int order); @@ -298,7 +322,7 @@ vm_freelist_rem(struct vm_freelist *fl, * Create a physical memory segment. */ static void -_vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end, int flind, int domain) +_vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end, int domain) { struct vm_phys_seg *seg; @@ -314,16 +338,15 @@ _vm_phys_create_seg(vm_paddr_t start, vm seg->start = start; seg->end = end; seg->domain = domain; - seg->free_queues = &vm_phys_free_queues[domain][flind]; } static void -vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end, int flind) +vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end) { int i; if (mem_affinity == NULL) { - _vm_phys_create_seg(start, end, flind, 0); + _vm_phys_create_seg(start, end, 0); return; } @@ -336,11 +359,11 @@ vm_phys_create_seg(vm_paddr_t start, vm_ panic("No affinity info for start %jx", (uintmax_t)start); if (mem_affinity[i].end >= end) { - _vm_phys_create_seg(start, end, flind, + _vm_phys_create_seg(start, end, mem_affinity[i].domain); break; } - _vm_phys_create_seg(start, mem_affinity[i].end, flind, + _vm_phys_create_seg(start, mem_affinity[i].end, mem_affinity[i].domain); start = mem_affinity[i].end; } @@ -352,64 +375,149 @@ vm_phys_create_seg(vm_paddr_t start, vm_ void vm_phys_add_seg(vm_paddr_t start, vm_paddr_t end) { + vm_paddr_t paddr; KASSERT((start & PAGE_MASK) == 0, ("vm_phys_define_seg: start is not page aligned")); KASSERT((end & PAGE_MASK) == 0, ("vm_phys_define_seg: end is not page aligned")); + + /* + * Split the physical memory segment if it spans two or more free + * list boundaries. + */ + paddr = start; #ifdef VM_FREELIST_ISADMA - if (start < 16777216) { - if (end > 16777216) { - vm_phys_create_seg(start, 16777216, - VM_FREELIST_ISADMA); - vm_phys_create_seg(16777216, end, VM_FREELIST_DEFAULT); - } else - vm_phys_create_seg(start, end, VM_FREELIST_ISADMA); - if (VM_FREELIST_ISADMA >= vm_nfreelists) - vm_nfreelists = VM_FREELIST_ISADMA + 1; - } else -#endif -#ifdef VM_FREELIST_HIGHMEM - if (end > VM_HIGHMEM_ADDRESS) { - if (start < VM_HIGHMEM_ADDRESS) { - vm_phys_create_seg(start, VM_HIGHMEM_ADDRESS, - VM_FREELIST_DEFAULT); - vm_phys_create_seg(VM_HIGHMEM_ADDRESS, end, - VM_FREELIST_HIGHMEM); - } else - vm_phys_create_seg(start, end, VM_FREELIST_HIGHMEM); - if (VM_FREELIST_HIGHMEM >= vm_nfreelists) - vm_nfreelists = VM_FREELIST_HIGHMEM + 1; - } else + if (paddr < VM_ISADMA_BOUNDARY && end > VM_ISADMA_BOUNDARY) { + vm_phys_create_seg(paddr, VM_ISADMA_BOUNDARY); + paddr = VM_ISADMA_BOUNDARY; + } #endif - vm_phys_create_seg(start, end, VM_FREELIST_DEFAULT); +#ifdef VM_FREELIST_LOWMEM + if (paddr < VM_LOWMEM_BOUNDARY && end > VM_LOWMEM_BOUNDARY) { + vm_phys_create_seg(paddr, VM_LOWMEM_BOUNDARY); + paddr = VM_LOWMEM_BOUNDARY; + } +#endif +#ifdef VM_FREELIST_DMA32 + if (paddr < VM_DMA32_BOUNDARY && end > VM_DMA32_BOUNDARY) { + vm_phys_create_seg(paddr, VM_DMA32_BOUNDARY); + paddr = VM_DMA32_BOUNDARY; + } +#endif + vm_phys_create_seg(paddr, end); } /* * Initialize the physical memory allocator. + * + * Requires that vm_page_array is initialized! */ void vm_phys_init(void) { struct vm_freelist *fl; struct vm_phys_seg *seg; -#ifdef VM_PHYSSEG_SPARSE - long pages; + u_long npages; + int dom, flind, freelist, oind, pind, segind; + + /* + * Compute the number of free lists, and generate the mapping from the + * manifest constants VM_FREELIST_* to the free list indices. + * + * Initially, the entries of vm_freelist_to_flind[] are set to either + * 0 or 1 to indicate which free lists should be created. + */ + npages = 0; + for (segind = vm_phys_nsegs - 1; segind >= 0; segind--) { + seg = &vm_phys_segs[segind]; +#ifdef VM_FREELIST_ISADMA + if (seg->end <= VM_ISADMA_BOUNDARY) + vm_freelist_to_flind[VM_FREELIST_ISADMA] = 1; + else +#endif +#ifdef VM_FREELIST_LOWMEM + if (seg->end <= VM_LOWMEM_BOUNDARY) + vm_freelist_to_flind[VM_FREELIST_LOWMEM] = 1; + else +#endif +#ifdef VM_FREELIST_DMA32 + if ( +#ifdef VM_DMA32_NPAGES_THRESHOLD + /* + * Create the DMA32 free list only if the amount of + * physical memory above physical address 4G exceeds the + * given threshold. + */ + npages > VM_DMA32_NPAGES_THRESHOLD && +#endif + seg->end <= VM_DMA32_BOUNDARY) + vm_freelist_to_flind[VM_FREELIST_DMA32] = 1; + else #endif - int dom, flind, oind, pind, segind; + { + npages += atop(seg->end - seg->start); + vm_freelist_to_flind[VM_FREELIST_DEFAULT] = 1; + } + } + /* Change each entry into a running total of the free lists. */ + for (freelist = 1; freelist < VM_NFREELIST; freelist++) { + vm_freelist_to_flind[freelist] += + vm_freelist_to_flind[freelist - 1]; + } + vm_nfreelists = vm_freelist_to_flind[VM_NFREELIST - 1]; + KASSERT(vm_nfreelists > 0, ("vm_phys_init: no free lists")); + /* Change each entry into a free list index. */ + for (freelist = 0; freelist < VM_NFREELIST; freelist++) + vm_freelist_to_flind[freelist]--; + /* + * Initialize the first_page and free_queues fields of each physical + * memory segment. + */ #ifdef VM_PHYSSEG_SPARSE - pages = 0; + npages = 0; #endif for (segind = 0; segind < vm_phys_nsegs; segind++) { seg = &vm_phys_segs[segind]; #ifdef VM_PHYSSEG_SPARSE - seg->first_page = &vm_page_array[pages]; - pages += atop(seg->end - seg->start); + seg->first_page = &vm_page_array[npages]; + npages += atop(seg->end - seg->start); #else seg->first_page = PHYS_TO_VM_PAGE(seg->start); #endif +#ifdef VM_FREELIST_ISADMA + if (seg->end <= VM_ISADMA_BOUNDARY) { + flind = vm_freelist_to_flind[VM_FREELIST_ISADMA]; + KASSERT(flind >= 0, + ("vm_phys_init: ISADMA flind < 0")); + } else +#endif +#ifdef VM_FREELIST_LOWMEM + if (seg->end <= VM_LOWMEM_BOUNDARY) { + flind = vm_freelist_to_flind[VM_FREELIST_LOWMEM]; + KASSERT(flind >= 0, + ("vm_phys_init: LOWMEM flind < 0")); + } else +#endif +#ifdef VM_FREELIST_DMA32 + if (seg->end <= VM_DMA32_BOUNDARY) { + flind = vm_freelist_to_flind[VM_FREELIST_DMA32]; + KASSERT(flind >= 0, + ("vm_phys_init: DMA32 flind < 0")); + } else +#endif + { + flind = vm_freelist_to_flind[VM_FREELIST_DEFAULT]; + KASSERT(flind >= 0, + ("vm_phys_init: DEFAULT flind < 0")); + } + seg->free_queues = &vm_phys_free_queues[seg->domain][flind]; } + + /* + * Initialize the free queues. + */ for (dom = 0; dom < vm_ndomains; dom++) { for (flind = 0; flind < vm_nfreelists; flind++) { for (pind = 0; pind < VM_NFREEPOOL; pind++) { @@ -419,6 +527,7 @@ vm_phys_init(void) } } } + rw_init(&vm_phys_fictitious_reg_lock, "vmfctr"); } @@ -498,25 +607,29 @@ vm_phys_alloc_pages(int pool, int order) } /* - * Find and dequeue a free page on the given free list, with the - * specified pool and order + * Allocate a contiguous, power of two-sized set of physical pages from the + * specified free list. The free list must be specified using one of the + * manifest constants VM_FREELIST_*. + * + * The free page queues must be locked. */ vm_page_t -vm_phys_alloc_freelist_pages(int flind, int pool, int order) +vm_phys_alloc_freelist_pages(int freelist, int pool, int order) { vm_page_t m; int dom, domain; - KASSERT(flind < VM_NFREELIST, - ("vm_phys_alloc_freelist_pages: freelist %d is out of range", flind)); + KASSERT(freelist < VM_NFREELIST, + ("vm_phys_alloc_freelist_pages: freelist %d is out of range", + freelist)); KASSERT(pool < VM_NFREEPOOL, ("vm_phys_alloc_freelist_pages: pool %d is out of range", pool)); KASSERT(order < VM_NFREEORDER, ("vm_phys_alloc_freelist_pages: order %d is out of range", order)); - for (dom = 0; dom < vm_ndomains; dom++) { domain = vm_rr_selectdomain(); - m = vm_phys_alloc_domain_pages(domain, flind, pool, order); + m = vm_phys_alloc_domain_pages(domain, + vm_freelist_to_flind[freelist], pool, order); if (m != NULL) return (m); } Modified: head/sys/vm/vm_phys.h ============================================================================== --- head/sys/vm/vm_phys.h Wed Dec 31 00:44:11 2014 (r276438) +++ head/sys/vm/vm_phys.h Wed Dec 31 00:54:38 2014 (r276439) @@ -72,7 +72,7 @@ void vm_phys_add_page(vm_paddr_t pa); void vm_phys_add_seg(vm_paddr_t start, vm_paddr_t end); vm_page_t vm_phys_alloc_contig(u_long npages, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary); -vm_page_t vm_phys_alloc_freelist_pages(int flind, int pool, int order); +vm_page_t vm_phys_alloc_freelist_pages(int freelist, int pool, int order); vm_page_t vm_phys_alloc_pages(int pool, int order); boolean_t vm_phys_domain_intersects(long mask, vm_paddr_t low, vm_paddr_t high); int vm_phys_fictitious_reg_range(vm_paddr_t start, vm_paddr_t end, From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 01:29:45 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5F21A9B1; Wed, 31 Dec 2014 01:29:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 322FF3F1D; Wed, 31 Dec 2014 01:29:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV1TjxO092659; Wed, 31 Dec 2014 01:29:45 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV1TjNi092658; Wed, 31 Dec 2014 01:29:45 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201412310129.sBV1TjNi092658@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Wed, 31 Dec 2014 01:29:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276440 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 01:29:45 -0000 Author: rmacklem Date: Wed Dec 31 01:29:44 2014 New Revision: 276440 URL: https://svnweb.freebsd.org/changeset/base/276440 Log: MFC: r276192, r276200 Modify vop_stdadvlock{async}() so that it only locks/unlocks the vnode and does a VOP_GETATTR() for the SEEK_END case. This is safe to do, since lf_advlock{async}() only uses the size argument for the SEEK_END case. The NFSv4 server needs this when vfs.nfsd.enable_locallocks!=0 since locking the vnode results in a LOR that can cause a deadlock for the nfsd threads. Modified: stable/9/sys/kern/vfs_default.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/kern/vfs_default.c ============================================================================== --- stable/9/sys/kern/vfs_default.c Wed Dec 31 00:54:38 2014 (r276439) +++ stable/9/sys/kern/vfs_default.c Wed Dec 31 01:29:44 2014 (r276440) @@ -399,17 +399,24 @@ int vop_stdadvlock(struct vop_advlock_args *ap) { struct vnode *vp; - struct ucred *cred; struct vattr vattr; int error; vp = ap->a_vp; - cred = curthread->td_ucred; - vn_lock(vp, LK_SHARED | LK_RETRY); - error = VOP_GETATTR(vp, &vattr, cred); - VOP_UNLOCK(vp, 0); - if (error) - return (error); + if (ap->a_fl->l_whence == SEEK_END) { + /* + * The NFSv4 server must avoid doing a vn_lock() here, since it + * can deadlock the nfsd threads, due to a LOR. Fortunately + * the NFSv4 server always uses SEEK_SET and this code is + * only required for the SEEK_END case. + */ + vn_lock(vp, LK_SHARED | LK_RETRY); + error = VOP_GETATTR(vp, &vattr, curthread->td_ucred); + VOP_UNLOCK(vp, 0); + if (error) + return (error); + } else + vattr.va_size = 0; return (lf_advlock(ap, &(vp->v_lockf), vattr.va_size)); } @@ -418,17 +425,19 @@ int vop_stdadvlockasync(struct vop_advlockasync_args *ap) { struct vnode *vp; - struct ucred *cred; struct vattr vattr; int error; vp = ap->a_vp; - cred = curthread->td_ucred; - vn_lock(vp, LK_SHARED | LK_RETRY); - error = VOP_GETATTR(vp, &vattr, cred); - VOP_UNLOCK(vp, 0); - if (error) - return (error); + if (ap->a_fl->l_whence == SEEK_END) { + /* The size argument is only needed for SEEK_END. */ + vn_lock(vp, LK_SHARED | LK_RETRY); + error = VOP_GETATTR(vp, &vattr, curthread->td_ucred); + VOP_UNLOCK(vp, 0); + if (error) + return (error); + } else + vattr.va_size = 0; return (lf_advlockasync(ap, &(vp->v_lockf), vattr.va_size)); } From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 01:34:38 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C6372B41; Wed, 31 Dec 2014 01:34:38 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A71DE100B; Wed, 31 Dec 2014 01:34:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV1YcRe097142; Wed, 31 Dec 2014 01:34:38 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV1Ycdd097139; Wed, 31 Dec 2014 01:34:38 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201412310134.sBV1Ycdd097139@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Wed, 31 Dec 2014 01:34:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276441 - stable/9/sys/fs/nfsserver X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 01:34:38 -0000 Author: rmacklem Date: Wed Dec 31 01:34:37 2014 New Revision: 276441 URL: https://svnweb.freebsd.org/changeset/base/276441 Log: MFC: r276193 A deadlock in the NFSv4 server with vfs.nfsd.enable_locallocks=1 was reported via email. This was caused by a LOR between the sleep lock used to serialize the local locking (nfsrv_locklf()) and locking the vnode. I believe this patch fixes the problem by delaying relocking of the vnode until the sleep lock is unlocked (nfsrv_unlocklf()). To avoid nfsvno_advlock() having the side effect of unlocking the vnode, unlocking the vnode was moved to before the functions that call nfsvno_advlock(). It shouldn't affect the execution of the default case where vfs.nfsd.enable_locallocks=0. Modified: stable/9/sys/fs/nfsserver/nfs_nfsdport.c stable/9/sys/fs/nfsserver/nfs_nfsdstate.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/fs/ (props changed) Modified: stable/9/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- stable/9/sys/fs/nfsserver/nfs_nfsdport.c Wed Dec 31 01:29:44 2014 (r276440) +++ stable/9/sys/fs/nfsserver/nfs_nfsdport.c Wed Dec 31 01:34:37 2014 (r276441) @@ -2969,12 +2969,7 @@ nfsvno_advlock(struct vnode *vp, int fty if (nfsrv_dolocallocks == 0) goto out; - - /* Check for VI_DOOMED here, so that VOP_ADVLOCK() isn't performed. */ - if ((vp->v_iflag & VI_DOOMED) != 0) { - error = EPERM; - goto out; - } + ASSERT_VOP_UNLOCKED(vp, "nfsvno_advlock: vp locked"); fl.l_whence = SEEK_SET; fl.l_type = ftype; @@ -2998,14 +2993,12 @@ nfsvno_advlock(struct vnode *vp, int fty fl.l_pid = (pid_t)0; fl.l_sysid = (int)nfsv4_sysid; - NFSVOPUNLOCK(vp, 0); if (ftype == F_UNLCK) error = VOP_ADVLOCK(vp, (caddr_t)td->td_proc, F_UNLCK, &fl, (F_POSIX | F_REMOTE)); else error = VOP_ADVLOCK(vp, (caddr_t)td->td_proc, F_SETLK, &fl, (F_POSIX | F_REMOTE)); - NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); out: NFSEXITCODE(error); Modified: stable/9/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- stable/9/sys/fs/nfsserver/nfs_nfsdstate.c Wed Dec 31 01:29:44 2014 (r276440) +++ stable/9/sys/fs/nfsserver/nfs_nfsdstate.c Wed Dec 31 01:34:37 2014 (r276441) @@ -1168,6 +1168,8 @@ nfsrv_freeallnfslocks(struct nfsstate *s vnode_t tvp = NULL; uint64_t first, end; + if (vp != NULL) + ASSERT_VOP_UNLOCKED(vp, "nfsrv_freeallnfslocks: vnode locked"); lop = LIST_FIRST(&stp->ls_lock); while (lop != LIST_END(&stp->ls_lock)) { nlop = LIST_NEXT(lop, lo_lckowner); @@ -1187,9 +1189,10 @@ nfsrv_freeallnfslocks(struct nfsstate *s if (gottvp == 0) { if (nfsrv_dolocallocks == 0) tvp = NULL; - else if (vp == NULL && cansleep != 0) + else if (vp == NULL && cansleep != 0) { tvp = nfsvno_getvp(&lfp->lf_fh); - else + NFSVOPUNLOCK(tvp, 0); + } else tvp = vp; gottvp = 1; } @@ -1210,7 +1213,7 @@ nfsrv_freeallnfslocks(struct nfsstate *s lop = nlop; } if (vp == NULL && tvp != NULL) - vput(tvp); + vrele(tvp); } /* @@ -1321,7 +1324,7 @@ nfsrv_lockctrl(vnode_t vp, struct nfssta struct nfsclient *clp = NULL; u_int32_t bits; int error = 0, haslock = 0, ret, reterr; - int getlckret, delegation = 0, filestruct_locked; + int getlckret, delegation = 0, filestruct_locked, vnode_unlocked = 0; fhandle_t nfh; uint64_t first, end; uint32_t lock_flags; @@ -1411,6 +1414,11 @@ tryagain: * locking rolled back. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl1"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } reterr = nfsrv_locallock(vp, lfp, (new_lop->lo_flags & (NFSLCK_READ | NFSLCK_WRITE)), new_lop->lo_first, new_lop->lo_end, cfp, p); @@ -1569,6 +1577,11 @@ tryagain: if (filestruct_locked != 0) { /* Roll back local locks. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl2"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); @@ -1646,6 +1659,12 @@ tryagain: if (filestruct_locked != 0) { /* Roll back local locks. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, + "nfsrv_lockctrl3"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); @@ -1665,6 +1684,8 @@ tryagain: bits = tstp->ls_flags; bits >>= NFSLCK_SHIFT; if (new_stp->ls_flags & bits & NFSLCK_ACCESSBITS) { + KASSERT(vnode_unlocked == 0, + ("nfsrv_lockctrl: vnode unlocked1")); ret = nfsrv_clientconflict(tstp->ls_clp, &haslock, vp, p); if (ret == 1) { @@ -1696,6 +1717,8 @@ tryagain: * For setattr, just get rid of all the Delegations for other clients. */ if (new_stp->ls_flags & NFSLCK_SETATTR) { + KASSERT(vnode_unlocked == 0, + ("nfsrv_lockctrl: vnode unlocked2")); ret = nfsrv_cleandeleg(vp, lfp, clp, &haslock, p); if (ret) { /* @@ -1746,14 +1769,26 @@ tryagain: (new_lop->lo_flags & NFSLCK_WRITE) && (clp != tstp->ls_clp || (tstp->ls_flags & NFSLCK_DELEGREAD)))) { + ret = 0; if (filestruct_locked != 0) { /* Roll back local locks. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl4"); + NFSVOPUNLOCK(vp, 0); + } nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); + NFSUNLOCKSTATE(); + NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); + vnode_unlocked = 0; + if ((vp->v_iflag & VI_DOOMED) != 0) + ret = NFSERR_SERVERFAULT; + NFSLOCKSTATE(); } - ret = nfsrv_delegconflict(tstp, &haslock, p, vp); + if (ret == 0) + ret = nfsrv_delegconflict(tstp, &haslock, p, vp); if (ret) { /* * nfsrv_delegconflict unlocks state when it @@ -1790,6 +1825,11 @@ tryagain: stateidp->other[2] = stp->ls_stateid.other[2]; if (filestruct_locked != 0) { NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl5"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } /* Update the local locks. */ nfsrv_localunlock(vp, lfp, first, end, p); NFSLOCKSTATE(); @@ -1820,14 +1860,29 @@ tryagain: FREE((caddr_t)other_lop, M_NFSDLOCK); other_lop = NULL; } - ret = nfsrv_clientconflict(lop->lo_stp->ls_clp,&haslock,vp,p); + if (vnode_unlocked != 0) + ret = nfsrv_clientconflict(lop->lo_stp->ls_clp, &haslock, + NULL, p); + else + ret = nfsrv_clientconflict(lop->lo_stp->ls_clp, &haslock, + vp, p); if (ret == 1) { if (filestruct_locked != 0) { + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl6"); + NFSVOPUNLOCK(vp, 0); + } /* Roll back local locks. */ nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); NFSUNLOCKSTATE(); + NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); + vnode_unlocked = 0; + if ((vp->v_iflag & VI_DOOMED) != 0) { + error = NFSERR_SERVERFAULT; + goto out; + } } /* * nfsrv_clientconflict() unlocks state when it @@ -1861,6 +1916,11 @@ tryagain: if (filestruct_locked != 0 && ret == 0) { /* Roll back local locks. */ NFSUNLOCKSTATE(); + if (vnode_unlocked == 0) { + ASSERT_VOP_ELOCKED(vp, "nfsrv_lockctrl7"); + vnode_unlocked = 1; + NFSVOPUNLOCK(vp, 0); + } nfsrv_locallock_rollback(vp, lfp, p); NFSLOCKSTATE(); nfsrv_unlocklf(lfp); @@ -1937,6 +1997,11 @@ out: nfsv4_unlock(&nfsv4rootfs_lock, 1); NFSUNLOCKV4ROOTMUTEX(); } + if (vnode_unlocked != 0) { + NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); + if (error == 0 && (vp->v_iflag & VI_DOOMED) != 0) + error = NFSERR_SERVERFAULT; + } if (other_lop) FREE((caddr_t)other_lop, M_NFSDLOCK); NFSEXITCODE2(error, nd); @@ -2958,11 +3023,14 @@ nfsrv_openupdate(vnode_t vp, struct nfss /* Get the lf lock */ nfsrv_locklf(lfp); NFSUNLOCKSTATE(); + ASSERT_VOP_ELOCKED(vp, "nfsrv_openupdate"); + NFSVOPUNLOCK(vp, 0); if (nfsrv_freeopen(stp, vp, 1, p) == 0) { NFSLOCKSTATE(); nfsrv_unlocklf(lfp); NFSUNLOCKSTATE(); } + NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY); } else { (void) nfsrv_freeopen(stp, NULL, 0, p); NFSUNLOCKSTATE(); @@ -4271,7 +4339,7 @@ static int nfsrv_clientconflict(struct nfsclient *clp, int *haslockp, vnode_t vp, NFSPROC_T *p) { - int gotlock, lktype; + int gotlock, lktype = 0; /* * If lease hasn't expired, we can't fix it. @@ -4281,8 +4349,10 @@ nfsrv_clientconflict(struct nfsclient *c return (0); if (*haslockp == 0) { NFSUNLOCKSTATE(); - lktype = NFSVOPISLOCKED(vp); - NFSVOPUNLOCK(vp, 0); + if (vp != NULL) { + lktype = NFSVOPISLOCKED(vp); + NFSVOPUNLOCK(vp, 0); + } NFSLOCKV4ROOTMUTEX(); nfsv4_relref(&nfsv4rootfs_lock); do { @@ -4291,11 +4361,12 @@ nfsrv_clientconflict(struct nfsclient *c } while (!gotlock); NFSUNLOCKV4ROOTMUTEX(); *haslockp = 1; - NFSVOPLOCK(vp, lktype | LK_RETRY); - if ((vp->v_iflag & VI_DOOMED) != 0) - return (2); - else - return (1); + if (vp != NULL) { + NFSVOPLOCK(vp, lktype | LK_RETRY); + if ((vp->v_iflag & VI_DOOMED) != 0) + return (2); + } + return (1); } NFSUNLOCKSTATE(); @@ -4336,7 +4407,7 @@ nfsrv_delegconflict(struct nfsstate *stp vnode_t vp) { struct nfsclient *clp = stp->ls_clp; - int gotlock, error, lktype, retrycnt, zapped_clp; + int gotlock, error, lktype = 0, retrycnt, zapped_clp; nfsv4stateid_t tstateid; fhandle_t tfh; @@ -4453,8 +4524,10 @@ nfsrv_delegconflict(struct nfsstate *stp */ if (*haslockp == 0) { NFSUNLOCKSTATE(); - lktype = NFSVOPISLOCKED(vp); - NFSVOPUNLOCK(vp, 0); + if (vp != NULL) { + lktype = NFSVOPISLOCKED(vp); + NFSVOPUNLOCK(vp, 0); + } NFSLOCKV4ROOTMUTEX(); nfsv4_relref(&nfsv4rootfs_lock); do { @@ -4463,14 +4536,16 @@ nfsrv_delegconflict(struct nfsstate *stp } while (!gotlock); NFSUNLOCKV4ROOTMUTEX(); *haslockp = 1; - NFSVOPLOCK(vp, lktype | LK_RETRY); - if ((vp->v_iflag & VI_DOOMED) != 0) { - *haslockp = 0; - NFSLOCKV4ROOTMUTEX(); - nfsv4_unlock(&nfsv4rootfs_lock, 1); - NFSUNLOCKV4ROOTMUTEX(); - error = NFSERR_PERM; - goto out; + if (vp != NULL) { + NFSVOPLOCK(vp, lktype | LK_RETRY); + if ((vp->v_iflag & VI_DOOMED) != 0) { + *haslockp = 0; + NFSLOCKV4ROOTMUTEX(); + nfsv4_unlock(&nfsv4rootfs_lock, 1); + NFSUNLOCKV4ROOTMUTEX(); + error = NFSERR_PERM; + goto out; + } } error = -1; goto out; From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 01:38:04 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2D30CD38; Wed, 31 Dec 2014 01:38:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 18D92108E; Wed, 31 Dec 2014 01:38:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV1c31W097896; Wed, 31 Dec 2014 01:38:03 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV1c3Sl097895; Wed, 31 Dec 2014 01:38:03 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201412310138.sBV1c3Sl097895@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Wed, 31 Dec 2014 01:38:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276442 - stable/9/sys/fs/nfsclient X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 01:38:04 -0000 Author: rmacklem Date: Wed Dec 31 01:38:02 2014 New Revision: 276442 URL: https://svnweb.freebsd.org/changeset/base/276442 Log: MFC: r276221 Delete some duplicate code that was harmless because exactly the same code is at the end of the nfscl_checksattr() function that is called just before it. As such, this code had already been executed and didn't do anything. Modified: stable/9/sys/fs/nfsclient/nfs_clvnops.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/fs/ (props changed) Modified: stable/9/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- stable/9/sys/fs/nfsclient/nfs_clvnops.c Wed Dec 31 01:34:37 2014 (r276441) +++ stable/9/sys/fs/nfsclient/nfs_clvnops.c Wed Dec 31 01:38:02 2014 (r276442) @@ -1583,20 +1583,6 @@ again: } } else if (NFS_ISV34(dvp) && (fmode & O_EXCL)) { if (nfscl_checksattr(vap, &nfsva)) { - /* - * We are normally called with only a partially - * initialized VAP. Since the NFSv3 spec says that - * the server may use the file attributes to - * store the verifier, the spec requires us to do a - * SETATTR RPC. FreeBSD servers store the verifier in - * atime, but we can't really assume that all servers - * will so we ensure that our SETATTR sets both atime - * and mtime. - */ - if (vap->va_mtime.tv_sec == VNOVAL) - vfs_timestamp(&vap->va_mtime); - if (vap->va_atime.tv_sec == VNOVAL) - vap->va_atime = vap->va_mtime; error = nfsrpc_setattr(newvp, vap, NULL, cnp->cn_cred, cnp->cn_thread, &nfsva, &attrflag, NULL); if (error && (vap->va_uid != (uid_t)VNOVAL || From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 01:48:24 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ECDDB1B5; Wed, 31 Dec 2014 01:48:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D99E2122F; Wed, 31 Dec 2014 01:48:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV1mOfR003477; Wed, 31 Dec 2014 01:48:24 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV1mOCQ003475; Wed, 31 Dec 2014 01:48:24 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412310148.sBV1mOCQ003475@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 31 Dec 2014 01:48:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276443 - head/contrib/elftoolchain/libelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 01:48:25 -0000 Author: emaste Date: Wed Dec 31 01:48:23 2014 New Revision: 276443 URL: https://svnweb.freebsd.org/changeset/base/276443 Log: libelf: Rearrange size test to prevent integer overflow Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/libelf/elf_scn.c Modified: head/contrib/elftoolchain/libelf/elf_scn.c ============================================================================== --- head/contrib/elftoolchain/libelf/elf_scn.c Wed Dec 31 01:38:02 2014 (r276442) +++ head/contrib/elftoolchain/libelf/elf_scn.c Wed Dec 31 01:48:23 2014 (r276443) @@ -62,7 +62,7 @@ _libelf_load_section_headers(Elf *e, voi #define CHECK_EHDR(E,EH) do { \ if (fsz != (EH)->e_shentsize || \ shnum > SIZE_MAX / fsz || \ - shoff + fsz * shnum > e->e_rawsize) { \ + fsz * shnum > e->e_rawsize - shoff) { \ LIBELF_SET_ERROR(HEADER, 0); \ return (0); \ } \ From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 02:12:32 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F0C53531; Wed, 31 Dec 2014 02:12:31 +0000 (UTC) Received: from anubis.delphij.net (anubis.delphij.net [64.62.153.212]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id D6958166C; Wed, 31 Dec 2014 02:12:31 +0000 (UTC) Received: from zeta.ixsystems.com (unknown [12.229.62.2]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id BEC5317DB5; Tue, 30 Dec 2014 18:12:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1419991944; x=1420006344; bh=tSyAyDZMOlcPitHbPlK0I9C4zYlqPmVlQOTUDjg2fEs=; h=Date:From:Reply-To:To:Subject:References:In-Reply-To; b=pOhL3Bx95zBwVz3fRu9r/7Ox2nF2eYZyRLg6XFtOiCE2D07janRegq5q1cLE6e5ho vUZM+RIinKmRBDMPWh19HHo/oL9ZegN17WqSHzcJYoio7q2MVyr4UofDdE81fksPZU aV3BpC0BXiegeMM5nhVG6NbVSlWZ/Gx9qww4YUyk= Message-ID: <54A35B88.9090102@delphij.net> Date: Tue, 30 Dec 2014 18:12:24 -0800 From: Xin Li Reply-To: d@delphij.net Organization: The FreeBSD Project MIME-Version: 1.0 To: Steven Hartland , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r276123 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs References: <201412230931.sBN9VPMK017968@svn.freebsd.org> In-Reply-To: <201412230931.sBN9VPMK017968@svn.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 02:12:32 -0000 On 12/23/14 01:31, Steven Hartland wrote: > Author: smh > Date: Tue Dec 23 09:31:24 2014 > New Revision: 276123 > URL: https://svnweb.freebsd.org/changeset/base/276123 > > Log: > Always sync the global ZFS config cache to reflect the new mosconfig > > This fixes out of date zpool.cache for root pools, which can cause issues > such as confusion of zdb etc. > > MFC after: 1 month > > Modified: > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c > > Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c > ============================================================================== > --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c Tue Dec 23 08:51:30 2014 (r276122) > +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c Tue Dec 23 09:31:24 2014 (r276123) > @@ -536,8 +536,7 @@ spa_config_update(spa_t *spa, int what) > /* > * Update the global config cache to reflect the new mosconfig. > */ > - if (!spa->spa_is_root) > - spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); > + spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); > > if (what == SPA_CONFIG_UPDATE_POOL) > spa_config_update(spa, SPA_CONFIG_UPDATE_VDEVS); It seems like that this change breaks systems where not all pools are available (e.g. some of pools are encrypted) at boot time, by removing all these pools from the cache file. As a result, on the next boot, these pools would not be imported even when the devices are available (geli attached), and reverting this change would restore the system to its previous behavior. Perhaps it have exposed an existing bug? Cheers, -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 02:33:13 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7D13E7BF; Wed, 31 Dec 2014 02:33:13 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6A1452A0A; Wed, 31 Dec 2014 02:33:13 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV2XDfN029124; Wed, 31 Dec 2014 02:33:13 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV2XDTt029123; Wed, 31 Dec 2014 02:33:13 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412310233.sBV2XDTt029123@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 31 Dec 2014 02:33:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276444 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 02:33:13 -0000 Author: ian Date: Wed Dec 31 02:33:12 2014 New Revision: 276444 URL: https://svnweb.freebsd.org/changeset/base/276444 Log: Fix a paste-o. Submitted by: Michal Meloun Modified: head/sys/arm/arm/cpu_asm-v6.S Modified: head/sys/arm/arm/cpu_asm-v6.S ============================================================================== --- head/sys/arm/arm/cpu_asm-v6.S Wed Dec 31 01:48:23 2014 (r276443) +++ head/sys/arm/arm/cpu_asm-v6.S Wed Dec 31 02:33:12 2014 (r276444) @@ -106,7 +106,7 @@ ASENTRY_NP(dcache_inv_pou_all) bx lr #else mrc CP15_CLIDR(r0) - ands r0, r0, #0x07000000 + ands r0, r0, #0x38000000 mov r0, r0, lsr #26 /* Get LoUU (naturally aligned) */ beq 4f From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 02:38:24 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 379D295F; Wed, 31 Dec 2014 02:38:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2418A2A7C; Wed, 31 Dec 2014 02:38:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV2cONb030057; Wed, 31 Dec 2014 02:38:24 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV2cO5L030056; Wed, 31 Dec 2014 02:38:24 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412310238.sBV2cO5L030056@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 31 Dec 2014 02:38:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276445 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 02:38:24 -0000 Author: ian Date: Wed Dec 31 02:38:23 2014 New Revision: 276445 URL: https://svnweb.freebsd.org/changeset/base/276445 Log: Change the order of operations for the initial cache setup. Turning off the cache before clean/invalidate ensured that no new lines can come into the cache or migrate between levels during the operation, but may not be safe on some chips. Instead, if the cache was enabled on entry, do the wbinv while it's still enabled, and then disable it and do a separate invalidate pass. After the intitial writeback we know there are no dirty lines left and no new dirty lines can be created as long as we carefully avoid touching memory before turning the cache off. Add a comment about that so no new code gets inserted between those points. Modified: head/sys/arm/arm/locore-v6.S Modified: head/sys/arm/arm/locore-v6.S ============================================================================== --- head/sys/arm/arm/locore-v6.S Wed Dec 31 02:33:12 2014 (r276444) +++ head/sys/arm/arm/locore-v6.S Wed Dec 31 02:38:23 2014 (r276445) @@ -84,11 +84,9 @@ ASENTRY_NP(_start) */ mrc CP15_SCTLR(r7) tst r7, #CPU_CONTROL_DC_ENABLE - beq 1f - bic r7, #CPU_CONTROL_DC_ENABLE - mcr CP15_SCTLR(r7) - ISB - bl dcache_wbinv_poc_all + blne dcache_wbinv_poc_all + + /* ! Do not write to memory between wbinv and disabling cache ! */ /* * Now there are no dirty lines, but there may still be lines marked @@ -96,6 +94,7 @@ ASENTRY_NP(_start) * before setting up new page tables and re-enabling the mmu. */ 1: + bic r7, #CPU_CONTROL_DC_ENABLE bic r7, #CPU_CONTROL_MMU_ENABLE bic r7, #CPU_CONTROL_IC_ENABLE bic r7, #CPU_CONTROL_UNAL_ENABLE From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 03:55:32 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A3295CE4 for ; Wed, 31 Dec 2014 03:55:32 +0000 (UTC) Received: from mail-wg0-f44.google.com (mail-wg0-f44.google.com [74.125.82.44]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 39A661982 for ; Wed, 31 Dec 2014 03:55:31 +0000 (UTC) Received: by mail-wg0-f44.google.com with SMTP id b13so21528682wgh.17 for ; Tue, 30 Dec 2014 19:55:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:message-id:date:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=OUMHyAP7wBgUEvXi2ze0wPEdetsbIoPCMsKQnXO2xHU=; b=INiH7LAfBam5ppnjuekic3EYtb4tZa/sjiKZrLDDTQfiK/YNm2Rc4AFrwy0DLgPpKT K1em8jNnaoLzQgOp3ervP26gaMuv2BWXURLsnwgkyewqhJLmjll1KJRmYTA1G6mGJwFv VKbNvko6w7Wl3GkWDBYnu1kKD51REy5ab9YXVkX+WQDDtdvq8FJQCi727oQ0QAfaJbFQ 2eSpC97Rx2+POhiizNUvwNfh1q4Huu3TVx/ZgGbnUe5rzF38UQX/e1gCmnqOA5NlNqG/ y4Q4dZFSGiAxNvN/zt5Oq9FRpG+38BkiOUqaia081fZi1y7XKn6R9E/FzjYY9Vw+BurM 8fbQ== X-Gm-Message-State: ALoCoQnEZTdD1Bo7nxolI/iBzrx0SrMc29sadobGTGFcRAtizUvRpuzKys0KqFaKyaqwhRt57Not X-Received: by 10.181.13.7 with SMTP id eu7mr113866888wid.72.1419996825198; Tue, 30 Dec 2014 19:33:45 -0800 (PST) Received: from [10.10.1.68] (82-69-141-170.dsl.in-addr.zen.co.uk. [82.69.141.170]) by mx.google.com with ESMTPSA id bs2sm55995892wjc.43.2014.12.30.19.33.44 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Dec 2014 19:33:44 -0800 (PST) From: Steven Hartland X-Google-Original-From: Steven Hartland Message-ID: <54A36E8C.9090908@freebsd.org> Date: Wed, 31 Dec 2014 03:33:32 +0000 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: d@delphij.net, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r276123 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs References: <201412230931.sBN9VPMK017968@svn.freebsd.org> <54A35B88.9090102@delphij.net> In-Reply-To: <54A35B88.9090102@delphij.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 03:55:32 -0000 On 31/12/2014 02:12, Xin Li wrote: > On 12/23/14 01:31, Steven Hartland wrote: >> Author: smh >> Date: Tue Dec 23 09:31:24 2014 >> New Revision: 276123 >> URL: https://svnweb.freebsd.org/changeset/base/276123 >> >> Log: >> Always sync the global ZFS config cache to reflect the new mosconfig >> >> This fixes out of date zpool.cache for root pools, which can cause issues >> such as confusion of zdb etc. >> >> MFC after: 1 month >> >> Modified: >> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >> >> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >> ============================================================================== >> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c Tue Dec 23 08:51:30 2014 (r276122) >> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c Tue Dec 23 09:31:24 2014 (r276123) >> @@ -536,8 +536,7 @@ spa_config_update(spa_t *spa, int what) >> /* >> * Update the global config cache to reflect the new mosconfig. >> */ >> - if (!spa->spa_is_root) >> - spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); >> + spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); >> >> if (what == SPA_CONFIG_UPDATE_POOL) >> spa_config_update(spa, SPA_CONFIG_UPDATE_VDEVS); > It seems like that this change breaks systems where not all pools are > available (e.g. some of pools are encrypted) at boot time, by removing > all these pools from the cache file. > > As a result, on the next boot, these pools would not be imported even > when the devices are available (geli attached), and reverting this > change would restore the system to its previous behavior. > > Perhaps it have exposed an existing bug? I've seen pools which where unavailable disappear from zpool list and zpool status before this patch, but though it was my imagination as they where test pools I was messing around with, so assumed I'd removed them. Sounds like it wasn't my imagination and it was indeed an existing bug. Does it do it every time for you then Xin? I ask as when I tried to reproduce I couldn't. Regards Steve From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 04:11:31 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 30100E40; Wed, 31 Dec 2014 04:11:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1C3601B7D; Wed, 31 Dec 2014 04:11:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV4BUGX081832; Wed, 31 Dec 2014 04:11:30 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV4BU63081831; Wed, 31 Dec 2014 04:11:30 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201412310411.sBV4BU63081831@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Wed, 31 Dec 2014 04:11:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276446 - head/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 04:11:31 -0000 Author: smh Date: Wed Dec 31 04:11:29 2014 New Revision: 276446 URL: https://svnweb.freebsd.org/changeset/base/276446 Log: Use the correct state name for unavailable pools in zpool list This corrects inconsitencies between zpool list and zpool status which are both described as displaying the pool however zpool list would use this hardcoded FAULTED instead of the correct UNAVAIL. MFC after: 1 month Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Wed Dec 31 02:38:23 2014 (r276445) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Wed Dec 31 04:11:29 2014 (r276446) @@ -256,7 +256,8 @@ zpool_get_prop(zpool_handle_t *zhp, zpoo break; case ZPOOL_PROP_HEALTH: - (void) strlcpy(buf, "FAULTED", len); + (void) strlcpy(buf, + zpool_pool_state_to_name(POOL_STATE_UNAVAIL), len); break; case ZPOOL_PROP_GUID: From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 04:12:51 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B9C71F99; Wed, 31 Dec 2014 04:12:51 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1271939F3; Wed, 31 Dec 2014 04:12:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV4CdkN082707; Wed, 31 Dec 2014 04:12:39 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV4Cd1S082706; Wed, 31 Dec 2014 04:12:39 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412310412.sBV4Cd1S082706@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Wed, 31 Dec 2014 04:12:39 +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: r276447 - stable/10/sys/amd64/vmm/io X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 04:12:51 -0000 Author: neel Date: Wed Dec 31 04:12:38 2014 New Revision: 276447 URL: https://svnweb.freebsd.org/changeset/base/276447 Log: MFC r276323 Implement "special mask mode" in vatpic. Modified: stable/10/sys/amd64/vmm/io/vatpic.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/vmm/io/vatpic.c ============================================================================== --- stable/10/sys/amd64/vmm/io/vatpic.c Wed Dec 31 04:11:29 2014 (r276446) +++ stable/10/sys/amd64/vmm/io/vatpic.c Wed Dec 31 04:12:38 2014 (r276447) @@ -73,6 +73,7 @@ struct atpic { uint8_t request; /* Interrupt Request Register (IIR) */ uint8_t service; /* Interrupt Service (ISR) */ uint8_t mask; /* Interrupt Mask Register (IMR) */ + uint8_t smm; /* special mask mode */ int acnt[8]; /* sum of pin asserts and deasserts */ int lowprio; /* lowest priority irq */ @@ -131,8 +132,16 @@ vatpic_get_highest_isrpin(struct atpic * ATPIC_PIN_FOREACH(pin, atpic, i) { bit = (1 << pin); - if (atpic->service & bit) - return (pin); + if (atpic->service & bit) { + /* + * An IS bit that is masked by an IMR bit will not be + * cleared by a non-specific EOI in Special Mask Mode. + */ + if (atpic->smm && (atpic->mask & bit) != 0) + continue; + else + return (pin); + } } return (-1); @@ -153,6 +162,15 @@ vatpic_get_highest_irrpin(struct atpic * if (atpic->sfn) serviced &= ~(1 << 2); + /* + * In 'Special Mask Mode', when a mask bit is set in OCW1 it inhibits + * further interrupts at that level and enables interrupts from all + * other levels that are not masked. In other words the ISR has no + * bearing on the levels that can generate interrupts. + */ + if (atpic->smm) + serviced = 0; + ATPIC_PIN_FOREACH(pin, atpic, tmp) { bit = 1 << pin; @@ -261,6 +279,7 @@ vatpic_icw1(struct vatpic *vatpic, struc atpic->lowprio = 7; atpic->rd_cmd_reg = 0; atpic->poll = 0; + atpic->smm = 0; if ((val & ICW1_SNGL) != 0) { VATPIC_CTR0(vatpic, "vatpic cascade mode required"); @@ -375,8 +394,10 @@ vatpic_ocw3(struct vatpic *vatpic, struc VATPIC_CTR1(vatpic, "atpic ocw3 0x%x", val); if (val & OCW3_ESMM) { - VATPIC_CTR0(vatpic, "atpic special mask mode not implemented"); - return (-1); + atpic->smm = val & OCW3_SMM ? 1 : 0; + VATPIC_CTR2(vatpic, "%s atpic special mask mode %s", + master_atpic(vatpic, atpic) ? "master" : "slave", + atpic->smm ? "enabled" : "disabled"); } if (val & OCW3_RR) { From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 04:51:10 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ACFA58A6; Wed, 31 Dec 2014 04:51:10 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8E7392432; Wed, 31 Dec 2014 04:51:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV4pA3M000593; Wed, 31 Dec 2014 04:51:10 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV4pAx6000591; Wed, 31 Dec 2014 04:51:10 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201412310451.sBV4pAx6000591@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Wed, 31 Dec 2014 04:51:10 +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: r276448 - stable/10/contrib/binutils/gas X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 04:51:10 -0000 Author: pfg Date: Wed Dec 31 04:51:09 2014 New Revision: 276448 URL: https://svnweb.freebsd.org/changeset/base/276448 Log: MFC r276229: Backport fix for binutils 11867: .quad directive not assembled correctly Alan Modra (and Alan's employer) graciously permitted use of his patch under GPLv2. Obtained from: OpenBSD Modified: stable/10/contrib/binutils/gas/expr.c stable/10/contrib/binutils/gas/read.c Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/binutils/gas/expr.c ============================================================================== --- stable/10/contrib/binutils/gas/expr.c Wed Dec 31 04:12:38 2014 (r276447) +++ stable/10/contrib/binutils/gas/expr.c Wed Dec 31 04:51:09 2014 (r276448) @@ -1040,6 +1040,15 @@ operand (expressionS *expressionP, enum { for (i = 0; i < expressionP->X_add_number; ++i) generic_bignum[i] = ~generic_bignum[i]; + + /* Extend the bignum to at least the size of .octa. */ + if (expressionP->X_add_number < SIZE_OF_LARGE_NUMBER) + { + expressionP->X_add_number = SIZE_OF_LARGE_NUMBER; + for (; i < expressionP->X_add_number; ++i) + generic_bignum[i] = ~(LITTLENUM_TYPE) 0; + } + if (c == '-') for (i = 0; i < expressionP->X_add_number; ++i) { @@ -1050,14 +1059,12 @@ operand (expressionS *expressionP, enum } else if (c == '!') { - int nonzero = 0; for (i = 0; i < expressionP->X_add_number; ++i) - { - if (generic_bignum[i]) - nonzero = 1; - generic_bignum[i] = 0; - } - generic_bignum[0] = nonzero; + if (generic_bignum[i] != 0) + break; + expressionP->X_add_number = i >= expressionP->X_add_number; + expressionP->X_op = O_constant; + expressionP->X_unsigned = 1; } } else if (expressionP->X_op != O_illegal Modified: stable/10/contrib/binutils/gas/read.c ============================================================================== --- stable/10/contrib/binutils/gas/read.c Wed Dec 31 04:12:38 2014 (r276447) +++ stable/10/contrib/binutils/gas/read.c Wed Dec 31 04:51:09 2014 (r276448) @@ -4117,15 +4117,32 @@ emit_expr (expressionS *exp, unsigned in unsigned int size; LITTLENUM_TYPE *nums; - know (nbytes % CHARS_PER_LITTLENUM == 0); - size = exp->X_add_number * CHARS_PER_LITTLENUM; if (nbytes < size) { - as_warn (_("bignum truncated to %d bytes"), nbytes); + int i = nbytes / CHARS_PER_LITTLENUM; + if (i != 0) + { + LITTLENUM_TYPE sign = 0; + if ((generic_bignum[--i] + & (1 << (LITTLENUM_NUMBER_OF_BITS - 1))) != 0) + sign = ~(LITTLENUM_TYPE) 0; + while (++i < exp->X_add_number) + if (generic_bignum[i] != sign) + break; + } + if (i < exp->X_add_number) + as_warn (_("bignum truncated to %d bytes"), nbytes); size = nbytes; } + if (nbytes == 1) + { + md_number_to_chars (p, (valueT) generic_bignum[0], 1); + return; + } + know (nbytes % CHARS_PER_LITTLENUM == 0); + if (target_big_endian) { while (nbytes > size) From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 04:52:34 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E2529A70; Wed, 31 Dec 2014 04:52:33 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C3F9D2486; Wed, 31 Dec 2014 04:52:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV4qX7J003611; Wed, 31 Dec 2014 04:52:33 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV4qX9l003608; Wed, 31 Dec 2014 04:52:33 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201412310452.sBV4qX9l003608@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Wed, 31 Dec 2014 04:52:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276449 - stable/9/contrib/binutils/gas X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 04:52:34 -0000 Author: pfg Date: Wed Dec 31 04:52:32 2014 New Revision: 276449 URL: https://svnweb.freebsd.org/changeset/base/276449 Log: MFC r276229: Backport fix for binutils 11867: .quad directive not assembled correctly Alan Modra (and Alan's employer) graciously permitted use of his patch under GPLv2. Obtained from: OpenBSD Modified: stable/9/contrib/binutils/gas/expr.c stable/9/contrib/binutils/gas/read.c Directory Properties: stable/9/contrib/binutils/ (props changed) Modified: stable/9/contrib/binutils/gas/expr.c ============================================================================== --- stable/9/contrib/binutils/gas/expr.c Wed Dec 31 04:51:09 2014 (r276448) +++ stable/9/contrib/binutils/gas/expr.c Wed Dec 31 04:52:32 2014 (r276449) @@ -1040,6 +1040,15 @@ operand (expressionS *expressionP, enum { for (i = 0; i < expressionP->X_add_number; ++i) generic_bignum[i] = ~generic_bignum[i]; + + /* Extend the bignum to at least the size of .octa. */ + if (expressionP->X_add_number < SIZE_OF_LARGE_NUMBER) + { + expressionP->X_add_number = SIZE_OF_LARGE_NUMBER; + for (; i < expressionP->X_add_number; ++i) + generic_bignum[i] = ~(LITTLENUM_TYPE) 0; + } + if (c == '-') for (i = 0; i < expressionP->X_add_number; ++i) { @@ -1050,14 +1059,12 @@ operand (expressionS *expressionP, enum } else if (c == '!') { - int nonzero = 0; for (i = 0; i < expressionP->X_add_number; ++i) - { - if (generic_bignum[i]) - nonzero = 1; - generic_bignum[i] = 0; - } - generic_bignum[0] = nonzero; + if (generic_bignum[i] != 0) + break; + expressionP->X_add_number = i >= expressionP->X_add_number; + expressionP->X_op = O_constant; + expressionP->X_unsigned = 1; } } else if (expressionP->X_op != O_illegal Modified: stable/9/contrib/binutils/gas/read.c ============================================================================== --- stable/9/contrib/binutils/gas/read.c Wed Dec 31 04:51:09 2014 (r276448) +++ stable/9/contrib/binutils/gas/read.c Wed Dec 31 04:52:32 2014 (r276449) @@ -4117,15 +4117,32 @@ emit_expr (expressionS *exp, unsigned in unsigned int size; LITTLENUM_TYPE *nums; - know (nbytes % CHARS_PER_LITTLENUM == 0); - size = exp->X_add_number * CHARS_PER_LITTLENUM; if (nbytes < size) { - as_warn (_("bignum truncated to %d bytes"), nbytes); + int i = nbytes / CHARS_PER_LITTLENUM; + if (i != 0) + { + LITTLENUM_TYPE sign = 0; + if ((generic_bignum[--i] + & (1 << (LITTLENUM_NUMBER_OF_BITS - 1))) != 0) + sign = ~(LITTLENUM_TYPE) 0; + while (++i < exp->X_add_number) + if (generic_bignum[i] != sign) + break; + } + if (i < exp->X_add_number) + as_warn (_("bignum truncated to %d bytes"), nbytes); size = nbytes; } + if (nbytes == 1) + { + md_number_to_chars (p, (valueT) generic_bignum[0], 1); + return; + } + know (nbytes % CHARS_PER_LITTLENUM == 0); + if (target_big_endian) { while (nbytes > size) From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 04:54:49 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AA62BBDA; Wed, 31 Dec 2014 04:54:49 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 96B9924B4; Wed, 31 Dec 2014 04:54:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBV4snGd003922; Wed, 31 Dec 2014 04:54:49 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBV4snQh003921; Wed, 31 Dec 2014 04:54:49 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201412310454.sBV4snQh003921@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Wed, 31 Dec 2014 04:54:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276450 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 04:54:49 -0000 Author: smh Date: Wed Dec 31 04:54:48 2014 New Revision: 276450 URL: https://svnweb.freebsd.org/changeset/base/276450 Log: Correct zpool list displaying invalid EXPANDSZ for unavailable pool vdevs When pools are unavailable their vdevs are also unavailable which means that vdev_max_asize remains at the default zero. This default was being used to calculate vs_esize resulting in a negative number as vdev_asize > vdev_max_asize, which caused zpool list -v to display 16.0E for EXPANDSZ of these vdevs. Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Wed Dec 31 04:52:32 2014 (r276449) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Wed Dec 31 04:54:48 2014 (r276450) @@ -2776,7 +2776,8 @@ vdev_get_stats(vdev_t *vd, vdev_stat_t * vs->vs_rsize = vdev_get_min_asize(vd); if (vd->vdev_ops->vdev_op_leaf) vs->vs_rsize += VDEV_LABEL_START_SIZE + VDEV_LABEL_END_SIZE; - vs->vs_esize = vd->vdev_max_asize - vd->vdev_asize; + if (vd->vdev_max_asize != 0) + vs->vs_esize = vd->vdev_max_asize - vd->vdev_asize; vs->vs_configured_ashift = vd->vdev_top != NULL ? vd->vdev_top->vdev_ashift : vd->vdev_ashift; vs->vs_logical_ashift = vd->vdev_logical_ashift; From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 06:08:23 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5495F667 for ; Wed, 31 Dec 2014 06:08:23 +0000 (UTC) Received: from mail-wg0-f51.google.com (mail-wg0-f51.google.com [74.125.82.51]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DC72464F59 for ; Wed, 31 Dec 2014 06:08:22 +0000 (UTC) Received: by mail-wg0-f51.google.com with SMTP id x12so21468863wgg.38 for ; Tue, 30 Dec 2014 22:08:15 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:message-id:date:user-agent:mime-version:to :subject:references:in-reply-to:content-type; bh=OiN9jEOuLEB9LlYhxIGAZq1oSXQ5NUIexqV2Ptf0DfQ=; b=GRnzPpOCT/5XzfW4D6Y5wUXnO/WyMgIG167Z+0Sh9Qh3p3TPtNBEpZ2TXMYE6GShWN q+rlcgn4pR3pOVBu20Kkkfo24cmcI3YIwfbETkh/Zvt2YdlVt3yF63gLS/01MY45cXjL 7xPlL9UGsiSKhu/XHPBzd402Q8cmwE8lWJ5uiQwc3HEb7W2q6jl2OfGS8ucHHMj+OX45 ofnTTfmTch1ZTypEm1KD2SAEf0/WIrZJrsJJPDU72UGFw5kdpo/z/wqoxykLAA0uQKf4 Dud2EfHWdSqua0YwAa/qLsisPLmffLCm9xHUhep83KCsEqUFNbVsGv3KIq25pSQA3H8Y a14A== X-Gm-Message-State: ALoCoQkN9gKvH1IEf9ZUkwc7alrdaI9sPLp1ZtevuUF8shKjSIgL3w4SWelF8AWSQOG6hp9qLAqL X-Received: by 10.180.187.239 with SMTP id fv15mr92506202wic.38.1420005727764; Tue, 30 Dec 2014 22:02:07 -0800 (PST) Received: from [10.10.1.68] (82-69-141-170.dsl.in-addr.zen.co.uk. [82.69.141.170]) by mx.google.com with ESMTPSA id h8sm45862050wiy.17.2014.12.30.22.02.06 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Dec 2014 22:02:06 -0800 (PST) From: Steven Hartland X-Google-Original-From: Steven Hartland Message-ID: <54A39153.8040905@freebsd.org> Date: Wed, 31 Dec 2014 06:01:55 +0000 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: d@delphij.net, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r276123 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs References: <201412230931.sBN9VPMK017968@svn.freebsd.org> <54A35B88.9090102@delphij.net> In-Reply-To: <54A35B88.9090102@delphij.net> Content-Type: multipart/mixed; boundary="------------020201040309020109020201" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 06:08:23 -0000 This is a multi-part message in MIME format. --------------020201040309020109020201 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 31/12/2014 02:12, Xin Li wrote: > On 12/23/14 01:31, Steven Hartland wrote: >> Author: smh >> Date: Tue Dec 23 09:31:24 2014 >> New Revision: 276123 >> URL: https://svnweb.freebsd.org/changeset/base/276123 >> >> Log: >> Always sync the global ZFS config cache to reflect the new mosconfig >> >> This fixes out of date zpool.cache for root pools, which can cause issues >> such as confusion of zdb etc. >> >> MFC after: 1 month >> >> Modified: >> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >> >> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >> ============================================================================== >> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c Tue Dec 23 08:51:30 2014 (r276122) >> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c Tue Dec 23 09:31:24 2014 (r276123) >> @@ -536,8 +536,7 @@ spa_config_update(spa_t *spa, int what) >> /* >> * Update the global config cache to reflect the new mosconfig. >> */ >> - if (!spa->spa_is_root) >> - spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); >> + spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); >> >> if (what == SPA_CONFIG_UPDATE_POOL) >> spa_config_update(spa, SPA_CONFIG_UPDATE_VDEVS); > It seems like that this change breaks systems where not all pools are > available (e.g. some of pools are encrypted) at boot time, by removing > all these pools from the cache file. > > As a result, on the next boot, these pools would not be imported even > when the devices are available (geli attached), and reverting this > change would restore the system to its previous behavior. > > Perhaps it have exposed an existing bug? I've managed to reproduce this here with mdX backed test pools, and looking into it this is due to spa_config_sync: /* * Skip over our own pool if we're about to remove * ourselves from the spa namespace or any pool that * is readonly. Since we cannot guarantee that a * readonly pool would successfully import upon reboot, * we don't allow them to be written to the cache file. */ if ((spa == target && removing) || !spa_writeable(spa)) { continue; } This was added by upstream: https://github.com/illumos/illumos-gate/commit/fb02ae025247e3b662600e5a9c1b4c33ecab7d72 https://www.illumos.org/issues/3639 It seems the desired behavior was to exclude read only pools, to prevent them being mounted writable on reboot, but the check is too wide and also excludes unavailable pools too. The attached patch corrects the test to only check writable on active pools so I believe should fix the issue your seeing. If you can test it and lmk that would be great. Regards Steve --------------020201040309020109020201 Content-Type: text/plain; charset=windows-1252; name="spa_config.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="spa_config.patch" SW5kZXg6IHN5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMv c3BhX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9jZGRsL2NvbnRyaWIvb3BlbnNv bGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvc3BhX2NvbmZpZy5jCShyZXZpc2lvbiAyNzYxMjMp CisrKyBzeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3Nw YV9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtMjQxLDcgKzI0MSw4IEBAIHNwYV9jb25m aWdfc3luYyhzcGFfdCAqdGFyZ2V0LCBib29sZWFuX3QgcmVtb3ZpbmcsCiAJCQkgKiB3ZSBk b24ndCBhbGxvdyB0aGVtIHRvIGJlIHdyaXR0ZW4gdG8gdGhlIGNhY2hlIGZpbGUuCiAJCQkg Ki8KIAkJCWlmICgoc3BhID09IHRhcmdldCAmJiByZW1vdmluZykgfHwKLQkJCSAgICAhc3Bh X3dyaXRlYWJsZShzcGEpKQorCQkJICAgIChzcGFfc3RhdGUoc3BhKSA9PSBQT09MX1NUQVRF X0FDVElWRSAmJgorCQkJICAgICFzcGFfd3JpdGVhYmxlKHNwYSkpKQogCQkJCWNvbnRpbnVl OwogCiAJCQltdXRleF9lbnRlcigmc3BhLT5zcGFfcHJvcHNfbG9jayk7Cg== --------------020201040309020109020201-- From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 08:00:51 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 03222AEA; Wed, 31 Dec 2014 08:00:51 +0000 (UTC) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id D66D010E9; Wed, 31 Dec 2014 08:00:50 +0000 (UTC) Received: from Xins-MBP.home.us.delphij.net (unknown [IPv6:2601:9:7280:1a80:f08a:f7cb:aaa3:1fd9]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id 34EA617E95; Wed, 31 Dec 2014 00:00:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1420012849; x=1420027249; bh=+LA7U8DS/0m9SuaYStvZ6XY0eG0VNHkhK7tfKn/o8G4=; h=Date:From:To:Subject:References:In-Reply-To; b=kHFK0uw3uhru9d+T1icfOdgLdIY5j2qbsxyTpP/gtlHoCwg6z5l5K3nPKuPMjb9Q7 jFrKb5GgWxOKpWf7EDD5UGozz7aRxP0I33HGPq8e3SC2vQBeQ3I5jiWtM2AR+N5LKz R92xUPR8N9rX1HRW27XploMEb7iVp6f7GKuQm3t0= Message-ID: <54A3ACEF.70905@delphij.net> Date: Tue, 30 Dec 2014 23:59:43 -0800 From: Xin Li User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Steven Hartland , d@delphij.net, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r276123 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs References: <201412230931.sBN9VPMK017968@svn.freebsd.org> <54A35B88.9090102@delphij.net> <54A39153.8040905@freebsd.org> In-Reply-To: <54A39153.8040905@freebsd.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 08:00:51 -0000 Hi, Steven, On 12/30/14 22:01, Steven Hartland wrote: > > On 31/12/2014 02:12, Xin Li wrote: >> On 12/23/14 01:31, Steven Hartland wrote: >>> Author: smh >>> Date: Tue Dec 23 09:31:24 2014 >>> New Revision: 276123 >>> URL: https://svnweb.freebsd.org/changeset/base/276123 >>> >>> Log: >>> Always sync the global ZFS config cache to reflect the new mosconfig >>> This fixes out of date zpool.cache for root pools, which can >>> cause issues >>> such as confusion of zdb etc. >>> MFC after: 1 month >>> >>> Modified: >>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>> >>> Modified: >>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>> ============================================================================== >>> >>> --- >>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>> Tue Dec 23 08:51:30 2014 (r276122) >>> +++ >>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>> Tue Dec 23 09:31:24 2014 (r276123) >>> @@ -536,8 +536,7 @@ spa_config_update(spa_t *spa, int what) >>> /* >>> * Update the global config cache to reflect the new mosconfig. >>> */ >>> - if (!spa->spa_is_root) >>> - spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); >>> + spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); >>> if (what == SPA_CONFIG_UPDATE_POOL) >>> spa_config_update(spa, SPA_CONFIG_UPDATE_VDEVS); >> It seems like that this change breaks systems where not all pools are >> available (e.g. some of pools are encrypted) at boot time, by removing >> all these pools from the cache file. >> >> As a result, on the next boot, these pools would not be imported even >> when the devices are available (geli attached), and reverting this >> change would restore the system to its previous behavior. >> >> Perhaps it have exposed an existing bug? > > I've managed to reproduce this here with mdX backed test pools, and > looking into it this is due to spa_config_sync: > > /* > * Skip over our own pool if we're about to remove > * ourselves from the spa namespace or any pool > that > * is readonly. Since we cannot guarantee that a > * readonly pool would successfully import upon > reboot, > * we don't allow them to be written to the > cache file. > */ > if ((spa == target && removing) || > !spa_writeable(spa)) { > continue; > } > > This was added by upstream: > https://github.com/illumos/illumos-gate/commit/fb02ae025247e3b662600e5a9c1b4c33ecab7d72 > > https://www.illumos.org/issues/3639 > > It seems the desired behavior was to exclude read only pools, to prevent > them being mounted writable on reboot, but the check is too wide and > also excludes unavailable pools too. > > The attached patch corrects the test to only check writable on active > pools so I believe should fix the issue your seeing. > > If you can test it and lmk that would be great. This is an improvement (the attaching of pool is now working) but the cached configuration is somewhat corrupted, it shows many lines of vdev_stats[] contents. I'll take a look at the code tomorrow and see if I can do some instruments and possibly figure out the underlying issue. Cheers, From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 09:15:41 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 305FA884 for ; Wed, 31 Dec 2014 09:15:41 +0000 (UTC) Received: from frv25.fwdcdn.com (frv25.fwdcdn.com [212.42.77.25]) by mx1.freebsd.org (Postfix) with ESMTP id D066C64CF3 for ; Wed, 31 Dec 2014 09:15:40 +0000 (UTC) Received: from [10.10.14.27] (helo=frv27.fwdcdn.com) by frv25.fwdcdn.com QID:1Y6F5C-000GHc-Id/RC:1; Wed, 31 Dec 2014 10:56:46 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ukr.net; s=fsm; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Subject:To:From:Date; bh=12/FTTKcfM1q16ZRBmkLrYzi0X0xAbMasXuqjPTLQtM=; b=gjNv1SO6ZbmFTCh0/6mqkhGF5F53IMlDIURCryrSIMdVkO/wZoOsw9TV3kOWnb9lkr4U6YHjepzqxb7Q3YJCkuOJs+BXtFwdLYq7nxdOd1yRdt6jhQbuPjta9UmhqvHiuNTOZd2gHhK9a53/TCZCWbnkIhZXvbxCN5VO0enUSFc=; Received: from [37.229.193.70] (helo=nonamehost.local) by frv27.fwdcdn.com with esmtpsa ID 1Y6F54-0000OG-KK for svn-src-all@freebsd.org; Wed, 31 Dec 2014 10:56:38 +0200 Date: Wed, 31 Dec 2014 10:56:38 +0200 From: Ivan Klymenko To: svn-src-all@freebsd.org Subject: Re: svn commit: r276428 - in head: lib/libvmmapi sys/amd64/include sys/amd64/vmm sys/amd64/vmm/io sys/modules/vmm usr.sbin/bhyve usr.sbin/bhyvectl Message-ID: <20141231105638.15336969@nonamehost.local> In-Reply-To: <201412302219.sBUMJZ1x094872@svn.freebsd.org> References: <201412302219.sBUMJZ1x094872@svn.freebsd.org> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Authentication-Result: IP=37.229.193.70; mail.from=fidaj@ukr.net; dkim=pass; header.d=ukr.net X-Ukrnet-Yellow: 0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 09:15:41 -0000 =D0=92 Tue, 30 Dec 2014 22:19:35 +0000 (UTC) Neel Natu =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > Author: neel > Date: Tue Dec 30 22:19:34 2014 > New Revision: 276428 > URL: https://svnweb.freebsd.org/changeset/base/276428 >=20 > Log: > Replace bhyve's minimal RTC emulation with a fully featured one in > vmm.ko.=20 > The new RTC emulation supports all interrupt modes: periodic, > update ended and alarm. It is also capable of maintaining the > date/time and NVRAM contents across virtual machine reset. Also, the > date/time fields can now be modified by the guest. > =20 > Since bhyve now emulates both the PIT and the RTC there is no need > for "Legacy Replacement Routing" in the HPET so get rid of it. > =20 > The RTC device state can be inspected via bhyvectl as follows: > bhyvectl --vm=3Dvm --get-rtc-time > bhyvectl --vm=3Dvm --set-rtc-time=3D > bhyvectl --vm=3Dvm --rtc-nvram-offset=3D --get-rtc-nvram > bhyvectl --vm=3Dvm --rtc-nvram-offset=3D --set-rtc-nvram=3D > =20 > Reviewed by: tychon > Discussed with: grehan > Differential Revision: https://reviews.freebsd.org/D1385 > MFC after: 2 weeks >=20 > Added: > head/sys/amd64/vmm/io/vrtc.c (contents, props changed) > head/sys/amd64/vmm/io/vrtc.h (contents, props changed) > Modified: > head/lib/libvmmapi/vmmapi.c > head/lib/libvmmapi/vmmapi.h > head/sys/amd64/include/vmm.h > head/sys/amd64/include/vmm_dev.h > head/sys/amd64/vmm/io/vhpet.c > head/sys/amd64/vmm/vmm.c > head/sys/amd64/vmm/vmm_dev.c > head/sys/amd64/vmm/vmm_ioport.c > head/sys/modules/vmm/Makefile > head/usr.sbin/bhyve/rtc.c > head/usr.sbin/bhyvectl/bhyvectl.c >=20 > Modified: head/lib/libvmmapi/vmmapi.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libvmmapi/vmmapi.c Tue Dec 30 22:04:24 > 2014 (r276427) +++ head/lib/libvmmapi/vmmapi.c Tue Dec > 30 22:19:34 2014 (r276428) @@ -1146,3 +1146,55 @@ > vm_set_intinfo(struct vmctx *ctx, int vc error =3D ioctl(ctx->fd, > VM_SET_INTINFO, &vmii); return (error); > } > + > +int > +vm_rtc_write(struct vmctx *ctx, int offset, uint8_t value) > +{ > + struct vm_rtc_data rtcdata; > + int error; > + > + bzero(&rtcdata, sizeof(struct vm_rtc_data)); > + rtcdata.offset =3D offset; > + rtcdata.value =3D value; > + error =3D ioctl(ctx->fd, VM_RTC_WRITE, &rtcdata); > + return (error); > +} > + > +int > +vm_rtc_read(struct vmctx *ctx, int offset, uint8_t *retval) > +{ > + struct vm_rtc_data rtcdata; > + int error; > + > + bzero(&rtcdata, sizeof(struct vm_rtc_data)); > + rtcdata.offset =3D offset; > + error =3D ioctl(ctx->fd, VM_RTC_READ, &rtcdata); > + if (error =3D=3D 0) > + *retval =3D rtcdata.value; > + return (error); > +} > + > +int > +vm_rtc_settime(struct vmctx *ctx, time_t secs) > +{ > + struct vm_rtc_time rtctime; > + int error; > + > + bzero(&rtctime, sizeof(struct vm_rtc_time)); > + rtctime.secs =3D secs; > + error =3D ioctl(ctx->fd, VM_RTC_SETTIME, &rtctime); > + return (error); > +} > + > +int > +vm_rtc_gettime(struct vmctx *ctx, time_t *secs) > +{ > + struct vm_rtc_time rtctime; > + int error; > + > + bzero(&rtctime, sizeof(struct vm_rtc_time)); > + error =3D ioctl(ctx->fd, VM_RTC_GETTIME, &rtctime); > + if (error =3D=3D 0) > + *secs =3D rtctime.secs; > + return (error); > +} >=20 > Modified: head/lib/libvmmapi/vmmapi.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libvmmapi/vmmapi.h Tue Dec 30 22:04:24 > 2014 (r276427) +++ head/lib/libvmmapi/vmmapi.h Tue Dec > 30 22:19:34 2014 (r276428) @@ -133,6 +133,12 @@ void > vm_copyin(struct vmctx *ctx, int vc void vm_copyout(struct > vmctx *ctx, int vcpu, const void *host_src, struct iovec *guest_iov, > size_t len);=20 > +/* RTC */ > +int vm_rtc_write(struct vmctx *ctx, int offset, uint8_t > value); +int vm_rtc_read(struct vmctx *ctx, int offset, > uint8_t *retval); +int vm_rtc_settime(struct vmctx *ctx, > time_t secs); +int vm_rtc_gettime(struct vmctx *ctx, time_t > *secs); + > /* Reset vcpu register state */ > int vcpu_reset(struct vmctx *ctx, int vcpu); > =20 >=20 > Modified: head/sys/amd64/include/vmm.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/amd64/include/vmm.h Tue Dec 30 22:04:24 > 2014 (r276427) +++ head/sys/amd64/include/vmm.h Tue Dec > 30 22:19:34 2014 (r276428) @@ -286,6 +286,7 @@ int > vm_unassign_pptdev(struct vm *vm, in struct vatpic *vm_atpic(struct > vm *vm); struct vatpit *vm_atpit(struct vm *vm); > struct vpmtmr *vm_pmtmr(struct vm *vm); > +struct vrtc *vm_rtc(struct vm *vm); > =20 > /* > * Inject exception 'vme' into the guest vcpu. This function returns > 0 on >=20 > Modified: head/sys/amd64/include/vmm_dev.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/amd64/include/vmm_dev.h Tue Dec 30 22:04:24 > 2014 (r276427) +++ head/sys/amd64/include/vmm_dev.h Tue > Dec 30 22:19:34 2014 (r276428) @@ -195,6 +195,15 @@ struct > vm_intinfo { uint64_t info2; > }; > =20 > +struct vm_rtc_time { > + time_t secs; > +}; > + > +struct vm_rtc_data { > + int offset; > + uint8_t value; > +}; > + > enum { > /* general routines */ > IOCNUM_ABIVERS =3D 0, > @@ -254,6 +263,12 @@ enum { > /* vm_cpuset */ > IOCNUM_ACTIVATE_CPU =3D 90, > IOCNUM_GET_CPUSET =3D 91, > + > + /* RTC */ > + IOCNUM_RTC_READ =3D 100, > + IOCNUM_RTC_WRITE =3D 101, > + IOCNUM_RTC_SETTIME =3D 102, > + IOCNUM_RTC_GETTIME =3D 103, > }; > =20 > #define VM_RUN \ > @@ -336,4 +351,12 @@ enum { > _IOW('v', IOCNUM_SET_INTINFO, struct vm_intinfo) > #define VM_GET_INTINFO \ > _IOWR('v', IOCNUM_GET_INTINFO, struct vm_intinfo) > +#define VM_RTC_WRITE \ > + _IOW('v', IOCNUM_RTC_WRITE, struct vm_rtc_data) > +#define VM_RTC_READ \ > + _IOWR('v', IOCNUM_RTC_READ, struct vm_rtc_data) > +#define VM_RTC_SETTIME \ > + _IOW('v', IOCNUM_RTC_SETTIME, struct vm_rtc_time) > +#define VM_RTC_GETTIME \ > + _IOR('v', IOCNUM_RTC_GETTIME, struct vm_rtc_time) > #endif >=20 > Modified: head/sys/amd64/vmm/io/vhpet.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/amd64/vmm/io/vhpet.c Tue Dec 30 22:04:24 > 2014 (r276427) +++ head/sys/amd64/vmm/io/vhpet.c Tue > Dec 30 22:19:34 2014 (r276428) @@ -104,7 +104,6 @@ > vhpet_capabilities(void) uint64_t cap =3D 0; > =20 > cap |=3D 0x8086 << 16; /* vendor id */ > - cap |=3D HPET_CAP_LEG_RT; /* legacy > routing capable */ cap |=3D (VHPET_NUM_TIMERS - 1) << 8; /* > number of timers */ cap |=3D 1; /* > revision */ cap &=3D ~HPET_CAP_COUNT_SIZE; /* 32-bit > timer */ @@ -127,15 +126,6 @@ vhpet_timer_msi_enabled(struct vhpet *vh > { > const uint64_t msi_enable =3D HPET_TCAP_FSB_INT_DEL | > HPET_TCNF_FSB_EN;=20 > - /* > - * LegacyReplacement Route configuration takes precedence > over MSI > - * for timers 0 and 1. > - */ > - if (n =3D=3D 0 || n =3D=3D 1) { > - if (vhpet->config & HPET_CNF_LEG_RT) > - return (false); > - } > - > if ((vhpet->timer[n].cap_config & msi_enable) =3D=3D msi_enable) > return (true); > else > @@ -152,41 +142,9 @@ vhpet_timer_ioapic_pin(struct vhpet *vhp > if (vhpet_timer_msi_enabled(vhpet, n)) > return (0); > =20 > - if (vhpet->config & HPET_CNF_LEG_RT) { > - /* > - * In "legacy routing" timers 0 and 1 are connected > to > - * ioapic pins 2 and 8 respectively. > - */ > - switch (n) { > - case 0: > - return (2); > - case 1: > - return (8); > - } > - } > - > return ((vhpet->timer[n].cap_config & HPET_TCNF_INT_ROUTE) > >> 9); } > =20 > -static __inline int > -vhpet_timer_atpic_pin(struct vhpet *vhpet, int n) > -{ > - if (vhpet->config & HPET_CNF_LEG_RT) { > - /* > - * In "legacy routing" timers 0 and 1 are connected > to > - * 8259 master pin 0 and slave pin 0 respectively. > - */ > - switch (n) { > - case 0: > - return (0); > - case 1: > - return (8); > - } > - } > - > - return (-1); > -} > - > static uint32_t > vhpet_counter(struct vhpet *vhpet, sbintime_t *nowptr) > { > @@ -216,17 +174,12 @@ vhpet_counter(struct vhpet *vhpet, sbint > static void > vhpet_timer_clear_isr(struct vhpet *vhpet, int n) > { > - int pin, legacy_pin; > + int pin; > =20 > if (vhpet->isr & (1 << n)) { > pin =3D vhpet_timer_ioapic_pin(vhpet, n); > KASSERT(pin !=3D 0, ("vhpet timer %d irq incorrectly > routed", n)); vioapic_deassert_irq(vhpet->vm, pin); > - > - legacy_pin =3D vhpet_timer_atpic_pin(vhpet, n); > - if (legacy_pin !=3D -1) > - vatpic_deassert_irq(vhpet->vm, legacy_pin); > - > vhpet->isr &=3D ~(1 << n); > } > } > @@ -252,12 +205,6 @@ vhpet_timer_edge_trig(struct vhpet *vhpe > KASSERT(!vhpet_timer_msi_enabled(vhpet, n), > ("vhpet_timer_edge_trig: " "timer %d is using MSI", n)); > =20 > - /* The legacy replacement interrupts are always edge > triggered */ > - if (vhpet->config & HPET_CNF_LEG_RT) { > - if (n =3D=3D 0 || n =3D=3D 1) > - return (true); > - } > - > if ((vhpet->timer[n].cap_config & HPET_TCNF_INT_TYPE) =3D=3D 0) > return (true); > else > @@ -267,7 +214,7 @@ vhpet_timer_edge_trig(struct vhpet *vhpe > static void > vhpet_timer_interrupt(struct vhpet *vhpet, int n) > { > - int pin, legacy_pin; > + int pin; > =20 > /* If interrupts are not enabled for this timer then just > return. */ if (!vhpet_timer_interrupt_enabled(vhpet, n)) > @@ -293,17 +240,11 @@ vhpet_timer_interrupt(struct vhpet *vhpe > return; > } > =20 > - legacy_pin =3D vhpet_timer_atpic_pin(vhpet, n); > - > if (vhpet_timer_edge_trig(vhpet, n)) { > vioapic_pulse_irq(vhpet->vm, pin); > - if (legacy_pin !=3D -1) > - vatpic_pulse_irq(vhpet->vm, legacy_pin); > } else { > vhpet->isr |=3D 1 << n; > vioapic_assert_irq(vhpet->vm, pin); > - if (legacy_pin !=3D -1) > - vatpic_assert_irq(vhpet->vm, legacy_pin); > } > } > =20 > @@ -579,6 +520,13 @@ vhpet_mmio_write(void *vm, int vcpuid, u > counter =3D vhpet_counter(vhpet, nowptr); > oldval =3D vhpet->config; > update_register(&vhpet->config, data, mask); > + > + /* > + * LegacyReplacement Routing is not supported so > clear the > + * bit explicitly. > + */ > + vhpet->config &=3D ~HPET_CNF_LEG_RT; > + > if ((oldval ^ vhpet->config) & HPET_CNF_ENABLE) { > if (vhpet_counter_enabled(vhpet)) { > vhpet_start_counting(vhpet); >=20 > Added: head/sys/amd64/vmm/io/vrtc.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is > newly added) +++ head/sys/amd64/vmm/io/vrtc.c Tue Dec 30 > 22:19:34 2014 (r276428) @@ -0,0 +1,952 @@ > +/*- > + * Copyright (c) 2014, Neel Natu (neel@freebsd.org) > + * All rights reserved. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice unmodified, this list of conditions, and the following > + * disclaimer. > + * 2. Redistributions in binary form must reproduce the above > copyright > + * notice, this list of conditions and the following disclaimer > in the > + * documentation and/or other materials provided with the > distribution. > + * > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS > OR > + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED > WARRANTIES > + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE > DISCLAIMED. > + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > (INCLUDING, BUT > + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS > OF USE, > + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > ANY > + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR > TORT > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE > USE OF > + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + */ > + > +#include > +__FBSDID("$FreeBSD$"); > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > + > +#include > + > +#include "vmm_ktr.h" > +#include "vatpic.h" > +#include "vioapic.h" > +#include "vrtc.h" > + > +/* Register layout of the RTC */ > +struct rtcdev { > + uint8_t sec; > + uint8_t alarm_sec; > + uint8_t min; > + uint8_t alarm_min; > + uint8_t hour; > + uint8_t alarm_hour; > + uint8_t day_of_week; > + uint8_t day_of_month; > + uint8_t month; > + uint8_t year; > + uint8_t reg_a; > + uint8_t reg_b; > + uint8_t reg_c; > + uint8_t reg_d; > + uint8_t nvram[128 - 14]; > +} __packed; > +CTASSERT(sizeof(struct rtcdev) =3D=3D 128); > + > +struct vrtc { > + struct vm *vm; > + struct mtx mtx; > + struct callout callout; > + u_int addr; /* RTC register to > read or write */ > + sbintime_t base_uptime; > + time_t base_rtctime; > + struct rtcdev rtcdev; > +}; > + > +#define VRTC_LOCK(vrtc) > mtx_lock(&((vrtc)->mtx)) +#define VRTC_UNLOCK(vrtc) > mtx_unlock(&((vrtc)->mtx)) +#define VRTC_LOCKED(vrtc) > mtx_owned(&((vrtc)->mtx)) + > +/* > + * RTC time is considered "broken" if: > + * - RTC updates are halted by the guest > + * - RTC date/time fields have invalid values > + */ > +#define VRTC_BROKEN_TIME ((time_t)-1) > + > +#define RTC_IRQ 8 > +#define RTCSB_BIN 0x04 > +#define RTCSB_ALL_INTRS (RTCSB_UINTR | > RTCSB_AINTR | RTCSB_PINTR) +#define rtc_halted(vrtc) > ((vrtc->rtcdev.reg_b & RTCSB_HALT) !=3D 0) +#define > aintr_enabled(vrtc) (((vrtc)->rtcdev.reg_b & RTCSB_AINTR) !=3D > 0) +#define pintr_enabled(vrtc) (((vrtc)->rtcdev.reg_b > & RTCSB_PINTR) !=3D 0) +#define uintr_enabled(vrtc) > (((vrtc)->rtcdev.reg_b & RTCSB_UINTR) !=3D 0) + +static void > vrtc_callout_handler(void *arg); +static void vrtc_set_reg_c(struct > vrtc *vrtc, uint8_t newval); + > +static MALLOC_DEFINE(M_VRTC, "vrtc", "bhyve virtual rtc"); > + > +SYSCTL_DECL(_hw_vmm); > +SYSCTL_NODE(_hw_vmm, OID_AUTO, vrtc, CTLFLAG_RW, NULL, NULL); > + > +static int rtc_flag_broken_time =3D 1; > +SYSCTL_INT(_hw_vmm_vrtc, OID_AUTO, flag_broken_time, CTLFLAG_RDTUN, > + &rtc_flag_broken_time, 0, "Stop guest when invalid RTC time is > detected"); + > +static __inline bool > +divider_enabled(int reg_a) > +{ > + /* > + * The RTC is counting only when dividers are not held in > reset. > + */ > + return ((reg_a & 0x70) =3D=3D 0x20); > +} > + > +static __inline bool > +update_enabled(struct vrtc *vrtc) > +{ > + /* > + * RTC date/time can be updated only if: > + * - divider is not held in reset > + * - guest has not disabled updates > + * - the date/time fields have valid contents > + */ > + if (!divider_enabled(vrtc->rtcdev.reg_a)) > + return (false); > + > + if (rtc_halted(vrtc)) > + return (false); > + > + if (vrtc->base_rtctime =3D=3D VRTC_BROKEN_TIME) > + return (false); > + > + return (true); > +} > + > +static time_t > +vrtc_curtime(struct vrtc *vrtc) > +{ > + sbintime_t now, delta; > + time_t t; > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + t =3D vrtc->base_rtctime; > + if (update_enabled(vrtc)) { > + now =3D sbinuptime(); > + delta =3D now - vrtc->base_uptime; > + KASSERT(delta >=3D 0, ("vrtc_curtime: uptime went > backwards: " > + "%#lx to %#lx", vrtc->base_uptime, now)); > + t +=3D delta / SBT_1S; > + } > + return (t); > +} > + > +static __inline uint8_t > +rtcset(struct rtcdev *rtc, int val) > +{ > + > + KASSERT(val >=3D 0 && val < 100, ("%s: invalid bin2bcd index > %d", > + __func__, val)); > + > + return ((rtc->reg_b & RTCSB_BIN) ? val : bin2bcd_data[val]); > +} > + > +static void > +secs_to_rtc(time_t rtctime, struct vrtc *vrtc, int force_update) > +{ > + struct clocktime ct; > + struct timespec ts; > + struct rtcdev *rtc; > + int hour; > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + if (rtctime < 0) { > + KASSERT(rtctime =3D=3D VRTC_BROKEN_TIME, > + ("%s: invalid vrtc time %#lx", __func__, > rtctime)); > + return; > + } > + > + /* > + * If the RTC is halted then the guest has "ownership" of the > + * date/time fields. Don't update the RTC date/time fields in > + * this case (unless forced). > + */ > + if (rtc_halted(vrtc) && !force_update) > + return; > + > + ts.tv_sec =3D rtctime; > + ts.tv_nsec =3D 0; > + clock_ts_to_ct(&ts, &ct); > + > + KASSERT(ct.sec >=3D 0 && ct.sec <=3D 59, ("invalid clocktime sec > %d", > + ct.sec)); > + KASSERT(ct.min >=3D 0 && ct.min <=3D 59, ("invalid clocktime min > %d", > + ct.min)); > + KASSERT(ct.hour >=3D 0 && ct.hour <=3D 23, ("invalid clocktime > hour %d", > + ct.hour)); > + KASSERT(ct.dow >=3D 0 && ct.dow <=3D 6, ("invalid clocktime wday > %d", > + ct.dow)); > + KASSERT(ct.day >=3D 1 && ct.day <=3D 31, ("invalid clocktime > mday %d", > + ct.day)); > + KASSERT(ct.mon >=3D 1 && ct.mon <=3D 12, ("invalid clocktime > month %d", > + ct.mon)); > + KASSERT(ct.year >=3D POSIX_BASE_YEAR, ("invalid clocktime year > %d", > + ct.year)); > + > + rtc =3D &vrtc->rtcdev; > + rtc->sec =3D rtcset(rtc, ct.sec); > + rtc->min =3D rtcset(rtc, ct.min); > + > + hour =3D ct.hour; > + if ((rtc->reg_b & RTCSB_24HR) =3D=3D 0) > + hour =3D (hour % 12) + 1; /* convert to a > 12-hour format */ + > + rtc->hour =3D rtcset(rtc, hour); > + > + if ((rtc->reg_b & RTCSB_24HR) =3D=3D 0 && ct.hour >=3D 12) > + rtc->hour |=3D 0x80; /* set MSB to indicate > PM */ + > + rtc->day_of_week =3D rtcset(rtc, ct.dow + 1); > + rtc->day_of_month =3D rtcset(rtc, ct.day); > + rtc->month =3D rtcset(rtc, ct.mon); > + rtc->year =3D rtcset(rtc, ct.year % 100); > +} > + > +static int > +rtcget(struct rtcdev *rtc, int val, int *retval) > +{ > + uint8_t upper, lower; > + > + if (rtc->reg_b & RTCSB_BIN) { > + *retval =3D val; > + return (0); > + } > + > + lower =3D val & 0xf; > + upper =3D (val >> 4) & 0xf; > + > + if (lower > 9 || upper > 9) > + return (-1); > + > + *retval =3D upper * 10 + lower; > + return (0); > +} > + > +static time_t > +rtc_to_secs(struct vrtc *vrtc) > +{ > + struct clocktime ct; > + struct timespec ts; > + struct rtcdev *rtc; > + struct vm *vm; > + int error, hour, pm, year; > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + vm =3D vrtc->vm; > + rtc =3D &vrtc->rtcdev; > + > + bzero(&ct, sizeof(struct clocktime)); > + > + error =3D rtcget(rtc, rtc->sec, &ct.sec); > + if (error || ct.sec < 0 || ct.sec > 59) { > + VM_CTR2(vm, "Invalid RTC sec %#x/%d", rtc->sec, > ct.sec); > + goto fail; > + } > + > + error =3D rtcget(rtc, rtc->min, &ct.min); > + if (error || ct.min < 0 || ct.min > 59) { > + VM_CTR2(vm, "Invalid RTC min %#x/%d", rtc->min, > ct.min); > + goto fail; > + } > + > + pm =3D 0; > + hour =3D rtc->hour; > + if ((rtc->reg_b & RTCSB_24HR) =3D=3D 0) { > + if (hour & 0x80) { > + hour &=3D ~0x80; > + pm =3D 1; > + } > + } > + error =3D rtcget(rtc, hour, &ct.hour); > + if ((rtc->reg_b & RTCSB_24HR) =3D=3D 0) { > + ct.hour -=3D 1; > + if (pm) > + ct.hour +=3D 12; > + } > + > + if (error || ct.hour < 0 || ct.hour > 23) { > + VM_CTR2(vm, "Invalid RTC hour %#x/%d", rtc->hour, > ct.hour); > + goto fail; > + } > + > + /* > + * Ignore 'rtc->dow' because some guests like Linux don't > bother > + * setting it at all while others like OpenBSD/i386 set it > incorrectly.=20 > + * > + * clock_ct_to_ts() does not depend on 'ct.dow' anyways so > ignore it. > + */ > + ct.dow =3D -1; > + > + error =3D rtcget(rtc, rtc->day_of_month, &ct.day); > + if (error || ct.day < 1 || ct.day > 31) { > + VM_CTR2(vm, "Invalid RTC mday %#x/%d", > rtc->day_of_month, > + ct.day); > + goto fail; > + } > + > + error =3D rtcget(rtc, rtc->month, &ct.mon); > + if (error || ct.mon < 1 || ct.mon > 12) { > + VM_CTR2(vm, "Invalid RTC month %#x/%d", rtc->month, > ct.mon); > + goto fail; > + } > + > + error =3D rtcget(rtc, rtc->year, &year); > + if (error || year < 0 || year > 99) { > + VM_CTR2(vm, "Invalid RTC year %#x/%d", rtc->year, > year); > + goto fail; > + } > + if (year >=3D 70) > + ct.year =3D 1900 + year; > + else > + ct.year =3D 2000 + year; > + > + error =3D clock_ct_to_ts(&ct, &ts); > + if (error || ts.tv_sec < 0) { > + VM_CTR3(vm, "Invalid RTC clocktime.date > %04d-%02d-%02d", > + ct.year, ct.mon, ct.day); > + VM_CTR3(vm, "Invalid RTC clocktime.time > %02d:%02d:%02d", > + ct.hour, ct.min, ct.sec); > + goto fail; > + } > + return (ts.tv_sec); /* success */ > +fail: > + return (VRTC_BROKEN_TIME); /* failure */ > +} > + > +static int > +vrtc_time_update(struct vrtc *vrtc, time_t newtime) > +{ > + struct rtcdev *rtc; > + time_t oldtime; > + uint8_t alarm_sec, alarm_min, alarm_hour; > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + rtc =3D &vrtc->rtcdev; > + alarm_sec =3D rtc->alarm_sec; > + alarm_min =3D rtc->alarm_min; > + alarm_hour =3D rtc->alarm_hour; > + > + oldtime =3D vrtc->base_rtctime; > + VM_CTR2(vrtc->vm, "Updating RTC time from %#lx to %#lx", > + oldtime, newtime); > + > + if (newtime =3D=3D oldtime) > + return (0); > + > + /* > + * If 'newtime' indicates that RTC updates are disabled then > just > + * record that and return. There is no need to do alarm > interrupt > + * processing or update 'base_uptime' in this case. > + */ > + if (newtime =3D=3D VRTC_BROKEN_TIME) { > + vrtc->base_rtctime =3D VRTC_BROKEN_TIME; > + return (0); > + } > + > + /* > + * Return an error if RTC updates are halted by the guest. > + */ > + if (rtc_halted(vrtc)) { > + VM_CTR0(vrtc->vm, "RTC update halted by guest"); > + return (EBUSY); > + } > + > + do { > + /* > + * If the alarm interrupt is enabled and 'oldtime' > is valid > + * then visit all the seconds between 'oldtime' and > 'newtime' > + * to check for the alarm condition. > + * > + * Otherwise move the RTC time forward directly to > 'newtime'. > + */ > + if (aintr_enabled(vrtc) && oldtime !=3D > VRTC_BROKEN_TIME) > + vrtc->base_rtctime++; > + else > + vrtc->base_rtctime =3D newtime; > + > + if (aintr_enabled(vrtc)) { > + /* > + * Update the RTC date/time fields before > checking > + * if the alarm conditions are satisfied. > + */ > + secs_to_rtc(vrtc->base_rtctime, vrtc, 0); > + > + if ((alarm_sec >=3D 0xC0 || alarm_sec =3D=3D > rtc->sec) && > + (alarm_min >=3D 0xC0 || alarm_min =3D=3D > rtc->min) && > + (alarm_hour >=3D 0xC0 || alarm_hour =3D=3D > rtc->hour)) { > + vrtc_set_reg_c(vrtc, rtc->reg_c | > RTCIR_ALARM); > + } > + } > + } while (vrtc->base_rtctime !=3D newtime); > + > + if (uintr_enabled(vrtc)) > + vrtc_set_reg_c(vrtc, rtc->reg_c | RTCIR_UPDATE); > + > + vrtc->base_uptime =3D sbinuptime(); > + > + return (0); > +} > + > +static sbintime_t > +vrtc_freq(struct vrtc *vrtc) > +{ > + int ratesel; > + > + static sbintime_t pf[16] =3D { > + 0, > + SBT_1S / 256, > + SBT_1S / 128, > + SBT_1S / 8192, > + SBT_1S / 4096, > + SBT_1S / 2048, > + SBT_1S / 1024, > + SBT_1S / 512, > + SBT_1S / 256, > + SBT_1S / 128, > + SBT_1S / 64, > + SBT_1S / 32, > + SBT_1S / 16, > + SBT_1S / 8, > + SBT_1S / 4, > + SBT_1S / 2, > + }; > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + /* > + * If both periodic and alarm interrupts are enabled then > use the > + * periodic frequency to drive the callout. The minimum > periodic > + * frequency (2 Hz) is higher than the alarm frequency (1 > Hz) so > + * piggyback the alarm on top of it. The same argument > applies to > + * the update interrupt. > + */ > + if (pintr_enabled(vrtc) && > divider_enabled(vrtc->rtcdev.reg_a)) { > + ratesel =3D vrtc->rtcdev.reg_a & 0xf; > + return (pf[ratesel]); > + } else if (aintr_enabled(vrtc) && update_enabled(vrtc)) { > + return (SBT_1S); > + } else if (uintr_enabled(vrtc) && update_enabled(vrtc)) { > + return (SBT_1S); > + } else { > + return (0); > + } > +} > + > +static void > +vrtc_callout_reset(struct vrtc *vrtc, sbintime_t freqsbt) > +{ > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + if (freqsbt =3D=3D 0) { > + if (callout_active(&vrtc->callout)) { > + VM_CTR0(vrtc->vm, "RTC callout stopped"); > + callout_stop(&vrtc->callout); > + } > + return; > + } > + VM_CTR1(vrtc->vm, "RTC callout frequency %d hz", SBT_1S / > freqsbt); > + callout_reset_sbt(&vrtc->callout, freqsbt, 0, > vrtc_callout_handler, > + vrtc, 0); > +} > + > +static void > +vrtc_callout_handler(void *arg) > +{ > + struct vrtc *vrtc =3D arg; > + sbintime_t freqsbt; > + time_t rtctime; > + int error; > + > + VM_CTR0(vrtc->vm, "vrtc callout fired"); > + > + VRTC_LOCK(vrtc); > + if (callout_pending(&vrtc->callout)) /* callout was > reset */ > + goto done; > + > + if (!callout_active(&vrtc->callout)) /* callout was > stopped */ > + goto done; > + > + callout_deactivate(&vrtc->callout); > + > + KASSERT((vrtc->rtcdev.reg_b & RTCSB_ALL_INTRS) !=3D 0, > + ("gratuitous vrtc callout")); > + > + if (pintr_enabled(vrtc)) > + vrtc_set_reg_c(vrtc, vrtc->rtcdev.reg_c | > RTCIR_PERIOD); + > + if (aintr_enabled(vrtc) || uintr_enabled(vrtc)) { > + rtctime =3D vrtc_curtime(vrtc); > + error =3D vrtc_time_update(vrtc, rtctime); > + KASSERT(error =3D=3D 0, ("%s: vrtc_time_update error %d", > + __func__, error)); > + } > + > + freqsbt =3D vrtc_freq(vrtc); > + KASSERT(freqsbt !=3D 0, ("%s: vrtc frequency cannot be zero", > __func__)); > + vrtc_callout_reset(vrtc, freqsbt); > +done: > + VRTC_UNLOCK(vrtc); > +} > + > +static __inline void > +vrtc_callout_check(struct vrtc *vrtc, sbintime_t freq) > +{ > + int active; > + > + active =3D callout_active(&vrtc->callout) ? 1 : 0; > + KASSERT((freq =3D=3D 0 && !active) || (freq !=3D 0 && active), > + ("vrtc callout %s with frequency %#lx", > + active ? "active" : "inactive", freq)); > +} > + > +static void > +vrtc_set_reg_c(struct vrtc *vrtc, uint8_t newval) > +{ > + struct rtcdev *rtc; > + int oldirqf, newirqf; > + uint8_t oldval, changed; > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + rtc =3D &vrtc->rtcdev; > + newval &=3D RTCIR_ALARM | RTCIR_PERIOD | RTCIR_UPDATE; > + > + oldirqf =3D rtc->reg_c & RTCIR_INT; > + if ((aintr_enabled(vrtc) && (newval & RTCIR_ALARM) !=3D 0) || > + (pintr_enabled(vrtc) && (newval & RTCIR_PERIOD) !=3D 0) || > + (uintr_enabled(vrtc) && (newval & RTCIR_UPDATE) !=3D 0)) { > + newirqf =3D RTCIR_INT; > + } else { > + newirqf =3D 0; > + } > + > + oldval =3D rtc->reg_c; > + rtc->reg_c =3D newirqf | newval; > + changed =3D oldval ^ rtc->reg_c; > + if (changed) { > + VM_CTR2(vrtc->vm, "RTC reg_c changed from %#x to > %#x", > + oldval, rtc->reg_c); > + } > + > + if (!oldirqf && newirqf) { > + VM_CTR1(vrtc->vm, "RTC irq %d asserted", RTC_IRQ); > + vatpic_pulse_irq(vrtc->vm, RTC_IRQ); > + vioapic_pulse_irq(vrtc->vm, RTC_IRQ); > + } else if (oldirqf && !newirqf) { > + VM_CTR1(vrtc->vm, "RTC irq %d deasserted", RTC_IRQ); > + } > +} > + > +static int > +vrtc_set_reg_b(struct vrtc *vrtc, uint8_t newval) > +{ > + struct rtcdev *rtc; > + sbintime_t oldfreq, newfreq; > + time_t curtime, rtctime; > + int error; > + uint8_t oldval, changed; > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + rtc =3D &vrtc->rtcdev; > + oldval =3D rtc->reg_b; > + oldfreq =3D vrtc_freq(vrtc); > + > + rtc->reg_b =3D newval; > + changed =3D oldval ^ newval; > + if (changed) { > + VM_CTR2(vrtc->vm, "RTC reg_b changed from %#x to > %#x", > + oldval, newval); > + } > + > + if (changed & RTCSB_HALT) { > + if ((newval & RTCSB_HALT) =3D=3D 0) { > + rtctime =3D rtc_to_secs(vrtc); > + if (rtctime =3D=3D VRTC_BROKEN_TIME) { > + /* > + * Stop updating the RTC if the > date/time > + * programmed by the guest is not > correct. > + */ > + VM_CTR0(vrtc->vm, "Invalid RTC > date/time " > + "programming detected"); > + > + if (rtc_flag_broken_time) > + return (-1); > + } > + } else { > + curtime =3D vrtc_curtime(vrtc); > + KASSERT(curtime =3D=3D vrtc->base_rtctime, ("%s: > mismatch " > + "between vrtc basetime (%#lx) and > curtime (%#lx)", > + __func__, vrtc->base_rtctime, curtime)); > + > + /* > + * Force a refresh of the RTC date/time > fields so > + * they reflect the time right before the > guest set > + * the HALT bit. > + */ > + secs_to_rtc(curtime, vrtc, 1); > + > + /* > + * Updates are halted so mark 'base_rtctime' > to denote > + * that the RTC date/time is in flux. > + */ > + rtctime =3D VRTC_BROKEN_TIME; > + rtc->reg_b &=3D ~RTCSB_UINTR; > + } > + error =3D vrtc_time_update(vrtc, rtctime); > + KASSERT(error =3D=3D 0, ("vrtc_time_update error %d", > error)); > + } > + > + /* > + * Side effect of changes to the interrupt enable bits. > + */ > + if (changed & RTCSB_ALL_INTRS) > + vrtc_set_reg_c(vrtc, vrtc->rtcdev.reg_c); > + > + /* > + * Change the callout frequency if it has changed. > + */ > + newfreq =3D vrtc_freq(vrtc); > + if (newfreq !=3D oldfreq) > + vrtc_callout_reset(vrtc, newfreq); > + else > + vrtc_callout_check(vrtc, newfreq); > + > + /* > + * The side effect of bits that control the RTC date/time > format > + * is handled lazily when those fields are actually read. > + */ > + return (0); > +} > + > +static void > +vrtc_set_reg_a(struct vrtc *vrtc, uint8_t newval) > +{ > + sbintime_t oldfreq, newfreq; > + uint8_t oldval, changed; > + > + KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", > __func__)); + > + newval &=3D ~RTCSA_TUP; > + oldval =3D vrtc->rtcdev.reg_a; > + oldfreq =3D vrtc_freq(vrtc); > + > + if (divider_enabled(oldval) && !divider_enabled(newval)) { > + VM_CTR2(vrtc->vm, "RTC divider held in reset at > %#lx/%#lx", > + vrtc->base_rtctime, vrtc->base_uptime); > + } else if (!divider_enabled(oldval) && > divider_enabled(newval)) { > + /* > + * If the dividers are coming out of reset then > update > + * 'base_uptime' before this happens. This is done to > + * maintain the illusion that the RTC date/time was > frozen > + * while the dividers were disabled. > + */ > + vrtc->base_uptime =3D sbinuptime(); > + VM_CTR2(vrtc->vm, "RTC divider out of reset at > %#lx/%#lx", > + vrtc->base_rtctime, vrtc->base_uptime); > + } else { > + /* NOTHING */ > + } > + > + vrtc->rtcdev.reg_a =3D newval; > + changed =3D oldval ^ newval; > + if (changed) { > + VM_CTR2(vrtc->vm, "RTC reg_a changed from %#x to > %#x", > + oldval, newval); > + } > + > + /* > + * Side effect of changes to rate select and divider enable > bits. > + */ > + newfreq =3D vrtc_freq(vrtc); > + if (newfreq !=3D oldfreq) > + vrtc_callout_reset(vrtc, newfreq); > + else > + vrtc_callout_check(vrtc, newfreq); > +} > + > +int > +vrtc_set_time(struct vm *vm, time_t secs) > +{ > + struct vrtc *vrtc; > + int error; > + > + vrtc =3D vm_rtc(vm); > + VRTC_LOCK(vrtc); > + error =3D vrtc_time_update(vrtc, secs); > + VRTC_UNLOCK(vrtc); > + > + if (error) { > + VM_CTR2(vrtc->vm, "Error %d setting RTC time to > %#lx", error, > + secs); > + } else { > + VM_CTR1(vrtc->vm, "RTC time set to %#lx", secs); > + } > + > + return (error); > +} > + > +time_t > +vrtc_get_time(struct vm *vm) > +{ > + struct vrtc *vrtc; > + time_t t; > + > + vrtc =3D vm_rtc(vm); > + VRTC_LOCK(vrtc); > + t =3D vrtc_curtime(vrtc); > + VRTC_UNLOCK(vrtc); > + >=20 > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** > _______________________________________________ > svn-src-all@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" ... /usr/local/libexec/ccache/world/cc -target x86_64-unknown-freebsd11.0 -O2 = -pipe -O3 -fvectorize -fslp-vectorize -fblocks -march=3Dnative -mmmx -msse = -msse2 -msse3 -mssse3 -mavx -maes -mpclmul -funroll-loops -march=3Dnative = -Wall -I/usr/src/lib/libvgl -std=3Dgnu99 -fstack-protector -Wsystem-headers= -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -Wno-em= pty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-= compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -W= no-enum-conversion -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter= -Qunused-arguments -c /usr/src/lib/libvgl/simple.c -o simple.o --- all_subdir_libvmmapi --- /usr/src/lib/libvmmapi/vmmapi.c:1153:21: error: variable has incomplete typ= e 'struct vm_rtc_data' struct vm_rtc_data rtcdata; ^ /usr/src/lib/libvmmapi/vmmapi.c:1153:9: note: forward declaration of 'struc= t vm_rtc_data' struct vm_rtc_data rtcdata; ^ /usr/src/lib/libvmmapi/vmmapi.c:1159:25: error: use of undeclared identifie= r 'VM_RTC_WRITE' error =3D ioctl(ctx->fd, VM_RTC_WRITE, &rtcdata); ^ /usr/src/lib/libvmmapi/vmmapi.c:1166:21: error: variable has incomplete typ= e 'struct vm_rtc_data' struct vm_rtc_data rtcdata; ^ /usr/src/lib/libvmmapi/vmmapi.c:1166:9: note: forward declaration of 'struc= t vm_rtc_data' struct vm_rtc_data rtcdata; ^ /usr/src/lib/libvmmapi/vmmapi.c:1171:25: error: use of undeclared identifie= r 'VM_RTC_READ' error =3D ioctl(ctx->fd, VM_RTC_READ, &rtcdata); ^ /usr/src/lib/libvmmapi/vmmapi.c:1180:21: error: variable has incomplete typ= e 'struct vm_rtc_time' struct vm_rtc_time rtctime; ^ /usr/src/lib/libvmmapi/vmmapi.c:1180:9: note: forward declaration of 'struc= t vm_rtc_time' struct vm_rtc_time rtctime; ^ /usr/src/lib/libvmmapi/vmmapi.c:1185:25: error: use of undeclared identifie= r 'VM_RTC_SETTIME' error =3D ioctl(ctx->fd, VM_RTC_SETTIME, &rtctime); ^ /usr/src/lib/libvmmapi/vmmapi.c:1192:21: error: variable has incomplete typ= e 'struct vm_rtc_time' struct vm_rtc_time rtctime; ^ /usr/src/lib/libvmmapi/vmmapi.c:1192:9: note: forward declaration of 'struc= t vm_rtc_time' struct vm_rtc_time rtctime; ^ /usr/src/lib/libvmmapi/vmmapi.c:1196:25: error: use of undeclared identifie= r 'VM_RTC_GETTIME' error =3D ioctl(ctx->fd, VM_RTC_GETTIME, &rtctime); ^ 8 errors generated. *** [vmmapi.So] Error code 1 make[5]: stopped in /usr/src/lib/libvmmapi 1 error make[5]: stopped in /usr/src/lib/libvmmapi *** [all_subdir_libvmmapi] Error code 2 make[4]: stopped in /usr/src/lib --- all_subdir_libunbound --- A failure has been detected in another branch of the parallel make make[5]: stopped in /usr/src/lib/libunbound *** [all_subdir_libunbound] Error code 2 make[4]: stopped in /usr/src/lib --- all_subdir_libvgl --- A failure has been detected in another branch of the parallel make make[5]: stopped in /usr/src/lib/libvgl *** [all_subdir_libvgl] Error code 2 make[4]: stopped in /usr/src/lib --- all_subdir_libstand --- A failure has been detected in another branch of the parallel make make[5]: stopped in /usr/src/lib/libstand *** [all_subdir_libstand] Error code 2 make[4]: stopped in /usr/src/lib 4 errors make[4]: stopped in /usr/src/lib A failure has been detected in another branch of the parallel make make[3]: stopped in /usr/src *** [libraries] Error code 2 make[2]: stopped in /usr/src 1 error make[2]: stopped in /usr/src *** [_libraries] Error code 2 make[1]: stopped in /usr/src 1 error make[1]: stopped in /usr/src *** [buildworld] Error code 2 make: stopped in /usr/src 1 error make: stopped in /usr/src root@nonamehost:/usr/src #=20 From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 10:00:46 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2860195C; Wed, 31 Dec 2014 10:00:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 146396624A; Wed, 31 Dec 2014 10:00:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVA0jwZ045562; Wed, 31 Dec 2014 10:00:45 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVA0jT8045556; Wed, 31 Dec 2014 10:00:45 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201412311000.sBVA0jT8045556@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 31 Dec 2014 10:00:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276462 - in head: . sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 10:00:46 -0000 Author: bz Date: Wed Dec 31 10:00:43 2014 New Revision: 276462 URL: https://svnweb.freebsd.org/changeset/base/276462 Log: Bump copyright year. Happy New Year 2015! Modified: head/COPYRIGHT head/sys/sys/copyright.h Modified: head/COPYRIGHT ============================================================================== --- head/COPYRIGHT Wed Dec 31 09:52:57 2014 (r276461) +++ head/COPYRIGHT Wed Dec 31 10:00:43 2014 (r276462) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2015 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: head/sys/sys/copyright.h ============================================================================== --- head/sys/sys/copyright.h Wed Dec 31 09:52:57 2014 (r276461) +++ head/sys/sys/copyright.h Wed Dec 31 10:00:43 2014 (r276462) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 1992-2014 The FreeBSD Project. All rights reserved. + * Copyright (C) 1992-2015 The FreeBSD Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -30,7 +30,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2014 The FreeBSD Project.\n" + "Copyright (c) 1992-2015 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 10:03:20 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CF962DE9; Wed, 31 Dec 2014 10:03:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BB2E76724D; Wed, 31 Dec 2014 10:03:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVA3K6O049017; Wed, 31 Dec 2014 10:03:20 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVA3KRW049012; Wed, 31 Dec 2014 10:03:20 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201412311003.sBVA3KRW049012@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 31 Dec 2014 10:03:20 +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: r276465 - in stable/10: . sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 10:03:20 -0000 Author: bz Date: Wed Dec 31 10:03:19 2014 New Revision: 276465 URL: https://svnweb.freebsd.org/changeset/base/276465 Log: MFC r276462: Bump copyright year. Happy New Year 2015! Modified: stable/10/COPYRIGHT stable/10/sys/sys/copyright.h Directory Properties: stable/10/ (props changed) Modified: stable/10/COPYRIGHT ============================================================================== --- stable/10/COPYRIGHT Wed Dec 31 10:02:04 2014 (r276464) +++ stable/10/COPYRIGHT Wed Dec 31 10:03:19 2014 (r276465) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2015 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: stable/10/sys/sys/copyright.h ============================================================================== --- stable/10/sys/sys/copyright.h Wed Dec 31 10:02:04 2014 (r276464) +++ stable/10/sys/sys/copyright.h Wed Dec 31 10:03:19 2014 (r276465) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 1992-2014 The FreeBSD Project. All rights reserved. + * Copyright (C) 1992-2015 The FreeBSD Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -30,7 +30,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2014 The FreeBSD Project.\n" + "Copyright (c) 1992-2015 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 10:04:43 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 308F2FAE; Wed, 31 Dec 2014 10:04:43 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1C2EE6726D; Wed, 31 Dec 2014 10:04:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVA4gfq049267; Wed, 31 Dec 2014 10:04:42 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVA4gnx049265; Wed, 31 Dec 2014 10:04:42 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201412311004.sBVA4gnx049265@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 31 Dec 2014 10:04:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276466 - in stable/9: . sys/sys X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 10:04:43 -0000 Author: bz Date: Wed Dec 31 10:04:41 2014 New Revision: 276466 URL: https://svnweb.freebsd.org/changeset/base/276466 Log: MFC r276462: Bump copyright year. Happy New Year 2015! Modified: stable/9/COPYRIGHT (contents, props changed) stable/9/sys/sys/copyright.h Directory Properties: stable/9/sys/ (props changed) stable/9/sys/sys/ (props changed) Modified: stable/9/COPYRIGHT ============================================================================== --- stable/9/COPYRIGHT Wed Dec 31 10:03:19 2014 (r276465) +++ stable/9/COPYRIGHT Wed Dec 31 10:04:41 2014 (r276466) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2015 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: stable/9/sys/sys/copyright.h ============================================================================== --- stable/9/sys/sys/copyright.h Wed Dec 31 10:03:19 2014 (r276465) +++ stable/9/sys/sys/copyright.h Wed Dec 31 10:04:41 2014 (r276466) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 1992-2014 The FreeBSD Project. All rights reserved. + * Copyright (C) 1992-2015 The FreeBSD Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -30,7 +30,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2014 The FreeBSD Project.\n" + "Copyright (c) 1992-2015 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 10:05:43 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DF80C221; Wed, 31 Dec 2014 10:05:43 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CB6C96728C; Wed, 31 Dec 2014 10:05:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVA5hMO049509; Wed, 31 Dec 2014 10:05:43 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVA5hp4049504; Wed, 31 Dec 2014 10:05:43 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201412311005.sBVA5hp4049504@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 31 Dec 2014 10:05:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r276467 - in stable/8: . sys/sys X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 10:05:44 -0000 Author: bz Date: Wed Dec 31 10:05:42 2014 New Revision: 276467 URL: https://svnweb.freebsd.org/changeset/base/276467 Log: MFC r276462: Bump copyright year. Happy New Year 2015! Modified: stable/8/COPYRIGHT (contents, props changed) stable/8/sys/sys/copyright.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/sys/ (props changed) Modified: stable/8/COPYRIGHT ============================================================================== --- stable/8/COPYRIGHT Wed Dec 31 10:04:41 2014 (r276466) +++ stable/8/COPYRIGHT Wed Dec 31 10:05:42 2014 (r276467) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2015 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: stable/8/sys/sys/copyright.h ============================================================================== --- stable/8/sys/sys/copyright.h Wed Dec 31 10:04:41 2014 (r276466) +++ stable/8/sys/sys/copyright.h Wed Dec 31 10:05:42 2014 (r276467) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 1992-2014 The FreeBSD Project. All rights reserved. + * Copyright (C) 1992-2015 The FreeBSD Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -30,7 +30,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2014 The FreeBSD Project.\n" + "Copyright (c) 1992-2015 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 15:54:02 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E9A05F62 for ; Wed, 31 Dec 2014 15:54:02 +0000 (UTC) Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7C05730D1 for ; Wed, 31 Dec 2014 15:54:02 +0000 (UTC) Received: by mail-wi0-f182.google.com with SMTP id h11so25695963wiw.15 for ; Wed, 31 Dec 2014 07:54:00 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=vml4svQiY6zqyiL38XUsG9VZMRR83ngwnsCqyhoqHn0=; b=kK5CFRUekPdvVyaco41KGfTxCP/v/60z1XbK/ggHpmCCwoCVFCTRA4PKPx1tWSmY0k DgMoSTD1QYesBIC69fbL/7yqhwNavfhtrPIgYsAN6nQl+UDV7tadcnEG4wtJhe28N+13 XJ/ds8U+I8r61kDyWbCigK8Bq00LwHeTUy/sW1UaIbzB1OBXkrdwqi92AHP1YF9TpMV9 g00ZQcRmCbKuAiZxkRsBm2BQvyKX15bwxvOPATwgwNyUKJ1FdAzdY3MH5XQFq4Y5iFst 8In8AcIGiN8ffucKZ3GpnWrB+CzOIf9WM0/X1Tu2JBJr1l9qlPu8+ixbvlSpLT65KqT+ mkdA== X-Gm-Message-State: ALoCoQlviPpQUCLcmZjU45kTp8vHHenrNWotWzwgoT2bPq4FDRmFOvoC5VY+8fSIAXcBUFmwniXy X-Received: by 10.194.93.5 with SMTP id cq5mr126519606wjb.84.1420041240322; Wed, 31 Dec 2014 07:54:00 -0800 (PST) Received: from [192.168.1.32] (81.184.188.119.dyn.user.ono.com. [81.184.188.119]) by mx.google.com with ESMTPSA id gs10sm47523479wib.12.2014.12.31.07.53.58 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 07:53:59 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276423 - stable/10/share/mk From: Julio Merino In-Reply-To: <201412302046.sBUKk2B3049040@svn.freebsd.org> Date: Wed, 31 Dec 2014 16:54:28 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201412302046.sBUKk2B3049040@svn.freebsd.org> To: Garrett Cooper X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-10@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 15:54:03 -0000 On Dec 30, 2014, at 21:46, Garrett Cooper wrote: > Author: ngie > Date: Tue Dec 30 20:46:01 2014 > New Revision: 276423 > URL: https://svnweb.freebsd.org/changeset/base/276423 >=20 > Log: > MFC r274077: >=20 > As an optimization (in simple, well used cases) only call cat = ${.ALLSRC} when > generating files from various sources instead of calling cat = ${.ALLSRC} | sed Is there any visible effect to this optimization? Otherwise, the extra = complexity does not seem warranted.= From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 16:06:27 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 784DA56F; Wed, 31 Dec 2014 16:06:27 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5941F3338; Wed, 31 Dec 2014 16:06:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVG6R6e020579; Wed, 31 Dec 2014 16:06:27 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVG6RCj020578; Wed, 31 Dec 2014 16:06:27 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201412311606.sBVG6RCj020578@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Wed, 31 Dec 2014 16:06:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276469 - head/sys/dev/sdhci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 16:06:27 -0000 Author: marius Date: Wed Dec 31 16:06:26 2014 New Revision: 276469 URL: https://svnweb.freebsd.org/changeset/base/276469 Log: - Switching the mode of Ricoh R5CE823 to SD2.0 causes their PCI device ID to change to 0xe822, which may be persistent across reboots and, thus, confuse other OSes. Therefore, restore the original mode and frequency setting on detach and shutdown. - Report Ricoh R5CE822 as such. - According to Linux, Ricoh R5CE822 also need SDHCI_QUIRK_LOWER_FREQUENCY. - Nuke an unused softc member. MFC after: 3 days Modified: head/sys/dev/sdhci/sdhci_pci.c Modified: head/sys/dev/sdhci/sdhci_pci.c ============================================================================== --- head/sys/dev/sdhci/sdhci_pci.c Wed Dec 31 10:08:17 2014 (r276468) +++ head/sys/dev/sdhci/sdhci_pci.c Wed Dec 31 16:06:26 2014 (r276469) @@ -71,7 +71,7 @@ __FBSDID("$FreeBSD$"); */ #define SDHC_PCI_MODE_KEY 0xf9 #define SDHC_PCI_MODE 0x150 -#define SDHC_PCI_MODE_SD20 0x10 +#define SDHC_PCI_MODE_SD20 0x10 #define SDHC_PCI_BASE_FREQ_KEY 0xfc #define SDHC_PCI_BASE_FREQ 0xe1 @@ -83,8 +83,9 @@ static const struct sdhci_device { } sdhci_devices[] = { { 0x08221180, 0xffff, "RICOH R5C822 SD", SDHCI_QUIRK_FORCE_DMA }, - { 0xe8221180, 0xffff, "RICOH SD", - SDHCI_QUIRK_FORCE_DMA }, + { 0xe8221180, 0xffff, "RICOH R5CE822 SD", + SDHCI_QUIRK_FORCE_DMA | + SDHCI_QUIRK_LOWER_FREQUENCY }, { 0xe8231180, 0xffff, "RICOH R5CE823 SD", SDHCI_QUIRK_LOWER_FREQUENCY }, { 0x8034104c, 0xffff, "TI XX21/XX11 SD", @@ -109,7 +110,6 @@ static const struct sdhci_device { }; struct sdhci_pci_softc { - device_t dev; /* Controller device */ u_int quirks; /* Chip specific quirks */ struct resource *irq_res; /* IRQ resource */ void *intrhand; /* Interrupt handle */ @@ -117,6 +117,8 @@ struct sdhci_pci_softc { int num_slots; /* Number of slots on this controller */ struct sdhci_slot slots[6]; struct resource *mem_res[6]; /* Memory resource */ + uint8_t cfg_freq; /* Saved mode */ + uint8_t cfg_mode; /* Saved frequency */ }; static int sdhci_enable_msi = 1; @@ -206,21 +208,43 @@ static void sdhci_pci_intr(void *arg); static void sdhci_lower_frequency(device_t dev) { + struct sdhci_pci_softc *sc = device_get_softc(dev); - /* Enable SD2.0 mode. */ + /* + * Enable SD2.0 mode. + * NB: for RICOH R5CE823, this changes the PCI device ID to 0xe822. + */ pci_write_config(dev, SDHC_PCI_MODE_KEY, 0xfc, 1); + sc->cfg_mode = pci_read_config(dev, SDHC_PCI_MODE, 1); pci_write_config(dev, SDHC_PCI_MODE, SDHC_PCI_MODE_SD20, 1); pci_write_config(dev, SDHC_PCI_MODE_KEY, 0x00, 1); /* * Some SD/MMC cards don't work with the default base - * clock frequency of 200MHz. Lower it to 50Hz. + * clock frequency of 200 MHz. Lower it to 50 MHz. */ pci_write_config(dev, SDHC_PCI_BASE_FREQ_KEY, 0x01, 1); + sc->cfg_freq = pci_read_config(dev, SDHC_PCI_BASE_FREQ, 1); pci_write_config(dev, SDHC_PCI_BASE_FREQ, 50, 1); pci_write_config(dev, SDHC_PCI_BASE_FREQ_KEY, 0x00, 1); } +static void +sdhci_restore_frequency(device_t dev) +{ + struct sdhci_pci_softc *sc = device_get_softc(dev); + + /* Restore mode. */ + pci_write_config(dev, SDHC_PCI_MODE_KEY, 0xfc, 1); + pci_write_config(dev, SDHC_PCI_MODE, sc->cfg_mode, 1); + pci_write_config(dev, SDHC_PCI_MODE_KEY, 0x00, 1); + + /* Restore frequency. */ + pci_write_config(dev, SDHC_PCI_BASE_FREQ_KEY, 0x01, 1); + pci_write_config(dev, SDHC_PCI_BASE_FREQ, sc->cfg_freq, 1); + pci_write_config(dev, SDHC_PCI_BASE_FREQ_KEY, 0x00, 1); +} + static int sdhci_pci_probe(device_t dev) { @@ -262,7 +286,6 @@ sdhci_pci_attach(device_t dev) uint16_t subvendor; int bar, err, rid, slots, i; - sc->dev = dev; model = (uint32_t)pci_get_device(dev) << 16; model |= (uint32_t)pci_get_vendor(dev) & 0x0000ffff; subvendor = pci_get_subvendor(dev); @@ -352,6 +375,18 @@ sdhci_pci_detach(device_t dev) bus_release_resource(dev, SYS_RES_MEMORY, rman_get_rid(sc->mem_res[i]), sc->mem_res[i]); } + if (sc->quirks & SDHCI_QUIRK_LOWER_FREQUENCY) + sdhci_restore_frequency(dev); + return (0); +} + +static int +sdhci_pci_shutdown(device_t dev) +{ + struct sdhci_pci_softc *sc = device_get_softc(dev); + + if (sc->quirks & SDHCI_QUIRK_LOWER_FREQUENCY) + sdhci_restore_frequency(dev); return (0); } @@ -397,6 +432,7 @@ static device_method_t sdhci_methods[] = DEVMETHOD(device_probe, sdhci_pci_probe), DEVMETHOD(device_attach, sdhci_pci_attach), DEVMETHOD(device_detach, sdhci_pci_detach), + DEVMETHOD(device_shutdown, sdhci_pci_shutdown), DEVMETHOD(device_suspend, sdhci_pci_suspend), DEVMETHOD(device_resume, sdhci_pci_resume), From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 16:15:44 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 49F34B82; Wed, 31 Dec 2014 16:15:44 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 36C413496; Wed, 31 Dec 2014 16:15:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVGFiF0025687; Wed, 31 Dec 2014 16:15:44 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVGFiUw025686; Wed, 31 Dec 2014 16:15:44 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201412311615.sBVGFiUw025686@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 31 Dec 2014 16:15:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276470 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 16:15:44 -0000 Author: ian Date: Wed Dec 31 16:15:43 2014 New Revision: 276470 URL: https://svnweb.freebsd.org/changeset/base/276470 Log: A couple small fixes to make clang 3.5 happy... Move END(sigcode) to the end of the actual instruction sequence for the function but before some misc data in the text segment. This eliminates a strange "size must be constant" error from the integrated assembler. Also, the build_pagetables function was missing an END(), but really the problem is that it shouldn't have an ASENTRY() because it's not a function that needs to be a global symbol with unwind info and all, it's just a little private subroutine used in very early kernel init. Modified: head/sys/arm/arm/locore-v6.S Modified: head/sys/arm/arm/locore-v6.S ============================================================================== --- head/sys/arm/arm/locore-v6.S Wed Dec 31 16:06:26 2014 (r276469) +++ head/sys/arm/arm/locore-v6.S Wed Dec 31 16:15:43 2014 (r276470) @@ -339,7 +339,7 @@ END(reinit_mmu) * * Addresses must be 1MiB aligned */ -ASENTRY_NP(build_pagetables) +build_pagetables: /* Set the required page attributed */ #if defined(ARM_NEW_PMAP) ldr r4, =PTE1_V|PTE1_A|PTE1_AP_KRW|TEX1_CLASS_0 @@ -520,6 +520,7 @@ ENTRY_NP(sigcode) /* Branch back to retry SYS_sigreturn */ b . - 16 +END(sigcode) .word SYS_sigreturn .word SYS_exit @@ -532,5 +533,5 @@ ENTRY_NP(sigcode) .global szsigcode szsigcode: .long esigcode-sigcode -END(sigcode) + /* End of locore.S */ From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 16:28:18 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0502EE9B; Wed, 31 Dec 2014 16:28:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C9D6B35F8; Wed, 31 Dec 2014 16:28:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVGSHjX030735; Wed, 31 Dec 2014 16:28:17 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVGSHSY030734; Wed, 31 Dec 2014 16:28:17 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412311628.sBVGSHSY030734@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 31 Dec 2014 16:28:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276471 - in stable: 10/contrib/binutils/gas/config 7/contrib/binutils/gas/config 8/contrib/binutils/gas/config 9/contrib/binutils/gas/config X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 16:28:18 -0000 Author: dim Date: Wed Dec 31 16:28:16 2014 New Revision: 276471 URL: https://svnweb.freebsd.org/changeset/base/276471 Log: MFC r276346: In contrib/binutils/gas/config/tc-ppc.c, fix a few -Wformat-security warnings. Modified: stable/9/contrib/binutils/gas/config/tc-ppc.c Directory Properties: stable/9/contrib/binutils/ (props changed) Changes in other areas also in this revision: Modified: stable/10/contrib/binutils/gas/config/tc-ppc.c stable/7/contrib/binutils/gas/config/tc-ppc.c stable/8/contrib/binutils/gas/config/tc-ppc.c Directory Properties: stable/10/ (props changed) stable/7/contrib/binutils/ (props changed) stable/8/ (props changed) stable/8/contrib/ (props changed) stable/8/contrib/binutils/ (props changed) Modified: stable/9/contrib/binutils/gas/config/tc-ppc.c ============================================================================== --- stable/9/contrib/binutils/gas/config/tc-ppc.c Wed Dec 31 16:15:43 2014 (r276470) +++ stable/9/contrib/binutils/gas/config/tc-ppc.c Wed Dec 31 16:28:16 2014 (r276471) @@ -1548,7 +1548,7 @@ ppc_insert_operand (unsigned long insn, errmsg = NULL; insn = (*operand->insert) (insn, (long) val, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad_where (file, line, errmsg); + as_bad_where (file, line, "%s", errmsg); } else insn |= ((long) val & operand->bitm) << operand->shift; @@ -2279,7 +2279,7 @@ md_assemble (char *str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); continue; } @@ -2292,7 +2292,7 @@ md_assemble (char *str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); } if ((operand->flags & PPC_OPERAND_NEXT) != 0) next_opindex = *opindex_ptr + 1; From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 16:28:18 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B1963E9C; Wed, 31 Dec 2014 16:28:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8214335F9; Wed, 31 Dec 2014 16:28:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVGSIG4030741; Wed, 31 Dec 2014 16:28:18 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVGSIgM030740; Wed, 31 Dec 2014 16:28:18 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412311628.sBVGSIgM030740@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 31 Dec 2014 16:28:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r276471 - in stable: 10/contrib/binutils/gas/config 7/contrib/binutils/gas/config 8/contrib/binutils/gas/config 9/contrib/binutils/gas/config X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 16:28:18 -0000 Author: dim Date: Wed Dec 31 16:28:16 2014 New Revision: 276471 URL: https://svnweb.freebsd.org/changeset/base/276471 Log: MFC r276346: In contrib/binutils/gas/config/tc-ppc.c, fix a few -Wformat-security warnings. Modified: stable/8/contrib/binutils/gas/config/tc-ppc.c Directory Properties: stable/8/ (props changed) stable/8/contrib/ (props changed) stable/8/contrib/binutils/ (props changed) Changes in other areas also in this revision: Modified: stable/10/contrib/binutils/gas/config/tc-ppc.c stable/7/contrib/binutils/gas/config/tc-ppc.c stable/9/contrib/binutils/gas/config/tc-ppc.c Directory Properties: stable/10/ (props changed) stable/7/contrib/binutils/ (props changed) stable/9/contrib/binutils/ (props changed) Modified: stable/8/contrib/binutils/gas/config/tc-ppc.c ============================================================================== --- stable/8/contrib/binutils/gas/config/tc-ppc.c Wed Dec 31 16:15:43 2014 (r276470) +++ stable/8/contrib/binutils/gas/config/tc-ppc.c Wed Dec 31 16:28:16 2014 (r276471) @@ -1474,7 +1474,7 @@ ppc_insert_operand (insn, operand, val, errmsg = NULL; insn = (*operand->insert) (insn, (long) val, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad_where (file, line, errmsg); + as_bad_where (file, line, "%s", errmsg); } else insn |= (((long) val & ((1 << operand->bits) - 1)) @@ -2210,7 +2210,7 @@ md_assemble (str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); continue; } @@ -2223,7 +2223,7 @@ md_assemble (str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); } if ((operand->flags & PPC_OPERAND_NEXT) != 0) next_opindex = *opindex_ptr + 1; From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 16:28:20 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 24D58F6F; Wed, 31 Dec 2014 16:28:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EBB4A35FB; Wed, 31 Dec 2014 16:28:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVGSJrf030759; Wed, 31 Dec 2014 16:28:19 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVGSJeb030758; Wed, 31 Dec 2014 16:28:19 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412311628.sBVGSJeb030758@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 31 Dec 2014 16:28:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r276471 - in stable: 10/contrib/binutils/gas/config 7/contrib/binutils/gas/config 8/contrib/binutils/gas/config 9/contrib/binutils/gas/config X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 16:28:20 -0000 Author: dim Date: Wed Dec 31 16:28:16 2014 New Revision: 276471 URL: https://svnweb.freebsd.org/changeset/base/276471 Log: MFC r276346: In contrib/binutils/gas/config/tc-ppc.c, fix a few -Wformat-security warnings. Modified: stable/7/contrib/binutils/gas/config/tc-ppc.c Directory Properties: stable/7/contrib/binutils/ (props changed) Changes in other areas also in this revision: Modified: stable/10/contrib/binutils/gas/config/tc-ppc.c stable/8/contrib/binutils/gas/config/tc-ppc.c stable/9/contrib/binutils/gas/config/tc-ppc.c Directory Properties: stable/10/ (props changed) stable/8/ (props changed) stable/8/contrib/ (props changed) stable/8/contrib/binutils/ (props changed) stable/9/contrib/binutils/ (props changed) Modified: stable/7/contrib/binutils/gas/config/tc-ppc.c ============================================================================== --- stable/7/contrib/binutils/gas/config/tc-ppc.c Wed Dec 31 16:15:43 2014 (r276470) +++ stable/7/contrib/binutils/gas/config/tc-ppc.c Wed Dec 31 16:28:16 2014 (r276471) @@ -1474,7 +1474,7 @@ ppc_insert_operand (insn, operand, val, errmsg = NULL; insn = (*operand->insert) (insn, (long) val, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad_where (file, line, errmsg); + as_bad_where (file, line, "%s", errmsg); } else insn |= (((long) val & ((1 << operand->bits) - 1)) @@ -2210,7 +2210,7 @@ md_assemble (str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); continue; } @@ -2223,7 +2223,7 @@ md_assemble (str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); } if ((operand->flags & PPC_OPERAND_NEXT) != 0) next_opindex = *opindex_ptr + 1; From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 16:28:19 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6D126E9D; Wed, 31 Dec 2014 16:28:19 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D81535FA; Wed, 31 Dec 2014 16:28:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVGSJc7030749; Wed, 31 Dec 2014 16:28:19 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVGSJG6030748; Wed, 31 Dec 2014 16:28:19 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412311628.sBVGSJG6030748@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 31 Dec 2014 16:28:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276471 - in stable: 10/contrib/binutils/gas/config 7/contrib/binutils/gas/config 8/contrib/binutils/gas/config 9/contrib/binutils/gas/config X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 16:28:19 -0000 Author: dim Date: Wed Dec 31 16:28:16 2014 New Revision: 276471 URL: https://svnweb.freebsd.org/changeset/base/276471 Log: MFC r276346: In contrib/binutils/gas/config/tc-ppc.c, fix a few -Wformat-security warnings. Modified: stable/10/contrib/binutils/gas/config/tc-ppc.c Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/7/contrib/binutils/gas/config/tc-ppc.c stable/8/contrib/binutils/gas/config/tc-ppc.c stable/9/contrib/binutils/gas/config/tc-ppc.c Directory Properties: stable/7/contrib/binutils/ (props changed) stable/8/ (props changed) stable/8/contrib/ (props changed) stable/8/contrib/binutils/ (props changed) stable/9/contrib/binutils/ (props changed) Modified: stable/10/contrib/binutils/gas/config/tc-ppc.c ============================================================================== --- stable/10/contrib/binutils/gas/config/tc-ppc.c Wed Dec 31 16:15:43 2014 (r276470) +++ stable/10/contrib/binutils/gas/config/tc-ppc.c Wed Dec 31 16:28:16 2014 (r276471) @@ -1548,7 +1548,7 @@ ppc_insert_operand (unsigned long insn, errmsg = NULL; insn = (*operand->insert) (insn, (long) val, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad_where (file, line, errmsg); + as_bad_where (file, line, "%s", errmsg); } else insn |= ((long) val & operand->bitm) << operand->shift; @@ -2279,7 +2279,7 @@ md_assemble (char *str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); continue; } @@ -2292,7 +2292,7 @@ md_assemble (char *str) { insn = (*operand->insert) (insn, 0L, ppc_cpu, &errmsg); if (errmsg != (const char *) NULL) - as_bad (errmsg); + as_bad ("%s", errmsg); } if ((operand->flags & PPC_OPERAND_NEXT) != 0) next_opindex = *opindex_ptr + 1; From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 16:30:35 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 36E5F3F9; Wed, 31 Dec 2014 16:30:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 231FA3633; Wed, 31 Dec 2014 16:30:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVGUZk1033518; Wed, 31 Dec 2014 16:30:35 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVGUY9M033516; Wed, 31 Dec 2014 16:30:34 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201412311630.sBVGUY9M033516@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Wed, 31 Dec 2014 16:30:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276472 - head/usr.bin/patch X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 16:30:35 -0000 Author: pfg Date: Wed Dec 31 16:30:33 2014 New Revision: 276472 URL: https://svnweb.freebsd.org/changeset/base/276472 Log: Fixes to exit status. Exit with EXIT_FAILURE for invalid arguments. Fixes NetBSD-PR 43517. Print version string to stdout instead of stderr; it is user-requested and not an error. Obtained from: NetBSD MFC after: 5 days Modified: head/usr.bin/patch/patch.c head/usr.bin/patch/util.c Modified: head/usr.bin/patch/patch.c ============================================================================== --- head/usr.bin/patch/patch.c Wed Dec 31 16:28:16 2014 (r276471) +++ head/usr.bin/patch/patch.c Wed Dec 31 16:30:33 2014 (r276472) @@ -634,7 +634,7 @@ usage(void) " [-r rej-name] [-V t | nil | never] [-x number] [-z backup-ext]\n" " [--posix] [origfile [patchfile]]\n" " patch Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4C0CA689; Wed, 31 Dec 2014 17:44:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3831D24BE; Wed, 31 Dec 2014 17:44:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVHiwkV068861; Wed, 31 Dec 2014 17:44:58 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVHiw1Y068860; Wed, 31 Dec 2014 17:44:58 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201412311744.sBVHiw1Y068860@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Wed, 31 Dec 2014 17:44:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276474 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 17:44:58 -0000 Author: alc Date: Wed Dec 31 17:44:57 2014 New Revision: 276474 URL: https://svnweb.freebsd.org/changeset/base/276474 Log: Eliminate a stale debug message. The per-CPU cache locks were replaced by critical sections in r145686. PR: 193254 Submitted by: luke.tw@gmail.com MFC after: 3 days Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Wed Dec 31 16:50:46 2014 (r276473) +++ head/sys/vm/uma_core.c Wed Dec 31 17:44:57 2014 (r276474) @@ -1834,9 +1834,6 @@ uma_startup(void *bootmem, int boot_page zone_ctor(zones, sizeof(struct uma_zone), &args, M_WAITOK); #ifdef UMA_DEBUG - printf("Initializing pcpu cache locks.\n"); -#endif -#ifdef UMA_DEBUG printf("Creating slab and hash zones.\n"); #endif From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 19:09:30 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E3632663; Wed, 31 Dec 2014 19:09:30 +0000 (UTC) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BB8AA6443E; Wed, 31 Dec 2014 19:09:30 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id B0241B976; Wed, 31 Dec 2014 14:09:29 -0500 (EST) From: John Baldwin To: Rui Paulo Subject: Re: svn commit: r276187 - head/sys/arm/arm Date: Wed, 31 Dec 2014 13:40:03 -0500 User-Agent: KMail/1.13.5 (FreeBSD/8.4-CBSD-20140415; KDE/4.5.5; amd64; ; ) References: <201412241712.sBOHCqvW039381@svn.freebsd.org> <1419471084.1018.160.camel@freebsd.org> <9F69A6CD-D352-4A91-97F6-B3E1FF638211@me.com> In-Reply-To: <9F69A6CD-D352-4A91-97F6-B3E1FF638211@me.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201412311340.03637.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 31 Dec 2014 14:09:29 -0500 (EST) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Andrew Turner , Ian Lepore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 19:09:31 -0000 On Wednesday, December 24, 2014 9:05:47 pm Rui Paulo wrote: > On Dec 24, 2014, at 17:31, Ian Lepore wrote: > > In every architecture and every place it's used, or just arm just here? > > You're right, it can be found at least in MIPS and amd64. > > > This appears to be an idiom, or at least something that has been pasted > > in identical form in every arch so far. > > The idiom is a bit different in amd64: the variable in the for-loop isn't immediately reused, but it's a global variable anyway... That's what I thought deserves a comment. > > Regarding the pmap_kenter_temporary(), the first problem is the function name: it might be a temporary mapping, but the real use is for crash dumps (I wonder why ACPI abuses this mapping). The other problem is the fact that a pmap function is so tied to crash dumps. However, that's a bigger problem. ACPI abuses it because it is available (and we can't possibly generate a crash dump early when ACPI uses it). ACPI is only use it to map ACPI tables before the VM system is initalized enough to map the tables using normal KVA. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 19:22:43 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 88506955; Wed, 31 Dec 2014 19:22:43 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1BD6164B76; Wed, 31 Dec 2014 19:21:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVJLsu5017116; Wed, 31 Dec 2014 19:21:54 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVJLsPY017115; Wed, 31 Dec 2014 19:21:54 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201412311921.sBVJLsPY017115@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 31 Dec 2014 19:21:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276477 - head/contrib/elftoolchain/readelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 19:22:43 -0000 Author: emaste Date: Wed Dec 31 19:21:53 2014 New Revision: 276477 URL: https://svnweb.freebsd.org/changeset/base/276477 Log: readelf: Add stdint.h for C99 fixed size types Upstream elftoolchain brings in stdint.h via an ELF header that we do not use in FreeBSD. Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/readelf/readelf.c Modified: head/contrib/elftoolchain/readelf/readelf.c ============================================================================== --- head/contrib/elftoolchain/readelf/readelf.c Wed Dec 31 18:16:50 2014 (r276476) +++ head/contrib/elftoolchain/readelf/readelf.c Wed Dec 31 19:21:53 2014 (r276477) @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 20:13:40 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 561A586C; Wed, 31 Dec 2014 20:13:40 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3EF492FFB; Wed, 31 Dec 2014 20:13:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVKDeT2044650; Wed, 31 Dec 2014 20:13:40 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVKDWpR044612; Wed, 31 Dec 2014 20:13:32 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201412312013.sBVKDWpR044612@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 31 Dec 2014 20:13:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276478 - in stable/10: contrib/netbsd-tests contrib/netbsd-tests/include contrib/netbsd-tests/lib/libc/db contrib/netbsd-tests/lib/libc/gen contrib/netbsd-tests/lib/libc/gen/posix_spaw... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 20:13:40 -0000 Author: ngie Date: Wed Dec 31 20:13:31 2014 New Revision: 276478 URL: https://svnweb.freebsd.org/changeset/base/276478 Log: MFC r272343,r272458,r272890,r272891,r272901,r272902,r272903,r272905,r272908,r272909,r272910,r272914,r272915,r272979,r272980,r273010,r273011,r273012,r273015,r273017,r273019,r273020,r273021,r273022,r273023,r273024,r273025,r273389,r273390,r273391,r273393,r273395,r273396,r273397,r273410,r273516,r273517,r273520,r273521,r273522,r273523,r273524,r273525,r273526,r273527,r273528,r273529,r273530,r273533,r273534,r273535,r273536,r273537,r273538,r273539,r273540,r273572,r273574,r273578,r273579,r273591,r273592,r273928,r273933,r273935,r273936,r273937,r273938,r273942,r273943,r273945,r273946,r273947,r273948,r273949,r273950,r273951,r273952,r274061,r274062,r274066,r274067,r274072,r274074,r274079,r274090,r274142,r274143,r274571,r274572,r274573,r274574,r274575,r274576,r274577,r274579,r274597,r274598,r274599,r274600,r274601,r274626,r275033,r276046,r276430: r272343: r272458: Import the NetBSD test suite from ^/vendor/NetBSD/tests/09.30.2014_20.45 , minus the vendor Makefiles Provide directions for how to bootstrap the vendor sources in FREEBSD-upgrade MFC after 2 weeks Discussed with: rpaulo Sponsored by: EMC / Isilon Storage Division r272890: Only build/run hsearch_basic and hsearch_r_basic on NetBSD hdestroy1 is not present on FreeBSD Sponsored by: EMC / Isilon Storage Division r272891: Expect SIGSEGV in lib/libc/stdlib/t_getenv:setenv_basic See bin/189805 for more details In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r272901: Disable tests that don't pass on FreeBSD due to missing support in humanize_number(3). Bringing in additional revisions from NetBSD's humanize_number(3) will fix the tests Account for the fact that util.h on NetBSD is libutil.h on FreeBSD Submitted by: pho Sponsored by: EMC / Isilon Storage Division r272902: Add missing #include for gettimeofday Sponsored by: EMC / Isilon Storage Division r272903: FreeBSD returns ENOTTY instead of EBADF in ttyname_r; mark it as an expected failure PR: 191936 In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r272905: FreeBSD doesn't support strings greater than MAXHOSTNAMELEN-1 in {get,set}{domain,host}name. Adjust the tests to not exceed that value when testing out the code Add a positive and negative test for MAXHOSTNAMELEN-1 and MAXHOSTNAMELEN, respectively PR: 181127 In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r272908: Disable the invalid pointer test on FreeBSD FreeBSD segfaults on invalid pointers passed to getcwd because it throbs the address passed in in libc, whereas NetBSD just passes the information off to the syscall, which allows the kernel to return EFAULT on bad pointers. In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r272909: Handle getting/setting niceness/priority correctly on FreeBSD vs NetBSD This might be fallout from PR: 189821 Submitted by: pho Sponsored by: EMC / Isilon Storage Division r272910: SIGPWR does not exist on FreeBSD Sponsored by: EMC / Isilon Storage Division r272914: Skip over t_spawn_open_nonexistent_diag because it requires NetBSD specific additions to posix_spawn Sponsored by: EMC / Isilon Storage Division r272915: Port the testcase to FreeBSD - Make #include path to h_macros.h a non-relative path - __gl_stat_t is synonymous with struct stat on FreeBSD - FreeBSD doesn't have _DIRENT_RECLEN - Skip over glob_star on FreeBSD (testcase doesn't pass) In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r272979: Only #include on NetBSD Sponsored by: EMC / Isilon Storage Division r272980: #include libutil.h for fparseln on FreeBSD Sponsored by: EMC / Isilon Storage Division r273010: Implement 64MB memory limit for test to ensure that it fails reliably in 600 seconds; it would previously fail inconsistently when run in some virtual machine configurations This patch might need to be reverted or revisited later (see the attached PR for more details) PR: 169302 Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273011: Fix compilation errors with missing wide-type headers and fix compilation warnings with -Wformat In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r273012: - Add libutil #include for fparseln - Change ATF_REQUIRE_EQ_MSG to ATF_CHECK_EQ_MSG to gather all failing results possible (currently 12 with leftassoc) - Mark leftassoc "atf_tc_expect_fail" on FreeBSD (PR coming soon after further analysis is done on the code) In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r273015: Expect nice_err to fail on FreeBSD with unprivileged users PR: 189821 Sponsored by: EMC / Isilon Storage Division r273017: Add #include for printf Sponsored by: EMC / Isilon Storage Division r273019: Do initial port of contrib/netbsd-tests/lib/libc/locale t_io: - Expect failures potentially related to implementation-specific knowledge of the zh_TW.Big5 locale [*] t_mbrtowc: - Handle unknown locales more gracefully (do not test if the locale doesn't exist) - Expect failure with mbrtowc_internal dealing with Japanese locales (potentially related to implementation detail knowledge of the ja_* locales) [*]. t_mbstowcs, t_mbtowc, t_wctomb: - Handle unknown locales more gracefully (do not test if the locale doesn't exist) t_wcstod: - Treat FreeBSD like NetBSD and Linux in the XXX: FIXME section [*] More investigation is required to determine the root cause of the failures Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273020: memmem with NUL length "needle" (aka small) strings on FreeBSD/OSX returns NULL instead of the "haystack" value (aka big) Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273021: Use 1 as a random seed, as recommended in srandom(3). Adjust the random values accordingly Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273022: Add #include to get sys_nerr definition Sponsored by: EMC / Isilon Storage Division r273023: __isnanl is automatically picked according to data type in . There isn't a need for the explicit __isnanl test Sponsored by: EMC / Isilon Storage Division r273024: Only test the return value in mktime_negyear Testing for the errno is an optional requirement according to POSIX, and FreeBSD doesn't document that errno would be set on failure with mktime Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273025: Change ATF_REQUIRE_MSG calls to ATF_CHECK_MSG to get as many errors as possible t_strptime:common.. - Expect the testcase body as a whole to fail. Multiple PRs will be filed to track the issues (there are 18 check failures) t_strptime:day.. - %EA and %OA seem to be case insensitive on FreeBSD r273389: Port lib/libc/gen/t_siginfo to FreeBSD - mcontext_t on FreeBSD doesn't have a __gregs field (it's split out on FreeBSD into separate fields). In order to avoid muddying the test code with MD code, the debugging trace info has not been implemented - FreeBSD does not implement the si_stime and si_utime fields in siginfo_t, so omit the debugging code that dumps the values - sys/inttypes.h doesn't exist on FreeBSD Sponsored by: EMC / Isilon Storage Division r273390: libutil.h is required for fparseln on FreeBSD Sponsored by: EMC / Isilon Storage Division r273391: Add missing #include for sys/stat.h for fchmod Sponsored by: EMC / Isilon Storage Division r273393: Port t_write to FreeBSD - Mark the signo variable for the signal handle __unused - Use limits.h instead of sys/syslimits.h (the latter does not exist on FreeBSD) Sponsored by: EMC / Isilon Storage Division r273395: Mark osi __unused so this compiles cleanly on FreeBSD Sponsored by: EMC / Isilon Storage Division r273396: unlink("/") fails with EISDIR instead of EBUSY on FreeBSD; test for that instead Sponsored by: EMC / Isilon Storage Division r273397: Port t_chroot to FreeBSD - Add missing #include sys/stat.h for mkdir(2) - Omit the fchroot(2) tests because the support is not present on FreeBSD Sponsored by: EMC / Isilon Storage Division r273410: Add sys/socket.h #include for bind(2), et al Sponsored by: EMC / Isilon Storage Division r273516: Add netinet/in.h for struct sockaddr_in Sponsored by: EMC / Isilon Storage Division r273517: Expect getgroups_err to fail on FreeBSD PR: 189941 Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273520: Port t_pipe2.c to FreeBSD - Omit the pipe2_nosigpipe testcase on FreeBSD (FreeBSD doesn't have O_NOSIGPIPE). - Convert "fcntl(n, F_CLOSEM)" to "closefrom(n)". - Save and restore the resource limit on the number of files (RLIMIT_NOFILE). In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r273521: Convert "fcntl(n, F_CLOSEM)" to "closefrom(n)" Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273522: - Mark unused parameters __unused in handler - Call sigqueue with getpid() instead of 0 -- the latter idiom appears to only be valid on NetBSD In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r273523: Add limits.h #include for LINE_MAX Sponsored by: EMC / Isilon Storage Division r273524: Add sys/socket.h #include for struct sockaddr_in Sponsored by: EMC / Isilon Storage Division r273525: Port t_mmap.c to FreeBSD - Add needed headers for the testcases - Omit mmap_block on non-NetBSD OSes - Use "security.bsd.map_at_zero" instead of "vm.user_va0_disable" Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273526: Omit the pollts testcases on FreeBSD Sponsored by: EMC / Isilon Storage Division r273527: Omit all of the testcases as revoke(2) is only implemented on devfs(5) Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273528: Mark signo __unused in handler(..) Sponsored by: EMC / Isilon Storage Division r273529: - Omit the poll testcases on FreeBSD (they require pollts) - Add necessary headers for the testcases Sponsored by: EMC / Isilon Storage Division r273530: Add limits.h #include for INT_MAX Sponsored by: EMC / Isilon Storage Division r273533: Use /truncate_test.root_owned instead of /usr/bin/fpr as fpr does not exist on FreeBSD truncate_test.root_owned will be generated at build time and owned by root In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r273534: - Mark sig/signo __unused - Do not provide a relative path via #include "h_macros.h" Sponsored by: EMC / Isilon Storage Division r273535: - Omit setrlimit_nthr testcase on FreeBSD (requires lwp.h, et al) - Expect overflow with rlim_max at INT64_MAX, not UINT64_MAX (rlim_t is int64_t on FreeBSD) In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r273536: Add limits.h #include for SSIZE_MAX Sponsored by: EMC / Isilon Storage Division r273537: Add limits.h #include for SSIZE_MAX Sponsored by: EMC / Isilon Storage Division r273538: Fix a typo (__FreeBSD__ -> __NetBSD__ when omitting setrlimit_nthr) r273539: Mark signum __unused Sponsored by: EMC / Isilon Storage Division r273540: Omit the mprotect_exec testcase on FreeBSD Sponsored by: EMC / Isilon Storage Division r273572: - Ignore EINVAL check with mknod(path, S_IFCHR, -1) as the testcase is always executed on a non-devfs filesystem - Expect mknod(path, S_IFREG, 0) to fail on FreeBSD Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273574: - Test for EINVAL requirement when passing an invalid flag in to msync(2) - Expect ENOMEM instead of EFAULT when msync'ing a previously munmap'ed region on FreeBSD Submitted by: pho Sponsored by: EMC / Isilon Storage Division r273578: - Add inttypes.h and stdint.h in lieu of int_limits.h from NetBSD - Use #include "h_macros.h" instead of relative path analog Sponsored by: EMC / Isilon Storage Division r273579: - Mark signo __unused in the signal handler function - Effectively #if 0 out some code that does not fail on FreeBSD In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r273591: Correct my previous commit: - getrusage_utime_back succeeds reliably on FreeBSD - getrusage_utime_zero passes/fails in a seemingly non-deterministic manner. Skip it for now (and fix it later) In the initial port of this testcase to FreeBSD, the results failed reliably in the same manner as it does on NetBSD Sponsored by: EMC / Isilon Storage Division r273592: - Add sys/types.h for the APIs in sys/sysctl.h - Poke at VM_MIN_ADDRESS in machine/vmparam.h because FreeBSD doesn't have a vm.minaddress sysctl analog - Expect ENOMEM instead of EAGAIN in mlock_limits - Provide mlock an mmap'ed page twice to simulate MAP_WIRED on NetBSD In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r273928: Put mtree test files into a subdirectory. Kyua 0.11 points TMPDIR to the test's work directory, and atf_check creates auxiliary files in TMPDIR. This confuses a couple of mtree tests that were using the work directory's root to validate the contents of the directory. Fix the two affected tests by creating an auxiliary directory to use for the mtree tests. (Kyua should probably do this on its own; filed bug #133 upstream to take a look at this.) r273933: Don't prune duplicate services in the expected output from /etc/services on FreeBSD Submitted by: pho r273935: Port tests to FreeBSD/Linux Some of the testcases don't work outside of NetBSD, and the behavior of ether_aton_r differs between FreeBSD, Linux, and NetBSD, and the calls to the API need to be massaged for FreeBSD and Linux. Submitted by: pho r273936: Port lib/libc/net/h_dns_server to FreeBSD Submitted by: pho r273937: Port lib/libc/sys/t_dup to FreeBSD/Linux - The requirements differ between FreeBSD/Linux when dealing with oldd/newd being equal (both fail with EINVAL, not EBADF) - Add an EBADF testcase - Fix compilation issues on clang In collaboration with: pho r273938: getitimer on FreeBSD returns the last set time instead of the remaining time; test for that instead Submitted by: pho r273942: Skip :sethostname_basic because it messes up the test host's hostname Convert code from #if defined(__FreeBSD__) to #ifdef __FreeBSD__ r273943: Port t_kevent to FreeBSD Submitted by: pho r273945: Port t_mincore to FreeBSD Mark :mincore_resid as atf_tc_expect_fail on FreeBSD because of new bug discovered in running the tests (it succeeded from earlier on in the year to September/October on FreeBSD, at least) Submitted by: pho r273946: Port h_atexit to FreeBSD __cxa_atexit varies between FreeBSD and NetBSD, and thus we must use pointers instead of static fields in the BSS. More extensive discussion is included in the source code In collaboration with: kib Submitted by: pho r273947: Expect :snprintf_posarg_error to blow up with a SIGSEGV on !NetBSD OSes r273948: Disable testcases 12 and 15-22 on FreeBSD Submitted by: pho r273949: Add new atf_tc_expect_fail to fflush_err; this is a new (within the past couple months) bug r273950: Skip :fopen_regular on !NetBSD because it's a NetBSD specific test Submitted by: pho r273951: Expect :sscanf_whitespace to fail on !NetBSD OSes Submitted by: pho r273952: Port h_hash and t_sha2 to FreeBSD t_sha2 contains dirty copy-paste hacks that need to be fixed with the openssh OpenBSD compat layer Submitted by: pho r274061: Port t_db.sh to FreeBSD - The blocksize on FreeBSD is 32kB, not 64kB - Add some detection for MK_DICT == no; /nonexistent is echoed along with atf_skip to ensure that the test will fail if dict(..) is called in the non-final stage of the pipeline Submitted by: pho r274062: inet_network on FreeBSD returns NULL when provided "0x" to inet_network Submitted by: pho r274066: Port lib/libc/ssp to FreeBSD In most cases, the buffers and data were resized, but when dealing with the helpers, some of the code was adjusted to fail more reliably Submitted by: pho r274067: rpc_control on FreeBSD is a public-ish API (not prefixed with __), not private like NetBSD Submitted by: pho r274072: Finish off lib/libc/stdlib/t_strtod.c port by checking for "y" twice on FreeBSD, and always assume long long double exists on FreeBSD Submitted by: pho r274074: Add Makefile snippet to ease porting NetBSD testcases to FreeBSD from contrib/netbsd-tests This Makefile snippet handles polluting testcases with -lnetbsd, specific headers for ATF version differences, and does necessary rewriting for the testcases to match the format discussed on the TestSuite wiki page (t_ -> _test) One must define SRCTOP (inspired by projects/bmake), OBJTOP, and TESTSRC (e.g. contrib/netbsd-tests/lib/libc/gen) to use the Makefile snippet Test programs are specific either via NETBSD_ATF_TESTS_C or NETBSD_ATF_TESTS_SH C++ analogs aren't currently implemented. The imported testcases will be cleaned up to use this Makefile snippet pseudo "API". r274079: Import proper fix for misc/49356 (/usr/include/atf-c/config.h) after atf-c/config.h was removed from the build Pointyhat to: me (again, for not running make delete-old after running test builds) r274090: Fix the Jenkins test run by skipping the negative testcases earlier The problem is that lib.libc.locale.t_io:bad_big5_wprintf was printing out illegal Unicode characters, which causes XML parsers to bail immediately, e.g. % kyua report-junit > ~/report.junit % python2 -c 'import xml.dom.minidom as md; md.parse("/home/ngie/report.junit")' Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/xml/dom/minidom.py", line 1918, in parse return expatbuilder.parse(file) File "/usr/local/lib/python2.7/xml/dom/expatbuilder.py", line 924, in parse result = builder.parseFile(fp) File "/usr/local/lib/python2.7/xml/dom/expatbuilder.py", line 207, in parseFile parser.Parse(buffer, 0) xml.parsers.expat.ExpatError: not well-formed (invalid token): line 27137, column 13 r274142: Remove expected failure from lib.libc.sys.t_mincore:mincore_resid The failure was added based on observation seen on 11.0-CURRENT @ r273153, not based on internal testing at EMC/Isilon PR: 194829 Tested with the following configuration: - amd64/i386 - 11.0-CURRENT @ r273153 - 100 times in a tight loop as root with the following commands... -- kyua test lib/libc -- kyua test lib/libc/sys -- kyua test lib/libc/sys/mincore_test r274143: Expect lib.libc.sys.getcontext_test.setcontext_link to fail on amd64; add additional debugging to make the underlying problem more visible Calling setcontext(2) on amd64 as shown in the test program is failing on amd64, not i386, with a return code of -1 and an errno of EINVAL Further investigation is being done in the PR to determine the root cause for the failure PR: 194828 Tested with the following configuration: - amd64/i386 - 11.0-CURRENT @ r273153 - 100 times in a tight loop as root with the following commands... -- kyua test lib/libc -- kyua test lib/libc/sys -- kyua test lib/libc/sys/getcontext_test r274571: Use _exit instead of exit so the file descriptors aren't flushed twice in the child processes Submitted by: pho r274572: Only expect timeouts on powerpc with NetBSD Submitted by: pho r274573: Expect :pthread_detach to fail with EINVAL instead of ESRCH on FreeBSD PR: 191906 In collaboration with: pho r274574: Add pthread_np.h #include and initialize the pthread attribute on FreeBSD Submitted by: pho r274575: #ifdef out a printf on !NetBSD that causes the testcase to fail when comparing the output from the helper program Submitted by: pho r274576: Port helper program to FreeBSD, similar to ../../lib/libc/stdlib/h_atexit.c Submitted by: pho In collaboration with: kib r274577: Add missing sys/time.h #include for timespecsub macro in lib/libnetbsd/sys/time.h r274579: Call sem_unlink on semaphores before attempting to create them Due to the lack of uniqueness in the semaphore name, and the fact that the tests don't have cleanup routines, an interrupted test can leave a semaphore "laying around", causing all subsequent attempts to run the test to fail I will file a NetBSD PR for this issue soon r274597: Skip the long-double epsilon checks on FreeBSD/i386 Sponsored by: EMC / Isilon Storage Division r274598: Reset errno to 0 before running scalbn to be sure that the tested errno is valid Sponsored by: EMC / Isilon Storage Division r274599: Alias isinff to isinf on FreeBSD isinf on FreeBSD automatically picks the appropriate type per math.h Sponsored by: EMC / Isilon Storage Division r274600: - Expect exp2_powers to fail on FreeBSD/i386 - Expect exp2_values to fail on FreeBSD due to the small epsilon Sponsored by: EMC / Isilon Storage Division r274601: - Skip over the testcases that call cbrtl on platforms where LDBL_PREC == 53 (arm, mips, powerpc). This fixes the build on these platforms, based on some ad hoc tinderbox runs I did a while ago - Skip cast the arguments to powl as long double so powl properly interprets those arugments at compile-time when picking the type Sponsored by: EMC / Isilon Storage Division r274626: Mechanically replace #if defined(__FreeBSD__) and #if defined(__NetBSD__) with their #ifdef equivalents for everything changed in contrib/netbsd-tests. There are some items from the vendor tree that use #if defined(__FreeBSD__) or #if defined(__NetBSD__) which are being left alone Requested by: bde, rpaulo Sponsored by: EMC / Isilon Storage Division r275033: Only pass 6 arguments to the 'run' function on amd64. amd64's makecontext on FreeBSD only supports a maximum of 6 arguments. This fixes the setcontext_link test on amd64. PR: 194828 r276046: Add __FreeBSD_version guards around hsearch_r to ease MFCing the code to stable/10 It was added when __FreeBSD_version was ~1100027 r276430: Expect access_test:access_inval to fail before __FreeBSD_version == 1100033 This will allow me to MFC the test, as jilles@ requested that I don't MFC the access(2) KBI change to 10-STABLE in r271655 Added: stable/10/contrib/netbsd-tests/ - copied from r272458, head/contrib/netbsd-tests/ stable/10/share/mk/netbsd-tests.test.mk - copied, changed from r274074, head/share/mk/netbsd-tests.test.mk Modified: stable/10/contrib/netbsd-tests/include/t_paths.c stable/10/contrib/netbsd-tests/lib/libc/db/t_db.sh stable/10/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_fileactions.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_fpsetmask.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_getcwd.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_glob.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_isnan.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_nice.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_raise.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_setdomainname.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_sethostname.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_siginfo.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_sleep.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_time.c stable/10/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c stable/10/contrib/netbsd-tests/lib/libc/hash/h_hash.c stable/10/contrib/netbsd-tests/lib/libc/hash/t_sha2.c stable/10/contrib/netbsd-tests/lib/libc/inet/t_inet_network.c stable/10/contrib/netbsd-tests/lib/libc/locale/t_io.c stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbrtowc.c stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbstowcs.c stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c stable/10/contrib/netbsd-tests/lib/libc/locale/t_wcstod.c stable/10/contrib/netbsd-tests/lib/libc/locale/t_wctomb.c stable/10/contrib/netbsd-tests/lib/libc/net/h_dns_server.c stable/10/contrib/netbsd-tests/lib/libc/net/t_ether_aton.c stable/10/contrib/netbsd-tests/lib/libc/net/t_servent.sh stable/10/contrib/netbsd-tests/lib/libc/regex/debug.c stable/10/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c stable/10/contrib/netbsd-tests/lib/libc/regex/t_regex_att.c stable/10/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c stable/10/contrib/netbsd-tests/lib/libc/ssp/h_memset.c stable/10/contrib/netbsd-tests/lib/libc/ssp/h_read.c stable/10/contrib/netbsd-tests/lib/libc/ssp/h_readlink.c stable/10/contrib/netbsd-tests/lib/libc/ssp/h_snprintf.c stable/10/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh stable/10/contrib/netbsd-tests/lib/libc/stdio/t_fflush.c stable/10/contrib/netbsd-tests/lib/libc/stdio/t_fmemopen.c stable/10/contrib/netbsd-tests/lib/libc/stdio/t_fopen.c stable/10/contrib/netbsd-tests/lib/libc/stdio/t_printf.c stable/10/contrib/netbsd-tests/lib/libc/stdio/t_scanf.c stable/10/contrib/netbsd-tests/lib/libc/stdlib/h_atexit.c stable/10/contrib/netbsd-tests/lib/libc/stdlib/h_getopt.c stable/10/contrib/netbsd-tests/lib/libc/stdlib/h_getopt_long.c stable/10/contrib/netbsd-tests/lib/libc/stdlib/t_getenv.c stable/10/contrib/netbsd-tests/lib/libc/stdlib/t_hsearch.c stable/10/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c stable/10/contrib/netbsd-tests/lib/libc/string/t_memcpy.c stable/10/contrib/netbsd-tests/lib/libc/string/t_memmem.c stable/10/contrib/netbsd-tests/lib/libc/string/t_strerror.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_access.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_chroot.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_clock_gettime.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_connect.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_dup.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_getgroups.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_getitimer.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_kevent.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_link.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_listen.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_mincore.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_mknod.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_mlock.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_mmap.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_mprotect.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_msgctl.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_msgrcv.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_msgsnd.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_msync.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_nanosleep.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_pipe2.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_poll.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_revoke.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_select.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_sigaction.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_socketpair.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_stat.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_timer_create.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_truncate.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_unlink.c stable/10/contrib/netbsd-tests/lib/libc/sys/t_write.c stable/10/contrib/netbsd-tests/lib/libc/time/t_strptime.c stable/10/contrib/netbsd-tests/lib/libc/tls/dso/h_tls_dlopen.c stable/10/contrib/netbsd-tests/lib/libc/tls/t_tls_dlopen.c stable/10/contrib/netbsd-tests/lib/libc/tls/t_tls_dynamic.c stable/10/contrib/netbsd-tests/lib/libc/tls/t_tls_static.c stable/10/contrib/netbsd-tests/lib/libc/tls/t_tls_static_helper.c stable/10/contrib/netbsd-tests/lib/libc/tls_dso/h_tls_dynamic.c stable/10/contrib/netbsd-tests/lib/libexecinfo/t_backtrace.c stable/10/contrib/netbsd-tests/lib/libm/t_cbrt.c stable/10/contrib/netbsd-tests/lib/libm/t_exp.c stable/10/contrib/netbsd-tests/lib/libm/t_ldexp.c stable/10/contrib/netbsd-tests/lib/libm/t_log.c stable/10/contrib/netbsd-tests/lib/libm/t_pow.c stable/10/contrib/netbsd-tests/lib/libm/t_precision.c stable/10/contrib/netbsd-tests/lib/libm/t_scalbn.c stable/10/contrib/netbsd-tests/lib/libpthread/h_atexit.c stable/10/contrib/netbsd-tests/lib/libpthread/h_cancel.c stable/10/contrib/netbsd-tests/lib/libpthread/t_condwait.c stable/10/contrib/netbsd-tests/lib/libpthread/t_detach.c stable/10/contrib/netbsd-tests/lib/libpthread/t_fork.c stable/10/contrib/netbsd-tests/lib/libpthread/t_join.c stable/10/contrib/netbsd-tests/lib/libpthread/t_mutex.c stable/10/contrib/netbsd-tests/lib/libpthread/t_once.c stable/10/contrib/netbsd-tests/lib/libpthread/t_sem.c stable/10/contrib/netbsd-tests/lib/librt/t_sem.c stable/10/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh stable/10/share/mk/bsd.progs.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/netbsd-tests/include/t_paths.c ============================================================================== --- head/contrib/netbsd-tests/include/t_paths.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/include/t_paths.c Wed Dec 31 20:13:31 2014 (r276478) @@ -1,4 +1,4 @@ -/* $NetBSD: t_paths.c,v 1.13 2014/02/09 21:26:07 jmmv Exp $ */ +/* $NetBSD: t_paths.c,v 1.14 2014/11/04 00:20:19 justin Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__RCSID("$NetBSD: t_paths.c,v 1.13 2014/02/09 21:26:07 jmmv Exp $"); +__RCSID("$NetBSD: t_paths.c,v 1.14 2014/11/04 00:20:19 justin Exp $"); #include #include @@ -42,7 +42,6 @@ __RCSID("$NetBSD: t_paths.c,v 1.13 2014/ #include #include -#include #define PATH_DEV __BIT(0) /* A device node */ #define PATH_DIR __BIT(1) /* A directory */ Modified: stable/10/contrib/netbsd-tests/lib/libc/db/t_db.sh ============================================================================== --- head/contrib/netbsd-tests/lib/libc/db/t_db.sh Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/db/t_db.sh Wed Dec 31 20:13:31 2014 (r276478) @@ -41,6 +41,18 @@ dict() fi } +# Begin FreeBSD +dict() +{ + if [ -f /usr/share/dict/words ]; then + echo /usr/share/dict/words + else + echo /nonexistent + atf_skip "Test requires dict/words" + fi +} +# End FreeBSD + SEVEN_SEVEN="abcdefg|abcdefg|abcdefg|abcdefg|abcdefg|abcdefg|abcdefg" atf_test_case small_btree @@ -887,7 +899,15 @@ r k1234 EOF + # Begin FreeBSD + if true; then + atf_check "$(prog)" -i bsize=32768 hash in + else + # End FreeBSD atf_check "$(prog)" -i bsize=65536 hash in + # Begin FreeBSD + fi + # End FreeBSD } atf_init_test_cases() Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_fileactions.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_fileactions.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_fileactions.c Wed Dec 31 20:13:31 2014 (r276478) @@ -31,6 +31,9 @@ */ +#ifdef __FreeBSD__ +#include +#endif #include #include #include @@ -248,6 +251,7 @@ ATF_TC_BODY(t_spawn_open_nonexistent, tc posix_spawn_file_actions_destroy(&fa); } +#ifdef __NetBSD__ ATF_TC(t_spawn_open_nonexistent_diag); ATF_TC_HEAD(t_spawn_open_nonexistent_diag, tc) @@ -283,6 +287,7 @@ ATF_TC_BODY(t_spawn_open_nonexistent_dia posix_spawn_file_actions_destroy(&fa); posix_spawnattr_destroy(&attr); } +#endif ATF_TC(t_spawn_fileactions); @@ -376,7 +381,9 @@ ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, t_spawn_fileactions); ATF_TP_ADD_TC(tp, t_spawn_open_nonexistent); +#ifdef __NetBSD__ ATF_TP_ADD_TC(tp, t_spawn_open_nonexistent_diag); +#endif ATF_TP_ADD_TC(tp, t_spawn_reopen); ATF_TP_ADD_TC(tp, t_spawn_openmode); ATF_TP_ADD_TC(tp, t_spawn_empty_fileactions); Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c Wed Dec 31 20:13:31 2014 (r276478) @@ -1,4 +1,4 @@ -/* $NetBSD: t_floatunditf.c,v 1.5 2014/02/02 08:16:22 martin Exp $ */ +/* $NetBSD: t_floatunditf.c,v 1.6 2014/11/04 00:20:19 justin Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -27,7 +27,6 @@ */ #include -#include #include #include Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_fpsetmask.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_fpsetmask.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_fpsetmask.c Wed Dec 31 20:13:31 2014 (r276478) @@ -1,4 +1,4 @@ -/* $NetBSD: t_fpsetmask.c,v 1.13 2014/02/09 21:26:07 jmmv Exp $ */ +/* $NetBSD: t_fpsetmask.c,v 1.14 2014/11/04 00:20:19 justin Exp $ */ /*- * Copyright (c) 1995 The NetBSD Foundation, Inc. @@ -29,7 +29,6 @@ #include #include -#include #include #include Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_getcwd.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_getcwd.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_getcwd.c Wed Dec 31 20:13:31 2014 (r276478) @@ -56,10 +56,12 @@ ATF_TC_BODY(getcwd_err, tc) ATF_REQUIRE(getcwd(buf, 0) == NULL); ATF_REQUIRE(errno == EINVAL); +#ifdef __NetBSD__ errno = 0; ATF_REQUIRE(getcwd((void *)-1, sizeof(buf)) == NULL); ATF_REQUIRE(errno == EFAULT); +#endif } ATF_TC(getcwd_fts); Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_glob.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_glob.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_glob.c Wed Dec 31 20:13:31 2014 (r276478) @@ -46,7 +46,13 @@ __RCSID("$NetBSD: t_glob.c,v 1.3 2013/01 #include #include +#ifdef __FreeBSD__ +#include "h_macros.h" +#define __gl_stat_t struct stat +#define _S_IFDIR S_IFDIR +#else #include "../../../h_macros.h" +#endif #ifdef DEBUG @@ -132,7 +138,11 @@ gl_readdir(void *v) dir.d_ino = dd->pos; dir.d_type = f->dir ? DT_DIR : DT_REG; DPRINTF(("readdir %s %d\n", dir.d_name, dir.d_type)); +#ifdef __FreeBSD__ + dir.d_reclen = -1; /* Does not have _DIRENT_RECLEN */ +#else dir.d_reclen = _DIRENT_RECLEN(&dir, dir.d_namlen); +#endif return &dir; } return NULL; @@ -213,6 +223,7 @@ run(const char *p, int flags, const char } +#ifndef __FreeBSD__ ATF_TC(glob_star); ATF_TC_HEAD(glob_star, tc) { @@ -224,6 +235,7 @@ ATF_TC_BODY(glob_star, tc) { run("a/**", GLOB_STAR, glob_star, __arraycount(glob_star)); } +#endif ATF_TC(glob_star_not); ATF_TC_HEAD(glob_star_not, tc) @@ -260,7 +272,9 @@ ATF_TC_BODY(glob_nocheck, tc) ATF_TP_ADD_TCS(tp) { +#ifndef __FreeBSD__ ATF_TP_ADD_TC(tp, glob_star); +#endif ATF_TP_ADD_TC(tp, glob_star_not); /* * Remove this test for now - the GLOB_NOCHECK return value has been Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c Wed Dec 31 20:13:31 2014 (r276478) @@ -34,7 +34,11 @@ #include #include #include +#ifdef __FreeBSD__ +#include +#else #include +#endif const struct hnopts { size_t ho_len; @@ -78,6 +82,7 @@ const struct hnopts { /* * Truncated output. Rev. 1.7 produces "1.0 K". */ +#ifndef __FreeBSD__ { 6, 1000, "A", HN_AUTOSCALE, HN_DECIMAL, -1, "" }, /* @@ -90,6 +95,7 @@ const struct hnopts { /* Similar case it prints 1000 where it shouldn't */ { 5, 1023488, "", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL, 4, "1.0M" }, +#endif { 5, 1023999, "", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL, 4, "1.0M" }, }; Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_isnan.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_isnan.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_isnan.c Wed Dec 31 20:13:31 2014 (r276478) @@ -1,4 +1,4 @@ -/* $NetBSD: t_isnan.c,v 1.4 2014/02/09 21:26:07 jmmv Exp $ */ +/* $NetBSD: t_isnan.c,v 1.5 2014/11/04 00:20:19 justin Exp $ */ /* * This file is in the Public Domain. @@ -10,7 +10,6 @@ #include #include -#include #include #include Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_nice.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_nice.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_nice.c Wed Dec 31 20:13:31 2014 (r276478) @@ -72,6 +72,11 @@ ATF_TC_BODY(nice_err, tc) { int i; +#ifdef __FreeBSD__ + atf_tc_expect_fail("nice(incr) with incr < 0 fails with unprivileged " + "users and sets errno == EPERM; see PR # 189821 for more details"); +#endif + /* * The call should fail with EPERM if the * supplied parameter is negative and the @@ -93,7 +98,11 @@ ATF_TC_HEAD(nice_priority, tc) ATF_TC_BODY(nice_priority, tc) { +#ifdef __FreeBSD__ + int i, pri, pri2, nic; +#else int i, pri, nic; +#endif pid_t pid; int sta; @@ -106,8 +115,10 @@ ATF_TC_BODY(nice_priority, tc) pri = getpriority(PRIO_PROCESS, 0); ATF_REQUIRE(errno == 0); +#ifdef __NetBSD__ if (nic != pri) atf_tc_fail("nice(3) and getpriority(2) conflict"); +#endif /* * Also verify that the nice(3) values @@ -119,10 +130,18 @@ ATF_TC_BODY(nice_priority, tc) if (pid == 0) { errno = 0; +#ifdef __FreeBSD__ pri = getpriority(PRIO_PROCESS, 0); +#else + pri2 = getpriority(PRIO_PROCESS, 0); +#endif ATF_REQUIRE(errno == 0); +#ifdef __FreeBSD__ + if (pri != pri2) +#else if (nic != pri) +#endif _exit(EXIT_FAILURE); _exit(EXIT_SUCCESS); @@ -161,7 +180,11 @@ ATF_TC_HEAD(nice_thread, tc) ATF_TC_BODY(nice_thread, tc) { pthread_t tid[5]; +#ifdef __FreeBSD__ + int pri, rv, val; +#else int rv, val; +#endif size_t i; /* @@ -173,7 +196,12 @@ ATF_TC_BODY(nice_thread, tc) val = nice(i); ATF_REQUIRE(val != -1); +#ifdef __FreeBSD__ + pri = getpriority(PRIO_PROCESS, 0); + rv = pthread_create(&tid[i], NULL, threadfunc, &pri); +#else rv = pthread_create(&tid[i], NULL, threadfunc, &val); +#endif ATF_REQUIRE(rv == 0); rv = pthread_join(tid[i], NULL); Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_raise.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_raise.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_raise.c Wed Dec 31 20:13:31 2014 (r276478) @@ -43,7 +43,11 @@ static int count; static void handler_err(int); static void handler_ret(int); static void handler_stress(int); +#ifdef __FreeBSD__ +static int sig[] = { SIGALRM, SIGIO, SIGUSR1, SIGUSR2 }; +#else static int sig[] = { SIGALRM, SIGIO, SIGUSR1, SIGUSR2, SIGPWR }; +#endif static void handler_stress(int signo) Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_setdomainname.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_setdomainname.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_setdomainname.c Wed Dec 31 20:13:31 2014 (r276478) @@ -63,8 +63,20 @@ ATF_TC_BODY(setdomainname_basic, tc) (void)memset(name, 0, sizeof(name)); +#ifdef __FreeBSD__ + /* + * Sanity checks to ensure that the wrong invariant isn't being + * tested for per PR # 181127 + */ + ATF_REQUIRE_EQ(sizeof(domains[i]), MAXHOSTNAMELEN); + ATF_REQUIRE_EQ(sizeof(name), MAXHOSTNAMELEN); + + ATF_REQUIRE(setdomainname(domains[i],sizeof(domains[i]) - 1) == 0); + ATF_REQUIRE(getdomainname(name, sizeof(name) - 1) == 0); +#else ATF_REQUIRE(setdomainname(domains[i],sizeof(domains[i])) == 0); ATF_REQUIRE(getdomainname(name, sizeof(name)) == 0); +#endif ATF_REQUIRE(strcmp(domains[i], name) == 0); } @@ -89,6 +101,10 @@ ATF_TC_BODY(setdomainname_limit, tc) (void)memset(name, 0, sizeof(name)); +#ifdef __FreeBSD__ + ATF_REQUIRE(setdomainname(name, MAXHOSTNAMELEN - 1 ) == 0); + ATF_REQUIRE(setdomainname(name, MAXHOSTNAMELEN) == -1); +#endif ATF_REQUIRE(setdomainname(name, sizeof(name)) == -1); } Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_sethostname.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_sethostname.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_sethostname.c Wed Dec 31 20:13:31 2014 (r276478) @@ -59,12 +59,26 @@ ATF_TC_BODY(sethostname_basic, tc) char name[MAXHOSTNAMELEN]; size_t i; + atf_tc_skip("screws up the test host's hostname on FreeBSD"); + for (i = 0; i < __arraycount(hosts); i++) { (void)memset(name, 0, sizeof(name)); +#ifdef __FreeBSD__ + /* + * Sanity checks to ensure that the wrong invariant isn't being + * tested for per PR # 181127 + */ + ATF_REQUIRE_EQ(sizeof(hosts[i]), MAXHOSTNAMELEN); + ATF_REQUIRE_EQ(sizeof(name), MAXHOSTNAMELEN); + + ATF_REQUIRE(sethostname(hosts[i], sizeof(hosts[i]) - 1) == 0); + ATF_REQUIRE(gethostname(name, sizeof(name) - 1) == 0); +#else ATF_REQUIRE(sethostname(hosts[i], sizeof(hosts[i])) == 0); ATF_REQUIRE(gethostname(name, sizeof(name)) == 0); +#endif ATF_REQUIRE(strcmp(hosts[i], name) == 0); } @@ -94,6 +108,10 @@ ATF_TC_BODY(sethostname_limit, tc) ATF_TC_CLEANUP(sethostname_limit, tc) { +#ifdef __FreeBSD__ + ATF_REQUIRE(sethostname(host, MAXHOSTNAMELEN - 1 ) == 0); + ATF_REQUIRE(sethostname(host, MAXHOSTNAMELEN) == -1); +#endif (void)sethostname(host, sizeof(host)); } Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_siginfo.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_siginfo.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_siginfo.c Wed Dec 31 20:13:31 2014 (r276478) @@ -1,4 +1,4 @@ -/* $NetBSD: t_siginfo.c,v 1.23 2014/02/09 21:26:07 jmmv Exp $ */ +/* $NetBSD: t_siginfo.c,v 1.24 2014/11/04 00:20:19 justin Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -27,9 +27,10 @@ */ #include -#include +#ifdef __NetBSD__ #include +#endif #include #include #include @@ -86,9 +87,11 @@ sig_debug(int signo, siginfo_t *info, uc printf("uc_stack %p %lu 0x%x\n", ctx->uc_stack.ss_sp, (unsigned long)ctx->uc_stack.ss_size, ctx->uc_stack.ss_flags); +#ifdef __NetBSD__ for (i = 0; i < __arraycount(ctx->uc_mcontext.__gregs); i++) printf("uc_mcontext.greg[%d] 0x%lx\n", i, (long)ctx->uc_mcontext.__gregs[i]); +#endif } } @@ -141,8 +144,10 @@ sigchild_action(int signo, siginfo_t *in printf("si_uid=%d\n", info->si_uid); printf("si_pid=%d\n", info->si_pid); printf("si_status=%d\n", info->si_status); +#ifdef __NetBSD__ printf("si_utime=%lu\n", (unsigned long int)info->si_utime); printf("si_stime=%lu\n", (unsigned long int)info->si_stime); +#endif } ATF_REQUIRE_EQ(info->si_code, code); ATF_REQUIRE_EQ(info->si_signo, SIGCHLD); Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_sleep.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_sleep.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_sleep.c Wed Dec 31 20:13:31 2014 (r276478) @@ -49,6 +49,11 @@ #define KEVNT_TIMEOUT 10300 /* measured in milli-seconds */ #define FUZZ (40 * MILLION) /* scheduling fuzz accepted - 40 ms */ +#ifdef __FreeBSD__ +#include +#include +#endif + /* * Timer notes * @@ -78,7 +83,9 @@ static volatile int sig; int sleeptest(int (*)(struct timespec *, struct timespec *), bool, bool); int do_nanosleep(struct timespec *, struct timespec *); int do_select(struct timespec *, struct timespec *); +#ifdef __NetBSD__ int do_poll(struct timespec *, struct timespec *); +#endif int do_sleep(struct timespec *, struct timespec *); int do_kevent(struct timespec *, struct timespec *); void sigalrm(int); @@ -116,6 +123,7 @@ do_select(struct timespec *delay, struct return ret; } +#ifdef __NetBSD__ int do_poll(struct timespec *delay, struct timespec *remain) { @@ -129,6 +137,7 @@ do_poll(struct timespec *delay, struct t ret = 0; return ret; } +#endif int do_sleep(struct timespec *delay, struct timespec *remain) @@ -210,6 +219,7 @@ ATF_TC_BODY(select, tc) sleeptest(do_select, true, true); } +#ifdef __NetBSD__ ATF_TC(poll); ATF_TC_HEAD(poll, tc) { @@ -223,6 +233,7 @@ ATF_TC_BODY(poll, tc) sleeptest(do_poll, true, true); } +#endif ATF_TC(sleep); ATF_TC_HEAD(sleep, tc) @@ -329,7 +340,9 @@ ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, nanosleep); ATF_TP_ADD_TC(tp, select); +#ifdef __NetBSD__ ATF_TP_ADD_TC(tp, poll); +#endif ATF_TP_ADD_TC(tp, sleep); ATF_TP_ADD_TC(tp, kevent); Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_time.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_time.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_time.c Wed Dec 31 20:13:31 2014 (r276478) @@ -31,6 +31,9 @@ #include __RCSID("$NetBSD: t_time.c,v 1.2 2011/11/11 05:03:38 jruoho Exp $"); +#ifdef __FreeBSD__ +#include +#endif #include #include #include Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c Wed Dec 31 20:13:31 2014 (r276478) @@ -107,6 +107,9 @@ ATF_TC_BODY(ttyname_r_err, tc) ATF_REQUIRE(rv == ERANGE); } +#ifdef __FreeBSD__ + atf_tc_expect_fail("FreeBSD returns ENOTTY instead of EBADF; see bin/191936"); +#endif rv = ttyname_r(-1, buf, ttymax); ATF_REQUIRE(rv == EBADF); Modified: stable/10/contrib/netbsd-tests/lib/libc/hash/h_hash.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/hash/h_hash.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/hash/h_hash.c Wed Dec 31 20:13:31 2014 (r276478) @@ -35,8 +35,13 @@ #include #include #include +#ifdef __NetBSD__ #include +#endif +#ifdef __FreeBSD__ +#include +#endif int mflag, rflag, sflag, tflag; @@ -102,17 +107,32 @@ regress(void) MD5Final(out, &ctx); outlen = 16; } else { +#ifdef __FreeBSD__ + SHA_CTX ctx; + + SHA1_Init(&ctx); + SHA1_Update(&ctx, buf, len); +#else SHA1_CTX ctx; SHA1Init(&ctx); SHA1Update(&ctx, buf, len); +#endif while (!last && fgets((char *)buf, sizeof(buf), stdin) != NULL) { len = strlen((char *)buf); CHOMP(buf, len, last); +#ifdef __FreeBSD__ + SHA1_Update(&ctx, buf, len); +#else SHA1Update(&ctx, buf, len); +#endif } +#ifdef __FreeBSD__ + SHA1_Final(out, &ctx); +#else SHA1Final(out, &ctx); +#endif outlen = 20; } hexdump(out, outlen); Modified: stable/10/contrib/netbsd-tests/lib/libc/hash/t_sha2.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/hash/t_sha2.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/hash/t_sha2.c Wed Dec 31 20:13:31 2014 (r276478) @@ -36,9 +36,23 @@ __RCSID("$NetBSD: t_sha2.c,v 1.3 2012/09 #include #include +#ifdef __NetBSD__ #include +#endif #include +#ifdef __FreeBSD__ +#include +typedef SHA512_CTX SHA384_CTX; +/* From /usr/src/crypto/openssh/openbsd-compat/sha2.h */ +#define SHA256_DIGEST_LENGTH 32 +#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1) +#define SHA384_DIGEST_LENGTH 48 +#define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1) +#define SHA512_DIGEST_LENGTH 64 +#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1) +#endif + ATF_TC(t_sha256); ATF_TC(t_sha384); ATF_TC(t_sha512); Modified: stable/10/contrib/netbsd-tests/lib/libc/inet/t_inet_network.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/inet/t_inet_network.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/inet/t_inet_network.c Wed Dec 31 20:13:31 2014 (r276478) @@ -144,7 +144,11 @@ ATF_TC_BODY(inet_network_err, tc) H_REQUIRE(".", 0xffffffff); H_REQUIRE("1.", 0xffffffff); H_REQUIRE(".1", 0xffffffff); +#if defined(__FreeBSD__) || defined(__APPLE__) + H_REQUIRE("0x", 0x0); +#else H_REQUIRE("0x", 0xffffffff); +#endif H_REQUIRE("", 0xffffffff); H_REQUIRE(" ", 0xffffffff); H_REQUIRE("bar", 0xffffffff); Modified: stable/10/contrib/netbsd-tests/lib/libc/locale/t_io.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/locale/t_io.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/locale/t_io.c Wed Dec 31 20:13:31 2014 (r276478) @@ -53,9 +53,15 @@ ATF_TC_HEAD(bad_big5_wprintf, tc) ATF_TC_BODY(bad_big5_wprintf, tc) { +#ifdef __FreeBSD__ + atf_tc_skip("does not fail as expected (may be implementation " + "specific issue with the test)"); +#endif + /* XXX implementation detail knowledge (wchar_t encoding) */ wchar_t ibuf[] = { 0xcf10, 0 }; setlocale(LC_CTYPE, "zh_TW.Big5"); + ATF_REQUIRE_ERRNO(EILSEQ, wprintf(L"%ls\n", ibuf) < 0); ATF_REQUIRE(ferror(stdout)); } @@ -68,10 +74,16 @@ ATF_TC_HEAD(bad_big5_swprintf, tc) ATF_TC_BODY(bad_big5_swprintf, tc) { +#ifdef __FreeBSD__ + atf_tc_skip("does not fail as expected (may be implementation " + "specific issue with the test)"); +#endif + /* XXX implementation detail knowledge (wchar_t encoding) */ wchar_t ibuf[] = { 0xcf10, 0 }; wchar_t obuf[20]; setlocale(LC_CTYPE, "zh_TW.Big5"); + ATF_REQUIRE_ERRNO(EILSEQ, swprintf(obuf, sizeof(obuf), L"%ls\n", ibuf) < 0); } @@ -161,6 +173,9 @@ ATF_TC_BODY(bad_big5_getwc, tc) ATF_REQUIRE(fp != NULL); setlocale(LC_CTYPE, "zh_TW.Big5"); +#ifdef __FreeBSD__ + atf_tc_expect_fail("does not return WEOF as expected"); +#endif ATF_REQUIRE_EQ(getwc(fp), WEOF); fclose(fp); } Modified: stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbrtowc.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/locale/t_mbrtowc.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbrtowc.c Wed Dec 31 20:13:31 2014 (r276478) @@ -132,7 +132,14 @@ h_ctype2(const struct test *t, bool use_ size_t n; ATF_REQUIRE_STREQ(setlocale(LC_ALL, "C"), "C"); +#ifdef __NetBSD__ ATF_REQUIRE(setlocale(LC_CTYPE, t->locale) != NULL); +#else + if (setlocale(LC_CTYPE, t->locale) == NULL) { + fprintf(stderr, "Locale %s not found.\n", t->locale); + return; + } +#endif (void)strvis(buf, t->data, VIS_WHITE | VIS_OCTAL); (void)printf("Checking string: \"%s\"\n", buf); @@ -238,6 +245,9 @@ ATF_TC_BODY(mbrtowc_internal, tc) { struct test *t; +#ifdef __FreeBSD__ + atf_tc_expect_fail("ja_* locale fails"); +#endif for (t = &tests[0]; t->data != NULL; ++t) h_ctype2(t, false); } Modified: stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbstowcs.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/locale/t_mbstowcs.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbstowcs.c Wed Dec 31 20:13:31 2014 (r276478) @@ -150,7 +150,14 @@ ATF_TC_BODY(mbstowcs_basic, tc) int i; ATF_REQUIRE_STREQ(setlocale(LC_ALL, "C"), "C"); +#ifdef __NetBSD__ ATF_REQUIRE(setlocale(LC_CTYPE, t->locale) != NULL); +#else + if (setlocale(LC_CTYPE, t->locale) == NULL) { + fprintf(stderr, "Locale %s not found.\n", t->locale); + continue; + } +#endif (void)strvis(visbuf, t->data, VIS_WHITE | VIS_OCTAL); (void)printf("Checking string: \"%s\"\n", visbuf); Modified: stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c Wed Dec 31 20:13:31 2014 (r276478) @@ -76,7 +76,14 @@ h_mbtowc(const char *locale, const char char *str; ATF_REQUIRE_STREQ(setlocale(LC_ALL, "C"), "C"); +#ifdef __NetBSD__ ATF_REQUIRE(setlocale(LC_CTYPE, locale) != NULL); +#else + if (setlocale(LC_CTYPE, locale) == NULL) { + fprintf(stderr, "Locale %s not found.\n", locale); + return; + } +#endif ATF_REQUIRE((str = setlocale(LC_ALL, NULL)) != NULL); (void)printf("Using locale: %s\n", str); @@ -130,9 +137,16 @@ ATF_TC_BODY(mbtowc, tc) h_mbtowc("ja_JP.ISO2022-JP", "\033$B", "\033$B$\"\033(B"); h_mbtowc("ja_JP.SJIS", "\202", "\202\240"); h_mbtowc("ja_JP.eucJP", "\244", "\244\242"); +#ifndef __FreeBSD__ + /* Moved last as it fails */ h_mbtowc("zh_CN.GB18030", "\241", "\241\241"); +#endif h_mbtowc("zh_TW.Big5", "\241", "\241@"); h_mbtowc("zh_TW.eucTW", "\241", "\241\241"); +#ifdef __FreeBSD__ + atf_tc_expect_fail("zh_CN.GB18030"); + h_mbtowc("zh_CN.GB18030", "\241", "\241\241"); +#endif } ATF_TP_ADD_TCS(tp) Modified: stable/10/contrib/netbsd-tests/lib/libc/locale/t_wcstod.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/locale/t_wcstod.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/locale/t_wcstod.c Wed Dec 31 20:13:31 2014 (r276478) @@ -66,6 +66,10 @@ __RCSID("$NetBSD: t_wcstod.c,v 1.3 2011/ #include +#ifdef __FreeBSD__ +#include +#endif + #define ALT_HUGE_VAL -1 #define ALT_MINUS_HUGE_VAL -2 #define ALT_NAN -3 @@ -234,7 +238,7 @@ static struct test { { L" -0X.", 12, 0, 0 }, #endif /* XXX: FIXME */ -#if defined(__NetBSD__) || defined(__linux__) +#if defined(__NetBSD__) || defined(__linux__) || defined(__FreeBSD__) { L"0X.0", 4, 0, 0 }, { L"+0X.0", 5, 0, 0 }, { L"-0X.0", 5, 0, 0 }, Modified: stable/10/contrib/netbsd-tests/lib/libc/locale/t_wctomb.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/locale/t_wctomb.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/locale/t_wctomb.c Wed Dec 31 20:13:31 2014 (r276478) @@ -109,7 +109,14 @@ h_wctomb(const struct test *t, char tc) size_t sz, ret, i; ATF_REQUIRE_STREQ(setlocale(LC_ALL, "C"), "C"); +#ifdef __NetBSD__ ATF_REQUIRE(setlocale(LC_CTYPE, t->locale) != NULL); +#else + if (setlocale(LC_CTYPE, t->locale) == NULL) { + fprintf(stderr, "Locale %s not found.\n", t->locale); + return; + } +#endif (void)strvis(buf, t->data, VIS_WHITE | VIS_OCTAL); (void)printf("Checking sequence: \"%s\"\n", buf); Modified: stable/10/contrib/netbsd-tests/lib/libc/net/h_dns_server.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/net/h_dns_server.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/net/h_dns_server.c Wed Dec 31 20:13:31 2014 (r276478) @@ -49,7 +49,13 @@ __RCSID("$NetBSD: h_dns_server.c,v 1.4 2 #include #include +#ifdef __NetBSD__ #include +#endif + +#ifdef __FreeBSD__ +#include +#endif union sockaddr_either { struct sockaddr s; @@ -164,6 +170,106 @@ name2str(const void *v, char *buf, size_ } #endif +#ifdef __FreeBSD__ +/* XXX the daemon2_* functions should be in a library */ + +int __daemon2_detach_pipe[2]; + +static int +daemon2_fork(void) +{ + int r; + int fd; + int i; + + /* + * Set up the pipe, making sure the write end does not + * get allocated one of the file descriptors that will + * be closed in daemon2_detach(). + */ + for (i = 0; i < 3; i++) { + r = pipe(__daemon2_detach_pipe); + if (r < 0) + return -1; + if (__daemon2_detach_pipe[1] <= STDERR_FILENO && + (fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) { + (void)dup2(fd, __daemon2_detach_pipe[0]); + (void)dup2(fd, __daemon2_detach_pipe[1]); + if (fd > STDERR_FILENO) + (void)close(fd); + continue; + } + break; + } + + r = fork(); + if (r < 0) { + return -1; + } else if (r == 0) { + /* child */ + close(__daemon2_detach_pipe[0]); + return 0; + } + /* Parent */ + + (void) close(__daemon2_detach_pipe[1]); + + for (;;) { + char dummy; + r = read(__daemon2_detach_pipe[0], &dummy, 1); + if (r < 0) { + if (errno == EINTR) + continue; + _exit(1); + } else if (r == 0) { + _exit(1); + } else { /* r > 0 */ + _exit(0); + } + } +} + +static int +daemon2_detach(int nochdir, int noclose) +{ + int r; + int fd; + + if (setsid() == -1) + return -1; + + if (!nochdir) + (void)chdir("/"); + + if (!noclose && (fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) { + (void)dup2(fd, STDIN_FILENO); + (void)dup2(fd, STDOUT_FILENO); + (void)dup2(fd, STDERR_FILENO); + if (fd > STDERR_FILENO) + (void)close(fd); + } + + while (1) { + r = write(__daemon2_detach_pipe[1], "", 1); + if (r < 0) { + if (errno == EINTR) + continue; + /* May get "broken pipe" here if parent is killed */ + return -1; + } else if (r == 0) { + /* Should not happen */ + return -1; + } else { + break; + } + } + + (void) close(__daemon2_detach_pipe[1]); + + return 0; +} +#endif + int main(int argc, char **argv) { int s, r, protocol; union sockaddr_either saddr; @@ -176,6 +282,9 @@ int main(int argc, char **argv) { char buf1[1024], buf2[1024]; #endif +#ifdef __FreeBSD__ + daemon2_fork(); +#endif if (argc < 2 || ((protocol = argv[1][0]) != '4' && protocol != '6')) errx(1, "usage: dns_server 4 | 6"); s = socket(protocol == '4' ? PF_INET : PF_INET6, SOCK_DGRAM, IPPROTO_UDP); @@ -212,11 +321,19 @@ int main(int argc, char **argv) { f = fopen(pidfile_name, "w"); fprintf(f, "%d", getpid()); fclose(f); +#ifdef __FreeBSD__ +#ifdef DEBUG + daemon2_detach(0, 1); +#else + daemon2_detach(0, 0); +#endif +#else #ifdef DEBUG daemon(0, 1); #else daemon(0, 0); #endif +#endif for (;;) { unsigned char buf[512]; Modified: stable/10/contrib/netbsd-tests/lib/libc/net/t_ether_aton.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/net/t_ether_aton.c Thu Oct 2 23:26:49 2014 (r272458) +++ stable/10/contrib/netbsd-tests/lib/libc/net/t_ether_aton.c Wed Dec 31 20:13:31 2014 (r276478) @@ -46,9 +46,18 @@ __RCSID("$NetBSD: t_ether_aton.c,v 1.1 2 #include #include +#ifndef __NetBSD__ +#ifdef __linux__ +#include +#endif +#include +#endif + +#ifdef __NetBSD__ #define ETHER_ADDR_LEN 6 int ether_aton_r(u_char *dest, size_t len, const char *str); +#endif static const struct { u_char res[ETHER_ADDR_LEN]; @@ -56,9 +65,11 @@ static const struct { int error; } tests[] = { { { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab }, "01:23:45:67:89:ab", 0 }, +#ifdef __NetBSD__ { { 0x00, 0x01, 0x22, 0x03, 0x14, 0x05 }, "0:1:22-3:14:05", 0 }, { { 0x00, 0x01, 0x22, 0x03, 0x14, 0x05 }, "000122031405", 0 }, { { 0x0a, 0x0B, 0xcc, 0xdD, 0xEE, 0x0f }, "0a0BccdDEE0f", 0 }, +#endif #define ZERO { 0, 0, 0, 0, 0, 0 } { ZERO, "0:1:2-3:04:05:06", ENAMETOOLONG }, { ZERO, "0:1:2-3:04:", ENOBUFS }, @@ -75,22 +86,44 @@ ATF_TC_HEAD(tc_ether_aton, tc) ATF_TC_BODY(tc_ether_aton, tc) { +#ifdef __NetBSD__ u_char dest[ETHER_ADDR_LEN]; +#else + struct ether_addr dest; +#endif size_t t; +#ifdef __NetBSD__ int e, r; +#else + int e; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 20:32:41 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E2333EB0; Wed, 31 Dec 2014 20:32:41 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D30BF664C0; Wed, 31 Dec 2014 20:31:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVKVfuG054188; Wed, 31 Dec 2014 20:31:41 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVKVbnX054163; Wed, 31 Dec 2014 20:31:37 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412312031.sBVKVbnX054163@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 31 Dec 2014 20:31:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276479 - in head: . contrib/ipfilter contrib/llvm contrib/llvm/include/llvm contrib/llvm/include/llvm-c contrib/llvm/include/llvm-c/Transforms contrib/llvm/include/llvm/ADT contrib/llv... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 20:32:42 -0000 Author: dim Date: Wed Dec 31 20:31:32 2014 New Revision: 276479 URL: https://svnweb.freebsd.org/changeset/base/276479 Log: Upgrade our copy of clang, llvm and lldb to 3.5.0 release. Please note that this version now requires C++11 support to build; see UPDATING for more information. Release notes for llvm and clang can be found here: Thanks to Ed Maste, Roman Divacky, Andrew Turner, Justin Hibbits and Antoine Brodin for their invaluable help with this import. Approved by: portmgr (antoine) MFC after: 1 month Added: head/contrib/llvm/include/llvm-c/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm-c/module.modulemap head/contrib/llvm/include/llvm/ADT/iterator.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/ADT/iterator.h head/contrib/llvm/include/llvm/ADT/iterator_range.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/ADT/iterator_range.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h head/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h head/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h head/contrib/llvm/include/llvm/Analysis/JumpInstrTableInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Analysis/JumpInstrTableInfo.h head/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h head/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h head/contrib/llvm/include/llvm/Analysis/TargetFolder.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Analysis/TargetFolder.h head/contrib/llvm/include/llvm/AsmParser/ - copied from r276476, projects/clang350-import/contrib/llvm/include/llvm/AsmParser/ head/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h head/contrib/llvm/include/llvm/CodeGen/JumpInstrTables.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/JumpInstrTables.h head/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h head/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h head/contrib/llvm/include/llvm/CodeGen/MachineRegionInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/MachineRegionInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineValueType.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/MachineValueType.h head/contrib/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h head/contrib/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h head/contrib/llvm/include/llvm/CodeGen/PBQP/RegAllocSolver.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/PBQP/RegAllocSolver.h head/contrib/llvm/include/llvm/CodeGen/StackMapLivenessAnalysis.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/CodeGen/StackMapLivenessAnalysis.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h head/contrib/llvm/include/llvm/IR/AssemblyAnnotationWriter.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/AssemblyAnnotationWriter.h head/contrib/llvm/include/llvm/IR/AutoUpgrade.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/AutoUpgrade.h head/contrib/llvm/include/llvm/IR/CFG.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/CFG.h head/contrib/llvm/include/llvm/IR/CallSite.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/CallSite.h head/contrib/llvm/include/llvm/IR/Comdat.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/Comdat.h head/contrib/llvm/include/llvm/IR/ConstantFolder.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/ConstantFolder.h head/contrib/llvm/include/llvm/IR/ConstantRange.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/ConstantRange.h head/contrib/llvm/include/llvm/IR/DIBuilder.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/DIBuilder.h head/contrib/llvm/include/llvm/IR/DebugInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/DebugInfo.h head/contrib/llvm/include/llvm/IR/DebugLoc.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/DebugLoc.h head/contrib/llvm/include/llvm/IR/DiagnosticInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/DiagnosticInfo.h head/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h head/contrib/llvm/include/llvm/IR/Dominators.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/Dominators.h head/contrib/llvm/include/llvm/IR/GVMaterializer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/GVMaterializer.h head/contrib/llvm/include/llvm/IR/GetElementPtrTypeIterator.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/GetElementPtrTypeIterator.h head/contrib/llvm/include/llvm/IR/GlobalObject.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/GlobalObject.h head/contrib/llvm/include/llvm/IR/IRPrintingPasses.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/IRPrintingPasses.h head/contrib/llvm/include/llvm/IR/InstIterator.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/InstIterator.h head/contrib/llvm/include/llvm/IR/InstVisitor.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/InstVisitor.h head/contrib/llvm/include/llvm/IR/LeakDetector.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/LeakDetector.h head/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h head/contrib/llvm/include/llvm/IR/Mangler.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/Mangler.h head/contrib/llvm/include/llvm/IR/NoFolder.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/NoFolder.h head/contrib/llvm/include/llvm/IR/PatternMatch.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/PatternMatch.h head/contrib/llvm/include/llvm/IR/PredIteratorCache.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/PredIteratorCache.h head/contrib/llvm/include/llvm/IR/ValueHandle.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/ValueHandle.h head/contrib/llvm/include/llvm/IR/ValueMap.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/ValueMap.h head/contrib/llvm/include/llvm/IR/Verifier.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/IR/Verifier.h head/contrib/llvm/include/llvm/LineEditor/ - copied from r276476, projects/clang350-import/contrib/llvm/include/llvm/LineEditor/ head/contrib/llvm/include/llvm/Linker/ - copied from r276476, projects/clang350-import/contrib/llvm/include/llvm/Linker/ head/contrib/llvm/include/llvm/MC/ConstantPools.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/ConstantPools.h head/contrib/llvm/include/llvm/MC/MCAnalysis/ - copied from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/MCAnalysis/ head/contrib/llvm/include/llvm/MC/MCLinkerOptimizationHint.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/MCLinkerOptimizationHint.h head/contrib/llvm/include/llvm/MC/MCTargetOptions.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/MCTargetOptions.h head/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h head/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h head/contrib/llvm/include/llvm/MC/MCWinEH.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/MCWinEH.h head/contrib/llvm/include/llvm/MC/StringTableBuilder.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/StringTableBuilder.h head/contrib/llvm/include/llvm/MC/YAML.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/MC/YAML.h head/contrib/llvm/include/llvm/Object/IRObjectFile.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Object/IRObjectFile.h head/contrib/llvm/include/llvm/Object/SymbolicFile.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Object/SymbolicFile.h head/contrib/llvm/include/llvm/PassInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/PassInfo.h head/contrib/llvm/include/llvm/ProfileData/ - copied from r276476, projects/clang350-import/contrib/llvm/include/llvm/ProfileData/ head/contrib/llvm/include/llvm/Support/ARMBuildAttributes.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/ARMBuildAttributes.h head/contrib/llvm/include/llvm/Support/ARMEHABI.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/ARMEHABI.h head/contrib/llvm/include/llvm/Support/ARMWinEH.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/ARMWinEH.h head/contrib/llvm/include/llvm/Support/EndianStream.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/EndianStream.h head/contrib/llvm/include/llvm/Support/Errc.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/Errc.h head/contrib/llvm/include/llvm/Support/GenericDomTree.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/GenericDomTree.h head/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h head/contrib/llvm/include/llvm/Support/LineIterator.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/LineIterator.h head/contrib/llvm/include/llvm/Support/OnDiskHashTable.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/OnDiskHashTable.h head/contrib/llvm/include/llvm/Support/RandomNumberGenerator.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/RandomNumberGenerator.h head/contrib/llvm/include/llvm/Support/ScaledNumber.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/ScaledNumber.h head/contrib/llvm/include/llvm/Support/SpecialCaseList.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/SpecialCaseList.h head/contrib/llvm/include/llvm/Support/WindowsError.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Support/WindowsError.h head/contrib/llvm/include/llvm/TableGen/SetTheory.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/TableGen/SetTheory.h head/contrib/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h head/contrib/llvm/include/llvm/Transforms/Utils/CtorUtils.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Transforms/Utils/CtorUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/VectorUtils.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/Transforms/Utils/VectorUtils.h head/contrib/llvm/include/llvm/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/module.modulemap head/contrib/llvm/include/llvm/module.modulemap.build - copied unchanged from r276476, projects/clang350-import/contrib/llvm/include/llvm/module.modulemap.build head/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp head/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp head/contrib/llvm/lib/Analysis/JumpInstrTableInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Analysis/JumpInstrTableInfo.cpp head/contrib/llvm/lib/Analysis/LazyCallGraph.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Analysis/LazyCallGraph.cpp head/contrib/llvm/lib/AsmParser/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/AsmParser/module.modulemap head/contrib/llvm/lib/Bitcode/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Bitcode/module.modulemap head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h head/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocList.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocList.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.h head/contrib/llvm/lib/CodeGen/AtomicExpandLoadLinkedPass.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/AtomicExpandLoadLinkedPass.cpp head/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp head/contrib/llvm/lib/CodeGen/GlobalMerge.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/GlobalMerge.cpp head/contrib/llvm/lib/CodeGen/JumpInstrTables.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/JumpInstrTables.cpp head/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp head/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp head/contrib/llvm/lib/CodeGen/MachineRegionInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/MachineRegionInfo.cpp head/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp head/contrib/llvm/lib/CodeGen/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/CodeGen/module.modulemap head/contrib/llvm/lib/DebugInfo/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/DebugInfo/module.modulemap head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/ - copied from r276476, projects/clang350-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/ head/contrib/llvm/lib/IR/Comdat.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/IR/Comdat.cpp head/contrib/llvm/lib/IR/ConstantRange.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/IR/ConstantRange.cpp head/contrib/llvm/lib/IR/DiagnosticInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/IR/DiagnosticInfo.cpp head/contrib/llvm/lib/IR/DiagnosticPrinter.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/IR/DiagnosticPrinter.cpp head/contrib/llvm/lib/IR/IRPrintingPasses.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/IR/IRPrintingPasses.cpp head/contrib/llvm/lib/IR/MDBuilder.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/IR/MDBuilder.cpp head/contrib/llvm/lib/IR/Mangler.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/IR/Mangler.cpp head/contrib/llvm/lib/IR/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/IR/module.modulemap head/contrib/llvm/lib/LineEditor/ - copied from r276476, projects/clang350-import/contrib/llvm/lib/LineEditor/ head/contrib/llvm/lib/MC/ConstantPools.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/MC/ConstantPools.cpp head/contrib/llvm/lib/MC/MCAnalysis/ - copied from r276476, projects/clang350-import/contrib/llvm/lib/MC/MCAnalysis/ head/contrib/llvm/lib/MC/MCLinkerOptimizationHint.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/MC/MCLinkerOptimizationHint.cpp head/contrib/llvm/lib/MC/MCTargetOptions.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/MC/MCTargetOptions.cpp head/contrib/llvm/lib/MC/StringTableBuilder.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/MC/StringTableBuilder.cpp head/contrib/llvm/lib/MC/YAML.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/MC/YAML.cpp head/contrib/llvm/lib/Object/IRObjectFile.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Object/IRObjectFile.cpp head/contrib/llvm/lib/Object/RecordStreamer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Object/RecordStreamer.cpp head/contrib/llvm/lib/Object/RecordStreamer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Object/RecordStreamer.h head/contrib/llvm/lib/Object/SymbolicFile.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Object/SymbolicFile.cpp head/contrib/llvm/lib/ProfileData/ - copied from r276476, projects/clang350-import/contrib/llvm/lib/ProfileData/ head/contrib/llvm/lib/Support/ARMBuildAttrs.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Support/ARMBuildAttrs.cpp head/contrib/llvm/lib/Support/ARMWinEH.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Support/ARMWinEH.cpp head/contrib/llvm/lib/Support/LEB128.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Support/LEB128.cpp head/contrib/llvm/lib/Support/LineIterator.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Support/LineIterator.cpp head/contrib/llvm/lib/Support/RandomNumberGenerator.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Support/RandomNumberGenerator.cpp head/contrib/llvm/lib/Support/ScaledNumber.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Support/ScaledNumber.cpp head/contrib/llvm/lib/Support/SpecialCaseList.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Support/SpecialCaseList.cpp head/contrib/llvm/lib/Support/Windows/WindowsSupport.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Support/Windows/WindowsSupport.h head/contrib/llvm/lib/TableGen/SetTheory.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/TableGen/SetTheory.cpp head/contrib/llvm/lib/TableGen/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/TableGen/module.modulemap head/contrib/llvm/lib/Target/AArch64/AArch64AddressTypePromotion.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64AddressTypePromotion.cpp head/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64BranchRelaxation.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64BranchRelaxation.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td head/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp head/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp head/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td head/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h head/contrib/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h head/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp head/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td head/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp head/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.def - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.def head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.h head/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td head/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp head/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp head/contrib/llvm/lib/Target/Mips/MipsOptionRecord.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Mips/MipsOptionRecord.h head/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp head/contrib/llvm/lib/Target/PowerPC/Disassembler/ - copied from r276476, projects/clang350-import/contrib/llvm/lib/Target/PowerPC/Disassembler/ head/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td head/contrib/llvm/lib/Target/R600/AMDGPUIntrinsicInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/AMDGPUIntrinsicInfo.cpp head/contrib/llvm/lib/Target/R600/AMDGPUIntrinsicInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/AMDGPUIntrinsicInfo.h head/contrib/llvm/lib/Target/R600/AMDGPUPromoteAlloca.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/AMDGPUPromoteAlloca.cpp head/contrib/llvm/lib/Target/R600/CaymanInstructions.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/CaymanInstructions.td head/contrib/llvm/lib/Target/R600/EvergreenInstructions.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/EvergreenInstructions.td head/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUFixupKinds.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUFixupKinds.h head/contrib/llvm/lib/Target/R600/R700Instructions.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/R700Instructions.td head/contrib/llvm/lib/Target/R600/SIFixSGPRLiveRanges.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/SIFixSGPRLiveRanges.cpp head/contrib/llvm/lib/Target/R600/SILowerI1Copies.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/SILowerI1Copies.cpp head/contrib/llvm/lib/Target/R600/SIShrinkInstructions.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/R600/SIShrinkInstructions.cpp head/contrib/llvm/lib/Target/Sparc/SparcInstrVIS.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/Sparc/SparcInstrVIS.td head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h head/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp head/contrib/llvm/lib/Target/X86/X86AtomicExpandPass.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/X86/X86AtomicExpandPass.cpp head/contrib/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetStreamer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Target/XCore/XCoreTargetStreamer.h head/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp head/contrib/llvm/lib/Transforms/Scalar/LoadCombine.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/LoadCombine.cpp head/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp head/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp head/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp head/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp head/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp head/contrib/llvm/patches/patch-01-clang-version-include.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-01-clang-version-include.diff head/contrib/llvm/patches/patch-02-format-extensions.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-02-format-extensions.diff head/contrib/llvm/patches/patch-03-clang-vendor-suffix.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-03-clang-vendor-suffix.diff head/contrib/llvm/patches/patch-04-default-target-triple.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-04-default-target-triple.diff head/contrib/llvm/patches/patch-05-add-CC-aliases.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-05-add-CC-aliases.diff head/contrib/llvm/patches/patch-06-clang-arm-target-cpu.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-06-clang-arm-target-cpu.diff head/contrib/llvm/patches/patch-07-llvm-r213960-ppc32-tls.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-07-llvm-r213960-ppc32-tls.diff head/contrib/llvm/patches/patch-08-llvm-r216989-r216990-fix-movw-armv6.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-08-llvm-r216989-r216990-fix-movw-armv6.diff head/contrib/llvm/patches/patch-09-clang-r217410-i386-garbage-float.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-09-clang-r217410-i386-garbage-float.diff head/contrib/llvm/patches/patch-10-llvm-r221709-debug-oom.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-10-llvm-r221709-debug-oom.diff head/contrib/llvm/patches/patch-11-llvm-r222562-loop-rotate.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-11-llvm-r222562-loop-rotate.diff head/contrib/llvm/patches/patch-12-add-llvm-gvn-option.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-12-add-llvm-gvn-option.diff head/contrib/llvm/patches/patch-13-llvm-r218241-dwarf2-warning.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-13-llvm-r218241-dwarf2-warning.diff head/contrib/llvm/patches/patch-14-llvm-r215352-aarch64-dyn-loader.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-14-llvm-r215352-aarch64-dyn-loader.diff head/contrib/llvm/patches/patch-15-llvm-r216571-dynamiclib-usability.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-15-llvm-r216571-dynamiclib-usability.diff head/contrib/llvm/patches/patch-16-clang-r221900-freebsd-aarch64.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-16-clang-r221900-freebsd-aarch64.diff head/contrib/llvm/patches/patch-17-llvm-r222856-libapr-miscompile.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-17-llvm-r222856-libapr-miscompile.diff head/contrib/llvm/patches/patch-18-llvm-r214802-armv6-cp10-cp11.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-18-llvm-r214802-armv6-cp10-cp11.diff head/contrib/llvm/patches/patch-19-llvm-r215811-arm-fpu-directive.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-19-llvm-r215811-arm-fpu-directive.diff head/contrib/llvm/patches/patch-20-enable-armv6-clrex.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-20-enable-armv6-clrex.diff head/contrib/llvm/patches/patch-21-llvm-r223171-fix-vectorizer.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-21-llvm-r223171-fix-vectorizer.diff head/contrib/llvm/patches/patch-22-llvm-r223147-arm-cpu-directive.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-22-llvm-r223147-arm-cpu-directive.diff head/contrib/llvm/patches/patch-23-llvm-r221170-ppc-vaarg.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-23-llvm-r221170-ppc-vaarg.diff head/contrib/llvm/patches/patch-24-llvm-r221791-ppc-small-pic.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-24-llvm-r221791-ppc-small-pic.diff head/contrib/llvm/patches/patch-25-llvm-r224415-ppc-local.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-25-llvm-r224415-ppc-local.diff head/contrib/llvm/patches/patch-26-llvm-r213890-ppc-eh_frame.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-26-llvm-r213890-ppc-eh_frame.diff head/contrib/llvm/patches/patch-27-llvm-r221703-ppc-tls_get_addr.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-27-llvm-r221703-ppc-tls_get_addr.diff head/contrib/llvm/patches/patch-28-llvm-r224890-ppc-ctr-tls-loop.diff - copied unchanged from r276476, projects/clang350-import/contrib/llvm/patches/patch-28-llvm-r224890-ppc-ctr-tls-loop.diff head/contrib/llvm/tools/clang/include/clang-c/BuildSystem.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang-c/BuildSystem.h head/contrib/llvm/tools/clang/include/clang-c/CXErrorCode.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang-c/CXErrorCode.h head/contrib/llvm/tools/clang/include/clang-c/Documentation.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang-c/Documentation.h head/contrib/llvm/tools/clang/include/clang-c/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang-c/module.modulemap head/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h head/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyOps.def - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyOps.def head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h head/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td head/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsR600.def - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsR600.def head/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h head/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h head/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h head/contrib/llvm/tools/clang/include/clang/Sema/LoopHint.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/Sema/LoopHint.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h head/contrib/llvm/tools/clang/include/clang/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/include/clang/module.modulemap head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp head/contrib/llvm/tools/clang/lib/Basic/Attributes.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Basic/Attributes.cpp head/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp head/contrib/llvm/tools/clang/lib/Basic/Warnings.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Basic/Warnings.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h head/contrib/llvm/tools/clang/lib/CodeGen/SanitizerBlacklist.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/SanitizerBlacklist.cpp head/contrib/llvm/tools/clang/lib/CodeGen/SanitizerBlacklist.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/SanitizerBlacklist.h head/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp head/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/ head/contrib/llvm/tools/clang/lib/Headers/arm_acle.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Headers/arm_acle.h head/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h head/contrib/llvm/tools/clang/lib/Headers/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Headers/module.modulemap head/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp head/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp head/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp head/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SelectorExtras.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SelectorExtras.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h head/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h head/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileCache.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/FileCache.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h head/contrib/llvm/tools/lldb/include/lldb/Host/IOObject.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/IOObject.h head/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h head/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h head/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/ head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h head/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoaderList.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/JITLoaderList.h head/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContext.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContextRegisterInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContextRegisterInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SafeMachO.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Utility/SafeMachO.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h head/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp head/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp head/contrib/llvm/tools/lldb/source/Core/FastDemangle.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Core/FastDemangle.cpp head/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp head/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp head/contrib/llvm/tools/lldb/source/Host/common/IOObject.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/IOObject.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.h head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.h head/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.h head/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.h head/contrib/llvm/tools/lldb/source/Host/common/Pipe.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/Pipe.cpp head/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp head/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.h head/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Host/posix/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Host/posix/ head/contrib/llvm/tools/lldb/source/Interpreter/CommandOptionValidators.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Interpreter/CommandOptionValidators.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/ head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/ head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/JITLoader/ head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h head/contrib/llvm/tools/lldb/source/Target/FileAction.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Target/FileAction.cpp head/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp head/contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp head/contrib/llvm/tools/lldb/source/Target/NativeRegisterContext.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Target/NativeRegisterContext.cpp head/contrib/llvm/tools/lldb/source/Target/NativeRegisterContextRegisterInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Target/NativeRegisterContextRegisterInfo.cpp head/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp head/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp head/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.cpp head/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.h head/contrib/llvm/tools/lldb/source/Utility/ARM64_GCC_Registers.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Utility/ARM64_GCC_Registers.h head/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/ - copied from r276476, projects/clang350-import/contrib/llvm/tools/lldb/tools/lldb-mi/ head/contrib/llvm/tools/lli/RPCChannel.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lli/RPCChannel.h head/contrib/llvm/tools/lli/Unix/RPCChannel.inc - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lli/Unix/RPCChannel.inc head/contrib/llvm/tools/lli/Windows/RPCChannel.inc - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/lli/Windows/RPCChannel.inc head/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.cpp head/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.h head/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h head/contrib/llvm/tools/llvm-readobj/Win64EHDumper.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/llvm-readobj/Win64EHDumper.cpp head/contrib/llvm/tools/llvm-readobj/Win64EHDumper.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/llvm-readobj/Win64EHDumper.h head/contrib/llvm/tools/opt/BreakpointPrinter.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/BreakpointPrinter.cpp head/contrib/llvm/tools/opt/BreakpointPrinter.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/BreakpointPrinter.h head/contrib/llvm/tools/opt/NewPMDriver.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/NewPMDriver.cpp head/contrib/llvm/tools/opt/NewPMDriver.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/NewPMDriver.h head/contrib/llvm/tools/opt/PassPrinters.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/PassPrinters.cpp head/contrib/llvm/tools/opt/PassPrinters.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/PassPrinters.h head/contrib/llvm/tools/opt/PassRegistry.def - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/PassRegistry.def head/contrib/llvm/tools/opt/Passes.cpp - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/Passes.cpp head/contrib/llvm/tools/opt/Passes.h - copied unchanged from r276476, projects/clang350-import/contrib/llvm/tools/opt/Passes.h head/contrib/llvm/utils/TableGen/module.modulemap - copied unchanged from r276476, projects/clang350-import/contrib/llvm/utils/TableGen/module.modulemap head/lib/clang/include/MipsGenFastISel.inc - copied unchanged from r276476, projects/clang350-import/lib/clang/include/MipsGenFastISel.inc head/lib/clang/include/PPCGenDisassemblerTables.inc - copied unchanged from r276476, projects/clang350-import/lib/clang/include/PPCGenDisassemblerTables.inc head/lib/clang/include/clang/AST/AttrVisitor.inc - copied unchanged from r276476, projects/clang350-import/lib/clang/include/clang/AST/AttrVisitor.inc head/lib/clang/include/clang/Basic/AttrHasAttributeImpl.inc - copied unchanged from r276476, projects/clang350-import/lib/clang/include/clang/Basic/AttrHasAttributeImpl.inc head/lib/clang/include/clang/Parse/AttrParserStringSwitches.inc - copied unchanged from r276476, projects/clang350-import/lib/clang/include/clang/Parse/AttrParserStringSwitches.inc head/lib/clang/libclangrewrite/ - copied from r276476, projects/clang350-import/lib/clang/libclangrewrite/ head/lib/clang/liblldbHostPOSIX/ - copied from r276476, projects/clang350-import/lib/clang/liblldbHostPOSIX/ head/lib/clang/liblldbPluginInstructionARM64/ - copied from r276476, projects/clang350-import/lib/clang/liblldbPluginInstructionARM64/ head/lib/clang/liblldbPluginJITLoaderGDB/ - copied from r276476, projects/clang350-import/lib/clang/liblldbPluginJITLoaderGDB/ head/lib/clang/liblldbPluginObjectFileJIT/ - copied from r276476, projects/clang350-import/lib/clang/liblldbPluginObjectFileJIT/ head/lib/clang/libllvmmcanalysis/ - copied from r276476, projects/clang350-import/lib/clang/libllvmmcanalysis/ head/lib/clang/libllvmpowerpcdisassembler/ - copied from r276476, projects/clang350-import/lib/clang/libllvmpowerpcdisassembler/ head/lib/clang/libllvmprofiledata/ - copied from r276476, projects/clang350-import/lib/clang/libllvmprofiledata/ Deleted: head/contrib/llvm/include/llvm/ADT/ImmutableIntervalMap.h head/contrib/llvm/include/llvm/ADT/OwningPtr.h head/contrib/llvm/include/llvm/ADT/ValueMap.h head/contrib/llvm/include/llvm/ADT/polymorphic_ptr.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyImpl.h head/contrib/llvm/include/llvm/Analysis/DominatorInternals.h head/contrib/llvm/include/llvm/Analysis/Dominators.h head/contrib/llvm/include/llvm/Analysis/Verifier.h head/contrib/llvm/include/llvm/Assembly/ head/contrib/llvm/include/llvm/AutoUpgrade.h head/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h head/contrib/llvm/include/llvm/CodeGen/PBQP/HeuristicBase.h head/contrib/llvm/include/llvm/CodeGen/PBQP/HeuristicSolver.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Heuristics/ head/contrib/llvm/include/llvm/DIBuilder.h head/contrib/llvm/include/llvm/DebugInfo.h head/contrib/llvm/include/llvm/GVMaterializer.h head/contrib/llvm/include/llvm/InstVisitor.h head/contrib/llvm/include/llvm/Linker.h head/contrib/llvm/include/llvm/MC/MCAtom.h head/contrib/llvm/include/llvm/MC/MCFunction.h head/contrib/llvm/include/llvm/MC/MCModule.h head/contrib/llvm/include/llvm/MC/MCModuleYAML.h head/contrib/llvm/include/llvm/Object/YAML.h head/contrib/llvm/include/llvm/Support/CFG.h head/contrib/llvm/include/llvm/Support/CallSite.h head/contrib/llvm/include/llvm/Support/ConstantFolder.h head/contrib/llvm/include/llvm/Support/ConstantRange.h head/contrib/llvm/include/llvm/Support/DataFlow.h head/contrib/llvm/include/llvm/Support/DebugLoc.h head/contrib/llvm/include/llvm/Support/Disassembler.h head/contrib/llvm/include/llvm/Support/FEnv.h head/contrib/llvm/include/llvm/Support/GetElementPtrTypeIterator.h head/contrib/llvm/include/llvm/Support/InstIterator.h head/contrib/llvm/include/llvm/Support/LeakDetector.h head/contrib/llvm/include/llvm/Support/NoFolder.h head/contrib/llvm/include/llvm/Support/PassNameParser.h head/contrib/llvm/include/llvm/Support/PatternMatch.h head/contrib/llvm/include/llvm/Support/PredIteratorCache.h head/contrib/llvm/include/llvm/Support/TargetFolder.h head/contrib/llvm/include/llvm/Support/ValueHandle.h head/contrib/llvm/include/llvm/Support/system_error.h head/contrib/llvm/include/llvm/Target/Mangler.h head/contrib/llvm/include/llvm/Transforms/Utils/SpecialCaseList.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp head/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp head/contrib/llvm/lib/IR/PrintModulePass.cpp head/contrib/llvm/lib/MC/MCAtom.cpp head/contrib/llvm/lib/MC/MCFunction.cpp head/contrib/llvm/lib/MC/MCModule.cpp head/contrib/llvm/lib/MC/MCModuleYAML.cpp head/contrib/llvm/lib/MC/MCObjectDisassembler.cpp head/contrib/llvm/lib/MC/MCObjectSymbolizer.cpp head/contrib/llvm/lib/MC/MCPureStreamer.cpp head/contrib/llvm/lib/Object/YAML.cpp head/contrib/llvm/lib/Support/ConstantRange.cpp head/contrib/llvm/lib/Support/Disassembler.cpp head/contrib/llvm/lib/Support/Unix/system_error.inc head/contrib/llvm/lib/Support/Windows/Windows.h head/contrib/llvm/lib/Support/Windows/system_error.inc head/contrib/llvm/lib/Support/system_error.cpp head/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.h head/contrib/llvm/lib/Target/AArch64/AArch64BranchFixupPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallingConv.td head/contrib/llvm/lib/Target/AArch64/AArch64InstrNEON.td head/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp head/contrib/llvm/lib/Target/AArch64/README.txt head/contrib/llvm/lib/Target/ARM/ARMBuildAttrs.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOp.h head/contrib/llvm/lib/Target/Mangler.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsReginfo.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsReginfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXSplitBBatBar.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXSplitBBatBar.h head/contrib/llvm/lib/Target/R600/AMDGPUConvertToISA.cpp head/contrib/llvm/lib/Target/R600/AMDILBase.td head/contrib/llvm/lib/Target/R600/AMDILISelLowering.cpp head/contrib/llvm/lib/Target/R600/AMDILInstrInfo.td head/contrib/llvm/lib/Target/R600/AMDILIntrinsicInfo.cpp head/contrib/llvm/lib/Target/R600/AMDILIntrinsicInfo.h head/contrib/llvm/lib/Target/R600/AMDILIntrinsics.td head/contrib/llvm/lib/Target/R600/AMDILRegisterInfo.td head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c head/contrib/llvm/lib/Target/X86/X86COFFMachineModuleInfo.cpp head/contrib/llvm/lib/Target/X86/X86COFFMachineModuleInfo.h head/contrib/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp head/contrib/llvm/lib/Transforms/Scalar/GlobalMerge.cpp head/contrib/llvm/lib/Transforms/Utils/SpecialCaseList.cpp head/contrib/llvm/patches/patch-r208961-clang-version-include.diff head/contrib/llvm/patches/patch-r208987-format-extensions.diff head/contrib/llvm/patches/patch-r209107-clang-vendor-suffix.diff head/contrib/llvm/patches/patch-r213492-amd64-multi-os-dot.diff head/contrib/llvm/patches/patch-r221503-default-target-triple.diff head/contrib/llvm/patches/patch-r243830-arm-disable-clear-cache.diff head/contrib/llvm/patches/patch-r252503-arm-transient-stack-alignment.diff head/contrib/llvm/patches/patch-r257109-add-CC-aliases.diff head/contrib/llvm/patches/patch-r259053-gcc-installation-detector.diff head/contrib/llvm/patches/patch-r259498-add-fxsave.diff head/contrib/llvm/patches/patch-r261680-clang-r200899-fix-security-quantis.diff head/contrib/llvm/patches/patch-r261991-llvm-r195391-fix-dwarf2.diff head/contrib/llvm/patches/patch-r261991-llvm-r198385-fix-dwarf2.diff head/contrib/llvm/patches/patch-r261991-llvm-r198389-fix-dwarf2.diff head/contrib/llvm/patches/patch-r262261-llvm-r198028-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198029-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198030-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198145-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198149-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198157-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198281-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198286-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198480-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198484-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198533-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198565-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198567-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198580-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198591-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198592-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198658-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198681-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198738-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198739-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198740-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198893-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198909-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r198910-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199014-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199024-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199028-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199031-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199033-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199061-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199186-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199187-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199775-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199781-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199786-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199940-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199974-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199975-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r199977-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200103-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200104-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200112-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200130-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200131-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200141-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200282-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200373-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200376-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200509-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200617-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200960-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200961-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200962-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200963-sparc.diff head/contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r198311-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r198312-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r198912-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r198918-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r198923-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r199012-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r199034-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r199037-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r199188-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r199399-sparc.diff head/contrib/llvm/patches/patch-r262262-clang-r200452-sparc.diff head/contrib/llvm/patches/patch-r262264-llvm-r200453-sparc.diff head/contrib/llvm/patches/patch-r262265-llvm-r201718-sparc.diff head/contrib/llvm/patches/patch-r262303-enable-ppc-integrated-as.diff head/contrib/llvm/patches/patch-r262415-llvm-r201994-sparc.diff head/contrib/llvm/patches/patch-r262460-llvm-r202059-sparc.diff head/contrib/llvm/patches/patch-r262535-clang-r202177-sparc.diff head/contrib/llvm/patches/patch-r262536-clang-r202179-sparc.diff head/contrib/llvm/patches/patch-r262582-llvm-r202422-sparc.diff head/contrib/llvm/patches/patch-r262611-llvm-r196874-fix-invalid-pwd-crash.diff head/contrib/llvm/patches/patch-r263048-clang-r203624-fix-CC-aliases.diff head/contrib/llvm/patches/patch-r263312-llvm-r169939-inline-asm-with-realign.diff head/contrib/llvm/patches/patch-r263312-llvm-r196940-update-inline-asm-test.diff head/contrib/llvm/patches/patch-r263312-llvm-r196986-allow-realign-alloca.diff head/contrib/llvm/patches/patch-r263312-llvm-r202930-fix-alloca-esi-clobber.diff head/contrib/llvm/patches/patch-r263313-llvm-r203311-fix-sse1-oom.diff head/contrib/llvm/patches/patch-r263619-clang-r201662-arm-gnueabihf.diff head/contrib/llvm/patches/patch-r264345-dwarf2-freebsd10.diff head/contrib/llvm/patches/patch-r264826-llvm-r202188-variadic-fn-debug-info.diff head/contrib/llvm/patches/patch-r264827-clang-r202185-variadic-fn-debug-info.diff head/contrib/llvm/patches/patch-r265477-clang-r198655-standalone-debug.diff head/contrib/llvm/patches/patch-r266674-clang-r209489-fix-xmmintrin.diff head/contrib/llvm/patches/patch-r267704-llvm-r211435-fix-avx-backend.diff head/contrib/llvm/patches/patch-r267981-llvm-r211435-fix-ppc-fctiduz.diff head/contrib/llvm/patches/patch-r269387-clang-arm-target-cpu.diff head/contrib/llvm/patches/patch-r270147-llvm-r197824-r213427-r213960.diff head/contrib/llvm/patches/patch-r271024-llvm-r216989-r216990-fix-movw-armv6.diff head/contrib/llvm/patches/patch-r271282-clang-r200797-r200798-r200805-debug-info-crash.diff head/contrib/llvm/patches/patch-r271432-clang-r205331-debug-info-crash.diff head/contrib/llvm/patches/patch-r271597-clang-r217410-i386-garbage-float.diff head/contrib/llvm/patches/patch-r274286-llvm-r201784-asm-dollar.diff head/contrib/llvm/patches/patch-r274442-llvm-r221709-debug-oom.diff head/contrib/llvm/patches/patch-r275633-llvm-r223171-fix-vectorizer.diff head/contrib/llvm/patches/patch-r275759-clang-r221170-ppc-vaarg.diff head/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowSolver.h head/contrib/llvm/tools/clang/include/clang/Basic/OnDiskHashTable.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenCL.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1AsOptions.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1AsOptions.td head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.h head/contrib/llvm/tools/clang/include/clang/Frontend/ChainedIncludesSource.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRTTI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftVBTables.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftVBTables.h head/contrib/llvm/tools/clang/lib/Driver/CC1AsOptions.cpp head/contrib/llvm/tools/clang/lib/Frontend/Warnings.cpp head/contrib/llvm/tools/clang/lib/Headers/module.map head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.h head/contrib/llvm/tools/clang/lib/Rewrite/Core/ head/contrib/llvm/tools/clang/lib/Rewrite/Frontend/ head/contrib/llvm/tools/clang/lib/Sema/TargetAttributesSema.cpp head/contrib/llvm/tools/clang/lib/Sema/TargetAttributesSema.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.h head/contrib/llvm/tools/lldb/include/lldb/Host/DynamicLibrary.h head/contrib/llvm/tools/lldb/source/Host/common/DynamicLibrary.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextLinux_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextLinux_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextLinux_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextLinux_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX_x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContext_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContext_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterInfos_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterInfos_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterInfos_x86_64.h head/contrib/llvm/tools/lli/ChildTarget/Unix/ head/contrib/llvm/tools/lli/ChildTarget/Windows/ head/contrib/llvm/tools/lli/Unix/RemoteTargetExternal.inc head/contrib/llvm/tools/lli/Windows/RemoteTargetExternal.inc head/contrib/llvm/utils/TableGen/SetTheory.cpp head/contrib/llvm/utils/TableGen/SetTheory.h head/contrib/llvm/utils/TableGen/TGValueTypes.cpp head/lib/clang/include/clang/Driver/CC1AsOptions.inc head/lib/clang/include/clang/Lex/ head/lib/clang/include/clang/Parse/AttrIdentifierArg.inc head/lib/clang/include/clang/Parse/AttrLateParsed.inc head/lib/clang/include/clang/Parse/AttrTypeArg.inc head/lib/clang/libclangrewritecore/ Modified: head/ObsoleteFiles.inc head/UPDATING head/contrib/llvm/LICENSE.TXT head/contrib/llvm/include/llvm-c/Core.h head/contrib/llvm/include/llvm-c/Disassembler.h head/contrib/llvm/include/llvm-c/ExecutionEngine.h head/contrib/llvm/include/llvm-c/IRReader.h head/contrib/llvm/include/llvm-c/Object.h head/contrib/llvm/include/llvm-c/Support.h head/contrib/llvm/include/llvm-c/TargetMachine.h head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h head/contrib/llvm/include/llvm-c/Transforms/Scalar.h head/contrib/llvm/include/llvm-c/lto.h head/contrib/llvm/include/llvm/ADT/APFloat.h head/contrib/llvm/include/llvm/ADT/APInt.h head/contrib/llvm/include/llvm/ADT/APSInt.h head/contrib/llvm/include/llvm/ADT/ArrayRef.h head/contrib/llvm/include/llvm/ADT/BitVector.h head/contrib/llvm/include/llvm/ADT/DenseMap.h head/contrib/llvm/include/llvm/ADT/DenseSet.h head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h head/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h head/contrib/llvm/include/llvm/ADT/FoldingSet.h head/contrib/llvm/include/llvm/ADT/Hashing.h head/contrib/llvm/include/llvm/ADT/ImmutableMap.h head/contrib/llvm/include/llvm/ADT/ImmutableSet.h head/contrib/llvm/include/llvm/ADT/IntervalMap.h head/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h head/contrib/llvm/include/llvm/ADT/MapVector.h head/contrib/llvm/include/llvm/ADT/Optional.h head/contrib/llvm/include/llvm/ADT/PointerIntPair.h head/contrib/llvm/include/llvm/ADT/PointerUnion.h head/contrib/llvm/include/llvm/ADT/PostOrderIterator.h head/contrib/llvm/include/llvm/ADT/SCCIterator.h head/contrib/llvm/include/llvm/ADT/STLExtras.h head/contrib/llvm/include/llvm/ADT/ScopedHashTable.h head/contrib/llvm/include/llvm/ADT/SetVector.h head/contrib/llvm/include/llvm/ADT/SmallBitVector.h head/contrib/llvm/include/llvm/ADT/SmallPtrSet.h head/contrib/llvm/include/llvm/ADT/SmallSet.h head/contrib/llvm/include/llvm/ADT/SmallString.h head/contrib/llvm/include/llvm/ADT/SmallVector.h head/contrib/llvm/include/llvm/ADT/SparseBitVector.h head/contrib/llvm/include/llvm/ADT/SparseMultiSet.h head/contrib/llvm/include/llvm/ADT/SparseSet.h head/contrib/llvm/include/llvm/ADT/Statistic.h head/contrib/llvm/include/llvm/ADT/StringExtras.h head/contrib/llvm/include/llvm/ADT/StringMap.h head/contrib/llvm/include/llvm/ADT/StringRef.h head/contrib/llvm/include/llvm/ADT/StringSwitch.h head/contrib/llvm/include/llvm/ADT/TinyPtrVector.h head/contrib/llvm/include/llvm/ADT/Triple.h head/contrib/llvm/include/llvm/ADT/Twine.h head/contrib/llvm/include/llvm/ADT/UniqueVector.h head/contrib/llvm/include/llvm/ADT/edit_distance.h head/contrib/llvm/include/llvm/ADT/ilist.h head/contrib/llvm/include/llvm/ADT/ilist_node.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h head/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h head/contrib/llvm/include/llvm/Analysis/CFG.h head/contrib/llvm/include/llvm/Analysis/CFGPrinter.h head/contrib/llvm/include/llvm/Analysis/CallGraph.h head/contrib/llvm/include/llvm/Analysis/CallGraphSCCPass.h head/contrib/llvm/include/llvm/Analysis/CaptureTracking.h head/contrib/llvm/include/llvm/Analysis/CodeMetrics.h head/contrib/llvm/include/llvm/Analysis/ConstantFolding.h head/contrib/llvm/include/llvm/Analysis/ConstantsScanner.h head/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h head/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h head/contrib/llvm/include/llvm/Analysis/FindUsedTypes.h head/contrib/llvm/include/llvm/Analysis/IVUsers.h head/contrib/llvm/include/llvm/Analysis/InlineCost.h head/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h head/contrib/llvm/include/llvm/Analysis/Interval.h head/contrib/llvm/include/llvm/Analysis/IntervalIterator.h head/contrib/llvm/include/llvm/Analysis/IntervalPartition.h head/contrib/llvm/include/llvm/Analysis/LazyValueInfo.h head/contrib/llvm/include/llvm/Analysis/LibCallAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/LibCallSemantics.h head/contrib/llvm/include/llvm/Analysis/Loads.h head/contrib/llvm/include/llvm/Analysis/LoopInfo.h head/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h head/contrib/llvm/include/llvm/Analysis/LoopPass.h head/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h head/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/PHITransAddr.h head/contrib/llvm/include/llvm/Analysis/Passes.h head/contrib/llvm/include/llvm/Analysis/PostDominators.h head/contrib/llvm/include/llvm/Analysis/PtrUseVisitor.h head/contrib/llvm/include/llvm/Analysis/RegionInfo.h head/contrib/llvm/include/llvm/Analysis/RegionIterator.h head/contrib/llvm/include/llvm/Analysis/RegionPass.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h head/contrib/llvm/include/llvm/Analysis/SparsePropagation.h head/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h head/contrib/llvm/include/llvm/Analysis/ValueTracking.h head/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h head/contrib/llvm/include/llvm/Bitcode/BitstreamWriter.h head/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h head/contrib/llvm/include/llvm/Bitcode/ReaderWriter.h head/contrib/llvm/include/llvm/CodeGen/Analysis.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h head/contrib/llvm/include/llvm/CodeGen/CommandFlags.h head/contrib/llvm/include/llvm/CodeGen/EdgeBundles.h head/contrib/llvm/include/llvm/CodeGen/FastISel.h head/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h head/contrib/llvm/include/llvm/CodeGen/GCMetadata.h head/contrib/llvm/include/llvm/CodeGen/GCStrategy.h head/contrib/llvm/include/llvm/CodeGen/GCs.h head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h head/contrib/llvm/include/llvm/CodeGen/IntrinsicLowering.h head/contrib/llvm/include/llvm/CodeGen/JITCodeEmitter.h head/contrib/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h head/contrib/llvm/include/llvm/CodeGen/LexicalScopes.h head/contrib/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervalUnion.h head/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h head/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h head/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h head/contrib/llvm/include/llvm/CodeGen/LiveVariables.h head/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h head/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineCodeEmitter.h head/contrib/llvm/include/llvm/CodeGen/MachineCodeInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h head/contrib/llvm/include/llvm/CodeGen/MachineDominators.h head/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineFunction.h head/contrib/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h head/contrib/llvm/include/llvm/CodeGen/MachineFunctionPass.h head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBundle.h head/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineOperand.h head/contrib/llvm/include/llvm/CodeGen/MachinePassRegistry.h head/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h head/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineSSAUpdater.h head/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h head/contrib/llvm/include/llvm/CodeGen/MachineTraceMetrics.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Graph.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Math.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Solution.h head/contrib/llvm/include/llvm/CodeGen/Passes.h head/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h head/contrib/llvm/include/llvm/CodeGen/RegAllocPBQP.h head/contrib/llvm/include/llvm/CodeGen/RegisterClassInfo.h head/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h head/contrib/llvm/include/llvm/CodeGen/RegisterScavenging.h head/contrib/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h head/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDFS.h head/contrib/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h head/contrib/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h head/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h head/contrib/llvm/include/llvm/CodeGen/StackMaps.h head/contrib/llvm/include/llvm/CodeGen/StackProtector.h head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h head/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h head/contrib/llvm/include/llvm/CodeGen/ValueTypes.h head/contrib/llvm/include/llvm/CodeGen/VirtRegMap.h head/contrib/llvm/include/llvm/DebugInfo/DIContext.h head/contrib/llvm/include/llvm/DebugInfo/DWARFFormValue.h head/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h head/contrib/llvm/include/llvm/ExecutionEngine/JITEventListener.h head/contrib/llvm/include/llvm/ExecutionEngine/ObjectBuffer.h head/contrib/llvm/include/llvm/ExecutionEngine/ObjectImage.h head/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h head/contrib/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h head/contrib/llvm/include/llvm/IR/Argument.h head/contrib/llvm/include/llvm/IR/Attributes.h head/contrib/llvm/include/llvm/IR/BasicBlock.h head/contrib/llvm/include/llvm/IR/CallingConv.h head/contrib/llvm/include/llvm/IR/Constant.h head/contrib/llvm/include/llvm/IR/Constants.h head/contrib/llvm/include/llvm/IR/DataLayout.h head/contrib/llvm/include/llvm/IR/DerivedTypes.h head/contrib/llvm/include/llvm/IR/Function.h head/contrib/llvm/include/llvm/IR/GlobalAlias.h head/contrib/llvm/include/llvm/IR/GlobalValue.h head/contrib/llvm/include/llvm/IR/GlobalVariable.h head/contrib/llvm/include/llvm/IR/IRBuilder.h head/contrib/llvm/include/llvm/IR/InlineAsm.h head/contrib/llvm/include/llvm/IR/InstrTypes.h head/contrib/llvm/include/llvm/IR/Instruction.h head/contrib/llvm/include/llvm/IR/Instructions.h head/contrib/llvm/include/llvm/IR/IntrinsicInst.h head/contrib/llvm/include/llvm/IR/Intrinsics.h head/contrib/llvm/include/llvm/IR/Intrinsics.td head/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td head/contrib/llvm/include/llvm/IR/IntrinsicsARM.td head/contrib/llvm/include/llvm/IR/IntrinsicsMips.td head/contrib/llvm/include/llvm/IR/IntrinsicsNVVM.td head/contrib/llvm/include/llvm/IR/IntrinsicsR600.td head/contrib/llvm/include/llvm/IR/IntrinsicsX86.td head/contrib/llvm/include/llvm/IR/IntrinsicsXCore.td head/contrib/llvm/include/llvm/IR/LLVMContext.h head/contrib/llvm/include/llvm/IR/LegacyPassManager.h head/contrib/llvm/include/llvm/IR/LegacyPassManagers.h head/contrib/llvm/include/llvm/IR/MDBuilder.h head/contrib/llvm/include/llvm/IR/Metadata.h head/contrib/llvm/include/llvm/IR/Module.h head/contrib/llvm/include/llvm/IR/Operator.h head/contrib/llvm/include/llvm/IR/PassManager.h head/contrib/llvm/include/llvm/IR/SymbolTableListTraits.h head/contrib/llvm/include/llvm/IR/Type.h head/contrib/llvm/include/llvm/IR/Use.h head/contrib/llvm/include/llvm/IR/User.h head/contrib/llvm/include/llvm/IR/Value.h head/contrib/llvm/include/llvm/IRReader/IRReader.h head/contrib/llvm/include/llvm/InitializePasses.h head/contrib/llvm/include/llvm/LTO/LTOCodeGenerator.h head/contrib/llvm/include/llvm/LTO/LTOModule.h head/contrib/llvm/include/llvm/LinkAllIR.h head/contrib/llvm/include/llvm/LinkAllPasses.h head/contrib/llvm/include/llvm/MC/MCAsmBackend.h head/contrib/llvm/include/llvm/MC/MCAsmInfo.h head/contrib/llvm/include/llvm/MC/MCAsmInfoCOFF.h head/contrib/llvm/include/llvm/MC/MCAsmLayout.h head/contrib/llvm/include/llvm/MC/MCAssembler.h head/contrib/llvm/include/llvm/MC/MCCodeEmitter.h head/contrib/llvm/include/llvm/MC/MCContext.h head/contrib/llvm/include/llvm/MC/MCDirectives.h head/contrib/llvm/include/llvm/MC/MCDisassembler.h head/contrib/llvm/include/llvm/MC/MCDwarf.h head/contrib/llvm/include/llvm/MC/MCELF.h head/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCELFStreamer.h head/contrib/llvm/include/llvm/MC/MCELFSymbolFlags.h head/contrib/llvm/include/llvm/MC/MCExpr.h head/contrib/llvm/include/llvm/MC/MCExternalSymbolizer.h head/contrib/llvm/include/llvm/MC/MCFixup.h head/contrib/llvm/include/llvm/MC/MCInst.h head/contrib/llvm/include/llvm/MC/MCInstPrinter.h head/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h head/contrib/llvm/include/llvm/MC/MCInstrDesc.h head/contrib/llvm/include/llvm/MC/MCInstrItineraries.h head/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h head/contrib/llvm/include/llvm/MC/MCObjectDisassembler.h head/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h head/contrib/llvm/include/llvm/MC/MCObjectStreamer.h head/contrib/llvm/include/llvm/MC/MCObjectSymbolizer.h head/contrib/llvm/include/llvm/MC/MCObjectWriter.h head/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h head/contrib/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h head/contrib/llvm/include/llvm/MC/MCRegisterInfo.h head/contrib/llvm/include/llvm/MC/MCSchedule.h head/contrib/llvm/include/llvm/MC/MCSectionCOFF.h head/contrib/llvm/include/llvm/MC/MCSectionELF.h head/contrib/llvm/include/llvm/MC/MCSectionMachO.h head/contrib/llvm/include/llvm/MC/MCStreamer.h head/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h head/contrib/llvm/include/llvm/MC/MCSymbol.h head/contrib/llvm/include/llvm/MC/MCSymbolizer.h head/contrib/llvm/include/llvm/MC/MCTargetAsmParser.h head/contrib/llvm/include/llvm/MC/MCValue.h head/contrib/llvm/include/llvm/MC/MCWin64EH.h head/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h head/contrib/llvm/include/llvm/MC/MachineLocation.h head/contrib/llvm/include/llvm/MC/SubtargetFeature.h head/contrib/llvm/include/llvm/Object/Archive.h head/contrib/llvm/include/llvm/Object/Binary.h head/contrib/llvm/include/llvm/Object/COFF.h head/contrib/llvm/include/llvm/Object/COFFYAML.h head/contrib/llvm/include/llvm/Object/ELF.h head/contrib/llvm/include/llvm/Object/ELFObjectFile.h head/contrib/llvm/include/llvm/Object/ELFYAML.h head/contrib/llvm/include/llvm/Object/Error.h head/contrib/llvm/include/llvm/Object/MachO.h head/contrib/llvm/include/llvm/Object/MachOUniversal.h head/contrib/llvm/include/llvm/Object/ObjectFile.h head/contrib/llvm/include/llvm/Object/RelocVisitor.h head/contrib/llvm/include/llvm/Option/Arg.h head/contrib/llvm/include/llvm/Option/ArgList.h head/contrib/llvm/include/llvm/Option/OptParser.td head/contrib/llvm/include/llvm/Option/OptSpecifier.h head/contrib/llvm/include/llvm/Option/Option.h head/contrib/llvm/include/llvm/Pass.h head/contrib/llvm/include/llvm/PassAnalysisSupport.h head/contrib/llvm/include/llvm/PassRegistry.h head/contrib/llvm/include/llvm/PassSupport.h head/contrib/llvm/include/llvm/Support/AlignOf.h head/contrib/llvm/include/llvm/Support/Allocator.h head/contrib/llvm/include/llvm/Support/ArrayRecycler.h head/contrib/llvm/include/llvm/Support/BlockFrequency.h head/contrib/llvm/include/llvm/Support/BranchProbability.h head/contrib/llvm/include/llvm/Support/COFF.h head/contrib/llvm/include/llvm/Support/Casting.h head/contrib/llvm/include/llvm/Support/CodeGen.h head/contrib/llvm/include/llvm/Support/CommandLine.h head/contrib/llvm/include/llvm/Support/Compiler.h head/contrib/llvm/include/llvm/Support/Compression.h head/contrib/llvm/include/llvm/Support/ConvertUTF.h head/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h head/contrib/llvm/include/llvm/Support/DataTypes.h.in head/contrib/llvm/include/llvm/Support/Debug.h head/contrib/llvm/include/llvm/Support/Dwarf.h head/contrib/llvm/include/llvm/Support/DynamicLibrary.h head/contrib/llvm/include/llvm/Support/ELF.h head/contrib/llvm/include/llvm/Support/Endian.h head/contrib/llvm/include/llvm/Support/ErrorHandling.h head/contrib/llvm/include/llvm/Support/ErrorOr.h head/contrib/llvm/include/llvm/Support/FileOutputBuffer.h head/contrib/llvm/include/llvm/Support/FileSystem.h head/contrib/llvm/include/llvm/Support/FileUtilities.h head/contrib/llvm/include/llvm/Support/Format.h head/contrib/llvm/include/llvm/Support/FormattedStream.h head/contrib/llvm/include/llvm/Support/GCOV.h head/contrib/llvm/include/llvm/Support/GraphWriter.h head/contrib/llvm/include/llvm/Support/Host.h head/contrib/llvm/include/llvm/Support/LEB128.h head/contrib/llvm/include/llvm/Support/LockFileManager.h head/contrib/llvm/include/llvm/Support/MD5.h head/contrib/llvm/include/llvm/Support/MachO.h head/contrib/llvm/include/llvm/Support/ManagedStatic.h head/contrib/llvm/include/llvm/Support/MathExtras.h head/contrib/llvm/include/llvm/Support/Memory.h head/contrib/llvm/include/llvm/Support/MemoryBuffer.h head/contrib/llvm/include/llvm/Support/Path.h head/contrib/llvm/include/llvm/Support/PrettyStackTrace.h head/contrib/llvm/include/llvm/Support/Process.h head/contrib/llvm/include/llvm/Support/Program.h head/contrib/llvm/include/llvm/Support/Recycler.h head/contrib/llvm/include/llvm/Support/Regex.h head/contrib/llvm/include/llvm/Support/Registry.h head/contrib/llvm/include/llvm/Support/SMLoc.h head/contrib/llvm/include/llvm/Support/SaveAndRestore.h head/contrib/llvm/include/llvm/Support/Signals.h head/contrib/llvm/include/llvm/Support/SourceMgr.h head/contrib/llvm/include/llvm/Support/StreamableMemoryObject.h head/contrib/llvm/include/llvm/Support/StringPool.h head/contrib/llvm/include/llvm/Support/StringRefMemoryObject.h head/contrib/llvm/include/llvm/Support/SwapByteOrder.h head/contrib/llvm/include/llvm/Support/TargetRegistry.h head/contrib/llvm/include/llvm/Support/Threading.h head/contrib/llvm/include/llvm/Support/TimeValue.h head/contrib/llvm/include/llvm/Support/Timer.h head/contrib/llvm/include/llvm/Support/ToolOutputFile.h head/contrib/llvm/include/llvm/Support/Unicode.h head/contrib/llvm/include/llvm/Support/UnicodeCharRanges.h head/contrib/llvm/include/llvm/Support/Valgrind.h head/contrib/llvm/include/llvm/Support/Win64EH.h head/contrib/llvm/include/llvm/Support/YAMLParser.h head/contrib/llvm/include/llvm/Support/YAMLTraits.h head/contrib/llvm/include/llvm/Support/circular_raw_ostream.h head/contrib/llvm/include/llvm/Support/raw_os_ostream.h head/contrib/llvm/include/llvm/Support/raw_ostream.h head/contrib/llvm/include/llvm/Support/type_traits.h head/contrib/llvm/include/llvm/TableGen/Error.h head/contrib/llvm/include/llvm/TableGen/Main.h head/contrib/llvm/include/llvm/TableGen/Record.h head/contrib/llvm/include/llvm/TableGen/StringMatcher.h head/contrib/llvm/include/llvm/TableGen/StringToOffsetTable.h head/contrib/llvm/include/llvm/Target/Target.td head/contrib/llvm/include/llvm/Target/TargetCallingConv.h head/contrib/llvm/include/llvm/Target/TargetCallingConv.td head/contrib/llvm/include/llvm/Target/TargetFrameLowering.h head/contrib/llvm/include/llvm/Target/TargetInstrInfo.h head/contrib/llvm/include/llvm/Target/TargetIntrinsicInfo.h head/contrib/llvm/include/llvm/Target/TargetLibraryInfo.h head/contrib/llvm/include/llvm/Target/TargetLowering.h head/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h head/contrib/llvm/include/llvm/Target/TargetMachine.h head/contrib/llvm/include/llvm/Target/TargetOpcodes.h head/contrib/llvm/include/llvm/Target/TargetOptions.h head/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h head/contrib/llvm/include/llvm/Target/TargetSchedule.td head/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td head/contrib/llvm/include/llvm/Target/TargetSelectionDAGInfo.h head/contrib/llvm/include/llvm/Target/TargetSubtargetInfo.h head/contrib/llvm/include/llvm/Transforms/IPO.h head/contrib/llvm/include/llvm/Transforms/IPO/InlinerPass.h head/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h head/contrib/llvm/include/llvm/Transforms/Instrumentation.h head/contrib/llvm/include/llvm/Transforms/ObjCARC.h head/contrib/llvm/include/llvm/Transforms/Scalar.h head/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h head/contrib/llvm/include/llvm/Transforms/Utils/CmpInstAnalysis.h head/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h head/contrib/llvm/include/llvm/Transforms/Utils/IntegerDivision.h head/contrib/llvm/include/llvm/Transforms/Utils/Local.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/PromoteMemToReg.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h head/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h head/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h head/contrib/llvm/include/llvm/Transforms/Vectorize.h head/contrib/llvm/lib/Analysis/AliasAnalysis.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisCounter.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp head/contrib/llvm/lib/Analysis/AliasDebugger.cpp head/contrib/llvm/lib/Analysis/AliasSetTracker.cpp head/contrib/llvm/lib/Analysis/Analysis.cpp head/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp head/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp head/contrib/llvm/lib/Analysis/CFG.cpp head/contrib/llvm/lib/Analysis/CFGPrinter.cpp head/contrib/llvm/lib/Analysis/CaptureTracking.cpp head/contrib/llvm/lib/Analysis/CodeMetrics.cpp head/contrib/llvm/lib/Analysis/ConstantFolding.cpp head/contrib/llvm/lib/Analysis/CostModel.cpp head/contrib/llvm/lib/Analysis/Delinearization.cpp head/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/DomPrinter.cpp head/contrib/llvm/lib/Analysis/DominanceFrontier.cpp head/contrib/llvm/lib/Analysis/IPA/CallGraph.cpp head/contrib/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp head/contrib/llvm/lib/Analysis/IPA/CallPrinter.cpp head/contrib/llvm/lib/Analysis/IPA/FindUsedTypes.cpp head/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp head/contrib/llvm/lib/Analysis/IPA/IPA.cpp head/contrib/llvm/lib/Analysis/IPA/InlineCost.cpp head/contrib/llvm/lib/Analysis/IVUsers.cpp head/contrib/llvm/lib/Analysis/InstCount.cpp head/contrib/llvm/lib/Analysis/InstructionSimplify.cpp head/contrib/llvm/lib/Analysis/Interval.cpp head/contrib/llvm/lib/Analysis/IntervalPartition.cpp head/contrib/llvm/lib/Analysis/LazyValueInfo.cpp head/contrib/llvm/lib/Analysis/LibCallAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/LibCallSemantics.cpp head/contrib/llvm/lib/Analysis/Lint.cpp head/contrib/llvm/lib/Analysis/Loads.cpp head/contrib/llvm/lib/Analysis/LoopInfo.cpp head/contrib/llvm/lib/Analysis/LoopPass.cpp head/contrib/llvm/lib/Analysis/MemDepPrinter.cpp head/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp head/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp head/contrib/llvm/lib/Analysis/NoAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/PHITransAddr.cpp head/contrib/llvm/lib/Analysis/PostDominators.cpp head/contrib/llvm/lib/Analysis/PtrUseVisitor.cpp head/contrib/llvm/lib/Analysis/RegionInfo.cpp head/contrib/llvm/lib/Analysis/RegionPass.cpp head/contrib/llvm/lib/Analysis/RegionPrinter.cpp head/contrib/llvm/lib/Analysis/ScalarEvolution.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp head/contrib/llvm/lib/Analysis/SparsePropagation.cpp head/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp head/contrib/llvm/lib/Analysis/Trace.cpp head/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ValueTracking.cpp head/contrib/llvm/lib/AsmParser/LLLexer.cpp head/contrib/llvm/lib/AsmParser/LLLexer.h head/contrib/llvm/lib/AsmParser/LLParser.cpp head/contrib/llvm/lib/AsmParser/LLParser.h head/contrib/llvm/lib/AsmParser/LLToken.h head/contrib/llvm/lib/AsmParser/Parser.cpp head/contrib/llvm/lib/Bitcode/Reader/BitReader.cpp head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.h head/contrib/llvm/lib/Bitcode/Reader/BitstreamReader.cpp head/contrib/llvm/lib/Bitcode/Writer/BitWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h head/contrib/llvm/lib/CodeGen/AllocationOrder.cpp head/contrib/llvm/lib/CodeGen/AllocationOrder.h head/contrib/llvm/lib/CodeGen/Analysis.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h head/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/Win64Exception.cpp head/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.cpp head/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp head/contrib/llvm/lib/CodeGen/CallingConvLower.cpp head/contrib/llvm/lib/CodeGen/CodeGen.cpp head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.h head/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp head/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp head/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp head/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp head/contrib/llvm/lib/CodeGen/EdgeBundles.cpp head/contrib/llvm/lib/CodeGen/ErlangGC.cpp head/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp head/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp head/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp head/contrib/llvm/lib/CodeGen/GCMetadata.cpp head/contrib/llvm/lib/CodeGen/GCStrategy.cpp head/contrib/llvm/lib/CodeGen/IfConversion.cpp head/contrib/llvm/lib/CodeGen/InlineSpiller.cpp head/contrib/llvm/lib/CodeGen/InterferenceCache.cpp head/contrib/llvm/lib/CodeGen/InterferenceCache.h head/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp head/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp head/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp head/contrib/llvm/lib/CodeGen/LexicalScopes.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.h head/contrib/llvm/lib/CodeGen/LiveInterval.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.h head/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp head/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp head/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp head/contrib/llvm/lib/CodeGen/LiveVariables.cpp head/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp head/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp head/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp head/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp head/contrib/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp head/contrib/llvm/lib/CodeGen/MachineCSE.cpp head/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp head/contrib/llvm/lib/CodeGen/MachineFunction.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionAnalysis.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp head/contrib/llvm/lib/CodeGen/MachineInstr.cpp head/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp head/contrib/llvm/lib/CodeGen/MachineLICM.cpp head/contrib/llvm/lib/CodeGen/MachineLoopInfo.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp head/contrib/llvm/lib/CodeGen/MachinePassRegistry.cpp head/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp head/contrib/llvm/lib/CodeGen/MachineScheduler.cpp head/contrib/llvm/lib/CodeGen/MachineSink.cpp head/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp head/contrib/llvm/lib/CodeGen/MachineVerifier.cpp head/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp head/contrib/llvm/lib/CodeGen/PHIElimination.cpp head/contrib/llvm/lib/CodeGen/PHIEliminationUtils.cpp head/contrib/llvm/lib/CodeGen/Passes.cpp head/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp head/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp head/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp head/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp head/contrib/llvm/lib/CodeGen/PrologEpilogInserter.h head/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp head/contrib/llvm/lib/CodeGen/RegAllocBase.cpp head/contrib/llvm/lib/CodeGen/RegAllocBase.h head/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp head/contrib/llvm/lib/CodeGen/RegAllocFast.cpp head/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp head/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp head/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.h head/contrib/llvm/lib/CodeGen/RegisterPressure.cpp head/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetSelectionDAGInfo.cpp head/contrib/llvm/lib/CodeGen/ShadowStackGC.cpp head/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp head/contrib/llvm/lib/CodeGen/SlotIndexes.cpp head/contrib/llvm/lib/CodeGen/SpillPlacement.cpp head/contrib/llvm/lib/CodeGen/SpillPlacement.h head/contrib/llvm/lib/CodeGen/Spiller.cpp head/contrib/llvm/lib/CodeGen/SplitKit.cpp head/contrib/llvm/lib/CodeGen/SplitKit.h head/contrib/llvm/lib/CodeGen/StackColoring.cpp head/contrib/llvm/lib/CodeGen/StackMaps.cpp head/contrib/llvm/lib/CodeGen/StackProtector.cpp head/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp head/contrib/llvm/lib/CodeGen/TailDuplication.cpp head/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp head/contrib/llvm/lib/CodeGen/TargetOptionsImpl.cpp head/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp head/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp head/contrib/llvm/lib/CodeGen/VirtRegMap.cpp head/contrib/llvm/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp head/contrib/llvm/lib/DebugInfo/DWARFAbbreviationDeclaration.h head/contrib/llvm/lib/DebugInfo/DWARFCompileUnit.h head/contrib/llvm/lib/DebugInfo/DWARFContext.cpp head/contrib/llvm/lib/DebugInfo/DWARFContext.h head/contrib/llvm/lib/DebugInfo/DWARFDebugAbbrev.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugAbbrev.h head/contrib/llvm/lib/DebugInfo/DWARFDebugArangeSet.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugArangeSet.h head/contrib/llvm/lib/DebugInfo/DWARFDebugAranges.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugAranges.h head/contrib/llvm/lib/DebugInfo/DWARFDebugFrame.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugFrame.h head/contrib/llvm/lib/DebugInfo/DWARFDebugInfoEntry.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugInfoEntry.h head/contrib/llvm/lib/DebugInfo/DWARFDebugLine.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugLine.h head/contrib/llvm/lib/DebugInfo/DWARFDebugLoc.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugLoc.h head/contrib/llvm/lib/DebugInfo/DWARFDebugRangeList.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugRangeList.h head/contrib/llvm/lib/DebugInfo/DWARFFormValue.cpp head/contrib/llvm/lib/DebugInfo/DWARFTypeUnit.h head/contrib/llvm/lib/DebugInfo/DWARFUnit.cpp head/contrib/llvm/lib/DebugInfo/DWARFUnit.h head/contrib/llvm/lib/ExecutionEngine/EventListenerCommon.h head/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp head/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h head/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h head/contrib/llvm/lib/ExecutionEngine/JIT/JIT.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/JIT.h head/contrib/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/JITMemoryManager.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h head/contrib/llvm/lib/ExecutionEngine/MCJIT/SectionMemoryManager.cpp head/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp head/contrib/llvm/lib/ExecutionEngine/RTDyldMemoryManager.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/ObjectImageCommon.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h head/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp head/contrib/llvm/lib/IR/AsmWriter.cpp head/contrib/llvm/lib/IR/AsmWriter.h head/contrib/llvm/lib/IR/AttributeImpl.h head/contrib/llvm/lib/IR/Attributes.cpp head/contrib/llvm/lib/IR/AutoUpgrade.cpp head/contrib/llvm/lib/IR/BasicBlock.cpp head/contrib/llvm/lib/IR/ConstantFold.cpp head/contrib/llvm/lib/IR/Constants.cpp head/contrib/llvm/lib/IR/ConstantsContext.h head/contrib/llvm/lib/IR/Core.cpp head/contrib/llvm/lib/IR/DIBuilder.cpp head/contrib/llvm/lib/IR/DataLayout.cpp head/contrib/llvm/lib/IR/DebugInfo.cpp head/contrib/llvm/lib/IR/DebugLoc.cpp head/contrib/llvm/lib/IR/Dominators.cpp head/contrib/llvm/lib/IR/Function.cpp head/contrib/llvm/lib/IR/GCOV.cpp head/contrib/llvm/lib/IR/GVMaterializer.cpp head/contrib/llvm/lib/IR/Globals.cpp head/contrib/llvm/lib/IR/InlineAsm.cpp head/contrib/llvm/lib/IR/Instruction.cpp head/contrib/llvm/lib/IR/Instructions.cpp head/contrib/llvm/lib/IR/IntrinsicInst.cpp head/contrib/llvm/lib/IR/LLVMContext.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.h head/contrib/llvm/lib/IR/LeakDetector.cpp head/contrib/llvm/lib/IR/LeaksContext.h head/contrib/llvm/lib/IR/LegacyPassManager.cpp head/contrib/llvm/lib/IR/Metadata.cpp head/contrib/llvm/lib/IR/Module.cpp head/contrib/llvm/lib/IR/Pass.cpp head/contrib/llvm/lib/IR/PassManager.cpp head/contrib/llvm/lib/IR/PassRegistry.cpp head/contrib/llvm/lib/IR/SymbolTableListTraitsImpl.h head/contrib/llvm/lib/IR/Type.cpp head/contrib/llvm/lib/IR/Use.cpp head/contrib/llvm/lib/IR/Value.cpp head/contrib/llvm/lib/IR/ValueSymbolTable.cpp head/contrib/llvm/lib/IR/Verifier.cpp head/contrib/llvm/lib/IRReader/IRReader.cpp head/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp head/contrib/llvm/lib/LTO/LTOModule.cpp head/contrib/llvm/lib/Linker/LinkModules.cpp head/contrib/llvm/lib/MC/ELFObjectWriter.cpp head/contrib/llvm/lib/MC/MCAsmBackend.cpp head/contrib/llvm/lib/MC/MCAsmInfo.cpp head/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp head/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp head/contrib/llvm/lib/MC/MCAsmInfoELF.cpp head/contrib/llvm/lib/MC/MCAsmStreamer.cpp head/contrib/llvm/lib/MC/MCAssembler.cpp head/contrib/llvm/lib/MC/MCContext.cpp head/contrib/llvm/lib/MC/MCDisassembler.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.h head/contrib/llvm/lib/MC/MCDwarf.cpp head/contrib/llvm/lib/MC/MCELF.cpp head/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp head/contrib/llvm/lib/MC/MCELFStreamer.cpp head/contrib/llvm/lib/MC/MCExpr.cpp head/contrib/llvm/lib/MC/MCExternalSymbolizer.cpp head/contrib/llvm/lib/MC/MCInst.cpp head/contrib/llvm/lib/MC/MCMachOStreamer.cpp head/contrib/llvm/lib/MC/MCNullStreamer.cpp head/contrib/llvm/lib/MC/MCObjectFileInfo.cpp head/contrib/llvm/lib/MC/MCObjectStreamer.cpp head/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/AsmParser.cpp head/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp head/contrib/llvm/lib/MC/MCRelocationInfo.cpp head/contrib/llvm/lib/MC/MCSectionCOFF.cpp head/contrib/llvm/lib/MC/MCSectionMachO.cpp head/contrib/llvm/lib/MC/MCStreamer.cpp head/contrib/llvm/lib/MC/MCSubtargetInfo.cpp head/contrib/llvm/lib/MC/MCSymbolizer.cpp head/contrib/llvm/lib/MC/MCValue.cpp head/contrib/llvm/lib/MC/MCWin64EH.cpp head/contrib/llvm/lib/MC/MachObjectWriter.cpp head/contrib/llvm/lib/MC/SubtargetFeature.cpp head/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp head/contrib/llvm/lib/MC/WinCOFFStreamer.cpp head/contrib/llvm/lib/Object/Archive.cpp head/contrib/llvm/lib/Object/Binary.cpp head/contrib/llvm/lib/Object/COFFObjectFile.cpp head/contrib/llvm/lib/Object/COFFYAML.cpp head/contrib/llvm/lib/Object/ELF.cpp head/contrib/llvm/lib/Object/ELFObjectFile.cpp head/contrib/llvm/lib/Object/ELFYAML.cpp head/contrib/llvm/lib/Object/Error.cpp head/contrib/llvm/lib/Object/MachOObjectFile.cpp head/contrib/llvm/lib/Object/MachOUniversal.cpp head/contrib/llvm/lib/Object/Object.cpp head/contrib/llvm/lib/Object/ObjectFile.cpp head/contrib/llvm/lib/Option/ArgList.cpp head/contrib/llvm/lib/Option/OptTable.cpp head/contrib/llvm/lib/Option/Option.cpp head/contrib/llvm/lib/Support/APFloat.cpp head/contrib/llvm/lib/Support/APInt.cpp head/contrib/llvm/lib/Support/Allocator.cpp head/contrib/llvm/lib/Support/Atomic.cpp head/contrib/llvm/lib/Support/BlockFrequency.cpp head/contrib/llvm/lib/Support/BranchProbability.cpp head/contrib/llvm/lib/Support/CommandLine.cpp head/contrib/llvm/lib/Support/Compression.cpp head/contrib/llvm/lib/Support/ConvertUTF.c head/contrib/llvm/lib/Support/CrashRecoveryContext.cpp head/contrib/llvm/lib/Support/DAGDeltaAlgorithm.cpp head/contrib/llvm/lib/Support/DataExtractor.cpp head/contrib/llvm/lib/Support/DataStream.cpp head/contrib/llvm/lib/Support/Debug.cpp head/contrib/llvm/lib/Support/Dwarf.cpp head/contrib/llvm/lib/Support/DynamicLibrary.cpp head/contrib/llvm/lib/Support/ErrorHandling.cpp head/contrib/llvm/lib/Support/FileOutputBuffer.cpp head/contrib/llvm/lib/Support/FileUtilities.cpp head/contrib/llvm/lib/Support/FoldingSet.cpp head/contrib/llvm/lib/Support/FormattedStream.cpp head/contrib/llvm/lib/Support/GraphWriter.cpp head/contrib/llvm/lib/Support/Host.cpp head/contrib/llvm/lib/Support/IntervalMap.cpp head/contrib/llvm/lib/Support/LockFileManager.cpp head/contrib/llvm/lib/Support/ManagedStatic.cpp head/contrib/llvm/lib/Support/MemoryBuffer.cpp head/contrib/llvm/lib/Support/Mutex.cpp head/contrib/llvm/lib/Support/Path.cpp head/contrib/llvm/lib/Support/PrettyStackTrace.cpp head/contrib/llvm/lib/Support/Process.cpp head/contrib/llvm/lib/Support/Program.cpp head/contrib/llvm/lib/Support/RWMutex.cpp head/contrib/llvm/lib/Support/Regex.cpp head/contrib/llvm/lib/Support/SearchForAddressOfSpecialSymbol.cpp head/contrib/llvm/lib/Support/SmallPtrSet.cpp head/contrib/llvm/lib/Support/SourceMgr.cpp head/contrib/llvm/lib/Support/Statistic.cpp head/contrib/llvm/lib/Support/StreamableMemoryObject.cpp head/contrib/llvm/lib/Support/StringMap.cpp head/contrib/llvm/lib/Support/StringPool.cpp head/contrib/llvm/lib/Support/StringRef.cpp head/contrib/llvm/lib/Support/TargetRegistry.cpp head/contrib/llvm/lib/Support/ThreadLocal.cpp head/contrib/llvm/lib/Support/Threading.cpp head/contrib/llvm/lib/Support/TimeValue.cpp head/contrib/llvm/lib/Support/Timer.cpp head/contrib/llvm/lib/Support/ToolOutputFile.cpp head/contrib/llvm/lib/Support/Triple.cpp head/contrib/llvm/lib/Support/Twine.cpp head/contrib/llvm/lib/Support/Unix/Host.inc head/contrib/llvm/lib/Support/Unix/Memory.inc head/contrib/llvm/lib/Support/Unix/Path.inc head/contrib/llvm/lib/Support/Unix/Process.inc head/contrib/llvm/lib/Support/Unix/Program.inc head/contrib/llvm/lib/Support/Unix/RWMutex.inc head/contrib/llvm/lib/Support/Unix/Signals.inc head/contrib/llvm/lib/Support/Unix/TimeValue.inc head/contrib/llvm/lib/Support/Valgrind.cpp head/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc head/contrib/llvm/lib/Support/Windows/Host.inc head/contrib/llvm/lib/Support/Windows/Memory.inc head/contrib/llvm/lib/Support/Windows/Mutex.inc head/contrib/llvm/lib/Support/Windows/Path.inc head/contrib/llvm/lib/Support/Windows/Process.inc head/contrib/llvm/lib/Support/Windows/Program.inc head/contrib/llvm/lib/Support/Windows/RWMutex.inc head/contrib/llvm/lib/Support/Windows/Signals.inc head/contrib/llvm/lib/Support/Windows/ThreadLocal.inc head/contrib/llvm/lib/Support/Windows/TimeValue.inc head/contrib/llvm/lib/Support/YAMLParser.cpp head/contrib/llvm/lib/Support/YAMLTraits.cpp head/contrib/llvm/lib/Support/raw_ostream.cpp head/contrib/llvm/lib/Support/regcclass.h head/contrib/llvm/lib/Support/regcname.h head/contrib/llvm/lib/Support/regcomp.c head/contrib/llvm/lib/Support/regengine.inc head/contrib/llvm/lib/Support/regex2.h head/contrib/llvm/lib/Support/regutils.h head/contrib/llvm/lib/TableGen/Error.cpp head/contrib/llvm/lib/TableGen/Main.cpp head/contrib/llvm/lib/TableGen/Record.cpp head/contrib/llvm/lib/TableGen/TGLexer.cpp head/contrib/llvm/lib/TableGen/TGLexer.h head/contrib/llvm/lib/TableGen/TGParser.cpp head/contrib/llvm/lib/TableGen/TGParser.h head/contrib/llvm/lib/Target/AArch64/AArch64.h head/contrib/llvm/lib/Target/AArch64/AArch64.td head/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64Schedule.td head/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h head/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h head/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h head/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp head/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp head/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h head/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h head/contrib/llvm/lib/Target/ARM/A15SDOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARM.h head/contrib/llvm/lib/Target/ARM/ARM.td head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.td head/contrib/llvm/lib/Target/ARM/ARMCodeEmitter.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h head/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/ARM/ARMFPUName.def head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp head/contrib/llvm/lib/Target/ARM/ARMFeatures.h head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h head/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp head/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.h head/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.h head/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td head/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td head/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td head/contrib/llvm/lib/Target/ARM/ARMJITInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMJITInfo.h head/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp head/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td head/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.td head/contrib/llvm/lib/Target/ARM/ARMScheduleV6.td head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.h head/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.h head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h head/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.h head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h head/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp head/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.h head/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.h head/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.h head/contrib/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp head/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.h head/contrib/llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2RegisterInfo.h head/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp head/contrib/llvm/lib/Target/CppBackend/CPPBackend.cpp head/contrib/llvm/lib/Target/CppBackend/CPPTargetMachine.h head/contrib/llvm/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp head/contrib/llvm/lib/Target/Hexagon/Hexagon.td head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h head/contrib/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonCallingConvLower.h head/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonExpandPredSpillCode.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfoV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h head/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonPeephole.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSplitTFRCondSets.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVarargsCallingConvention.h head/contrib/llvm/lib/Target/Hexagon/InstPrinter/HexagonInstPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/InstPrinter/HexagonInstPrinter.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp head/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp head/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp head/contrib/llvm/lib/Target/MSP430/MSP430.td head/contrib/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp head/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp head/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp head/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.h head/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.cpp head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430SelectionDAGInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.cpp head/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.h head/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp head/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.h head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp head/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp head/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp head/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp head/contrib/llvm/lib/Target/Mips/MSA.txt head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips.h head/contrib/llvm/lib/Target/Mips/Mips.td head/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.h head/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp head/contrib/llvm/lib/Target/Mips/Mips16HardFloat.h head/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.h head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.h head/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h head/contrib/llvm/lib/Target/Mips/MipsCallingConv.td head/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/MipsCondMov.td head/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp head/contrib/llvm/lib/Target/Mips/MipsDSPInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsJITInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsJITInfo.h head/contrib/llvm/lib/Target/Mips/MipsLongBranch.cpp head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h head/contrib/llvm/lib/Target/Mips/MipsMSAInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsMSAInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.h head/contrib/llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/MipsOs16.cpp head/contrib/llvm/lib/Target/Mips/MipsOs16.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsSchedule.td head/contrib/llvm/lib/Target/Mips/MipsSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSelectionDAGInfo.h head/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp head/contrib/llvm/lib/Target/Mips/MipsSubtarget.h head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.h head/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h head/contrib/llvm/lib/Target/NVPTX/InstPrinter/NVPTXInstPrinter.cpp head/contrib/llvm/lib/Target/NVPTX/InstPrinter/NVPTXInstPrinter.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXBaseInfo.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTX.h head/contrib/llvm/lib/Target/NVPTX/NVPTX.td head/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.h head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h head/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h head/contrib/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrFormats.td head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td head/contrib/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.h head/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.h head/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.td head/contrib/llvm/lib/Target/NVPTX/NVPTXSection.h head/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h head/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.h head/contrib/llvm/lib/Target/NVPTX/NVVMReflect.cpp head/contrib/llvm/lib/Target/NVPTX/cl_common_defines.h head/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h head/contrib/llvm/lib/Target/PowerPC/PPC.h head/contrib/llvm/lib/Target/PowerPC/PPC.td head/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td head/contrib/llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp head/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.h head/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCJITInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCJITInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCSchedule.td head/contrib/llvm/lib/Target/PowerPC/PPCSchedule440.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleA2.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE5500.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG3.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4Plus.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG5.td head/contrib/llvm/lib/Target/PowerPC/PPCSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCSelectionDAGInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetStreamer.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp head/contrib/llvm/lib/Target/R600/AMDGPU.h head/contrib/llvm/lib/Target/R600/AMDGPU.td head/contrib/llvm/lib/Target/R600/AMDGPUAsmPrinter.cpp head/contrib/llvm/lib/Target/R600/AMDGPUAsmPrinter.h head/contrib/llvm/lib/Target/R600/AMDGPUCallingConv.td head/contrib/llvm/lib/Target/R600/AMDGPUFrameLowering.cpp head/contrib/llvm/lib/Target/R600/AMDGPUFrameLowering.h head/contrib/llvm/lib/Target/R600/AMDGPUISelDAGToDAG.cpp head/contrib/llvm/lib/Target/R600/AMDGPUISelLowering.cpp head/contrib/llvm/lib/Target/R600/AMDGPUISelLowering.h head/contrib/llvm/lib/Target/R600/AMDGPUInstrInfo.cpp head/contrib/llvm/lib/Target/R600/AMDGPUInstrInfo.h head/contrib/llvm/lib/Target/R600/AMDGPUInstrInfo.td head/contrib/llvm/lib/Target/R600/AMDGPUInstructions.td head/contrib/llvm/lib/Target/R600/AMDGPUIntrinsics.td head/contrib/llvm/lib/Target/R600/AMDGPUMCInstLower.cpp head/contrib/llvm/lib/Target/R600/AMDGPUMCInstLower.h head/contrib/llvm/lib/Target/R600/AMDGPUMachineFunction.cpp head/contrib/llvm/lib/Target/R600/AMDGPUMachineFunction.h head/contrib/llvm/lib/Target/R600/AMDGPURegisterInfo.cpp head/contrib/llvm/lib/Target/R600/AMDGPURegisterInfo.h head/contrib/llvm/lib/Target/R600/AMDGPUSubtarget.cpp head/contrib/llvm/lib/Target/R600/AMDGPUSubtarget.h head/contrib/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp head/contrib/llvm/lib/Target/R600/AMDGPUTargetMachine.h head/contrib/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp head/contrib/llvm/lib/Target/R600/AMDILCFGStructurizer.cpp head/contrib/llvm/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp head/contrib/llvm/lib/Target/R600/InstPrinter/AMDGPUInstPrinter.h head/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUAsmBackend.cpp head/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUELFObjectWriter.cpp head/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp head/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.h head/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCCodeEmitter.h head/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCTargetDesc.cpp head/contrib/llvm/lib/Target/R600/MCTargetDesc/R600MCCodeEmitter.cpp head/contrib/llvm/lib/Target/R600/MCTargetDesc/SIMCCodeEmitter.cpp head/contrib/llvm/lib/Target/R600/Processors.td head/contrib/llvm/lib/Target/R600/R600ClauseMergePass.cpp head/contrib/llvm/lib/Target/R600/R600ControlFlowFinalizer.cpp head/contrib/llvm/lib/Target/R600/R600Defines.h head/contrib/llvm/lib/Target/R600/R600EmitClauseMarkers.cpp head/contrib/llvm/lib/Target/R600/R600ExpandSpecialInstrs.cpp head/contrib/llvm/lib/Target/R600/R600ISelLowering.cpp head/contrib/llvm/lib/Target/R600/R600ISelLowering.h head/contrib/llvm/lib/Target/R600/R600InstrInfo.cpp head/contrib/llvm/lib/Target/R600/R600InstrInfo.h head/contrib/llvm/lib/Target/R600/R600Instructions.td head/contrib/llvm/lib/Target/R600/R600MachineFunctionInfo.h head/contrib/llvm/lib/Target/R600/R600MachineScheduler.cpp head/contrib/llvm/lib/Target/R600/R600MachineScheduler.h head/contrib/llvm/lib/Target/R600/R600OptimizeVectorRegisters.cpp head/contrib/llvm/lib/Target/R600/R600Packetizer.cpp head/contrib/llvm/lib/Target/R600/R600RegisterInfo.cpp head/contrib/llvm/lib/Target/R600/R600RegisterInfo.h head/contrib/llvm/lib/Target/R600/R600RegisterInfo.td head/contrib/llvm/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp head/contrib/llvm/lib/Target/R600/SIAnnotateControlFlow.cpp head/contrib/llvm/lib/Target/R600/SIDefines.h head/contrib/llvm/lib/Target/R600/SIFixSGPRCopies.cpp head/contrib/llvm/lib/Target/R600/SIISelLowering.cpp head/contrib/llvm/lib/Target/R600/SIISelLowering.h head/contrib/llvm/lib/Target/R600/SIInsertWaits.cpp head/contrib/llvm/lib/Target/R600/SIInstrFormats.td head/contrib/llvm/lib/Target/R600/SIInstrInfo.cpp head/contrib/llvm/lib/Target/R600/SIInstrInfo.h head/contrib/llvm/lib/Target/R600/SIInstrInfo.td head/contrib/llvm/lib/Target/R600/SIInstructions.td head/contrib/llvm/lib/Target/R600/SIIntrinsics.td head/contrib/llvm/lib/Target/R600/SILowerControlFlow.cpp head/contrib/llvm/lib/Target/R600/SIMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/R600/SIMachineFunctionInfo.h head/contrib/llvm/lib/Target/R600/SIRegisterInfo.cpp head/contrib/llvm/lib/Target/R600/SIRegisterInfo.h head/contrib/llvm/lib/Target/R600/SIRegisterInfo.td head/contrib/llvm/lib/Target/R600/SITypeRewriter.cpp head/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp (contents, props changed) head/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp head/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp (contents, props changed) head/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.h (contents, props changed) head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.cpp head/contrib/llvm/lib/Target/Sparc/Sparc.h head/contrib/llvm/lib/Target/Sparc/Sparc.td head/contrib/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp head/contrib/llvm/lib/Target/Sparc/SparcCodeEmitter.cpp head/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.h head/contrib/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h head/contrib/llvm/lib/Target/Sparc/SparcInstr64Bit.td head/contrib/llvm/lib/Target/Sparc/SparcInstrAliases.td head/contrib/llvm/lib/Target/Sparc/SparcInstrFormats.td head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.h head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td head/contrib/llvm/lib/Target/Sparc/SparcJITInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcJITInfo.h head/contrib/llvm/lib/Target/Sparc/SparcMCInstLower.cpp head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.td head/contrib/llvm/lib/Target/Sparc/SparcSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcSelectionDAGInfo.h head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h head/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.cpp head/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.h head/contrib/llvm/lib/Target/Sparc/SparcTargetStreamer.h head/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp head/contrib/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp head/contrib/llvm/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.cpp head/contrib/llvm/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.h head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.h head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCFixups.h head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h head/contrib/llvm/lib/Target/SystemZ/README.txt head/contrib/llvm/lib/Target/SystemZ/SystemZ.h head/contrib/llvm/lib/Target/SystemZ/SystemZ.td head/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.h head/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.h head/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.td head/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.h head/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZLongBranch.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZMCInstLower.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZMCInstLower.h head/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZOperands.td head/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td head/contrib/llvm/lib/Target/SystemZ/SystemZPatterns.td head/contrib/llvm/lib/Target/SystemZ/SystemZProcessors.td head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h head/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h head/contrib/llvm/lib/Target/Target.cpp head/contrib/llvm/lib/Target/TargetLibraryInfo.cpp head/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp head/contrib/llvm/lib/Target/TargetMachine.cpp head/contrib/llvm/lib/Target/TargetMachineC.cpp head/contrib/llvm/lib/Target/TargetSubtargetInfo.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.h head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFRelocationInfo.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachORelocationInfo.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h head/contrib/llvm/lib/Target/X86/X86.h head/contrib/llvm/lib/Target/X86/X86.td head/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp head/contrib/llvm/lib/Target/X86/X86AsmPrinter.h head/contrib/llvm/lib/Target/X86/X86CallingConv.td head/contrib/llvm/lib/Target/X86/X86CodeEmitter.cpp head/contrib/llvm/lib/Target/X86/X86FastISel.cpp head/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp head/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.h head/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.h head/contrib/llvm/lib/Target/X86/X86InstrAVX512.td head/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td head/contrib/llvm/lib/Target/X86/X86InstrBuilder.h head/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td head/contrib/llvm/lib/Target/X86/X86InstrCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrControl.td head/contrib/llvm/lib/Target/X86/X86InstrExtension.td head/contrib/llvm/lib/Target/X86/X86InstrFMA.td head/contrib/llvm/lib/Target/X86/X86InstrFPStack.td head/contrib/llvm/lib/Target/X86/X86InstrFormats.td head/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td head/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp head/contrib/llvm/lib/Target/X86/X86InstrInfo.h head/contrib/llvm/lib/Target/X86/X86InstrInfo.td head/contrib/llvm/lib/Target/X86/X86InstrMMX.td head/contrib/llvm/lib/Target/X86/X86InstrSSE.td head/contrib/llvm/lib/Target/X86/X86InstrSVM.td head/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td head/contrib/llvm/lib/Target/X86/X86InstrSystem.td head/contrib/llvm/lib/Target/X86/X86InstrTSX.td head/contrib/llvm/lib/Target/X86/X86InstrVMX.td head/contrib/llvm/lib/Target/X86/X86InstrXOP.td head/contrib/llvm/lib/Target/X86/X86JITInfo.cpp head/contrib/llvm/lib/Target/X86/X86JITInfo.h head/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp head/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.h head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td head/contrib/llvm/lib/Target/X86/X86SchedHaswell.td head/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td head/contrib/llvm/lib/Target/X86/X86Schedule.td head/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td head/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td head/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.h head/contrib/llvm/lib/Target/X86/X86Subtarget.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.h head/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp head/contrib/llvm/lib/Target/X86/X86TargetMachine.h head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp head/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp head/contrib/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp head/contrib/llvm/lib/Target/XCore/InstPrinter/XCoreInstPrinter.cpp head/contrib/llvm/lib/Target/XCore/InstPrinter/XCoreInstPrinter.h head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.h head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp head/contrib/llvm/lib/Target/XCore/XCore.h head/contrib/llvm/lib/Target/XCore/XCore.td head/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp head/contrib/llvm/lib/Target/XCore/XCoreCallingConv.td head/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.h head/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.h head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td head/contrib/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp head/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.cpp head/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h head/contrib/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.h head/contrib/llvm/lib/Target/XCore/XCoreSubtarget.cpp head/contrib/llvm/lib/Target/XCore/XCoreSubtarget.h head/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h head/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.h head/contrib/llvm/lib/Target/XCore/XCoreTargetTransformInfo.cpp head/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp head/contrib/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp head/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp head/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp head/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp head/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp head/contrib/llvm/lib/Transforms/IPO/IPO.cpp head/contrib/llvm/lib/Transforms/IPO/InlineAlways.cpp head/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp head/contrib/llvm/lib/Transforms/IPO/Inliner.cpp head/contrib/llvm/lib/Transforms/IPO/Internalize.cpp head/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp head/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp head/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp head/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp head/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp head/contrib/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp head/contrib/llvm/lib/Transforms/IPO/StripSymbols.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombine.h head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineWorklist.h head/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp head/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp head/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/DebugIR.cpp head/contrib/llvm/lib/Transforms/Instrumentation/DebugIR.h head/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp head/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h head/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp head/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp head/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp head/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp head/contrib/llvm/lib/Transforms/Scalar/DCE.cpp head/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp head/contrib/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/GVN.cpp head/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp head/contrib/llvm/lib/Transforms/Scalar/LICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp head/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp head/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp head/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp head/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp head/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp head/contrib/llvm/lib/Transforms/Scalar/SROA.cpp head/contrib/llvm/lib/Transforms/Scalar/SampleProfile.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp head/contrib/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp head/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/Sink.cpp head/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp head/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp head/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp head/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp head/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp head/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp head/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp head/contrib/llvm/lib/Transforms/Utils/CmpInstAnalysis.cpp head/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp head/contrib/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp head/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp head/contrib/llvm/lib/Transforms/Utils/GlobalStatus.cpp head/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp head/contrib/llvm/lib/Transforms/Utils/InstructionNamer.cpp head/contrib/llvm/lib/Transforms/Utils/IntegerDivision.cpp head/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp head/contrib/llvm/lib/Transforms/Utils/Local.cpp head/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp head/contrib/llvm/lib/Transforms/Utils/LowerExpectIntrinsic.cpp head/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp head/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp head/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp head/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp head/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp head/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp head/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp head/contrib/llvm/lib/Transforms/Utils/Utils.cpp head/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp head/contrib/llvm/lib/Transforms/Vectorize/BBVectorize.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp head/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp head/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp head/contrib/llvm/patches/README.TXT head/contrib/llvm/tools/bugpoint/BugDriver.cpp head/contrib/llvm/tools/bugpoint/BugDriver.h head/contrib/llvm/tools/bugpoint/CrashDebugger.cpp head/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp head/contrib/llvm/tools/bugpoint/ExtractFunction.cpp head/contrib/llvm/tools/bugpoint/FindBugs.cpp head/contrib/llvm/tools/bugpoint/Miscompilation.cpp head/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.h head/contrib/llvm/tools/bugpoint/bugpoint.cpp head/contrib/llvm/tools/clang/LICENSE.TXT head/contrib/llvm/tools/clang/include/clang-c/CXString.h head/contrib/llvm/tools/clang/include/clang-c/Index.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMT.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMTActions.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/FileRemapper.h head/contrib/llvm/tools/clang/include/clang/AST/APValue.h head/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h head/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h head/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h head/contrib/llvm/tools/clang/include/clang/AST/ASTLambda.h head/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h head/contrib/llvm/tools/clang/include/clang/AST/ASTTypeTraits.h head/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h head/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h head/contrib/llvm/tools/clang/include/clang/AST/Attr.h head/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h head/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h head/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h head/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h head/contrib/llvm/tools/clang/include/clang/AST/Comment.h head/contrib/llvm/tools/clang/include/clang/AST/CommentCommands.td head/contrib/llvm/tools/clang/include/clang/AST/CommentHTMLTags.td head/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h head/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h head/contrib/llvm/tools/clang/include/clang/AST/Decl.h head/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h head/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h head/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h head/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h head/contrib/llvm/tools/clang/include/clang/AST/DeclGroup.h head/contrib/llvm/tools/clang/include/clang/AST/DeclLookups.h head/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h head/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h head/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h head/contrib/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/Expr.h head/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h head/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h head/contrib/llvm/tools/clang/include/clang/AST/Mangle.h head/contrib/llvm/tools/clang/include/clang/AST/MangleNumberingContext.h head/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h head/contrib/llvm/tools/clang/include/clang/AST/ParentMap.h head/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h head/contrib/llvm/tools/clang/include/clang/AST/RawCommentList.h head/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h head/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h head/contrib/llvm/tools/clang/include/clang/AST/Stmt.h head/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h head/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h head/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h head/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h head/contrib/llvm/tools/clang/include/clang/AST/Type.h head/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h head/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def head/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h head/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Diagnostics.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ReachableCode.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h head/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h head/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h head/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h head/contrib/llvm/tools/clang/include/clang/Basic/ABI.h head/contrib/llvm/tools/clang/include/clang/Basic/Attr.td head/contrib/llvm/tools/clang/include/clang/Basic/AttrKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsMips.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommentKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h head/contrib/llvm/tools/clang/include/clang/Basic/FileSystemStatCache.h head/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h head/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/Linkage.h head/contrib/llvm/tools/clang/include/clang/Basic/Module.h head/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/PrettyStackTrace.h head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def head/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h head/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h head/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetCXXABI.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/TemplateKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/Version.h head/contrib/llvm/tools/clang/include/clang/Basic/VersionTuple.h head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td head/contrib/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h head/contrib/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h head/contrib/llvm/tools/clang/include/clang/Driver/Action.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td head/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td head/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h head/contrib/llvm/tools/clang/include/clang/Driver/Driver.h head/contrib/llvm/tools/clang/include/clang/Driver/Job.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.td head/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h head/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h head/contrib/llvm/tools/clang/include/clang/Driver/Types.def head/contrib/llvm/tools/clang/include/clang/Edit/Commit.h head/contrib/llvm/tools/clang/include/clang/Edit/EditedSource.h head/contrib/llvm/tools/clang/include/clang/Edit/FileOffset.h head/contrib/llvm/tools/clang/include/clang/Format/Format.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h head/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticConsumer.h head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h head/contrib/llvm/tools/clang/include/clang/Frontend/DependencyOutputOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendPluginRegistry.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def head/contrib/llvm/tools/clang/include/clang/Frontend/LayoutOverrideSource.h head/contrib/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h head/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h head/contrib/llvm/tools/clang/include/clang/Index/CommentToXML.h head/contrib/llvm/tools/clang/include/clang/Index/USRGeneration.h head/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h head/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h head/contrib/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h head/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h head/contrib/llvm/tools/clang/include/clang/Lex/PPConditionalDirectiveRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/PTHManager.h head/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/Token.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h head/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h head/contrib/llvm/tools/clang/include/clang/Parse/Parser.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/HTMLRewrite.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteRope.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/Rewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/TokenRewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FixItRewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h head/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h head/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h head/contrib/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/Sema/ObjCMethodList.h head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h head/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h head/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h head/contrib/llvm/tools/clang/include/clang/Sema/PrettyDeclStackTrace.h head/contrib/llvm/tools/clang/include/clang/Sema/Scope.h head/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaLambda.h head/contrib/llvm/tools/clang/include/clang/Sema/Template.h head/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h head/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h head/contrib/llvm/tools/clang/include/clang/Sema/Weak.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h head/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h head/contrib/llvm/tools/clang/include/clang/Serialization/Module.h head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h head/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/FileMatchTrie.h head/contrib/llvm/tools/clang/include/clang/Tooling/JSONCompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring.h head/contrib/llvm/tools/clang/include/clang/Tooling/RefactoringCallbacks.h head/contrib/llvm/tools/clang/include/clang/Tooling/ReplacementsYaml.h head/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h head/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Internals.h head/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransBlockObjCVariable.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCCalls.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransProperties.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransProtectedScope.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.h head/contrib/llvm/tools/clang/lib/AST/APValue.cpp head/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp head/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp head/contrib/llvm/tools/clang/lib/AST/ASTTypeTraits.cpp head/contrib/llvm/tools/clang/lib/AST/AttrImpl.cpp head/contrib/llvm/tools/clang/lib/AST/CXXABI.h head/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp head/contrib/llvm/tools/clang/lib/AST/Comment.cpp head/contrib/llvm/tools/clang/lib/AST/CommentCommandTraits.cpp head/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp head/contrib/llvm/tools/clang/lib/AST/CommentParser.cpp head/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp head/contrib/llvm/tools/clang/lib/AST/Decl.cpp head/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp head/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp head/contrib/llvm/tools/clang/lib/AST/DeclFriend.cpp head/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp head/contrib/llvm/tools/clang/lib/AST/DeclOpenMP.cpp head/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp head/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp head/contrib/llvm/tools/clang/lib/AST/Expr.cpp head/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp head/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp head/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp head/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp head/contrib/llvm/tools/clang/lib/AST/InheritViz.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp head/contrib/llvm/tools/clang/lib/AST/Mangle.cpp head/contrib/llvm/tools/clang/lib/AST/MangleNumberingContext.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp head/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp head/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp head/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp head/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/Stmt.cpp head/contrib/llvm/tools/clang/lib/AST/StmtIterator.cpp head/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp head/contrib/llvm/tools/clang/lib/AST/Type.cpp head/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp head/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp head/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp head/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp head/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp head/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.h head/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp head/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp head/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/FormatStringParsing.h head/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp head/contrib/llvm/tools/clang/lib/Analysis/PostOrderCFGView.cpp head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp head/contrib/llvm/tools/clang/lib/Analysis/PseudoConstantAnalysis.cpp head/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp head/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp head/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp head/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp head/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp head/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp head/contrib/llvm/tools/clang/lib/Basic/FileSystemStatCache.cpp head/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp head/contrib/llvm/tools/clang/lib/Basic/Module.cpp head/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp head/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp head/contrib/llvm/tools/clang/lib/Basic/TokenKinds.cpp head/contrib/llvm/tools/clang/lib/Basic/Version.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h head/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.h head/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h head/contrib/llvm/tools/clang/lib/CodeGen/EHScopeStack.h head/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h head/contrib/llvm/tools/clang/lib/Driver/Action.cpp head/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp head/contrib/llvm/tools/clang/lib/Driver/Driver.cpp head/contrib/llvm/tools/clang/lib/Driver/Job.cpp head/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains.h head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp head/contrib/llvm/tools/clang/lib/Driver/Tools.h head/contrib/llvm/tools/clang/lib/Driver/Types.cpp head/contrib/llvm/tools/clang/lib/Driver/WindowsToolChain.cpp head/contrib/llvm/tools/clang/lib/Edit/Commit.cpp head/contrib/llvm/tools/clang/lib/Edit/EditedSource.cpp head/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp head/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp head/contrib/llvm/tools/clang/lib/Format/BreakableToken.h head/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp head/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.h head/contrib/llvm/tools/clang/lib/Format/Encoding.h head/contrib/llvm/tools/clang/lib/Format/Format.cpp head/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp head/contrib/llvm/tools/clang/lib/Format/FormatToken.h head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h head/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp head/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp head/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyGraph.cpp head/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp head/contrib/llvm/tools/clang/lib/Frontend/LangStandards.cpp head/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp head/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp head/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp head/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Headers/Intrin.h head/contrib/llvm/tools/clang/lib/Headers/altivec.h head/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h head/contrib/llvm/tools/clang/lib/Headers/avxintrin.h head/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h head/contrib/llvm/tools/clang/lib/Headers/float.h head/contrib/llvm/tools/clang/lib/Headers/immintrin.h head/contrib/llvm/tools/clang/lib/Headers/limits.h head/contrib/llvm/tools/clang/lib/Headers/smmintrin.h head/contrib/llvm/tools/clang/lib/Headers/stdarg.h head/contrib/llvm/tools/clang/lib/Headers/stddef.h head/contrib/llvm/tools/clang/lib/Headers/stdint.h head/contrib/llvm/tools/clang/lib/Headers/x86intrin.h head/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h head/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp head/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h head/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp head/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp head/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp head/contrib/llvm/tools/clang/lib/Lex/PPCaching.cpp head/contrib/llvm/tools/clang/lib/Lex/PPConditionalDirectiveRecord.cpp head/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp head/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp head/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp head/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp head/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp head/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp head/contrib/llvm/tools/clang/lib/Lex/ScratchBuffer.cpp head/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/UnicodeCharSets.h head/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp head/contrib/llvm/tools/clang/lib/Parse/Parser.cpp head/contrib/llvm/tools/clang/lib/Parse/RAIIObjectsForParser.h head/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp head/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp head/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp head/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp head/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp head/contrib/llvm/tools/clang/lib/Sema/Scope.cpp head/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp head/contrib/llvm/tools/clang/lib/Sema/Sema.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp head/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h head/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.cpp head/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.h head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp head/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp head/contrib/llvm/tools/clang/lib/Serialization/Module.cpp head/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Checkers.td head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BlockCounter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp head/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/FileMatchTrie.cpp head/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring.cpp head/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp head/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp head/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp head/contrib/llvm/tools/clang/tools/driver/driver.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangASTNodesEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h head/contrib/llvm/tools/llc/llc.cpp head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointLocation.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h head/contrib/llvm/tools/lldb/include/lldb/API/SBError.h head/contrib/llvm/tools/lldb/include/lldb/API/SBExpressionOptions.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h head/contrib/llvm/tools/lldb/include/lldb/API/SBHostOS.h head/contrib/llvm/tools/lldb/include/lldb/API/SBListener.h head/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h head/contrib/llvm/tools/lldb/include/lldb/API/SBQueue.h head/contrib/llvm/tools/lldb/include/lldb/API/SBQueueItem.h head/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h head/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h head/contrib/llvm/tools/lldb/include/lldb/API/SBType.h head/contrib/llvm/tools/lldb/include/lldb/API/SBValue.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Watchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Core/Address.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressRange.h head/contrib/llvm/tools/lldb/include/lldb/Core/ArchSpec.h head/contrib/llvm/tools/lldb/include/lldb/Core/ClangForward.h head/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h head/contrib/llvm/tools/lldb/include/lldb/Core/ConnectionFileDescriptor.h head/contrib/llvm/tools/lldb/include/lldb/Core/ConstString.h head/contrib/llvm/tools/lldb/include/lldb/Core/DataBuffer.h head/contrib/llvm/tools/lldb/include/lldb/Core/DataBufferHeap.h head/contrib/llvm/tools/lldb/include/lldb/Core/DataBufferMemoryMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/DataEncoder.h head/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h head/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Core/Error.h head/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h head/contrib/llvm/tools/lldb/include/lldb/Core/Listener.h head/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h head/contrib/llvm/tools/lldb/include/lldb/Core/Module.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h head/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/RegisterValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/RegularExpression.h head/contrib/llvm/tools/lldb/include/lldb/Core/Section.h head/contrib/llvm/tools/lldb/include/lldb/Core/SourceManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/Stream.h head/contrib/llvm/tools/lldb/include/lldb/Core/UserID.h head/contrib/llvm/tools/lldb/include/lldb/Core/Value.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResult.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectDynamicValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectMemory.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectRegister.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectVariable.h head/contrib/llvm/tools/lldb/include/lldb/Core/dwarf.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFormatterFunctions.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeFormat.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ASTStructExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpressionDeclMap.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpressionParser.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpressionVariable.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangFunction.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUtilityFunction.h head/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionSourceCode.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRForTarget.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h head/contrib/llvm/tools/lldb/include/lldb/Host/Condition.h head/contrib/llvm/tools/lldb/include/lldb/Host/Config.h head/contrib/llvm/tools/lldb/include/lldb/Host/Debug.h head/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h head/contrib/llvm/tools/lldb/include/lldb/Host/Endian.h head/contrib/llvm/tools/lldb/include/lldb/Host/File.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileSpec.h head/contrib/llvm/tools/lldb/include/lldb/Host/Host.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostGetOpt.h head/contrib/llvm/tools/lldb/include/lldb/Host/OptionParser.h head/contrib/llvm/tools/lldb/include/lldb/Host/Predicate.h head/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h head/contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h head/contrib/llvm/tools/lldb/include/lldb/Host/Terminal.h head/contrib/llvm/tools/lldb/include/lldb/Host/TimeValue.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Args.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandCompletions.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandReturnObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Options.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/PythonDataObjects.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Block.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTImporter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTType.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompileUnit.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/DWARFCallFrameInfo.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Declaration.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineEntry.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectContainer.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolVendor.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Symtab.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Type.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/VariableList.h head/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h head/contrib/llvm/tools/lldb/include/lldb/Target/CPPLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/PathMappingList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h head/contrib/llvm/tools/lldb/include/lldb/Target/Process.h head/contrib/llvm/tools/lldb/include/lldb/Target/Queue.h head/contrib/llvm/tools/lldb/include/lldb/Target/QueueItem.h head/contrib/llvm/tools/lldb/include/lldb/Target/QueueList.h head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h head/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/Target.h head/contrib/llvm/tools/lldb/include/lldb/Target/TargetList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanShouldStopHere.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOut.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/UnwindAssembly.h head/contrib/llvm/tools/lldb/include/lldb/Utility/CleanUp.h head/contrib/llvm/tools/lldb/include/lldb/Utility/PseudoTerminal.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SharedCluster.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h head/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h head/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-log.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h head/contrib/llvm/tools/lldb/include/lldb/lldb-python.h head/contrib/llvm/tools/lldb/include/lldb/lldb-types.h head/contrib/llvm/tools/lldb/source/API/SBAddress.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpointLocation.cpp head/contrib/llvm/tools/lldb/source/API/SBBroadcaster.cpp head/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/API/SBCommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/API/SBCommunication.cpp head/contrib/llvm/tools/lldb/source/API/SBCompileUnit.cpp head/contrib/llvm/tools/lldb/source/API/SBData.cpp head/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp head/contrib/llvm/tools/lldb/source/API/SBDeclaration.cpp head/contrib/llvm/tools/lldb/source/API/SBError.cpp head/contrib/llvm/tools/lldb/source/API/SBEvent.cpp head/contrib/llvm/tools/lldb/source/API/SBExpressionOptions.cpp head/contrib/llvm/tools/lldb/source/API/SBFileSpec.cpp head/contrib/llvm/tools/lldb/source/API/SBFileSpecList.cpp head/contrib/llvm/tools/lldb/source/API/SBFrame.cpp head/contrib/llvm/tools/lldb/source/API/SBFunction.cpp head/contrib/llvm/tools/lldb/source/API/SBHostOS.cpp head/contrib/llvm/tools/lldb/source/API/SBLineEntry.cpp head/contrib/llvm/tools/lldb/source/API/SBListener.cpp head/contrib/llvm/tools/lldb/source/API/SBModule.cpp head/contrib/llvm/tools/lldb/source/API/SBProcess.cpp head/contrib/llvm/tools/lldb/source/API/SBQueue.cpp head/contrib/llvm/tools/lldb/source/API/SBQueueItem.cpp head/contrib/llvm/tools/lldb/source/API/SBStream.cpp head/contrib/llvm/tools/lldb/source/API/SBSymbol.cpp head/contrib/llvm/tools/lldb/source/API/SBSymbolContext.cpp head/contrib/llvm/tools/lldb/source/API/SBTarget.cpp head/contrib/llvm/tools/lldb/source/API/SBThread.cpp head/contrib/llvm/tools/lldb/source/API/SBType.cpp head/contrib/llvm/tools/lldb/source/API/SBValue.cpp head/contrib/llvm/tools/lldb/source/API/SBValueList.cpp head/contrib/llvm/tools/lldb/source/API/SBWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSite.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSiteList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointList.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectArgs.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp head/contrib/llvm/tools/lldb/source/Core/Address.cpp head/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp head/contrib/llvm/tools/lldb/source/Core/AddressResolverName.cpp head/contrib/llvm/tools/lldb/source/Core/ArchSpec.cpp head/contrib/llvm/tools/lldb/source/Core/Broadcaster.cpp head/contrib/llvm/tools/lldb/source/Core/Communication.cpp head/contrib/llvm/tools/lldb/source/Core/ConnectionFileDescriptor.cpp head/contrib/llvm/tools/lldb/source/Core/ConnectionMachPort.cpp head/contrib/llvm/tools/lldb/source/Core/ConnectionSharedMemory.cpp head/contrib/llvm/tools/lldb/source/Core/ConstString.cpp head/contrib/llvm/tools/lldb/source/Core/DataBufferHeap.cpp head/contrib/llvm/tools/lldb/source/Core/DataBufferMemoryMap.cpp head/contrib/llvm/tools/lldb/source/Core/DataExtractor.cpp head/contrib/llvm/tools/lldb/source/Core/Debugger.cpp head/contrib/llvm/tools/lldb/source/Core/EmulateInstruction.cpp head/contrib/llvm/tools/lldb/source/Core/Error.cpp head/contrib/llvm/tools/lldb/source/Core/Event.cpp head/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp head/contrib/llvm/tools/lldb/source/Core/Language.cpp head/contrib/llvm/tools/lldb/source/Core/Listener.cpp head/contrib/llvm/tools/lldb/source/Core/Log.cpp head/contrib/llvm/tools/lldb/source/Core/Mangled.cpp head/contrib/llvm/tools/lldb/source/Core/Module.cpp head/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp head/contrib/llvm/tools/lldb/source/Core/Opcode.cpp head/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp head/contrib/llvm/tools/lldb/source/Core/RegularExpression.cpp head/contrib/llvm/tools/lldb/source/Core/Scalar.cpp head/contrib/llvm/tools/lldb/source/Core/SearchFilter.cpp head/contrib/llvm/tools/lldb/source/Core/Section.cpp head/contrib/llvm/tools/lldb/source/Core/SourceManager.cpp head/contrib/llvm/tools/lldb/source/Core/Stream.cpp head/contrib/llvm/tools/lldb/source/Core/Value.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResult.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultImpl.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/CF.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/CXXFormatterFunctions.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/Cocoa.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxx.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxList.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxMap.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxUnorderedMap.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibStdcpp.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/NSArray.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/NSDictionary.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/NSSet.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeSummary.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeSynthetic.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp head/contrib/llvm/tools/lldb/source/Expression/ASTResultSynthesizer.cpp head/contrib/llvm/tools/lldb/source/Expression/ASTStructExtractor.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangASTSource.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangExpressionDeclMap.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangExpressionParser.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangExpressionVariable.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangFunction.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangUtilityFunction.cpp head/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/ExpressionSourceCode.cpp head/contrib/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp head/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp head/contrib/llvm/tools/lldb/source/Expression/IRForTarget.cpp head/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp head/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp head/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp head/contrib/llvm/tools/lldb/source/Host/common/Condition.cpp head/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp head/contrib/llvm/tools/lldb/source/Host/common/File.cpp head/contrib/llvm/tools/lldb/source/Host/common/FileSpec.cpp head/contrib/llvm/tools/lldb/source/Host/common/Host.cpp head/contrib/llvm/tools/lldb/source/Host/common/Mutex.cpp head/contrib/llvm/tools/lldb/source/Host/common/OptionParser.cpp head/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp head/contrib/llvm/tools/lldb/source/Host/common/Terminal.cpp head/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Args.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandHistory.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectRegexCommand.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupArchitecture.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupBoolean.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFile.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupOutputFile.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupPlatform.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupString.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUInt64.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUUID.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupVariable.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValue.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArch.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArray.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueBoolean.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueEnumeration.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormat.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUUID.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Options.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp head/contrib/llvm/tools/lldb/source/Interpreter/PythonDataObjects.cpp head/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreter.cpp head/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreterPython.cpp head/contrib/llvm/tools/lldb/source/Interpreter/embedded_interpreter.py head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/POSIXThread.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/POSIXThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMDefines.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMUtils.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InstructionUtils.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h head/contrib/llvm/tools/lldb/source/Symbol/Block.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTType.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp head/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp head/contrib/llvm/tools/lldb/source/Symbol/Function.cpp head/contrib/llvm/tools/lldb/source/Symbol/LineTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolVendor.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp head/contrib/llvm/tools/lldb/source/Symbol/Type.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp head/contrib/llvm/tools/lldb/source/Symbol/UnwindPlan.cpp head/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp head/contrib/llvm/tools/lldb/source/Target/ABI.cpp head/contrib/llvm/tools/lldb/source/Target/LanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/Memory.cpp head/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp head/contrib/llvm/tools/lldb/source/Target/Platform.cpp head/contrib/llvm/tools/lldb/source/Target/Process.cpp head/contrib/llvm/tools/lldb/source/Target/Queue.cpp head/contrib/llvm/tools/lldb/source/Target/QueueItem.cpp head/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp head/contrib/llvm/tools/lldb/source/Target/SectionLoadHistory.cpp head/contrib/llvm/tools/lldb/source/Target/SectionLoadList.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp head/contrib/llvm/tools/lldb/source/Target/StackID.cpp head/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp head/contrib/llvm/tools/lldb/source/Target/Target.cpp head/contrib/llvm/tools/lldb/source/Target/TargetList.cpp head/contrib/llvm/tools/lldb/source/Target/Thread.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlan.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanBase.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallUserExpression.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanRunToAddress.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanShouldStopHere.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepUntil.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp head/contrib/llvm/tools/lldb/source/Utility/ARM_DWARF_Registers.cpp head/contrib/llvm/tools/lldb/source/Utility/PseudoTerminal.cpp head/contrib/llvm/tools/lldb/source/Utility/SharingPtr.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractor.h head/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.h head/contrib/llvm/tools/lldb/source/Utility/TimeSpecTimeout.h head/contrib/llvm/tools/lldb/source/lldb-log.cpp head/contrib/llvm/tools/lldb/source/lldb.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.h head/contrib/llvm/tools/lldb/tools/driver/Platform.cpp head/contrib/llvm/tools/lldb/tools/driver/Platform.h head/contrib/llvm/tools/lldb/tools/lldb-platform/lldb-platform.cpp head/contrib/llvm/tools/lli/ChildTarget/ChildTarget.cpp head/contrib/llvm/tools/lli/RemoteMemoryManager.cpp head/contrib/llvm/tools/lli/RemoteMemoryManager.h head/contrib/llvm/tools/lli/RemoteTarget.cpp head/contrib/llvm/tools/lli/RemoteTarget.h head/contrib/llvm/tools/lli/RemoteTargetExternal.cpp head/contrib/llvm/tools/lli/RemoteTargetExternal.h head/contrib/llvm/tools/lli/RemoteTargetMessage.h head/contrib/llvm/tools/lli/lli.cpp head/contrib/llvm/tools/llvm-ar/llvm-ar.cpp head/contrib/llvm/tools/llvm-as/llvm-as.cpp head/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp head/contrib/llvm/tools/llvm-diff/DiffConsumer.h head/contrib/llvm/tools/llvm-diff/DiffLog.cpp head/contrib/llvm/tools/llvm-diff/DifferenceEngine.cpp head/contrib/llvm/tools/llvm-diff/DifferenceEngine.h head/contrib/llvm/tools/llvm-dis/llvm-dis.cpp head/contrib/llvm/tools/llvm-extract/llvm-extract.cpp head/contrib/llvm/tools/llvm-link/llvm-link.cpp head/contrib/llvm/tools/llvm-mc/Disassembler.cpp head/contrib/llvm/tools/llvm-mc/llvm-mc.cpp head/contrib/llvm/tools/llvm-nm/llvm-nm.cpp head/contrib/llvm/tools/llvm-objdump/COFFDump.cpp head/contrib/llvm/tools/llvm-objdump/MachODump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.h head/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp head/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp head/contrib/llvm/tools/llvm-readobj/Error.cpp head/contrib/llvm/tools/llvm-readobj/Error.h head/contrib/llvm/tools/llvm-readobj/MachODumper.cpp head/contrib/llvm/tools/llvm-readobj/ObjDumper.cpp head/contrib/llvm/tools/llvm-readobj/ObjDumper.h head/contrib/llvm/tools/llvm-readobj/StreamWriter.h head/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp head/contrib/llvm/tools/llvm-readobj/llvm-readobj.h head/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp head/contrib/llvm/tools/llvm-stress/llvm-stress.cpp head/contrib/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp head/contrib/llvm/tools/llvm-symbolizer/LLVMSymbolize.h head/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp head/contrib/llvm/tools/macho-dump/macho-dump.cpp head/contrib/llvm/tools/opt/AnalysisWrappers.cpp head/contrib/llvm/tools/opt/GraphPrinters.cpp head/contrib/llvm/tools/opt/PrintSCC.cpp head/contrib/llvm/tools/opt/opt.cpp head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterInst.cpp head/contrib/llvm/utils/TableGen/AsmWriterInst.h head/contrib/llvm/utils/TableGen/CTagsEmitter.cpp head/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp head/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h head/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp head/contrib/llvm/utils/TableGen/CodeGenInstruction.h head/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h head/contrib/llvm/utils/TableGen/CodeGenMapTable.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.h head/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp head/contrib/llvm/utils/TableGen/CodeGenSchedule.h head/contrib/llvm/utils/TableGen/CodeGenTarget.cpp head/contrib/llvm/utils/TableGen/CodeGenTarget.h head/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcher.h head/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherOpt.cpp head/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp head/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/FastISelEmitter.cpp head/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp head/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp head/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp head/contrib/llvm/utils/TableGen/OptParserEmitter.cpp head/contrib/llvm/utils/TableGen/PseudoLoweringEmitter.cpp head/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp head/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp head/contrib/llvm/utils/TableGen/TableGen.cpp head/contrib/llvm/utils/TableGen/X86DisassemblerShared.h head/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp head/contrib/llvm/utils/TableGen/X86DisassemblerTables.h head/contrib/llvm/utils/TableGen/X86ModRMFilters.cpp head/contrib/llvm/utils/TableGen/X86ModRMFilters.h head/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp head/contrib/llvm/utils/TableGen/X86RecognizableInstr.h head/etc/mtree/BSD.include.dist head/lib/clang/Makefile head/lib/clang/clang.build.mk head/lib/clang/include/Makefile head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/clang/Config/config.h head/lib/clang/include/llvm/Config/Disassemblers.def head/lib/clang/include/llvm/Config/config.h head/lib/clang/include/llvm/Config/llvm-config.h head/lib/clang/libclanganalysis/Makefile head/lib/clang/libclangarcmigrate/Makefile head/lib/clang/libclangast/Makefile head/lib/clang/libclangbasic/Makefile head/lib/clang/libclangcodegen/Makefile head/lib/clang/libclangdriver/Makefile head/lib/clang/libclangfrontend/Makefile head/lib/clang/libclanglex/Makefile head/lib/clang/libclangparse/Makefile head/lib/clang/libclangrewritefrontend/Makefile head/lib/clang/libclangsema/Makefile head/lib/clang/libclangstaticanalyzercheckers/Makefile head/lib/clang/libclangstaticanalyzerfrontend/Makefile head/lib/clang/liblldb/Makefile head/lib/clang/liblldbAPI/Makefile head/lib/clang/liblldbBreakpoint/Makefile head/lib/clang/liblldbCommands/Makefile head/lib/clang/liblldbCore/Makefile head/lib/clang/liblldbDataFormatters/Makefile head/lib/clang/liblldbHostCommon/Makefile head/lib/clang/liblldbHostFreeBSD/Makefile head/lib/clang/liblldbInterpreter/Makefile head/lib/clang/liblldbPluginPlatformFreeBSD/Makefile head/lib/clang/liblldbPluginPlatformGDB/Makefile head/lib/clang/liblldbPluginProcessGDBRemote/Makefile head/lib/clang/liblldbPluginProcessPOSIX/Makefile head/lib/clang/liblldbPluginProcessUtility/Makefile head/lib/clang/liblldbPluginSymbolFileDWARF/Makefile head/lib/clang/liblldbTarget/Makefile head/lib/clang/liblldbUtility/Makefile head/lib/clang/libllvmanalysis/Makefile head/lib/clang/libllvmarmcodegen/Makefile head/lib/clang/libllvmarmdesc/Makefile head/lib/clang/libllvmasmprinter/Makefile head/lib/clang/libllvmcodegen/Makefile head/lib/clang/libllvmcore/Makefile head/lib/clang/libllvmmc/Makefile head/lib/clang/libllvmmipscodegen/Makefile head/lib/clang/libllvmmipsdesc/Makefile head/lib/clang/libllvmobject/Makefile head/lib/clang/libllvmruntimedyld/Makefile head/lib/clang/libllvmscalaropts/Makefile head/lib/clang/libllvmsupport/Makefile head/lib/clang/libllvmtablegen/Makefile head/lib/clang/libllvmtarget/Makefile head/lib/clang/libllvmtransformutils/Makefile head/lib/clang/libllvmx86asmparser/Makefile head/lib/clang/libllvmx86codegen/Makefile head/lib/clang/libllvmx86desc/Makefile head/lib/clang/libllvmx86disassembler/Makefile head/share/mk/bsd.sys.mk head/share/mk/src.opts.mk head/sys/boot/i386/boot2/Makefile head/sys/boot/pc98/boot2/Makefile head/sys/boot/powerpc/ofw/Makefile head/sys/boot/powerpc/ps3/Makefile head/sys/conf/Makefile.arm head/sys/sys/param.h head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.bin/clang/bugpoint/Makefile head/usr.bin/clang/clang/Makefile head/usr.bin/clang/llc/Makefile head/usr.bin/clang/lldb/Makefile head/usr.bin/clang/lli/Makefile head/usr.bin/clang/llvm-ar/Makefile head/usr.bin/clang/llvm-dis/Makefile head/usr.bin/clang/llvm-extract/Makefile head/usr.bin/clang/llvm-link/Makefile head/usr.bin/clang/llvm-mc/Makefile head/usr.bin/clang/llvm-nm/Makefile head/usr.bin/clang/llvm-objdump/Makefile head/usr.bin/clang/llvm-rtdyld/Makefile head/usr.bin/clang/macho-dump/Makefile head/usr.bin/clang/opt/Makefile head/usr.bin/clang/tblgen/Makefile Directory Properties: head/ (props changed) head/MAINTAINERS (props changed) head/cddl/ (props changed) head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/ (props changed) head/cddl/contrib/opensolaris/cmd/zfs/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) head/contrib/apr/ (props changed) head/contrib/apr-util/ (props changed) head/contrib/atf/ (props changed) head/contrib/binutils/ (props changed) head/contrib/bmake/ (props changed) head/contrib/byacc/ (props changed) head/contrib/bzip2/ (props changed) head/contrib/com_err/ (props changed) head/contrib/compiler-rt/ (props changed) head/contrib/dialog/ (props changed) head/contrib/dtc/ (props changed) head/contrib/ee/ (props changed) head/contrib/elftoolchain/ (props changed) head/contrib/expat/ (props changed) head/contrib/file/ (props changed) head/contrib/gcc/ (props changed) head/contrib/gdb/ (props changed) head/contrib/gdtoa/ (props changed) head/contrib/groff/ (props changed) head/contrib/ipfilter/ (props changed) head/contrib/ipfilter/ml_ipl.c (props changed) head/contrib/ipfilter/mlfk_ipl.c (props changed) head/contrib/ipfilter/mlh_rule.c (props changed) head/contrib/ipfilter/mli_ipl.c (props changed) head/contrib/ipfilter/mln_ipl.c (props changed) head/contrib/ipfilter/mls_ipl.c (props changed) head/contrib/ldns/ (props changed) head/contrib/less/ (props changed) head/contrib/libarchive/ (props changed) head/contrib/libarchive/cpio/ (props changed) head/contrib/libarchive/libarchive/ (props changed) head/contrib/libarchive/libarchive_fe/ (props changed) head/contrib/libarchive/tar/ (props changed) head/contrib/libc++/ (props changed) head/contrib/libc-vis/ (props changed) head/contrib/libcxxrt/ (props changed) head/contrib/libexecinfo/ (props changed) head/contrib/libpcap/ (props changed) head/contrib/libstdc++/ (props changed) head/contrib/libucl/ (props changed) head/contrib/llvm/ (props changed) head/contrib/llvm/tools/clang/ (props changed) head/contrib/llvm/tools/lldb/ (props changed) head/contrib/mdocml/ (props changed) head/contrib/mtree/ (props changed) head/contrib/ncurses/ (props changed) head/contrib/netcat/ (props changed) head/contrib/ntp/ (props changed) head/contrib/nvi/ (props changed) head/contrib/one-true-awk/ (props changed) head/contrib/openbsm/ (props changed) head/contrib/openpam/ (props changed) head/contrib/openresolv/ (props changed) head/contrib/pf/ (props changed) head/contrib/sendmail/ (props changed) head/contrib/serf/ (props changed) head/contrib/sqlite3/ (props changed) head/contrib/subversion/ (props changed) head/contrib/tcpdump/ (props changed) head/contrib/tcsh/ (props changed) head/contrib/tnftp/ (props changed) head/contrib/top/ (props changed) head/contrib/top/install-sh (props changed) head/contrib/tzcode/stdtime/ (props changed) head/contrib/tzcode/zic/ (props changed) head/contrib/tzdata/ (props changed) head/contrib/unbound/ (props changed) head/contrib/wpa/ (props changed) head/contrib/xz/ (props changed) head/crypto/heimdal/ (props changed) head/crypto/openssh/ (props changed) head/crypto/openssl/ (props changed) head/etc/ (props changed) head/gnu/lib/ (props changed) head/gnu/usr.bin/binutils/ (props changed) head/gnu/usr.bin/cc/cc_tools/ (props changed) head/gnu/usr.bin/gdb/ (props changed) head/include/ (props changed) head/lib/clang/libllvmoption/Makefile (props changed) head/lib/clang/libllvmsparcasmparser/Makefile (props changed) head/lib/clang/libllvmsparccodegen/Makefile (props changed) head/lib/clang/libllvmsparcdesc/Makefile (props changed) head/lib/clang/libllvmsparcdisassembler/Makefile (props changed) head/lib/clang/libllvmsparcinfo/Makefile (props changed) head/lib/clang/libllvmsparcinstprinter/Makefile (props changed) head/lib/libc/ (props changed) head/lib/libc/stdtime/ (props changed) head/lib/libutil/ (props changed) head/lib/libvmmapi/ (props changed) head/lib/libz/ (props changed) head/sbin/ (props changed) head/sbin/dumpon/ (props changed) head/sbin/ipfw/ (props changed) head/share/ (props changed) head/share/examples/kld/random_adaptor/random_adaptor_example.c (props changed) head/share/man/man4/ (props changed) head/share/man/man4/bhyve.4 (props changed) head/share/mk/bsd.arch.inc.mk (props changed) head/share/zoneinfo/ (props changed) head/sys/ (props changed) head/sys/amd64/include/vmm.h (props changed) head/sys/amd64/include/vmm_dev.h (props changed) head/sys/amd64/include/vmm_instruction_emul.h (props changed) head/sys/amd64/include/xen/ (props changed) head/sys/amd64/vmm/ (props changed) head/sys/boot/ (props changed) head/sys/boot/i386/efi/ (props changed) head/sys/boot/powerpc/boot1.chrp/ (props changed) head/sys/boot/powerpc/ofw/ (props changed) head/sys/cddl/contrib/opensolaris/ (props changed) head/sys/conf/ (props changed) head/sys/contrib/dev/acpica/ (props changed) head/sys/contrib/dev/acpica/changes.txt (props changed) head/sys/contrib/dev/acpica/common/ (props changed) head/sys/contrib/dev/acpica/compiler/ (props changed) head/sys/contrib/dev/acpica/components/debugger/ (props changed) head/sys/contrib/dev/acpica/components/disassembler/ (props changed) head/sys/contrib/dev/acpica/components/dispatcher/ (props changed) head/sys/contrib/dev/acpica/components/events/ (props changed) head/sys/contrib/dev/acpica/components/executer/ (props changed) head/sys/contrib/dev/acpica/components/hardware/ (props changed) head/sys/contrib/dev/acpica/components/namespace/ (props changed) head/sys/contrib/dev/acpica/components/parser/ (props changed) head/sys/contrib/dev/acpica/components/resources/ (props changed) head/sys/contrib/dev/acpica/components/tables/ (props changed) head/sys/contrib/dev/acpica/components/utilities/ (props changed) head/sys/contrib/dev/acpica/include/ (props changed) head/sys/contrib/dev/acpica/os_specific/ (props changed) head/sys/contrib/ipfilter/ (props changed) head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c (props changed) head/sys/contrib/ipfilter/netinet/ip_raudio_pxy.c (props changed) head/sys/contrib/libfdt/ (props changed) head/sys/contrib/octeon-sdk/ (props changed) head/sys/contrib/x86emu/ (props changed) head/sys/contrib/xz-embedded/ (props changed) head/sys/dev/bvm/ (props changed) head/sys/dev/hyperv/ (props changed) head/sys/gnu/dts/ (props changed) head/sys/gnu/dts/arm/ (props changed) head/sys/gnu/dts/include/dt-bindings/ (props changed) head/sys/mips/beri/fdt_ic_if.m (props changed) head/sys/modules/hyperv/ (props changed) head/sys/modules/vmm/ (props changed) head/sys/x86/include/acpica_machdep.h (props changed) head/usr.bin/calendar/ (props changed) head/usr.bin/mkimg/ (props changed) head/usr.bin/procstat/ (props changed) head/usr.sbin/bhyve/ (props changed) head/usr.sbin/bhyvectl/ (props changed) head/usr.sbin/bhyveload/ (props changed) head/usr.sbin/jail/ (props changed) head/usr.sbin/ndiscvt/ (props changed) head/usr.sbin/rtadvctl/ (props changed) head/usr.sbin/rtadvd/ (props changed) head/usr.sbin/rtsold/ (props changed) head/usr.sbin/zic/ (props changed) Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Wed Dec 31 20:13:31 2014 (r276478) +++ head/ObsoleteFiles.inc Wed Dec 31 20:31:32 2014 (r276479) @@ -38,6 +38,42 @@ # xargs -n1 | sort | uniq -d; # done +# 20141231: new clang import which bumps version from 3.4.1 to 3.5.0. +OLD_FILES+=usr/include/clang/3.4.1/__wmmintrin_aes.h +OLD_FILES+=usr/include/clang/3.4.1/__wmmintrin_pclmul.h +OLD_FILES+=usr/include/clang/3.4.1/altivec.h +OLD_FILES+=usr/include/clang/3.4.1/ammintrin.h +OLD_FILES+=usr/include/clang/3.4.1/arm_neon.h +OLD_FILES+=usr/include/clang/3.4.1/avx2intrin.h +OLD_FILES+=usr/include/clang/3.4.1/avxintrin.h +OLD_FILES+=usr/include/clang/3.4.1/bmi2intrin.h +OLD_FILES+=usr/include/clang/3.4.1/bmiintrin.h +OLD_FILES+=usr/include/clang/3.4.1/cpuid.h +OLD_FILES+=usr/include/clang/3.4.1/emmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/f16cintrin.h +OLD_FILES+=usr/include/clang/3.4.1/fma4intrin.h +OLD_FILES+=usr/include/clang/3.4.1/fmaintrin.h +OLD_FILES+=usr/include/clang/3.4.1/immintrin.h +OLD_FILES+=usr/include/clang/3.4.1/lzcntintrin.h +OLD_FILES+=usr/include/clang/3.4.1/mm3dnow.h +OLD_FILES+=usr/include/clang/3.4.1/mm_malloc.h +OLD_FILES+=usr/include/clang/3.4.1/mmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/module.map +OLD_FILES+=usr/include/clang/3.4.1/nmmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/pmmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/popcntintrin.h +OLD_FILES+=usr/include/clang/3.4.1/prfchwintrin.h +OLD_FILES+=usr/include/clang/3.4.1/rdseedintrin.h +OLD_FILES+=usr/include/clang/3.4.1/rtmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/shaintrin.h +OLD_FILES+=usr/include/clang/3.4.1/smmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/tbmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/tmmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/wmmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/x86intrin.h +OLD_FILES+=usr/include/clang/3.4.1/xmmintrin.h +OLD_FILES+=usr/include/clang/3.4.1/xopintrin.h +OLD_DIRS+=usr/include/clang/3.4.1 # 20141226: Remove gpib/ieee488 OLD_FILES+=usr/include/dev/ieee488/ibfoo_int.h OLD_FILES+=usr/include/dev/ieee488/tnt4882.h Modified: head/UPDATING ============================================================================== --- head/UPDATING Wed Dec 31 20:13:31 2014 (r276478) +++ head/UPDATING Wed Dec 31 20:31:32 2014 (r276479) @@ -31,6 +31,68 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20141231: + Clang, llvm and lldb have been upgraded to 3.5.0 release. + + As of this release, a prerequisite for building clang, llvm and lldb is + a C++11 capable compiler and C++11 standard library. This means that to + be able to successfully build the cross-tools stage of buildworld, with + clang as the bootstrap compiler, your system compiler or cross compiler + should either be clang 3.3 or later, or gcc 4.8 or later, and your + system C++ library should be libc++, or libdstdc++ from gcc 4.8 or + later. + + On any standard FreeBSD 10.x or 11.x installation, where clang and + libc++ are on by default (that is, on x86 or arm), this should work out + of the box. + + On 9.x installations where clang is enabled by default, e.g. on x86 and + powerpc, libc++ will not be enabled by default, so libc++ should be + built (with clang) and installed first. If both clang and libc++ are + missing, build clang first, then use it to build libc++. + + On 8.x and earlier installations, upgrade to 9.x first, and then follow + the instructions for 9.x above. + + Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by + default, and do not build clang. + + Many embedded systems are resource constrained, and will not be able to + build clang in a reasonable time, or in some cases at all. In those + cases, cross building bootable systems on amd64 is a workaround. + + This new version of clang introduces a number of new warnings, of which + the following are most likely to appear: + + -Wabsolute-value + + This warns in two cases, for both C and C++: + * When the code is trying to take the absolute value of an unsigned + quantity, which is effectively a no-op, and almost never what was + intended. The code should be fixed, if at all possible. If you are + sure that the unsigned quantity can be safely cast to signed, without + loss of information or undefined behavior, you can add an explicit + cast, or disable the warning. + + * When the code is trying to take an absolute value, but the called + abs() variant is for the wrong type, which can lead to truncation. + If you want to disable the warning instead of fixing the code, please + make sure that truncation will not occur, or it might lead to unwanted + side-effects. + + -Wtautological-undefined-compare and + -Wundefined-bool-conversion + + These warn when C++ code is trying to compare 'this' against NULL, while + 'this' should never be NULL in well-defined C++ code. However, there is + some legacy (pre C++11) code out there, which actively abuses this + feature, which was less strictly defined in previous C++ versions. + + Squid and openjdk do this, for example. The warning can be turned off + for C++98 and earlier, but compiling the code in C++11 mode might result + in unexpected behavior; for example, the parts of the program that are + unreachable could be optimized away. + 20141222: The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) kernel sources have been removed. The .h files remain, since some Modified: head/contrib/llvm/LICENSE.TXT ============================================================================== --- head/contrib/llvm/LICENSE.TXT Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/LICENSE.TXT Wed Dec 31 20:31:32 2014 (r276479) @@ -4,7 +4,7 @@ LLVM Release License University of Illinois/NCSA Open Source License -Copyright (c) 2003-2013 University of Illinois at Urbana-Champaign. +Copyright (c) 2003-2014 University of Illinois at Urbana-Champaign. All rights reserved. Developed by: @@ -63,7 +63,6 @@ Program Directory ------- --------- Autoconf llvm/autoconf llvm/projects/ModuleMaker/autoconf - llvm/projects/sample/autoconf Google Test llvm/utils/unittest/googletest OpenBSD regex llvm/lib/Support/{reg*, COPYRIGHT.regex} pyyaml tests llvm/test/YAMLParser/{*.data, LICENSE.TXT} Modified: head/contrib/llvm/include/llvm-c/Core.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Core.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/Core.h Wed Dec 31 20:31:32 2014 (r276479) @@ -15,7 +15,7 @@ #ifndef LLVM_C_CORE_H #define LLVM_C_CORE_H -#include "llvm/Support/DataTypes.h" +#include "llvm-c/Support.h" #ifdef __cplusplus extern "C" { @@ -62,8 +62,6 @@ extern "C" { * @{ */ -typedef int LLVMBool; - /* Opaque types. */ /** @@ -114,13 +112,6 @@ typedef struct LLVMOpaqueBuilder *LLVMBu */ typedef struct LLVMOpaqueModuleProvider *LLVMModuleProviderRef; -/** - * Used to provide a module to JIT or interpreter. - * - * @see llvm::MemoryBuffer - */ -typedef struct LLVMOpaqueMemoryBuffer *LLVMMemoryBufferRef; - /** @see llvm::PassManagerBase */ typedef struct LLVMOpaquePassManager *LLVMPassManagerRef; @@ -133,6 +124,12 @@ typedef struct LLVMOpaquePassRegistry *L * @see llvm::Use */ typedef struct LLVMOpaqueUse *LLVMUseRef; + +/** + * @see llvm::DiagnosticInfo + */ +typedef struct LLVMOpaqueDiagnosticInfo *LLVMDiagnosticInfoRef; + typedef enum { LLVMZExtAttribute = 1<<0, LLVMSExtAttribute = 1<<1, @@ -167,7 +164,11 @@ typedef enum { LLVMAddressSafety = 1ULL << 32, LLVMStackProtectStrongAttribute = 1ULL<<33, LLVMCold = 1ULL << 34, - LLVMOptimizeNone = 1ULL << 35 + LLVMOptimizeNone = 1ULL << 35, + LLVMInAllocaAttribute = 1ULL << 36, + LLVMNonNullAttribute = 1ULL << 37, + LLVMJumpTableAttribute = 1ULL << 38, + LLVMDereferenceableAttribute = 1ULL << 39, */ } LLVMAttribute; @@ -283,8 +284,8 @@ typedef enum { LLVMInternalLinkage, /**< Rename collisions when linking (static functions) */ LLVMPrivateLinkage, /**< Like Internal, but omit from symbol table */ - LLVMDLLImportLinkage, /**< Function to be imported from DLL */ - LLVMDLLExportLinkage, /**< Function to be accessible from DLL */ + LLVMDLLImportLinkage, /**< Obsolete */ + LLVMDLLExportLinkage, /**< Obsolete */ LLVMExternalWeakLinkage,/**< ExternalWeak linkage description */ LLVMGhostLinkage, /**< Obsolete */ LLVMCommonLinkage, /**< Tentative definitions */ @@ -299,6 +300,12 @@ typedef enum { } LLVMVisibility; typedef enum { + LLVMDefaultStorageClass = 0, + LLVMDLLImportStorageClass = 1, /**< Function to be imported from DLL. */ + LLVMDLLExportStorageClass = 2 /**< Function to be accessible from DLL. */ +} LLVMDLLStorageClass; + +typedef enum { LLVMCCallConv = 0, LLVMFastCallConv = 8, LLVMColdCallConv = 9, @@ -402,6 +409,13 @@ typedef enum { the old one */ } LLVMAtomicRMWBinOp; +typedef enum { + LLVMDSError, + LLVMDSWarning, + LLVMDSRemark, + LLVMDSNote +} LLVMDiagnosticSeverity; + /** * @} */ @@ -455,6 +469,9 @@ void LLVMEnablePrettyStackTrace(void); * @{ */ +typedef void (*LLVMDiagnosticHandler)(LLVMDiagnosticInfoRef, void *); +typedef void (*LLVMYieldCallback)(LLVMContextRef, void *); + /** * Create a new context. * @@ -469,6 +486,21 @@ LLVMContextRef LLVMContextCreate(void); LLVMContextRef LLVMGetGlobalContext(void); /** + * Set the diagnostic handler for this context. + */ +void LLVMContextSetDiagnosticHandler(LLVMContextRef C, + LLVMDiagnosticHandler Handler, + void *DiagnosticContext); + +/** + * Set the yield callback function for this context. + * + * @see LLVMContext::setYieldCallback() + */ +void LLVMContextSetYieldCallback(LLVMContextRef C, LLVMYieldCallback Callback, + void *OpaqueHandle); + +/** * Destroy a context instance. * * This should be called for every call to LLVMContextCreate() or memory @@ -476,6 +508,21 @@ LLVMContextRef LLVMGetGlobalContext(void */ void LLVMContextDispose(LLVMContextRef C); +/** + * Return a string representation of the DiagnosticInfo. Use + * LLVMDisposeMessage to free the string. + * + * @see DiagnosticInfo::print() + */ +char *LLVMGetDiagInfoDescription(LLVMDiagnosticInfoRef DI); + +/** + * Return an enum LLVMDiagnosticSeverity. + * + * @see DiagnosticInfo::getSeverity() + */ +LLVMDiagnosticSeverity LLVMGetDiagInfoSeverity(LLVMDiagnosticInfoRef DI); + unsigned LLVMGetMDKindIDInContext(LLVMContextRef C, const char* Name, unsigned SLen); unsigned LLVMGetMDKindID(const char* Name, unsigned SLen); @@ -1123,9 +1170,10 @@ LLVMTypeRef LLVMX86MMXType(void); macro(ConstantStruct) \ macro(ConstantVector) \ macro(GlobalValue) \ - macro(Function) \ macro(GlobalAlias) \ - macro(GlobalVariable) \ + macro(GlobalObject) \ + macro(Function) \ + macro(GlobalVariable) \ macro(UndefValue) \ macro(Instruction) \ macro(BinaryOperator) \ @@ -1688,6 +1736,10 @@ const char *LLVMGetSection(LLVMValueRef void LLVMSetSection(LLVMValueRef Global, const char *Section); LLVMVisibility LLVMGetVisibility(LLVMValueRef Global); void LLVMSetVisibility(LLVMValueRef Global, LLVMVisibility Viz); +LLVMDLLStorageClass LLVMGetDLLStorageClass(LLVMValueRef Global); +void LLVMSetDLLStorageClass(LLVMValueRef Global, LLVMDLLStorageClass Class); +LLVMBool LLVMHasUnnamedAddr(LLVMValueRef Global); +void LLVMSetUnnamedAddr(LLVMValueRef Global, LLVMBool HasUnnamedAddr); /** * @defgroup LLVMCCoreValueWithAlignment Values with alignment @@ -1698,6 +1750,7 @@ void LLVMSetVisibility(LLVMValueRef Glob /** * Obtain the preferred alignment of the value. + * @see llvm::AllocaInst::getAlignment() * @see llvm::LoadInst::getAlignment() * @see llvm::StoreInst::getAlignment() * @see llvm::GlobalValue::getAlignment() @@ -1706,6 +1759,7 @@ unsigned LLVMGetAlignment(LLVMValueRef V /** * Set the preferred alignment of the value. + * @see llvm::AllocaInst::setAlignment() * @see llvm::LoadInst::setAlignment() * @see llvm::StoreInst::setAlignment() * @see llvm::GlobalValue::setAlignment() @@ -2663,7 +2717,9 @@ LLVMValueRef LLVMBuildIsNotNull(LLVMBuil const char *Name); LLVMValueRef LLVMBuildPtrDiff(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name); -LLVMValueRef LLVMBuildAtomicRMW(LLVMBuilderRef B,LLVMAtomicRMWBinOp op, +LLVMValueRef LLVMBuildFence(LLVMBuilderRef B, LLVMAtomicOrdering ordering, + LLVMBool singleThread, const char *Name); +LLVMValueRef LLVMBuildAtomicRMW(LLVMBuilderRef B, LLVMAtomicRMWBinOp op, LLVMValueRef PTR, LLVMValueRef Val, LLVMAtomicOrdering ordering, LLVMBool singleThread); @@ -2793,16 +2849,13 @@ void LLVMDisposePassManager(LLVMPassMana * @{ */ -/** Allocate and initialize structures needed to make LLVM safe for - multithreading. The return value indicates whether multithreaded - initialization succeeded. Must be executed in isolation from all - other LLVM api calls. - @see llvm::llvm_start_multithreaded */ +/** Deprecated: Multi-threading can only be enabled/disabled with the compile + time define LLVM_ENABLE_THREADS. This function always returns + LLVMIsMultithreaded(). */ LLVMBool LLVMStartMultithreaded(void); -/** Deallocate structures necessary to make LLVM safe for multithreading. - Must be executed in isolation from all other LLVM api calls. - @see llvm::llvm_stop_multithreaded */ +/** Deprecated: Multi-threading can only be enabled/disabled with the compile + time define LLVM_ENABLE_THREADS. */ void LLVMStopMultithreaded(void); /** Check whether LLVM is executing in thread-safe mode or not. Modified: head/contrib/llvm/include/llvm-c/Disassembler.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Disassembler.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/Disassembler.h Wed Dec 31 20:31:32 2014 (r276479) @@ -96,6 +96,16 @@ struct LLVMOpInfo1 { #define LLVMDisassembler_VariantKind_ARM_LO16 2 /* :lower16: */ /** + * The ARM64 target VariantKinds. + */ +#define LLVMDisassembler_VariantKind_ARM64_PAGE 1 /* @page */ +#define LLVMDisassembler_VariantKind_ARM64_PAGEOFF 2 /* @pageoff */ +#define LLVMDisassembler_VariantKind_ARM64_GOTPAGE 3 /* @gotpage */ +#define LLVMDisassembler_VariantKind_ARM64_GOTPAGEOFF 4 /* @gotpageoff */ +#define LLVMDisassembler_VariantKind_ARM64_TLVP 5 /* @tvlppage */ +#define LLVMDisassembler_VariantKind_ARM64_TLVOFF 6 /* @tvlppageoff */ + +/** * The type for the symbol lookup function. This may be called by the * disassembler for things like adding a comment for a PC plus a constant * offset load instruction to use a symbol name instead of a load address value. @@ -123,6 +133,17 @@ typedef const char *(*LLVMSymbolLookupCa /* The input reference is from a PC relative load instruction. */ #define LLVMDisassembler_ReferenceType_In_PCrel_Load 2 +/* The input reference is from an ARM64::ADRP instruction. */ +#define LLVMDisassembler_ReferenceType_In_ARM64_ADRP 0x100000001 +/* The input reference is from an ARM64::ADDXri instruction. */ +#define LLVMDisassembler_ReferenceType_In_ARM64_ADDXri 0x100000002 +/* The input reference is from an ARM64::LDRXui instruction. */ +#define LLVMDisassembler_ReferenceType_In_ARM64_LDRXui 0x100000003 +/* The input reference is from an ARM64::LDRXl instruction. */ +#define LLVMDisassembler_ReferenceType_In_ARM64_LDRXl 0x100000004 +/* The input reference is from an ARM64::ADR instruction. */ +#define LLVMDisassembler_ReferenceType_In_ARM64_ADR 0x100000005 + /* The output reference is to as symbol stub. */ #define LLVMDisassembler_ReferenceType_Out_SymbolStub 1 /* The output reference is to a symbol address in a literal pool. */ @@ -141,6 +162,9 @@ typedef const char *(*LLVMSymbolLookupCa /* The output reference is to a Objective-C class ref. */ #define LLVMDisassembler_ReferenceType_Out_Objc_Class_Ref 8 +/* The output reference is to a C++ symbol name. */ +#define LLVMDisassembler_ReferenceType_DeMangled_Name 9 + #ifdef __cplusplus extern "C" { #endif /* !defined(__cplusplus) */ Modified: head/contrib/llvm/include/llvm-c/ExecutionEngine.h ============================================================================== --- head/contrib/llvm/include/llvm-c/ExecutionEngine.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/ExecutionEngine.h Wed Dec 31 20:31:32 2014 (r276479) @@ -163,6 +163,8 @@ void *LLVMRecompileAndRelinkFunction(LLV LLVMValueRef Fn); LLVMTargetDataRef LLVMGetExecutionEngineTargetData(LLVMExecutionEngineRef EE); +LLVMTargetMachineRef +LLVMGetExecutionEngineTargetMachine(LLVMExecutionEngineRef EE); void LLVMAddGlobalMapping(LLVMExecutionEngineRef EE, LLVMValueRef Global, void* Addr); Modified: head/contrib/llvm/include/llvm-c/IRReader.h ============================================================================== --- head/contrib/llvm/include/llvm-c/IRReader.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/IRReader.h Wed Dec 31 20:31:32 2014 (r276479) @@ -24,7 +24,7 @@ extern "C" { * Read LLVM IR from a memory buffer and convert it into an in-memory Module * object. Returns 0 on success. * Optionally returns a human-readable description of any errors that - * occured during parsing IR. OutMessage must be disposed with + * occurred during parsing IR. OutMessage must be disposed with * LLVMDisposeMessage. * * @see llvm::ParseIR() Modified: head/contrib/llvm/include/llvm-c/Object.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Object.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/Object.h Wed Dec 31 20:31:32 2014 (r276479) @@ -78,7 +78,6 @@ void LLVMMoveToNextRelocation(LLVMReloca // SymbolRef accessors const char *LLVMGetSymbolName(LLVMSymbolIteratorRef SI); uint64_t LLVMGetSymbolAddress(LLVMSymbolIteratorRef SI); -uint64_t LLVMGetSymbolFileOffset(LLVMSymbolIteratorRef SI); uint64_t LLVMGetSymbolSize(LLVMSymbolIteratorRef SI); // RelocationRef accessors Modified: head/contrib/llvm/include/llvm-c/Support.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Support.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/Support.h Wed Dec 31 20:31:32 2014 (r276479) @@ -14,13 +14,32 @@ #ifndef LLVM_C_SUPPORT_H #define LLVM_C_SUPPORT_H -#include "llvm-c/Core.h" +#include "llvm/Support/DataTypes.h" #ifdef __cplusplus extern "C" { #endif /** + * @defgroup LLVMCSupportTypes Types and Enumerations + * + * @{ + */ + +typedef int LLVMBool; + +/** + * Used to pass regions of memory through LLVM interfaces. + * + * @see llvm::MemoryBuffer + */ +typedef struct LLVMOpaqueMemoryBuffer *LLVMMemoryBufferRef; + +/** + * @} + */ + +/** * This function permanently loads the dynamic library at the given path. * It is safe to call this function multiple times for the same library. * Modified: head/contrib/llvm/include/llvm-c/TargetMachine.h ============================================================================== --- head/contrib/llvm/include/llvm-c/TargetMachine.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/TargetMachine.h Wed Dec 31 20:31:32 2014 (r276479) @@ -62,7 +62,7 @@ LLVMTargetRef LLVMGetFirstTarget(void); LLVMTargetRef LLVMGetNextTarget(LLVMTargetRef T); /*===-- Target ------------------------------------------------------------===*/ -/** Finds the target corresponding to the given name and stores it in \p T. +/** Finds the target corresponding to the given name and stores it in \p T. Returns 0 on success. */ LLVMTargetRef LLVMGetTargetFromName(const char *Name); @@ -137,6 +137,9 @@ LLVMBool LLVMTargetMachineEmitToMemoryBu disposed with LLVMDisposeMessage. */ char* LLVMGetDefaultTargetTriple(void); +/** Adds the target-specific analysis passes to the pass manager. */ +void LLVMAddAnalysisPasses(LLVMTargetMachineRef T, LLVMPassManagerRef PM); + #ifdef __cplusplus } #endif Modified: head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h Wed Dec 31 20:31:32 2014 (r276479) @@ -19,7 +19,6 @@ typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; #ifdef __cplusplus -#include "llvm/Transforms/IPO/PassManagerBuilder.h" extern "C" { #endif Modified: head/contrib/llvm/include/llvm-c/Transforms/Scalar.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Transforms/Scalar.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/Transforms/Scalar.h Wed Dec 31 20:31:32 2014 (r276479) @@ -41,6 +41,12 @@ void LLVMAddCFGSimplificationPass(LLVMPa /** See llvm::createDeadStoreEliminationPass function. */ void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM); +/** See llvm::createScalarizerPass function. */ +void LLVMAddScalarizerPass(LLVMPassManagerRef PM); + +/** See llvm::createMergedLoadStoreMotionPass function. */ +void LLVMAddMergedLoadStoreMotionPass(LLVMPassManagerRef PM); + /** See llvm::createGVNPass function. */ void LLVMAddGVNPass(LLVMPassManagerRef PM); Modified: head/contrib/llvm/include/llvm-c/lto.h ============================================================================== --- head/contrib/llvm/include/llvm-c/lto.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm-c/lto.h Wed Dec 31 20:31:32 2014 (r276479) @@ -40,8 +40,11 @@ typedef bool lto_bool_t; * @{ */ -#define LTO_API_VERSION 5 +#define LTO_API_VERSION 10 +/** + * \since prior to LTO_API_VERSION=3 + */ typedef enum { LTO_SYMBOL_ALIGNMENT_MASK = 0x0000001F, /* log2 of alignment */ LTO_SYMBOL_PERMISSIONS_MASK = 0x000000E0, @@ -62,23 +65,29 @@ typedef enum { LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN = 0x00002800 } lto_symbol_attributes; +/** + * \since prior to LTO_API_VERSION=3 + */ typedef enum { LTO_DEBUG_MODEL_NONE = 0, LTO_DEBUG_MODEL_DWARF = 1 } lto_debug_model; +/** + * \since prior to LTO_API_VERSION=3 + */ typedef enum { LTO_CODEGEN_PIC_MODEL_STATIC = 0, LTO_CODEGEN_PIC_MODEL_DYNAMIC = 1, - LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC = 2 + LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC = 2, + LTO_CODEGEN_PIC_MODEL_DEFAULT = 3 } lto_codegen_model; - /** opaque reference to a loaded object module */ -typedef struct LTOModule* lto_module_t; +typedef struct LLVMOpaqueLTOModule *lto_module_t; /** opaque reference to a code generator */ -typedef struct LTOCodeGenerator* lto_code_gen_t; +typedef struct LLVMOpaqueLTOCodeGenerator *lto_code_gen_t; #ifdef __cplusplus extern "C" { @@ -86,6 +95,8 @@ extern "C" { /** * Returns a printable string. + * + * \since prior to LTO_API_VERSION=3 */ extern const char* lto_get_version(void); @@ -93,12 +104,16 @@ lto_get_version(void); /** * Returns the last error string or NULL if last operation was successful. + * + * \since prior to LTO_API_VERSION=3 */ extern const char* lto_get_error_message(void); /** * Checks if a file is a loadable object file. + * + * \since prior to LTO_API_VERSION=3 */ extern lto_bool_t lto_module_is_object_file(const char* path); @@ -106,6 +121,8 @@ lto_module_is_object_file(const char* pa /** * Checks if a file is a loadable object compiled for requested target. + * + * \since prior to LTO_API_VERSION=3 */ extern lto_bool_t lto_module_is_object_file_for_target(const char* path, @@ -114,6 +131,8 @@ lto_module_is_object_file_for_target(con /** * Checks if a buffer is a loadable object file. + * + * \since prior to LTO_API_VERSION=3 */ extern lto_bool_t lto_module_is_object_file_in_memory(const void* mem, size_t length); @@ -121,6 +140,8 @@ lto_module_is_object_file_in_memory(cons /** * Checks if a buffer is a loadable object compiled for requested target. + * + * \since prior to LTO_API_VERSION=3 */ extern lto_bool_t lto_module_is_object_file_in_memory_for_target(const void* mem, size_t length, @@ -130,6 +151,8 @@ lto_module_is_object_file_in_memory_for_ /** * Loads an object file from disk. * Returns NULL on error (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=3 */ extern lto_module_t lto_module_create(const char* path); @@ -138,13 +161,27 @@ lto_module_create(const char* path); /** * Loads an object file from memory. * Returns NULL on error (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=3 */ extern lto_module_t lto_module_create_from_memory(const void* mem, size_t length); /** + * Loads an object file from memory with an extra path argument. + * Returns NULL on error (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=9 + */ +extern lto_module_t +lto_module_create_from_memory_with_path(const void* mem, size_t length, + const char *path); + +/** * Loads an object file from disk. The seek point of fd is not preserved. * Returns NULL on error (check lto_get_error_message() for details). + * + * \since LTO_API_VERSION=5 */ extern lto_module_t lto_module_create_from_fd(int fd, const char *path, size_t file_size); @@ -152,28 +189,34 @@ lto_module_create_from_fd(int fd, const /** * Loads an object file from disk. The seek point of fd is not preserved. * Returns NULL on error (check lto_get_error_message() for details). + * + * \since LTO_API_VERSION=5 */ extern lto_module_t lto_module_create_from_fd_at_offset(int fd, const char *path, size_t file_size, size_t map_size, off_t offset); - /** * Frees all memory internally allocated by the module. * Upon return the lto_module_t is no longer valid. + * + * \since prior to LTO_API_VERSION=3 */ extern void lto_module_dispose(lto_module_t mod); - /** * Returns triple string which the object module was compiled under. + * + * \since prior to LTO_API_VERSION=3 */ extern const char* lto_module_get_target_triple(lto_module_t mod); /** * Sets triple string with which the object will be codegened. + * + * \since LTO_API_VERSION=4 */ extern void lto_module_set_target_triple(lto_module_t mod, const char *triple); @@ -181,6 +224,8 @@ lto_module_set_target_triple(lto_module_ /** * Returns the number of symbols in the object module. + * + * \since prior to LTO_API_VERSION=3 */ extern unsigned int lto_module_get_num_symbols(lto_module_t mod); @@ -188,6 +233,8 @@ lto_module_get_num_symbols(lto_module_t /** * Returns the name of the ith symbol in the object module. + * + * \since prior to LTO_API_VERSION=3 */ extern const char* lto_module_get_symbol_name(lto_module_t mod, unsigned int index); @@ -195,40 +242,116 @@ lto_module_get_symbol_name(lto_module_t /** * Returns the attributes of the ith symbol in the object module. + * + * \since prior to LTO_API_VERSION=3 */ extern lto_symbol_attributes lto_module_get_symbol_attribute(lto_module_t mod, unsigned int index); /** + * Returns the number of dependent libraries in the object module. + * + * \since LTO_API_VERSION=8 + */ +extern unsigned int +lto_module_get_num_deplibs(lto_module_t mod); + + +/** + * Returns the ith dependent library in the module. + * + * \since LTO_API_VERSION=8 + */ +extern const char* +lto_module_get_deplib(lto_module_t mod, unsigned int index); + + +/** + * Returns the number of linker options in the object module. + * + * \since LTO_API_VERSION=8 + */ +extern unsigned int +lto_module_get_num_linkeropts(lto_module_t mod); + + +/** + * Returns the ith linker option in the module. + * + * \since LTO_API_VERSION=8 + */ +extern const char* +lto_module_get_linkeropt(lto_module_t mod, unsigned int index); + + +/** + * Diagnostic severity. + * + * \since LTO_API_VERSION=7 + */ +typedef enum { + LTO_DS_ERROR = 0, + LTO_DS_WARNING = 1, + LTO_DS_REMARK = 3, // Added in LTO_API_VERSION=10. + LTO_DS_NOTE = 2 +} lto_codegen_diagnostic_severity_t; + +/** + * Diagnostic handler type. + * \p severity defines the severity. + * \p diag is the actual diagnostic. + * The diagnostic is not prefixed by any of severity keyword, e.g., 'error: '. + * \p ctxt is used to pass the context set with the diagnostic handler. + * + * \since LTO_API_VERSION=7 + */ +typedef void (*lto_diagnostic_handler_t)( + lto_codegen_diagnostic_severity_t severity, const char *diag, void *ctxt); + +/** + * Set a diagnostic handler and the related context (void *). + * This is more general than lto_get_error_message, as the diagnostic handler + * can be called at anytime within lto. + * + * \since LTO_API_VERSION=7 + */ +extern void lto_codegen_set_diagnostic_handler(lto_code_gen_t, + lto_diagnostic_handler_t, + void *); + +/** * Instantiates a code generator. * Returns NULL on error (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=3 */ extern lto_code_gen_t lto_codegen_create(void); - /** * Frees all code generator and all memory it internally allocated. * Upon return the lto_code_gen_t is no longer valid. + * + * \since prior to LTO_API_VERSION=3 */ extern void lto_codegen_dispose(lto_code_gen_t); - - /** * Add an object module to the set of modules for which code will be generated. * Returns true on error (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=3 */ extern lto_bool_t lto_codegen_add_module(lto_code_gen_t cg, lto_module_t mod); - - /** * Sets if debug info should be generated. * Returns true on error (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=3 */ extern lto_bool_t lto_codegen_set_debug_model(lto_code_gen_t cg, lto_debug_model); @@ -237,6 +360,8 @@ lto_codegen_set_debug_model(lto_code_gen /** * Sets which PIC code model to generated. * Returns true on error (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=3 */ extern lto_bool_t lto_codegen_set_pic_model(lto_code_gen_t cg, lto_codegen_model); @@ -244,6 +369,8 @@ lto_codegen_set_pic_model(lto_code_gen_t /** * Sets the cpu to generate code for. + * + * \since LTO_API_VERSION=4 */ extern void lto_codegen_set_cpu(lto_code_gen_t cg, const char *cpu); @@ -252,20 +379,27 @@ lto_codegen_set_cpu(lto_code_gen_t cg, c /** * Sets the location of the assembler tool to run. If not set, libLTO * will use gcc to invoke the assembler. + * + * \since LTO_API_VERSION=3 */ extern void lto_codegen_set_assembler_path(lto_code_gen_t cg, const char* path); /** * Sets extra arguments that libLTO should pass to the assembler. + * + * \since LTO_API_VERSION=4 */ extern void lto_codegen_set_assembler_args(lto_code_gen_t cg, const char **args, int nargs); /** - * Tells LTO optimization passes that this symbol must be preserved - * because it is referenced by native code or a command line option. + * Adds to a list of all global symbols that must exist in the final generated + * code. If a function is not listed there, it might be inlined into every usage + * and optimized away. + * + * \since prior to LTO_API_VERSION=3 */ extern void lto_codegen_add_must_preserve_symbol(lto_code_gen_t cg, const char* symbol); @@ -274,6 +408,8 @@ lto_codegen_add_must_preserve_symbol(lto * Writes a new object file at the specified path that contains the * merged contents of all modules added so far. * Returns true on error (check lto_get_error_message() for details). + * + * \since LTO_API_VERSION=5 */ extern lto_bool_t lto_codegen_write_merged_modules(lto_code_gen_t cg, const char* path); @@ -285,6 +421,8 @@ lto_codegen_write_merged_modules(lto_cod * lto_code_gen_t and will be freed when lto_codegen_dispose() * is called, or lto_codegen_compile() is called again. * On failure, returns NULL (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=3 */ extern const void* lto_codegen_compile(lto_code_gen_t cg, size_t* length); @@ -292,6 +430,8 @@ lto_codegen_compile(lto_code_gen_t cg, s /** * Generates code for all added modules into one native object file. * The name of the file is written to name. Returns true on error. + * + * \since LTO_API_VERSION=5 */ extern lto_bool_t lto_codegen_compile_to_file(lto_code_gen_t cg, const char** name); @@ -299,6 +439,8 @@ lto_codegen_compile_to_file(lto_code_gen /** * Sets options to help debug codegen bugs. + * + * \since prior to LTO_API_VERSION=3 */ extern void lto_codegen_debug_options(lto_code_gen_t cg, const char *); @@ -306,6 +448,8 @@ lto_codegen_debug_options(lto_code_gen_t /** * Initializes LLVM disassemblers. * FIXME: This doesn't really belong here. + * + * \since LTO_API_VERSION=5 */ extern void lto_initialize_disassembler(void); Copied: head/contrib/llvm/include/llvm-c/module.modulemap (from r276476, projects/clang350-import/contrib/llvm/include/llvm-c/module.modulemap) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/llvm/include/llvm-c/module.modulemap Wed Dec 31 20:31:32 2014 (r276479, copy of r276476, projects/clang350-import/contrib/llvm/include/llvm-c/module.modulemap) @@ -0,0 +1,4 @@ +module LLVM_C { + umbrella "." + module * { export * } +} Modified: head/contrib/llvm/include/llvm/ADT/APFloat.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/APFloat.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm/ADT/APFloat.h Wed Dec 31 20:31:32 2014 (r276479) @@ -1,4 +1,4 @@ -//== llvm/Support/APFloat.h - Arbitrary Precision Floating Point -*- C++ -*-==// +//===- llvm/ADT/APFloat.h - Arbitrary Precision Floating Point ---*- C++ -*-==// // // The LLVM Compiler Infrastructure // @@ -196,6 +196,7 @@ public: explicit APFloat(double d); explicit APFloat(float f); APFloat(const APFloat &); + APFloat(APFloat &&); ~APFloat(); /// @} @@ -235,19 +236,19 @@ public: APInt fill(64, type); return getQNaN(Sem, Negative, &fill); } else { - return getQNaN(Sem, Negative, 0); + return getQNaN(Sem, Negative, nullptr); } } /// Factory for QNaN values. static APFloat getQNaN(const fltSemantics &Sem, bool Negative = false, - const APInt *payload = 0) { + const APInt *payload = nullptr) { return makeNaN(Sem, false, Negative, payload); } /// Factory for SNaN values. static APFloat getSNaN(const fltSemantics &Sem, bool Negative = false, - const APInt *payload = 0) { + const APInt *payload = nullptr) { return makeNaN(Sem, true, Negative, payload); } @@ -411,6 +412,7 @@ public: /// @} APFloat &operator=(const APFloat &); + APFloat &operator=(APFloat &&); /// \brief Overload to compute a hash code for an APFloat value. /// @@ -498,7 +500,8 @@ private: void makeLargest(bool Neg = false); void makeSmallest(bool Neg = false); - void makeNaN(bool SNaN = false, bool Neg = false, const APInt *fill = 0); + void makeNaN(bool SNaN = false, bool Neg = false, + const APInt *fill = nullptr); static APFloat makeNaN(const fltSemantics &Sem, bool SNaN, bool Negative, const APInt *fill); void makeInf(bool Neg = false); Modified: head/contrib/llvm/include/llvm/ADT/APInt.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/APInt.h Wed Dec 31 20:13:31 2014 (r276478) +++ head/contrib/llvm/include/llvm/ADT/APInt.h Wed Dec 31 20:31:32 2014 (r276479) @@ -284,12 +284,10 @@ public: initSlowCase(that); } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 20:34:13 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B39817E; Wed, 31 Dec 2014 20:34:13 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 94A7530BE; Wed, 31 Dec 2014 20:34:13 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVKYDHZ055462; Wed, 31 Dec 2014 20:34:13 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVKYClU055459; Wed, 31 Dec 2014 20:34:12 GMT (envelope-from np@FreeBSD.org) Message-Id: <201412312034.sBVKYClU055459@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 31 Dec 2014 20:34:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276480 - in head/sys: amd64/conf conf modules X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 20:34:13 -0000 Author: np Date: Wed Dec 31 20:34:12 2014 New Revision: 276480 URL: https://svnweb.freebsd.org/changeset/base/276480 Log: Temporarily unplug cxgbe(4) from !amd64 builds. Modified: head/sys/amd64/conf/NOTES head/sys/conf/NOTES head/sys/modules/Makefile Modified: head/sys/amd64/conf/NOTES ============================================================================== --- head/sys/amd64/conf/NOTES Wed Dec 31 20:31:32 2014 (r276479) +++ head/sys/amd64/conf/NOTES Wed Dec 31 20:34:12 2014 (r276480) @@ -300,6 +300,7 @@ options DRM_DEBUG # Include debug print # bxe: Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet # adapters. +# cxgbe: Chelsio T4/T5 1GbE/10GbE/40GbE PCIe Ethernet adapters # ed: Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503 # HP PC Lan+, various PC Card devices # (requires miibus) @@ -322,6 +323,7 @@ options DRM_DEBUG # Include debug print # Requires the wpi firmware module device bxe # Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE +device cxgbe # Chelsio T4/T5 1GbE/10GbE/40GbE device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards options ED_3C503 options ED_HPP Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Wed Dec 31 20:31:32 2014 (r276479) +++ head/sys/conf/NOTES Wed Dec 31 20:34:12 2014 (r276480) @@ -1918,8 +1918,6 @@ device xmphy # XaQti XMAC II # cas: Sun Cassini/Cassini+ and National Semiconductor DP83065 Saturn # cm: Arcnet SMC COM90c26 / SMC COM90c56 # (and SMC COM90c66 in '56 compatibility mode) adapters. -# cxgbe: Support for PCI express 10Gb/1Gb adapters based on the Chelsio T4 -# (Terminator 4) ASIC. # dc: Support for PCI fast ethernet adapters based on the DEC/Intel 21143 # and various workalikes including: # the ADMtek AL981 Comet and AN985 Centaur, the ASIX Electronics @@ -2096,7 +2094,6 @@ device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') # PCI Ethernet NICs. -device cxgbe # Chelsio T4 10GbE PCIe adapter device de # DEC/Intel DC21x4x (``Tulip'') device em # Intel Pro/1000 Gigabit Ethernet device igb # Intel Pro/1000 PCIE Gigabit Ethernet Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Wed Dec 31 20:31:32 2014 (r276479) +++ head/sys/modules/Makefile Wed Dec 31 20:34:12 2014 (r276480) @@ -433,7 +433,6 @@ _pfsync= pfsync .if ${MK_SOURCELESS_UCODE} != "no" _bce= bce -_cxgbe= cxgbe _fatm= fatm _fxp= fxp _ispfw= ispfw @@ -445,6 +444,9 @@ _ti= ti _txp= txp .endif +.if ${MK_SOURCELESS_UCODE} != "no" && ${MACHINE_CPUARCH} == "amd64" +_cxgbe= cxgbe +.endif .if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" && \ ${MACHINE_CPUARCH} != "powerpc" From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 20:36:29 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 260FB25D; Wed, 31 Dec 2014 20:36:29 +0000 (UTC) Received: from mail-lb0-x22d.google.com (mail-lb0-x22d.google.com [IPv6:2a00:1450:4010:c04::22d]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 991DA30E8; Wed, 31 Dec 2014 20:36:27 +0000 (UTC) Received: by mail-lb0-f173.google.com with SMTP id z12so13736150lbi.32; Wed, 31 Dec 2014 12:36:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=1Opeo2+IyCoJRxH5i+jqPBJXElc/u3WiJOo7TO+l7rs=; b=Lql9lcQZ1+n0kJ14WYh+tmB780LtU1cZ+TPBXQAoIbDCL6ucBxhIJiCvB+ykbExn8Q TkKkFP65rCPFIkQTwlAjp/PUNlAYFjxWBFeHzQQIGibBt2mEZXCThNB4x3dY3Mo48Fx/ tFtDDAeIa+H5b623mItyJgyhKXuHgc8M60nuL+NIdjNRODjreyNSjgDFjRWURIfhQDGE mLkoI5bv32JWcQTRAZOu2imHpf6F1R2+5qq+CDdjIqxQokmo5Bs6fdPduyCB5PWHhwN9 M8GV7NxNOkpZgJwJAAJZe/NMO3yq51TL9hVz/y1WlRYeUx4wErn8H1FDq5n+Orlh6RQX Hb0g== MIME-Version: 1.0 X-Received: by 10.152.7.180 with SMTP id k20mr69786248laa.4.1420058185466; Wed, 31 Dec 2014 12:36:25 -0800 (PST) Sender: chmeeedalf@gmail.com Received: by 10.25.126.214 with HTTP; Wed, 31 Dec 2014 12:36:25 -0800 (PST) Received: by 10.25.126.214 with HTTP; Wed, 31 Dec 2014 12:36:25 -0800 (PST) In-Reply-To: <201412312031.sBVKVbnX054163@svn.freebsd.org> References: <201412312031.sBVKVbnX054163@svn.freebsd.org> Date: Wed, 31 Dec 2014 12:36:25 -0800 X-Google-Sender-Auth: BdQ6uOtxQhQ_aK0ca8MYMgx_-rk Message-ID: Subject: Re: svn commit: r276479 - in head: . contrib/ipfilter contrib/llvm contrib/llvm/include/llvm contrib/llvm/include/llvm-c contrib/llvm/include/llvm-c/Transforms contrib/llvm/include/llvm/ADT contrib/llv... From: Justin Hibbits To: Dimitry Andric Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 20:36:29 -0000 That's fantastic! Thanks for doing this! -Justin On Dec 31, 2014 1:33 PM, "Dimitry Andric" wrote: > Author: dim > Date: Wed Dec 31 20:31:32 2014 > New Revision: 276479 > URL: https://svnweb.freebsd.org/changeset/base/276479 > > Log: > Upgrade our copy of clang, llvm and lldb to 3.5.0 release. > > Please note that this version now requires C++11 support to build; see > UPDATING for more information. > > Release notes for llvm and clang can be found here: > > > > Thanks to Ed Maste, Roman Divacky, Andrew Turner, Justin Hibbits and > Antoine Brodin for their invaluable help with this import. > > Approved by: portmgr (antoine) > MFC after: 1 month > > Added: > head/contrib/llvm/include/llvm-c/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm-c/module.modulemap > head/contrib/llvm/include/llvm/ADT/iterator.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/ADT/iterator.h > head/contrib/llvm/include/llvm/ADT/iterator_range.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/ADT/iterator_range.h > head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h > head/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h > head/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h > head/contrib/llvm/include/llvm/Analysis/JumpInstrTableInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Analysis/JumpInstrTableInfo.h > head/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h > head/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h > head/contrib/llvm/include/llvm/Analysis/TargetFolder.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Analysis/TargetFolder.h > head/contrib/llvm/include/llvm/AsmParser/ > - copied from r276476, > projects/clang350-import/contrib/llvm/include/llvm/AsmParser/ > head/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h > head/contrib/llvm/include/llvm/CodeGen/JumpInstrTables.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/JumpInstrTables.h > head/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h > head/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h > head/contrib/llvm/include/llvm/CodeGen/MachineRegionInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/MachineRegionInfo.h > head/contrib/llvm/include/llvm/CodeGen/MachineValueType.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/MachineValueType.h > head/contrib/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h > head/contrib/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h > head/contrib/llvm/include/llvm/CodeGen/PBQP/RegAllocSolver.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/PBQP/RegAllocSolver.h > head/contrib/llvm/include/llvm/CodeGen/StackMapLivenessAnalysis.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/CodeGen/StackMapLivenessAnalysis.h > head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h > head/contrib/llvm/include/llvm/IR/AssemblyAnnotationWriter.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/AssemblyAnnotationWriter.h > head/contrib/llvm/include/llvm/IR/AutoUpgrade.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/AutoUpgrade.h > head/contrib/llvm/include/llvm/IR/CFG.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/CFG.h > head/contrib/llvm/include/llvm/IR/CallSite.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/CallSite.h > head/contrib/llvm/include/llvm/IR/Comdat.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/Comdat.h > head/contrib/llvm/include/llvm/IR/ConstantFolder.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/ConstantFolder.h > head/contrib/llvm/include/llvm/IR/ConstantRange.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/ConstantRange.h > head/contrib/llvm/include/llvm/IR/DIBuilder.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/DIBuilder.h > head/contrib/llvm/include/llvm/IR/DebugInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/DebugInfo.h > head/contrib/llvm/include/llvm/IR/DebugLoc.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/DebugLoc.h > head/contrib/llvm/include/llvm/IR/DiagnosticInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/DiagnosticInfo.h > head/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h > head/contrib/llvm/include/llvm/IR/Dominators.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/Dominators.h > head/contrib/llvm/include/llvm/IR/GVMaterializer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/GVMaterializer.h > head/contrib/llvm/include/llvm/IR/GetElementPtrTypeIterator.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/GetElementPtrTypeIterator.h > head/contrib/llvm/include/llvm/IR/GlobalObject.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/GlobalObject.h > head/contrib/llvm/include/llvm/IR/IRPrintingPasses.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/IRPrintingPasses.h > head/contrib/llvm/include/llvm/IR/InstIterator.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/InstIterator.h > head/contrib/llvm/include/llvm/IR/InstVisitor.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/InstVisitor.h > head/contrib/llvm/include/llvm/IR/LeakDetector.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/LeakDetector.h > head/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h > head/contrib/llvm/include/llvm/IR/Mangler.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/Mangler.h > head/contrib/llvm/include/llvm/IR/NoFolder.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/NoFolder.h > head/contrib/llvm/include/llvm/IR/PatternMatch.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/PatternMatch.h > head/contrib/llvm/include/llvm/IR/PredIteratorCache.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/PredIteratorCache.h > head/contrib/llvm/include/llvm/IR/ValueHandle.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/ValueHandle.h > head/contrib/llvm/include/llvm/IR/ValueMap.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/ValueMap.h > head/contrib/llvm/include/llvm/IR/Verifier.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/IR/Verifier.h > head/contrib/llvm/include/llvm/LineEditor/ > - copied from r276476, > projects/clang350-import/contrib/llvm/include/llvm/LineEditor/ > head/contrib/llvm/include/llvm/Linker/ > - copied from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Linker/ > head/contrib/llvm/include/llvm/MC/ConstantPools.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/ConstantPools.h > head/contrib/llvm/include/llvm/MC/MCAnalysis/ > - copied from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/MCAnalysis/ > head/contrib/llvm/include/llvm/MC/MCLinkerOptimizationHint.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/MCLinkerOptimizationHint.h > head/contrib/llvm/include/llvm/MC/MCTargetOptions.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/MCTargetOptions.h > head/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h > head/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h > head/contrib/llvm/include/llvm/MC/MCWinEH.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/MCWinEH.h > head/contrib/llvm/include/llvm/MC/StringTableBuilder.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/StringTableBuilder.h > head/contrib/llvm/include/llvm/MC/YAML.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/MC/YAML.h > head/contrib/llvm/include/llvm/Object/IRObjectFile.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Object/IRObjectFile.h > head/contrib/llvm/include/llvm/Object/SymbolicFile.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Object/SymbolicFile.h > head/contrib/llvm/include/llvm/PassInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/PassInfo.h > head/contrib/llvm/include/llvm/ProfileData/ > - copied from r276476, > projects/clang350-import/contrib/llvm/include/llvm/ProfileData/ > head/contrib/llvm/include/llvm/Support/ARMBuildAttributes.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/ARMBuildAttributes.h > head/contrib/llvm/include/llvm/Support/ARMEHABI.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/ARMEHABI.h > head/contrib/llvm/include/llvm/Support/ARMWinEH.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/ARMWinEH.h > head/contrib/llvm/include/llvm/Support/EndianStream.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/EndianStream.h > head/contrib/llvm/include/llvm/Support/Errc.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/Errc.h > head/contrib/llvm/include/llvm/Support/GenericDomTree.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/GenericDomTree.h > head/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h > head/contrib/llvm/include/llvm/Support/LineIterator.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/LineIterator.h > head/contrib/llvm/include/llvm/Support/OnDiskHashTable.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/OnDiskHashTable.h > head/contrib/llvm/include/llvm/Support/RandomNumberGenerator.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/RandomNumberGenerator.h > head/contrib/llvm/include/llvm/Support/ScaledNumber.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/ScaledNumber.h > head/contrib/llvm/include/llvm/Support/SpecialCaseList.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/SpecialCaseList.h > head/contrib/llvm/include/llvm/Support/WindowsError.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Support/WindowsError.h > head/contrib/llvm/include/llvm/TableGen/SetTheory.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/TableGen/SetTheory.h > head/contrib/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h > head/contrib/llvm/include/llvm/Transforms/Utils/CtorUtils.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Transforms/Utils/CtorUtils.h > head/contrib/llvm/include/llvm/Transforms/Utils/VectorUtils.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/Transforms/Utils/VectorUtils.h > head/contrib/llvm/include/llvm/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/module.modulemap > head/contrib/llvm/include/llvm/module.modulemap.build > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/include/llvm/module.modulemap.build > head/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp > head/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp > head/contrib/llvm/lib/Analysis/JumpInstrTableInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Analysis/JumpInstrTableInfo.cpp > head/contrib/llvm/lib/Analysis/LazyCallGraph.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Analysis/LazyCallGraph.cpp > head/contrib/llvm/lib/AsmParser/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/AsmParser/module.modulemap > head/contrib/llvm/lib/Bitcode/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Bitcode/module.modulemap > head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp > head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp > head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocList.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocList.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp > head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp > head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.h > head/contrib/llvm/lib/CodeGen/AtomicExpandLoadLinkedPass.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/AtomicExpandLoadLinkedPass.cpp > head/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp > head/contrib/llvm/lib/CodeGen/GlobalMerge.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/GlobalMerge.cpp > head/contrib/llvm/lib/CodeGen/JumpInstrTables.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/JumpInstrTables.cpp > head/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp > head/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp > head/contrib/llvm/lib/CodeGen/MachineRegionInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/MachineRegionInfo.cpp > head/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp > head/contrib/llvm/lib/CodeGen/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/CodeGen/module.modulemap > head/contrib/llvm/lib/DebugInfo/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/DebugInfo/module.modulemap > head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp > head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/ > - copied from r276476, > projects/clang350-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/ > head/contrib/llvm/lib/IR/Comdat.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/IR/Comdat.cpp > head/contrib/llvm/lib/IR/ConstantRange.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/IR/ConstantRange.cpp > head/contrib/llvm/lib/IR/DiagnosticInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/IR/DiagnosticInfo.cpp > head/contrib/llvm/lib/IR/DiagnosticPrinter.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/IR/DiagnosticPrinter.cpp > head/contrib/llvm/lib/IR/IRPrintingPasses.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/IR/IRPrintingPasses.cpp > head/contrib/llvm/lib/IR/MDBuilder.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/IR/MDBuilder.cpp > head/contrib/llvm/lib/IR/Mangler.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/IR/Mangler.cpp > head/contrib/llvm/lib/IR/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/IR/module.modulemap > head/contrib/llvm/lib/LineEditor/ > - copied from r276476, > projects/clang350-import/contrib/llvm/lib/LineEditor/ > head/contrib/llvm/lib/MC/ConstantPools.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/MC/ConstantPools.cpp > head/contrib/llvm/lib/MC/MCAnalysis/ > - copied from r276476, > projects/clang350-import/contrib/llvm/lib/MC/MCAnalysis/ > head/contrib/llvm/lib/MC/MCLinkerOptimizationHint.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/MC/MCLinkerOptimizationHint.cpp > head/contrib/llvm/lib/MC/MCTargetOptions.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/MC/MCTargetOptions.cpp > head/contrib/llvm/lib/MC/StringTableBuilder.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/MC/StringTableBuilder.cpp > head/contrib/llvm/lib/MC/YAML.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/MC/YAML.cpp > head/contrib/llvm/lib/Object/IRObjectFile.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Object/IRObjectFile.cpp > head/contrib/llvm/lib/Object/RecordStreamer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Object/RecordStreamer.cpp > head/contrib/llvm/lib/Object/RecordStreamer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Object/RecordStreamer.h > head/contrib/llvm/lib/Object/SymbolicFile.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Object/SymbolicFile.cpp > head/contrib/llvm/lib/ProfileData/ > - copied from r276476, > projects/clang350-import/contrib/llvm/lib/ProfileData/ > head/contrib/llvm/lib/Support/ARMBuildAttrs.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Support/ARMBuildAttrs.cpp > head/contrib/llvm/lib/Support/ARMWinEH.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Support/ARMWinEH.cpp > head/contrib/llvm/lib/Support/LEB128.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Support/LEB128.cpp > head/contrib/llvm/lib/Support/LineIterator.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Support/LineIterator.cpp > head/contrib/llvm/lib/Support/RandomNumberGenerator.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Support/RandomNumberGenerator.cpp > head/contrib/llvm/lib/Support/ScaledNumber.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Support/ScaledNumber.cpp > head/contrib/llvm/lib/Support/SpecialCaseList.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Support/SpecialCaseList.cpp > head/contrib/llvm/lib/Support/Windows/WindowsSupport.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Support/Windows/WindowsSupport.h > head/contrib/llvm/lib/TableGen/SetTheory.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/TableGen/SetTheory.cpp > head/contrib/llvm/lib/TableGen/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/TableGen/module.modulemap > head/contrib/llvm/lib/Target/AArch64/AArch64AddressTypePromotion.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64AddressTypePromotion.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64BranchRelaxation.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64BranchRelaxation.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td > > head/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp > > head/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td > head/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h > head/contrib/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h > head/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td > head/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td > head/contrib/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td > head/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td > head/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp > head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h > > head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp > > head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h > > head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h > > head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp > > head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp > head/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp > head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.def > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.def > head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMArchName.h > head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp > head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp > head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp > head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td > head/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp > head/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.h > head/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td > head/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td > head/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td > head/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp > head/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp > head/contrib/llvm/lib/Target/Mips/MipsOptionRecord.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Mips/MipsOptionRecord.h > head/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp > head/contrib/llvm/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp > head/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp > head/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h > head/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp > head/contrib/llvm/lib/Target/PowerPC/Disassembler/ > - copied from r276476, > projects/clang350-import/contrib/llvm/lib/Target/PowerPC/Disassembler/ > head/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td > head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td > head/contrib/llvm/lib/Target/R600/AMDGPUIntrinsicInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/AMDGPUIntrinsicInfo.cpp > head/contrib/llvm/lib/Target/R600/AMDGPUIntrinsicInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/AMDGPUIntrinsicInfo.h > head/contrib/llvm/lib/Target/R600/AMDGPUPromoteAlloca.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/AMDGPUPromoteAlloca.cpp > head/contrib/llvm/lib/Target/R600/CaymanInstructions.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/CaymanInstructions.td > head/contrib/llvm/lib/Target/R600/EvergreenInstructions.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/EvergreenInstructions.td > head/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUFixupKinds.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/MCTargetDesc/AMDGPUFixupKinds.h > head/contrib/llvm/lib/Target/R600/R700Instructions.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/R700Instructions.td > head/contrib/llvm/lib/Target/R600/SIFixSGPRLiveRanges.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/SIFixSGPRLiveRanges.cpp > head/contrib/llvm/lib/Target/R600/SILowerI1Copies.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/SILowerI1Copies.cpp > head/contrib/llvm/lib/Target/R600/SIShrinkInstructions.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/R600/SIShrinkInstructions.cpp > head/contrib/llvm/lib/Target/Sparc/SparcInstrVIS.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/Sparc/SparcInstrVIS.td > head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp > head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h > head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h > head/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h > head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp > head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp > head/contrib/llvm/lib/Target/X86/X86AtomicExpandPass.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/X86/X86AtomicExpandPass.cpp > head/contrib/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp > head/contrib/llvm/lib/Target/XCore/XCoreTargetStreamer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Target/XCore/XCoreTargetStreamer.h > head/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp > head/contrib/llvm/lib/Transforms/Scalar/LoadCombine.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/LoadCombine.cpp > head/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp > head/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp > head/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp > head/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp > head/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp > head/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp > head/contrib/llvm/patches/patch-01-clang-version-include.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-01-clang-version-include.diff > head/contrib/llvm/patches/patch-02-format-extensions.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-02-format-extensions.diff > head/contrib/llvm/patches/patch-03-clang-vendor-suffix.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-03-clang-vendor-suffix.diff > head/contrib/llvm/patches/patch-04-default-target-triple.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-04-default-target-triple.diff > head/contrib/llvm/patches/patch-05-add-CC-aliases.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-05-add-CC-aliases.diff > head/contrib/llvm/patches/patch-06-clang-arm-target-cpu.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-06-clang-arm-target-cpu.diff > head/contrib/llvm/patches/patch-07-llvm-r213960-ppc32-tls.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-07-llvm-r213960-ppc32-tls.diff > > head/contrib/llvm/patches/patch-08-llvm-r216989-r216990-fix-movw-armv6.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-08-llvm-r216989-r216990-fix-movw-armv6.diff > head/contrib/llvm/patches/patch-09-clang-r217410-i386-garbage-float.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-09-clang-r217410-i386-garbage-float.diff > head/contrib/llvm/patches/patch-10-llvm-r221709-debug-oom.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-10-llvm-r221709-debug-oom.diff > head/contrib/llvm/patches/patch-11-llvm-r222562-loop-rotate.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-11-llvm-r222562-loop-rotate.diff > head/contrib/llvm/patches/patch-12-add-llvm-gvn-option.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-12-add-llvm-gvn-option.diff > head/contrib/llvm/patches/patch-13-llvm-r218241-dwarf2-warning.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-13-llvm-r218241-dwarf2-warning.diff > head/contrib/llvm/patches/patch-14-llvm-r215352-aarch64-dyn-loader.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-14-llvm-r215352-aarch64-dyn-loader.diff > head/contrib/llvm/patches/patch-15-llvm-r216571-dynamiclib-usability.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-15-llvm-r216571-dynamiclib-usability.diff > head/contrib/llvm/patches/patch-16-clang-r221900-freebsd-aarch64.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-16-clang-r221900-freebsd-aarch64.diff > head/contrib/llvm/patches/patch-17-llvm-r222856-libapr-miscompile.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-17-llvm-r222856-libapr-miscompile.diff > head/contrib/llvm/patches/patch-18-llvm-r214802-armv6-cp10-cp11.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-18-llvm-r214802-armv6-cp10-cp11.diff > head/contrib/llvm/patches/patch-19-llvm-r215811-arm-fpu-directive.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-19-llvm-r215811-arm-fpu-directive.diff > head/contrib/llvm/patches/patch-20-enable-armv6-clrex.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-20-enable-armv6-clrex.diff > head/contrib/llvm/patches/patch-21-llvm-r223171-fix-vectorizer.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-21-llvm-r223171-fix-vectorizer.diff > head/contrib/llvm/patches/patch-22-llvm-r223147-arm-cpu-directive.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-22-llvm-r223147-arm-cpu-directive.diff > head/contrib/llvm/patches/patch-23-llvm-r221170-ppc-vaarg.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-23-llvm-r221170-ppc-vaarg.diff > head/contrib/llvm/patches/patch-24-llvm-r221791-ppc-small-pic.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-24-llvm-r221791-ppc-small-pic.diff > head/contrib/llvm/patches/patch-25-llvm-r224415-ppc-local.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-25-llvm-r224415-ppc-local.diff > head/contrib/llvm/patches/patch-26-llvm-r213890-ppc-eh_frame.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-26-llvm-r213890-ppc-eh_frame.diff > head/contrib/llvm/patches/patch-27-llvm-r221703-ppc-tls_get_addr.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-27-llvm-r221703-ppc-tls_get_addr.diff > head/contrib/llvm/patches/patch-28-llvm-r224890-ppc-ctr-tls-loop.diff > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/patches/patch-28-llvm-r224890-ppc-ctr-tls-loop.diff > head/contrib/llvm/tools/clang/include/clang-c/BuildSystem.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang-c/BuildSystem.h > head/contrib/llvm/tools/clang/include/clang-c/CXErrorCode.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang-c/CXErrorCode.h > head/contrib/llvm/tools/clang/include/clang-c/Documentation.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang-c/Documentation.h > head/contrib/llvm/tools/clang/include/clang-c/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang-c/module.modulemap > head/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h > head/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h > head/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h > > head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h > > head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h > > head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyOps.def > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyOps.def > > head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h > > head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h > > head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h > head/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td > head/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h > head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def > head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsR600.def > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsR600.def > head/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h > head/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h > head/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h > head/contrib/llvm/tools/clang/include/clang/Sema/LoopHint.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/Sema/LoopHint.h > > head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h > head/contrib/llvm/tools/clang/include/clang/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/include/clang/module.modulemap > head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp > head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp > head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp > head/contrib/llvm/tools/clang/lib/Basic/Attributes.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Basic/Attributes.cpp > head/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp > head/contrib/llvm/tools/clang/lib/Basic/Warnings.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Basic/Warnings.cpp > head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp > head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h > head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp > head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h > head/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp > head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp > head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h > head/contrib/llvm/tools/clang/lib/CodeGen/SanitizerBlacklist.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/SanitizerBlacklist.cpp > head/contrib/llvm/tools/clang/lib/CodeGen/SanitizerBlacklist.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/CodeGen/SanitizerBlacklist.h > head/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp > head/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp > head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/ > head/contrib/llvm/tools/clang/lib/Headers/arm_acle.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Headers/arm_acle.h > head/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h > head/contrib/llvm/tools/clang/lib/Headers/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Headers/module.modulemap > head/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp > head/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp > head/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp > head/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp > head/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp > head/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp > > head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SelectorExtras.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SelectorExtras.h > > head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp > head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h > head/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h > head/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h > head/contrib/llvm/tools/lldb/include/lldb/Host/FileCache.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/FileCache.h > head/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h > head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h > head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h > head/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h > head/contrib/llvm/tools/lldb/include/lldb/Host/IOObject.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/IOObject.h > head/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h > head/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h > head/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h > head/contrib/llvm/tools/lldb/include/lldb/Host/posix/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/ > > head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h > head/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h > head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h > head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoaderList.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/JITLoaderList.h > head/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h > head/contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContext.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContext.h > > head/contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContextRegisterInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContextRegisterInfo.h > head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h > head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h > head/contrib/llvm/tools/lldb/include/lldb/Utility/SafeMachO.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Utility/SafeMachO.h > head/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h > head/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h > head/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp > head/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp > head/contrib/llvm/tools/lldb/source/Core/FastDemangle.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Core/FastDemangle.cpp > head/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp > head/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp > head/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp > head/contrib/llvm/tools/lldb/source/Host/common/IOObject.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/IOObject.cpp > head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.cpp > head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.h > head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.cpp > head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.h > head/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp > head/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.h > head/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp > head/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.h > head/contrib/llvm/tools/lldb/source/Host/common/Pipe.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/Pipe.cpp > head/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp > head/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.cpp > head/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.h > head/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp > head/contrib/llvm/tools/lldb/source/Host/posix/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Host/posix/ > > head/contrib/llvm/tools/lldb/source/Interpreter/CommandOptionValidators.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Interpreter/CommandOptionValidators.cpp > head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ > head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ > head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/ > head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/ > head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/JITLoader/ > head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h > head/contrib/llvm/tools/lldb/source/Target/FileAction.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Target/FileAction.cpp > head/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp > head/contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp > head/contrib/llvm/tools/lldb/source/Target/NativeRegisterContext.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Target/NativeRegisterContext.cpp > > head/contrib/llvm/tools/lldb/source/Target/NativeRegisterContextRegisterInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Target/NativeRegisterContextRegisterInfo.cpp > head/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp > head/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp > head/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.cpp > head/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.h > head/contrib/llvm/tools/lldb/source/Utility/ARM64_GCC_Registers.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Utility/ARM64_GCC_Registers.h > head/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp > head/contrib/llvm/tools/lldb/tools/lldb-mi/ > - copied from r276476, > projects/clang350-import/contrib/llvm/tools/lldb/tools/lldb-mi/ > head/contrib/llvm/tools/lli/RPCChannel.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lli/RPCChannel.h > head/contrib/llvm/tools/lli/Unix/RPCChannel.inc > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lli/Unix/RPCChannel.inc > head/contrib/llvm/tools/lli/Windows/RPCChannel.inc > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/lli/Windows/RPCChannel.inc > head/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.cpp > head/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.h > head/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h > head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp > head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h > head/contrib/llvm/tools/llvm-readobj/Win64EHDumper.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/llvm-readobj/Win64EHDumper.cpp > head/contrib/llvm/tools/llvm-readobj/Win64EHDumper.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/llvm-readobj/Win64EHDumper.h > head/contrib/llvm/tools/opt/BreakpointPrinter.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/BreakpointPrinter.cpp > head/contrib/llvm/tools/opt/BreakpointPrinter.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/BreakpointPrinter.h > head/contrib/llvm/tools/opt/NewPMDriver.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/NewPMDriver.cpp > head/contrib/llvm/tools/opt/NewPMDriver.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/NewPMDriver.h > head/contrib/llvm/tools/opt/PassPrinters.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/PassPrinters.cpp > head/contrib/llvm/tools/opt/PassPrinters.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/PassPrinters.h > head/contrib/llvm/tools/opt/PassRegistry.def > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/PassRegistry.def > head/contrib/llvm/tools/opt/Passes.cpp > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/Passes.cpp > head/contrib/llvm/tools/opt/Passes.h > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/tools/opt/Passes.h > head/contrib/llvm/utils/TableGen/module.modulemap > - copied unchanged from r276476, > projects/clang350-import/contrib/llvm/utils/TableGen/module.modulemap > head/lib/clang/include/MipsGenFastISel.inc > - copied unchanged from r276476, > projects/clang350-import/lib/clang/include/MipsGenFastISel.inc > head/lib/clang/include/PPCGenDisassemblerTables.inc > - copied unchanged from r276476, > projects/clang350-import/lib/clang/include/PPCGenDisassemblerTables.inc > head/lib/clang/include/clang/AST/AttrVisitor.inc > - copied unchanged from r276476, > projects/clang350-import/lib/clang/include/clang/AST/AttrVisitor.inc > head/lib/clang/include/clang/Basic/AttrHasAttributeImpl.inc > - copied unchanged from r276476, > projects/clang350-import/lib/clang/include/clang/Basic/AttrHasAttributeImpl.inc > head/lib/clang/include/clang/Parse/AttrParserStringSwitches.inc > - copied unchanged from r276476, > projects/clang350-import/lib/clang/include/clang/Parse/AttrParserStringSwitches.inc > head/lib/clang/libclangrewrite/ > - copied from r276476, > projects/clang350-import/lib/clang/libclangrewrite/ > head/lib/clang/liblldbHostPOSIX/ > - copied from r276476, > projects/clang350-import/lib/clang/liblldbHostPOSIX/ > head/lib/clang/liblldbPluginInstructionARM64/ > - copied from r276476, > projects/clang350-import/lib/clang/liblldbPluginInstructionARM64/ > head/lib/clang/liblldbPluginJITLoaderGDB/ > - copied from r276476, > projects/clang350-import/lib/clang/liblldbPluginJITLoaderGDB/ > head/lib/clang/liblldbPluginObjectFileJIT/ > - copied from r276476, > projects/clang350-import/lib/clang/liblldbPluginObjectFileJIT/ > head/lib/clang/libllvmmcanalysis/ > - copied from r276476, > projects/clang350-import/lib/clang/libllvmmcanalysis/ > head/lib/clang/libllvmpowerpcdisassembler/ > - copied from r276476, > projects/clang350-import/lib/clang/libllvmpowerpcdisassembler/ > head/lib/clang/libllvmprofiledata/ > - copied from r276476, > projects/clang350-import/lib/clang/libllvmprofiledata/ > Deleted: > head/contrib/llvm/include/llvm/ADT/ImmutableIntervalMap.h > head/contrib/llvm/include/llvm/ADT/OwningPtr.h > head/contrib/llvm/include/llvm/ADT/ValueMap.h > head/contrib/llvm/include/llvm/ADT/polymorphic_ptr.h > head/contrib/llvm/include/llvm/Analysis/BlockFrequencyImpl.h > head/contrib/llvm/include/llvm/Analysis/DominatorInternals.h > head/contrib/llvm/include/llvm/Analysis/Dominators.h > head/contrib/llvm/include/llvm/Analysis/Verifier.h > head/contrib/llvm/include/llvm/Assembly/ > head/contrib/llvm/include/llvm/AutoUpgrade.h > head/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h > head/contrib/llvm/include/llvm/CodeGen/PBQP/HeuristicBase.h > head/contrib/llvm/include/llvm/CodeGen/PBQP/HeuristicSolver.h > head/contrib/llvm/include/llvm/CodeGen/PBQP/Heuristics/ > head/contrib/llvm/include/llvm/DIBuilder.h > head/contrib/llvm/include/llvm/DebugInfo.h > head/contrib/llvm/include/llvm/GVMaterializer.h > head/contrib/llvm/include/llvm/InstVisitor.h > head/contrib/llvm/include/llvm/Linker.h > head/contrib/llvm/include/llvm/MC/MCAtom.h > head/contrib/llvm/include/llvm/MC/MCFunction.h > head/contrib/llvm/include/llvm/MC/MCModule.h > head/contrib/llvm/include/llvm/MC/MCModuleYAML.h > head/contrib/llvm/include/llvm/Object/YAML.h > head/contrib/llvm/include/llvm/Support/CFG.h > head/contrib/llvm/include/llvm/Support/CallSite.h > head/contrib/llvm/include/llvm/Support/ConstantFolder.h > head/contrib/llvm/include/llvm/Support/ConstantRange.h > head/contrib/llvm/include/llvm/Support/DataFlow.h > head/contrib/llvm/include/llvm/Support/DebugLoc.h > head/contrib/llvm/include/llvm/Support/Disassembler.h > head/contrib/llvm/include/llvm/Support/FEnv.h > head/contrib/llvm/include/llvm/Support/GetElementPtrTypeIterator.h > head/contrib/llvm/include/llvm/Support/InstIterator.h > head/contrib/llvm/include/llvm/Support/LeakDetector.h > head/contrib/llvm/include/llvm/Support/NoFolder.h > head/contrib/llvm/include/llvm/Support/PassNameParser.h > head/contrib/llvm/include/llvm/Support/PatternMatch.h > head/contrib/llvm/include/llvm/Support/PredIteratorCache.h > head/contrib/llvm/include/llvm/Support/TargetFolder.h > head/contrib/llvm/include/llvm/Support/ValueHandle.h > head/contrib/llvm/include/llvm/Support/system_error.h > head/contrib/llvm/include/llvm/Target/Mangler.h > head/contrib/llvm/include/llvm/Transforms/Utils/SpecialCaseList.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h > head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp > head/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp > head/contrib/llvm/lib/IR/PrintModulePass.cpp > head/contrib/llvm/lib/MC/MCAtom.cpp > head/contrib/llvm/lib/MC/MCFunction.cpp > head/contrib/llvm/lib/MC/MCModule.cpp > head/contrib/llvm/lib/MC/MCModuleYAML.cpp > head/contrib/llvm/lib/MC/MCObjectDisassembler.cpp > head/contrib/llvm/lib/MC/MCObjectSymbolizer.cpp > head/contrib/llvm/lib/MC/MCPureStreamer.cpp > head/contrib/llvm/lib/Object/YAML.cpp > head/contrib/llvm/lib/Support/ConstantRange.cpp > head/contrib/llvm/lib/Support/Disassembler.cpp > head/contrib/llvm/lib/Support/Unix/system_error.inc > head/contrib/llvm/lib/Support/Windows/Windows.h > head/contrib/llvm/lib/Support/Windows/system_error.inc > head/contrib/llvm/lib/Support/system_error.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.h > head/contrib/llvm/lib/Target/AArch64/AArch64BranchFixupPass.cpp > head/contrib/llvm/lib/Target/AArch64/AArch64CallingConv.td > head/contrib/llvm/lib/Target/AArch64/AArch64InstrNEON.td > head/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp > head/contrib/llvm/lib/Target/AArch64/README.txt > head/contrib/llvm/lib/Target/ARM/ARMBuildAttrs.h > head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOp.h > head/contrib/llvm/lib/Target/Mangler.cpp > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsReginfo.cpp > head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsReginfo.h > head/contrib/llvm/lib/Target/NVPTX/NVPTXSplitBBatBar.cpp > head/contrib/llvm/lib/Target/NVPTX/NVPTXSplitBBatBar.h > head/contrib/llvm/lib/Target/R600/AMDGPUConvertToISA.cpp > head/contrib/llvm/lib/Target/R600/AMDILBase.td > head/contrib/llvm/lib/Target/R600/AMDILISelLowering.cpp > head/contrib/llvm/lib/Target/R600/AMDILInstrInfo.td > head/contrib/llvm/lib/Target/R600/AMDILIntrinsicInfo.cpp > head/contrib/llvm/lib/Target/R600/AMDILIntrinsicInfo.h > head/contrib/llvm/lib/Target/R600/AMDILIntrinsics.td > head/contrib/llvm/lib/Target/R600/AMDILRegisterInfo.td > head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c > head/contrib/llvm/lib/Target/X86/X86COFFMachineModuleInfo.cpp > head/contrib/llvm/lib/Target/X86/X86COFFMachineModuleInfo.h > head/contrib/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp > head/contrib/llvm/lib/Transforms/Scalar/GlobalMerge.cpp > head/contrib/llvm/lib/Transforms/Utils/SpecialCaseList.cpp > head/contrib/llvm/patches/patch-r208961-clang-version-include.diff > head/contrib/llvm/patches/patch-r208987-format-extensions.diff > head/contrib/llvm/patches/patch-r209107-clang-vendor-suffix.diff > head/contrib/llvm/patches/patch-r213492-amd64-multi-os-dot.diff > head/contrib/llvm/patches/patch-r221503-default-target-triple.diff > head/contrib/llvm/patches/patch-r243830-arm-disable-clear-cache.diff > > head/contrib/llvm/patches/patch-r252503-arm-transient-stack-alignment.diff > head/contrib/llvm/patches/patch-r257109-add-CC-aliases.diff > head/contrib/llvm/patches/patch-r259053-gcc-installation-detector.diff > head/contrib/llvm/patches/patch-r259498-add-fxsave.diff > > head/contrib/llvm/patches/patch-r261680-clang-r200899-fix-security-quantis.diff > head/contrib/llvm/patches/patch-r261991-llvm-r195391-fix-dwarf2.diff > head/contrib/llvm/patches/patch-r261991-llvm-r198385-fix-dwarf2.diff > head/contrib/llvm/patches/patch-r261991-llvm-r198389-fix-dwarf2.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198028-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198029-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198030-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198145-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198149-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198157-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198280-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198281-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198286-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198480-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198484-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198533-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198565-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198567-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198580-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198591-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198592-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198658-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198681-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198738-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198739-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198740-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198893-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198909-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r198910-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199014-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199024-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199028-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199031-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199033-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199061-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199186-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199187-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199775-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199781-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199786-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199940-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199974-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199975-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r199977-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200103-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200104-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200112-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200130-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200131-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200141-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200282-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200368-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200373-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200376-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200509-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200617-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200960-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200961-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200962-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200963-sparc.diff > head/contrib/llvm/patches/patch-r262261-llvm-r200965-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r198311-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r198312-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r198912-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r198918-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r198923-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r199012-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r199034-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r199037-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r199188-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r199399-sparc.diff > head/contrib/llvm/patches/patch-r262262-clang-r200452-sparc.diff > head/contrib/llvm/patches/patch-r262264-llvm-r200453-sparc.diff > head/contrib/llvm/patches/patch-r262265-llvm-r201718-sparc.diff > head/contrib/llvm/patches/patch-r262303-enable-ppc-integrated-as.diff > head/contrib/llvm/patches/patch-r262415-llvm-r201994-sparc.diff > head/contrib/llvm/patches/patch-r262460-llvm-r202059-sparc.diff > head/contrib/llvm/patches/patch-r262535-clang-r202177-sparc.diff > head/contrib/llvm/patches/patch-r262536-clang-r202179-sparc.diff > head/contrib/llvm/patches/patch-r262582-llvm-r202422-sparc.diff > > head/contrib/llvm/patches/patch-r262611-llvm-r196874-fix-invalid-pwd-crash.diff > head/contrib/llvm/patches/patch-r263048-clang-r203624-fix-CC-aliases.diff > > head/contrib/llvm/patches/patch-r263312-llvm-r169939-inline-asm-with-realign.diff > > head/contrib/llvm/patches/patch-r263312-llvm-r196940-update-inline-asm-test.diff > > head/contrib/llvm/patches/patch-r263312-llvm-r196986-allow-realign-alloca.diff > > head/contrib/llvm/patches/patch-r263312-llvm-r202930-fix-alloca-esi-clobber.diff > head/contrib/llvm/patches/patch-r263313-llvm-r203311-fix-sse1-oom.diff > head/contrib/llvm/patches/patch-r263619-clang-r201662-arm-gnueabihf.diff > head/contrib/llvm/patches/patch-r264345-dwarf2-freebsd10.diff > > head/contrib/llvm/patches/patch-r264826-llvm-r202188-variadic-fn-debug-info.diff > > head/contrib/llvm/patches/patch-r264827-clang-r202185-variadic-fn-debug-info.diff > > head/contrib/llvm/patches/patch-r265477-clang-r198655-standalone-debug.diff > head/contrib/llvm/patches/patch-r266674-clang-r209489-fix-xmmintrin.diff > head/contrib/llvm/patches/patch-r267704-llvm-r211435-fix-avx-backend.diff > head/contrib/llvm/patches/patch-r267981-llvm-r211435-fix-ppc-fctiduz.diff > head/contrib/llvm/patches/patch-r269387-clang-arm-target-cpu.diff > head/contrib/llvm/patches/patch-r270147-llvm-r197824-r213427-r213960.diff > > head/contrib/llvm/patches/patch-r271024-llvm-r216989-r216990-fix-movw-armv6.diff > > head/contrib/llvm/patches/patch-r271282-clang-r200797-r200798-r200805-debug-info-crash.diff > > head/contrib/llvm/patches/patch-r271432-clang-r205331-debug-info-crash.diff > > head/contrib/llvm/patches/patch-r271597-clang-r217410-i386-garbage-float.diff > head/contrib/llvm/patches/patch-r274286-llvm-r201784-asm-dollar.diff > head/contrib/llvm/patches/patch-r274442-llvm-r221709-debug-oom.diff > head/contrib/llvm/patches/patch-r275633-llvm-r223171-fix-vectorizer.diff > head/contrib/llvm/patches/patch-r275759-clang-r221170-ppc-vaarg.diff > > head/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowSolver.h > head/contrib/llvm/tools/clang/include/clang/Basic/OnDiskHashTable.h > head/contrib/llvm/tools/clang/include/clang/Basic/OpenCL.h > head/contrib/llvm/tools/clang/include/clang/Driver/CC1AsOptions.h > head/contrib/llvm/tools/clang/include/clang/Driver/CC1AsOptions.td > head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.h > > head/contrib/llvm/tools/clang/include/clang/Frontend/ChainedIncludesSource.h > head/contrib/llvm/tools/clang/lib/CodeGen/CGRTTI.cpp > head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftVBTables.cpp > head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftVBTables.h > head/contrib/llvm/tools/clang/lib/Driver/CC1AsOptions.cpp > head/contrib/llvm/tools/clang/lib/Frontend/Warnings.cpp > head/contrib/llvm/tools/clang/lib/Headers/module.map > head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.h > head/contrib/llvm/tools/clang/lib/Rewrite/Core/ > head/contrib/llvm/tools/clang/lib/Rewrite/Frontend/ > head/contrib/llvm/tools/clang/lib/Sema/TargetAttributesSema.cpp > head/contrib/llvm/tools/clang/lib/Sema/TargetAttributesSema.h > > head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp > > head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.h > head/contrib/llvm/tools/lldb/include/lldb/Host/DynamicLibrary.h > head/contrib/llvm/tools/lldb/source/Host/common/DynamicLibrary.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_i386.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_i386.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_mips64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_mips64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_x86_64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextFreeBSD_x86_64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextLinux_i386.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextLinux_i386.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextLinux_x86_64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextLinux_x86_64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX_mips64.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX_mips64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX_x86.cpp > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIX_x86.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContext_mips64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContext_x86.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterInfos_i386.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterInfos_mips64.h > > head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterInfos_x86_64.h > head/contrib/llvm/tools/lli/ChildTarget/Unix/ > head/contrib/llvm/tools/lli/ChildTarget/Windows/ > head/contrib/llvm/tools/lli/Unix/RemoteTargetExternal.inc > head/contrib/llvm/tools/lli/Windows/RemoteTargetExternal.inc > head/contrib/llvm/utils/TableGen/SetTheory.cpp > head/contrib/llvm/utils/TableGen/SetTheory.h > head/contrib/llvm/utils/TableGen/TGValueTypes.cpp > head/lib/clang/include/clang/Driver/CC1AsOptions.inc > head/lib/clang/include/clang/Lex/ > head/lib/clang/include/clang/Parse/AttrIdentifierArg.inc > head/lib/clang/include/clang/Parse/AttrLateParsed.inc > head/lib/clang/include/clang/Parse/AttrTypeArg.inc > head/lib/clang/libclangrewritecore/ > Modified: > head/ObsoleteFiles.inc > head/UPDATING > head/contrib/llvm/LICENSE.TXT > head/contrib/llvm/include/llvm-c/Core.h > head/contrib/llvm/include/llvm-c/Disassembler.h > head/contrib/llvm/include/llvm-c/ExecutionEngine.h > head/contrib/llvm/include/llvm-c/IRReader.h > head/contrib/llvm/include/llvm-c/Object.h > head/contrib/llvm/include/llvm-c/Support.h > head/contrib/llvm/include/llvm-c/TargetMachine.h > head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h > head/contrib/llvm/include/llvm-c/Transforms/Scalar.h > head/contrib/llvm/include/llvm-c/lto.h > head/contrib/llvm/include/llvm/ADT/APFloat.h > head/contrib/llvm/include/llvm/ADT/APInt.h > head/contrib/llvm/include/llvm/ADT/APSInt.h > head/contrib/llvm/include/llvm/ADT/ArrayRef.h > head/contrib/llvm/include/llvm/ADT/BitVector.h > head/contrib/llvm/include/llvm/ADT/DenseMap.h > head/contrib/llvm/include/llvm/ADT/DenseSet.h > head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h > head/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h > head/contrib/llvm/include/llvm/ADT/FoldingSet.h > head/contrib/llvm/include/llvm/ADT/Hashing.h > head/contrib/llvm/include/llvm/ADT/ImmutableMap.h > head/contrib/llvm/include/llvm/ADT/ImmutableSet.h > head/contrib/llvm/include/llvm/ADT/IntervalMap.h > head/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h > head/contrib/llvm/include/llvm/ADT/MapVector.h > head/contrib/llvm/include/llvm/ADT/Optional.h > head/contrib/llvm/include/llvm/ADT/PointerIntPair.h > head/contrib/llvm/include/llvm/ADT/PointerUnion.h > head/contrib/llvm/include/llvm/ADT/PostOrderIterator.h > head/contrib/llvm/include/llvm/ADT/SCCIterator.h > head/contrib/llvm/include/llvm/ADT/STLExtras.h > head/contrib/llvm/include/llvm/ADT/ScopedHashTable.h > head/contrib/llvm/include/llvm/ADT/SetVector.h > head/contrib/llvm/include/llvm/ADT/SmallBitVector.h > head/contrib/llvm/include/llvm/ADT/SmallPtrSet.h > head/contrib/llvm/include/llvm/ADT/SmallSet.h > head/contrib/llvm/include/llvm/ADT/SmallString.h > head/... From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 21:58:04 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CC53C9B4; Wed, 31 Dec 2014 21:58:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B8CB564E6D; Wed, 31 Dec 2014 21:58:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVLw4Zn093577; Wed, 31 Dec 2014 21:58:04 GMT (envelope-from loos@FreeBSD.org) Received: (from loos@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVLw4x8093576; Wed, 31 Dec 2014 21:58:04 GMT (envelope-from loos@FreeBSD.org) Message-Id: <201412312158.sBVLw4x8093576@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: loos set sender to loos@FreeBSD.org using -f From: Luiz Otavio O Souza Date: Wed, 31 Dec 2014 21:58:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276481 - head/usr.sbin/gpioctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 21:58:04 -0000 Author: loos Date: Wed Dec 31 21:58:03 2014 New Revision: 276481 URL: https://svnweb.freebsd.org/changeset/base/276481 Log: Free the buffer returned by gpio_pin_list() after the use. Reported by: Coverity Scan CID: 1257468 Modified: head/usr.sbin/gpioctl/gpioctl.c Modified: head/usr.sbin/gpioctl/gpioctl.c ============================================================================== --- head/usr.sbin/gpioctl/gpioctl.c Wed Dec 31 20:34:12 2014 (r276480) +++ head/usr.sbin/gpioctl/gpioctl.c Wed Dec 31 21:58:03 2014 (r276481) @@ -159,6 +159,7 @@ dump_pins(gpio_handle_t handle, int verb } printf("\n"); } + free(cfgs); } static void From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 22:15:29 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BF13CFC4; Wed, 31 Dec 2014 22:15:29 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9FF7966133; Wed, 31 Dec 2014 22:15:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVMFTnT002809; Wed, 31 Dec 2014 22:15:29 GMT (envelope-from neel@FreeBSD.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVMFTwl002808; Wed, 31 Dec 2014 22:15:29 GMT (envelope-from neel@FreeBSD.org) Message-Id: <201412312215.sBVMFTwl002808@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: neel set sender to neel@FreeBSD.org using -f From: Neel Natu Date: Wed, 31 Dec 2014 22:15:29 +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: r276482 - stable/10/sys/x86/x86 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 22:15:30 -0000 Author: neel Date: Wed Dec 31 22:15:28 2014 New Revision: 276482 URL: https://svnweb.freebsd.org/changeset/base/276482 Log: MFC r273748 Output a summary of optional SVM features in dmesg similar to CPU features. If bootverbose is enabled, a detailed list is provided; otherwise, a single-line summary is displayed. Requested by: jhb Modified: stable/10/sys/x86/x86/identcpu.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/x86/x86/identcpu.c ============================================================================== --- stable/10/sys/x86/x86/identcpu.c Wed Dec 31 21:58:03 2014 (r276481) +++ stable/10/sys/x86/x86/identcpu.c Wed Dec 31 22:15:28 2014 (r276482) @@ -76,6 +76,7 @@ static u_int find_cpu_vendor_id(void); static void print_AMD_info(void); static void print_INTEL_info(void); static void print_INTEL_TLB(u_int data); +static void print_svm_info(void); static void print_via_padlock_info(void); static void print_vmx_info(void); @@ -932,6 +933,9 @@ printcpuinfo(void) if (cpu_feature2 & CPUID2_VMX) print_vmx_info(); + if (amd_feature2 & AMDID2_SVM) + print_svm_info(); + if ((cpu_feature & CPUID_HTT) && cpu_vendor_id == CPU_VENDOR_AMD) cpu_feature &= ~CPUID_HTT; @@ -1735,6 +1739,67 @@ print_INTEL_TLB(u_int data) } } +static void +print_svm_info(void) +{ + u_int features, regs[4]; + uint64_t msr; + int comma; + + printf("\n SVM: "); + do_cpuid(0x8000000A, regs); + features = regs[3]; + + msr = rdmsr(MSR_VM_CR); + if ((msr & VM_CR_SVMDIS) == VM_CR_SVMDIS) + printf("(disabled in BIOS) "); + + if (!bootverbose) { + comma = 0; + if (features & (1 << 0)) { + printf("%sNP", comma ? "," : ""); + comma = 1; + } + if (features & (1 << 3)) { + printf("%sNRIP", comma ? "," : ""); + comma = 1; + } + if (features & (1 << 5)) { + printf("%sVClean", comma ? "," : ""); + comma = 1; + } + if (features & (1 << 6)) { + printf("%sAFlush", comma ? "," : ""); + comma = 1; + } + if (features & (1 << 7)) { + printf("%sDAssist", comma ? "," : ""); + comma = 1; + } + printf("%sNAsids=%d", comma ? "," : "", regs[1]); + return; + } + + printf("Features=0x%b", features, + "\020" + "\001NP" /* Nested paging */ + "\002LbrVirt" /* LBR virtualization */ + "\003SVML" /* SVM lock */ + "\004NRIPS" /* NRIP save */ + "\005TscRateMsr" /* MSR based TSC rate control */ + "\006VmcbClean" /* VMCB clean bits */ + "\007FlushByAsid" /* Flush by ASID */ + "\010DecodeAssist" /* Decode assist */ + "\011" + "\012" + "\013PauseFilter" /* PAUSE intercept filter */ + "\014" + "\015PauseFilterThreshold" /* PAUSE filter threshold */ + "\016AVIC" /* virtual interrupt controller */ + ); + printf("\nRevision=%d, ASIDs=%d", regs[0] & 0xff, regs[1]); +} + #ifdef __i386__ static void print_transmeta_info(void) From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 22:49:03 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B74989E9; Wed, 31 Dec 2014 22:49:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A39C0665B0; Wed, 31 Dec 2014 22:49:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVMn3wC017037; Wed, 31 Dec 2014 22:49:03 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVMn3R5017036; Wed, 31 Dec 2014 22:49:03 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201412312249.sBVMn3R5017036@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 31 Dec 2014 22:49:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276483 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 22:49:03 -0000 Author: ngie Date: Wed Dec 31 22:49:02 2014 New Revision: 276483 URL: https://svnweb.freebsd.org/changeset/base/276483 Log: The variable used with install(1) for stripping should be STRIPBIN, not STRIP_CMD MFC after: 3 days Reported by: lev Modified: head/share/man/man7/build.7 Modified: head/share/man/man7/build.7 ============================================================================== --- head/share/man/man7/build.7 Wed Dec 31 22:15:28 2014 (r276482) +++ head/share/man/man7/build.7 Wed Dec 31 22:49:02 2014 (r276483) @@ -445,10 +445,10 @@ process. .Bd -literal -offset indent make PORTS_MODULES=emulators/kqemu-kmod kernel .Ed -.It Va STRIP_CMD +.It Va STRIPBIN Command to use at install time when stripping binaries. Be sure to add any additional tools required to run -.Va STRIP_CMD +.Va STRIPBIN to the .Va LOCAL_ITOOLS .Xr make 1 From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 22:52:45 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C6A5DB93; Wed, 31 Dec 2014 22:52:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A78FC255A; Wed, 31 Dec 2014 22:52:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVMqje7020933; Wed, 31 Dec 2014 22:52:45 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVMqi1J020929; Wed, 31 Dec 2014 22:52:44 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201412312252.sBVMqi1J020929@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Wed, 31 Dec 2014 22:52:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276484 - in head/sys: netinet netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 22:52:45 -0000 Author: adrian Date: Wed Dec 31 22:52:43 2014 New Revision: 276484 URL: https://svnweb.freebsd.org/changeset/base/276484 Log: Migrate the RSS IPv6 hash code to use pointers to the v6 addresses rather than passing them in by value. The eventual aim is to do incremental hash construction rather than all of the memcpy()'ing into a contiguous buffer for the hash function, which does show up as taking quite a bit of CPU during profiling. Tested: * a variety of laptops/desktop setups I have, with v6 connectivity Differential Revision: D1404 Reviewed by: bz, rpaulo Modified: head/sys/netinet/in_rss.c head/sys/netinet/in_rss.h head/sys/netinet6/in6_pcbgroup.c head/sys/netinet6/udp6_usrreq.c Modified: head/sys/netinet/in_rss.c ============================================================================== --- head/sys/netinet/in_rss.c Wed Dec 31 22:49:02 2014 (r276483) +++ head/sys/netinet/in_rss.c Wed Dec 31 22:52:43 2014 (r276484) @@ -346,16 +346,16 @@ rss_hash_ip4_4tuple(struct in_addr src, * Hash an IPv6 2-tuple. */ uint32_t -rss_hash_ip6_2tuple(struct in6_addr src, struct in6_addr dst) +rss_hash_ip6_2tuple(const struct in6_addr *src, const struct in6_addr *dst) { - uint8_t data[sizeof(src) + sizeof(dst)]; + uint8_t data[sizeof(*src) + sizeof(*dst)]; u_int datalen; datalen = 0; - bcopy(&src, &data[datalen], sizeof(src)); - datalen += sizeof(src); - bcopy(&dst, &data[datalen], sizeof(dst)); - datalen += sizeof(dst); + bcopy(src, &data[datalen], sizeof(*src)); + datalen += sizeof(*src); + bcopy(dst, &data[datalen], sizeof(*dst)); + datalen += sizeof(*dst); return (rss_hash(datalen, data)); } @@ -363,18 +363,18 @@ rss_hash_ip6_2tuple(struct in6_addr src, * Hash an IPv6 4-tuple. */ uint32_t -rss_hash_ip6_4tuple(struct in6_addr src, u_short srcport, - struct in6_addr dst, u_short dstport) +rss_hash_ip6_4tuple(const struct in6_addr *src, u_short srcport, + const struct in6_addr *dst, u_short dstport) { - uint8_t data[sizeof(src) + sizeof(dst) + sizeof(srcport) + + uint8_t data[sizeof(*src) + sizeof(*dst) + sizeof(srcport) + sizeof(dstport)]; u_int datalen; datalen = 0; - bcopy(&src, &data[datalen], sizeof(src)); - datalen += sizeof(src); - bcopy(&dst, &data[datalen], sizeof(dst)); - datalen += sizeof(dst); + bcopy(src, &data[datalen], sizeof(*src)); + datalen += sizeof(*src); + bcopy(dst, &data[datalen], sizeof(*dst)); + datalen += sizeof(*dst); bcopy(&srcport, &data[datalen], sizeof(srcport)); datalen += sizeof(srcport); bcopy(&dstport, &data[datalen], sizeof(dstport)); Modified: head/sys/netinet/in_rss.h ============================================================================== --- head/sys/netinet/in_rss.h Wed Dec 31 22:49:02 2014 (r276483) +++ head/sys/netinet/in_rss.h Wed Dec 31 22:52:43 2014 (r276484) @@ -112,10 +112,10 @@ u_int rss_gethashconfig(void); uint32_t rss_hash_ip4_4tuple(struct in_addr src, u_short srcport, struct in_addr dst, u_short dstport); uint32_t rss_hash_ip4_2tuple(struct in_addr src, struct in_addr dst); -uint32_t rss_hash_ip6_4tuple(struct in6_addr src, u_short srcport, - struct in6_addr dst, u_short dstport); -uint32_t rss_hash_ip6_2tuple(struct in6_addr src, - struct in6_addr dst); +uint32_t rss_hash_ip6_4tuple(const struct in6_addr *src, u_short srcport, + const struct in6_addr *dst, u_short dstport); +uint32_t rss_hash_ip6_2tuple(const struct in6_addr *src, + const struct in6_addr *dst); /* * Network stack interface to query desired CPU affinity of a packet. Modified: head/sys/netinet6/in6_pcbgroup.c ============================================================================== --- head/sys/netinet6/in6_pcbgroup.c Wed Dec 31 22:49:02 2014 (r276483) +++ head/sys/netinet6/in6_pcbgroup.c Wed Dec 31 22:52:43 2014 (r276484) @@ -105,7 +105,7 @@ in6_pcbgroup_bytuple(struct inpcbinfo *p switch (pcbinfo->ipi_hashfields) { case IPI_HASHFIELDS_4TUPLE: #ifdef RSS - hash = rss_hash_ip6_4tuple(*faddrp, fport, *laddrp, lport); + hash = rss_hash_ip6_4tuple(faddrp, fport, laddrp, lport); #else hash = faddrp->s6_addr32[3] ^ fport; #endif @@ -113,7 +113,7 @@ in6_pcbgroup_bytuple(struct inpcbinfo *p case IPI_HASHFIELDS_2TUPLE: #ifdef RSS - hash = rss_hash_ip6_2tuple(*faddrp, *laddrp); + hash = rss_hash_ip6_2tuple(faddrp, laddrp); #else hash = faddrp->s6_addr32[3] ^ laddrp->s6_addr32[3]; #endif Modified: head/sys/netinet6/udp6_usrreq.c ============================================================================== --- head/sys/netinet6/udp6_usrreq.c Wed Dec 31 22:49:02 2014 (r276483) +++ head/sys/netinet6/udp6_usrreq.c Wed Dec 31 22:52:43 2014 (r276484) @@ -841,7 +841,7 @@ udp6_output(struct inpcb *inp, struct mb * XXX .. and we should likely cache this in the inpcb. */ #ifdef RSS - m->m_pkthdr.flowid = rss_hash_ip6_2tuple(*faddr, *laddr); + m->m_pkthdr.flowid = rss_hash_ip6_2tuple(faddr, laddr); M_HASHTYPE_SET(m, M_HASHTYPE_RSS_IPV6); #endif flags = 0; From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 23:19:18 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E02CBFC8; Wed, 31 Dec 2014 23:19:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CAB4129BB; Wed, 31 Dec 2014 23:19:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVNJIPT031055; Wed, 31 Dec 2014 23:19:18 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVNJHca031041; Wed, 31 Dec 2014 23:19:17 GMT (envelope-from np@FreeBSD.org) Message-Id: <201412312319.sBVNJHca031041@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 31 Dec 2014 23:19:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276485 - in head/sys: conf dev/cxgbe modules/cxgbe/if_cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 23:19:19 -0000 Author: np Date: Wed Dec 31 23:19:16 2014 New Revision: 276485 URL: https://svnweb.freebsd.org/changeset/base/276485 Log: cxgbe(4): major tx rework. a) Front load as much work as possible in if_transmit, before any driver lock or software queue has to get involved. b) Replace buf_ring with a brand new mp_ring (multiproducer ring). This is specifically for the tx multiqueue model where one of the if_transmit producer threads becomes the consumer and other producers carry on as usual. mp_ring is implemented as standalone code and it should be possible to use it in any driver with tx multiqueue. It also has: - the ability to enqueue/dequeue multiple items. This might become significant if packet batching is ever implemented. - an abdication mechanism to allow a thread to give up writing tx descriptors and have another if_transmit thread take over. A thread that's writing tx descriptors can end up doing so for an unbounded time period if a) there are other if_transmit threads continuously feeding the sofware queue, and b) the chip keeps up with whatever the thread is throwing at it. - accurate statistics about interesting events even when the stats come at the expense of additional branches/conditional code. The NIC txq lock is uncontested on the fast path at this point. I've left it there for synchronization with the control events (interface up/down, modload/unload). c) Add support for "type 1" coalescing work request in the normal NIC tx path. This work request is optimized for frames with a single item in the DMA gather list. These are very common when forwarding packets. Note that netmap tx in cxgbe already uses these "type 1" work requests. d) Do not request automatic cidx updates every 32 descriptors. Instead, request updates via bits in individual work requests (still every 32 descriptors approximately). Also, request an automatic final update when the queue idles after activity. This means NIC tx reclaim is still performed lazily but it will catch up quickly as soon as the queue idles. This seems to be the best middle ground and I'll probably do something similar for netmap tx as well. e) Implement a faster tx path for WRQs (used by TOE tx and control queues, _not_ by the normal NIC tx). Allow work requests to be written directly to the hardware descriptor ring if room is available. I will convert t4_tom and iw_cxgbe modules to this faster style gradually. MFC after: 2 months Added: head/sys/dev/cxgbe/t4_mp_ring.c (contents, props changed) head/sys/dev/cxgbe/t4_mp_ring.h (contents, props changed) Modified: head/sys/conf/files head/sys/dev/cxgbe/adapter.h head/sys/dev/cxgbe/t4_l2t.c head/sys/dev/cxgbe/t4_main.c head/sys/dev/cxgbe/t4_sge.c head/sys/modules/cxgbe/if_cxgbe/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Wed Dec 31 22:52:43 2014 (r276484) +++ head/sys/conf/files Wed Dec 31 23:19:16 2014 (r276485) @@ -1142,6 +1142,8 @@ dev/cxgb/sys/uipc_mvec.c optional cxgb p compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/cxgb_t3fw.c optional cxgb cxgb_t3fw \ compile-with "${NORMAL_C} -I$S/dev/cxgb" +dev/cxgbe/t4_mp_ring.c optional cxgbe pci \ + compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_main.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_netmap.c optional cxgbe pci \ Modified: head/sys/dev/cxgbe/adapter.h ============================================================================== --- head/sys/dev/cxgbe/adapter.h Wed Dec 31 22:52:43 2014 (r276484) +++ head/sys/dev/cxgbe/adapter.h Wed Dec 31 23:19:16 2014 (r276485) @@ -152,7 +152,8 @@ enum { CL_METADATA_SIZE = CACHE_LINE_SIZE, SGE_MAX_WR_NDESC = SGE_MAX_WR_LEN / EQ_ESIZE, /* max WR size in desc */ - TX_SGL_SEGS = 36, + TX_SGL_SEGS = 39, + TX_SGL_SEGS_TSO = 38, TX_WR_FLITS = SGE_MAX_WR_LEN / 8 }; @@ -273,6 +274,7 @@ struct port_info { struct timeval last_refreshed; struct port_stats stats; u_int tnl_cong_drops; + u_int tx_parse_error; eventhandler_tag vlan_c; @@ -308,23 +310,9 @@ struct tx_desc { __be64 flit[8]; }; -struct tx_map { - struct mbuf *m; - bus_dmamap_t map; -}; - -/* DMA maps used for tx */ -struct tx_maps { - struct tx_map *maps; - uint32_t map_total; /* # of DMA maps */ - uint32_t map_pidx; /* next map to be used */ - uint32_t map_cidx; /* reclaimed up to this index */ - uint32_t map_avail; /* # of available maps */ -}; - struct tx_sdesc { + struct mbuf *m; /* m_nextpkt linked chain of frames */ uint8_t desc_used; /* # of hardware descriptors used by the WR */ - uint8_t credits; /* NIC txq: # of frames sent out in the WR */ }; @@ -378,16 +366,12 @@ struct sge_iq { enum { EQ_CTRL = 1, EQ_ETH = 2, -#ifdef TCP_OFFLOAD EQ_OFLD = 3, -#endif /* eq flags */ - EQ_TYPEMASK = 7, /* 3 lsbits hold the type */ - EQ_ALLOCATED = (1 << 3), /* firmware resources allocated */ - EQ_DOOMED = (1 << 4), /* about to be destroyed */ - EQ_CRFLUSHED = (1 << 5), /* expecting an update from SGE */ - EQ_STALLED = (1 << 6), /* out of hw descriptors or dmamaps */ + EQ_TYPEMASK = 0x3, /* 2 lsbits hold the type (see above) */ + EQ_ALLOCATED = (1 << 2), /* firmware resources allocated */ + EQ_ENABLED = (1 << 3), /* open for business */ }; /* Listed in order of preference. Update t4_sysctls too if you change these */ @@ -402,32 +386,25 @@ enum {DOORBELL_UDB, DOORBELL_WCWR, DOORB struct sge_eq { unsigned int flags; /* MUST be first */ unsigned int cntxt_id; /* SGE context id for the eq */ - bus_dma_tag_t desc_tag; - bus_dmamap_t desc_map; - char lockname[16]; struct mtx eq_lock; struct tx_desc *desc; /* KVA of descriptor ring */ - bus_addr_t ba; /* bus address of descriptor ring */ - struct sge_qstat *spg; /* status page, for convenience */ uint16_t doorbells; volatile uint32_t *udb; /* KVA of doorbell (lies within BAR2) */ u_int udb_qid; /* relative qid within the doorbell page */ - uint16_t cap; /* max # of desc, for convenience */ - uint16_t avail; /* available descriptors, for convenience */ - uint16_t qsize; /* size (# of entries) of the queue */ + uint16_t sidx; /* index of the entry with the status page */ uint16_t cidx; /* consumer idx (desc idx) */ uint16_t pidx; /* producer idx (desc idx) */ - uint16_t pending; /* # of descriptors used since last doorbell */ + uint16_t equeqidx; /* EQUEQ last requested at this pidx */ + uint16_t dbidx; /* pidx of the most recent doorbell */ uint16_t iqid; /* iq that gets egr_update for the eq */ uint8_t tx_chan; /* tx channel used by the eq */ - struct task tx_task; - struct callout tx_callout; + volatile u_int equiq; /* EQUIQ outstanding */ - /* stats */ - - uint32_t egr_update; /* # of SGE_EGR_UPDATE notifications for eq */ - uint32_t unstalled; /* recovered from stall */ + bus_dma_tag_t desc_tag; + bus_dmamap_t desc_map; + bus_addr_t ba; /* bus address of descriptor ring */ + char lockname[16]; }; struct sw_zone_info { @@ -499,18 +476,19 @@ struct sge_fl { struct cluster_layout cll_alt; /* alternate refill zone, layout */ }; +struct mp_ring; + /* txq: SGE egress queue + what's needed for Ethernet NIC */ struct sge_txq { struct sge_eq eq; /* MUST be first */ struct ifnet *ifp; /* the interface this txq belongs to */ - bus_dma_tag_t tx_tag; /* tag for transmit buffers */ - struct buf_ring *br; /* tx buffer ring */ + struct mp_ring *r; /* tx software ring */ struct tx_sdesc *sdesc; /* KVA of software descriptor ring */ - struct mbuf *m; /* held up due to temporary resource shortage */ - - struct tx_maps txmaps; + struct sglist *gl; + __be32 cpl_ctrl0; /* for convenience */ + struct task tx_reclaim_task; /* stats for common events first */ uint64_t txcsum; /* # of times hardware assisted with checksum */ @@ -519,13 +497,12 @@ struct sge_txq { uint64_t imm_wrs; /* # of work requests with immediate data */ uint64_t sgl_wrs; /* # of work requests with direct SGL */ uint64_t txpkt_wrs; /* # of txpkt work requests (not coalesced) */ - uint64_t txpkts_wrs; /* # of coalesced tx work requests */ - uint64_t txpkts_pkts; /* # of frames in coalesced tx work requests */ + uint64_t txpkts0_wrs; /* # of type0 coalesced tx work requests */ + uint64_t txpkts1_wrs; /* # of type1 coalesced tx work requests */ + uint64_t txpkts0_pkts; /* # of frames in type0 coalesced tx WRs */ + uint64_t txpkts1_pkts; /* # of frames in type1 coalesced tx WRs */ /* stats for not-that-common events */ - - uint32_t no_dmamap; /* no DMA map to load the mbuf */ - uint32_t no_desc; /* out of hardware descriptors */ } __aligned(CACHE_LINE_SIZE); /* rxq: SGE ingress queue + SGE free list + miscellaneous items */ @@ -574,7 +551,13 @@ struct wrqe { STAILQ_ENTRY(wrqe) link; struct sge_wrq *wrq; int wr_len; - uint64_t wr[] __aligned(16); + char wr[] __aligned(16); +}; + +struct wrq_cookie { + TAILQ_ENTRY(wrq_cookie) link; + int ndesc; + int pidx; }; /* @@ -585,17 +568,32 @@ struct sge_wrq { struct sge_eq eq; /* MUST be first */ struct adapter *adapter; + struct task wrq_tx_task; + + /* Tx desc reserved but WR not "committed" yet. */ + TAILQ_HEAD(wrq_incomplete_wrs , wrq_cookie) incomplete_wrs; - /* List of WRs held up due to lack of tx descriptors */ + /* List of WRs ready to go out as soon as descriptors are available. */ STAILQ_HEAD(, wrqe) wr_list; + u_int nwr_pending; + u_int ndesc_needed; /* stats for common events first */ - uint64_t tx_wrs; /* # of tx work requests */ + uint64_t tx_wrs_direct; /* # of WRs written directly to desc ring. */ + uint64_t tx_wrs_ss; /* # of WRs copied from scratch space. */ + uint64_t tx_wrs_copied; /* # of WRs queued and copied to desc ring. */ /* stats for not-that-common events */ - uint32_t no_desc; /* out of hardware descriptors */ + /* + * Scratch space for work requests that wrap around after reaching the + * status page, and some infomation about the last WR that used it. + */ + uint16_t ss_pidx; + uint16_t ss_len; + uint8_t ss[SGE_MAX_WR_LEN]; + } __aligned(CACHE_LINE_SIZE); @@ -744,7 +742,7 @@ struct adapter { struct sge sge; int lro_timeout; - struct taskqueue *tq[NCHAN]; /* taskqueues that flush data out */ + struct taskqueue *tq[NCHAN]; /* General purpose taskqueues */ struct port_info *port[MAX_NPORTS]; uint8_t chan_map[NCHAN]; @@ -978,12 +976,11 @@ static inline int tx_resume_threshold(struct sge_eq *eq) { - return (eq->qsize / 4); + /* not quite the same as qsize / 4, but this will do. */ + return (eq->sidx / 4); } /* t4_main.c */ -void t4_tx_task(void *, int); -void t4_tx_callout(void *); int t4_os_find_pci_capability(struct adapter *, int); int t4_os_pci_save_state(struct adapter *); int t4_os_pci_restore_state(struct adapter *); @@ -1024,16 +1021,15 @@ int t4_setup_adapter_queues(struct adapt int t4_teardown_adapter_queues(struct adapter *); int t4_setup_port_queues(struct port_info *); int t4_teardown_port_queues(struct port_info *); -int t4_alloc_tx_maps(struct tx_maps *, bus_dma_tag_t, int, int); -void t4_free_tx_maps(struct tx_maps *, bus_dma_tag_t); void t4_intr_all(void *); void t4_intr(void *); void t4_intr_err(void *); void t4_intr_evt(void *); void t4_wrq_tx_locked(struct adapter *, struct sge_wrq *, struct wrqe *); -int t4_eth_tx(struct ifnet *, struct sge_txq *, struct mbuf *); void t4_update_fl_bufsize(struct ifnet *); -int can_resume_tx(struct sge_eq *); +int parse_pkt(struct mbuf **); +void *start_wrq_wr(struct sge_wrq *, int, struct wrq_cookie *); +void commit_wrq_wr(struct sge_wrq *, void *, struct wrq_cookie *); /* t4_tracer.c */ struct t4_tracer; Modified: head/sys/dev/cxgbe/t4_l2t.c ============================================================================== --- head/sys/dev/cxgbe/t4_l2t.c Wed Dec 31 22:52:43 2014 (r276484) +++ head/sys/dev/cxgbe/t4_l2t.c Wed Dec 31 23:19:16 2014 (r276485) @@ -113,16 +113,15 @@ found: int t4_write_l2e(struct adapter *sc, struct l2t_entry *e, int sync) { - struct wrqe *wr; + struct wrq_cookie cookie; struct cpl_l2t_write_req *req; int idx = e->idx + sc->vres.l2t.start; mtx_assert(&e->lock, MA_OWNED); - wr = alloc_wrqe(sizeof(*req), &sc->sge.mgmtq); - if (wr == NULL) + req = start_wrq_wr(&sc->sge.mgmtq, howmany(sizeof(*req), 16), &cookie); + if (req == NULL) return (ENOMEM); - req = wrtod(wr); INIT_TP_WR(req, 0); OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_L2T_WRITE_REQ, idx | @@ -132,7 +131,7 @@ t4_write_l2e(struct adapter *sc, struct req->vlan = htons(e->vlan); memcpy(req->dst_mac, e->dmac, sizeof(req->dst_mac)); - t4_wrq_tx(sc, wr); + commit_wrq_wr(&sc->sge.mgmtq, req, &cookie); if (sync && e->state != L2T_STATE_SWITCHING) e->state = L2T_STATE_SYNC_WRITE; Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Wed Dec 31 22:52:43 2014 (r276484) +++ head/sys/dev/cxgbe/t4_main.c Wed Dec 31 23:19:16 2014 (r276485) @@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$"); #include "common/t4_regs_values.h" #include "t4_ioctl.h" #include "t4_l2t.h" +#include "t4_mp_ring.h" /* T4 bus driver interface */ static int t4_probe(device_t); @@ -378,7 +379,8 @@ static void build_medialist(struct port_ static int cxgbe_init_synchronized(struct port_info *); static int cxgbe_uninit_synchronized(struct port_info *); static int setup_intr_handlers(struct adapter *); -static void quiesce_eq(struct adapter *, struct sge_eq *); +static void quiesce_txq(struct adapter *, struct sge_txq *); +static void quiesce_wrq(struct adapter *, struct sge_wrq *); static void quiesce_iq(struct adapter *, struct sge_iq *); static void quiesce_fl(struct adapter *, struct sge_fl *); static int t4_alloc_irq(struct adapter *, struct irq *, int rid, @@ -434,7 +436,6 @@ static int sysctl_tx_rate(SYSCTL_HANDLER static int sysctl_ulprx_la(SYSCTL_HANDLER_ARGS); static int sysctl_wcwr_stats(SYSCTL_HANDLER_ARGS); #endif -static inline void txq_start(struct ifnet *, struct sge_txq *); static uint32_t fconf_to_mode(uint32_t); static uint32_t mode_to_fconf(uint32_t); static uint32_t fspec_to_fconf(struct t4_filter_specification *); @@ -1429,67 +1430,36 @@ cxgbe_transmit(struct ifnet *ifp, struct { struct port_info *pi = ifp->if_softc; struct adapter *sc = pi->adapter; - struct sge_txq *txq = &sc->sge.txq[pi->first_txq]; - struct buf_ring *br; + struct sge_txq *txq; + void *items[1]; int rc; M_ASSERTPKTHDR(m); + MPASS(m->m_nextpkt == NULL); /* not quite ready for this yet */ if (__predict_false(pi->link_cfg.link_ok == 0)) { m_freem(m); return (ENETDOWN); } - /* check if flowid is set */ - if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) - txq += ((m->m_pkthdr.flowid % (pi->ntxq - pi->rsrv_noflowq)) - + pi->rsrv_noflowq); - br = txq->br; - - if (TXQ_TRYLOCK(txq) == 0) { - struct sge_eq *eq = &txq->eq; - - /* - * It is possible that t4_eth_tx finishes up and releases the - * lock between the TRYLOCK above and the drbr_enqueue here. We - * need to make sure that this mbuf doesn't just sit there in - * the drbr. - */ - - rc = drbr_enqueue(ifp, br, m); - if (rc == 0 && callout_pending(&eq->tx_callout) == 0 && - !(eq->flags & EQ_DOOMED)) - callout_reset(&eq->tx_callout, 1, t4_tx_callout, eq); + rc = parse_pkt(&m); + if (__predict_false(rc != 0)) { + MPASS(m == NULL); /* was freed already */ + atomic_add_int(&pi->tx_parse_error, 1); /* rare, atomic is ok */ return (rc); } - /* - * txq->m is the mbuf that is held up due to a temporary shortage of - * resources and it should be put on the wire first. Then what's in - * drbr and finally the mbuf that was just passed in to us. - * - * Return code should indicate the fate of the mbuf that was passed in - * this time. - */ - - TXQ_LOCK_ASSERT_OWNED(txq); - if (drbr_needs_enqueue(ifp, br) || txq->m) { - - /* Queued for transmission. */ - - rc = drbr_enqueue(ifp, br, m); - m = txq->m ? txq->m : drbr_dequeue(ifp, br); - (void) t4_eth_tx(ifp, txq, m); - TXQ_UNLOCK(txq); - return (rc); - } + /* Select a txq. */ + txq = &sc->sge.txq[pi->first_txq]; + if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) + txq += ((m->m_pkthdr.flowid % (pi->ntxq - pi->rsrv_noflowq)) + + pi->rsrv_noflowq); - /* Direct transmission. */ - rc = t4_eth_tx(ifp, txq, m); - if (rc != 0 && txq->m) - rc = 0; /* held, will be transmitted soon (hopefully) */ + items[0] = m; + rc = mp_ring_enqueue(txq->r, items, 1, 4096); + if (__predict_false(rc != 0)) + m_freem(m); - TXQ_UNLOCK(txq); return (rc); } @@ -1499,17 +1469,17 @@ cxgbe_qflush(struct ifnet *ifp) struct port_info *pi = ifp->if_softc; struct sge_txq *txq; int i; - struct mbuf *m; /* queues do not exist if !PORT_INIT_DONE. */ if (pi->flags & PORT_INIT_DONE) { for_each_txq(pi, i, txq) { TXQ_LOCK(txq); - m_freem(txq->m); - txq->m = NULL; - while ((m = buf_ring_dequeue_sc(txq->br)) != NULL) - m_freem(m); + txq->eq.flags &= ~EQ_ENABLED; TXQ_UNLOCK(txq); + while (!mp_ring_is_idle(txq->r)) { + mp_ring_check_drainage(txq->r, 0); + pause("qflush", 1); + } } } if_qflush(ifp); @@ -1564,7 +1534,7 @@ cxgbe_get_counter(struct ifnet *ifp, ift struct sge_txq *txq; for_each_txq(pi, i, txq) - drops += txq->br->br_drops; + drops += counter_u64_fetch(txq->r->drops); } return (drops); @@ -3236,7 +3206,8 @@ cxgbe_init_synchronized(struct port_info { struct adapter *sc = pi->adapter; struct ifnet *ifp = pi->ifp; - int rc = 0; + int rc = 0, i; + struct sge_txq *txq; ASSERT_SYNCHRONIZED_OP(sc); @@ -3265,6 +3236,17 @@ cxgbe_init_synchronized(struct port_info } /* + * Can't fail from this point onwards. Review cxgbe_uninit_synchronized + * if this changes. + */ + + for_each_txq(pi, i, txq) { + TXQ_LOCK(txq); + txq->eq.flags |= EQ_ENABLED; + TXQ_UNLOCK(txq); + } + + /* * The first iq of the first port to come up is used for tracing. */ if (sc->traceq < 0) { @@ -3297,7 +3279,8 @@ cxgbe_uninit_synchronized(struct port_in { struct adapter *sc = pi->adapter; struct ifnet *ifp = pi->ifp; - int rc; + int rc, i; + struct sge_txq *txq; ASSERT_SYNCHRONIZED_OP(sc); @@ -3314,6 +3297,12 @@ cxgbe_uninit_synchronized(struct port_in return (rc); } + for_each_txq(pi, i, txq) { + TXQ_LOCK(txq); + txq->eq.flags &= ~EQ_ENABLED; + TXQ_UNLOCK(txq); + } + clrbit(&sc->open_device_map, pi->port_id); PORT_LOCK(pi); ifp->if_drv_flags &= ~IFF_DRV_RUNNING; @@ -3543,15 +3532,17 @@ port_full_uninit(struct port_info *pi) if (pi->flags & PORT_INIT_DONE) { - /* Need to quiesce queues. XXX: ctrl queues? */ + /* Need to quiesce queues. */ + + quiesce_wrq(sc, &sc->sge.ctrlq[pi->port_id]); for_each_txq(pi, i, txq) { - quiesce_eq(sc, &txq->eq); + quiesce_txq(sc, txq); } #ifdef TCP_OFFLOAD for_each_ofld_txq(pi, i, ofld_txq) { - quiesce_eq(sc, &ofld_txq->eq); + quiesce_wrq(sc, ofld_txq); } #endif @@ -3576,23 +3567,39 @@ port_full_uninit(struct port_info *pi) } static void -quiesce_eq(struct adapter *sc, struct sge_eq *eq) +quiesce_txq(struct adapter *sc, struct sge_txq *txq) { - EQ_LOCK(eq); - eq->flags |= EQ_DOOMED; + struct sge_eq *eq = &txq->eq; + struct sge_qstat *spg = (void *)&eq->desc[eq->sidx]; - /* - * Wait for the response to a credit flush if one's - * pending. - */ - while (eq->flags & EQ_CRFLUSHED) - mtx_sleep(eq, &eq->eq_lock, 0, "crflush", 0); - EQ_UNLOCK(eq); + (void) sc; /* unused */ - callout_drain(&eq->tx_callout); /* XXX: iffy */ - pause("callout", 10); /* Still iffy */ +#ifdef INVARIANTS + TXQ_LOCK(txq); + MPASS((eq->flags & EQ_ENABLED) == 0); + TXQ_UNLOCK(txq); +#endif - taskqueue_drain(sc->tq[eq->tx_chan], &eq->tx_task); + /* Wait for the mp_ring to empty. */ + while (!mp_ring_is_idle(txq->r)) { + mp_ring_check_drainage(txq->r, 0); + pause("rquiesce", 1); + } + + /* Then wait for the hardware to finish. */ + while (spg->cidx != htobe16(eq->pidx)) + pause("equiesce", 1); + + /* Finally, wait for the driver to reclaim all descriptors. */ + while (eq->cidx != eq->pidx) + pause("dquiesce", 1); +} + +static void +quiesce_wrq(struct adapter *sc, struct sge_wrq *wrq) +{ + + /* XXXTX */ } static void @@ -4892,6 +4899,9 @@ cxgbe_sysctls(struct port_info *pi) oid = SYSCTL_ADD_NODE(ctx, children, OID_AUTO, "stats", CTLFLAG_RD, NULL, "port statistics"); children = SYSCTL_CHILDREN(oid); + SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "tx_parse_error", CTLFLAG_RD, + &pi->tx_parse_error, 0, + "# of tx packets with invalid length or # of segments"); #define SYSCTL_ADD_T4_REG64(pi, name, desc, reg) \ SYSCTL_ADD_OID(ctx, children, OID_AUTO, name, \ @@ -6947,74 +6957,6 @@ sysctl_wcwr_stats(SYSCTL_HANDLER_ARGS) } #endif -static inline void -txq_start(struct ifnet *ifp, struct sge_txq *txq) -{ - struct buf_ring *br; - struct mbuf *m; - - TXQ_LOCK_ASSERT_OWNED(txq); - - br = txq->br; - m = txq->m ? txq->m : drbr_dequeue(ifp, br); - if (m) - t4_eth_tx(ifp, txq, m); -} - -void -t4_tx_callout(void *arg) -{ - struct sge_eq *eq = arg; - struct adapter *sc; - - if (EQ_TRYLOCK(eq) == 0) - goto reschedule; - - if (eq->flags & EQ_STALLED && !can_resume_tx(eq)) { - EQ_UNLOCK(eq); -reschedule: - if (__predict_true(!(eq->flags && EQ_DOOMED))) - callout_schedule(&eq->tx_callout, 1); - return; - } - - EQ_LOCK_ASSERT_OWNED(eq); - - if (__predict_true((eq->flags & EQ_DOOMED) == 0)) { - - if ((eq->flags & EQ_TYPEMASK) == EQ_ETH) { - struct sge_txq *txq = arg; - struct port_info *pi = txq->ifp->if_softc; - - sc = pi->adapter; - } else { - struct sge_wrq *wrq = arg; - - sc = wrq->adapter; - } - - taskqueue_enqueue(sc->tq[eq->tx_chan], &eq->tx_task); - } - - EQ_UNLOCK(eq); -} - -void -t4_tx_task(void *arg, int count) -{ - struct sge_eq *eq = arg; - - EQ_LOCK(eq); - if ((eq->flags & EQ_TYPEMASK) == EQ_ETH) { - struct sge_txq *txq = arg; - txq_start(txq->ifp, txq); - } else { - struct sge_wrq *wrq = arg; - t4_wrq_tx_locked(wrq->adapter, wrq, NULL); - } - EQ_UNLOCK(eq); -} - static uint32_t fconf_to_mode(uint32_t fconf) { @@ -7452,9 +7394,9 @@ static int set_filter_wr(struct adapter *sc, int fidx) { struct filter_entry *f = &sc->tids.ftid_tab[fidx]; - struct wrqe *wr; struct fw_filter_wr *fwr; unsigned int ftid; + struct wrq_cookie cookie; ASSERT_SYNCHRONIZED_OP(sc); @@ -7473,12 +7415,10 @@ set_filter_wr(struct adapter *sc, int fi ftid = sc->tids.ftid_base + fidx; - wr = alloc_wrqe(sizeof(*fwr), &sc->sge.mgmtq); - if (wr == NULL) + fwr = start_wrq_wr(&sc->sge.mgmtq, howmany(sizeof(*fwr), 16), &cookie); + if (fwr == NULL) return (ENOMEM); - - fwr = wrtod(wr); - bzero(fwr, sizeof (*fwr)); + bzero(fwr, sizeof(*fwr)); fwr->op_pkd = htobe32(V_FW_WR_OP(FW_FILTER_WR)); fwr->len16_pkd = htobe32(FW_LEN16(*fwr)); @@ -7547,7 +7487,7 @@ set_filter_wr(struct adapter *sc, int fi f->pending = 1; sc->tids.ftids_in_use++; - t4_wrq_tx(sc, wr); + commit_wrq_wr(&sc->sge.mgmtq, fwr, &cookie); return (0); } @@ -7555,22 +7495,21 @@ static int del_filter_wr(struct adapter *sc, int fidx) { struct filter_entry *f = &sc->tids.ftid_tab[fidx]; - struct wrqe *wr; struct fw_filter_wr *fwr; unsigned int ftid; + struct wrq_cookie cookie; ftid = sc->tids.ftid_base + fidx; - wr = alloc_wrqe(sizeof(*fwr), &sc->sge.mgmtq); - if (wr == NULL) + fwr = start_wrq_wr(&sc->sge.mgmtq, howmany(sizeof(*fwr), 16), &cookie); + if (fwr == NULL) return (ENOMEM); - fwr = wrtod(wr); bzero(fwr, sizeof (*fwr)); t4_mk_filtdelwr(ftid, fwr, sc->sge.fwq.abs_id); f->pending = 1; - t4_wrq_tx(sc, wr); + commit_wrq_wr(&sc->sge.mgmtq, fwr, &cookie); return (0); } @@ -8170,6 +8109,7 @@ t4_ioctl(struct cdev *dev, unsigned long /* MAC stats */ t4_clr_port_stats(sc, pi->tx_chan); + pi->tx_parse_error = 0; if (pi->flags & PORT_INIT_DONE) { struct sge_rxq *rxq; @@ -8192,24 +8132,24 @@ t4_ioctl(struct cdev *dev, unsigned long txq->imm_wrs = 0; txq->sgl_wrs = 0; txq->txpkt_wrs = 0; - txq->txpkts_wrs = 0; - txq->txpkts_pkts = 0; - txq->br->br_drops = 0; - txq->no_dmamap = 0; - txq->no_desc = 0; + txq->txpkts0_wrs = 0; + txq->txpkts1_wrs = 0; + txq->txpkts0_pkts = 0; + txq->txpkts1_pkts = 0; + mp_ring_reset_stats(txq->r); } #ifdef TCP_OFFLOAD /* nothing to clear for each ofld_rxq */ for_each_ofld_txq(pi, i, wrq) { - wrq->tx_wrs = 0; - wrq->no_desc = 0; + wrq->tx_wrs_direct = 0; + wrq->tx_wrs_copied = 0; } #endif wrq = &sc->sge.ctrlq[pi->port_id]; - wrq->tx_wrs = 0; - wrq->no_desc = 0; + wrq->tx_wrs_direct = 0; + wrq->tx_wrs_copied = 0; } break; } Added: head/sys/dev/cxgbe/t4_mp_ring.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/cxgbe/t4_mp_ring.c Wed Dec 31 23:19:16 2014 (r276485) @@ -0,0 +1,364 @@ +/*- + * Copyright (c) 2014 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include + +#include "t4_mp_ring.h" + +union ring_state { + struct { + uint16_t pidx_head; + uint16_t pidx_tail; + uint16_t cidx; + uint16_t flags; + }; + uint64_t state; +}; + +enum { + IDLE = 0, /* consumer ran to completion, nothing more to do. */ + BUSY, /* consumer is running already, or will be shortly. */ + STALLED, /* consumer stopped due to lack of resources. */ + ABDICATED, /* consumer stopped even though there was work to be + done because it wants another thread to take over. */ +}; + +static inline uint16_t +space_available(struct mp_ring *r, union ring_state s) +{ + uint16_t x = r->size - 1; + + if (s.cidx == s.pidx_head) + return (x); + else if (s.cidx > s.pidx_head) + return (s.cidx - s.pidx_head - 1); + else + return (x - s.pidx_head + s.cidx); +} + +static inline uint16_t +increment_idx(struct mp_ring *r, uint16_t idx, uint16_t n) +{ + int x = r->size - idx; + + MPASS(x > 0); + return (x > n ? idx + n : n - x); +} + +/* Consumer is about to update the ring's state to s */ +static inline uint16_t +state_to_flags(union ring_state s, int abdicate) +{ + + if (s.cidx == s.pidx_tail) + return (IDLE); + else if (abdicate && s.pidx_tail != s.pidx_head) + return (ABDICATED); + + return (BUSY); +} + +/* + * Caller passes in a state, with a guarantee that there is work to do and that + * all items up to the pidx_tail in the state are visible. + */ +static void +drain_ring(struct mp_ring *r, union ring_state os, uint16_t prev, int budget) +{ + union ring_state ns; + int n, pending, total; + uint16_t cidx = os.cidx; + uint16_t pidx = os.pidx_tail; + + MPASS(os.flags == BUSY); + MPASS(cidx != pidx); + + if (prev == IDLE) + counter_u64_add(r->starts, 1); + pending = 0; + total = 0; + + while (cidx != pidx) { + + /* Items from cidx to pidx are available for consumption. */ + n = r->drain(r, cidx, pidx); + if (n == 0) { + critical_enter(); + do { + os.state = ns.state = r->state; + ns.cidx = cidx; + ns.flags = STALLED; + } while (atomic_cmpset_64(&r->state, os.state, + ns.state) == 0); + critical_exit(); + if (prev != STALLED) + counter_u64_add(r->stalls, 1); + else if (total > 0) { + counter_u64_add(r->restarts, 1); + counter_u64_add(r->stalls, 1); + } + break; + } + cidx = increment_idx(r, cidx, n); + pending += n; + total += n; + + /* + * We update the cidx only if we've caught up with the pidx, the + * real cidx is getting too far ahead of the one visible to + * everyone else, or we have exceeded our budget. + */ + if (cidx != pidx && pending < 64 && total < budget) + continue; + critical_enter(); + do { + os.state = ns.state = r->state; + ns.cidx = cidx; + ns.flags = state_to_flags(ns, total >= budget); + } while (atomic_cmpset_acq_64(&r->state, os.state, ns.state) == 0); + critical_exit(); + + if (ns.flags == ABDICATED) + counter_u64_add(r->abdications, 1); + if (ns.flags != BUSY) { + /* Wrong loop exit if we're going to stall. */ + MPASS(ns.flags != STALLED); + if (prev == STALLED) { + MPASS(total > 0); + counter_u64_add(r->restarts, 1); + } + break; + } + + /* + * The acquire style atomic above guarantees visibility of items + * associated with any pidx change that we notice here. + */ + pidx = ns.pidx_tail; + pending = 0; + } +} + +int +mp_ring_alloc(struct mp_ring **pr, int size, void *cookie, ring_drain_t drain, + ring_can_drain_t can_drain, struct malloc_type *mt, int flags) +{ + struct mp_ring *r; + + /* All idx are 16b so size can be 65536 at most */ + if (pr == NULL || size < 2 || size > 65536 || drain == NULL || + can_drain == NULL) + return (EINVAL); + *pr = NULL; + flags &= M_NOWAIT | M_WAITOK; + MPASS(flags != 0); + + r = malloc(__offsetof(struct mp_ring, items[size]), mt, flags | M_ZERO); + if (r == NULL) + return (ENOMEM); + r->size = size; + r->cookie = cookie; + r->mt = mt; + r->drain = drain; + r->can_drain = can_drain; + r->enqueues = counter_u64_alloc(flags); + r->drops = counter_u64_alloc(flags); + r->starts = counter_u64_alloc(flags); + r->stalls = counter_u64_alloc(flags); + r->restarts = counter_u64_alloc(flags); + r->abdications = counter_u64_alloc(flags); + if (r->enqueues == NULL || r->drops == NULL || r->starts == NULL || + r->stalls == NULL || r->restarts == NULL || + r->abdications == NULL) { + mp_ring_free(r); + return (ENOMEM); + } + + *pr = r; + return (0); +} + +void + +mp_ring_free(struct mp_ring *r) +{ + + if (r == NULL) + return; + + if (r->enqueues != NULL) + counter_u64_free(r->enqueues); + if (r->drops != NULL) + counter_u64_free(r->drops); + if (r->starts != NULL) + counter_u64_free(r->starts); + if (r->stalls != NULL) + counter_u64_free(r->stalls); + if (r->restarts != NULL) + counter_u64_free(r->restarts); + if (r->abdications != NULL) + counter_u64_free(r->abdications); + + free(r, r->mt); +} + +/* + * Enqueue n items and maybe drain the ring for some time. + * + * Returns an errno. + */ +int +mp_ring_enqueue(struct mp_ring *r, void **items, int n, int budget) +{ + union ring_state os, ns; + uint16_t pidx_start, pidx_stop; + int i; + + MPASS(items != NULL); + MPASS(n > 0); + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Wed Dec 31 23:26:05 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3D95729E; Wed, 31 Dec 2014 23:26:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 267502ADE; Wed, 31 Dec 2014 23:26:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBVNQ5jl035871; Wed, 31 Dec 2014 23:26:05 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBVNPcEh035384; Wed, 31 Dec 2014 23:25:38 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201412312325.sBVNPcEh035384@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 31 Dec 2014 23:25:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276486 - in stable/10: cddl/usr.bin/sgsmsg cddl/usr.bin/zinject cddl/usr.bin/zlook cddl/usr.bin/ztest cddl/usr.sbin/zhack contrib/libucl contrib/libucl/doc contrib/libucl/tests contrib... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Dec 2014 23:26:05 -0000 Author: ngie Date: Wed Dec 31 23:25:37 2014 New Revision: 276486 URL: https://svnweb.freebsd.org/changeset/base/276486 Log: MFC r264400,r265836: r264400: NO_MAN= has been deprecated in favor of MAN= for some time, go ahead and finish the job. ncurses is now the only Makefile in the tree that uses it since it wasn't a simple mechanical change, and will be addressed in a future commit. r265836: Remove last two NO_MAN= in the tree. In both of these cases, MAN= is what is needed. Modified: stable/10/cddl/usr.bin/sgsmsg/Makefile stable/10/cddl/usr.bin/zinject/Makefile stable/10/cddl/usr.bin/zlook/Makefile stable/10/cddl/usr.bin/ztest/Makefile stable/10/cddl/usr.sbin/zhack/Makefile stable/10/contrib/libucl/Makefile.am stable/10/contrib/libucl/doc/Makefile.am stable/10/contrib/libucl/tests/Makefile.am stable/10/contrib/libucl/utils/Makefile.am stable/10/contrib/ofed/usr.bin/ibsendtrap/Makefile stable/10/contrib/ofed/usr.lib/libsdp/Makefile stable/10/crypto/heimdal/appl/Makefile.am stable/10/crypto/heimdal/appl/ftp/Makefile.am stable/10/crypto/heimdal/appl/ftp/common/Makefile.am stable/10/crypto/heimdal/lib/Makefile.am stable/10/crypto/heimdal/lib/ipc/Makefile.am stable/10/games/fortune/unstr/Makefile stable/10/games/ppt/Makefile stable/10/games/primes/Makefile stable/10/gnu/usr.bin/cc/c++/Makefile stable/10/gnu/usr.bin/cc/c++filt/Makefile stable/10/gnu/usr.bin/cc/cc1/Makefile stable/10/gnu/usr.bin/cc/cc1plus/Makefile stable/10/gnu/usr.bin/cc/collect2/Makefile stable/10/gnu/usr.bin/cc/protoize/Makefile stable/10/gnu/usr.bin/gdb/Makefile.inc stable/10/gnu/usr.bin/gdb/gdbtui/Makefile stable/10/gnu/usr.bin/groff/src/devices/grohtml/Makefile stable/10/gnu/usr.bin/groff/src/preproc/html/Makefile stable/10/kerberos5/libexec/digest-service/Makefile stable/10/kerberos5/libexec/ipropd-slave/Makefile stable/10/kerberos5/tools/asn1_compile/Makefile stable/10/kerberos5/tools/make-roken/Makefile stable/10/kerberos5/tools/slc/Makefile stable/10/kerberos5/usr.bin/hxtool/Makefile stable/10/kerberos5/usr.bin/ksu/Makefile stable/10/lib/libarchive/test/Makefile stable/10/lib/libauditd/Makefile stable/10/lib/libproc/Makefile stable/10/lib/libproc/test/t1-bkpt/Makefile stable/10/lib/libproc/test/t2-name2map/Makefile stable/10/lib/libproc/test/t3-name2sym/Makefile stable/10/lib/ncurses/form/Makefile stable/10/lib/ncurses/menu/Makefile stable/10/lib/ncurses/ncurses/Makefile stable/10/lib/ncurses/panel/Makefile stable/10/libexec/bootpd/bootpgw/Makefile stable/10/libexec/ulog-helper/Makefile stable/10/release/picobsd/tinyware/aps/Makefile stable/10/release/picobsd/tinyware/help/Makefile stable/10/release/picobsd/tinyware/msg/Makefile stable/10/release/picobsd/tinyware/ns/Makefile stable/10/release/picobsd/tinyware/oinit/Makefile stable/10/release/picobsd/tinyware/simple_httpd/Makefile stable/10/release/picobsd/tinyware/sps/Makefile stable/10/release/picobsd/tinyware/view/Makefile stable/10/release/picobsd/tinyware/vm/Makefile stable/10/rescue/rescue/Makefile stable/10/sbin/geom/Makefile stable/10/sbin/rtsol/Makefile stable/10/secure/lib/libcrypto/engines/lib4758cca/Makefile stable/10/share/examples/FreeBSD_version/Makefile stable/10/share/examples/find_interface/Makefile stable/10/share/examples/kld/cdev/test/Makefile stable/10/share/examples/kld/syscall/test/Makefile stable/10/share/examples/libvgl/Makefile stable/10/share/examples/perfmon/Makefile stable/10/share/examples/ppi/Makefile stable/10/share/mk/bsd.README stable/10/share/mk/bsd.test.mk stable/10/sys/boot/amd64/boot1.efi/Makefile stable/10/sys/boot/amd64/efi/Makefile stable/10/sys/boot/arm/at91/boot0/Makefile stable/10/sys/boot/arm/at91/boot0iic/Makefile stable/10/sys/boot/arm/at91/boot0spi/Makefile stable/10/sys/boot/arm/at91/boot2/Makefile stable/10/sys/boot/arm/at91/bootiic/Makefile stable/10/sys/boot/arm/at91/bootspi/Makefile stable/10/sys/boot/arm/at91/libat91/Makefile stable/10/sys/boot/arm/ixp425/boot2/Makefile stable/10/sys/boot/i386/boot0/Makefile stable/10/sys/boot/i386/btx/btx/Makefile stable/10/sys/boot/i386/btx/btxldr/Makefile stable/10/sys/boot/i386/btx/lib/Makefile stable/10/sys/boot/i386/cdboot/Makefile stable/10/sys/boot/i386/kgzldr/Makefile stable/10/sys/boot/i386/mbr/Makefile stable/10/sys/boot/i386/pmbr/Makefile stable/10/sys/boot/i386/zfsloader/Makefile stable/10/sys/boot/ia64/efi/Makefile stable/10/sys/boot/ia64/ski/Makefile stable/10/sys/boot/libstand32/Makefile stable/10/sys/boot/pc98/boot0.5/Makefile stable/10/sys/boot/pc98/boot0/Makefile stable/10/sys/boot/pc98/btx/btx/Makefile stable/10/sys/boot/pc98/btx/btxldr/Makefile stable/10/sys/boot/pc98/btx/lib/Makefile stable/10/sys/boot/pc98/cdboot/Makefile stable/10/sys/boot/pc98/kgzldr/Makefile stable/10/sys/boot/powerpc/boot1.chrp/Makefile stable/10/sys/boot/powerpc/uboot/Makefile stable/10/sys/boot/sparc64/boot1/Makefile stable/10/sys/boot/userboot/libstand/Makefile stable/10/sys/boot/userboot/test/Makefile stable/10/sys/boot/userboot/userboot/Makefile stable/10/sys/crypto/rijndael/Makefile stable/10/sys/dev/aic7xxx/aicasm/Makefile stable/10/sys/dev/patm/genrtab/Makefile stable/10/tests/sys/netinet/Makefile stable/10/tools/KSE/ksetest/Makefile stable/10/tools/KSE/rr/Makefile stable/10/tools/bsdbox/Makefile stable/10/tools/diag/dumpvfscache/Makefile stable/10/tools/diag/localeck/Makefile stable/10/tools/regression/acct/Makefile stable/10/tools/regression/aio/aiop/Makefile stable/10/tools/regression/aio/aiotest/Makefile stable/10/tools/regression/aio/kqueue/Makefile stable/10/tools/regression/aio/kqueue/lio/Makefile stable/10/tools/regression/audit/audit_pipe_ioctl/Makefile stable/10/tools/regression/doat/Makefile stable/10/tools/regression/environ/Makefile.envctl stable/10/tools/regression/environ/Makefile.retention stable/10/tools/regression/environ/Makefile.timings stable/10/tools/regression/ethernet/ethermulti/Makefile stable/10/tools/regression/execve/Makefile stable/10/tools/regression/fifo/fifo_create/Makefile stable/10/tools/regression/fifo/fifo_io/Makefile stable/10/tools/regression/fifo/fifo_misc/Makefile stable/10/tools/regression/fifo/fifo_open/Makefile stable/10/tools/regression/file/dup/Makefile stable/10/tools/regression/file/flock/Makefile stable/10/tools/regression/file/ftruncate/Makefile stable/10/tools/regression/file/newfileops_on_fork/Makefile stable/10/tools/regression/filemon/Makefile stable/10/tools/regression/fsx/Makefile stable/10/tools/regression/gaithrstress/Makefile stable/10/tools/regression/geom/ConfCmp/Makefile stable/10/tools/regression/geom/MdLoad/Makefile stable/10/tools/regression/include/stdatomic/Makefile stable/10/tools/regression/include/tgmath/Makefile stable/10/tools/regression/kgssapi/Makefile stable/10/tools/regression/kqueue/Makefile stable/10/tools/regression/kthread/kld/Makefile stable/10/tools/regression/lib/libc/resolv/Makefile stable/10/tools/regression/mac/mac_bsdextended/Makefile stable/10/tools/regression/mlock/Makefile stable/10/tools/regression/mmap/Makefile stable/10/tools/regression/mqueue/mqtest1/Makefile stable/10/tools/regression/mqueue/mqtest2/Makefile stable/10/tools/regression/mqueue/mqtest3/Makefile stable/10/tools/regression/mqueue/mqtest4/Makefile stable/10/tools/regression/mqueue/mqtest5/Makefile stable/10/tools/regression/netinet/arphold/Makefile stable/10/tools/regression/netinet/ipbroadcast/Makefile stable/10/tools/regression/netinet/ipdivert/Makefile stable/10/tools/regression/netinet/ipmulticast/Makefile stable/10/tools/regression/netinet/ipsockopt/Makefile stable/10/tools/regression/netinet/msocket/Makefile stable/10/tools/regression/netinet/msocket_ifnet_remove/Makefile stable/10/tools/regression/netinet/rawconnect/Makefile stable/10/tools/regression/netinet/tcpconnect/Makefile stable/10/tools/regression/netinet/tcpdrop/Makefile stable/10/tools/regression/netinet/tcpfullwindowrst/Makefile stable/10/tools/regression/netinet/tcpsockclosebeforeaccept/Makefile stable/10/tools/regression/netinet/tcpsocktimewait/Makefile stable/10/tools/regression/netinet/tcpstream/Makefile stable/10/tools/regression/netinet/udpconnectjail/Makefile stable/10/tools/regression/netinet/udpzerobyte/Makefile stable/10/tools/regression/netinet6/icmp6_filter/Makefile stable/10/tools/regression/netinet6/inet6_rth/Makefile stable/10/tools/regression/netinet6/ip6_sockets/Makefile stable/10/tools/regression/nfsmmap/test1/Makefile stable/10/tools/regression/nfsmmap/test2/Makefile stable/10/tools/regression/p1003_1b/Makefile stable/10/tools/regression/pipe/Makefile stable/10/tools/regression/posixsem/Makefile stable/10/tools/regression/posixsem2/Makefile stable/10/tools/regression/posixshm/Makefile stable/10/tools/regression/pthread/cv_cancel1/Makefile stable/10/tools/regression/pthread/mutex_isowned_np/Makefile stable/10/tools/regression/rpcsec_gss/Makefile stable/10/tools/regression/security/access/Makefile stable/10/tools/regression/security/cap_test/Makefile stable/10/tools/regression/security/open_to_operation/Makefile stable/10/tools/regression/security/proc_to_proc/Makefile stable/10/tools/regression/sigqueue/sigqtest1/Makefile stable/10/tools/regression/sigqueue/sigqtest2/Makefile stable/10/tools/regression/sockets/accept_fd_leak/Makefile stable/10/tools/regression/sockets/accf_data_attach/Makefile stable/10/tools/regression/sockets/fstat/Makefile stable/10/tools/regression/sockets/kqueue/Makefile stable/10/tools/regression/sockets/listen_backlog/Makefile stable/10/tools/regression/sockets/listenclose/Makefile stable/10/tools/regression/sockets/pr_atomic/Makefile stable/10/tools/regression/sockets/reconnect/Makefile stable/10/tools/regression/sockets/rtsocket/Makefile stable/10/tools/regression/sockets/sblock/Makefile stable/10/tools/regression/sockets/sendfile/Makefile stable/10/tools/regression/sockets/shutdown/Makefile stable/10/tools/regression/sockets/sigpipe/Makefile stable/10/tools/regression/sockets/so_setfib/Makefile stable/10/tools/regression/sockets/socketpair/Makefile stable/10/tools/regression/sockets/unix_bindconnect/Makefile stable/10/tools/regression/sockets/unix_close_race/Makefile stable/10/tools/regression/sockets/unix_cmsg/Makefile stable/10/tools/regression/sockets/unix_gc/Makefile stable/10/tools/regression/sockets/unix_passfd/Makefile stable/10/tools/regression/sockets/unix_sendtorace/Makefile stable/10/tools/regression/sockets/unix_socket/Makefile stable/10/tools/regression/sockets/unix_sorflush/Makefile stable/10/tools/regression/sockets/zerosend/Makefile stable/10/tools/regression/sysvmsg/Makefile stable/10/tools/regression/sysvsem/Makefile stable/10/tools/regression/sysvshm/Makefile stable/10/tools/regression/tls/ttls1/Makefile stable/10/tools/regression/tls/ttls2/Makefile stable/10/tools/regression/tls/ttls4/Makefile stable/10/tools/regression/tmpfs/Makefile stable/10/tools/regression/ufs/uprintf/Makefile stable/10/tools/test/auxinfo/Makefile stable/10/tools/test/iconv/gnu/Makefile stable/10/tools/test/iconv/posix/Makefile stable/10/tools/test/iconv/refgen/Makefile stable/10/tools/test/iconv/tablegen/Makefile stable/10/tools/test/malloc/Makefile stable/10/tools/test/netfibs/Makefile stable/10/tools/test/ppsapi/Makefile stable/10/tools/test/ptrace/Makefile stable/10/tools/test/upsdl/Makefile stable/10/tools/tools/aac/Makefile stable/10/tools/tools/ath/Makefile.inc stable/10/tools/tools/ath/ath_ee_9287_print/Makefile stable/10/tools/tools/ath/ath_ee_9300_print/Makefile stable/10/tools/tools/ath/ath_ee_v14_print/Makefile stable/10/tools/tools/ath/ath_ee_v4k_print/Makefile stable/10/tools/tools/ath/athstats/Makefile stable/10/tools/tools/atsectl/Makefile stable/10/tools/tools/bootparttest/Makefile stable/10/tools/tools/cfi/Makefile stable/10/tools/tools/cxgbetool/Makefile stable/10/tools/tools/cxgbtool/Makefile stable/10/tools/tools/drm/radeon/mkregtable/Makefile stable/10/tools/tools/find-sb/Makefile stable/10/tools/tools/gdb_regofs/Makefile stable/10/tools/tools/ifinfo/Makefile stable/10/tools/tools/ifpifa/Makefile stable/10/tools/tools/ipw/Makefile stable/10/tools/tools/iwi/Makefile stable/10/tools/tools/mfi/Makefile stable/10/tools/tools/mwl/mwldebug/Makefile stable/10/tools/tools/mwl/mwlstats/Makefile stable/10/tools/tools/ncpus/Makefile stable/10/tools/tools/net80211/stumbler/Makefile stable/10/tools/tools/net80211/w00t/Makefile.inc stable/10/tools/tools/net80211/wesside/dics/Makefile stable/10/tools/tools/net80211/wesside/udps/Makefile stable/10/tools/tools/net80211/wesside/wesside/Makefile stable/10/tools/tools/net80211/wlaninject/Makefile stable/10/tools/tools/net80211/wlanstats/Makefile stable/10/tools/tools/net80211/wlantxtime/Makefile stable/10/tools/tools/net80211/wlanwatch/Makefile stable/10/tools/tools/net80211/wlanwds/Makefile stable/10/tools/tools/netmap/Makefile stable/10/tools/tools/netrate/http/Makefile stable/10/tools/tools/netrate/httpd/Makefile stable/10/tools/tools/netrate/juggle/Makefile stable/10/tools/tools/netrate/netblast/Makefile stable/10/tools/tools/netrate/netreceive/Makefile stable/10/tools/tools/netrate/netsend/Makefile stable/10/tools/tools/netrate/tcpconnect/Makefile stable/10/tools/tools/netrate/tcpp/Makefile stable/10/tools/tools/netrate/tcpreceive/Makefile stable/10/tools/tools/npe/npestats/Makefile stable/10/tools/tools/nxge/Makefile stable/10/tools/tools/pciroms/Makefile stable/10/tools/tools/pirtool/Makefile stable/10/tools/tools/syscall_timing/Makefile stable/10/tools/tools/tionxcl/Makefile stable/10/tools/tools/umastat/Makefile stable/10/tools/tools/vxge/Makefile stable/10/tools/tools/wtap/vis_map/Makefile stable/10/tools/tools/wtap/wtap/Makefile stable/10/tools/tools/zfsboottest/Makefile stable/10/usr.bin/bzip2recover/Makefile stable/10/usr.bin/clang/clang-tblgen/Makefile stable/10/usr.bin/clang/llvm-mc/Makefile stable/10/usr.bin/clang/llvm-objdump/Makefile stable/10/usr.bin/clang/llvm-rtdyld/Makefile stable/10/usr.bin/clang/macho-dump/Makefile stable/10/usr.bin/cpio/test/Makefile stable/10/usr.bin/dirname/Makefile stable/10/usr.bin/locate/bigram/Makefile stable/10/usr.bin/locate/code/Makefile stable/10/usr.bin/mkcsmapper_static/Makefile stable/10/usr.bin/mkesdb_static/Makefile stable/10/usr.bin/svn/svn/Makefile stable/10/usr.bin/svn/svnadmin/Makefile stable/10/usr.bin/svn/svndumpfilter/Makefile stable/10/usr.bin/svn/svnlook/Makefile stable/10/usr.bin/svn/svnmucc/Makefile stable/10/usr.bin/svn/svnrdump/Makefile stable/10/usr.bin/svn/svnserve/Makefile stable/10/usr.bin/svn/svnsync/Makefile stable/10/usr.bin/svn/svnversion/Makefile stable/10/usr.bin/tar/test/Makefile stable/10/usr.bin/unexpand/Makefile stable/10/usr.bin/uudecode/Makefile stable/10/usr.bin/vgrind/RETEST/Makefile stable/10/usr.bin/xlint/lint2/Makefile stable/10/usr.sbin/bhyvectl/Makefile stable/10/usr.sbin/bootparamd/callbootd/Makefile stable/10/usr.sbin/bsdinstall/distextract/Makefile stable/10/usr.sbin/bsdinstall/distfetch/Makefile stable/10/usr.sbin/bsdinstall/scripts/Makefile stable/10/usr.sbin/crunch/examples/Makefile stable/10/usr.sbin/ctm/ctm_dequeue/Makefile stable/10/usr.sbin/ctm/ctm_smail/Makefile stable/10/usr.sbin/ctm/mkCTM/Makefile stable/10/usr.sbin/fifolog/fifolog_reader/Makefile stable/10/usr.sbin/fifolog/fifolog_writer/Makefile stable/10/usr.sbin/lpr/filters.ru/koi2855/Makefile stable/10/usr.sbin/lpr/filters.ru/koi2alt/Makefile stable/10/usr.sbin/lpr/filters/Makefile stable/10/usr.sbin/ntp/ntp-keygen/Makefile stable/10/usr.sbin/ntp/ntpd/Makefile stable/10/usr.sbin/ntp/ntpdate/Makefile stable/10/usr.sbin/ntp/ntpdc/Makefile stable/10/usr.sbin/ntp/ntpq/Makefile stable/10/usr.sbin/ntp/ntptime/Makefile stable/10/usr.sbin/portsnap/make_index/Makefile stable/10/usr.sbin/portsnap/phttpget/Makefile stable/10/usr.sbin/rpc.ypupdated/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/cddl/usr.bin/sgsmsg/Makefile ============================================================================== --- stable/10/cddl/usr.bin/sgsmsg/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/cddl/usr.bin/sgsmsg/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ # This program is required as a bootstrap tool for 'make buildworld' PROG= sgsmsg -NO_MAN= +MAN= SRCS= avl.c sgsmsg.c string_table.c findprime.c WARNS?= 0 Modified: stable/10/cddl/usr.bin/zinject/Makefile ============================================================================== --- stable/10/cddl/usr.bin/zinject/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/cddl/usr.bin/zinject/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -4,7 +4,7 @@ PROG= zinject SRCS= zinject.c translate.c -NO_MAN= +MAN= WARNS?= 0 CFLAGS+= -I${.CURDIR}/../../../sys/cddl/compat/opensolaris Modified: stable/10/cddl/usr.bin/zlook/Makefile ============================================================================== --- stable/10/cddl/usr.bin/zlook/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/cddl/usr.bin/zlook/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ .PATH: ${.CURDIR}/../../contrib/opensolaris/cmd/zlook PROG= zlook -NO_MAN= +MAN= WARNS?= 0 CFLAGS+= -I${.CURDIR}/../../../sys/cddl/compat/opensolaris Modified: stable/10/cddl/usr.bin/ztest/Makefile ============================================================================== --- stable/10/cddl/usr.bin/ztest/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/cddl/usr.bin/ztest/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ .PATH: ${.CURDIR}/../..//contrib/opensolaris/cmd/ztest PROG= ztest -NO_MAN= +MAN= WARNS?= 0 CFLAGS+= -I${.CURDIR}/../../../sys/cddl/compat/opensolaris Modified: stable/10/cddl/usr.sbin/zhack/Makefile ============================================================================== --- stable/10/cddl/usr.sbin/zhack/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/cddl/usr.sbin/zhack/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ .PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/cmd/zhack PROG= zhack -NO_MAN= +MAN= WARNS?= 0 CSTD= c99 Modified: stable/10/contrib/libucl/Makefile.am ============================================================================== --- stable/10/contrib/libucl/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/contrib/libucl/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -4,4 +4,4 @@ EXTRA_DIST = uthash README.md pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libucl.pc -SUBDIRS = src tests utils doc \ No newline at end of file +SUBDIRS = src tests utils doc Modified: stable/10/contrib/libucl/doc/Makefile.am ============================================================================== --- stable/10/contrib/libucl/doc/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/contrib/libucl/doc/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -5,4 +5,4 @@ dist_man_MANS = libucl.3 gen-man: @PANDOC@ tail -n +$$(grep -n '# Synopsis' api.md | cut -d':' -f1) api.md | \ cat pandoc.template - | sed -e 's/^# \(.*\)/# \U\1/' | \ - @PANDOC@ -s -f markdown -t man -o libucl.3 \ No newline at end of file + @PANDOC@ -s -f markdown -t man -o libucl.3 Modified: stable/10/contrib/libucl/tests/Makefile.am ============================================================================== --- stable/10/contrib/libucl/tests/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/contrib/libucl/tests/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -30,4 +30,4 @@ test_schema_SOURCES = test_schema.c test_schema_LDADD = $(common_test_ldadd) test_schema_CFLAGS = $(common_test_cflags) -check_PROGRAMS = test_basic test_speed test_generate test_schema \ No newline at end of file +check_PROGRAMS = test_basic test_speed test_generate test_schema Modified: stable/10/contrib/libucl/utils/Makefile.am ============================================================================== --- stable/10/contrib/libucl/utils/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/contrib/libucl/utils/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -16,4 +16,4 @@ UTL = ucl_chargen ucl_objdump else UTL = endif -bin_PROGRAMS = $(UTL) \ No newline at end of file +bin_PROGRAMS = $(UTL) Modified: stable/10/contrib/ofed/usr.bin/ibsendtrap/Makefile ============================================================================== --- stable/10/contrib/ofed/usr.bin/ibsendtrap/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/contrib/ofed/usr.bin/ibsendtrap/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -7,7 +7,7 @@ PROG= ibsendtrap SRCS= ibsendtrap.c ibdiag_common.c LDADD= -libumad -libcommon -libmad CFLAGS+= -I${DIAGPATH}/include -NO_MAN= true +MAN= WARNS?= 1 Modified: stable/10/contrib/ofed/usr.lib/libsdp/Makefile ============================================================================== --- stable/10/contrib/ofed/usr.lib/libsdp/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/contrib/ofed/usr.lib/libsdp/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -11,7 +11,7 @@ SDPDIR= ${.CURDIR}/../../libsdp/src LIB= ibsdp SHLIB_MAJOR= 1 NO_PROFILE= -NO_MAN= +MAN= SRCS= log.c match.c port.c config_parser.c config_scanner.c Modified: stable/10/crypto/heimdal/appl/Makefile.am ============================================================================== --- stable/10/crypto/heimdal/appl/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/crypto/heimdal/appl/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -26,4 +26,4 @@ SUBDIRS = \ kf \ $(dir_dce) -EXTRA_DIST = NTMakefile \ No newline at end of file +EXTRA_DIST = NTMakefile Modified: stable/10/crypto/heimdal/appl/ftp/Makefile.am ============================================================================== --- stable/10/crypto/heimdal/appl/ftp/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/crypto/heimdal/appl/ftp/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -4,4 +4,4 @@ include $(top_srcdir)/Makefile.am.common SUBDIRS = common ftp ftpd -EXTRA_DIST = NTMakefile \ No newline at end of file +EXTRA_DIST = NTMakefile Modified: stable/10/crypto/heimdal/appl/ftp/common/Makefile.am ============================================================================== --- stable/10/crypto/heimdal/appl/ftp/common/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/crypto/heimdal/appl/ftp/common/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -11,4 +11,4 @@ libcommon_a_SOURCES = \ buffer.c \ common.h -EXTRA_DIST = NTMakefile \ No newline at end of file +EXTRA_DIST = NTMakefile Modified: stable/10/crypto/heimdal/lib/Makefile.am ============================================================================== --- stable/10/crypto/heimdal/lib/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/crypto/heimdal/lib/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -42,4 +42,4 @@ SUBDIRS = \ $(dir_otp) \ $(dir_dce) -EXTRA_DIST = NTMakefile heimdal \ No newline at end of file +EXTRA_DIST = NTMakefile heimdal Modified: stable/10/crypto/heimdal/lib/ipc/Makefile.am ============================================================================== --- stable/10/crypto/heimdal/lib/ipc/Makefile.am Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/crypto/heimdal/lib/ipc/Makefile.am Wed Dec 31 23:25:37 2014 (r276486) @@ -64,4 +64,4 @@ CLEANFILES = $(built_ipcc) $(built_ipcs) $(srcdir)/client.c: $(built_ipcc) $(srcdir)/server.c: $(built_ipcs) -endif \ No newline at end of file +endif Modified: stable/10/games/fortune/unstr/Makefile ============================================================================== --- stable/10/games/fortune/unstr/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/games/fortune/unstr/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # $FreeBSD$ PROG= unstr -NO_MAN= +MAN= CFLAGS+= -I${.CURDIR}/../strfile .include Modified: stable/10/games/ppt/Makefile ============================================================================== --- stable/10/games/ppt/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/games/ppt/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # $FreeBSD$ PROG= ppt -NO_MAN= +MAN= .include Modified: stable/10/games/primes/Makefile ============================================================================== --- stable/10/games/primes/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/games/primes/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG= primes SRCS= pattern.c pr_tbl.c primes.c -NO_MAN= +MAN= DPADD= ${LIBM} LDADD= -lm Modified: stable/10/gnu/usr.bin/cc/c++/Makefile ============================================================================== --- stable/10/gnu/usr.bin/cc/c++/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/cc/c++/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ -NO_MAN= +MAN= .include .include "../Makefile.inc" Modified: stable/10/gnu/usr.bin/cc/c++filt/Makefile ============================================================================== --- stable/10/gnu/usr.bin/cc/c++filt/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/cc/c++filt/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ -NO_MAN= +MAN= .include .include "../Makefile.inc" Modified: stable/10/gnu/usr.bin/cc/cc1/Makefile ============================================================================== --- stable/10/gnu/usr.bin/cc/cc1/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/cc/cc1/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ -NO_MAN= +MAN= .include .include "../Makefile.inc" Modified: stable/10/gnu/usr.bin/cc/cc1plus/Makefile ============================================================================== --- stable/10/gnu/usr.bin/cc/cc1plus/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/cc/cc1plus/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ -NO_MAN= +MAN= .include .include "../Makefile.inc" Modified: stable/10/gnu/usr.bin/cc/collect2/Makefile ============================================================================== --- stable/10/gnu/usr.bin/cc/collect2/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/cc/collect2/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -6,6 +6,6 @@ PROG= collect2 SRCS= collect2.c tlink.c version.c -NO_MAN= +MAN= .include Modified: stable/10/gnu/usr.bin/cc/protoize/Makefile ============================================================================== --- stable/10/gnu/usr.bin/cc/protoize/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/cc/protoize/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ .PATH: ${.CURDIR}/../cc_tools ${GCCDIR} PROG= protoize -NO_MAN= +MAN= # things are rather hard-coded, we work around that here CFLAGS+= -DDEFAULT_TARGET_VERSION=\"\" Modified: stable/10/gnu/usr.bin/gdb/Makefile.inc ============================================================================== --- stable/10/gnu/usr.bin/gdb/Makefile.inc Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/gdb/Makefile.inc Wed Dec 31 23:25:37 2014 (r276486) @@ -52,7 +52,7 @@ GENSRCS+= nm.h tm.h .if defined(GDB_CROSS_DEBUGGER) CFLAGS+= -DCROSS_DEBUGGER -I${BMAKE_ROOT}/../.. GDB_SUFFIX= -${TARGET_ARCH} -NO_MAN= +MAN= .endif .include "${TARGET_SUBDIR}/Makefile" Modified: stable/10/gnu/usr.bin/gdb/gdbtui/Makefile ============================================================================== --- stable/10/gnu/usr.bin/gdb/gdbtui/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/gdb/gdbtui/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ PROG= gdbtui${GDB_SUFFIX} SRCS= tui-main.c -NO_MAN= +MAN= BULIBS= ${OBJ_BU}/libbfd/libbfd.a ${OBJ_BU}/libopcodes/libopcodes.a \ ${OBJ_BU}/libiberty/libiberty.a Modified: stable/10/gnu/usr.bin/groff/src/devices/grohtml/Makefile ============================================================================== --- stable/10/gnu/usr.bin/groff/src/devices/grohtml/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/groff/src/devices/grohtml/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -4,6 +4,6 @@ PROG_CXX= post-grohtml SRCS= post-html.cpp html-table.cpp html-text.cpp output.cpp DPADD= ${LIBDRIVER} ${LIBGROFF} ${LIBM} LDADD= ${LIBDRIVER} ${LIBGROFF} -lm -NO_MAN= +MAN= .include Modified: stable/10/gnu/usr.bin/groff/src/preproc/html/Makefile ============================================================================== --- stable/10/gnu/usr.bin/groff/src/preproc/html/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/gnu/usr.bin/groff/src/preproc/html/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -4,6 +4,6 @@ PROG_CXX= pre-grohtml SRCS= pre-html.cpp pushback.cpp DPADD= ${LIBGROFF} LDADD= ${LIBGROFF} -NO_MAN= +MAN= .include Modified: stable/10/kerberos5/libexec/digest-service/Makefile ============================================================================== --- stable/10/kerberos5/libexec/digest-service/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/kerberos5/libexec/digest-service/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= digest-service -NO_MAN= 1 +MAN= CFLAGS+= -I${KRB5DIR}/kdc \ -I${KRB5DIR}/lib/asn1 \ -I${KRB5DIR}/lib/krb5 \ Modified: stable/10/kerberos5/libexec/ipropd-slave/Makefile ============================================================================== --- stable/10/kerberos5/libexec/ipropd-slave/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/kerberos5/libexec/ipropd-slave/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= ipropd-slave -NO_MAN= +MAN= SRCS= ipropd_common.c ipropd_slave.c kadm5_err.h CFLAGS+=-I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken \ -I. ${LDAPCFLAGS} Modified: stable/10/kerberos5/tools/asn1_compile/Makefile ============================================================================== --- stable/10/kerberos5/tools/asn1_compile/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/kerberos5/tools/asn1_compile/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= asn1_compile -NO_MAN= +MAN= LIBROKEN_A= ${.OBJDIR}/../../lib/libroken/libroken.a LDADD= ${LIBROKEN_A} ${LIBVERS} DPADD= ${LIBROKEN_A} ${LIBVERS} Modified: stable/10/kerberos5/tools/make-roken/Makefile ============================================================================== --- stable/10/kerberos5/tools/make-roken/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/kerberos5/tools/make-roken/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= make-roken -NO_MAN= +MAN= CLEANFILES= make-roken.c Modified: stable/10/kerberos5/tools/slc/Makefile ============================================================================== --- stable/10/kerberos5/tools/slc/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/kerberos5/tools/slc/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -4,7 +4,7 @@ PROG= slc LIBROKEN_A= ${.OBJDIR}/../../lib/libroken/libroken.a LDADD= ${LIBROKEN_A} ${LIBVERS} DPADD= ${LIBROKEN_A} ${LIBVERS} -NO_MAN= +MAN= SRCS= roken.h \ slc-gram.y \ Modified: stable/10/kerberos5/usr.bin/hxtool/Makefile ============================================================================== --- stable/10/kerberos5/usr.bin/hxtool/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/kerberos5/usr.bin/hxtool/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= hxtool -NO_MAN= 1 +MAN= CFLAGS+= -I${KRB5DIR}/lib/hx509 \ -I${KRB5DIR}/lib/asn1 \ -I${KRB5DIR}/lib/roken \ Modified: stable/10/kerberos5/usr.bin/ksu/Makefile ============================================================================== --- stable/10/kerberos5/usr.bin/ksu/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/kerberos5/usr.bin/ksu/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ PROG= ksu BINMODE=4555 PRECIOUSPROG= .endif -NO_MAN= +MAN= SRCS= su.c CFLAGS+=-I${KRB5DIR}/lib/roken DPADD= ${LIBKAFS5} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \ Modified: stable/10/lib/libarchive/test/Makefile ============================================================================== --- stable/10/lib/libarchive/test/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/libarchive/test/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ LIBARCHIVEDIR= ${.CURDIR}/../../../contrib/libarchive -NO_MAN=yes +MAN= PROG=libarchive_test INTERNALPROG=yes # Don't install this; it's just for testing Modified: stable/10/lib/libauditd/Makefile ============================================================================== --- stable/10/lib/libauditd/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/libauditd/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -19,6 +19,6 @@ CFLAGS+= -I${OPENBSMDIR} -I${LIBBSMDIR} WARNS?= 3 -NO_MAN= +MAN= .include Modified: stable/10/lib/libproc/Makefile ============================================================================== --- stable/10/lib/libproc/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/libproc/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -27,6 +27,6 @@ CFLAGS+= -DNO_CXA_DEMANGLE SHLIB_MAJOR= 2 -WITHOUT_MAN= +MAN= .include Modified: stable/10/lib/libproc/test/t1-bkpt/Makefile ============================================================================== --- stable/10/lib/libproc/test/t1-bkpt/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/libproc/test/t1-bkpt/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -7,6 +7,6 @@ SRCS= t1-bkpt.c LDADD= -lproc -lelf -lrtld_db -lutil DPADD= ${LIBPROC} ${LIBELF} -WITHOUT_MAN= +MAN= .include Modified: stable/10/lib/libproc/test/t2-name2map/Makefile ============================================================================== --- stable/10/lib/libproc/test/t2-name2map/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/libproc/test/t2-name2map/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -7,6 +7,6 @@ SRCS= t2-name2map.c LDADD= -lproc -lelf -lrtld_db -lutil DPADD= ${LIBPROC} ${LIBELF} -WITHOUT_MAN= +MAN= .include Modified: stable/10/lib/libproc/test/t3-name2sym/Makefile ============================================================================== --- stable/10/lib/libproc/test/t3-name2sym/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/libproc/test/t3-name2sym/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -7,6 +7,6 @@ SRCS= t3-name2sym.c LDADD= -lproc -lelf -lrtld_db -lutil DPADD= ${LIBPROC} ${LIBELF} -WITHOUT_MAN= +MAN= .include Modified: stable/10/lib/ncurses/form/Makefile ============================================================================== --- stable/10/lib/ncurses/form/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/ncurses/form/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -157,7 +157,7 @@ MLINKS= form_cursor.3 pos_form_cursor.3 form_win.3 set_form_sub.3 \ form_win.3 set_form_win.3 .else -NO_MAN= +MAN= .endif .include Modified: stable/10/lib/ncurses/menu/Makefile ============================================================================== --- stable/10/lib/ncurses/menu/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/ncurses/menu/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -130,7 +130,7 @@ MLINKS= menu_attributes.3 menu_back.3 \ mitem_value.3 set_item_value.3 \ mitem_visible.3 item_visible.3 .else -NO_MAN= +MAN= .endif .include Modified: stable/10/lib/ncurses/ncurses/Makefile ============================================================================== --- stable/10/lib/ncurses/ncurses/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/ncurses/ncurses/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -536,12 +536,12 @@ MAN+= \ curs_ins_wstr.3 \ curs_printw.3 \ curs_scanw.3 -.endif - -CLEANFILES+= ${MAN:M*.3} MAN+= term.5 terminfo.5 MAN+= term.7 +.endif + +CLEANFILES+= ${MAN:M*.3} MLINKS= ncurses.3 curses.3 \ curs_addch.3 addch.3 \ Modified: stable/10/lib/ncurses/panel/Makefile ============================================================================== --- stable/10/lib/ncurses/panel/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/lib/ncurses/panel/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -58,7 +58,7 @@ MLINKS= panel.3 bottom_panel.3 \ panel.3 top_panel.3 \ panel.3 update_panels.3 .else -NO_MAN= +MAN= .endif .include Modified: stable/10/libexec/bootpd/bootpgw/Makefile ============================================================================== --- stable/10/libexec/bootpd/bootpgw/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/libexec/bootpd/bootpgw/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # $FreeBSD$ PROG= bootpgw -NO_MAN= +MAN= SRCS= bootpgw.c getif.c hwaddr.c report.c rtmsg.c SRCDIR= ${.CURDIR}/.. Modified: stable/10/libexec/ulog-helper/Makefile ============================================================================== --- stable/10/libexec/ulog-helper/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/libexec/ulog-helper/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG= ulog-helper BINOWN= root BINMODE=4555 -NO_MAN= +MAN= DPADD= ${LIBULOG} LDADD= -lulog Modified: stable/10/release/picobsd/tinyware/aps/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/aps/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/aps/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # PROG=ps SRCS+=main.c -NO_MAN= +MAN= .include Modified: stable/10/release/picobsd/tinyware/help/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/help/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/help/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # PROG=help SRCS+=help.c -NO_MAN= +MAN= .include Modified: stable/10/release/picobsd/tinyware/msg/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/msg/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/msg/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # PROG=msg SRCS= msg.c -NO_MAN= +MAN= .include Modified: stable/10/release/picobsd/tinyware/ns/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/ns/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/ns/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -4,6 +4,6 @@ PROG= ns SRCS= ns.c CFLAGS+= -DBRIDGING -NO_MAN= +MAN= .include Modified: stable/10/release/picobsd/tinyware/oinit/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/oinit/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/oinit/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -15,7 +15,7 @@ CFLAGS= -DSH_PATH=\"${SH_PATH}\" -DSH_N #LDADD= -lutil -ledit -ltermcap LDADD=-lutil -NO_MAN= +MAN= .include Modified: stable/10/release/picobsd/tinyware/simple_httpd/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/simple_httpd/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/simple_httpd/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # PROG=simple_httpd SRCS= simple_httpd.c -NO_MAN= +MAN= WARNS?=6 .include Modified: stable/10/release/picobsd/tinyware/sps/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/sps/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/sps/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # PROG=sps SRCS= sps.c -NO_MAN= +MAN= .include Modified: stable/10/release/picobsd/tinyware/view/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/view/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/view/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -4,6 +4,6 @@ PROG=view SRCS=view.c CFLAGS+=-I/usr/local/include LDADD+=-L/usr/local/lib -lpng -lvgl -lz -lm -NO_MAN= +MAN= .include Modified: stable/10/release/picobsd/tinyware/vm/Makefile ============================================================================== --- stable/10/release/picobsd/tinyware/vm/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/release/picobsd/tinyware/vm/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG=vm #CFLAGS+= SRCS= vm.c -NO_MAN= +MAN= .include Modified: stable/10/rescue/rescue/Makefile ============================================================================== --- stable/10/rescue/rescue/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/rescue/rescue/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ #$FreeBSD$ # @(#)Makefile 8.1 (Berkeley) 6/2/93 -NO_MAN= +MAN= .include MK_SSP= no Modified: stable/10/sbin/geom/Makefile ============================================================================== --- stable/10/sbin/geom/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sbin/geom/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -9,7 +9,7 @@ PROG= geom SRCS= geom.c geom_label.c geom_part.c subr.c -NO_MAN= +MAN= WARNS?= 2 CFLAGS+=-I${.CURDIR} -I${.CURDIR}/core -DSTATIC_GEOM_CLASSES Modified: stable/10/sbin/rtsol/Makefile ============================================================================== --- stable/10/sbin/rtsol/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sbin/rtsol/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -20,7 +20,7 @@ SRCDIR= ${.CURDIR}/../../usr.sbin/rtsold PROG= rtsol SRCS= rtsold.c rtsol.c if.c probe.c dump.c rtsock.c -NO_MAN= +MAN= WARNS?= 3 CFLAGS+= -DHAVE_ARC4RANDOM -DHAVE_POLL_H -DSMALL Modified: stable/10/secure/lib/libcrypto/engines/lib4758cca/Makefile ============================================================================== --- stable/10/secure/lib/libcrypto/engines/lib4758cca/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/secure/lib/libcrypto/engines/lib4758cca/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,6 +2,6 @@ SHLIB_NAME?= lib4758cca.so SRCS= e_4758cca.c -NO_MAN= # For now +MAN= .include Modified: stable/10/share/examples/FreeBSD_version/Makefile ============================================================================== --- stable/10/share/examples/FreeBSD_version/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/examples/FreeBSD_version/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= FreeBSD_version -NO_MAN= +MAN= install: Modified: stable/10/share/examples/find_interface/Makefile ============================================================================== --- stable/10/share/examples/find_interface/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/examples/find_interface/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ PROG= find_interface -NO_MAN= +MAN= .include Modified: stable/10/share/examples/kld/cdev/test/Makefile ============================================================================== --- stable/10/share/examples/kld/cdev/test/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/examples/kld/cdev/test/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -67,7 +67,7 @@ # $FreeBSD$ # PROG= testcdev -NO_MAN= +MAN= WARNS?= 5 MODSTAT= /sbin/kldstat Modified: stable/10/share/examples/kld/syscall/test/Makefile ============================================================================== --- stable/10/share/examples/kld/syscall/test/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/examples/kld/syscall/test/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ # $FreeBSD$ PROG= call -NO_MAN= +MAN= WARNS?= 5 .include Modified: stable/10/share/examples/libvgl/Makefile ============================================================================== --- stable/10/share/examples/libvgl/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/examples/libvgl/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= demo -NO_MAN= +MAN= DPADD= ${LIBVGL} LDADD= -lvgl Modified: stable/10/share/examples/perfmon/Makefile ============================================================================== --- stable/10/share/examples/perfmon/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/examples/perfmon/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= perfmon -NO_MAN= +MAN= install: Modified: stable/10/share/examples/ppi/Makefile ============================================================================== --- stable/10/share/examples/ppi/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/examples/ppi/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,6 +3,6 @@ # $FreeBSD$ PROG= ppilcd -NO_MAN= +MAN= .include Modified: stable/10/share/mk/bsd.README ============================================================================== --- stable/10/share/mk/bsd.README Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/mk/bsd.README Wed Dec 31 23:25:37 2014 (r276486) @@ -309,7 +309,7 @@ To build foo from foo.c with a manual pa If foo does not have a manual page at all, add the line: - NO_MAN= + MAN= If foo has multiple source files, add the line: Modified: stable/10/share/mk/bsd.test.mk ============================================================================== --- stable/10/share/mk/bsd.test.mk Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/share/mk/bsd.test.mk Wed Dec 31 23:25:37 2014 (r276486) @@ -62,8 +62,7 @@ SUBDIR+= ${ts} # it is rare for test cases to have man pages .if !defined(MAN) -WITHOUT_MAN=yes -.export WITHOUT_MAN +MAN= .endif # tell progs.mk we might want to install things Modified: stable/10/sys/boot/amd64/boot1.efi/Makefile ============================================================================== --- stable/10/sys/boot/amd64/boot1.efi/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/amd64/boot1.efi/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ -NO_MAN= +MAN= .include Modified: stable/10/sys/boot/amd64/efi/Makefile ============================================================================== --- stable/10/sys/boot/amd64/efi/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/amd64/efi/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ -NO_MAN= +MAN= .include Modified: stable/10/sys/boot/arm/at91/boot0/Makefile ============================================================================== --- stable/10/sys/boot/arm/at91/boot0/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/arm/at91/boot0/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ P=boot0 FILES=${P} SRCS=arm_init.S main.c -NO_MAN= +MAN= LDFLAGS=-e 0 -T ${.CURDIR}/linker.cfg OBJS+= ${SRCS:N*.h:R:S/$/.o/g} Modified: stable/10/sys/boot/arm/at91/boot0iic/Makefile ============================================================================== --- stable/10/sys/boot/arm/at91/boot0iic/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/arm/at91/boot0iic/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ P=boot0iic FILES=${P} SRCS=arm_init.S main.c -NO_MAN= +MAN= LDFLAGS=-e 0 -T ${.CURDIR}/../linker.cfg OBJS+= ${SRCS:N*.h:R:S/$/.o/g} Modified: stable/10/sys/boot/arm/at91/boot0spi/Makefile ============================================================================== --- stable/10/sys/boot/arm/at91/boot0spi/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/arm/at91/boot0spi/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ P=boot0spi FILES=${P} SRCS=arm_init.S main.c -NO_MAN= +MAN= LDFLAGS=-e 0 -T ${.CURDIR}/../linker.cfg OBJS+= ${SRCS:N*.h:R:S/$/.o/g} Modified: stable/10/sys/boot/arm/at91/boot2/Makefile ============================================================================== --- stable/10/sys/boot/arm/at91/boot2/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/arm/at91/boot2/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ P=boot2 FILES=${P} SRCS=arm_init.S boot2.c ${BOOT_FLAVOR:tl}_board.c -NO_MAN= +MAN= LDFLAGS=-e 0 -T ${.CURDIR}/../linker.cfg OBJS+= ${SRCS:N*.h:R:S/$/.o/g} Modified: stable/10/sys/boot/arm/at91/bootiic/Makefile ============================================================================== --- stable/10/sys/boot/arm/at91/bootiic/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/arm/at91/bootiic/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ P=bootiic FILES=${P} SRCS=arm_init.S main.c loader_prompt.c env_vars.c -NO_MAN= +MAN= LDFLAGS=-e 0 -T ${.CURDIR}/../linker.cfg OBJS+= ${SRCS:N*.h:R:S/$/.o/g} Modified: stable/10/sys/boot/arm/at91/bootspi/Makefile ============================================================================== --- stable/10/sys/boot/arm/at91/bootspi/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/arm/at91/bootspi/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -5,7 +5,7 @@ P=bootspi FILES=${P} SRCS=arm_init.S main.c loader_prompt.c env_vars.c ee.c -NO_MAN= +MAN= LDFLAGS=-e 0 -T ${.CURDIR}/../linker.cfg OBJS+= ${SRCS:N*.h:R:S/$/.o/g} Modified: stable/10/sys/boot/arm/at91/libat91/Makefile ============================================================================== --- stable/10/sys/boot/arm/at91/libat91/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/arm/at91/libat91/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -11,7 +11,7 @@ SRCS=${SOC}_lowlevel.c delay.c eeprom.c sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \ memset.c memcmp.c SRCS+=ashldi3.c divsi3.S -NO_MAN= +MAN= .if ${MK_TAG_LIST} != "no" CFLAGS += -I${.CURDIR}/.. -DSUPPORT_TAG_LIST Modified: stable/10/sys/boot/arm/ixp425/boot2/Makefile ============================================================================== --- stable/10/sys/boot/arm/ixp425/boot2/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/arm/ixp425/boot2/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -20,7 +20,7 @@ SRCS+=strlen.c ashldi3.c divsi3.S muldi3 .if ${MK_ARM_EABI} != "no" SRCS+=aeabi_unwind.c .endif -NO_MAN= +MAN= KERNPHYSADDR=0x180000 KERNVIRTADDR=${KERNPHYSADDR} Modified: stable/10/sys/boot/i386/boot0/Makefile ============================================================================== --- stable/10/sys/boot/i386/boot0/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/boot0/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG?= boot0 STRIP= BINMODE=${NOBINMODE} -NO_MAN= +MAN= SRCS= ${PROG}.S # Additional options that you can specify with make OPTS="..." Modified: stable/10/sys/boot/i386/btx/btx/Makefile ============================================================================== --- stable/10/sys/boot/i386/btx/btx/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/btx/btx/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ PROG= btx INTERNALPROG= -NO_MAN= +MAN= SRCS= btx.S .if defined(BOOT_BTX_NOHANG) Modified: stable/10/sys/boot/i386/btx/btxldr/Makefile ============================================================================== --- stable/10/sys/boot/i386/btx/btxldr/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/btx/btxldr/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ PROG= btxldr INTERNALPROG= -NO_MAN= +MAN= SRCS= btxldr.S CFLAGS+=-DLOADER_ADDRESS=${LOADER_ADDRESS} Modified: stable/10/sys/boot/i386/btx/lib/Makefile ============================================================================== --- stable/10/sys/boot/i386/btx/lib/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/btx/lib/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -2,7 +2,7 @@ PROG= crt0.o INTERNALPROG= -NO_MAN= +MAN= SRCS= btxcsu.S btxsys.s btxv86.s CFLAGS+=-I${.CURDIR}/../../common LDFLAGS=-Wl,-r Modified: stable/10/sys/boot/i386/cdboot/Makefile ============================================================================== --- stable/10/sys/boot/i386/cdboot/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/cdboot/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG= cdboot STRIP= BINMODE=${NOBINMODE} -NO_MAN= +MAN= SRCS= ${PROG}.S CFLAGS+=-I${.CURDIR}/../common Modified: stable/10/sys/boot/i386/kgzldr/Makefile ============================================================================== --- stable/10/sys/boot/i386/kgzldr/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/kgzldr/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -4,7 +4,7 @@ PROG= kgzldr.o STRIP= BINMODE=${LIBMODE} BINDIR= ${LIBDIR} -NO_MAN= +MAN= SRCS= start.s boot.c inflate.c lib.c crt.s sio.s CFLAGS= -Os Modified: stable/10/sys/boot/i386/mbr/Makefile ============================================================================== --- stable/10/sys/boot/i386/mbr/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/mbr/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG= mbr STRIP= BINMODE=${NOBINMODE} -NO_MAN= +MAN= SRCS= ${PROG}.s # MBR flags: 0x80 -- try packet interface (also known as EDD or LBA) Modified: stable/10/sys/boot/i386/pmbr/Makefile ============================================================================== --- stable/10/sys/boot/i386/pmbr/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/pmbr/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG= pmbr STRIP= BINMODE=${NOBINMODE} -NO_MAN= +MAN= SRCS= ${PROG}.s ORG= 0x600 Modified: stable/10/sys/boot/i386/zfsloader/Makefile ============================================================================== --- stable/10/sys/boot/i386/zfsloader/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/i386/zfsloader/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -6,7 +6,7 @@ LOADER= zfsloader NEWVERSWHAT= "ZFS enabled bootstrap loader" x86 LOADER_ZFS_SUPPORT=yes LOADER_ONLY= yes -NO_MAN= yes +MAN= .include "${.CURDIR}/../loader/Makefile" Modified: stable/10/sys/boot/ia64/efi/Makefile ============================================================================== --- stable/10/sys/boot/ia64/efi/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/ia64/efi/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ -NO_MAN= +MAN= .include MK_SSP= no Modified: stable/10/sys/boot/ia64/ski/Makefile ============================================================================== --- stable/10/sys/boot/ia64/ski/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/ia64/ski/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -1,6 +1,6 @@ # $FreeBSD$ -NO_MAN= +MAN= .include MK_SSP= no Modified: stable/10/sys/boot/libstand32/Makefile ============================================================================== --- stable/10/sys/boot/libstand32/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/libstand32/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -6,7 +6,7 @@ # quite large. # -NO_MAN= +MAN= .include MK_SSP= no Modified: stable/10/sys/boot/pc98/boot0.5/Makefile ============================================================================== --- stable/10/sys/boot/pc98/boot0.5/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/pc98/boot0.5/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG= ${BOOT}.out INTERNALPROG= FILES= ${BOOT} -NO_MAN= +MAN= SRCS= start.s boot.s boot0.5.s disk.s selector.s support.s syscons.s \ putssjis.s CLEANFILES= ${BOOT} ${BOOT}.bin Modified: stable/10/sys/boot/pc98/boot0/Makefile ============================================================================== --- stable/10/sys/boot/pc98/boot0/Makefile Wed Dec 31 23:19:16 2014 (r276485) +++ stable/10/sys/boot/pc98/boot0/Makefile Wed Dec 31 23:25:37 2014 (r276486) @@ -3,7 +3,7 @@ PROG= ${BOOT}.out INTERNALPROG= FILES= ${BOOT} -NO_MAN= +MAN= *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 01:43:01 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8254EFF7; Thu, 1 Jan 2015 01:43:01 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6C78764CC2; Thu, 1 Jan 2015 01:43:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t011h1EF001381; Thu, 1 Jan 2015 01:43:01 GMT (envelope-from bryanv@FreeBSD.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t011h1qs001380; Thu, 1 Jan 2015 01:43:01 GMT (envelope-from bryanv@FreeBSD.org) Message-Id: <201501010143.t011h1qs001380@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bryanv set sender to bryanv@FreeBSD.org using -f From: Bryan Venteicher Date: Thu, 1 Jan 2015 01:43:01 +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: r276487 - stable/10/sys/dev/virtio/block X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 01:43:01 -0000 Author: bryanv Date: Thu Jan 1 01:43:00 2015 New Revision: 276487 URL: https://svnweb.freebsd.org/changeset/base/276487 Log: MFC r275335: Cleanup and performance improvement of the virtio_blk driver - Add support for GEOM direct completion. Depending on the benchmark, this tends to give a ~30% improvement w.r.t IOPs and BW. - Remove an invariants check in the strategy routine. This assertion is caught later on by an existing panic. - Rename and resort various related functions to make more sense. Modified: stable/10/sys/dev/virtio/block/virtio_blk.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/virtio/block/virtio_blk.c ============================================================================== --- stable/10/sys/dev/virtio/block/virtio_blk.c Wed Dec 31 23:25:37 2014 (r276486) +++ stable/10/sys/dev/virtio/block/virtio_blk.c Thu Jan 1 01:43:00 2015 (r276487) @@ -58,7 +58,6 @@ struct vtblk_request { struct virtio_blk_outhdr vbr_hdr; struct bio *vbr_bp; uint8_t vbr_ack; - TAILQ_ENTRY(vtblk_request) vbr_link; }; @@ -132,53 +131,60 @@ static int vtblk_dump(void *, void *, vm static void vtblk_strategy(struct bio *); static void vtblk_negotiate_features(struct vtblk_softc *); +static void vtblk_setup_features(struct vtblk_softc *); static int vtblk_maximum_segments(struct vtblk_softc *, struct virtio_blk_config *); static int vtblk_alloc_virtqueue(struct vtblk_softc *); static void vtblk_resize_disk(struct vtblk_softc *, uint64_t); -static void vtblk_set_write_cache(struct vtblk_softc *, int); -static int vtblk_write_cache_enabled(struct vtblk_softc *sc, - struct virtio_blk_config *); -static int vtblk_write_cache_sysctl(SYSCTL_HANDLER_ARGS); static void vtblk_alloc_disk(struct vtblk_softc *, struct virtio_blk_config *); static void vtblk_create_disk(struct vtblk_softc *); -static int vtblk_quiesce(struct vtblk_softc *); -static void vtblk_startio(struct vtblk_softc *); -static struct vtblk_request * vtblk_bio_request(struct vtblk_softc *); -static int vtblk_execute_request(struct vtblk_softc *, +static int vtblk_request_prealloc(struct vtblk_softc *); +static void vtblk_request_free(struct vtblk_softc *); +static struct vtblk_request * + vtblk_request_dequeue(struct vtblk_softc *); +static void vtblk_request_enqueue(struct vtblk_softc *, struct vtblk_request *); +static struct vtblk_request * + vtblk_request_next_ready(struct vtblk_softc *); +static void vtblk_request_requeue_ready(struct vtblk_softc *, + struct vtblk_request *); +static struct vtblk_request * + vtblk_request_next(struct vtblk_softc *); +static struct vtblk_request * + vtblk_request_bio(struct vtblk_softc *); +static int vtblk_request_execute(struct vtblk_softc *, + struct vtblk_request *); +static int vtblk_request_error(struct vtblk_request *); -static void vtblk_vq_intr(void *); +static void vtblk_queue_completed(struct vtblk_softc *, + struct bio_queue *); +static void vtblk_done_completed(struct vtblk_softc *, + struct bio_queue *); +static void vtblk_drain_vq(struct vtblk_softc *, int); +static void vtblk_drain(struct vtblk_softc *); -static void vtblk_stop(struct vtblk_softc *); +static void vtblk_startio(struct vtblk_softc *); +static void vtblk_bio_done(struct vtblk_softc *, struct bio *, int); static void vtblk_read_config(struct vtblk_softc *, struct virtio_blk_config *); -static void vtblk_get_ident(struct vtblk_softc *); -static void vtblk_prepare_dump(struct vtblk_softc *); -static int vtblk_write_dump(struct vtblk_softc *, void *, off_t, size_t); -static int vtblk_flush_dump(struct vtblk_softc *); +static void vtblk_ident(struct vtblk_softc *); static int vtblk_poll_request(struct vtblk_softc *, struct vtblk_request *); +static int vtblk_quiesce(struct vtblk_softc *); +static void vtblk_vq_intr(void *); +static void vtblk_stop(struct vtblk_softc *); -static void vtblk_finish_completed(struct vtblk_softc *); -static void vtblk_drain_vq(struct vtblk_softc *, int); -static void vtblk_drain(struct vtblk_softc *); - -static int vtblk_alloc_requests(struct vtblk_softc *); -static void vtblk_free_requests(struct vtblk_softc *); -static struct vtblk_request * vtblk_dequeue_request(struct vtblk_softc *); -static void vtblk_enqueue_request(struct vtblk_softc *, - struct vtblk_request *); - -static struct vtblk_request * vtblk_dequeue_ready(struct vtblk_softc *); -static void vtblk_enqueue_ready(struct vtblk_softc *, - struct vtblk_request *); +static void vtblk_dump_prepare(struct vtblk_softc *); +static int vtblk_dump_write(struct vtblk_softc *, void *, off_t, size_t); +static int vtblk_dump_flush(struct vtblk_softc *); -static int vtblk_request_error(struct vtblk_request *); -static void vtblk_finish_bio(struct bio *, int); +static void vtblk_set_write_cache(struct vtblk_softc *, int); +static int vtblk_write_cache_enabled(struct vtblk_softc *sc, + struct virtio_blk_config *); +static int vtblk_write_cache_sysctl(SYSCTL_HANDLER_ARGS); static void vtblk_setup_sysctl(struct vtblk_softc *); static int vtblk_tunable_int(struct vtblk_softc *, const char *, int); @@ -288,30 +294,18 @@ vtblk_attach(device_t dev) struct virtio_blk_config blkcfg; int error; + virtio_set_feature_desc(dev, vtblk_feature_desc); + sc = device_get_softc(dev); sc->vtblk_dev = dev; - VTBLK_LOCK_INIT(sc, device_get_nameunit(dev)); - bioq_init(&sc->vtblk_bioq); TAILQ_INIT(&sc->vtblk_req_free); TAILQ_INIT(&sc->vtblk_req_ready); - virtio_set_feature_desc(dev, vtblk_feature_desc); - vtblk_negotiate_features(sc); - - if (virtio_with_feature(dev, VIRTIO_RING_F_INDIRECT_DESC)) - sc->vtblk_flags |= VTBLK_FLAG_INDIRECT; - if (virtio_with_feature(dev, VIRTIO_BLK_F_RO)) - sc->vtblk_flags |= VTBLK_FLAG_READONLY; - if (virtio_with_feature(dev, VIRTIO_BLK_F_BARRIER)) - sc->vtblk_flags |= VTBLK_FLAG_BARRIER; - if (virtio_with_feature(dev, VIRTIO_BLK_F_CONFIG_WCE)) - sc->vtblk_flags |= VTBLK_FLAG_WC_CONFIG; - vtblk_setup_sysctl(sc); + vtblk_setup_features(sc); - /* Get local copy of config. */ vtblk_read_config(sc, &blkcfg); /* @@ -350,7 +344,7 @@ vtblk_attach(device_t dev) goto fail; } - error = vtblk_alloc_requests(sc); + error = vtblk_request_prealloc(sc); if (error) { device_printf(dev, "cannot preallocate requests\n"); goto fail; @@ -517,14 +511,14 @@ vtblk_dump(void *arg, void *virtual, vm_ VTBLK_LOCK(sc); if ((sc->vtblk_flags & VTBLK_FLAG_DUMPING) == 0) { - vtblk_prepare_dump(sc); + vtblk_dump_prepare(sc); sc->vtblk_flags |= VTBLK_FLAG_DUMPING; } if (length > 0) - error = vtblk_write_dump(sc, virtual, offset, length); + error = vtblk_dump_write(sc, virtual, offset, length); else if (virtual == NULL && offset == 0) - error = vtblk_flush_dump(sc); + error = vtblk_dump_flush(sc); else { error = EINVAL; sc->vtblk_flags &= ~VTBLK_FLAG_DUMPING; @@ -541,7 +535,7 @@ vtblk_strategy(struct bio *bp) struct vtblk_softc *sc; if ((sc = bp->bio_disk->d_drv1) == NULL) { - vtblk_finish_bio(bp, EINVAL); + vtblk_bio_done(NULL, bp, EINVAL); return; } @@ -551,37 +545,21 @@ vtblk_strategy(struct bio *bp) */ if (sc->vtblk_flags & VTBLK_FLAG_READONLY && (bp->bio_cmd == BIO_WRITE || bp->bio_cmd == BIO_FLUSH)) { - vtblk_finish_bio(bp, EROFS); + vtblk_bio_done(sc, bp, EROFS); return; } -#ifdef INVARIANTS - /* - * Prevent read/write buffers spanning too many segments from - * getting into the queue. This should only trip if d_maxsize - * was incorrectly set. - */ - if (bp->bio_cmd == BIO_READ || bp->bio_cmd == BIO_WRITE) { - int nsegs, max_nsegs; - - nsegs = sglist_count(bp->bio_data, bp->bio_bcount); - max_nsegs = sc->vtblk_max_nsegs - VTBLK_MIN_SEGMENTS; + VTBLK_LOCK(sc); - KASSERT(nsegs <= max_nsegs, - ("%s: bio %p spanned too many segments: %d, max: %d", - __func__, bp, nsegs, max_nsegs)); + if (sc->vtblk_flags & VTBLK_FLAG_DETACH) { + VTBLK_UNLOCK(sc); + vtblk_bio_done(sc, bp, ENXIO); + return; } -#endif - VTBLK_LOCK(sc); - if (sc->vtblk_flags & VTBLK_FLAG_DETACH) - vtblk_finish_bio(bp, ENXIO); - else { - bioq_insert_tail(&sc->vtblk_bioq, bp); + bioq_insert_tail(&sc->vtblk_bioq, bp); + vtblk_startio(sc); - if ((sc->vtblk_flags & VTBLK_FLAG_SUSPEND) == 0) - vtblk_startio(sc); - } VTBLK_UNLOCK(sc); } @@ -597,6 +575,25 @@ vtblk_negotiate_features(struct vtblk_so sc->vtblk_features = virtio_negotiate_features(dev, features); } +static void +vtblk_setup_features(struct vtblk_softc *sc) +{ + device_t dev; + + dev = sc->vtblk_dev; + + vtblk_negotiate_features(sc); + + if (virtio_with_feature(dev, VIRTIO_RING_F_INDIRECT_DESC)) + sc->vtblk_flags |= VTBLK_FLAG_INDIRECT; + if (virtio_with_feature(dev, VIRTIO_BLK_F_RO)) + sc->vtblk_flags |= VTBLK_FLAG_READONLY; + if (virtio_with_feature(dev, VIRTIO_BLK_F_BARRIER)) + sc->vtblk_flags |= VTBLK_FLAG_BARRIER; + if (virtio_with_feature(dev, VIRTIO_BLK_F_CONFIG_WCE)) + sc->vtblk_flags |= VTBLK_FLAG_WC_CONFIG; +} + static int vtblk_maximum_segments(struct vtblk_softc *sc, struct virtio_blk_config *blkcfg) @@ -658,59 +655,6 @@ vtblk_resize_disk(struct vtblk_softc *sc } static void -vtblk_set_write_cache(struct vtblk_softc *sc, int wc) -{ - - /* Set either writeback (1) or writethrough (0) mode. */ - virtio_write_dev_config_1(sc->vtblk_dev, - offsetof(struct virtio_blk_config, writeback), wc); -} - -static int -vtblk_write_cache_enabled(struct vtblk_softc *sc, - struct virtio_blk_config *blkcfg) -{ - int wc; - - if (sc->vtblk_flags & VTBLK_FLAG_WC_CONFIG) { - wc = vtblk_tunable_int(sc, "writecache_mode", - vtblk_writecache_mode); - if (wc >= 0 && wc < VTBLK_CACHE_MAX) - vtblk_set_write_cache(sc, wc); - else - wc = blkcfg->writeback; - } else - wc = virtio_with_feature(sc->vtblk_dev, VIRTIO_BLK_F_WCE); - - return (wc); -} - -static int -vtblk_write_cache_sysctl(SYSCTL_HANDLER_ARGS) -{ - struct vtblk_softc *sc; - int wc, error; - - sc = oidp->oid_arg1; - wc = sc->vtblk_write_cache; - - error = sysctl_handle_int(oidp, &wc, 0, req); - if (error || req->newptr == NULL) - return (error); - if ((sc->vtblk_flags & VTBLK_FLAG_WC_CONFIG) == 0) - return (EPERM); - if (wc < 0 || wc >= VTBLK_CACHE_MAX) - return (EINVAL); - - VTBLK_LOCK(sc); - sc->vtblk_write_cache = wc; - vtblk_set_write_cache(sc, sc->vtblk_write_cache); - VTBLK_UNLOCK(sc); - - return (0); -} - -static void vtblk_alloc_disk(struct vtblk_softc *sc, struct virtio_blk_config *blkcfg) { device_t dev; @@ -726,7 +670,8 @@ vtblk_alloc_disk(struct vtblk_softc *sc, dp->d_name = VTBLK_DISK_NAME; dp->d_unit = device_get_unit(dev); dp->d_drv1 = sc; - dp->d_flags = DISKFLAG_CANFLUSHCACHE | DISKFLAG_UNMAPPED_BIO; + dp->d_flags = DISKFLAG_CANFLUSHCACHE | DISKFLAG_UNMAPPED_BIO | + DISKFLAG_DIRECT_COMPLETION; dp->d_hba_vendor = virtio_get_vendor(dev); dp->d_hba_device = virtio_get_device(dev); dp->d_hba_subvendor = virtio_get_subvendor(dev); @@ -787,11 +732,7 @@ vtblk_create_disk(struct vtblk_softc *sc dp = sc->vtblk_disk; - /* - * Retrieving the identification string must be done after - * the virtqueue interrupt is setup otherwise it will hang. - */ - vtblk_get_ident(sc); + vtblk_ident(sc); device_printf(sc->vtblk_dev, "%juMB (%ju %u byte sectors)\n", (uintmax_t) dp->d_mediasize >> 20, @@ -802,57 +743,107 @@ vtblk_create_disk(struct vtblk_softc *sc } static int -vtblk_quiesce(struct vtblk_softc *sc) +vtblk_request_prealloc(struct vtblk_softc *sc) { - int error; + struct vtblk_request *req; + int i, nreqs; - error = 0; + nreqs = virtqueue_size(sc->vtblk_vq); - VTBLK_LOCK_ASSERT(sc); + /* + * Preallocate sufficient requests to keep the virtqueue full. Each + * request consumes VTBLK_MIN_SEGMENTS or more descriptors so reduce + * the number allocated when indirect descriptors are not available. + */ + if ((sc->vtblk_flags & VTBLK_FLAG_INDIRECT) == 0) + nreqs /= VTBLK_MIN_SEGMENTS; - while (!virtqueue_empty(sc->vtblk_vq)) { - if (mtx_sleep(&sc->vtblk_vq, VTBLK_MTX(sc), PRIBIO, "vtblkq", - VTBLK_QUIESCE_TIMEOUT) == EWOULDBLOCK) { - error = EBUSY; - break; - } + for (i = 0; i < nreqs; i++) { + req = malloc(sizeof(struct vtblk_request), M_DEVBUF, M_NOWAIT); + if (req == NULL) + return (ENOMEM); + + MPASS(sglist_count(&req->vbr_hdr, sizeof(req->vbr_hdr)) == 1); + MPASS(sglist_count(&req->vbr_ack, sizeof(req->vbr_ack)) == 1); + + sc->vtblk_request_count++; + vtblk_request_enqueue(sc, req); } - return (error); + return (0); } static void -vtblk_startio(struct vtblk_softc *sc) +vtblk_request_free(struct vtblk_softc *sc) { - struct virtqueue *vq; struct vtblk_request *req; - int enq; - vq = sc->vtblk_vq; - enq = 0; + MPASS(TAILQ_EMPTY(&sc->vtblk_req_ready)); - VTBLK_LOCK_ASSERT(sc); + while ((req = vtblk_request_dequeue(sc)) != NULL) { + sc->vtblk_request_count--; + free(req, M_DEVBUF); + } - while (!virtqueue_full(vq)) { - if ((req = vtblk_dequeue_ready(sc)) == NULL) - req = vtblk_bio_request(sc); - if (req == NULL) - break; + KASSERT(sc->vtblk_request_count == 0, + ("%s: leaked %d requests", __func__, sc->vtblk_request_count)); +} - if (vtblk_execute_request(sc, req) != 0) { - vtblk_enqueue_ready(sc, req); - break; - } +static struct vtblk_request * +vtblk_request_dequeue(struct vtblk_softc *sc) +{ + struct vtblk_request *req; - enq++; + req = TAILQ_FIRST(&sc->vtblk_req_free); + if (req != NULL) { + TAILQ_REMOVE(&sc->vtblk_req_free, req, vbr_link); + bzero(req, sizeof(struct vtblk_request)); } - if (enq > 0) - virtqueue_notify(vq); + return (req); +} + +static void +vtblk_request_enqueue(struct vtblk_softc *sc, struct vtblk_request *req) +{ + + TAILQ_INSERT_HEAD(&sc->vtblk_req_free, req, vbr_link); +} + +static struct vtblk_request * +vtblk_request_next_ready(struct vtblk_softc *sc) +{ + struct vtblk_request *req; + + req = TAILQ_FIRST(&sc->vtblk_req_ready); + if (req != NULL) + TAILQ_REMOVE(&sc->vtblk_req_ready, req, vbr_link); + + return (req); +} + +static void +vtblk_request_requeue_ready(struct vtblk_softc *sc, struct vtblk_request *req) +{ + + /* NOTE: Currently, there will be at most one request in the queue. */ + TAILQ_INSERT_HEAD(&sc->vtblk_req_ready, req, vbr_link); +} + +static struct vtblk_request * +vtblk_request_next(struct vtblk_softc *sc) +{ + struct vtblk_request *req; + + req = vtblk_request_next_ready(sc); + if (req != NULL) + return (req); + + return (vtblk_request_bio(sc)); } static struct vtblk_request * -vtblk_bio_request(struct vtblk_softc *sc) +vtblk_request_bio(struct vtblk_softc *sc) { struct bio_queue_head *bioq; struct vtblk_request *req; @@ -863,7 +854,7 @@ vtblk_bio_request(struct vtblk_softc *sc if (bioq_first(bioq) == NULL) return (NULL); - req = vtblk_dequeue_request(sc); + req = vtblk_request_dequeue(sc); if (req == NULL) return (NULL); @@ -888,11 +879,14 @@ vtblk_bio_request(struct vtblk_softc *sc panic("%s: bio with unhandled cmd: %d", __func__, bp->bio_cmd); } + if (bp->bio_flags & BIO_ORDERED) + req->vbr_hdr.type |= VIRTIO_BLK_T_BARRIER; + return (req); } static int -vtblk_execute_request(struct vtblk_softc *sc, struct vtblk_request *req) +vtblk_request_execute(struct vtblk_softc *sc, struct vtblk_request *req) { struct virtqueue *vq; struct sglist *sg; @@ -905,26 +899,20 @@ vtblk_execute_request(struct vtblk_softc ordered = 0; writable = 0; - VTBLK_LOCK_ASSERT(sc); - /* - * Wait until the ordered request completes before - * executing subsequent requests. + * Some hosts (such as bhyve) do not implement the barrier feature, + * so we emulate it in the driver by allowing the barrier request + * to be the only one in flight. */ - if (sc->vtblk_req_ordered != NULL) - return (EBUSY); - - if (bp->bio_flags & BIO_ORDERED) { - if ((sc->vtblk_flags & VTBLK_FLAG_BARRIER) == 0) { - /* - * This request will be executed once all - * the in-flight requests are completed. - */ + if ((sc->vtblk_flags & VTBLK_FLAG_BARRIER) == 0) { + if (sc->vtblk_req_ordered != NULL) + return (EBUSY); + if (bp->bio_flags & BIO_ORDERED) { if (!virtqueue_empty(vq)) return (EBUSY); ordered = 1; - } else - req->vbr_hdr.type |= VIRTIO_BLK_T_BARRIER; + req->vbr_hdr.type &= ~VIRTIO_BLK_T_BARRIER; + } } sglist_reset(sg); @@ -933,7 +921,7 @@ vtblk_execute_request(struct vtblk_softc if (bp->bio_cmd == BIO_READ || bp->bio_cmd == BIO_WRITE) { error = sglist_append_bio(sg, bp); if (error || sg->sg_nseg == sg->sg_maxseg) { - panic("%s: data buffer too big bio:%p error:%d", + panic("%s: bio %p data buffer too big %d", __func__, bp, error); } @@ -953,44 +941,156 @@ vtblk_execute_request(struct vtblk_softc return (error); } -static void -vtblk_vq_intr(void *xsc) +static int +vtblk_request_error(struct vtblk_request *req) { - struct vtblk_softc *sc; - struct virtqueue *vq; - - sc = xsc; - vq = sc->vtblk_vq; + int error; -again: - VTBLK_LOCK(sc); - if (sc->vtblk_flags & VTBLK_FLAG_DETACH) { - VTBLK_UNLOCK(sc); - return; + switch (req->vbr_ack) { + case VIRTIO_BLK_S_OK: + error = 0; + break; + case VIRTIO_BLK_S_UNSUPP: + error = ENOTSUP; + break; + default: + error = EIO; + break; } - vtblk_finish_completed(sc); + return (error); +} - if ((sc->vtblk_flags & VTBLK_FLAG_SUSPEND) == 0) - vtblk_startio(sc); - else - wakeup(&sc->vtblk_vq); +static void +vtblk_queue_completed(struct vtblk_softc *sc, struct bio_queue *queue) +{ + struct vtblk_request *req; + struct bio *bp; - if (virtqueue_enable_intr(vq) != 0) { - virtqueue_disable_intr(vq); - VTBLK_UNLOCK(sc); - goto again; + while ((req = virtqueue_dequeue(sc->vtblk_vq, NULL)) != NULL) { + if (sc->vtblk_req_ordered != NULL) { + MPASS(sc->vtblk_req_ordered == req); + sc->vtblk_req_ordered = NULL; + } + + bp = req->vbr_bp; + bp->bio_error = vtblk_request_error(req); + TAILQ_INSERT_TAIL(queue, bp, bio_queue); + + vtblk_request_enqueue(sc, req); } +} - VTBLK_UNLOCK(sc); +static void +vtblk_done_completed(struct vtblk_softc *sc, struct bio_queue *queue) +{ + struct bio *bp, *tmp; + + TAILQ_FOREACH_SAFE(bp, queue, bio_queue, tmp) { + if (bp->bio_error != 0) + disk_err(bp, "hard error", -1, 1); + vtblk_bio_done(sc, bp, bp->bio_error); + } } static void -vtblk_stop(struct vtblk_softc *sc) +vtblk_drain_vq(struct vtblk_softc *sc, int skip_done) { + struct virtqueue *vq; + struct vtblk_request *req; + int last; - virtqueue_disable_intr(sc->vtblk_vq); - virtio_stop(sc->vtblk_dev); + vq = sc->vtblk_vq; + last = 0; + + while ((req = virtqueue_drain(vq, &last)) != NULL) { + if (!skip_done) + vtblk_bio_done(sc, req->vbr_bp, ENXIO); + + vtblk_request_enqueue(sc, req); + } + + sc->vtblk_req_ordered = NULL; + KASSERT(virtqueue_empty(vq), ("virtqueue not empty")); +} + +static void +vtblk_drain(struct vtblk_softc *sc) +{ + struct bio_queue queue; + struct bio_queue_head *bioq; + struct vtblk_request *req; + struct bio *bp; + + bioq = &sc->vtblk_bioq; + TAILQ_INIT(&queue); + + if (sc->vtblk_vq != NULL) { + vtblk_queue_completed(sc, &queue); + vtblk_done_completed(sc, &queue); + + vtblk_drain_vq(sc, 0); + } + + while ((req = vtblk_request_next_ready(sc)) != NULL) { + vtblk_bio_done(sc, req->vbr_bp, ENXIO); + vtblk_request_enqueue(sc, req); + } + + while (bioq_first(bioq) != NULL) { + bp = bioq_takefirst(bioq); + vtblk_bio_done(sc, bp, ENXIO); + } + + vtblk_request_free(sc); +} + +static void +vtblk_startio(struct vtblk_softc *sc) +{ + struct virtqueue *vq; + struct vtblk_request *req; + int enq; + + VTBLK_LOCK_ASSERT(sc); + vq = sc->vtblk_vq; + enq = 0; + + if (sc->vtblk_flags & VTBLK_FLAG_SUSPEND) + return; + + while (!virtqueue_full(vq)) { + req = vtblk_request_next(sc); + if (req == NULL) + break; + + if (vtblk_request_execute(sc, req) != 0) { + vtblk_request_requeue_ready(sc, req); + break; + } + + enq++; + } + + if (enq > 0) + virtqueue_notify(vq); +} + +static void +vtblk_bio_done(struct vtblk_softc *sc, struct bio *bp, int error) +{ + + /* Because of GEOM direct dispatch, we cannot hold any locks. */ + if (sc != NULL) + VTBLK_LOCK_ASSERT_NOTOWNED(sc); + + if (error) { + bp->bio_resid = bp->bio_bcount; + bp->bio_error = error; + bp->bio_flags |= BIO_ERROR; + } + + biodone(bp); } #define VTBLK_GET_CONFIG(_dev, _feature, _field, _cfg) \ @@ -1025,7 +1125,7 @@ vtblk_read_config(struct vtblk_softc *sc #undef VTBLK_GET_CONFIG static void -vtblk_get_ident(struct vtblk_softc *sc) +vtblk_ident(struct vtblk_softc *sc) { struct bio buf; struct disk *dp; @@ -1038,7 +1138,7 @@ vtblk_get_ident(struct vtblk_softc *sc) if (vtblk_tunable_int(sc, "no_ident", vtblk_no_ident) != 0) return; - req = vtblk_dequeue_request(sc); + req = vtblk_request_dequeue(sc); if (req == NULL) return; @@ -1058,7 +1158,7 @@ vtblk_get_ident(struct vtblk_softc *sc) error = vtblk_poll_request(sc, req); VTBLK_UNLOCK(sc); - vtblk_enqueue_request(sc, req); + vtblk_request_enqueue(sc, req); if (error) { device_printf(sc->vtblk_dev, @@ -1066,77 +1166,6 @@ vtblk_get_ident(struct vtblk_softc *sc) } } -static void -vtblk_prepare_dump(struct vtblk_softc *sc) -{ - device_t dev; - struct virtqueue *vq; - - dev = sc->vtblk_dev; - vq = sc->vtblk_vq; - - vtblk_stop(sc); - - /* - * Drain all requests caught in-flight in the virtqueue, - * skipping biodone(). When dumping, only one request is - * outstanding at a time, and we just poll the virtqueue - * for the response. - */ - vtblk_drain_vq(sc, 1); - - if (virtio_reinit(dev, sc->vtblk_features) != 0) { - panic("%s: cannot reinit VirtIO block device during dump", - device_get_nameunit(dev)); - } - - virtqueue_disable_intr(vq); - virtio_reinit_complete(dev); -} - -static int -vtblk_write_dump(struct vtblk_softc *sc, void *virtual, off_t offset, - size_t length) -{ - struct bio buf; - struct vtblk_request *req; - - req = &sc->vtblk_dump_request; - req->vbr_ack = -1; - req->vbr_hdr.type = VIRTIO_BLK_T_OUT; - req->vbr_hdr.ioprio = 1; - req->vbr_hdr.sector = offset / 512; - - req->vbr_bp = &buf; - bzero(&buf, sizeof(struct bio)); - - buf.bio_cmd = BIO_WRITE; - buf.bio_data = virtual; - buf.bio_bcount = length; - - return (vtblk_poll_request(sc, req)); -} - -static int -vtblk_flush_dump(struct vtblk_softc *sc) -{ - struct bio buf; - struct vtblk_request *req; - - req = &sc->vtblk_dump_request; - req->vbr_ack = -1; - req->vbr_hdr.type = VIRTIO_BLK_T_FLUSH; - req->vbr_hdr.ioprio = 1; - req->vbr_hdr.sector = 0; - - req->vbr_bp = &buf; - bzero(&buf, sizeof(struct bio)); - - buf.bio_cmd = BIO_FLUSH; - - return (vtblk_poll_request(sc, req)); -} - static int vtblk_poll_request(struct vtblk_softc *sc, struct vtblk_request *req) { @@ -1148,7 +1177,7 @@ vtblk_poll_request(struct vtblk_softc *s if (!virtqueue_empty(vq)) return (EBUSY); - error = vtblk_execute_request(sc, req); + error = vtblk_request_execute(sc, req); if (error) return (error); @@ -1164,212 +1193,188 @@ vtblk_poll_request(struct vtblk_softc *s return (error); } -static void -vtblk_finish_completed(struct vtblk_softc *sc) +static int +vtblk_quiesce(struct vtblk_softc *sc) { - struct vtblk_request *req; - struct bio *bp; int error; - while ((req = virtqueue_dequeue(sc->vtblk_vq, NULL)) != NULL) { - bp = req->vbr_bp; + VTBLK_LOCK_ASSERT(sc); + error = 0; - if (sc->vtblk_req_ordered != NULL) { - /* This should be the only outstanding request. */ - MPASS(sc->vtblk_req_ordered == req); - sc->vtblk_req_ordered = NULL; + while (!virtqueue_empty(sc->vtblk_vq)) { + if (mtx_sleep(&sc->vtblk_vq, VTBLK_MTX(sc), PRIBIO, "vtblkq", + VTBLK_QUIESCE_TIMEOUT) == EWOULDBLOCK) { + error = EBUSY; + break; } - - error = vtblk_request_error(req); - if (error) - disk_err(bp, "hard error", -1, 1); - - vtblk_finish_bio(bp, error); - vtblk_enqueue_request(sc, req); } + + return (error); } static void -vtblk_drain_vq(struct vtblk_softc *sc, int skip_done) +vtblk_vq_intr(void *xsc) { + struct vtblk_softc *sc; struct virtqueue *vq; - struct vtblk_request *req; - int last; + struct bio_queue queue; + sc = xsc; vq = sc->vtblk_vq; - last = 0; - - while ((req = virtqueue_drain(vq, &last)) != NULL) { - if (!skip_done) - vtblk_finish_bio(req->vbr_bp, ENXIO); + TAILQ_INIT(&queue); - vtblk_enqueue_request(sc, req); - } - - sc->vtblk_req_ordered = NULL; - KASSERT(virtqueue_empty(vq), ("virtqueue not empty")); -} - -static void -vtblk_drain(struct vtblk_softc *sc) -{ - struct bio_queue_head *bioq; - struct vtblk_request *req; - struct bio *bp; + VTBLK_LOCK(sc); - bioq = &sc->vtblk_bioq; +again: + if (sc->vtblk_flags & VTBLK_FLAG_DETACH) + goto out; - if (sc->vtblk_vq != NULL) { - vtblk_finish_completed(sc); - vtblk_drain_vq(sc, 0); - } + vtblk_queue_completed(sc, &queue); + vtblk_startio(sc); - while ((req = vtblk_dequeue_ready(sc)) != NULL) { - vtblk_finish_bio(req->vbr_bp, ENXIO); - vtblk_enqueue_request(sc, req); + if (virtqueue_enable_intr(vq) != 0) { + virtqueue_disable_intr(vq); + goto again; } - while (bioq_first(bioq) != NULL) { - bp = bioq_takefirst(bioq); - vtblk_finish_bio(bp, ENXIO); - } + if (sc->vtblk_flags & VTBLK_FLAG_SUSPEND) + wakeup(&sc->vtblk_vq); - vtblk_free_requests(sc); +out: + VTBLK_UNLOCK(sc); + vtblk_done_completed(sc, &queue); } -#ifdef INVARIANTS static void -vtblk_request_invariants(struct vtblk_request *req) +vtblk_stop(struct vtblk_softc *sc) { - int hdr_nsegs, ack_nsegs; - - hdr_nsegs = sglist_count(&req->vbr_hdr, sizeof(req->vbr_hdr)); - ack_nsegs = sglist_count(&req->vbr_ack, sizeof(req->vbr_ack)); - KASSERT(hdr_nsegs == 1, ("request header crossed page boundary")); - KASSERT(ack_nsegs == 1, ("request ack crossed page boundary")); + virtqueue_disable_intr(sc->vtblk_vq); + virtio_stop(sc->vtblk_dev); } -#endif -static int -vtblk_alloc_requests(struct vtblk_softc *sc) +static void +vtblk_dump_prepare(struct vtblk_softc *sc) { - struct vtblk_request *req; - int i, nreqs; + device_t dev; + struct virtqueue *vq; - nreqs = virtqueue_size(sc->vtblk_vq); + dev = sc->vtblk_dev; + vq = sc->vtblk_vq; + + vtblk_stop(sc); /* - * Preallocate sufficient requests to keep the virtqueue full. Each - * request consumes VTBLK_MIN_SEGMENTS or more descriptors so reduce - * the number allocated when indirect descriptors are not available. + * Drain all requests caught in-flight in the virtqueue, + * skipping biodone(). When dumping, only one request is + * outstanding at a time, and we just poll the virtqueue + * for the response. */ - if ((sc->vtblk_flags & VTBLK_FLAG_INDIRECT) == 0) - nreqs /= VTBLK_MIN_SEGMENTS; - - for (i = 0; i < nreqs; i++) { - req = malloc(sizeof(struct vtblk_request), M_DEVBUF, M_NOWAIT); - if (req == NULL) - return (ENOMEM); - -#ifdef INVARIANTS - vtblk_request_invariants(req); -#endif + vtblk_drain_vq(sc, 1); - sc->vtblk_request_count++; - vtblk_enqueue_request(sc, req); + if (virtio_reinit(dev, sc->vtblk_features) != 0) { + panic("%s: cannot reinit VirtIO block device during dump", + device_get_nameunit(dev)); } - return (0); + virtqueue_disable_intr(vq); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 02:00:07 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DED4120C; Thu, 1 Jan 2015 02:00:06 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CA4AB64E7C; Thu, 1 Jan 2015 02:00:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01206FD007067; Thu, 1 Jan 2015 02:00:06 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01205Ge007058; Thu, 1 Jan 2015 02:00:05 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201501010200.t01205Ge007058@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 1 Jan 2015 02:00:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 02:00:07 -0000 Author: imp Date: Thu Jan 1 02:00:04 2015 New Revision: 276488 URL: https://svnweb.freebsd.org/changeset/base/276488 Log: Fix module builds on arm (and maybe others) by turning off a whole raft of new warnings that appear to be on by default in clang 3.5.0. Fix RPI-B build issues with new clang not liking the ability to pass arbitrary flags to as, since some flags are more arbitrary (and thus verboten) than others. These warnings should be actually fixed in the code, but this is a band-aide to get things (almost) building again. Modified: head/share/mk/bsd.kmod.mk head/share/mk/bsd.sys.mk head/sys/arm/broadcom/bcm2835/std.bcm2835 head/sys/conf/kern.mk Modified: head/share/mk/bsd.kmod.mk ============================================================================== --- head/share/mk/bsd.kmod.mk Thu Jan 1 01:43:00 2015 (r276487) +++ head/share/mk/bsd.kmod.mk Thu Jan 1 02:00:04 2015 (r276488) @@ -13,5 +13,3 @@ SYSDIR= ${_dir} .endif .include "${SYSDIR}/conf/kmod.mk" - -.include Modified: head/share/mk/bsd.sys.mk ============================================================================== --- head/share/mk/bsd.sys.mk Thu Jan 1 01:43:00 2015 (r276487) +++ head/share/mk/bsd.sys.mk Thu Jan 1 02:00:04 2015 (r276488) @@ -110,11 +110,7 @@ CWARNFLAGS+= -Wno-format CWARNFLAGS+= -Wno-unknown-pragmas .endif # IGNORE_PRAGMA -.if ${COMPILER_TYPE} == "clang" -# Would love to do this unconditionally, but can't due to its use in -# kernel build coupled with CFLAGS.${TARGET} feature CLANG_NO_IAS= -no-integrated-as -.endif CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\ -mllvm -simplifycfg-dup-ret -mllvm -enable-gvn=false CFLAGS.clang+= -Qunused-arguments Modified: head/sys/arm/broadcom/bcm2835/std.bcm2835 ============================================================================== --- head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 01:43:00 2015 (r276487) +++ head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 02:00:04 2015 (r276488) @@ -2,7 +2,7 @@ machine arm armv6 cpu CPU_ARM1176 -makeoptions CONF_CFLAGS="-mcpu=arm1176jzf-s -Wa,-mcpu=arm1176jzf-s" +makeoptions CONF_CFLAGS="-mcpu=arm1176jzf-s" files "../broadcom/bcm2835/files.bcm2835" Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Thu Jan 1 01:43:00 2015 (r276487) +++ head/sys/conf/kern.mk Thu Jan 1 02:00:04 2015 (r276488) @@ -164,4 +164,26 @@ CFLAGS+= -fstack-protector CFLAGS+= -gdwarf-2 .endif +# A whole bunch of new default warnings in clang 3.5 subpress for now until +# this can be cleaned up. +.if ${COMPILER_VERSION} >= 30500 +CFLAGS.clang+= -Wno-pointer-sign -Wno-constant-conversion -Wno-format \ + -Wno-shift-count-negative -Wno-tautological-pointer-compare \ + -Wno-shift-count-overflow -Wno-tautological-compare +.endif + CFLAGS+= ${CFLAGS.${COMPILER_TYPE}} + +# Tell bmake not to mistake standard targets for things to be searched for +# or expect to ever be up-to-date. +PHONY_NOTMAIN = afterdepend afterinstall all beforedepend beforeinstall \ + beforelinking build build-tools buildfiles buildincludes \ + checkdpadd clean cleandepend cleandir cleanobj configure \ + depend dependall distclean distribute exe \ + html includes install installfiles installincludes lint \ + obj objlink objs objwarn realall realdepend \ + realinstall regress subdir-all subdir-depend subdir-install \ + tags whereobj + +.PHONY: ${PHONY_NOTMAIN} +.NOTMAIN: ${PHONY_NOTMAIN} From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 02:03:11 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0C78B35D; Thu, 1 Jan 2015 02:03:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EC57C64F80; Thu, 1 Jan 2015 02:03:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t0123AeL010900; Thu, 1 Jan 2015 02:03:10 GMT (envelope-from bryanv@FreeBSD.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t0123Anh010899; Thu, 1 Jan 2015 02:03:10 GMT (envelope-from bryanv@FreeBSD.org) Message-Id: <201501010203.t0123Anh010899@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bryanv set sender to bryanv@FreeBSD.org using -f From: Bryan Venteicher Date: Thu, 1 Jan 2015 02:03:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276489 - head/sys/dev/virtio/network X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 02:03:11 -0000 Author: bryanv Date: Thu Jan 1 02:03:09 2015 New Revision: 276489 URL: https://svnweb.freebsd.org/changeset/base/276489 Log: Use the appropriate IPv4 or IPv6 TSO HW assist flag MFC after: 2 weeks Modified: head/sys/dev/virtio/network/if_vtnet.c Modified: head/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- head/sys/dev/virtio/network/if_vtnet.c Thu Jan 1 02:00:04 2015 (r276488) +++ head/sys/dev/virtio/network/if_vtnet.c Thu Jan 1 02:03:09 2015 (r276489) @@ -3006,9 +3006,9 @@ vtnet_reinit(struct vtnet_softc *sc) if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) ifp->if_hwassist |= VTNET_CSUM_OFFLOAD_IPV6; if (ifp->if_capenable & IFCAP_TSO4) - ifp->if_hwassist |= CSUM_TSO; + ifp->if_hwassist |= CSUM_IP_TSO; if (ifp->if_capenable & IFCAP_TSO6) - ifp->if_hwassist |= CSUM_TSO; /* No CSUM_TSO_IPV6. */ + ifp->if_hwassist |= CSUM_IP6_TSO; if (sc->vtnet_flags & VTNET_FLAG_CTRL_VQ) vtnet_init_rx_filters(sc); From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 02:04:48 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4A5DA498; Thu, 1 Jan 2015 02:04:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B44464F90; Thu, 1 Jan 2015 02:04:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t0124mui011148; Thu, 1 Jan 2015 02:04:48 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t0124jq8011136; Thu, 1 Jan 2015 02:04:45 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201501010204.t0124jq8011136@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 1 Jan 2015 02:04:45 +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: r276490 - in stable/10: bin/sleep bin/sleep/tests etc/mtree gnu/usr.bin/diff gnu/usr.bin/diff/tests usr.bin/basename usr.bin/basename/tests usr.bin/cmp usr.bin/cmp/tests usr.bin/cut usr... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 02:04:48 -0000 Author: ngie Date: Thu Jan 1 02:04:44 2015 New Revision: 276490 URL: https://svnweb.freebsd.org/changeset/base/276490 Log: MFC r272777,r272779,r272780,r272781,r272782,r272783,r272784,r272787,r272788: r272777: Integrate usr.sbin/nmtree/tests from NetBSD into atf/kyua In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r272779: Integrate usr.sbin/basename/tests from NetBSD into atf/kyua In collaboration with: pho Sponsored by: EMC / Isilon Storage Division r272780: Integrate usr.bin/cmp/tests from NetBSD into atf/kyua In collaboration with: sjg Sponsored by: EMC / Isilon Storage Division r272781: Integrate usr.bin/dirname/tests from NetBSD into atf/kyua In collaboration with: pho, sjg Sponsored by: EMC / Isilon Storage Division r272782: Integrate bin/sleep/tests from NetBSD into atf/kyua Sponsored by: EMC / Isilon Storage Division r272783: Integrate usr.bin/cut/tests from NetBSD into atf/kyua Sponsored by: EMC / Isilon Storage Division r272784: Integrate usr.bin/grep/tests from NetBSD into atf/kyua Sponsored by: EMC / Isilon Storage Division r272787: Integrate usr.bin/diff/tests from NetBSD into atf/kyua at gnu/usr.bin/diff/tests Sponsored by: EMC / Isilon Storage Division r272788: Integrate usr.bin/gzip/tests from NetBSD into atf/kyua Sponsored by: EMC / Isilon Storage Division Added: stable/10/bin/sleep/tests/ - copied from r272782, head/bin/sleep/tests/ stable/10/gnu/usr.bin/diff/tests/ - copied from r272787, head/gnu/usr.bin/diff/tests/ stable/10/usr.bin/basename/tests/ - copied from r272779, head/usr.bin/basename/tests/ stable/10/usr.bin/cmp/tests/ - copied from r272780, head/usr.bin/cmp/tests/ stable/10/usr.bin/cut/tests/ - copied from r272783, head/usr.bin/cut/tests/ stable/10/usr.bin/dirname/tests/ - copied from r272781, head/usr.bin/dirname/tests/ stable/10/usr.bin/grep/tests/ - copied from r272784, head/usr.bin/grep/tests/ stable/10/usr.bin/gzip/tests/ - copied from r272788, head/usr.bin/gzip/tests/ stable/10/usr.sbin/nmtree/tests/ - copied from r272777, head/usr.sbin/nmtree/tests/ Modified: stable/10/bin/sleep/Makefile stable/10/etc/mtree/BSD.tests.dist stable/10/gnu/usr.bin/diff/Makefile stable/10/usr.bin/basename/Makefile stable/10/usr.bin/cmp/Makefile stable/10/usr.bin/cut/Makefile stable/10/usr.bin/dirname/Makefile stable/10/usr.bin/grep/Makefile stable/10/usr.bin/gzip/Makefile stable/10/usr.sbin/nmtree/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/bin/sleep/Makefile ============================================================================== --- stable/10/bin/sleep/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/bin/sleep/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -1,6 +1,12 @@ # @(#)Makefile 8.1 (Berkeley) 5/31/93 # $FreeBSD$ +.include + PROG= sleep +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Modified: stable/10/etc/mtree/BSD.tests.dist ============================================================================== --- stable/10/etc/mtree/BSD.tests.dist Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/etc/mtree/BSD.tests.dist Thu Jan 1 02:04:44 2015 (r276490) @@ -47,6 +47,8 @@ set-e .. .. + sleep + .. test .. .. @@ -68,6 +70,8 @@ lib .. usr.bin + diff + .. .. .. lib @@ -169,6 +173,8 @@ usr.bin apply .. + basename + .. bmake archives fmt_44bsd @@ -269,10 +275,20 @@ .. calendar .. + cmp + .. comm .. + cut + .. + dirname + .. file2c .. + grep + .. + gzip + .. join .. jot @@ -309,6 +325,8 @@ .. newsyslog .. + nmtree + .. pw .. sa Modified: stable/10/gnu/usr.bin/diff/Makefile ============================================================================== --- stable/10/gnu/usr.bin/diff/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/gnu/usr.bin/diff/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + DIFFSRC=${.CURDIR}/../../../contrib/diff/src .PATH: ${DIFFSRC} \ ${.CURDIR}/../../../contrib/diff/lib \ @@ -27,4 +29,8 @@ SUBDIR+=doc DPADD= ${LIBGNUREGEX} LDADD= -lgnuregex +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Modified: stable/10/usr.bin/basename/Makefile ============================================================================== --- stable/10/usr.bin/basename/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/usr.bin/basename/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -1,7 +1,13 @@ # From: @(#)Makefile 8.1 (Berkeley) 6/6/93 # $FreeBSD$ +.include + PROG= basename MLINKS= basename.1 dirname.1 +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Modified: stable/10/usr.bin/cmp/Makefile ============================================================================== --- stable/10/usr.bin/cmp/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/usr.bin/cmp/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -1,7 +1,13 @@ # @(#)Makefile 8.1 (Berkeley) 6/6/93 # $FreeBSD$ +.include + PROG= cmp SRCS= cmp.c link.c misc.c regular.c special.c +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Modified: stable/10/usr.bin/cut/Makefile ============================================================================== --- stable/10/usr.bin/cut/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/usr.bin/cut/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -1,6 +1,12 @@ # From: @(#)Makefile 8.1 (Berkeley) 6/6/93 # $FreeBSD$ +.include + PROG= cut +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Modified: stable/10/usr.bin/dirname/Makefile ============================================================================== --- stable/10/usr.bin/dirname/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/usr.bin/dirname/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -1,7 +1,13 @@ # From: @(#)Makefile 8.1 (Berkeley) 6/6/93 # $FreeBSD$ +.include + PROG= dirname MAN= +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Modified: stable/10/usr.bin/grep/Makefile ============================================================================== --- stable/10/usr.bin/grep/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/usr.bin/grep/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -85,4 +85,8 @@ DPADD+= ${LIBGNUREGEX} CFLAGS+= -DWITHOUT_NLS .endif +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Modified: stable/10/usr.bin/gzip/Makefile ============================================================================== --- stable/10/usr.bin/gzip/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/usr.bin/gzip/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -29,4 +29,8 @@ LINKS+= ${BINDIR}/gzip ${BINDIR}/gunzip ${BINDIR}/gzip ${BINDIR}/zcat \ ${BINDIR}/zdiff ${BINDIR}/zcmp +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Modified: stable/10/usr.sbin/nmtree/Makefile ============================================================================== --- stable/10/usr.sbin/nmtree/Makefile Thu Jan 1 02:03:09 2015 (r276489) +++ stable/10/usr.sbin/nmtree/Makefile Thu Jan 1 02:04:44 2015 (r276490) @@ -31,4 +31,8 @@ CLEANFILES+= nmtree.8 nmtree.8: mtree.8 cp ${.ALLSRC} ${.TARGET} +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 02:06:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 772DC5DA; Thu, 1 Jan 2015 02:06:02 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 634B864FA4; Thu, 1 Jan 2015 02:06:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01262Bl011431; Thu, 1 Jan 2015 02:06:02 GMT (envelope-from bryanv@FreeBSD.org) Received: (from bryanv@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01261X2011429; Thu, 1 Jan 2015 02:06:01 GMT (envelope-from bryanv@FreeBSD.org) Message-Id: <201501010206.t01261X2011429@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bryanv set sender to bryanv@FreeBSD.org using -f From: Bryan Venteicher Date: Thu, 1 Jan 2015 02:06:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276491 - head/sys/dev/virtio/network X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 02:06:02 -0000 Author: bryanv Date: Thu Jan 1 02:06:00 2015 New Revision: 276491 URL: https://svnweb.freebsd.org/changeset/base/276491 Log: Add softc flag for when the indirect descriptor feature was negotiated MFC after: 2 weeks Modified: head/sys/dev/virtio/network/if_vtnet.c head/sys/dev/virtio/network/if_vtnetvar.h Modified: head/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- head/sys/dev/virtio/network/if_vtnet.c Thu Jan 1 02:04:44 2015 (r276490) +++ head/sys/dev/virtio/network/if_vtnet.c Thu Jan 1 02:06:00 2015 (r276491) @@ -599,6 +599,8 @@ vtnet_setup_features(struct vtnet_softc vtnet_negotiate_features(sc); + if (virtio_with_feature(dev, VIRTIO_RING_F_INDIRECT_DESC)) + sc->vtnet_flags |= VTNET_FLAG_INDIRECT; if (virtio_with_feature(dev, VIRTIO_RING_F_EVENT_IDX)) sc->vtnet_flags |= VTNET_FLAG_EVENT_IDX; @@ -3653,7 +3655,7 @@ vtnet_set_tx_intr_threshold(struct vtnet * Without indirect descriptors, leave enough room for the most * segments we handle. */ - if (virtio_with_feature(dev, VIRTIO_RING_F_INDIRECT_DESC) == 0 && + if ((sc->vtnet_flags & VTNET_FLAG_INDIRECT) == 0 && thresh < sc->vtnet_tx_nsegs) thresh = sc->vtnet_tx_nsegs; Modified: head/sys/dev/virtio/network/if_vtnetvar.h ============================================================================== --- head/sys/dev/virtio/network/if_vtnetvar.h Thu Jan 1 02:04:44 2015 (r276490) +++ head/sys/dev/virtio/network/if_vtnetvar.h Thu Jan 1 02:06:00 2015 (r276491) @@ -140,7 +140,8 @@ struct vtnet_softc { #define VTNET_FLAG_MRG_RXBUFS 0x0080 #define VTNET_FLAG_LRO_NOMRG 0x0100 #define VTNET_FLAG_MULTIQ 0x0200 -#define VTNET_FLAG_EVENT_IDX 0x0400 +#define VTNET_FLAG_INDIRECT 0x0400 +#define VTNET_FLAG_EVENT_IDX 0x0800 int vtnet_link_active; int vtnet_hdr_size; From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 02:12:46 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7C4F7751; Thu, 1 Jan 2015 02:12:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5CB8D670B1; Thu, 1 Jan 2015 02:12:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t012Ckn9015770; Thu, 1 Jan 2015 02:12:46 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t012CikE015758; Thu, 1 Jan 2015 02:12:44 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201501010212.t012CikE015758@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 1 Jan 2015 02:12:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276492 - in stable/10: etc/mtree lib/librt lib/librt/tests lib/libthr lib/libthr/tests X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 02:12:46 -0000 Author: ngie Date: Thu Jan 1 02:12:43 2015 New Revision: 276492 URL: https://svnweb.freebsd.org/changeset/base/276492 Log: MFC r274578,r274580: r274578: Add reachover Makefiles for contrib/netbsd-tests/lib/libpthread as lib/libthr/tests A variant of this code has been tested on amd64/i386 for some time by EMC/Isilon on 10-STABLE/11-CURRENT. It builds on other architectures, but the code will remain off until it's proven it works on virtual hardware or real hardware on other architectures Original work by: pho Sponsored by: EMC / Isilon Storage Division r274580: Add reachover Makefiles for contrib/netbsd-tests/lib/librt A variant of this code has been tested on amd64/i386 for some time by EMC/Isilon on 10-STABLE/11-CURRENT. It builds on other architectures, but the code will remain off until it's proven it works on virtual hardware or real hardware on other architectures Sponsored by: EMC / Isilon Storage Division Added: stable/10/lib/librt/Makefile.amd64 - copied unchanged from r274580, head/lib/librt/Makefile.amd64 stable/10/lib/librt/Makefile.i386 - copied unchanged from r274580, head/lib/librt/Makefile.i386 stable/10/lib/librt/tests/ - copied from r274580, head/lib/librt/tests/ stable/10/lib/libthr/Makefile.amd64 - copied unchanged from r274578, head/lib/libthr/Makefile.amd64 stable/10/lib/libthr/Makefile.i386 - copied unchanged from r274578, head/lib/libthr/Makefile.i386 stable/10/lib/libthr/tests/ - copied from r274578, head/lib/libthr/tests/ Modified: stable/10/etc/mtree/BSD.tests.dist stable/10/lib/librt/Makefile stable/10/lib/libthr/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/mtree/BSD.tests.dist ============================================================================== --- stable/10/etc/mtree/BSD.tests.dist Thu Jan 1 02:06:00 2015 (r276491) +++ stable/10/etc/mtree/BSD.tests.dist Thu Jan 1 02:12:43 2015 (r276492) @@ -91,6 +91,12 @@ .. libmp .. + librt + .. + libthr + dlopen + .. + .. libutil .. .. Modified: stable/10/lib/librt/Makefile ============================================================================== --- stable/10/lib/librt/Makefile Thu Jan 1 02:06:00 2015 (r276491) +++ stable/10/lib/librt/Makefile Thu Jan 1 02:12:43 2015 (r276492) @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + LIB=rt SHLIB_MAJOR= 1 CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR} @@ -18,4 +20,6 @@ PRECIOUSLIB= VERSION_MAP= ${.CURDIR}/Version.map +.include + .include Copied: stable/10/lib/librt/Makefile.amd64 (from r274580, head/lib/librt/Makefile.amd64) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/lib/librt/Makefile.amd64 Thu Jan 1 02:12:43 2015 (r276492, copy of r274580, head/lib/librt/Makefile.amd64) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + Copied: stable/10/lib/librt/Makefile.i386 (from r274580, head/lib/librt/Makefile.i386) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/lib/librt/Makefile.i386 Thu Jan 1 02:12:43 2015 (r276492, copy of r274580, head/lib/librt/Makefile.i386) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + Modified: stable/10/lib/libthr/Makefile ============================================================================== --- stable/10/lib/libthr/Makefile Thu Jan 1 02:06:00 2015 (r276491) +++ stable/10/lib/libthr/Makefile Thu Jan 1 02:12:43 2015 (r276492) @@ -64,4 +64,6 @@ SYMLINKS+=lib${LIB}_p.a ${LIBDIR}/libpth CFLAGS+=-DSYSCALL_COMPAT .endif +.include + .include Copied: stable/10/lib/libthr/Makefile.amd64 (from r274578, head/lib/libthr/Makefile.amd64) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/lib/libthr/Makefile.amd64 Thu Jan 1 02:12:43 2015 (r276492, copy of r274578, head/lib/libthr/Makefile.amd64) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + Copied: stable/10/lib/libthr/Makefile.i386 (from r274578, head/lib/libthr/Makefile.i386) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/lib/libthr/Makefile.i386 Thu Jan 1 02:12:43 2015 (r276492, copy of r274578, head/lib/libthr/Makefile.i386) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 03:52:28 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C6950FEE; Thu, 1 Jan 2015 03:52:28 +0000 (UTC) Received: from tensor.andric.com (unknown [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "tensor.andric.com", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6B82864CDE; Thu, 1 Jan 2015 03:52:28 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::28eb:6a07:fcba:ed4a] (unknown [IPv6:2001:7b8:3a7:0:28eb:6a07:fcba:ed4a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 9F05FB80A; Thu, 1 Jan 2015 04:52:22 +0100 (CET) Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_ED03ED01-C25D-4F80-8742-DB50BD9CB951"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.5b4 From: Dimitry Andric In-Reply-To: <201501010200.t01205Ge007058@svn.freebsd.org> Date: Thu, 1 Jan 2015 04:52:16 +0100 Message-Id: <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> References: <201501010200.t01205Ge007058@svn.freebsd.org> To: Warner Losh X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 03:52:29 -0000 --Apple-Mail=_ED03ED01-C25D-4F80-8742-DB50BD9CB951 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 01 Jan 2015, at 03:00, Warner Losh wrote: >=20 > Author: imp > Date: Thu Jan 1 02:00:04 2015 > New Revision: 276488 > URL: https://svnweb.freebsd.org/changeset/base/276488 >=20 > Log: > Fix module builds on arm (and maybe others) by turning off a whole > raft of new warnings that appear to be on by default in clang 3.5.0. > Fix RPI-B build issues with new clang not liking the ability to pass > arbitrary flags to as, since some flags are more arbitrary (and thus > verboten) than others. >=20 > These warnings should be actually fixed in the code, but this is a > band-aide to get things (almost) building again. >=20 > Modified: > head/share/mk/bsd.kmod.mk > head/share/mk/bsd.sys.mk > head/sys/arm/broadcom/bcm2835/std.bcm2835 > head/sys/conf/kern.mk >=20 > Modified: head/share/mk/bsd.kmod.mk > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/share/mk/bsd.kmod.mk Thu Jan 1 01:43:00 2015 = (r276487) > +++ head/share/mk/bsd.kmod.mk Thu Jan 1 02:00:04 2015 = (r276488) > @@ -13,5 +13,3 @@ SYSDIR=3D ${_dir} > .endif >=20 > .include "${SYSDIR}/conf/kmod.mk" > - > -.include >=20 > Modified: head/share/mk/bsd.sys.mk > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/share/mk/bsd.sys.mk Thu Jan 1 01:43:00 2015 = (r276487) > +++ head/share/mk/bsd.sys.mk Thu Jan 1 02:00:04 2015 = (r276488) > @@ -110,11 +110,7 @@ CWARNFLAGS+=3D -Wno-format > CWARNFLAGS+=3D -Wno-unknown-pragmas > .endif # IGNORE_PRAGMA >=20 > -.if ${COMPILER_TYPE} =3D=3D "clang" > -# Would love to do this unconditionally, but can't due to its use in > -# kernel build coupled with CFLAGS.${TARGET} feature > CLANG_NO_IAS=3D -no-integrated-as > -.endif > CLANG_OPT_SMALL=3D -mstack-alignment=3D8 -mllvm -inline-threshold=3D3\ > -mllvm -simplifycfg-dup-ret -mllvm -enable-gvn=3Dfalse > CFLAGS.clang+=3D -Qunused-arguments This should not be removed from bsd.sys.mk, since other things depend on it, are you sure that you want this? :) As far as I know, there are still a few places in the tree that use the CLANG_NO_IAS macro. It would be nice if those all went away, though... > Modified: head/sys/arm/broadcom/bcm2835/std.bcm2835 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 01:43:00 2015 = (r276487) > +++ head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 02:00:04 2015 = (r276488) > @@ -2,7 +2,7 @@ >=20 > machine arm armv6 > cpu CPU_ARM1176 > -makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s = -Wa,-mcpu=3Darm1176jzf-s" > +makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s" >=20 > files "../broadcom/bcm2835/files.bcm2835" >=20 >=20 > Modified: head/sys/conf/kern.mk > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/conf/kern.mk Thu Jan 1 01:43:00 2015 = (r276487) > +++ head/sys/conf/kern.mk Thu Jan 1 02:00:04 2015 = (r276488) > @@ -164,4 +164,26 @@ CFLAGS+=3D -fstack-protector > CFLAGS+=3D -gdwarf-2 > .endif >=20 > +# A whole bunch of new default warnings in clang 3.5 subpress for now = until > +# this can be cleaned up. > +.if ${COMPILER_VERSION} >=3D 30500 > +CFLAGS.clang+=3D -Wno-pointer-sign -Wno-constant-conversion = -Wno-format \ > + -Wno-shift-count-negative -Wno-tautological-pointer-compare \ > + -Wno-shift-count-overflow -Wno-tautological-compare > +.endif > + > CFLAGS+=3D ${CFLAGS.${COMPILER_TYPE}} Note that for x86, all of these warnings were already either fixed or suppressed. I assume this will be fleshed out later? > +# Tell bmake not to mistake standard targets for things to be = searched for > +# or expect to ever be up-to-date. > +PHONY_NOTMAIN =3D afterdepend afterinstall all beforedepend = beforeinstall \ > + beforelinking build build-tools buildfiles buildincludes = \ > + checkdpadd clean cleandepend cleandir cleanobj configure = \ > + depend dependall distclean distribute exe \ > + html includes install installfiles installincludes lint = \ > + obj objlink objs objwarn realall realdepend \ > + realinstall regress subdir-all subdir-depend = subdir-install \ > + tags whereobj > + > +.PHONY: ${PHONY_NOTMAIN} > +.NOTMAIN: ${PHONY_NOTMAIN} >=20 Was this latter part intentional? It does not seem to have anything to do with clang at all. -Dimitry --Apple-Mail=_ED03ED01-C25D-4F80-8742-DB50BD9CB951 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.26 iEYEARECAAYFAlSkxHMACgkQsF6jCi4glqMcQQCfTzTjt8h1mut6rhtgKlLde3V9 sjoAn09YyhMD9USWNJFSYN8oPtzB04As =51DO -----END PGP SIGNATURE----- --Apple-Mail=_ED03ED01-C25D-4F80-8742-DB50BD9CB951-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 04:10:57 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 79D633C2; Thu, 1 Jan 2015 04:10:57 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 65D8764E67; Thu, 1 Jan 2015 04:10:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t014AvHJ070303; Thu, 1 Jan 2015 04:10:57 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t014AvV1070301; Thu, 1 Jan 2015 04:10:57 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201501010410.t014AvV1070301@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 1 Jan 2015 04:10:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276493 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 04:10:57 -0000 Author: ngie Date: Thu Jan 1 04:10:56 2015 New Revision: 276493 URL: https://svnweb.freebsd.org/changeset/base/276493 Log: Unbreak the build for some modules that depend on -std flags to be passed through via CFLAGS, as noted by Jenkins when building sparc64 by re-adding bsd.sys.mk to bsd.kmod.mk: https://jenkins.freebsd.org/job/FreeBSD_HEAD_sparc64/225/changes Tested with: % cd /sys/modules/bce; make obj; make depend; make all Modified: head/share/mk/bsd.kmod.mk Modified: head/share/mk/bsd.kmod.mk ============================================================================== --- head/share/mk/bsd.kmod.mk Thu Jan 1 02:12:43 2015 (r276492) +++ head/share/mk/bsd.kmod.mk Thu Jan 1 04:10:56 2015 (r276493) @@ -13,3 +13,5 @@ SYSDIR= ${_dir} .endif .include "${SYSDIR}/conf/kmod.mk" + +.include From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 04:12:52 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ED51250F for ; Thu, 1 Jan 2015 04:12:52 +0000 (UTC) Received: from mail-pd0-f182.google.com (mail-pd0-f182.google.com [209.85.192.182]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4C96A66F33 for ; Thu, 1 Jan 2015 04:12:52 +0000 (UTC) Received: by mail-pd0-f182.google.com with SMTP id p10so21823839pdj.13 for ; Wed, 31 Dec 2014 20:12:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:mime-version:content-type:from :in-reply-to:date:cc:message-id:references:to; bh=j21G6Awa1rLHIuuzYUx9tHPd4LjnMde8LXSe2GZgT0c=; b=bP6eSUWjN0mmHc4GIjTz59XjtWB2YzrP8g5mqHEqDCcneUR8heWrLLdMjtkuZO5ibj owzanFrtarVxBqtwq6u3EdNalwbp36M4jJRT9xs+WtGhNliobbz9BN2l0pU5NjD9lnJR B0Gpqi/ikxT2Uh2UZFbqCBbDW7DHvUpbXAXjoTEmhbVUKoaWKhOxzc3d7DTywsAHvsAC JiL7nBsQrRkBkYLDLCyhsUpsImZCzBIkpagUh6RInxKrIqoKJqkXP2YIUHo4FQ2cECtU 624MKIm7cOcZ0ulFj8Ew+VGVpA3tOQz54CkT4RFZQMqneyh4+VfAfZQ3EWF8yAEYt453 Gq8Q== X-Gm-Message-State: ALoCoQnbWBcw+aN8QMv1urRpF2zxFjbreGQoDYZmbBgIeaKB0rPNqKTZkLhdddYh6zyxAWignm1E X-Received: by 10.68.130.4 with SMTP id oa4mr11806618pbb.95.1420085565757; Wed, 31 Dec 2014 20:12:45 -0800 (PST) Received: from [10.64.25.37] ([69.53.236.236]) by mx.google.com with ESMTPSA id j1sm42476054pbq.85.2014.12.31.20.12.44 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 20:12:45 -0800 (PST) Sender: Warner Losh Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_A1D24157-531D-41DD-BA47-BBF8AA78E05F"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5b3 From: Warner Losh In-Reply-To: <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> Date: Wed, 31 Dec 2014 21:12:41 -0700 Message-Id: <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> To: Dimitry Andric X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Warner Losh X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 04:12:53 -0000 --Apple-Mail=_A1D24157-531D-41DD-BA47-BBF8AA78E05F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Dec 31, 2014, at 8:52 PM, Dimitry Andric wrote: >=20 > On 01 Jan 2015, at 03:00, Warner Losh wrote: >>=20 >> Author: imp >> Date: Thu Jan 1 02:00:04 2015 >> New Revision: 276488 >> URL: https://svnweb.freebsd.org/changeset/base/276488 >>=20 >> Log: >> Fix module builds on arm (and maybe others) by turning off a whole >> raft of new warnings that appear to be on by default in clang 3.5.0. >> Fix RPI-B build issues with new clang not liking the ability to pass >> arbitrary flags to as, since some flags are more arbitrary (and thus >> verboten) than others. >>=20 >> These warnings should be actually fixed in the code, but this is a >> band-aide to get things (almost) building again. >>=20 >> Modified: >> head/share/mk/bsd.kmod.mk >> head/share/mk/bsd.sys.mk >> head/sys/arm/broadcom/bcm2835/std.bcm2835 >> head/sys/conf/kern.mk >>=20 >> Modified: head/share/mk/bsd.kmod.mk >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/share/mk/bsd.kmod.mk Thu Jan 1 01:43:00 2015 = (r276487) >> +++ head/share/mk/bsd.kmod.mk Thu Jan 1 02:00:04 2015 = (r276488) >> @@ -13,5 +13,3 @@ SYSDIR=3D ${_dir} >> .endif >>=20 >> .include "${SYSDIR}/conf/kmod.mk" >> - >> -.include >>=20 >> Modified: head/share/mk/bsd.sys.mk >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/share/mk/bsd.sys.mk Thu Jan 1 01:43:00 2015 = (r276487) >> +++ head/share/mk/bsd.sys.mk Thu Jan 1 02:00:04 2015 = (r276488) >> @@ -110,11 +110,7 @@ CWARNFLAGS+=3D -Wno-format >> CWARNFLAGS+=3D -Wno-unknown-pragmas >> .endif # IGNORE_PRAGMA >>=20 >> -.if ${COMPILER_TYPE} =3D=3D "clang" >> -# Would love to do this unconditionally, but can't due to its use in >> -# kernel build coupled with CFLAGS.${TARGET} feature >> CLANG_NO_IAS=3D -no-integrated-as >> -.endif >> CLANG_OPT_SMALL=3D -mstack-alignment=3D8 -mllvm -inline-threshold=3D3\ >> -mllvm -simplifycfg-dup-ret -mllvm -enable-gvn=3Dfalse >> CFLAGS.clang+=3D -Qunused-arguments >=20 > This should not be removed from bsd.sys.mk, since other things depend = on > it, are you sure that you want this? :) I may be wrong here for boot stuff that uses it. > As far as I know, there are still a few places in the tree that use = the > CLANG_NO_IAS macro. It would be nice if those all went away, = though=E2=80=A6 Only for boot. Thanks, though I think they may be CFLAGS.clang +=3D = there. > Modified: head/sys/arm/broadcom/bcm2835/std.bcm2835 >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 = 01:43:00 2015 (r276487) >> +++ head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 = 02:00:04 2015 (r276488) >> @@ -2,7 +2,7 @@ >>=20 >> machine arm armv6 >> cpu CPU_ARM1176 >> -makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s = -Wa,-mcpu=3Darm1176jzf-s" >> +makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s" >>=20 >> files "../broadcom/bcm2835/files.bcm2835" >>=20 >>=20 >> Modified: head/sys/conf/kern.mk >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/conf/kern.mk Thu Jan 1 01:43:00 2015 = (r276487) >> +++ head/sys/conf/kern.mk Thu Jan 1 02:00:04 2015 = (r276488) >> @@ -164,4 +164,26 @@ CFLAGS+=3D -fstack-protector >> CFLAGS+=3D -gdwarf-2 >> .endif >>=20 >> +# A whole bunch of new default warnings in clang 3.5 subpress for = now until >> +# this can be cleaned up. >> +.if ${COMPILER_VERSION} >=3D 30500 >> +CFLAGS.clang+=3D -Wno-pointer-sign -Wno-constant-conversion = -Wno-format \ >> + -Wno-shift-count-negative -Wno-tautological-pointer-compare \ >> + -Wno-shift-count-overflow -Wno-tautological-compare >> +.endif >> + >> CFLAGS+=3D ${CFLAGS.${COMPILER_TYPE}} >=20 > Note that for x86, all of these warnings were already either fixed or > suppressed. I assume this will be fleshed out later? Yea, but since a build universe wasn=E2=80=99t done, they were present = in the build. They are harmless on other architectures. >> +# Tell bmake not to mistake standard targets for things to be = searched for >> +# or expect to ever be up-to-date. >> +PHONY_NOTMAIN =3D afterdepend afterinstall all beforedepend = beforeinstall \ >> + beforelinking build build-tools buildfiles buildincludes = \ >> + checkdpadd clean cleandepend cleandir cleanobj configure = \ >> + depend dependall distclean distribute exe \ >> + html includes install installfiles installincludes lint = \ >> + obj objlink objs objwarn realall realdepend \ >> + realinstall regress subdir-all subdir-depend = subdir-install \ >> + tags whereobj >> + >> +.PHONY: ${PHONY_NOTMAIN} >> +.NOTMAIN: ${PHONY_NOTMAIN} >>=20 >=20 > Was this latter part intentional? It does not seem to have anything = to > do with clang at all. It was the only bit of bsd.sys.mk that was needed. Warner --Apple-Mail=_A1D24157-531D-41DD-BA47-BBF8AA78E05F Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJUpMk5AAoJEGwc0Sh9sBEA2rQP+gPkRpZsLXCeUhB6ugqMJYbl zEIRp/ZMZKoXBW0qFHqXmzbnI1zW3er+GyKIyV1FUD0YebzbY4Mtrak20vzkThbs 3kzey2tEzaLXlEu6mfv4FXszbwTY/ndrBvBvACj/7pIfO3YCH061lSinjzq0a1wM Az3cWibF4dMVwp7QA1k/rypyB+mHwmP4j5UQs7YnTHVttWNBn6okIX6PRr9xKpv3 kKOlyEjLNGZ4+P08v3IEfIy6ndm8Et0kjDcve+09P4HHYEfRCb6sMgCWCoDbwScH Lz7Hf5SSl+svd9j5cC0xqZCRdyUdNtuCn4Q9oEKX/XtiyzpgaooImgBderTg5pcv 7IQYBAyNcL1Swak+zETdOJFjoWRiuKjYPTktm4ACEyFt4INxMlv3KrhlS9kNu/80 JQUo/oI1TxsZih5RwZX+qeqW7Xj1m5RXPpiYRCe6P4KbIk9HnzYwPDTCGFZy6vQk d0kavJXu85KEKZl5+MCVaxh5I/MvWs8lZq7aTGkESkBI3ENIUsZf2xLjML0Nt7ih dxzED07sByBtJZyJmdrinmaJ++ermaV0LN6XT7WTHa3eDlFGf+mw2RvjsHbEBWxU SQG5vepL3N2C+vZvowSTQT+P+xWeHFmrdis4VuGlQmhSazZmVGPbh/nO1f6Pw/pd ZFJZ9+BbnjIootJhqw4L =zpqP -----END PGP SIGNATURE----- --Apple-Mail=_A1D24157-531D-41DD-BA47-BBF8AA78E05F-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 04:15:58 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 303D26D1; Thu, 1 Jan 2015 04:15:58 +0000 (UTC) Received: from mail-pd0-x22d.google.com (mail-pd0-x22d.google.com [IPv6:2607:f8b0:400e:c02::22d]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E8B5166FB4; Thu, 1 Jan 2015 04:15:57 +0000 (UTC) Received: by mail-pd0-f173.google.com with SMTP id ft15so21820434pdb.32; Wed, 31 Dec 2014 20:15:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=Fs+iPn/X4mbrlNFL4toLBqj5o6Q8MPH0mVo9nw78ngE=; b=EjMsrhK+iHJRsR0ITcAHh3E5aqIGk7gv3hvJbRBFDSTZFdDiOEJ0vzD7bAyffI7Ug4 1kUVzStL8+jJSDRO8GjbMkKzI9VIXswVUh1gK4Jj37k1NePXlcEJW0Y/XYjDRmhAVikn fSLo59lc+MYoEswnJvcKjfxHKwrEzh7aU6EazBE23DHnEHh07Y0nIJCmbmHebC9AKNrR 41LeobWLDDkRGu5grLUAasFjc59WcHjvbmt/n8ZmeX2B++qD0wwxZTEHkYdddITuNgY6 k77J53i6Bdkf2mgEz9OwxoJKK1l6LzGwDeNL7k3bKn7lieHQFOIKKjsHczODaK1bI6O6 FDcw== X-Received: by 10.70.123.10 with SMTP id lw10mr100824619pdb.161.1420085757410; Wed, 31 Dec 2014 20:15:57 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:89e5:192b:a505:2a25? ([2601:8:ab80:7d6:89e5:192b:a505:2a25]) by mx.google.com with ESMTPSA id rh11sm42566630pdb.66.2014.12.31.20.15.56 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 20:15:56 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_954921B5-610B-4E89-A6FF-453E862FCFC8"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf From: Garrett Cooper In-Reply-To: <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> Date: Wed, 31 Dec 2014 20:15:55 -0800 Message-Id: References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> To: Warner Losh X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, Warner Losh , svn-src-all@freebsd.org, src-committers , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 04:15:58 -0000 --Apple-Mail=_954921B5-610B-4E89-A6FF-453E862FCFC8 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Dec 31, 2014, at 20:12, Warner Losh wrote: >> On Dec 31, 2014, at 8:52 PM, Dimitry Andric wrote: >>=20 >> On 01 Jan 2015, at 03:00, Warner Losh wrote: >>>=20 >>> Author: imp >>> Date: Thu Jan 1 02:00:04 2015 >>> New Revision: 276488 >>> URL: https://svnweb.freebsd.org/changeset/base/276488 >>>=20 >>> Log: >>> Fix module builds on arm (and maybe others) by turning off a whole >>> raft of new warnings that appear to be on by default in clang 3.5.0. >>> Fix RPI-B build issues with new clang not liking the ability to pass >>> arbitrary flags to as, since some flags are more arbitrary (and thus >>> verboten) than others. >>>=20 >>> These warnings should be actually fixed in the code, but this is a >>> band-aide to get things (almost) building again. >>>=20 >>> Modified: >>> head/share/mk/bsd.kmod.mk >>> head/share/mk/bsd.sys.mk >>> head/sys/arm/broadcom/bcm2835/std.bcm2835 >>> head/sys/conf/kern.mk >>>=20 >>> Modified: head/share/mk/bsd.kmod.mk >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/share/mk/bsd.kmod.mk Thu Jan 1 01:43:00 2015 = (r276487) >>> +++ head/share/mk/bsd.kmod.mk Thu Jan 1 02:00:04 2015 = (r276488) >>> @@ -13,5 +13,3 @@ SYSDIR=3D ${_dir} >>> .endif >>>=20 >>> .include "${SYSDIR}/conf/kmod.mk" >>> - >>> -.include >>>=20 >>> Modified: head/share/mk/bsd.sys.mk >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/share/mk/bsd.sys.mk Thu Jan 1 01:43:00 2015 = (r276487) >>> +++ head/share/mk/bsd.sys.mk Thu Jan 1 02:00:04 2015 = (r276488) >>> @@ -110,11 +110,7 @@ CWARNFLAGS+=3D -Wno-format >>> CWARNFLAGS+=3D -Wno-unknown-pragmas >>> .endif # IGNORE_PRAGMA >>>=20 >>> -.if ${COMPILER_TYPE} =3D=3D "clang" >>> -# Would love to do this unconditionally, but can't due to its use = in >>> -# kernel build coupled with CFLAGS.${TARGET} feature >>> CLANG_NO_IAS=3D -no-integrated-as >>> -.endif >>> CLANG_OPT_SMALL=3D -mstack-alignment=3D8 -mllvm -inline-threshold=3D3\= >>> -mllvm -simplifycfg-dup-ret -mllvm -enable-gvn=3Dfalse >>> CFLAGS.clang+=3D -Qunused-arguments >>=20 >> This should not be removed from bsd.sys.mk, since other things depend = on >> it, are you sure that you want this? :) >=20 > I may be wrong here for boot stuff that uses it. >=20 >> As far as I know, there are still a few places in the tree that use = the >> CLANG_NO_IAS macro. It would be nice if those all went away, though=85= >=20 > Only for boot. Thanks, though I think they may be CFLAGS.clang +=3D = there. >=20 >> Modified: head/sys/arm/broadcom/bcm2835/std.bcm2835 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 = 01:43:00 2015 (r276487) >>> +++ head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 = 02:00:04 2015 (r276488) >>> @@ -2,7 +2,7 @@ >>>=20 >>> machine arm armv6 >>> cpu CPU_ARM1176 >>> -makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s = -Wa,-mcpu=3Darm1176jzf-s" >>> +makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s" >>>=20 >>> files "../broadcom/bcm2835/files.bcm2835" >>>=20 >>>=20 >>> Modified: head/sys/conf/kern.mk >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/conf/kern.mk Thu Jan 1 01:43:00 2015 = (r276487) >>> +++ head/sys/conf/kern.mk Thu Jan 1 02:00:04 2015 = (r276488) >>> @@ -164,4 +164,26 @@ CFLAGS+=3D -fstack-protector >>> CFLAGS+=3D -gdwarf-2 >>> .endif >>>=20 >>> +# A whole bunch of new default warnings in clang 3.5 subpress for = now until >>> +# this can be cleaned up. >>> +.if ${COMPILER_VERSION} >=3D 30500 >>> +CFLAGS.clang+=3D -Wno-pointer-sign -Wno-constant-conversion = -Wno-format \ >>> + -Wno-shift-count-negative -Wno-tautological-pointer-compare \ >>> + -Wno-shift-count-overflow -Wno-tautological-compare >>> +.endif >>> + >>> CFLAGS+=3D ${CFLAGS.${COMPILER_TYPE}} >>=20 >> Note that for x86, all of these warnings were already either fixed or >> suppressed. I assume this will be fleshed out later? >=20 > Yea, but since a build universe wasn=92t done, they were present in = the > build. They are harmless on other architectures. >=20 >>> +# Tell bmake not to mistake standard targets for things to be = searched for >>> +# or expect to ever be up-to-date. >>> +PHONY_NOTMAIN =3D afterdepend afterinstall all beforedepend = beforeinstall \ >>> + beforelinking build build-tools buildfiles buildincludes = \ >>> + checkdpadd clean cleandepend cleandir cleanobj configure = \ >>> + depend dependall distclean distribute exe \ >>> + html includes install installfiles installincludes lint = \ >>> + obj objlink objs objwarn realall realdepend \ >>> + realinstall regress subdir-all subdir-depend = subdir-install \ >>> + tags whereobj >>> + >>> +.PHONY: ${PHONY_NOTMAIN} >>> +.NOTMAIN: ${PHONY_NOTMAIN} >>>=20 >>=20 >> Was this latter part intentional? It does not seem to have anything = to >> do with clang at all. >=20 > It was the only bit of bsd.sys.mk that was needed. Unfortunately that broke the build on all architectures where = bce is built as -std=3D was not being passed to the compiler. Jenkins = reported an error with bce: = https://jenkins.freebsd.org/job/FreeBSD_HEAD_sparc64/225/changes , and I = committed a change to bring back that support here: = https://svnweb.freebsd.org/changeset/base/276493 . Please revert it if = it wasn=92t correct. Thanks! --Apple-Mail=_954921B5-610B-4E89-A6FF-453E862FCFC8 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpMn7AAoJEMZr5QU6S73eG/sH/3lFGhtQgHR1824vXMXDa2W2 lbvycp+YImJdTKur+PafVHVrxIJJG3NxXq1M+Jw4AJdrhGbgGmY8ylpd6UudVdGM lf2u6cPi4VPJ/DUC4RTImbqU/SyQBm3x99FIGoD1HTRHlkZf7NzZ4liRuhgxi45e 9T12sP0EQbAn0ed0CnHFHkynIhIBI6/2nrV9kZlXBfnda0TJxMOxdbTnI5wT0APJ hmn/y3IRsWlQoUlhOQ02rNuesu1S40ykiRSPnO5MDUYYXH7ZDl0Pxo8sJMpJ2UGI RZyBgjO74kPgqfNW55+gIFmUkehtWKeZ6ON5P+fcENcQuT/eV4w2EOvshjzK64w= =5jya -----END PGP SIGNATURE----- --Apple-Mail=_954921B5-610B-4E89-A6FF-453E862FCFC8-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 04:26:46 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 30F969A9; Thu, 1 Jan 2015 04:26:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1DCEB670AC; Thu, 1 Jan 2015 04:26:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t014Qj43076648; Thu, 1 Jan 2015 04:26:45 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t014QjqN076647; Thu, 1 Jan 2015 04:26:45 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201501010426.t014QjqN076647@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 1 Jan 2015 04:26:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276494 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 04:26:46 -0000 Author: imp Date: Thu Jan 1 04:26:45 2015 New Revision: 276494 URL: https://svnweb.freebsd.org/changeset/base/276494 Log: Eliminate bsd.sys.mk on purpose. Do not put it back. Modified: head/share/mk/bsd.kmod.mk Modified: head/share/mk/bsd.kmod.mk ============================================================================== --- head/share/mk/bsd.kmod.mk Thu Jan 1 04:10:56 2015 (r276493) +++ head/share/mk/bsd.kmod.mk Thu Jan 1 04:26:45 2015 (r276494) @@ -13,5 +13,3 @@ SYSDIR= ${_dir} .endif .include "${SYSDIR}/conf/kmod.mk" - -.include From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 04:44:27 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0C1EBCB2; Thu, 1 Jan 2015 04:44:27 +0000 (UTC) Received: from mail-pa0-x235.google.com (mail-pa0-x235.google.com [IPv6:2607:f8b0:400e:c03::235]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C2A146727E; Thu, 1 Jan 2015 04:44:26 +0000 (UTC) Received: by mail-pa0-f53.google.com with SMTP id kq14so21899369pab.26; Wed, 31 Dec 2014 20:44:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=WJ+UvBe/yy+fQpe3Q9asEUQ5vBaXxIaz5TkitTzrQok=; b=Ki7N/IDXrRV2ztX0haXefWAPH/OmGlo/FiAIrRpeARVxF1c9rZt330jFQOrWMzUQDg SR+vRJCh09i1TkJNfTzba3uDBJBC9BOmvqs435DZibyXoLAxq1zhaQdghMfHH9+JoKQo z3v206zA+DnT/nsMl4UORR1f4PEB9EQpWUTWswCiCZBe9rN/AzBGi0R6F+jPauIKOPf/ brgDCMperC5tWP5fGBZMII0tO72MOx1WyPMl6IjXZlBbqYB69wcnXu+ISW2QY2vFdPAd 17pxUC2TaTukx+vCazzShn/wgiO4PABq8oZdqA3DLK3ftgsXrhx9gNMqJBTF94pD0ZfT V/vQ== X-Received: by 10.68.69.81 with SMTP id c17mr110943100pbu.107.1420087466177; Wed, 31 Dec 2014 20:44:26 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:89e5:192b:a505:2a25? ([2601:8:ab80:7d6:89e5:192b:a505:2a25]) by mx.google.com with ESMTPSA id i5sm42913722pat.6.2014.12.31.20.44.25 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 20:44:25 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_93BF4834-6B1A-4397-A0BF-AD22A4D2078D"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf From: Garrett Cooper In-Reply-To: Date: Wed, 31 Dec 2014 20:44:24 -0800 Message-Id: References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> To: Warner Losh X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, Warner Losh , svn-src-all@freebsd.org, src-committers , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 04:44:27 -0000 --Apple-Mail=_93BF4834-6B1A-4397-A0BF-AD22A4D2078D Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Dec 31, 2014, at 20:25, Warner Losh wrote: >> On Dec 31, 2014, at 9:15 PM, Garrett Cooper = wrote: >>=20 >> On Dec 31, 2014, at 20:12, Warner Losh wrote: >>=20 >>>> On Dec 31, 2014, at 8:52 PM, Dimitry Andric = wrote: >>>>=20 >>>> On 01 Jan 2015, at 03:00, Warner Losh wrote: >>>>>=20 >>>>> Author: imp >>>>> Date: Thu Jan 1 02:00:04 2015 >>>>> New Revision: 276488 >>>>> URL: https://svnweb.freebsd.org/changeset/base/276488 >>>>>=20 >>>>> Log: >>>>> Fix module builds on arm (and maybe others) by turning off a whole >>>>> raft of new warnings that appear to be on by default in clang = 3.5.0. >>>>> Fix RPI-B build issues with new clang not liking the ability to = pass >>>>> arbitrary flags to as, since some flags are more arbitrary (and = thus >>>>> verboten) than others. >>>>>=20 >>>>> These warnings should be actually fixed in the code, but this is a >>>>> band-aide to get things (almost) building again. >>>>>=20 >>>>> Modified: >>>>> head/share/mk/bsd.kmod.mk >>>>> head/share/mk/bsd.sys.mk >>>>> head/sys/arm/broadcom/bcm2835/std.bcm2835 >>>>> head/sys/conf/kern.mk >>>>>=20 >>>>> Modified: head/share/mk/bsd.kmod.mk >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/share/mk/bsd.kmod.mk Thu Jan 1 01:43:00 2015 = (r276487) >>>>> +++ head/share/mk/bsd.kmod.mk Thu Jan 1 02:00:04 2015 = (r276488) >>>>> @@ -13,5 +13,3 @@ SYSDIR=3D ${_dir} >>>>> .endif >>>>>=20 >>>>> .include "${SYSDIR}/conf/kmod.mk" >>>>> - >>>>> -.include >>>>>=20 >>>>> Modified: head/share/mk/bsd.sys.mk >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/share/mk/bsd.sys.mk Thu Jan 1 01:43:00 2015 = (r276487) >>>>> +++ head/share/mk/bsd.sys.mk Thu Jan 1 02:00:04 2015 = (r276488) >>>>> @@ -110,11 +110,7 @@ CWARNFLAGS+=3D -Wno-format >>>>> CWARNFLAGS+=3D -Wno-unknown-pragmas >>>>> .endif # IGNORE_PRAGMA >>>>>=20 >>>>> -.if ${COMPILER_TYPE} =3D=3D "clang" >>>>> -# Would love to do this unconditionally, but can't due to its use = in >>>>> -# kernel build coupled with CFLAGS.${TARGET} feature >>>>> CLANG_NO_IAS=3D -no-integrated-as >>>>> -.endif >>>>> CLANG_OPT_SMALL=3D -mstack-alignment=3D8 -mllvm = -inline-threshold=3D3\ >>>>> -mllvm -simplifycfg-dup-ret -mllvm -enable-gvn=3Dfalse >>>>> CFLAGS.clang+=3D -Qunused-arguments >>>>=20 >>>> This should not be removed from bsd.sys.mk, since other things = depend on >>>> it, are you sure that you want this? :) >>>=20 >>> I may be wrong here for boot stuff that uses it. >>>=20 >>>> As far as I know, there are still a few places in the tree that use = the >>>> CLANG_NO_IAS macro. It would be nice if those all went away, = though=85 >>>=20 >>> Only for boot. Thanks, though I think they may be CFLAGS.clang +=3D = there. >>>=20 >>>> Modified: head/sys/arm/broadcom/bcm2835/std.bcm2835 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 = 01:43:00 2015 (r276487) >>>>> +++ head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 = 02:00:04 2015 (r276488) >>>>> @@ -2,7 +2,7 @@ >>>>>=20 >>>>> machine arm armv6 >>>>> cpu CPU_ARM1176 >>>>> -makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s = -Wa,-mcpu=3Darm1176jzf-s" >>>>> +makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s" >>>>>=20 >>>>> files "../broadcom/bcm2835/files.bcm2835" >>>>>=20 >>>>>=20 >>>>> Modified: head/sys/conf/kern.mk >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/conf/kern.mk Thu Jan 1 01:43:00 2015 = (r276487) >>>>> +++ head/sys/conf/kern.mk Thu Jan 1 02:00:04 2015 = (r276488) >>>>> @@ -164,4 +164,26 @@ CFLAGS+=3D -fstack-protector >>>>> CFLAGS+=3D -gdwarf-2 >>>>> .endif >>>>>=20 >>>>> +# A whole bunch of new default warnings in clang 3.5 subpress for = now until >>>>> +# this can be cleaned up. >>>>> +.if ${COMPILER_VERSION} >=3D 30500 >>>>> +CFLAGS.clang+=3D -Wno-pointer-sign -Wno-constant-conversion = -Wno-format \ >>>>> + -Wno-shift-count-negative -Wno-tautological-pointer-compare \ >>>>> + -Wno-shift-count-overflow -Wno-tautological-compare >>>>> +.endif >>>>> + >>>>> CFLAGS+=3D ${CFLAGS.${COMPILER_TYPE}} >>>>=20 >>>> Note that for x86, all of these warnings were already either fixed = or >>>> suppressed. I assume this will be fleshed out later? >>>=20 >>> Yea, but since a build universe wasn=92t done, they were present in = the >>> build. They are harmless on other architectures. >>>=20 >>>>> +# Tell bmake not to mistake standard targets for things to be = searched for >>>>> +# or expect to ever be up-to-date. >>>>> +PHONY_NOTMAIN =3D afterdepend afterinstall all beforedepend = beforeinstall \ >>>>> + beforelinking build build-tools buildfiles buildincludes = \ >>>>> + checkdpadd clean cleandepend cleandir cleanobj configure = \ >>>>> + depend dependall distclean distribute exe \ >>>>> + html includes install installfiles installincludes lint = \ >>>>> + obj objlink objs objwarn realall realdepend \ >>>>> + realinstall regress subdir-all subdir-depend = subdir-install \ >>>>> + tags whereobj >>>>> + >>>>> +.PHONY: ${PHONY_NOTMAIN} >>>>> +.NOTMAIN: ${PHONY_NOTMAIN} >>>>>=20 >>>>=20 >>>> Was this latter part intentional? It does not seem to have = anything to >>>> do with clang at all. >>>=20 >>> It was the only bit of bsd.sys.mk that was needed. >>=20 >> Unfortunately that broke the build on all architectures where = bce is built as -std=3D was not being passed to the compiler. Jenkins = reported an error with bce: = https://jenkins.freebsd.org/job/FreeBSD_HEAD_sparc64/225/changes , and I = committed a change to bring back that support here: = https://svnweb.freebsd.org/changeset/base/276493 . Please revert it if = it wasn=92t correct. >=20 > This change is wrong. bsd.sys.mk was eliminated on purpose, dammit. Sorry. Should have asked first. Now the build is broken on all = architectures :/. What next? --Apple-Mail=_93BF4834-6B1A-4397-A0BF-AD22A4D2078D Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpNCoAAoJEMZr5QU6S73ec60IALaKG80ebUn9xBzixLSn3qil D/a2ePdAciddpkX7Y36TisT62TjyE/Z4ryu1T77CNsxhwASxuREiQCitpAciPznE mL4apMJryxgTuzbvLJy1oB/RyDo437RADs53SJQkJh17AEsaJPGtU1nvrn2flDU0 f5mTcfjQr3Zh96Zs/PjS2d5zK2/b/BGWUE+YYuFJ8zbs9rCdF0sFuzBV+x+H7M/Q fmWcMPJLc4krrA1ngfG1VYglm2wLxsuSI3RgCkemXCq7+eBp9eb2exctntyAiBwH HXFRagqwenDCWtIKeNjH45tHigBCUhYspAa/xiZdWzGN56frZxz6VedL/rX7rco= =6duE -----END PGP SIGNATURE----- --Apple-Mail=_93BF4834-6B1A-4397-A0BF-AD22A4D2078D-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 04:55:53 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 980EDE83 for ; Thu, 1 Jan 2015 04:55:53 +0000 (UTC) Received: from mail-pa0-f53.google.com (mail-pa0-f53.google.com [209.85.220.53]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 62A4B67369 for ; Thu, 1 Jan 2015 04:55:53 +0000 (UTC) Received: by mail-pa0-f53.google.com with SMTP id kq14so21909346pab.26 for ; Wed, 31 Dec 2014 20:55:46 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:mime-version:content-type:from :in-reply-to:date:cc:message-id:references:to; bh=FcmozSK/SaxGxJKauNziApNJgGi4075G7aV8GmSmY7M=; b=UIDPxlnaSsb/AYmDMm1/89kZpvHSXdiwQBzR0tdFcjSMs/zNJlcukGQRdwRjHoFaLW pOlC+ZqdDHeRL33G42DLDBw/F1zUU6CRtZuqJjadcZqzRiwzUogOQQOwAi6GJLnZrBph FS5Ggdf9L2msBdLLu/R6Y8w75Jg+4kzYo6h+PckOEhJFfdtL8GMbeV7rW4jAVYhuKAAa mZ2Qb/tMESxG31XefBBBaVnwWlX7RTiCKo7BWepJpC+pssOhkTYhQDmU8xrqCKjFxyH6 VG4YuDmMjyNsZ8Te3ofeQIkQihHKaAZGllcFxplRfnCops6C60dcoaA3wWvNqLIyG2Fv 7AJg== X-Gm-Message-State: ALoCoQkjNfyEB9/uoeK02d3UpASJr7ZiMaOP7dwNUIa3If2/1t04vbMbMApqkOAjDnQHiGrqMVcZ X-Received: by 10.70.61.37 with SMTP id m5mr111719854pdr.29.1420086355771; Wed, 31 Dec 2014 20:25:55 -0800 (PST) Received: from [10.64.25.37] ([69.53.236.236]) by mx.google.com with ESMTPSA id dn2sm21485219pdb.12.2014.12.31.20.25.53 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 20:25:54 -0800 (PST) Sender: Warner Losh Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_A5BB1A90-23A6-4E51-9241-C1451572A585"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5b3 From: Warner Losh In-Reply-To: Date: Wed, 31 Dec 2014 21:25:51 -0700 Message-Id: References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> To: Garrett Cooper X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, Warner Losh , svn-src-all@freebsd.org, src-committers , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 04:55:53 -0000 --Apple-Mail=_A5BB1A90-23A6-4E51-9241-C1451572A585 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 > On Dec 31, 2014, at 9:15 PM, Garrett Cooper = wrote: >=20 > On Dec 31, 2014, at 20:12, Warner Losh wrote: >=20 >>> On Dec 31, 2014, at 8:52 PM, Dimitry Andric wrote: >>>=20 >>> On 01 Jan 2015, at 03:00, Warner Losh wrote: >>>>=20 >>>> Author: imp >>>> Date: Thu Jan 1 02:00:04 2015 >>>> New Revision: 276488 >>>> URL: https://svnweb.freebsd.org/changeset/base/276488 >>>>=20 >>>> Log: >>>> Fix module builds on arm (and maybe others) by turning off a whole >>>> raft of new warnings that appear to be on by default in clang = 3.5.0. >>>> Fix RPI-B build issues with new clang not liking the ability to = pass >>>> arbitrary flags to as, since some flags are more arbitrary (and = thus >>>> verboten) than others. >>>>=20 >>>> These warnings should be actually fixed in the code, but this is a >>>> band-aide to get things (almost) building again. >>>>=20 >>>> Modified: >>>> head/share/mk/bsd.kmod.mk >>>> head/share/mk/bsd.sys.mk >>>> head/sys/arm/broadcom/bcm2835/std.bcm2835 >>>> head/sys/conf/kern.mk >>>>=20 >>>> Modified: head/share/mk/bsd.kmod.mk >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/share/mk/bsd.kmod.mk Thu Jan 1 01:43:00 2015 = (r276487) >>>> +++ head/share/mk/bsd.kmod.mk Thu Jan 1 02:00:04 2015 = (r276488) >>>> @@ -13,5 +13,3 @@ SYSDIR=3D ${_dir} >>>> .endif >>>>=20 >>>> .include "${SYSDIR}/conf/kmod.mk" >>>> - >>>> -.include >>>>=20 >>>> Modified: head/share/mk/bsd.sys.mk >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/share/mk/bsd.sys.mk Thu Jan 1 01:43:00 2015 = (r276487) >>>> +++ head/share/mk/bsd.sys.mk Thu Jan 1 02:00:04 2015 = (r276488) >>>> @@ -110,11 +110,7 @@ CWARNFLAGS+=3D -Wno-format >>>> CWARNFLAGS+=3D -Wno-unknown-pragmas >>>> .endif # IGNORE_PRAGMA >>>>=20 >>>> -.if ${COMPILER_TYPE} =3D=3D "clang" >>>> -# Would love to do this unconditionally, but can't due to its use = in >>>> -# kernel build coupled with CFLAGS.${TARGET} feature >>>> CLANG_NO_IAS=3D -no-integrated-as >>>> -.endif >>>> CLANG_OPT_SMALL=3D -mstack-alignment=3D8 -mllvm = -inline-threshold=3D3\ >>>> -mllvm -simplifycfg-dup-ret -mllvm -enable-gvn=3Dfalse >>>> CFLAGS.clang+=3D -Qunused-arguments >>>=20 >>> This should not be removed from bsd.sys.mk, since other things = depend on >>> it, are you sure that you want this? :) >>=20 >> I may be wrong here for boot stuff that uses it. >>=20 >>> As far as I know, there are still a few places in the tree that use = the >>> CLANG_NO_IAS macro. It would be nice if those all went away, = though=85 >>=20 >> Only for boot. Thanks, though I think they may be CFLAGS.clang +=3D = there. >>=20 >>> Modified: head/sys/arm/broadcom/bcm2835/std.bcm2835 >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 = 01:43:00 2015 (r276487) >>>> +++ head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan 1 = 02:00:04 2015 (r276488) >>>> @@ -2,7 +2,7 @@ >>>>=20 >>>> machine arm armv6 >>>> cpu CPU_ARM1176 >>>> -makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s = -Wa,-mcpu=3Darm1176jzf-s" >>>> +makeoptions CONF_CFLAGS=3D"-mcpu=3Darm1176jzf-s" >>>>=20 >>>> files "../broadcom/bcm2835/files.bcm2835" >>>>=20 >>>>=20 >>>> Modified: head/sys/conf/kern.mk >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/sys/conf/kern.mk Thu Jan 1 01:43:00 2015 = (r276487) >>>> +++ head/sys/conf/kern.mk Thu Jan 1 02:00:04 2015 = (r276488) >>>> @@ -164,4 +164,26 @@ CFLAGS+=3D -fstack-protector >>>> CFLAGS+=3D -gdwarf-2 >>>> .endif >>>>=20 >>>> +# A whole bunch of new default warnings in clang 3.5 subpress for = now until >>>> +# this can be cleaned up. >>>> +.if ${COMPILER_VERSION} >=3D 30500 >>>> +CFLAGS.clang+=3D -Wno-pointer-sign -Wno-constant-conversion = -Wno-format \ >>>> + -Wno-shift-count-negative -Wno-tautological-pointer-compare \ >>>> + -Wno-shift-count-overflow -Wno-tautological-compare >>>> +.endif >>>> + >>>> CFLAGS+=3D ${CFLAGS.${COMPILER_TYPE}} >>>=20 >>> Note that for x86, all of these warnings were already either fixed = or >>> suppressed. I assume this will be fleshed out later? >>=20 >> Yea, but since a build universe wasn=92t done, they were present in = the >> build. They are harmless on other architectures. >>=20 >>>> +# Tell bmake not to mistake standard targets for things to be = searched for >>>> +# or expect to ever be up-to-date. >>>> +PHONY_NOTMAIN =3D afterdepend afterinstall all beforedepend = beforeinstall \ >>>> + beforelinking build build-tools buildfiles buildincludes = \ >>>> + checkdpadd clean cleandepend cleandir cleanobj configure = \ >>>> + depend dependall distclean distribute exe \ >>>> + html includes install installfiles installincludes lint = \ >>>> + obj objlink objs objwarn realall realdepend \ >>>> + realinstall regress subdir-all subdir-depend = subdir-install \ >>>> + tags whereobj >>>> + >>>> +.PHONY: ${PHONY_NOTMAIN} >>>> +.NOTMAIN: ${PHONY_NOTMAIN} >>>>=20 >>>=20 >>> Was this latter part intentional? It does not seem to have anything = to >>> do with clang at all. >>=20 >> It was the only bit of bsd.sys.mk that was needed. >=20 > Unfortunately that broke the build on all architectures where = bce is built as -std=3D was not being passed to the compiler. Jenkins = reported an error with bce: = https://jenkins.freebsd.org/job/FreeBSD_HEAD_sparc64/225/changes , and I = committed a change to bring back that support here: = https://svnweb.freebsd.org/changeset/base/276493 . Please revert it if = it wasn=92t correct. This change is wrong. bsd.sys.mk was eliminated on purpose, dammit. Warner --Apple-Mail=_A5BB1A90-23A6-4E51-9241-C1451572A585 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJUpMxQAAoJEGwc0Sh9sBEAVVsQAOP9uJYBSw8fu9WJMIXW3VES FpzjAnFjdg50/AvQfGU2XJc5tR3SLS7Z6KAf4RSKW3l6BYnUoqHZqhq7stE0za27 ex0OdEAHoBp7TAYXSrG6L77TROcOMiyA+ZgMcfZ1tY33Z8LSpxeqPEej0esxlLJ1 FKAzDWbgTBeOL90ORmcq34sre6Pev34WQL4gqEHOEVMF9J/DC5XrCRTVFzn/s/H9 cXxOwTDc22CF0BCN2k11fuzwRqE+iYVguLCwOee3y1Wxm0hraAlv6lhvZFbwBuW4 StXy/Rd2pn9AvZTQmyKLjXt9muTNNn7BeYaObr6HTJ26vgixWC8H4V6pCXo2WTHA TcQxFdDBvaamilgi5OgINa2146sCpWSFtMFr0FdttPfCP9///dDppbZcw0qfYtsH blrI4aXgW3F8zHKWbJqvkNA7BHALu/H6fScInymymkw/9Q7hjirq7+BWoDQyLkPo Cz4Z1ULwXfzI3cNGlVvbIFvTapQa+UPGcKs9f/sWiwFtRonyffmnF6M99g6DcUW5 Hd+WCDWafeyTZHoSh9U/1ZG63vKAzJjCxZSILiFYT3PwXyEeaYjum5qXxevsyghO 0/dJJJKE1TcORdd9kjQvo03umTJWmw7lbxQ4YPNYkrUO7+isSk5EoapcQcXIYuDF Cs7tDnJhbr+oDUvq0i9e =blje -----END PGP SIGNATURE----- --Apple-Mail=_A5BB1A90-23A6-4E51-9241-C1451572A585-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 05:35:26 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 62B402B8; Thu, 1 Jan 2015 05:35:26 +0000 (UTC) Received: from mail-pd0-x229.google.com (mail-pd0-x229.google.com [IPv6:2607:f8b0:400e:c02::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 24B5364019; Thu, 1 Jan 2015 05:35:26 +0000 (UTC) Received: by mail-pd0-f169.google.com with SMTP id z10so21899641pdj.14; Wed, 31 Dec 2014 21:35:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=jMOVii5XivsvBAC7Dkalo11B4aaVyUqjNK6XLhN4Pac=; b=HFV3bG+UoAGpFRRMwMdiI4sOAgaujQ5RVwtZ1298KWUal0u76NNS0WSNH48JsybpTp VaiEAc+DtVUKaQIMq07FmNeBYLskPK2panNSTInEa+6+qBChKUPGASxqZrJSgP8iZk1o VWNalCUw+aoy2xvkk5R85EJMGYhwvoUNRkY/yo+7z1PysFSXJxclsSlph+n5zaBNkBv2 QFjeSjpA5d05zAD5NOnJr4lcoxDiQvXqM+x+62sHzHbiiNsK2GVHhHq2df1pWGbVJ80g DiueTPqAT+5xgjnHl7mRmWVCqoO1/Pc+8GlBW1LqXI8IBb1JjzJlFqcFHhvV8PT4qab8 RGVg== X-Received: by 10.70.101.134 with SMTP id fg6mr110314587pdb.75.1420090525696; Wed, 31 Dec 2014 21:35:25 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:dd49:3e60:daf8:2ea9? ([2601:8:ab80:7d6:dd49:3e60:daf8:2ea9]) by mx.google.com with ESMTPSA id nh4sm42785585pdb.37.2014.12.31.21.35.24 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 21:35:25 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_E3C234D6-56A2-4189-90CC-686014D5E7F1"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf From: Garrett Cooper In-Reply-To: <4F74425F-68B9-4BA2-A962-6C1AA77B4C75@gmail.com> Date: Wed, 31 Dec 2014 21:35:23 -0800 Message-Id: References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> <4F74425F-68B9-4BA2-A962-6C1AA77B4C75@gmail.com> To: Warner Losh X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, Warner Losh , svn-src-all@freebsd.org, src-committers , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 05:35:26 -0000 --Apple-Mail=_E3C234D6-56A2-4189-90CC-686014D5E7F1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Dec 31, 2014, at 21:20, Garrett Cooper wrote: > On Dec 31, 2014, at 21:12, Garrett Cooper = wrote: >=20 >> On Dec 31, 2014, at 20:44, Garrett Cooper = wrote: >>=20 >>> On Dec 31, 2014, at 20:25, Warner Losh wrote: >>=20 >> =85 >>=20 >>>> This change is wrong. bsd.sys.mk was eliminated on purpose, dammit. >>>=20 >>> Sorry. Should have asked first. Now the build is broken on all = architectures :/. What next? >>=20 >> Also, that code has been in there for over a decade. It seems a bit = dangerous to remove it without at least a ports -exp or make tinderbox = run=85 >=20 > Hmmm=85 would it make sense to disable clang warnings from within = bsd.sys.mk, like we do with sparc64? > Thanks! >=20 > 117 .if ${MACHINE_CPUARCH} =3D=3D "sparc64" > 118 # Don't emit .cfi directives, since we must use GNU as on sparc64, = for now. > 119 CFLAGS.clang+=3D -fno-dwarf2-cfi-asm > 120 .endif # SPARC64 Or just disable -Werror...? --Apple-Mail=_E3C234D6-56A2-4189-90CC-686014D5E7F1 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEbBAEBCgAGBQJUpNybAAoJEMZr5QU6S73e9KQH+LvbJHrn5Tlw4aeyiBpnGrcP kROe5a0xSJbrFIoguz/7mN6Pab41Z2Q0aonHROshPnImFmNV1ZJWo1ATWJxF+/0N nBF3TGRKN+9p83iUmRv+ouyDbnqu+cyz8JtfmbyzmeNJPDOIIC/eS1iqcz8ViPZO qARjq4QZXza4j+2tzeoo6qnWg6Wlzz4ewGcC916MgchhMvWkThXP2LtqYbSxNSW3 qaLLbV/yXcBnovz7bHvw+1UMIRvk7EO71VVIWLZaj9qyt45AxEJrZLkNhA4p1K9m eEb+akJgBdc8Xa0z8/peWAMrA5G2p2oQmY9/a+ZcCXmK5yDTStuDZ+oWknxeQA== =JJEj -----END PGP SIGNATURE----- --Apple-Mail=_E3C234D6-56A2-4189-90CC-686014D5E7F1-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 05:12:49 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DD4861B4D; Thu, 1 Jan 2015 05:12:49 +0000 (UTC) Received: from mail-pa0-x229.google.com (mail-pa0-x229.google.com [IPv6:2607:f8b0:400e:c03::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9FFE567AB3; Thu, 1 Jan 2015 05:12:49 +0000 (UTC) Received: by mail-pa0-f41.google.com with SMTP id rd3so22331839pab.0; Wed, 31 Dec 2014 21:12:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=o9i+G0aHqNUyxp0P+tDkA1hCnlgTZgvmAC/q1/K5GL8=; b=MhwcTcAut2N+5QfaqIN8E/fwfRyYPQiOA41SOEfxNfpKHwxGGwA1OyBd5Czlj19uEZ j79PFHrY+/M2+UD6XYho409lizPfqK1+uIJ2Q7+M0Tkn6QcC+uHnZMQDrl7qRlyM8N4L hZNQS/0Cp0aQvNYxXH+zaAffqh7HEQJVSH21CfAX/jhv4aWOcG+Xus5Tv2rCyeWJ5f8D tN9oWinZI/RovuJ6BEVi7g6ihljqden2oTj0rlnwoA6Gpg9U1ffN2VKO2ziGJST5ibVS qfOEl7qy9QRLiyIkXskQiFinCSIeZMsq2HerQS0QxE3CAM+TV1iQEcNNXRcNr8I6jLEB ohGQ== X-Received: by 10.68.102.5 with SMTP id fk5mr110412825pbb.136.1420089169166; Wed, 31 Dec 2014 21:12:49 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:dd49:3e60:daf8:2ea9? ([2601:8:ab80:7d6:dd49:3e60:daf8:2ea9]) by mx.google.com with ESMTPSA id h2sm26213990pat.20.2014.12.31.21.12.48 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 21:12:48 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_769FD0CD-89E4-485A-AAD9-A89CF3A8F25B"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf From: Garrett Cooper In-Reply-To: Date: Wed, 31 Dec 2014 21:12:47 -0800 Message-Id: References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> To: Warner Losh X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, Warner Losh , svn-src-all@freebsd.org, src-committers , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 05:12:50 -0000 --Apple-Mail=_769FD0CD-89E4-485A-AAD9-A89CF3A8F25B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Dec 31, 2014, at 20:44, Garrett Cooper wrote: > On Dec 31, 2014, at 20:25, Warner Losh wrote: =85 >> This change is wrong. bsd.sys.mk was eliminated on purpose, dammit. >=20 > Sorry. Should have asked first. Now the build is broken on all = architectures :/. What next? Also, that code has been in there for over a decade. It seems a bit = dangerous to remove it without at least a ports -exp or make tinderbox = run=85 $ svn blame -r 231834 share/mk/bsd.kmod.mk | less 60963 peter # $FreeBSD$ 60963 peter=20 60963 peter # Search for kernel source tree in standard places. 130835 pjd .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. = ${.CURDIR}/../../../.. \ 183736 imp ${.CURDIR}/../../../../.. /sys /usr/src/sys 130835 pjd .if !defined(SYSDIR) && exists(${_dir}/kern/) && = exists(${_dir}/conf/kmod.mk) 60963 peter SYSDIR=3D ${_dir} 60963 peter .endif 60963 peter .endfor 130835 pjd .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \ 130835 pjd !exists(${SYSDIR}/conf/kmod.mk) 231834 imp .error Unable to locate the kernel source tree. Set = SYSDIR to override. 60963 peter .endif 60963 peter=20 60965 peter .include "${SYSDIR}/conf/kmod.mk" 76861 kris=20 76861 kris .include [ngie@fuji-current-amd64 /usr/src.svn]$ svn log -r 76861 ------------------------------------------------------------------------ r76861 | kris | 2001-05-19 16:18:21 -0700 (Sat, 19 May 2001) | 8 lines Bring in the WARNS directive from NetBSD, localized in a new bsd.sys.mk to avoid polluting sys.mk. This directive controls the addition of compiler warning flags to CFLAGS in a relatively compiler-neutral = manner. The idea is that WARNS can be set in Makefile.inc or in individual Makefiles as they become clean, to prevent the introduction of new warnings in the code. -Werror is added by default ------------------------------------------------------------------------ --Apple-Mail=_769FD0CD-89E4-485A-AAD9-A89CF3A8F25B Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpNdPAAoJEMZr5QU6S73exq0IAKGcNTbygmwPecOLmcOZBycQ WqX8sEdlgMrDlyItzv212Y38KX4gAUFDx/OBvZLMWZC/I/jO/6QTcNTZ7sIPfjFS o5jhcc6hDK93EPryYWCKD0J8KJuH+SH1Dx/JXoK/4sVULqXchUYAEZh9DQ0KcyYG wk6ZK/PWdt07jLWn63y5o5TxlTkpd7HAHVGtgyywFaMK+SHxF0NUn+Epvq/4/jwH MnV86q+cq2lxDwqz2QtXVplzbNE/CMUfACGo3oZvQhmF8brcxuuPVxnnnNmf6cvm emoJgE2e+aK9fnJXh7vCjeuxvImOklS+1uu848eYtLRPEXeuP7jn+WMGvVIUj/Q= =XObL -----END PGP SIGNATURE----- --Apple-Mail=_769FD0CD-89E4-485A-AAD9-A89CF3A8F25B-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 05:17:03 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9FD7D1D9A for ; Thu, 1 Jan 2015 05:17:03 +0000 (UTC) Received: from mail-pd0-f170.google.com (mail-pd0-f170.google.com [209.85.192.170]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 62A7167B20 for ; Thu, 1 Jan 2015 05:17:03 +0000 (UTC) Received: by mail-pd0-f170.google.com with SMTP id v10so21820684pde.15 for ; Wed, 31 Dec 2014 21:16:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:mime-version:content-type:from :in-reply-to:date:cc:message-id:references:to; bh=kOkVL2XIOz6RbrSOqweIIwLs0FogtGq7iuP1IVPUUg0=; b=OpJlCHFbo9IVE+j12AZTqcoBM20JP9th44k3Pn8VSb2dUFd1qGfhSHnRKQcADLi7h2 y6d0wBewO9CGjKIad6B3OsURZUSOZXSHRx2q9HRfJ2OrmVj1ds5M8MqARcBLo1Lpbylc i76PR5/9MtYIGfuCjkUQX5+G4Imqa/xheIKyoHeixehVqtFUC/p0jLRdROW/iBdDwuy/ UNET6ngvnRgQ9Uc/3Yqab/7emY596IAuO/efHVdEF3QXqVNDTps/MPXFQF0TP/GsbOWR Cot428GQMSHPv8nCpMilrJBD9NxDIjVtgbi22QiXSHhP6kKx34NCX1ccJqLCDTYttWLb U4Cg== X-Gm-Message-State: ALoCoQlwvb3lqmAkIM5zf9zpp9ll98sqI3IctMn/QUSVE/GI4H4I6E14RbtXVfosSSfVDS/UeWxA X-Received: by 10.68.138.229 with SMTP id qt5mr111845711pbb.62.1420089417180; Wed, 31 Dec 2014 21:16:57 -0800 (PST) Received: from [10.64.25.37] ([69.53.236.236]) by mx.google.com with ESMTPSA id rr9sm20120706pab.15.2014.12.31.21.16.55 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 21:16:56 -0800 (PST) Sender: Warner Losh Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_5846770E-0635-4D5D-8332-3CEE8270516C"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5b3 From: Warner Losh In-Reply-To: Date: Wed, 31 Dec 2014 22:16:53 -0700 Message-Id: <743CF9C2-4C38-44CF-8AF8-BD2EF8EBCAD7@bsdimp.com> References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> To: Garrett Cooper X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, Warner Losh , svn-src-all@freebsd.org, src-committers , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 05:17:03 -0000 --Apple-Mail=_5846770E-0635-4D5D-8332-3CEE8270516C Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 > On Dec 31, 2014, at 10:12 PM, Garrett Cooper = wrote: >=20 > On Dec 31, 2014, at 20:44, Garrett Cooper = wrote: >=20 >> On Dec 31, 2014, at 20:25, Warner Losh wrote: >=20 > =85 >=20 >>> This change is wrong. bsd.sys.mk was eliminated on purpose, dammit. >>=20 >> Sorry. Should have asked first. Now the build is broken on all = architectures :/. What next? >=20 > Also, that code has been in there for over a decade. It seems a bit = dangerous to remove it without at least a ports -exp or make tinderbox = run=85 True. However, this code has been wrong for a very long time since the = WARNS kris added were just for user land. Too bad the std stuff got = mixed in over the years. Warner > $ svn blame -r 231834 share/mk/bsd.kmod.mk | less > 60963 peter # $FreeBSD$ > 60963 peter > 60963 peter # Search for kernel source tree in standard places. > 130835 pjd .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. = ${.CURDIR}/../../../.. \ > 183736 imp ${.CURDIR}/../../../../.. /sys /usr/src/sys > 130835 pjd .if !defined(SYSDIR) && exists(${_dir}/kern/) && = exists(${_dir}/conf/kmod.mk) > 60963 peter SYSDIR=3D ${_dir} > 60963 peter .endif > 60963 peter .endfor > 130835 pjd .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || = \ > 130835 pjd !exists(${SYSDIR}/conf/kmod.mk) > 231834 imp .error Unable to locate the kernel source tree. Set = SYSDIR to override. > 60963 peter .endif > 60963 peter > 60965 peter .include "${SYSDIR}/conf/kmod.mk" > 76861 kris > 76861 kris .include > [ngie@fuji-current-amd64 /usr/src.svn]$ svn log -r 76861 > = ------------------------------------------------------------------------ > r76861 | kris | 2001-05-19 16:18:21 -0700 (Sat, 19 May 2001) | 8 lines >=20 > Bring in the WARNS directive from NetBSD, localized in a new = bsd.sys.mk > to avoid polluting sys.mk. This directive controls the addition of > compiler warning flags to CFLAGS in a relatively compiler-neutral = manner. >=20 > The idea is that WARNS can be set in Makefile.inc or in individual > Makefiles as they become clean, to prevent the introduction of new > warnings in the code. -Werror is added by default >=20 > = ------------------------------------------------------------------------ --Apple-Mail=_5846770E-0635-4D5D-8332-3CEE8270516C Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJUpNhFAAoJEGwc0Sh9sBEAw6AP/Rus2cyQNgRiBBJrRtG0KuU8 mTptCuUnmBS4NBQBAEMuexDYxzWxaamsKiTlkgJhnjfu2s0p/VPw7deqZJsYq0EW 7lNijQf0cbDRQVK89oEUkSf9F2JBtwpqYSSrS5LpL5LE60ghlxh3bf0ZL1bI2GSn 7VizZa6TDj3RTfB+FWXmUZoph8CypmKsBH+9ofLCdHAUeD4jLM/btZYY9zCG0UCt JEpy433YWT4bCCQv6sR+2J8X2bKTcfnaPbk/gxYQBDV6fUilD2bRCJSW/L7c1TOI 98kR7dcCtxMb2NBLe7Myyx5v7jSxQMftHrfrKBTZPF/+WAJTuxPwdUt9KyRwB9gm C2fIPh+xLl2YBmBARriKPKEy5yM5Dbhl1loO+QuskRjgc6wqssMAjnPVMrKnBnia UZZRwRLTjEXn1etp6zcv9Vp6hKUbYTKVflb4mFAtcZO9gJZ50GwzO2GROGX6OLK0 ZSeKweZcUf3uGWJBvHYKPdbYO9veoyfUI2NJZ0sEB+QsD4VM3N6++JEeYKfoDR/R cbzRBHlzFeQlxHMdxZAhkWexOA7XfzqNKc1uMtu+eytyXQede0qVnyq4AY5o8Chm xmPQABy+0MW3u0J10U22DoBMCateRNOnz1y+ElRkpOUlzBBi3i/fB7HoaM1Lx6XR Ljk96E65Fo/96ICXGk1s =hJeM -----END PGP SIGNATURE----- --Apple-Mail=_5846770E-0635-4D5D-8332-3CEE8270516C-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 05:20:07 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EF40E1E0D; Thu, 1 Jan 2015 05:20:06 +0000 (UTC) Received: from mail-pa0-x22b.google.com (mail-pa0-x22b.google.com [IPv6:2607:f8b0:400e:c03::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B118667B5A; Thu, 1 Jan 2015 05:20:06 +0000 (UTC) Received: by mail-pa0-f43.google.com with SMTP id kx10so22233280pab.16; Wed, 31 Dec 2014 21:20:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=ifd/6rpbcLrnN0S+fY/QzXAQqcAANt89YRnkmTLuRFA=; b=SyWaRc2SHKTuWvr/S+tx6EpF94hhdo3spqpPpVTAjhM88Hlvhz2z4uLc2tM4G+Ufal 0F1kg2K63MgzvF6XTm/Y+A5PlKU04NUJuU1mKfvsWv2n2FcnIs5x4mFa5vQDGzzpxR0n 133ggClwJk7kT+aGr/Z9bXd3CJhX+HQ976C99f/iCszcUcMxA/z/PDHhYs+KciyzFvMa wgwUsgB+zYbrign9gaI8dfIsXWSMOPgb5TPzRdfTHH/dSCZBwKUfjTvYaWlS6Uku0srJ pfOJBIt9WPAexvVL2TnLK/xT57s2FO+Nqdvd4iHmASzOMGsIo0S2z1YOVAozsHt7P1sT AKGQ== X-Received: by 10.68.224.6 with SMTP id qy6mr86589878pbc.155.1420089606277; Wed, 31 Dec 2014 21:20:06 -0800 (PST) Received: from [192.168.20.5] (c-98-247-240-204.hsd1.wa.comcast.net. [98.247.240.204]) by mx.google.com with ESMTPSA id h2sm3612792pdo.62.2014.12.31.21.20.05 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 31 Dec 2014 21:20:05 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_A88E76E6-B0CE-44A4-BAEC-E3D631A4BBF4"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf From: Garrett Cooper In-Reply-To: Date: Wed, 31 Dec 2014 21:20:01 -0800 Message-Id: <4F74425F-68B9-4BA2-A962-6C1AA77B4C75@gmail.com> References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> To: Warner Losh X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, Warner Losh , svn-src-all@freebsd.org, src-committers , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 05:20:07 -0000 --Apple-Mail=_A88E76E6-B0CE-44A4-BAEC-E3D631A4BBF4 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Dec 31, 2014, at 21:12, Garrett Cooper wrote: > On Dec 31, 2014, at 20:44, Garrett Cooper = wrote: >=20 >> On Dec 31, 2014, at 20:25, Warner Losh wrote: >=20 > =85 >=20 >>> This change is wrong. bsd.sys.mk was eliminated on purpose, dammit. >>=20 >> Sorry. Should have asked first. Now the build is broken on all = architectures :/. What next? >=20 > Also, that code has been in there for over a decade. It seems a bit = dangerous to remove it without at least a ports -exp or make tinderbox = run=85 Hmmm=85 would it make sense to disable clang warnings from within = bsd.sys.mk, like we do with sparc64? Thanks! 117 .if ${MACHINE_CPUARCH} =3D=3D "sparc64" 118 # Don't emit .cfi directives, since we must use GNU as on sparc64, = for now. 119 CFLAGS.clang+=3D -fno-dwarf2-cfi-asm 120 .endif # SPARC64 --Apple-Mail=_A88E76E6-B0CE-44A4-BAEC-E3D631A4BBF4 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpNkBAAoJEMZr5QU6S73eHBAH/0kn+vGupJqlebuLt77IGurg MwbEwYhr3sDjUhWlvhnpvr+AFzcaRVeqKo6qhFk1wZf6M0jRUH486L0D1B+FqOwF z1A6jMS0Y+PULIzkEEBGLhiN9g/v9vDreJgvZ/iq3YT4YRdhOOkUFrzMGThLMChE hDjN7SDZaw5BZilWWYRkTXQ1AqWXNqgVh82GXzRwAxhviDkQLEO8ydQKmcGx3ese dY4bLotw/ql6g0gVdta8KlowglKMpBwC0mlrCg6ccXocPoOLrLYjBAD/yyRvvnWb nt2IIpsa6XtBxUKC5bzkPCs3ggoTKQmH67C0JwoSGoU3q+D66duELu9HHhJnDLc= =FGFq -----END PGP SIGNATURE----- --Apple-Mail=_A88E76E6-B0CE-44A4-BAEC-E3D631A4BBF4-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 06:53:34 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6FE4B187; Thu, 1 Jan 2015 06:53:34 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5C1B666B77; Thu, 1 Jan 2015 06:53:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t016rYnF044945; Thu, 1 Jan 2015 06:53:34 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t016rYe3044944; Thu, 1 Jan 2015 06:53:34 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501010653.t016rYe3044944@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 1 Jan 2015 06:53:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276495 - head/usr.sbin/nfsd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 06:53:34 -0000 Author: delphij Date: Thu Jan 1 06:53:33 2015 New Revision: 276495 URL: https://svnweb.freebsd.org/changeset/base/276495 Log: Fix markup for minthreads and maxthreads. PR: 196403 MFC after: 2 weeks Modified: head/usr.sbin/nfsd/nfsd.8 Modified: head/usr.sbin/nfsd/nfsd.8 ============================================================================== --- head/usr.sbin/nfsd/nfsd.8 Thu Jan 1 04:26:45 2015 (r276494) +++ head/usr.sbin/nfsd/nfsd.8 Thu Jan 1 06:53:33 2015 (r276495) @@ -28,7 +28,7 @@ .\" @(#)nfsd.8 8.4 (Berkeley) 3/29/95 .\" $FreeBSD$ .\" -.Dd August 10, 2014 +.Dd January 1, 2015 .Dt NFSD 8 .Os .Sh NAME @@ -41,8 +41,8 @@ server .Op Fl arduteo .Op Fl n Ar num_servers .Op Fl h Ar bindip -.Op Fl maxthreads Ar max_threads -.Op Fl minthreads Ar min_threads +.Op Fl Fl maxthreads Ar max_threads +.Op Fl Fl minthreads Ar min_threads .Sh DESCRIPTION The .Nm @@ -78,14 +78,14 @@ service with without creating any servers. .It Fl n Ar threads Specifies how many servers to create. This option is equivalent to specifying -.Fl maxthreads +.Fl Fl maxthreads and -.Fl minthreads +.Fl Fl minthreads with their respective arguments to .Ar threads . -.It Fl maxthreads Ar threads +.It Fl Fl maxthreads Ar threads Specifies the maximum servers that will be kept around to service requests. -.It Fl minthreads Ar threads +.It Fl Fl minthreads Ar threads Specifies the minimum servers that will be kept around to service requests. .It Fl h Ar bindip Specifies which IP address or hostname to bind to on the local host. From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 07:03:01 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ABDC24AB; Thu, 1 Jan 2015 07:03:01 +0000 (UTC) Received: from mail.soaustin.net (pancho.soaustin.net [76.74.250.40]) by mx1.freebsd.org (Postfix) with ESMTP id 88BB166CAC; Thu, 1 Jan 2015 07:03:01 +0000 (UTC) Received: by mail.soaustin.net (Postfix, from userid 502) id 7105656083; Thu, 1 Jan 2015 01:03:00 -0600 (CST) Date: Thu, 1 Jan 2015 01:03:00 -0600 From: Mark Linimon To: Warner Losh Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf Message-ID: <20150101070300.GA27441@lonesome.com> References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Cc: src-committers , svn-src-all@freebsd.org, Dimitry Andric , svn-src-head@freebsd.org, Warner Losh , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 07:03:01 -0000 On Wed, Dec 31, 2014 at 09:25:51PM -0700, Warner Losh wrote: > This change is wrong. bsd.sys.mk was eliminated on purpose, dammit. Aw, our first bikeshed of the year. Sniff. I may cry ... Wait? The message is still dated 2014??? hgrrrr ... oh wait, the *commit* is UTC. I win!!!! mcl (in case you can't guess, happy new year y'all) From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 08:18:10 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A854D999; Thu, 1 Jan 2015 08:18:10 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 94803645DB; Thu, 1 Jan 2015 08:18:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t018IA1D081862; Thu, 1 Jan 2015 08:18:10 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t018I9Mh081859; Thu, 1 Jan 2015 08:18:09 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201501010818.t018I9Mh081859@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 1 Jan 2015 08:18:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276496 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 08:18:10 -0000 Author: imp Date: Thu Jan 1 08:18:08 2015 New Revision: 276496 URL: https://svnweb.freebsd.org/changeset/base/276496 Log: Move more of the warnings into kern.mk, as well as centralize that as the place where the C dialect is selected. Have a fairly long list of newly requires warning suppression for clang 3.5.0, also centralized in kern.mk. Survive the fallout of the removal of bsd.sys.mk from bsd.kmod.mk. Modified: head/sys/conf/kern.mk head/sys/conf/kern.pre.mk head/sys/conf/kmod.mk Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Thu Jan 1 06:53:33 2015 (r276495) +++ head/sys/conf/kern.mk Thu Jan 1 08:18:08 2015 (r276496) @@ -29,7 +29,12 @@ NO_WSOMETIMES_UNINITIALIZED= -Wno-error- # enough to error out the whole kernel build. Display them anyway, so there is # some incentive to fix them eventually. CWARNEXTRA?= -Wno-error-tautological-compare -Wno-error-empty-body \ - -Wno-error-parentheses-equality -Wno-error-unused-function + -Wno-error-parentheses-equality -Wno-error-unused-function \ + -Wno-error-pointer-sign -Wno-error-format -Wno-error-parentheses \ + -Wno-error-switch -Wno-error-switch \ + -Wno-error-shift-count-negative \ + -Wno-error-shift-count-overflow \ + -Wno-error-constant-conversion .endif .if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 40300 @@ -164,13 +169,7 @@ CFLAGS+= -fstack-protector CFLAGS+= -gdwarf-2 .endif -# A whole bunch of new default warnings in clang 3.5 subpress for now until -# this can be cleaned up. -.if ${COMPILER_VERSION} >= 30500 -CFLAGS.clang+= -Wno-pointer-sign -Wno-constant-conversion -Wno-format \ - -Wno-shift-count-negative -Wno-tautological-pointer-compare \ - -Wno-shift-count-overflow -Wno-tautological-compare -.endif +CFLAGS+= ${CWARNEXTRA} CFLAGS+= ${CFLAGS.${COMPILER_TYPE}} @@ -187,3 +186,17 @@ PHONY_NOTMAIN = afterdepend afterinstall .PHONY: ${PHONY_NOTMAIN} .NOTMAIN: ${PHONY_NOTMAIN} + +CSTD= c99 + +.if ${CSTD} == "k&r" +CFLAGS+= -traditional +.elif ${CSTD} == "c89" || ${CSTD} == "c90" +CFLAGS+= -std=iso9899:1990 +.elif ${CSTD} == "c94" || ${CSTD} == "c95" +CFLAGS+= -std=iso9899:199409 +.elif ${CSTD} == "c99" +CFLAGS+= -std=iso9899:1999 +.else # CSTD +CFLAGS+= -std=${CSTD} +.endif # CSTD Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Thu Jan 1 06:53:33 2015 (r276495) +++ head/sys/conf/kern.pre.mk Thu Jan 1 08:18:08 2015 (r276496) @@ -60,7 +60,6 @@ COPTFLAGS+= -fno-strict-aliasing .if !defined(NO_CPU_COPTFLAGS) COPTFLAGS+= ${_CPUCFLAGS} .endif -C_DIALECT= -std=c99 NOSTDINC= -nostdinc INCLUDES= ${NOSTDINC} ${INCLMAGIC} -I. -I$S @@ -88,7 +87,7 @@ INCLUDES+= -I$S/dev/cxgb -I$S/dev/cxgbe .endif -CFLAGS= ${COPTFLAGS} ${C_DIALECT} ${DEBUG} ${CWARNFLAGS} +CFLAGS= ${COPTFLAGS} ${DEBUG} ${CWARNFLAGS} CFLAGS+= ${INCLUDES} -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h CFLAGS_PARAM_INLINE_UNIT_GROWTH?=100 CFLAGS_PARAM_LARGE_FUNCTION_GROWTH?=1000 Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Thu Jan 1 06:53:33 2015 (r276495) +++ head/sys/conf/kmod.mk Thu Jan 1 08:18:08 2015 (r276496) @@ -89,7 +89,6 @@ CFLAGS+= -D_KERNEL CFLAGS+= -DKLD_MODULE # Don't use any standard or source-relative include directories. -CSTD= c99 NOSTDINC= -nostdinc CFLAGS:= ${CFLAGS:N-I*} ${NOSTDINC} ${INCLMAGIC} ${CFLAGS:M-I*} .if defined(KERNBUILDDIR) From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 08:24:51 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B375DB48 for ; Thu, 1 Jan 2015 08:24:51 +0000 (UTC) Received: from mail-pd0-f172.google.com (mail-pd0-f172.google.com [209.85.192.172]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7DF72646E2 for ; Thu, 1 Jan 2015 08:24:51 +0000 (UTC) Received: by mail-pd0-f172.google.com with SMTP id y13so22030972pdi.17 for ; Thu, 01 Jan 2015 00:24:50 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:mime-version:content-type:from :in-reply-to:date:cc:message-id:references:to; bh=nat1wEamgu/I87FE8RkxkMNJcnDavdTaMiB2rA6AIKY=; b=YKRwVzA4o2yZzeRcIdlYgYKrMhmHig5rTnxuNw5ZGGGAWWSHluX0FfidSM3K0SulWo IwbJl5O0idwaJOuvPUxJLj5h1+BxBhv8pCHNrLgf3Yt8wv3l2UYTn50Jx+8YJP5yv+DJ rbsi3Ve6kgZGBtZkGRPMxMoIaxky+lWtiUHCAYlkwbxnpZ1WHtaEMMpOX4+aGdl5E8PA QgIFnNweMT8tWj2gPJpxJSuryxUZgH/yqs4Y6gtx78nppWROfp7360uUcbLlP9w3inD+ uMBqYf5YAEVYwAMqLKJpwwv1JEw5U9a3MRyx8DHSNGVBEaURVPosyeady2xlJu9wIA4u FzpA== X-Gm-Message-State: ALoCoQlpvaIK1ISSoqfFjgmzTUKkksLS+/WxomVH4keKQYh3EaGEQnsYfGgU1WCuq5PN5TdBhhK6 X-Received: by 10.68.108.67 with SMTP id hi3mr32989589pbb.41.1420100690351; Thu, 01 Jan 2015 00:24:50 -0800 (PST) Received: from [10.64.25.37] ([69.53.236.236]) by mx.google.com with ESMTPSA id im3sm6809699pbc.73.2015.01.01.00.24.48 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 01 Jan 2015 00:24:49 -0800 (PST) Sender: Warner Losh Subject: Re: svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_E9640555-9B7F-4A0D-AE02-207AEA7854EA"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5b3 From: Warner Losh In-Reply-To: <20150101070300.GA27441@lonesome.com> Date: Thu, 1 Jan 2015 01:24:46 -0700 Message-Id: References: <201501010200.t01205Ge007058@svn.freebsd.org> <760D3407-921D-4249-9DC2-74610FA46920@FreeBSD.org> <27B917EC-CB35-4BF6-AB8F-4CBF56EC3E41@bsdimp.com> <20150101070300.GA27441@lonesome.com> To: Mark Linimon X-Mailer: Apple Mail (2.1993) Cc: src-committers , svn-src-all@freebsd.org, Dimitry Andric , svn-src-head@freebsd.org, Warner Losh , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 08:24:51 -0000 --Apple-Mail=_E9640555-9B7F-4A0D-AE02-207AEA7854EA Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On Jan 1, 2015, at 12:03 AM, Mark Linimon = wrote: >=20 > On Wed, Dec 31, 2014 at 09:25:51PM -0700, Warner Losh wrote: >> This change is wrong. bsd.sys.mk was eliminated on purpose, dammit. >=20 > Aw, our first bikeshed of the year. Sniff. I may cry ... >=20 > Wait? The message is still dated 2014??? >=20 > hgrrrr ... >=20 > oh wait, the *commit* is UTC. >=20 > I win!!!! >=20 > mcl >=20 > (in case you can't guess, happy new year y'all) Happy New Year! And this is just a vigorous discussion to make things = better. :) As far as I can tell, we can build successfully with clang 3.5 and = 3.4.1, though with too many warnings not being errors. There might be an odd thing I = overlooked, but I tried to be thorough. Of course, all the sys/conf/*.mk files could use a good cleanup. Warner --Apple-Mail=_E9640555-9B7F-4A0D-AE02-207AEA7854EA Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJUpQROAAoJEGwc0Sh9sBEAau4QAKYUm44TjHupexbJ/rlR9OFJ 5W7t2x5l3qrbdjeY2fd4fts+YwaX/Pl/u6HKmWq3OY1H+QmkSFNclhKKSdvT0Bk9 etRe1zvgecXFkt42l8kpwUDdDv0L7GfXo7eYVeROvv8Llp6SBbQKcla7i3rG8VwL xX4dBrOacxs6fqXocnVmxt7MM8oLNV/5nDXqrlil0NNWVfXb6EoPiWMKIW1e5K6z 2vmwHWtrgbVaPqBxpAJewIsSRp55alPCmEaxI9l7Do+r8Ywq+frNLN04Ag7tS65I JXbryo1nKZoUIF1EQa31ssXfEwfl4Pc8aIo/Axu+oY7gcF3mLK8jkrC/RF3LY6Ql SYUffHy7zcIYcrAmJl9sQhnRDmZpCRws0Z19RijczXxVy6MuQGP9tbQr/YeSAZs/ VWnKMkUE1EhdjgViYQuMsrHVjNTEhTsBwAlmnhw3zbEkZJLn2VtP3NgVuznLKr6T xdqIjOWGyhaKe4l/386v9i0jw2Kk8n8Vd1qX7A9jqv+YiJZFLRVNEWAi9RqA/zWF 81A2zBySiVNqclppRFkVB7gp8XSntNOgGsokhn7hDfYJmkGln2QDy5G9loKIeVuJ bCd7697HN/GNCwuq6nP76bcKgTz7st66KAOcEhbQH1LRrblnOG9WYyaS3KOp0LdX UfYxIkgidRP/3whB4kFL =fnY6 -----END PGP SIGNATURE----- --Apple-Mail=_E9640555-9B7F-4A0D-AE02-207AEA7854EA-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 08:30:33 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 583B2CCB; Thu, 1 Jan 2015 08:30:33 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 450AE64724; Thu, 1 Jan 2015 08:30:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t018UX9S086900; Thu, 1 Jan 2015 08:30:33 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t018UX7d086899; Thu, 1 Jan 2015 08:30:33 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201501010830.t018UX7d086899@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 1 Jan 2015 08:30:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276497 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 08:30:33 -0000 Author: imp Date: Thu Jan 1 08:30:32 2015 New Revision: 276497 URL: https://svnweb.freebsd.org/changeset/base/276497 Log: Put the conditional back. For the default case it isn't really needed, but for the gcc case it still is on i386 and amd64's build of sys/boot. Submited by: dim@ Modified: head/share/mk/bsd.sys.mk Modified: head/share/mk/bsd.sys.mk ============================================================================== --- head/share/mk/bsd.sys.mk Thu Jan 1 08:18:08 2015 (r276496) +++ head/share/mk/bsd.sys.mk Thu Jan 1 08:30:32 2015 (r276497) @@ -110,7 +110,13 @@ CWARNFLAGS+= -Wno-format CWARNFLAGS+= -Wno-unknown-pragmas .endif # IGNORE_PRAGMA +# We need this conditional because many places that use it +# only enable it for some files with CLFAGS.$FILE+=${CLANG_NO_IAS}. +# unconditionally, and can't easily use the CFLAGS.clang= +# mechanism. +.if ${COMPILER_TYPE} == "clang" CLANG_NO_IAS= -no-integrated-as +.endif CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\ -mllvm -simplifycfg-dup-ret -mllvm -enable-gvn=false CFLAGS.clang+= -Qunused-arguments From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 09:33:47 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DE8C7344; Thu, 1 Jan 2015 09:33:47 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CB78C6607E; Thu, 1 Jan 2015 09:33:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t019Xl65018651; Thu, 1 Jan 2015 09:33:47 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t019XlDw018650; Thu, 1 Jan 2015 09:33:47 GMT (envelope-from np@FreeBSD.org) Message-Id: <201501010933.t019XlDw018650@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 1 Jan 2015 09:33:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276498 - head/sys/dev/cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 09:33:48 -0000 Author: np Date: Thu Jan 1 09:33:46 2015 New Revision: 276498 URL: https://svnweb.freebsd.org/changeset/base/276498 Log: cxgbe(4): remove buf_ring specific restriction on the txq size. MFC after: 2 months Modified: head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Thu Jan 1 08:30:32 2015 (r276497) +++ head/sys/dev/cxgbe/t4_main.c Thu Jan 1 09:33:46 2015 (r276498) @@ -5258,8 +5258,7 @@ sysctl_qsize_txq(SYSCTL_HANDLER_ARGS) if (rc != 0 || req->newptr == NULL) return (rc); - /* bufring size must be powerof2 */ - if (qsize < 128 || !powerof2(qsize)) + if (qsize < 128 || qsize > 65536) return (EINVAL); rc = begin_synchronized_op(sc, pi, HOLD_LOCK | SLEEP_OK | INTR_OK, From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 10:07:59 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4E1B179A; Thu, 1 Jan 2015 10:07:59 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 20DDF6430B; Thu, 1 Jan 2015 10:07:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01A7wlG032891; Thu, 1 Jan 2015 10:07:58 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01A7wYW032884; Thu, 1 Jan 2015 10:07:58 GMT (envelope-from rdivacky@FreeBSD.org) Message-Id: <201501011007.t01A7wYW032884@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rdivacky set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky Date: Thu, 1 Jan 2015 10:07:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276499 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 10:07:59 -0000 Author: rdivacky Date: Thu Jan 1 10:07:57 2015 New Revision: 276499 URL: https://svnweb.freebsd.org/changeset/base/276499 Log: LLVM integrated assembler can assemble these files just fine. Modified: head/sys/conf/Makefile.amd64 head/sys/conf/Makefile.i386 head/sys/conf/Makefile.pc98 Modified: head/sys/conf/Makefile.amd64 ============================================================================== --- head/sys/conf/Makefile.amd64 Thu Jan 1 09:33:46 2015 (r276498) +++ head/sys/conf/Makefile.amd64 Thu Jan 1 10:07:57 2015 (r276499) @@ -37,11 +37,6 @@ INCLUDES+= -I$S/contrib/libfdt CFLAGS+= -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer .endif -# XXX: clang integrated-as doesn't grok .codeNN directives yet -ASM_CFLAGS.acpi_wakecode.S= ${CLANG_NO_IAS} -ASM_CFLAGS.mpboot.S= ${CLANG_NO_IAS} -ASM_CFLAGS+= ${ASM_CFLAGS.${.IMPSRC:T}} - %BEFORE_DEPEND %OBJS Modified: head/sys/conf/Makefile.i386 ============================================================================== --- head/sys/conf/Makefile.i386 Thu Jan 1 09:33:46 2015 (r276498) +++ head/sys/conf/Makefile.i386 Thu Jan 1 10:07:57 2015 (r276499) @@ -32,11 +32,6 @@ S= ../../.. INCLUDES+= -I$S/contrib/libfdt -# XXX: clang integrated-as doesn't grok .codeNN directives yet -ASM_CFLAGS.acpi_wakecode.S= ${CLANG_NO_IAS} -ASM_CFLAGS.mpboot.s= ${CLANG_NO_IAS} -ASM_CFLAGS+= ${ASM_CFLAGS.${.IMPSRC:T}} - %BEFORE_DEPEND %OBJS Modified: head/sys/conf/Makefile.pc98 ============================================================================== --- head/sys/conf/Makefile.pc98 Thu Jan 1 09:33:46 2015 (r276498) +++ head/sys/conf/Makefile.pc98 Thu Jan 1 10:07:57 2015 (r276499) @@ -30,10 +30,6 @@ S= ../../.. .endif .include "$S/conf/kern.pre.mk" -# XXX: clang integrated-as doesn't grok .codeNN directives yet -ASM_CFLAGS.mpboot.s= ${CLANG_NO_IAS} -ASM_CFLAGS+= ${ASM_CFLAGS.${.IMPSRC:T}} - %BEFORE_DEPEND %OBJS From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 10:44:26 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 651BCA50; Thu, 1 Jan 2015 10:44:26 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4CE2E647B5; Thu, 1 Jan 2015 10:44:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01AiQ63050859; Thu, 1 Jan 2015 10:44:26 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01AiLDp050836; Thu, 1 Jan 2015 10:44:21 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201501011044.t01AiLDp050836@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 1 Jan 2015 10:44:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276500 - in stable/10/sys: cddl/contrib/opensolaris/uts/common/fs/zfs fs/ext2fs fs/fuse fs/msdosfs fs/nandfs fs/nfsclient fs/nfsserver fs/tmpfs fs/unionfs kern nfsclient nfsserver ufs/... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 10:44:26 -0000 Author: kib Date: Thu Jan 1 10:44:20 2015 New Revision: 276500 URL: https://svnweb.freebsd.org/changeset/base/276500 Log: MFC r275897: Set NOCACHE flag for CREATE namei() calls, do not specially handle MAKEENTRY in VOP_LOOKUP(). Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c stable/10/sys/fs/ext2fs/ext2_lookup.c stable/10/sys/fs/fuse/fuse_vnops.c stable/10/sys/fs/msdosfs/msdosfs_lookup.c stable/10/sys/fs/nandfs/nandfs_vnops.c stable/10/sys/fs/nfsclient/nfs_clvnops.c stable/10/sys/fs/nfsserver/nfs_nfsdserv.c stable/10/sys/fs/tmpfs/tmpfs_vnops.c stable/10/sys/fs/unionfs/union_subr.c stable/10/sys/fs/unionfs/union_vnops.c stable/10/sys/kern/uipc_usrreq.c stable/10/sys/kern/vfs_syscalls.c stable/10/sys/kern/vfs_vnops.c stable/10/sys/nfsclient/nfs_vnops.c stable/10/sys/nfsserver/nfs_serv.c stable/10/sys/ufs/ffs/ffs_snapshot.c stable/10/sys/ufs/ufs/ufs_lookup.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Thu Jan 1 10:44:20 2015 (r276500) @@ -1538,7 +1538,7 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode /* * Insert name into cache (as non-existent) if appropriate. */ - if (error == ENOENT && (cnp->cn_flags & MAKEENTRY) && nameiop != CREATE) + if (error == ENOENT && (cnp->cn_flags & MAKEENTRY) != 0) cache_enter(dvp, *vpp, cnp); /* * Insert name into cache if appropriate. Modified: stable/10/sys/fs/ext2fs/ext2_lookup.c ============================================================================== --- stable/10/sys/fs/ext2fs/ext2_lookup.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/ext2fs/ext2_lookup.c Thu Jan 1 10:44:20 2015 (r276500) @@ -514,7 +514,7 @@ notfound: /* * Insert name into cache (as non-existent) if appropriate. */ - if ((cnp->cn_flags & MAKEENTRY) && nameiop != CREATE) + if ((cnp->cn_flags & MAKEENTRY) != 0) cache_enter(vdp, NULL, cnp); return (ENOENT); Modified: stable/10/sys/fs/fuse/fuse_vnops.c ============================================================================== --- stable/10/sys/fs/fuse/fuse_vnops.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/fuse/fuse_vnops.c Thu Jan 1 10:44:20 2015 (r276500) @@ -795,7 +795,7 @@ calldaemon: * caching...) */ #if 0 - if ((cnp->cn_flags & MAKEENTRY) && nameiop != CREATE) { + if ((cnp->cn_flags & MAKEENTRY) != 0) { FS_DEBUG("inserting NULL into cache\n"); cache_enter(dvp, NULL, cnp); } Modified: stable/10/sys/fs/msdosfs/msdosfs_lookup.c ============================================================================== --- stable/10/sys/fs/msdosfs/msdosfs_lookup.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/msdosfs/msdosfs_lookup.c Thu Jan 1 10:44:20 2015 (r276500) @@ -416,7 +416,7 @@ notfound: * and 8.3 filenames. Hence, it may not invalidate all negative * entries if a file with this name is later created. */ - if ((cnp->cn_flags & MAKEENTRY) && nameiop != CREATE) + if ((cnp->cn_flags & MAKEENTRY) != 0) cache_enter(vdp, *vpp, cnp); #endif return (ENOENT); Modified: stable/10/sys/fs/nandfs/nandfs_vnops.c ============================================================================== --- stable/10/sys/fs/nandfs/nandfs_vnops.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/nandfs/nandfs_vnops.c Thu Jan 1 10:44:20 2015 (r276500) @@ -479,7 +479,7 @@ out: * the file might not be found and thus putting it into the namecache * might be seen as negative caching. */ - if ((cnp->cn_flags & MAKEENTRY) && nameiop != CREATE) + if ((cnp->cn_flags & MAKEENTRY) != 0) cache_enter(dvp, *vpp, cnp); return (error); Modified: stable/10/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clvnops.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/nfsclient/nfs_clvnops.c Thu Jan 1 10:44:20 2015 (r276500) @@ -1185,8 +1185,7 @@ nfs_lookup(struct vop_lookup_args *ap) return (EJUSTRETURN); } - if ((cnp->cn_flags & MAKEENTRY) && cnp->cn_nameiop != CREATE && - dattrflag) { + if ((cnp->cn_flags & MAKEENTRY) != 0 && dattrflag) { /* * Cache the modification time of the parent * directory from the post-op attributes in Modified: stable/10/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- stable/10/sys/fs/nfsserver/nfs_nfsdserv.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/nfsserver/nfs_nfsdserv.c Thu Jan 1 10:44:20 2015 (r276500) @@ -983,7 +983,7 @@ nfsrvd_create(struct nfsrv_descript *nd, goto out; } NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, - LOCKPARENT | LOCKLEAF | SAVESTART); + LOCKPARENT | LOCKLEAF | SAVESTART | NOCACHE); nfsvno_setpathbuf(&named, &bufp, &hashp); error = nfsrv_parsename(nd, bufp, hashp, &named.ni_pathlen); if (error) @@ -1194,7 +1194,7 @@ nfsrvd_mknod(struct nfsrv_descript *nd, goto out; } } - NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, cnflags); + NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, cnflags | NOCACHE); nfsvno_setpathbuf(&named, &bufp, &hashp); error = nfsrv_parsename(nd, bufp, hashp, &named.ni_pathlen); if (error) @@ -1647,7 +1647,7 @@ nfsrvd_link(struct nfsrv_descript *nd, i } } NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, - LOCKPARENT | SAVENAME); + LOCKPARENT | SAVENAME | NOCACHE); if (!nd->nd_repstat) { nfsvno_setpathbuf(&named, &bufp, &hashp); error = nfsrv_parsename(nd, bufp, hashp, &named.ni_pathlen); @@ -1724,7 +1724,7 @@ nfsrvd_symlink(struct nfsrv_descript *nd *vpp = NULL; NFSVNO_ATTRINIT(&nva); NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, - LOCKPARENT | SAVESTART); + LOCKPARENT | SAVESTART | NOCACHE); nfsvno_setpathbuf(&named, &bufp, &hashp); error = nfsrv_parsename(nd, bufp, hashp, &named.ni_pathlen); if (!error && !nd->nd_repstat) @@ -1842,7 +1842,7 @@ nfsrvd_mkdir(struct nfsrv_descript *nd, goto out; } NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, - LOCKPARENT | SAVENAME); + LOCKPARENT | SAVENAME | NOCACHE); nfsvno_setpathbuf(&named, &bufp, &hashp); error = nfsrv_parsename(nd, bufp, hashp, &named.ni_pathlen); if (error) @@ -2761,7 +2761,7 @@ nfsrvd_open(struct nfsrv_descript *nd, _ } if (create == NFSV4OPEN_CREATE) NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, - LOCKPARENT | LOCKLEAF | SAVESTART); + LOCKPARENT | LOCKLEAF | SAVESTART | NOCACHE); else NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, LOOKUP, LOCKLEAF | SAVESTART); Modified: stable/10/sys/fs/tmpfs/tmpfs_vnops.c ============================================================================== --- stable/10/sys/fs/tmpfs/tmpfs_vnops.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/tmpfs/tmpfs_vnops.c Thu Jan 1 10:44:20 2015 (r276500) @@ -195,7 +195,7 @@ tmpfs_lookup(struct vop_cachedlookup_arg /* Store the result of this lookup in the cache. Avoid this if the * request was for creation, as it does not improve timings on * emprical tests. */ - if ((cnp->cn_flags & MAKEENTRY) && cnp->cn_nameiop != CREATE) + if ((cnp->cn_flags & MAKEENTRY) != 0) cache_enter(dvp, *vpp, cnp); out: Modified: stable/10/sys/fs/unionfs/union_subr.c ============================================================================== --- stable/10/sys/fs/unionfs/union_subr.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/unionfs/union_subr.c Thu Jan 1 10:44:20 2015 (r276500) @@ -536,6 +536,8 @@ unionfs_relookup(struct vnode *dvp, stru cn->cn_flags |= (cnp->cn_flags & (DOWHITEOUT | SAVESTART)); else if (RENAME == nameiop) cn->cn_flags |= (cnp->cn_flags & SAVESTART); + else if (nameiop == CREATE) + cn->cn_flags |= NOCACHE; vref(dvp); VOP_UNLOCK(dvp, LK_RELEASE); Modified: stable/10/sys/fs/unionfs/union_vnops.c ============================================================================== --- stable/10/sys/fs/unionfs/union_vnops.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/fs/unionfs/union_vnops.c Thu Jan 1 10:44:20 2015 (r276500) @@ -160,8 +160,7 @@ unionfs_lookup(struct vop_cachedlookup_a LK_RETRY); vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY); - } else if (error == ENOENT && (cnflags & MAKEENTRY) && - nameiop != CREATE) + } else if (error == ENOENT && (cnflags & MAKEENTRY) != 0) cache_enter(dvp, NULLVP, cnp); UNIONFS_INTERNAL_DEBUG("unionfs_lookup: leave (%d)\n", error); @@ -337,7 +336,7 @@ unionfs_lookup_out: if (lvp != NULLVP) vrele(lvp); - if (error == ENOENT && (cnflags & MAKEENTRY) && nameiop != CREATE) + if (error == ENOENT && (cnflags & MAKEENTRY) != 0) cache_enter(dvp, NULLVP, cnp); UNIONFS_INTERNAL_DEBUG("unionfs_lookup: leave (%d)\n", error); Modified: stable/10/sys/kern/uipc_usrreq.c ============================================================================== --- stable/10/sys/kern/uipc_usrreq.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/kern/uipc_usrreq.c Thu Jan 1 10:44:20 2015 (r276500) @@ -505,7 +505,7 @@ uipc_bindat(int fd, struct socket *so, s buf[namelen] = 0; restart: - NDINIT_ATRIGHTS(&nd, CREATE, NOFOLLOW | LOCKPARENT | SAVENAME, + NDINIT_ATRIGHTS(&nd, CREATE, NOFOLLOW | LOCKPARENT | SAVENAME | NOCACHE, UIO_SYSSPACE, buf, fd, cap_rights_init(&rights, CAP_BINDAT), td); /* SHOULD BE ABLE TO ADOPT EXISTING AND wakeup() ALA FIFO's */ error = namei(&nd); Modified: stable/10/sys/kern/vfs_syscalls.c ============================================================================== --- stable/10/sys/kern/vfs_syscalls.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/kern/vfs_syscalls.c Thu Jan 1 10:44:20 2015 (r276500) @@ -1286,8 +1286,9 @@ kern_mknodat(struct thread *td, int fd, return (error); restart: bwillwrite(); - NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE1, - pathseg, path, fd, cap_rights_init(&rights, CAP_MKNODAT), td); + NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE1 | + NOCACHE, pathseg, path, fd, cap_rights_init(&rights, CAP_MKNODAT), + td); if ((error = namei(&nd)) != 0) return (error); vp = nd.ni_vp; @@ -1407,8 +1408,9 @@ kern_mkfifoat(struct thread *td, int fd, AUDIT_ARG_MODE(mode); restart: bwillwrite(); - NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE1, - pathseg, path, fd, cap_rights_init(&rights, CAP_MKFIFOAT), td); + NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE1 | + NOCACHE, pathseg, path, fd, cap_rights_init(&rights, CAP_MKFIFOAT), + td); if ((error = namei(&nd)) != 0) return (error); if (nd.ni_vp != NULL) { @@ -1559,8 +1561,9 @@ again: vrele(vp); return (EPERM); /* POSIX */ } - NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE2, - segflg, path2, fd2, cap_rights_init(&rights, CAP_LINKAT), td); + NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE2 | + NOCACHE, segflg, path2, fd2, cap_rights_init(&rights, CAP_LINKAT), + td); if ((error = namei(&nd)) == 0) { if (nd.ni_vp != NULL) { NDFREE(&nd, NDF_ONLY_PNBUF); @@ -1685,8 +1688,9 @@ kern_symlinkat(struct thread *td, char * AUDIT_ARG_TEXT(syspath); restart: bwillwrite(); - NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE1, - segflg, path2, fd, cap_rights_init(&rights, CAP_SYMLINKAT), td); + NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE1 | + NOCACHE, segflg, path2, fd, cap_rights_init(&rights, CAP_SYMLINKAT), + td); if ((error = namei(&nd)) != 0) goto out; if (nd.ni_vp) { @@ -3704,8 +3708,9 @@ kern_mkdirat(struct thread *td, int fd, AUDIT_ARG_MODE(mode); restart: bwillwrite(); - NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE1, - segflg, path, fd, cap_rights_init(&rights, CAP_MKDIRAT), td); + NDINIT_ATRIGHTS(&nd, CREATE, LOCKPARENT | SAVENAME | AUDITVNODE1 | + NOCACHE, segflg, path, fd, cap_rights_init(&rights, CAP_MKDIRAT), + td); nd.ni_cnd.cn_flags |= WILLBEDIR; if ((error = namei(&nd)) != 0) return (error); Modified: stable/10/sys/kern/vfs_vnops.c ============================================================================== --- stable/10/sys/kern/vfs_vnops.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/kern/vfs_vnops.c Thu Jan 1 10:44:20 2015 (r276500) @@ -187,7 +187,11 @@ restart: fmode = *flagp; if (fmode & O_CREAT) { ndp->ni_cnd.cn_nameiop = CREATE; - ndp->ni_cnd.cn_flags = ISOPEN | LOCKPARENT | LOCKLEAF; + /* + * Set NOCACHE to avoid flushing the cache when + * rolling in many files at once. + */ + ndp->ni_cnd.cn_flags = ISOPEN | LOCKPARENT | LOCKLEAF | NOCACHE; if ((fmode & O_EXCL) == 0 && (fmode & O_NOFOLLOW) == 0) ndp->ni_cnd.cn_flags |= FOLLOW; if (!(vn_open_flags & VN_OPEN_NOAUDIT)) Modified: stable/10/sys/nfsclient/nfs_vnops.c ============================================================================== --- stable/10/sys/nfsclient/nfs_vnops.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/nfsclient/nfs_vnops.c Thu Jan 1 10:44:20 2015 (r276500) @@ -1181,8 +1181,7 @@ nfsmout: return (EJUSTRETURN); } - if ((cnp->cn_flags & MAKEENTRY) && cnp->cn_nameiop != CREATE && - dattrflag) { + if ((cnp->cn_flags & MAKEENTRY) != 0 && dattrflag) { /* * Cache the modification time of the parent * directory from the post-op attributes in Modified: stable/10/sys/nfsserver/nfs_serv.c ============================================================================== --- stable/10/sys/nfsserver/nfs_serv.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/nfsserver/nfs_serv.c Thu Jan 1 10:44:20 2015 (r276500) @@ -1217,7 +1217,7 @@ nfsrv_create(struct nfsrv_descript *nfsd nd.ni_cnd.cn_cred = cred; nd.ni_cnd.cn_nameiop = CREATE; - nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | SAVESTART; + nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | SAVESTART | NOCACHE; /* * Call namei and do initial cleanup to get a few things @@ -1501,7 +1501,7 @@ nfsrv_mknod(struct nfsrv_descript *nfsd, nd.ni_cnd.cn_cred = cred; nd.ni_cnd.cn_nameiop = CREATE; - nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | SAVESTART; + nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | SAVESTART | NOCACHE; /* * Handle nfs_namei() call. If an error occurs, the nd structure @@ -2030,7 +2030,7 @@ nfsrv_link(struct nfsrv_descript *nfsd, VOP_UNLOCK(vp, 0); nd.ni_cnd.cn_cred = cred; nd.ni_cnd.cn_nameiop = CREATE; - nd.ni_cnd.cn_flags = LOCKPARENT; + nd.ni_cnd.cn_flags = LOCKPARENT | NOCACHE; error = nfs_namei(&nd, nfsd, dfhp, len, slp, nam, &md, &dpos, &dirp, v3, &dirfor, &dirfor_ret, FALSE); if (dirp && !v3) { @@ -2153,7 +2153,7 @@ nfsrv_symlink(struct nfsrv_descript *nfs nfsm_srvnamesiz(len); nd.ni_cnd.cn_cred = cred; nd.ni_cnd.cn_nameiop = CREATE; - nd.ni_cnd.cn_flags = LOCKPARENT | SAVESTART; + nd.ni_cnd.cn_flags = LOCKPARENT | SAVESTART | NOCACHE; error = nfs_namei(&nd, nfsd, fhp, len, slp, nam, &md, &dpos, &dirp, v3, &dirfor, &dirfor_ret, FALSE); if (error == 0) { @@ -2325,7 +2325,7 @@ nfsrv_mkdir(struct nfsrv_descript *nfsd, nfsm_srvnamesiz(len); nd.ni_cnd.cn_cred = cred; nd.ni_cnd.cn_nameiop = CREATE; - nd.ni_cnd.cn_flags = LOCKPARENT; + nd.ni_cnd.cn_flags = LOCKPARENT | NOCACHE; error = nfs_namei(&nd, nfsd, fhp, len, slp, nam, &md, &dpos, &dirp, v3, &dirfor, &dirfor_ret, FALSE); Modified: stable/10/sys/ufs/ffs/ffs_snapshot.c ============================================================================== --- stable/10/sys/ufs/ffs/ffs_snapshot.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/ufs/ffs/ffs_snapshot.c Thu Jan 1 10:44:20 2015 (r276500) @@ -256,7 +256,8 @@ ffs_snapshot(mp, snapfile) * Create the snapshot file. */ restart: - NDINIT(&nd, CREATE, LOCKPARENT | LOCKLEAF, UIO_SYSSPACE, snapfile, td); + NDINIT(&nd, CREATE, LOCKPARENT | LOCKLEAF | NOCACHE, UIO_SYSSPACE, + snapfile, td); if ((error = namei(&nd)) != 0) return (error); if (nd.ni_vp != NULL) { Modified: stable/10/sys/ufs/ufs/ufs_lookup.c ============================================================================== --- stable/10/sys/ufs/ufs/ufs_lookup.c Thu Jan 1 10:07:57 2015 (r276499) +++ stable/10/sys/ufs/ufs/ufs_lookup.c Thu Jan 1 10:44:20 2015 (r276500) @@ -550,7 +550,7 @@ notfound: /* * Insert name into cache (as non-existent) if appropriate. */ - if ((cnp->cn_flags & MAKEENTRY) && nameiop != CREATE) + if ((cnp->cn_flags & MAKEENTRY) != 0) cache_enter(vdp, NULL, cnp); return (ENOENT); From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 15:37:22 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B6F27F54; Thu, 1 Jan 2015 15:37:22 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A359664D21; Thu, 1 Jan 2015 15:37:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01FbMZl085711; Thu, 1 Jan 2015 15:37:22 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01FbMBO085710; Thu, 1 Jan 2015 15:37:22 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201501011537.t01FbMBO085710@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Thu, 1 Jan 2015 15:37:22 +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: r276501 - stable/10/sbin/mount X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 15:37:22 -0000 Author: trasz Date: Thu Jan 1 15:37:21 2015 New Revision: 276501 URL: https://svnweb.freebsd.org/changeset/base/276501 Log: MFC r274857: Cross-reference automount(8) from mount(8). Sponsored by: The FreeBSD Foundation Modified: stable/10/sbin/mount/mount.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/mount/mount.8 ============================================================================== --- stable/10/sbin/mount/mount.8 Thu Jan 1 10:44:20 2015 (r276500) +++ stable/10/sbin/mount/mount.8 Thu Jan 1 15:37:21 2015 (r276501) @@ -28,7 +28,7 @@ .\" @(#)mount.8 8.8 (Berkeley) 6/16/94 .\" $FreeBSD$ .\" -.Dd August 20, 2014 +.Dd November 22, 2014 .Dt MOUNT 8 .Os .Sh NAME @@ -548,6 +548,7 @@ support for a particular file system mig .Xr ext2fs 5 , .Xr fstab 5 , .Xr procfs 5 , +.Xr automount 8 , .Xr kldload 8 , .Xr mount_cd9660 8 , .Xr mount_msdosfs 8 , From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 15:38:58 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 48E13285; Thu, 1 Jan 2015 15:38:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3484264D72; Thu, 1 Jan 2015 15:38:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01FcwNr085932; Thu, 1 Jan 2015 15:38:58 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01FcwbP085931; Thu, 1 Jan 2015 15:38:58 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201501011538.t01FcwbP085931@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Thu, 1 Jan 2015 15:38:58 +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: r276502 - stable/10/sbin/umount X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 15:38:58 -0000 Author: trasz Date: Thu Jan 1 15:38:57 2015 New Revision: 276502 URL: https://svnweb.freebsd.org/changeset/base/276502 Log: MFC r274858: Cross-reference autounmountd(8) from umount(8). Sponsored by: The FreeBSD Foundation Modified: stable/10/sbin/umount/umount.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/umount/umount.8 ============================================================================== --- stable/10/sbin/umount/umount.8 Thu Jan 1 15:37:21 2015 (r276501) +++ stable/10/sbin/umount/umount.8 Thu Jan 1 15:38:57 2015 (r276502) @@ -28,7 +28,7 @@ .\" @(#)umount.8 8.2 (Berkeley) 5/8/95 .\" $FreeBSD$ .\" -.Dd May 31, 2011 +.Dd November 22, 2014 .Dt UMOUNT 8 .Os .Sh NAME @@ -140,6 +140,7 @@ file system table .Sh SEE ALSO .Xr unmount 2 , .Xr fstab 5 , +.Xr autounmountd 8 , .Xr mount 8 .Sh HISTORY A From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 15:45:23 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9973141F; Thu, 1 Jan 2015 15:45:23 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 84B5864E72; Thu, 1 Jan 2015 15:45:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01FjNJc090217; Thu, 1 Jan 2015 15:45:23 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01FjNOm090216; Thu, 1 Jan 2015 15:45:23 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201501011545.t01FjNOm090216@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Thu, 1 Jan 2015 15:45:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276503 - stable/10/usr.sbin/ctld X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 15:45:23 -0000 Author: trasz Date: Thu Jan 1 15:45:22 2015 New Revision: 276503 URL: https://svnweb.freebsd.org/changeset/base/276503 Log: MFC r274954: Remove the pidfile clause from the ctl.conf example. Why do everyone just copy/paste this line into their configs, it's beyond me. Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/ctld/ctl.conf.5 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/ctld/ctl.conf.5 ============================================================================== --- stable/10/usr.sbin/ctld/ctl.conf.5 Thu Jan 1 15:38:57 2015 (r276502) +++ stable/10/usr.sbin/ctld/ctl.conf.5 Thu Jan 1 15:45:22 2015 (r276503) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 9, 2014 +.Dd November 24, 2014 .Dt CTL.CONF 5 .Os .Sh NAME @@ -356,8 +356,6 @@ configuration file. .El .Sh EXAMPLES .Bd -literal -pidfile /var/run/ctld.pid - auth-group ag0 { chap-mutual "user" "secret" "mutualuser" "mutualsecret" chap-mutual "user2" "secret2" "mutualuser" "mutualsecret" From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 15:48:14 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 67EE1580; Thu, 1 Jan 2015 15:48:14 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5328E64E9A; Thu, 1 Jan 2015 15:48:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01FmEp1090602; Thu, 1 Jan 2015 15:48:14 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01FmDke090600; Thu, 1 Jan 2015 15:48:13 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201501011548.t01FmDke090600@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Thu, 1 Jan 2015 15:48:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276504 - in stable/10/etc: defaults rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 15:48:14 -0000 Author: trasz Date: Thu Jan 1 15:48:12 2015 New Revision: 276504 URL: https://svnweb.freebsd.org/changeset/base/276504 Log: MFC r274965: Make it possible to specify flags for autofs daemons in rc.conf. Sponsored by: The FreeBSD Foundation Modified: stable/10/etc/defaults/rc.conf stable/10/etc/rc.d/automount Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/defaults/rc.conf ============================================================================== --- stable/10/etc/defaults/rc.conf Thu Jan 1 15:45:22 2015 (r276503) +++ stable/10/etc/defaults/rc.conf Thu Jan 1 15:48:12 2015 (r276504) @@ -326,7 +326,10 @@ amd_enable="NO" # Run amd service with amd_program="/usr/sbin/amd" # path to amd, if you want a different one. amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map" amd_map_program="NO" # Can be set to "ypcat -k amd.master" -autofs_enable="NO" # Run automountd(8) +autofs_enable="NO" # Run autofs daemons. +automount_flags="" # Flags to automount(8) (if autofs enabled). +automountd_flags="" # Flags to automountd(8) (if autofs enabled). +autounmountd_flags="" # Flags to autounmountd(8) (if autofs enabled). nfs_client_enable="NO" # This host is an NFS client (or NO). nfs_access_cache="60" # Client cache timeout in seconds nfs_server_enable="NO" # This host is an NFS server (or NO). Modified: stable/10/etc/rc.d/automount ============================================================================== --- stable/10/etc/rc.d/automount Thu Jan 1 15:45:22 2015 (r276503) +++ stable/10/etc/rc.d/automount Thu Jan 1 15:48:12 2015 (r276504) @@ -18,7 +18,7 @@ required_modules="autofs" automount_start() { - /usr/sbin/automount + /usr/sbin/automount ${automount_flags} } automount_stop() From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 15:50:49 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7B7086BF; Thu, 1 Jan 2015 15:50:49 +0000 (UTC) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "tensor.andric.com", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0A07564F5D; Thu, 1 Jan 2015 15:50:48 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::28eb:6a07:fcba:ed4a] (unknown [IPv6:2001:7b8:3a7:0:28eb:6a07:fcba:ed4a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id CBFD3B80A; Thu, 1 Jan 2015 16:50:38 +0100 (CET) Subject: Re: svn commit: r276052 - head Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_57796C0D-5952-47AF-9553-2403778C72DC"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.5b4 From: Dimitry Andric In-Reply-To: <201412220452.sBM4qPAx096443@svn.freebsd.org> Date: Thu, 1 Jan 2015 16:50:29 +0100 Message-Id: <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> References: <201412220452.sBM4qPAx096443@svn.freebsd.org> To: Garrett Cooper X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 15:50:49 -0000 --Apple-Mail=_57796C0D-5952-47AF-9553-2403778C72DC Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 22 Dec 2014, at 05:52, Garrett Cooper wrote: >=20 > Author: ngie > Date: Mon Dec 22 04:52:24 2014 > New Revision: 276052 > URL: https://svnweb.freebsd.org/changeset/base/276052 >=20 > Log: > Build selective portions of gnu/usr.bin/texinfo as part of = build-tools to > ensure that building on a host without makeinfo (i.e. a host where > make delete-old -DWITHOUT_INFO was run), then building with MK_INFO = =3D=3D yes > doesn't manifest in build errors when building info pages .. > @@ -1398,6 +1403,16 @@ build-tools: .MAKE > ${MAKE} DIRPRFX=3D${_tool}/ depend && \ > ${MAKE} DIRPRFX=3D${_tool}/ all > .endfor > +.for _tool in \ > + ${_texinfo} > + ${_+_}@${ECHODIR} "=3D=3D=3D> ${_tool} (obj,depend,all)"; \ > + cd ${.CURDIR}/${_tool} && \ > + ${MAKE} DIRPRFX=3D${_tool}/ obj && \ > + ${MAKE} DIRPRFX=3D${_tool}/ depend && \ > + ${MAKE} DIRPRFX=3D${_tool}/ all && \ > + ${MAKE} DIRPRFX=3D${_tool}/ install DESTDIR=3D${WORLDTMP} > +.endfor Strangely, this hunk seems to work incorrectly for non-native builds. For example, I tried a TARGET=3Darm buildworld just now, and that dies with the following error: [...] >>> stage 2.3: build tools [...] =3D=3D=3D> gnu/usr.bin/texinfo/makeinfo (obj,depend,all,install) [...] gzip -cn = /usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/doc/make= info.1 > makeinfo.1.gz sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 makeinfo = /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo install: /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo: No such = file or directory *** Error code 71 Specifically, the /usr/obj/arm.arm/arm.arm directory is incorrect, there should be only one "arm.arm" in that path. I don't really understand how that value comes to pass, though. When I put an echo statement just before the make install, which shows the values of ${_tool} and ${WORLDTMP}, it prints: DEBUG: _tool=3Dgnu/usr.bin/texinfo/makeinfo, = WORLDTMP=3D/usr/obj/arm.arm/arm.arm/usr/src/tmp So for some strange reason, ${WORLDTMP} is incorrect at that point? I think something is appending one path component too many... -Dimitry --Apple-Mail=_57796C0D-5952-47AF-9553-2403778C72DC Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.26 iEYEARECAAYFAlSlbM4ACgkQsF6jCi4glqMmMgCg4AUDgm+6M67JclWduHciUlXd om8Anj5SA5aDMhw1wb04aop1y7b41MhG =TS53 -----END PGP SIGNATURE----- --Apple-Mail=_57796C0D-5952-47AF-9553-2403778C72DC-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 16:41:12 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 57DA63EE; Thu, 1 Jan 2015 16:41:12 +0000 (UTC) Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2BA297CA; Thu, 1 Jan 2015 16:41:11 +0000 (UTC) Received: from [73.34.117.227] (helo=ilsoft.org) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Y6io4-000Ctx-L1; Thu, 01 Jan 2015 16:41:04 +0000 Received: from revolution.hippie.lan (revolution.hippie.lan [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t01Gf3YZ052475; Thu, 1 Jan 2015 09:41:03 -0700 (MST) (envelope-from ian@freebsd.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 73.34.117.227 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX19U4zmEk2RwrL1vtFW0JMmV Message-ID: <1420130463.85983.0.camel@freebsd.org> Subject: Re: svn commit: r276052 - head From: Ian Lepore To: Dimitry Andric Date: Thu, 01 Jan 2015 09:41:03 -0700 In-Reply-To: <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.8 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 16:41:12 -0000 On Thu, 2015-01-01 at 16:50 +0100, Dimitry Andric wrote: > On 22 Dec 2014, at 05:52, Garrett Cooper wrote: > > > > Author: ngie > > Date: Mon Dec 22 04:52:24 2014 > > New Revision: 276052 > > URL: https://svnweb.freebsd.org/changeset/base/276052 > > > > Log: > > Build selective portions of gnu/usr.bin/texinfo as part of build-tools to > > ensure that building on a host without makeinfo (i.e. a host where > > make delete-old -DWITHOUT_INFO was run), then building with MK_INFO == yes > > doesn't manifest in build errors when building info pages > .. > > @@ -1398,6 +1403,16 @@ build-tools: .MAKE > > ${MAKE} DIRPRFX=${_tool}/ depend && \ > > ${MAKE} DIRPRFX=${_tool}/ all > > .endfor > > +.for _tool in \ > > + ${_texinfo} > > + ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all)"; \ > > + cd ${.CURDIR}/${_tool} && \ > > + ${MAKE} DIRPRFX=${_tool}/ obj && \ > > + ${MAKE} DIRPRFX=${_tool}/ depend && \ > > + ${MAKE} DIRPRFX=${_tool}/ all && \ > > + ${MAKE} DIRPRFX=${_tool}/ install DESTDIR=${WORLDTMP} > > +.endfor > > Strangely, this hunk seems to work incorrectly for non-native builds. > For example, I tried a TARGET=arm buildworld just now, and that dies > with the following error: > > [...] > >>> stage 2.3: build tools > [...] > ===> gnu/usr.bin/texinfo/makeinfo (obj,depend,all,install) > [...] > gzip -cn /usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/doc/makeinfo.1 > makeinfo.1.gz > sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 makeinfo /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo > install: /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo: No such file or directory > *** Error code 71 > > Specifically, the /usr/obj/arm.arm/arm.arm directory is incorrect, there > should be only one "arm.arm" in that path. I don't really understand > how that value comes to pass, though. When I put an echo statement just > before the make install, which shows the values of ${_tool} and > ${WORLDTMP}, it prints: > > DEBUG: _tool=gnu/usr.bin/texinfo/makeinfo, WORLDTMP=/usr/obj/arm.arm/arm.arm/usr/src/tmp > > So for some strange reason, ${WORLDTMP} is incorrect at that point? I > think something is appending one path component too many... > > -Dimitry > try TARGET_ARCH=arm -- Ian From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 16:56:16 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6F06CB88; Thu, 1 Jan 2015 16:56:16 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5BD2A9CC; Thu, 1 Jan 2015 16:56:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01GuGON033141; Thu, 1 Jan 2015 16:56:16 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01GuGIZ033140; Thu, 1 Jan 2015 16:56:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201501011656.t01GuGIZ033140@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 1 Jan 2015 16:56:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276505 - head/sys/modules/bios/smapi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 16:56:16 -0000 Author: dim Date: Thu Jan 1 16:56:15 2015 New Revision: 276505 URL: https://svnweb.freebsd.org/changeset/base/276505 Log: Remove the clang -no-integrated-as workaround for smapi_bios.S, as clang 3.5.0 now supports the assembly just fine. Modified: head/sys/modules/bios/smapi/Makefile Modified: head/sys/modules/bios/smapi/Makefile ============================================================================== --- head/sys/modules/bios/smapi/Makefile Thu Jan 1 15:48:12 2015 (r276504) +++ head/sys/modules/bios/smapi/Makefile Thu Jan 1 16:56:15 2015 (r276505) @@ -8,7 +8,3 @@ SRCS= smapi.c smapi_bios.S \ bus_if.h device_if.h .include - -# XXX: clang integrated-as doesn't grok 16-bit assembly yet -CFLAGS.smapi_bios.S= ${CLANG_NO_IAS} -CFLAGS+= ${CFLAGS.${.IMPSRC:T}} From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 17:14:45 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7C6B6F52; Thu, 1 Jan 2015 17:14:45 +0000 (UTC) Received: from tensor.andric.com (unknown [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "tensor.andric.com", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 05F1164C20; Thu, 1 Jan 2015 17:14:45 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::28eb:6a07:fcba:ed4a] (unknown [IPv6:2001:7b8:3a7:0:28eb:6a07:fcba:ed4a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 4DD17B80A; Thu, 1 Jan 2015 18:14:39 +0100 (CET) Subject: Re: svn commit: r276052 - head Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_20CB42F9-E5F4-4B56-9EE9-612255E247D6"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.5b4 From: Dimitry Andric In-Reply-To: <1420130463.85983.0.camel@freebsd.org> Date: Thu, 1 Jan 2015 18:14:31 +0100 Message-Id: <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> <1420130463.85983.0.camel@freebsd.org> To: Ian Lepore X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 17:14:45 -0000 --Apple-Mail=_20CB42F9-E5F4-4B56-9EE9-612255E247D6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 01 Jan 2015, at 17:41, Ian Lepore wrote: >=20 > On Thu, 2015-01-01 at 16:50 +0100, Dimitry Andric wrote: >> On 22 Dec 2014, at 05:52, Garrett Cooper wrote: >>>=20 >>> Author: ngie >>> Date: Mon Dec 22 04:52:24 2014 >>> New Revision: 276052 >>> URL: https://svnweb.freebsd.org/changeset/base/276052 >>>=20 >>> Log: >>> Build selective portions of gnu/usr.bin/texinfo as part of = build-tools to >>> ensure that building on a host without makeinfo (i.e. a host where >>> make delete-old -DWITHOUT_INFO was run), then building with MK_INFO = =3D=3D yes >>> doesn't manifest in build errors when building info pages >> .. >>> @@ -1398,6 +1403,16 @@ build-tools: .MAKE >>> ${MAKE} DIRPRFX=3D${_tool}/ depend && \ >>> ${MAKE} DIRPRFX=3D${_tool}/ all >>> .endfor >>> +.for _tool in \ >>> + ${_texinfo} >>> + ${_+_}@${ECHODIR} "=3D=3D=3D> ${_tool} (obj,depend,all)"; \ >>> + cd ${.CURDIR}/${_tool} && \ >>> + ${MAKE} DIRPRFX=3D${_tool}/ obj && \ >>> + ${MAKE} DIRPRFX=3D${_tool}/ depend && \ >>> + ${MAKE} DIRPRFX=3D${_tool}/ all && \ >>> + ${MAKE} DIRPRFX=3D${_tool}/ install DESTDIR=3D${WORLDTMP} >>> +.endfor >>=20 >> Strangely, this hunk seems to work incorrectly for non-native builds. >> For example, I tried a TARGET=3Darm buildworld just now, and that = dies >> with the following error: >>=20 >> [...] >>>>> stage 2.3: build tools >> [...] >> =3D=3D=3D> gnu/usr.bin/texinfo/makeinfo (obj,depend,all,install) >> [...] >> gzip -cn = /usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/doc/make= info.1 > makeinfo.1.gz >> sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 makeinfo = /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo >> install: /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo: No = such file or directory >> *** Error code 71 >>=20 >> Specifically, the /usr/obj/arm.arm/arm.arm directory is incorrect, = there >> should be only one "arm.arm" in that path. I don't really understand >> how that value comes to pass, though. When I put an echo statement = just >> before the make install, which shows the values of ${_tool} and >> ${WORLDTMP}, it prints: >>=20 >> DEBUG: _tool=3Dgnu/usr.bin/texinfo/makeinfo, = WORLDTMP=3D/usr/obj/arm.arm/arm.arm/usr/src/tmp >>=20 >> So for some strange reason, ${WORLDTMP} is incorrect at that point? = I >> think something is appending one path component too many... >>=20 >> -Dimitry >>=20 >=20 > try TARGET_ARCH=3Darm No, that does not help, unfortunately. The problem seems to be that in Makefile.inc1, TMAKE is passing MAKEOBJDIRPREFIX=3D${OBJTREE} via its environment, and this changes the value of WORLDTMP to an incorrect value. At first it looked like I could just force the correct WORLDTMP value via the command line instead, e.g. like this: Index: Makefile.inc1 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- Makefile.inc1 (revision 276480) +++ Makefile.inc1 (working copy) @@ -270,6 +270,7 @@ TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ + WORLDTMP=3D${WORLDTMP} \ DESTDIR=3D \ BOOTSTRAPPING=3D${OSRELDATE} \ SSP_CFLAGS=3D \ However, this leads to other problems further down the road, where it gets errors installing parts of libllvmsupport and tblgen. So at this point, non-native builds with MK_INFO=3Dyes are broken. -Dimitry --Apple-Mail=_20CB42F9-E5F4-4B56-9EE9-612255E247D6 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.26 iEYEARECAAYFAlSlgH4ACgkQsF6jCi4glqMQAgCfdC5Vc0HQ1FSfNabSL1ruZYfy vI0AoJttg1ffl94+TcOL8DvPLxWcA4nk =eCK+ -----END PGP SIGNATURE----- --Apple-Mail=_20CB42F9-E5F4-4B56-9EE9-612255E247D6-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 17:32:48 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 992D471A; Thu, 1 Jan 2015 17:32:48 +0000 (UTC) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5962164F20; Thu, 1 Jan 2015 17:32:47 +0000 (UTC) Received: from [73.34.117.227] (helo=ilsoft.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Y6jc6-000GDq-IF; Thu, 01 Jan 2015 17:32:46 +0000 Received: from revolution.hippie.lan (revolution.hippie.lan [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t01HWjtp052935; Thu, 1 Jan 2015 10:32:45 -0700 (MST) (envelope-from ian@freebsd.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 73.34.117.227 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1/VT4dGFQwKtfU3xqzeYlN3 Message-ID: <1420133565.85983.5.camel@freebsd.org> Subject: Re: svn commit: r276052 - head From: Ian Lepore To: Dimitry Andric Date: Thu, 01 Jan 2015 10:32:45 -0700 In-Reply-To: <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> <1420130463.85983.0.camel@freebsd.org> <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.8 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 17:32:48 -0000 On Thu, 2015-01-01 at 18:14 +0100, Dimitry Andric wrote: > On 01 Jan 2015, at 17:41, Ian Lepore wrote: > > > > On Thu, 2015-01-01 at 16:50 +0100, Dimitry Andric wrote: > >> On 22 Dec 2014, at 05:52, Garrett Cooper wrote: > >>> > >>> Author: ngie > >>> Date: Mon Dec 22 04:52:24 2014 > >>> New Revision: 276052 > >>> URL: https://svnweb.freebsd.org/changeset/base/276052 > >>> > >>> Log: > >>> Build selective portions of gnu/usr.bin/texinfo as part of build-tools to > >>> ensure that building on a host without makeinfo (i.e. a host where > >>> make delete-old -DWITHOUT_INFO was run), then building with MK_INFO == yes > >>> doesn't manifest in build errors when building info pages > >> .. > >>> @@ -1398,6 +1403,16 @@ build-tools: .MAKE > >>> ${MAKE} DIRPRFX=${_tool}/ depend && \ > >>> ${MAKE} DIRPRFX=${_tool}/ all > >>> .endfor > >>> +.for _tool in \ > >>> + ${_texinfo} > >>> + ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all)"; \ > >>> + cd ${.CURDIR}/${_tool} && \ > >>> + ${MAKE} DIRPRFX=${_tool}/ obj && \ > >>> + ${MAKE} DIRPRFX=${_tool}/ depend && \ > >>> + ${MAKE} DIRPRFX=${_tool}/ all && \ > >>> + ${MAKE} DIRPRFX=${_tool}/ install DESTDIR=${WORLDTMP} > >>> +.endfor > >> > >> Strangely, this hunk seems to work incorrectly for non-native builds. > >> For example, I tried a TARGET=arm buildworld just now, and that dies > >> with the following error: > >> > >> [...] > >>>>> stage 2.3: build tools > >> [...] > >> ===> gnu/usr.bin/texinfo/makeinfo (obj,depend,all,install) > >> [...] > >> gzip -cn /usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/doc/makeinfo.1 > makeinfo.1.gz > >> sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 makeinfo /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo > >> install: /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo: No such file or directory > >> *** Error code 71 > >> > >> Specifically, the /usr/obj/arm.arm/arm.arm directory is incorrect, there > >> should be only one "arm.arm" in that path. I don't really understand > >> how that value comes to pass, though. When I put an echo statement just > >> before the make install, which shows the values of ${_tool} and > >> ${WORLDTMP}, it prints: > >> > >> DEBUG: _tool=gnu/usr.bin/texinfo/makeinfo, WORLDTMP=/usr/obj/arm.arm/arm.arm/usr/src/tmp > >> > >> So for some strange reason, ${WORLDTMP} is incorrect at that point? I > >> think something is appending one path component too many... > >> > >> -Dimitry > >> > > > > try TARGET_ARCH=arm > > No, that does not help, unfortunately. The problem seems to be that in > Makefile.inc1, TMAKE is passing MAKEOBJDIRPREFIX=${OBJTREE} via its > environment, and this changes the value of WORLDTMP to an incorrect > value. > > At first it looked like I could just force the correct WORLDTMP value > via the command line instead, e.g. like this: > > Index: Makefile.inc1 > =================================================================== > --- Makefile.inc1 (revision 276480) > +++ Makefile.inc1 (working copy) > @@ -270,6 +270,7 @@ > TMAKE= MAKEOBJDIRPREFIX=${OBJTREE} \ > ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ > TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ > + WORLDTMP=${WORLDTMP} \ > DESTDIR= \ > BOOTSTRAPPING=${OSRELDATE} \ > SSP_CFLAGS= \ > > However, this leads to other problems further down the road, where it > gets errors installing parts of libllvmsupport and tblgen. > > So at this point, non-native builds with MK_INFO=yes are broken. > > -Dimitry > You seem to be implying that the whole process of cross building is broken, but it's not. I do this all day long every day. "make TARGET_ARCH=arm [make targets and other vars here]" works. Do you have something in make.conf or src.conf causing problems? -- Ian From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 17:50:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 20971EB7; Thu, 1 Jan 2015 17:50:31 +0000 (UTC) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "tensor.andric.com", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B4EAF66121; Thu, 1 Jan 2015 17:50:30 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::28eb:6a07:fcba:ed4a] (unknown [IPv6:2001:7b8:3a7:0:28eb:6a07:fcba:ed4a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 1D577B80A; Thu, 1 Jan 2015 18:50:28 +0100 (CET) Subject: Re: svn commit: r276052 - head Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_D6D1277E-2137-47B8-A279-2C466BC034CA"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.5b4 From: Dimitry Andric In-Reply-To: <1420133565.85983.5.camel@freebsd.org> Date: Thu, 1 Jan 2015 18:50:24 +0100 Message-Id: References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> <1420130463.85983.0.camel@freebsd.org> <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> <1420133565.85983.5.camel@freebsd.org> To: Ian Lepore X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 17:50:31 -0000 --Apple-Mail=_D6D1277E-2137-47B8-A279-2C466BC034CA Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 01 Jan 2015, at 18:32, Ian Lepore wrote: >=20 > On Thu, 2015-01-01 at 18:14 +0100, Dimitry Andric wrote: >> On 01 Jan 2015, at 17:41, Ian Lepore wrote: >>>=20 >>> On Thu, 2015-01-01 at 16:50 +0100, Dimitry Andric wrote: >>>> On 22 Dec 2014, at 05:52, Garrett Cooper wrote: >>>>>=20 >>>>> Author: ngie >>>>> Date: Mon Dec 22 04:52:24 2014 >>>>> New Revision: 276052 >>>>> URL: https://svnweb.freebsd.org/changeset/base/276052 >>>>>=20 >>>>> Log: >>>>> Build selective portions of gnu/usr.bin/texinfo as part of = build-tools to >>>>> ensure that building on a host without makeinfo (i.e. a host where >>>>> make delete-old -DWITHOUT_INFO was run), then building with = MK_INFO =3D=3D yes >>>>> doesn't manifest in build errors when building info pages >>>> .. >>>>> @@ -1398,6 +1403,16 @@ build-tools: .MAKE >>>>> ${MAKE} DIRPRFX=3D${_tool}/ depend && \ >>>>> ${MAKE} DIRPRFX=3D${_tool}/ all >>>>> .endfor >>>>> +.for _tool in \ >>>>> + ${_texinfo} >>>>> + ${_+_}@${ECHODIR} "=3D=3D=3D> ${_tool} (obj,depend,all)"; \ >>>>> + cd ${.CURDIR}/${_tool} && \ >>>>> + ${MAKE} DIRPRFX=3D${_tool}/ obj && \ >>>>> + ${MAKE} DIRPRFX=3D${_tool}/ depend && \ >>>>> + ${MAKE} DIRPRFX=3D${_tool}/ all && \ >>>>> + ${MAKE} DIRPRFX=3D${_tool}/ install DESTDIR=3D${WORLDTMP} >>>>> +.endfor >>>>=20 >>>> Strangely, this hunk seems to work incorrectly for non-native = builds. >>>> For example, I tried a TARGET=3Darm buildworld just now, and that = dies >>>> with the following error: >>>>=20 >>>> [...] >>>>>>> stage 2.3: build tools >>>> [...] >>>> =3D=3D=3D> gnu/usr.bin/texinfo/makeinfo (obj,depend,all,install) >>>> [...] >>>> gzip -cn = /usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/doc/make= info.1 > makeinfo.1.gz >>>> sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 makeinfo = /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo >>>> install: /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo: No = such file or directory >>>> *** Error code 71 >>>>=20 >>>> Specifically, the /usr/obj/arm.arm/arm.arm directory is incorrect, = there >>>> should be only one "arm.arm" in that path. I don't really = understand >>>> how that value comes to pass, though. When I put an echo statement = just >>>> before the make install, which shows the values of ${_tool} and >>>> ${WORLDTMP}, it prints: >>>>=20 >>>> DEBUG: _tool=3Dgnu/usr.bin/texinfo/makeinfo, = WORLDTMP=3D/usr/obj/arm.arm/arm.arm/usr/src/tmp >>>>=20 >>>> So for some strange reason, ${WORLDTMP} is incorrect at that point? = I >>>> think something is appending one path component too many... >>>>=20 >>>> -Dimitry >>>>=20 >>>=20 >>> try TARGET_ARCH=3Darm >>=20 >> No, that does not help, unfortunately. The problem seems to be that = in >> Makefile.inc1, TMAKE is passing MAKEOBJDIRPREFIX=3D${OBJTREE} via its >> environment, and this changes the value of WORLDTMP to an incorrect >> value. >>=20 >> At first it looked like I could just force the correct WORLDTMP value >> via the command line instead, e.g. like this: >>=20 >> Index: Makefile.inc1 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> --- Makefile.inc1 (revision 276480) >> +++ Makefile.inc1 (working copy) >> @@ -270,6 +270,7 @@ >> TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ >> ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ >> TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ >> + WORLDTMP=3D${WORLDTMP} \ >> DESTDIR=3D \ >> BOOTSTRAPPING=3D${OSRELDATE} \ >> SSP_CFLAGS=3D \ >>=20 >> However, this leads to other problems further down the road, where it >> gets errors installing parts of libllvmsupport and tblgen. >>=20 >> So at this point, non-native builds with MK_INFO=3Dyes are broken. >>=20 >> -Dimitry >>=20 >=20 > You seem to be implying that the whole process of cross building is > broken, but it's not. I do this all day long every day. "make > TARGET_ARCH=3Darm [make targets and other vars here]" works. Do you = have > something in make.conf or src.conf causing problems? No, just MK_INFO=3Dyes, as I said. That is what Garrett tried to fix in this commit, but which only works for native builds. I'll be coming up with a fix shortly. -Dimitry --Apple-Mail=_D6D1277E-2137-47B8-A279-2C466BC034CA Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.26 iEYEARECAAYFAlSliOQACgkQsF6jCi4glqMP5wCfQMTZIwVyJYfNQfJvDnJeEnta c6sAni/rt/OBJejZ90F92pXlUI/8MNKx =jegm -----END PGP SIGNATURE----- --Apple-Mail=_D6D1277E-2137-47B8-A279-2C466BC034CA-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 18:37:04 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 73D534ED; Thu, 1 Jan 2015 18:37:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5FB6489B; Thu, 1 Jan 2015 18:37:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01Ib42Z082282; Thu, 1 Jan 2015 18:37:04 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01Ib4Z7082281; Thu, 1 Jan 2015 18:37:04 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201501011837.t01Ib4Z7082281@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Thu, 1 Jan 2015 18:37:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276508 - head/sys/amd64/linux32 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 18:37:04 -0000 Author: dchagin Date: Thu Jan 1 18:37:03 2015 New Revision: 276508 URL: https://svnweb.freebsd.org/changeset/base/276508 Log: Correct an argument status of wait4 syscall for Linuxulator. MFC after: 1 week Modified: head/sys/amd64/linux32/syscalls.master Modified: head/sys/amd64/linux32/syscalls.master ============================================================================== --- head/sys/amd64/linux32/syscalls.master Thu Jan 1 18:12:02 2015 (r276507) +++ head/sys/amd64/linux32/syscalls.master Thu Jan 1 18:37:03 2015 (r276508) @@ -207,7 +207,7 @@ 112 AUE_NULL UNIMPL idle 113 AUE_NULL UNIMPL vm86old 114 AUE_WAIT4 STD { int linux_wait4(l_pid_t pid, \ - l_uint *status, l_int options, \ + l_int *status, l_int options, \ struct l_rusage *rusage); } 115 AUE_SWAPOFF STD { int linux_swapoff(void); } 116 AUE_NULL STD { int linux_sysinfo(struct l_sysinfo *info); } From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 18:38:34 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4B4FD627; Thu, 1 Jan 2015 18:38:34 +0000 (UTC) Received: from mail-pa0-x231.google.com (mail-pa0-x231.google.com [IPv6:2607:f8b0:400e:c03::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0EAB18AC; Thu, 1 Jan 2015 18:38:34 +0000 (UTC) Received: by mail-pa0-f49.google.com with SMTP id eu11so22671138pac.8; Thu, 01 Jan 2015 10:38:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=VCoxqhtlQ5ia0EegP667brPryI4IGRpm+jkcSrRVo98=; b=JqanODWpqqzuuYhAFIjouXE8LiE7iJqqnusRNxutitoVuWWFp846er/uh0aQn2DnbX oLOwBlHA7nDqqKPYrd5ixzYrvCa97i/gJQDI7e0AyD7Vj3lXfcd9V8ALgYg8JmjtxmHy 8YeUS4XFD6GmQis/Nd96klql1Zpj0wSo/Np0brvtpIThr67XL1xjzBc9kERa0p/2azLK 9f3GZ9hHrGQUrWpzWnhXP86e8alKmUVR1hFPIPVHZ6YRWUQK/A9VYEEWD1GCO2zX7l/r dGwUbpns+yDCM+BBlxUwodVpcRJdnkCpdNDxvrE3DPvIAqWHFe6zdhXzrWQhtoOMwzGE sBnw== X-Received: by 10.66.65.234 with SMTP id a10mr69043457pat.120.1420137513364; Thu, 01 Jan 2015 10:38:33 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:6d22:f632:3b17:f5d8? ([2601:8:ab80:7d6:6d22:f632:3b17:f5d8]) by mx.google.com with ESMTPSA id fu1sm44367864pbb.91.2015.01.01.10.38.32 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 01 Jan 2015 10:38:32 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_B4264039-AFEA-424E-8BCB-1A18C295090C"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276052 - head From: Garrett Cooper In-Reply-To: Date: Thu, 1 Jan 2015 10:38:27 -0800 Message-Id: References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> <1420130463.85983.0.camel@freebsd.org> <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> <1420133565.85983.5.camel@freebsd.org> To: Dimitry Andric X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Garrett Cooper , Ian Lepore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 18:38:34 -0000 --Apple-Mail=_B4264039-AFEA-424E-8BCB-1A18C295090C Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Jan 1, 2015, at 9:50, Dimitry Andric wrote: > On 01 Jan 2015, at 18:32, Ian Lepore wrote: >>=20 >> On Thu, 2015-01-01 at 18:14 +0100, Dimitry Andric wrote: >>> On 01 Jan 2015, at 17:41, Ian Lepore wrote: >>>>=20 >>>> On Thu, 2015-01-01 at 16:50 +0100, Dimitry Andric wrote: >>>>> On 22 Dec 2014, at 05:52, Garrett Cooper wrote: >>>>>>=20 >>>>>> Author: ngie >>>>>> Date: Mon Dec 22 04:52:24 2014 >>>>>> New Revision: 276052 >>>>>> URL: https://svnweb.freebsd.org/changeset/base/276052 >>>>>>=20 >>>>>> Log: >>>>>> Build selective portions of gnu/usr.bin/texinfo as part of = build-tools to >>>>>> ensure that building on a host without makeinfo (i.e. a host = where >>>>>> make delete-old -DWITHOUT_INFO was run), then building with = MK_INFO =3D=3D yes >>>>>> doesn't manifest in build errors when building info pages >>>>> .. >>>>>> @@ -1398,6 +1403,16 @@ build-tools: .MAKE >>>>>> ${MAKE} DIRPRFX=3D${_tool}/ depend && \ >>>>>> ${MAKE} DIRPRFX=3D${_tool}/ all >>>>>> .endfor >>>>>> +.for _tool in \ >>>>>> + ${_texinfo} >>>>>> + ${_+_}@${ECHODIR} "=3D=3D=3D> ${_tool} = (obj,depend,all)"; \ >>>>>> + cd ${.CURDIR}/${_tool} && \ >>>>>> + ${MAKE} DIRPRFX=3D${_tool}/ obj && \ >>>>>> + ${MAKE} DIRPRFX=3D${_tool}/ depend && \ >>>>>> + ${MAKE} DIRPRFX=3D${_tool}/ all && \ >>>>>> + ${MAKE} DIRPRFX=3D${_tool}/ install = DESTDIR=3D${WORLDTMP} >>>>>> +.endfor >>>>>=20 >>>>> Strangely, this hunk seems to work incorrectly for non-native = builds. >>>>> For example, I tried a TARGET=3Darm buildworld just now, and that = dies >>>>> with the following error: >>>>>=20 >>>>> [...] >>>>>>>> stage 2.3: build tools >>>>> [...] >>>>> =3D=3D=3D> gnu/usr.bin/texinfo/makeinfo (obj,depend,all,install) >>>>> [...] >>>>> gzip -cn = /usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/doc/make= info.1 > makeinfo.1.gz >>>>> sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 makeinfo = /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo >>>>> install: /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo: No = such file or directory >>>>> *** Error code 71 >>>>>=20 >>>>> Specifically, the /usr/obj/arm.arm/arm.arm directory is incorrect, = there >>>>> should be only one "arm.arm" in that path. I don't really = understand >>>>> how that value comes to pass, though. When I put an echo = statement just >>>>> before the make install, which shows the values of ${_tool} and >>>>> ${WORLDTMP}, it prints: >>>>>=20 >>>>> DEBUG: _tool=3Dgnu/usr.bin/texinfo/makeinfo, = WORLDTMP=3D/usr/obj/arm.arm/arm.arm/usr/src/tmp >>>>>=20 >>>>> So for some strange reason, ${WORLDTMP} is incorrect at that = point? I >>>>> think something is appending one path component too many... >>>>>=20 >>>>> -Dimitry >>>>>=20 >>>>=20 >>>> try TARGET_ARCH=3Darm >>>=20 >>> No, that does not help, unfortunately. The problem seems to be that = in >>> Makefile.inc1, TMAKE is passing MAKEOBJDIRPREFIX=3D${OBJTREE} via = its >>> environment, and this changes the value of WORLDTMP to an incorrect >>> value. >>>=20 >>> At first it looked like I could just force the correct WORLDTMP = value >>> via the command line instead, e.g. like this: >>>=20 >>> Index: Makefile.inc1 >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> --- Makefile.inc1 (revision 276480) >>> +++ Makefile.inc1 (working copy) >>> @@ -270,6 +270,7 @@ >>> TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ >>> ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ >>> TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ >>> + WORLDTMP=3D${WORLDTMP} \ >>> DESTDIR=3D \ >>> BOOTSTRAPPING=3D${OSRELDATE} \ >>> SSP_CFLAGS=3D \ >>>=20 >>> However, this leads to other problems further down the road, where = it >>> gets errors installing parts of libllvmsupport and tblgen. >>>=20 >>> So at this point, non-native builds with MK_INFO=3Dyes are broken. >>>=20 >>> -Dimitry >>>=20 >>=20 >> You seem to be implying that the whole process of cross building is >> broken, but it's not. I do this all day long every day. "make >> TARGET_ARCH=3Darm [make targets and other vars here]" works. Do you = have >> something in make.conf or src.conf causing problems? >=20 > No, just MK_INFO=3Dyes, as I said. That is what Garrett tried to fix = in > this commit, but which only works for native builds. >=20 > I'll be coming up with a fix shortly. OBJTREE is being populated with TARGET.TARGET_ARCH twice=85 That=92s the = bug. Unfortunately this commit only made this issue apparent. Sorry for not = testing with a non-native build :(... --Apple-Mail=_B4264039-AFEA-424E-8BCB-1A18C295090C Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpZQjAAoJEMZr5QU6S73encYH/0X0WdzM7gxItyi2y2674dzQ gZJ1G77uHxq2z5OwkmuTSfdoRTRG+1QpP9HK/pFMZxCT1MBMEvUap9i1MTkwIYHH 6XJXzgf5TmoGOZ82pyqFG8yeotnUNV5q6kjkvWtegQGBA9Dr83UXyPXYMj/OFE5H 32FT0hAwN+6m19U5Xkimeh9ijBTebN5oK34+P4LrPuPOc++c7YJgLwSte3ELh7+l PTrjfaI3gfzeaN/kJtZOy/jnBtKGo9Ji8HrksLfnO0/Yrj8relAfhWHUfMrMdiYE Ix7qwE+OfDvfJ1UCjEAHRfbmELvybaTuna4DQpNJV0bAgRgHD+nfYoBIToVdyx0= =CjyP -----END PGP SIGNATURE----- --Apple-Mail=_B4264039-AFEA-424E-8BCB-1A18C295090C-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 18:41:35 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 35CDE774; Thu, 1 Jan 2015 18:41:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 21E90969; Thu, 1 Jan 2015 18:41:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01IfZ50086343; Thu, 1 Jan 2015 18:41:35 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01IfYbO086342; Thu, 1 Jan 2015 18:41:34 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201501011841.t01IfYbO086342@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Thu, 1 Jan 2015 18:41:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276509 - head/sys/i386/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 18:41:35 -0000 Author: dchagin Date: Thu Jan 1 18:41:34 2015 New Revision: 276509 URL: https://svnweb.freebsd.org/changeset/base/276509 Log: Correct an argument status of wait4 syscall for Linuxulator. Forgot about i386. MFC after: 1 week Modified: head/sys/i386/linux/syscalls.master Modified: head/sys/i386/linux/syscalls.master ============================================================================== --- head/sys/i386/linux/syscalls.master Thu Jan 1 18:37:03 2015 (r276508) +++ head/sys/i386/linux/syscalls.master Thu Jan 1 18:41:34 2015 (r276509) @@ -208,7 +208,7 @@ 112 AUE_NULL UNIMPL idle 113 AUE_NULL STD { int linux_vm86old(void); } 114 AUE_WAIT4 STD { int linux_wait4(l_pid_t pid, \ - l_uint *status, l_int options, \ + l_int *status, l_int options, \ struct l_rusage *rusage); } 115 AUE_SWAPOFF STD { int linux_swapoff(void); } 116 AUE_NULL STD { int linux_sysinfo(struct l_sysinfo *info); } From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 18:42:41 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F121C8B0; Thu, 1 Jan 2015 18:42:40 +0000 (UTC) Received: from mail-pd0-x22e.google.com (mail-pd0-x22e.google.com [IPv6:2607:f8b0:400e:c02::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B28B6978; Thu, 1 Jan 2015 18:42:40 +0000 (UTC) Received: by mail-pd0-f174.google.com with SMTP id fp1so22458407pdb.5; Thu, 01 Jan 2015 10:42:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=QY1gv2MvFuE142gvZsvsMwjmYDDdAcv4sDBWlsxIsrs=; b=W8J3Sd12eKa+HCXtun5Za0/jqDqYUwRy4Xqkj6rW5690odWVr7w88OvZOGtFLgdVuf TMDXaAbdkrlAGuahUJYOsWPUx2uch4QtwFXwZE8lhwyh/fWOJWrNB1kslmElkzkUE5e1 Xp0H5D1ULnlX3v+lP2CD25GNpZTUIpcRx76ekM3vMqUIEaVoGUiNQ56IN3cyPqbFrVKz YHqPHhYup+rNtUMyg3DWnft2hGgHhnHdSixmb1GhZ7MhUInoXSPt/vszhc8gr+dleL6E YiXZlT6MC8NvAGqWkeIwWE4w/vw3c/00cAQbjnuCvW0+TUqPYkViZo7Q/pqGRP7prxU1 pxnw== X-Received: by 10.69.1.37 with SMTP id bd5mr48833164pbd.129.1420137760177; Thu, 01 Jan 2015 10:42:40 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:6d22:f632:3b17:f5d8? ([2601:8:ab80:7d6:6d22:f632:3b17:f5d8]) by mx.google.com with ESMTPSA id k4sm44399219pbq.74.2015.01.01.10.42.39 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 01 Jan 2015 10:42:39 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_17517AC4-BB38-49AE-AF72-032EBD55C542"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276052 - head From: Garrett Cooper In-Reply-To: Date: Thu, 1 Jan 2015 10:42:38 -0800 Message-Id: References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> <1420130463.85983.0.camel@freebsd.org> <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> <1420133565.85983.5.camel@freebsd.org> To: Dimitry Andric X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Garrett Cooper , Ian Lepore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 18:42:41 -0000 --Apple-Mail=_17517AC4-BB38-49AE-AF72-032EBD55C542 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Jan 1, 2015, at 10:38, Garrett Cooper wrote: > On Jan 1, 2015, at 9:50, Dimitry Andric wrote: >=20 >> On 01 Jan 2015, at 18:32, Ian Lepore wrote: >>>=20 >>> On Thu, 2015-01-01 at 18:14 +0100, Dimitry Andric wrote: >>>> On 01 Jan 2015, at 17:41, Ian Lepore wrote: >>>>>=20 >>>>> On Thu, 2015-01-01 at 16:50 +0100, Dimitry Andric wrote: >>>>>> On 22 Dec 2014, at 05:52, Garrett Cooper = wrote: >>>>>>>=20 >>>>>>> Author: ngie >>>>>>> Date: Mon Dec 22 04:52:24 2014 >>>>>>> New Revision: 276052 >>>>>>> URL: https://svnweb.freebsd.org/changeset/base/276052 >>>>>>>=20 >>>>>>> Log: >>>>>>> Build selective portions of gnu/usr.bin/texinfo as part of = build-tools to >>>>>>> ensure that building on a host without makeinfo (i.e. a host = where >>>>>>> make delete-old -DWITHOUT_INFO was run), then building with = MK_INFO =3D=3D yes >>>>>>> doesn't manifest in build errors when building info pages >>>>>> .. >>>>>>> @@ -1398,6 +1403,16 @@ build-tools: .MAKE >>>>>>> ${MAKE} DIRPRFX=3D${_tool}/ depend && \ >>>>>>> ${MAKE} DIRPRFX=3D${_tool}/ all >>>>>>> .endfor >>>>>>> +.for _tool in \ >>>>>>> + ${_texinfo} >>>>>>> + ${_+_}@${ECHODIR} "=3D=3D=3D> ${_tool} = (obj,depend,all)"; \ >>>>>>> + cd ${.CURDIR}/${_tool} && \ >>>>>>> + ${MAKE} DIRPRFX=3D${_tool}/ obj && \ >>>>>>> + ${MAKE} DIRPRFX=3D${_tool}/ depend && \ >>>>>>> + ${MAKE} DIRPRFX=3D${_tool}/ all && \ >>>>>>> + ${MAKE} DIRPRFX=3D${_tool}/ install = DESTDIR=3D${WORLDTMP} >>>>>>> +.endfor >>>>>>=20 >>>>>> Strangely, this hunk seems to work incorrectly for non-native = builds. >>>>>> For example, I tried a TARGET=3Darm buildworld just now, and that = dies >>>>>> with the following error: >>>>>>=20 >>>>>> [...] >>>>>>>>> stage 2.3: build tools >>>>>> [...] >>>>>> =3D=3D=3D> gnu/usr.bin/texinfo/makeinfo (obj,depend,all,install) >>>>>> [...] >>>>>> gzip -cn = /usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/doc/make= info.1 > makeinfo.1.gz >>>>>> sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 = makeinfo /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo >>>>>> install: /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo: = No such file or directory >>>>>> *** Error code 71 >>>>>>=20 >>>>>> Specifically, the /usr/obj/arm.arm/arm.arm directory is = incorrect, there >>>>>> should be only one "arm.arm" in that path. I don't really = understand >>>>>> how that value comes to pass, though. When I put an echo = statement just >>>>>> before the make install, which shows the values of ${_tool} and >>>>>> ${WORLDTMP}, it prints: >>>>>>=20 >>>>>> DEBUG: _tool=3Dgnu/usr.bin/texinfo/makeinfo, = WORLDTMP=3D/usr/obj/arm.arm/arm.arm/usr/src/tmp >>>>>>=20 >>>>>> So for some strange reason, ${WORLDTMP} is incorrect at that = point? I >>>>>> think something is appending one path component too many... >>>>>>=20 >>>>>> -Dimitry >>>>>>=20 >>>>>=20 >>>>> try TARGET_ARCH=3Darm >>>>=20 >>>> No, that does not help, unfortunately. The problem seems to be = that in >>>> Makefile.inc1, TMAKE is passing MAKEOBJDIRPREFIX=3D${OBJTREE} via = its >>>> environment, and this changes the value of WORLDTMP to an incorrect >>>> value. >>>>=20 >>>> At first it looked like I could just force the correct WORLDTMP = value >>>> via the command line instead, e.g. like this: >>>>=20 >>>> Index: Makefile.inc1 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>> --- Makefile.inc1 (revision 276480) >>>> +++ Makefile.inc1 (working copy) >>>> @@ -270,6 +270,7 @@ >>>> TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ >>>> ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ >>>> TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ >>>> + WORLDTMP=3D${WORLDTMP} \ >>>> DESTDIR=3D \ >>>> BOOTSTRAPPING=3D${OSRELDATE} \ >>>> SSP_CFLAGS=3D \ >>>>=20 >>>> However, this leads to other problems further down the road, where = it >>>> gets errors installing parts of libllvmsupport and tblgen. >>>>=20 >>>> So at this point, non-native builds with MK_INFO=3Dyes are broken. >>>>=20 >>>> -Dimitry >>>>=20 >>>=20 >>> You seem to be implying that the whole process of cross building is >>> broken, but it's not. I do this all day long every day. "make >>> TARGET_ARCH=3Darm [make targets and other vars here]" works. Do you = have >>> something in make.conf or src.conf causing problems? >>=20 >> No, just MK_INFO=3Dyes, as I said. That is what Garrett tried to fix = in >> this commit, but which only works for native builds. >>=20 >> I'll be coming up with a fix shortly. >=20 > OBJTREE is being populated with TARGET.TARGET_ARCH twice=85 That=92s = the bug. >=20 > Unfortunately this commit only made this issue apparent. Sorry for not = testing with a non-native build :(... I suspect this will fix it. Going to do a tinderbox run then I=92ll put = it out for review: Index: Makefile.inc1 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- Makefile.inc1 (revision 276492) +++ Makefile.inc1 (working copy) @@ -267,8 +267,7 @@ MK_LLDB=3Dno MK_TESTS=3Dno =20 # build-tools stage -TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ - ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ +TMAKE=3D ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f = Makefile.inc1 \ TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ DESTDIR=3D \ BOOTSTRAPPING=3D${OSRELDATE} \ --Apple-Mail=_17517AC4-BB38-49AE-AF72-032EBD55C542 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpZUeAAoJEMZr5QU6S73eU/4IAIpoTYVNHQnjBZ2ARbv3M9kx bWtuVb/6Lyzwf+sRQaqfCiTMGv/PNitb7U3AQWsuKsD4aYlsCCLkYzZDPUIb+KHe EOP6oJnbZ/vqs2ixTtnshifc+0sSYz1OuoPqSbez0UzW38X74BH0hSvSjeeOhAZZ 5GpoJY2OBfen4tJt1kfnrafPEgmtb5LZ+sVIgfHecVvBMy64B5wGMF5Yhgl49PJ3 8qRNG9xjeY4iAcQ+cMCpAxHcn/At1CQhQRgr6cBrCoSDqBLBPJozvDJIOWNKJ9xz vWr6j8vmGNfj3njivuGyv1QGEdC7En3Gh3+sGDV7CJjtLU3ulxlUMmyU+AOFMkA= =bjgR -----END PGP SIGNATURE----- --Apple-Mail=_17517AC4-BB38-49AE-AF72-032EBD55C542-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 18:43:34 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DA0789F5; Thu, 1 Jan 2015 18:43:34 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC30B988; Thu, 1 Jan 2015 18:43:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01IhYZS086633; Thu, 1 Jan 2015 18:43:34 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01IhWVK086618; Thu, 1 Jan 2015 18:43:32 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201501011843.t01IhWVK086618@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Thu, 1 Jan 2015 18:43:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276510 - in head/sys: amd64/linux32 i386/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 18:43:35 -0000 Author: dchagin Date: Thu Jan 1 18:43:31 2015 New Revision: 276510 URL: https://svnweb.freebsd.org/changeset/base/276510 Log: Regen after r276508, r276509. Modified: head/sys/amd64/linux32/linux32_proto.h head/sys/amd64/linux32/linux32_syscall.h head/sys/amd64/linux32/linux32_syscalls.c head/sys/amd64/linux32/linux32_sysent.c head/sys/amd64/linux32/linux32_systrace_args.c head/sys/i386/linux/linux_proto.h head/sys/i386/linux/linux_syscall.h head/sys/i386/linux/linux_syscalls.c head/sys/i386/linux/linux_sysent.c head/sys/i386/linux/linux_systrace_args.c Modified: head/sys/amd64/linux32/linux32_proto.h ============================================================================== --- head/sys/amd64/linux32/linux32_proto.h Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/amd64/linux32/linux32_proto.h Thu Jan 1 18:43:31 2015 (r276510) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 271743 2014-09-18 08:36:45Z bz + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 276508 2015-01-01 18:37:03Z dchagin */ #ifndef _LINUX_SYSPROTO_H_ @@ -352,7 +352,7 @@ struct linux_vhangup_args { }; struct linux_wait4_args { char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)]; - char status_l_[PADL_(l_uint *)]; l_uint * status; char status_r_[PADR_(l_uint *)]; + char status_l_[PADL_(l_int *)]; l_int * status; char status_r_[PADR_(l_int *)]; char options_l_[PADL_(l_int)]; l_int options; char options_r_[PADR_(l_int)]; char rusage_l_[PADL_(struct l_rusage *)]; struct l_rusage * rusage; char rusage_r_[PADR_(struct l_rusage *)]; }; Modified: head/sys/amd64/linux32/linux32_syscall.h ============================================================================== --- head/sys/amd64/linux32/linux32_syscall.h Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/amd64/linux32/linux32_syscall.h Thu Jan 1 18:43:31 2015 (r276510) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 271743 2014-09-18 08:36:45Z bz + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 276508 2015-01-01 18:37:03Z dchagin */ #define LINUX_SYS_exit 1 Modified: head/sys/amd64/linux32/linux32_syscalls.c ============================================================================== --- head/sys/amd64/linux32/linux32_syscalls.c Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/amd64/linux32/linux32_syscalls.c Thu Jan 1 18:43:31 2015 (r276510) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 271743 2014-09-18 08:36:45Z bz + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 276508 2015-01-01 18:37:03Z dchagin */ const char *linux_syscallnames[] = { Modified: head/sys/amd64/linux32/linux32_sysent.c ============================================================================== --- head/sys/amd64/linux32/linux32_sysent.c Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/amd64/linux32/linux32_sysent.c Thu Jan 1 18:43:31 2015 (r276510) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 271743 2014-09-18 08:36:45Z bz + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 276508 2015-01-01 18:37:03Z dchagin */ #include "opt_compat.h" Modified: head/sys/amd64/linux32/linux32_systrace_args.c ============================================================================== --- head/sys/amd64/linux32/linux32_systrace_args.c Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/amd64/linux32/linux32_systrace_args.c Thu Jan 1 18:43:31 2015 (r276510) @@ -761,7 +761,7 @@ systrace_args(int sysnum, void *params, case 114: { struct linux_wait4_args *p = params; iarg[0] = p->pid; /* l_pid_t */ - uarg[1] = (intptr_t) p->status; /* l_uint * */ + uarg[1] = (intptr_t) p->status; /* l_int * */ iarg[2] = p->options; /* l_int */ uarg[3] = (intptr_t) p->rusage; /* struct l_rusage * */ *n_args = 4; @@ -3424,7 +3424,7 @@ systrace_entry_setargdesc(int sysnum, in p = "l_pid_t"; break; case 1: - p = "l_uint *"; + p = "l_int *"; break; case 2: p = "l_int"; Modified: head/sys/i386/linux/linux_proto.h ============================================================================== --- head/sys/i386/linux/linux_proto.h Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/i386/linux/linux_proto.h Thu Jan 1 18:43:31 2015 (r276510) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/i386/linux/syscalls.master 271743 2014-09-18 08:36:45Z bz + * created from FreeBSD: head/sys/i386/linux/syscalls.master 276509 2015-01-01 18:41:34Z dchagin */ #ifndef _LINUX_SYSPROTO_H_ @@ -355,7 +355,7 @@ struct linux_vm86old_args { }; struct linux_wait4_args { char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)]; - char status_l_[PADL_(l_uint *)]; l_uint * status; char status_r_[PADR_(l_uint *)]; + char status_l_[PADL_(l_int *)]; l_int * status; char status_r_[PADR_(l_int *)]; char options_l_[PADL_(l_int)]; l_int options; char options_r_[PADR_(l_int)]; char rusage_l_[PADL_(struct l_rusage *)]; struct l_rusage * rusage; char rusage_r_[PADR_(struct l_rusage *)]; }; Modified: head/sys/i386/linux/linux_syscall.h ============================================================================== --- head/sys/i386/linux/linux_syscall.h Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/i386/linux/linux_syscall.h Thu Jan 1 18:43:31 2015 (r276510) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/i386/linux/syscalls.master 271743 2014-09-18 08:36:45Z bz + * created from FreeBSD: head/sys/i386/linux/syscalls.master 276509 2015-01-01 18:41:34Z dchagin */ #define LINUX_SYS_exit 1 Modified: head/sys/i386/linux/linux_syscalls.c ============================================================================== --- head/sys/i386/linux/linux_syscalls.c Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/i386/linux/linux_syscalls.c Thu Jan 1 18:43:31 2015 (r276510) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/i386/linux/syscalls.master 271743 2014-09-18 08:36:45Z bz + * created from FreeBSD: head/sys/i386/linux/syscalls.master 276509 2015-01-01 18:41:34Z dchagin */ const char *linux_syscallnames[] = { Modified: head/sys/i386/linux/linux_sysent.c ============================================================================== --- head/sys/i386/linux/linux_sysent.c Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/i386/linux/linux_sysent.c Thu Jan 1 18:43:31 2015 (r276510) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/i386/linux/syscalls.master 271743 2014-09-18 08:36:45Z bz + * created from FreeBSD: head/sys/i386/linux/syscalls.master 276509 2015-01-01 18:41:34Z dchagin */ #include Modified: head/sys/i386/linux/linux_systrace_args.c ============================================================================== --- head/sys/i386/linux/linux_systrace_args.c Thu Jan 1 18:41:34 2015 (r276509) +++ head/sys/i386/linux/linux_systrace_args.c Thu Jan 1 18:43:31 2015 (r276510) @@ -790,7 +790,7 @@ systrace_args(int sysnum, void *params, case 114: { struct linux_wait4_args *p = params; iarg[0] = p->pid; /* l_pid_t */ - uarg[1] = (intptr_t) p->status; /* l_uint * */ + uarg[1] = (intptr_t) p->status; /* l_int * */ iarg[2] = p->options; /* l_int */ uarg[3] = (intptr_t) p->rusage; /* struct l_rusage * */ *n_args = 4; @@ -3542,7 +3542,7 @@ systrace_entry_setargdesc(int sysnum, in p = "l_pid_t"; break; case 1: - p = "l_uint *"; + p = "l_int *"; break; case 2: p = "l_int"; From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 18:51:45 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 09B47C77; Thu, 1 Jan 2015 18:51:45 +0000 (UTC) Received: from tensor.andric.com (unknown [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "tensor.andric.com", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A404DABC; Thu, 1 Jan 2015 18:51:44 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::28eb:6a07:fcba:ed4a] (unknown [IPv6:2001:7b8:3a7:0:28eb:6a07:fcba:ed4a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 0732BB80A; Thu, 1 Jan 2015 19:51:40 +0100 (CET) Subject: Re: svn commit: r276052 - head Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_790ECAC5-8231-4EE0-8D98-CA0FE250384D"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.5b4 From: Dimitry Andric In-Reply-To: Date: Thu, 1 Jan 2015 19:51:36 +0100 Message-Id: References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> <1420130463.85983.0.camel@freebsd.org> <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> <1420133565.85983.5.camel@freebsd.org> To: Garrett Cooper X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Garrett Cooper , Ian Lepore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 18:51:45 -0000 --Apple-Mail=_790ECAC5-8231-4EE0-8D98-CA0FE250384D Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On 01 Jan 2015, at 19:42, Garrett Cooper wrote: >=20 > On Jan 1, 2015, at 10:38, Garrett Cooper = wrote: >> On Jan 1, 2015, at 9:50, Dimitry Andric wrote: ... >>> No, just MK_INFO=3Dyes, as I said. That is what Garrett tried to = fix in >>> this commit, but which only works for native builds. >>>=20 >>> I'll be coming up with a fix shortly. >>=20 >> OBJTREE is being populated with TARGET.TARGET_ARCH twice=85 That=92s = the bug. >>=20 >> Unfortunately this commit only made this issue apparent. Sorry for = not testing with a non-native build :(... >=20 > I suspect this will fix it. Going to do a tinderbox run then I=92ll = put it out for review: >=20 > Index: Makefile.inc1 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- Makefile.inc1 (revision 276492) > +++ Makefile.inc1 (working copy) > @@ -267,8 +267,7 @@ > MK_LLDB=3Dno MK_TESTS=3Dno >=20 > # build-tools stage > -TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ > - ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ > +TMAKE=3D ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f = Makefile.inc1 \ > TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ > DESTDIR=3D \ > BOOTSTRAPPING=3D${OSRELDATE} \ Hm, wasn't MAKEOBJDIRPREFIX set to that value on purpose, originally? And if so, won't removing it break some assumption elsewhere? That said, this was added in r54684, 15 years ago, so maybe this is slightly out of date. :-) What I've tried instead, is this: Index: Makefile.inc1 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- Makefile.inc1 (revision 276480) +++ Makefile.inc1 (working copy) @@ -270,6 +271,7 @@ TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ + WORLDTMP=3D${WORLDTMP} \ DESTDIR=3D \ BOOTSTRAPPING=3D${OSRELDATE} \ SSP_CFLAGS=3D \ I'm currently testing this with a buildworld, and while it isn't finished yet, it has died either, until now. :) -Dimitry --Apple-Mail=_790ECAC5-8231-4EE0-8D98-CA0FE250384D Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.26 iEYEARECAAYFAlSllzwACgkQsF6jCi4glqN7lwCfegGoLOJQ81Jceez5USsOL53J RxQAoNExZarkcqellFrgtATCSXD9Jcye =qKft -----END PGP SIGNATURE----- --Apple-Mail=_790ECAC5-8231-4EE0-8D98-CA0FE250384D-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 18:58:28 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B5D5DF1A; Thu, 1 Jan 2015 18:58:28 +0000 (UTC) Received: from mail-pd0-x234.google.com (mail-pd0-x234.google.com [IPv6:2607:f8b0:400e:c02::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 77A73B17; Thu, 1 Jan 2015 18:58:28 +0000 (UTC) Received: by mail-pd0-f180.google.com with SMTP id fl12so7006204pdb.39; Thu, 01 Jan 2015 10:58:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=5P+527PijwcQQm9HB0rlLE2q5quLeyWceKY/hkrBG8Q=; b=yoNsoapEUGkU7EAHV4GuM07PDffTD4O4mbpNBbhmWFSQ7a+o21Prl+eQ/H6iVjFuKH M3azow59B182O6xn/btpUHhf970JHwX1LXN4tD4igdM3AVZZN2UAoXm5NFifazDeo+lD TPttOeZ17rHMnTE9cv5oiD2vc2VNVEoQKZQA/iQnbt8lSAZVLr1ToF2etOFk0qhOxHrt p83vKuKzIVZb8vFuZhnuS3AoPsdluHXQOxEdCdkpYGyC753dEiYl9ky4EK9xum0eH6yM hNy1qkwR2qYr2mSnJPOBjbDTtc269IrvNSDzBBNsz2uHxrAldCkUJRqu6w5VIjo4WJe1 Hc1A== X-Received: by 10.70.50.41 with SMTP id z9mr116499126pdn.31.1420138707970; Thu, 01 Jan 2015 10:58:27 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:6d22:f632:3b17:f5d8? ([2601:8:ab80:7d6:6d22:f632:3b17:f5d8]) by mx.google.com with ESMTPSA id bq7sm44512855pdb.50.2015.01.01.10.58.26 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 01 Jan 2015 10:58:27 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_E15451F6-07FF-41A7-B2B1-8791DB6077D4"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276052 - head From: Garrett Cooper In-Reply-To: Date: Thu, 1 Jan 2015 10:58:25 -0800 Message-Id: <23AC4621-7748-4724-BBDC-139E9F74CD99@gmail.com> References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> <1420130463.85983.0.camel@freebsd.org> <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> <1420133565.85983.5.camel@freebsd.org> To: Dimitry Andric X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Garrett Cooper , Ian Lepore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 18:58:28 -0000 --Apple-Mail=_E15451F6-07FF-41A7-B2B1-8791DB6077D4 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Jan 1, 2015, at 10:51, Dimitry Andric wrote: > On 01 Jan 2015, at 19:42, Garrett Cooper = wrote: >>=20 >> On Jan 1, 2015, at 10:38, Garrett Cooper = wrote: >>> On Jan 1, 2015, at 9:50, Dimitry Andric wrote: > ... >>>> No, just MK_INFO=3Dyes, as I said. That is what Garrett tried to = fix in >>>> this commit, but which only works for native builds. >>>>=20 >>>> I'll be coming up with a fix shortly. >>>=20 >>> OBJTREE is being populated with TARGET.TARGET_ARCH twice=85 That=92s = the bug. >>>=20 >>> Unfortunately this commit only made this issue apparent. Sorry for = not testing with a non-native build :(... >>=20 >> I suspect this will fix it. Going to do a tinderbox run then I=92ll = put it out for review: >>=20 >> Index: Makefile.inc1 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> --- Makefile.inc1 (revision 276492) >> +++ Makefile.inc1 (working copy) >> @@ -267,8 +267,7 @@ >> MK_LLDB=3Dno MK_TESTS=3Dno >>=20 >> # build-tools stage >> -TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ >> - ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ >> +TMAKE=3D ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f = Makefile.inc1 \ >> TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ >> DESTDIR=3D \ >> BOOTSTRAPPING=3D${OSRELDATE} \ >=20 > Hm, wasn't MAKEOBJDIRPREFIX set to that value on purpose, originally? > And if so, won't removing it break some assumption elsewhere? That > said, this was added in r54684, 15 years ago, so maybe this is = slightly > out of date. :-) >=20 > What I've tried instead, is this: >=20 > Index: Makefile.inc1 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- Makefile.inc1 (revision 276480) > +++ Makefile.inc1 (working copy) > @@ -270,6 +271,7 @@ > TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ > ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ > TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ > + WORLDTMP=3D${WORLDTMP} \ > DESTDIR=3D \ > BOOTSTRAPPING=3D${OSRELDATE} \ > SSP_CFLAGS=3D \ >=20 > I'm currently testing this with a buildworld, and while it isn't > finished yet, it has died either, until now. :) Removing MAKEOBJDIRPREFIX got me through build-tools with = TARGET/TARGET_ARCH=3Dpowerpc and a native build as well. MAKEOBJDIRPREFIX gets set above it: 190 .if ${MACHINE} =3D=3D ${TARGET} && ${MACHINE_ARCH} =3D=3D = ${TARGET_ARCH} && !defined(CROSS_BUILD_TESTING) 191 OBJTREE=3D ${MAKEOBJDIRPREFIX} 192 .else 193 OBJTREE=3D ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH} 194 .endif ... 270 TMAKE=3D ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f = Makefile.inc1 \ That being said, my commit was probably broken in a cross-build = environment anyhow, as it was installing to ${WORLDTMP}/usr/bin, not = ${WORLDTMP}/legacy/usr/bin (the latter is where all of the build tools = go). Thanks! --Apple-Mail=_E15451F6-07FF-41A7-B2B1-8791DB6077D4 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpZjRAAoJEMZr5QU6S73egrsIAKZgxqxXek9TTObxzHTIvXsi +te5JglIn4If0vEnraJABJDusLSNx97HjfIuW8rery+8rkr757b98K5fzP48cNwR MV6nlk696BucClWI6Qqa2x/Pj995s/AcXFnfAIH1m9U2Y5w4tQoR20F2q5rRbIup TCaDa50l42B9pSKsn4yo1A2ovfrbugXP2knCZs6aIwS1ec4CzwkBBMUf9lUwsg+O PHjCU/2YLITRqlBWeAN2pre+9H648W4OEW1U+pn6eI5Tegu1EBFVruWWBQYxn7pb lH6Jk2XQRhJP1m0sn5TGOXJcphqgavR3oTC8FxkTdpgNftmBbace/A9o4a8a/NM= =VGrH -----END PGP SIGNATURE----- --Apple-Mail=_E15451F6-07FF-41A7-B2B1-8791DB6077D4-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 19:57:26 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2E2F0188; Thu, 1 Jan 2015 19:57:26 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 00594662D8; Thu, 1 Jan 2015 19:57:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01JvPRV020824; Thu, 1 Jan 2015 19:57:25 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01JvPvx020823; Thu, 1 Jan 2015 19:57:25 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201501011957.t01JvPvx020823@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Thu, 1 Jan 2015 19:57:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276511 - head/sys/compat/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 19:57:26 -0000 Author: dchagin Date: Thu Jan 1 19:57:24 2015 New Revision: 276511 URL: https://svnweb.freebsd.org/changeset/base/276511 Log: Fix Clang warning: passing 'unsigned int *' to parameter of type 'int *' converts between pointers to integer types with different sign. MFC after: 1 week Modified: head/sys/compat/linux/linux_futex.c Modified: head/sys/compat/linux/linux_futex.c ============================================================================== --- head/sys/compat/linux/linux_futex.c Thu Jan 1 18:43:31 2015 (r276510) +++ head/sys/compat/linux/linux_futex.c Thu Jan 1 19:57:24 2015 (r276511) @@ -175,11 +175,12 @@ LIN_SDT_PROBE_DEFINE2(futex, linux_get_r LIN_SDT_PROBE_DEFINE1(futex, linux_get_robust_list, copyout_error, "int"); LIN_SDT_PROBE_DEFINE1(futex, linux_get_robust_list, return, "int"); LIN_SDT_PROBE_DEFINE3(futex, handle_futex_death, entry, "struct proc *", - "uint32_t *", "int"); + "uint32_t *", "unsigned int"); LIN_SDT_PROBE_DEFINE1(futex, handle_futex_death, copyin_error, "int"); LIN_SDT_PROBE_DEFINE1(futex, handle_futex_death, return, "int"); LIN_SDT_PROBE_DEFINE3(futex, fetch_robust_entry, entry, - "struct linux_robust_list **", "struct linux_robust_list **", "int *"); + "struct linux_robust_list **", "struct linux_robust_list **", + "unsigned int *"); LIN_SDT_PROBE_DEFINE1(futex, fetch_robust_entry, copyin_error, "int"); LIN_SDT_PROBE_DEFINE1(futex, fetch_robust_entry, return, "int"); LIN_SDT_PROBE_DEFINE1(futex, release_futexes, entry, "struct proc *"); @@ -1100,7 +1101,7 @@ linux_get_robust_list(struct thread *td, } static int -handle_futex_death(struct proc *p, uint32_t *uaddr, int pi) +handle_futex_death(struct proc *p, uint32_t *uaddr, unsigned int pi) { uint32_t uval, nval, mval; struct futex *f; @@ -1149,7 +1150,7 @@ retry: static int fetch_robust_entry(struct linux_robust_list **entry, - struct linux_robust_list **head, int *pi) + struct linux_robust_list **head, unsigned int *pi) { l_ulong uentry; int error; From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 20:21:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 10E0B57F for ; Thu, 1 Jan 2015 20:21:02 +0000 (UTC) Received: from mail-we0-f181.google.com (mail-we0-f181.google.com [74.125.82.181]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8C59B66560 for ; Thu, 1 Jan 2015 20:21:01 +0000 (UTC) Received: by mail-we0-f181.google.com with SMTP id q58so3757029wes.40 for ; Thu, 01 Jan 2015 12:20:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type; bh=VG+wSgJGHTTt/iB29GOL1pk0Hsp8+1ugLxXst/aY3Xs=; b=l+e+OP0zKp4d4/JxL8pPgpO+2IB9ZeOs7ssAq8zZ/Z4Q6WNu+CRdpCzbcmEVLVsXh4 D5zbeYCXfjBwQAfK5SgjePQ3DAwzeTXRW3aFysHSt5ahCkH4UbgsBlZs8Qs7QHRUPwzP uXXrOMtL8qMGzcLd3mM/AOaZZooaB3YXTb+ThDDS9asc5CqTfVONyNqYpeVSiONvIlBN XW86ydpGutt4wCJaaKqTVCAhYXdcga6Jyp9eU4G4Vc4QyR7TvvACgseP+Y5Yp8kxmkfN ydI1Dv8NmyI5su+dkeJkIzwM2uQs6NS2RfjA9NIjnx4LaIcwcTNTTRJpD1F6jfpGxD0s IPtA== X-Gm-Message-State: ALoCoQmJVRdLbp5Se02Ruxjk5z/YrwydwjFDHGY/Vb7UFNlXttuu4n5gdNrpp/YgcXdBbx6C4sHE X-Received: by 10.194.189.138 with SMTP id gi10mr147062767wjc.86.1420143659458; Thu, 01 Jan 2015 12:20:59 -0800 (PST) Received: from [10.10.1.68] (82-69-141-170.dsl.in-addr.zen.co.uk. [82.69.141.170]) by mx.google.com with ESMTPSA id nj9sm51787558wic.10.2015.01.01.12.20.58 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Jan 2015 12:20:58 -0800 (PST) Message-ID: <54A5AC21.5070802@multiplay.co.uk> Date: Thu, 01 Jan 2015 20:20:49 +0000 From: Steven Hartland User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Xin Li , d@delphij.net, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r276123 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs References: <201412230931.sBN9VPMK017968@svn.freebsd.org> <54A35B88.9090102@delphij.net> <54A39153.8040905@freebsd.org> <54A3ACEF.70905@delphij.net> In-Reply-To: <54A3ACEF.70905@delphij.net> Content-Type: multipart/mixed; boundary="------------070607090801080704000405" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 20:21:02 -0000 This is a multi-part message in MIME format. --------------070607090801080704000405 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 31/12/2014 07:59, Xin Li wrote: > Hi, Steven, > > On 12/30/14 22:01, Steven Hartland wrote: >> On 31/12/2014 02:12, Xin Li wrote: >>> On 12/23/14 01:31, Steven Hartland wrote: >>>> Author: smh >>>> Date: Tue Dec 23 09:31:24 2014 >>>> New Revision: 276123 >>>> URL: https://svnweb.freebsd.org/changeset/base/276123 >>>> >>>> Log: >>>> Always sync the global ZFS config cache to reflect the new mosconfig >>>> This fixes out of date zpool.cache for root pools, which can >>>> cause issues >>>> such as confusion of zdb etc. >>>> MFC after: 1 month >>>> >>>> Modified: >>>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>>> >>>> Modified: >>>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>>> ============================================================================== >>>> >>>> --- >>>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>>> Tue Dec 23 08:51:30 2014 (r276122) >>>> +++ >>>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>>> Tue Dec 23 09:31:24 2014 (r276123) >>>> @@ -536,8 +536,7 @@ spa_config_update(spa_t *spa, int what) >>>> /* >>>> * Update the global config cache to reflect the new mosconfig. >>>> */ >>>> - if (!spa->spa_is_root) >>>> - spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); >>>> + spa_config_sync(spa, B_FALSE, what != SPA_CONFIG_UPDATE_POOL); >>>> if (what == SPA_CONFIG_UPDATE_POOL) >>>> spa_config_update(spa, SPA_CONFIG_UPDATE_VDEVS); >>> It seems like that this change breaks systems where not all pools are >>> available (e.g. some of pools are encrypted) at boot time, by removing >>> all these pools from the cache file. >>> >>> As a result, on the next boot, these pools would not be imported even >>> when the devices are available (geli attached), and reverting this >>> change would restore the system to its previous behavior. >>> >>> Perhaps it have exposed an existing bug? >> I've managed to reproduce this here with mdX backed test pools, and >> looking into it this is due to spa_config_sync: >> >> /* >> * Skip over our own pool if we're about to remove >> * ourselves from the spa namespace or any pool >> that >> * is readonly. Since we cannot guarantee that a >> * readonly pool would successfully import upon >> reboot, >> * we don't allow them to be written to the >> cache file. >> */ >> if ((spa == target && removing) || >> !spa_writeable(spa)) { >> continue; >> } >> >> This was added by upstream: >> https://github.com/illumos/illumos-gate/commit/fb02ae025247e3b662600e5a9c1b4c33ecab7d72 >> >> https://www.illumos.org/issues/3639 >> >> It seems the desired behavior was to exclude read only pools, to prevent >> them being mounted writable on reboot, but the check is too wide and >> also excludes unavailable pools too. >> >> The attached patch corrects the test to only check writable on active >> pools so I believe should fix the issue your seeing. >> >> If you can test it and lmk that would be great. > This is an improvement (the attaching of pool is now working) but the > cached configuration is somewhat corrupted, it shows many lines of > vdev_stats[] contents. > > I'll take a look at the code tomorrow and see if I can do some > instruments and possibly figure out the underlying issue. > > Cheers, Looks like the spa_config_sync makes the assumption that the last call to spa_config_generate was done with getstats = 0. This is now an invalid assumption so we need to ensure that stats are removed from the config nvl before persisting to disk. The attached patch, which supersedes the last one I sent, fixes that in my tests here. Let me know if it fixes your test case too? Regards Steve --------------070607090801080704000405 Content-Type: text/plain; charset=windows-1252; name="zpool-cache.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="zpool-cache.patch" Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c =================================================================== --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c (revision 276123) +++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c (working copy) @@ -140,6 +140,26 @@ out: kobj_close_file(file); } +static void +spa_config_clean(nvlist_t *nvl) +{ + nvlist_t **child; + nvlist_t *nvroot = NULL; + uint_t c, children; + + if (nvlist_lookup_nvlist_array(nvl, ZPOOL_CONFIG_CHILDREN, &child, + &children) == 0) { + for (c = 0; c < children; c++) + spa_config_clean(child[c]); + } + + if (nvlist_lookup_nvlist(nvl, ZPOOL_CONFIG_VDEV_TREE, &nvroot) == 0) + spa_config_clean(nvroot); + + nvlist_remove(nvl, ZPOOL_CONFIG_VDEV_STATS, DATA_TYPE_UINT64_ARRAY); + nvlist_remove(nvl, ZPOOL_CONFIG_SCAN_STATS, DATA_TYPE_UINT64_ARRAY); +} + static int spa_config_write(spa_config_dirent_t *dp, nvlist_t *nvl) { @@ -233,6 +253,7 @@ spa_config_sync(spa_t *target, boolean_t removing, */ nvl = NULL; while ((spa = spa_next(spa)) != NULL) { + nvlist_t *nvroot = NULL; /* * Skip over our own pool if we're about to remove * ourselves from the spa namespace or any pool that @@ -241,7 +262,8 @@ spa_config_sync(spa_t *target, boolean_t removing, * we don't allow them to be written to the cache file. */ if ((spa == target && removing) || - !spa_writeable(spa)) + (spa_state(spa) == POOL_STATE_ACTIVE && + !spa_writeable(spa))) continue; mutex_enter(&spa->spa_props_lock); @@ -260,6 +282,9 @@ spa_config_sync(spa_t *target, boolean_t removing, VERIFY(nvlist_add_nvlist(nvl, spa->spa_name, spa->spa_config) == 0); mutex_exit(&spa->spa_props_lock); + + if (nvlist_lookup_nvlist(nvl, spa->spa_name, &nvroot) == 0) + spa_config_clean(nvroot); } error = spa_config_write(dp, nvl); --------------070607090801080704000405-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 20:53:39 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 89BA9C84; Thu, 1 Jan 2015 20:53:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 75ADDA8C; Thu, 1 Jan 2015 20:53:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01KrdDO049216; Thu, 1 Jan 2015 20:53:39 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01Krd1K049215; Thu, 1 Jan 2015 20:53:39 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201501012053.t01Krd1K049215@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Thu, 1 Jan 2015 20:53:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276512 - head/sys/compat/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 20:53:39 -0000 Author: dchagin Date: Thu Jan 1 20:53:38 2015 New Revision: 276512 URL: https://svnweb.freebsd.org/changeset/base/276512 Log: Fix Clang -Wpointer-sign warnings. MFC after: 1 week Modified: head/sys/compat/linux/linux_socket.c Modified: head/sys/compat/linux/linux_socket.c ============================================================================== --- head/sys/compat/linux/linux_socket.c Thu Jan 1 19:57:24 2015 (r276511) +++ head/sys/compat/linux/linux_socket.c Thu Jan 1 20:53:38 2015 (r276512) @@ -573,7 +573,8 @@ linux_sendit(struct thread *td, int s, s static int linux_check_hdrincl(struct thread *td, int s) { - int error, optval, size_val; + int error, optval; + socklen_t size_val; size_val = sizeof(optval); error = kern_getsockopt(td, s, IPPROTO_IP, IP_HDRINCL, @@ -932,7 +933,7 @@ linux_getpeername(struct thread *td, str bsd_args.fdes = args->s; bsd_args.asa = (struct sockaddr *)PTRIN(args->addr); - bsd_args.alen = (int *)PTRIN(args->namelen); + bsd_args.alen = (socklen_t *)PTRIN(args->namelen); error = sys_getpeername(td, &bsd_args); bsd_to_linux_sockaddr((struct sockaddr *)bsd_args.asa); if (error) From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 21:14:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 08FA51F8; Thu, 1 Jan 2015 21:14:02 +0000 (UTC) Received: from mail-pd0-x22f.google.com (mail-pd0-x22f.google.com [IPv6:2607:f8b0:400e:c02::22f]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BE5D4D32; Thu, 1 Jan 2015 21:14:01 +0000 (UTC) Received: by mail-pd0-f175.google.com with SMTP id g10so22754985pdj.20; Thu, 01 Jan 2015 13:14:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=W6AikZ5N4ncFurjnfOvlwNEshIrTi5uUvzmvVmIErv0=; b=Auk7yCAJOt1VDNWgBtVFuB7Y76HSLlFenzc370Yng3JTpcSG16UkzABTrASaupvatY t+FjSqr3uZYRx+rYc64y3OInCmaU3w/L76E7BDzWiQcR7/fBQo7GMgb8j1Z07OD9AM6J PARh4Nt2FaooGyT1j2k/4lGfd9LVCPzWQ0XZAzxIvb2md58P+DQfhXpapdjK/Z8OHpYl uoMEHaMYBbNANDa9PtcVhlcBOCq4DxFVbopu0+2oP6tWSrKef8mxSBKktu26lS/E7Pm2 dnhqkT2zYyUI/ixrw1B7Q45vteAwarcuYOTo5uQYnAG7OnrVXpaAFhCS2X7hy+ERRefb yMFA== X-Received: by 10.68.197.8 with SMTP id iq8mr92102879pbc.66.1420146841067; Thu, 01 Jan 2015 13:14:01 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:6d22:f632:3b17:f5d8? ([2601:8:ab80:7d6:6d22:f632:3b17:f5d8]) by mx.google.com with ESMTPSA id nt6sm44703136pdb.26.2015.01.01.13.13.59 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 01 Jan 2015 13:14:00 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_94D28C94-D7E1-47B9-94F7-47655A5DDC34"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276052 - head From: Garrett Cooper In-Reply-To: <23AC4621-7748-4724-BBDC-139E9F74CD99@gmail.com> Date: Thu, 1 Jan 2015 13:13:57 -0800 Message-Id: <00AE655C-0609-4FB0-A275-4A0B0AC9DF97@gmail.com> References: <201412220452.sBM4qPAx096443@svn.freebsd.org> <68874DE1-3EAE-4A4D-9760-7661DA7AE846@FreeBSD.org> <1420130463.85983.0.camel@freebsd.org> <9A1C084E-B491-4581-A21C-AAB82687C588@FreeBSD.org> <1420133565.85983.5.camel@freebsd.org> <23AC4621-7748-4724-BBDC-139E9F74CD99@gmail.com> To: Dimitry Andric X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Garrett Cooper , Ian Lepore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 21:14:02 -0000 --Apple-Mail=_94D28C94-D7E1-47B9-94F7-47655A5DDC34 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Jan 1, 2015, at 10:58, Garrett Cooper wrote: > On Jan 1, 2015, at 10:51, Dimitry Andric wrote: >=20 >> On 01 Jan 2015, at 19:42, Garrett Cooper = wrote: >>>=20 >>> On Jan 1, 2015, at 10:38, Garrett Cooper = wrote: >>>> On Jan 1, 2015, at 9:50, Dimitry Andric wrote: >> ... >>>>> No, just MK_INFO=3Dyes, as I said. That is what Garrett tried to = fix in >>>>> this commit, but which only works for native builds. >>>>>=20 >>>>> I'll be coming up with a fix shortly. >>>>=20 >>>> OBJTREE is being populated with TARGET.TARGET_ARCH twice=85 That=92s = the bug. >>>>=20 >>>> Unfortunately this commit only made this issue apparent. Sorry for = not testing with a non-native build :(... >>>=20 >>> I suspect this will fix it. Going to do a tinderbox run then I=92ll = put it out for review: >>>=20 >>> Index: Makefile.inc1 >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> --- Makefile.inc1 (revision 276492) >>> +++ Makefile.inc1 (working copy) >>> @@ -267,8 +267,7 @@ >>> MK_LLDB=3Dno MK_TESTS=3Dno >>>=20 >>> # build-tools stage >>> -TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ >>> - ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ >>> +TMAKE=3D ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f = Makefile.inc1 \ >>> TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ >>> DESTDIR=3D \ >>> BOOTSTRAPPING=3D${OSRELDATE} \ >>=20 >> Hm, wasn't MAKEOBJDIRPREFIX set to that value on purpose, originally? >> And if so, won't removing it break some assumption elsewhere? That >> said, this was added in r54684, 15 years ago, so maybe this is = slightly >> out of date. :-) >>=20 >> What I've tried instead, is this: >>=20 >> Index: Makefile.inc1 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> --- Makefile.inc1 (revision 276480) >> +++ Makefile.inc1 (working copy) >> @@ -270,6 +271,7 @@ >> TMAKE=3D MAKEOBJDIRPREFIX=3D${OBJTREE} \ >> ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \ >> TARGET=3D${TARGET} TARGET_ARCH=3D${TARGET_ARCH} \ >> + WORLDTMP=3D${WORLDTMP} \ >> DESTDIR=3D \ >> BOOTSTRAPPING=3D${OSRELDATE} \ >> SSP_CFLAGS=3D \ >>=20 >> I'm currently testing this with a buildworld, and while it isn't >> finished yet, it has died either, until now. :) >=20 > Removing MAKEOBJDIRPREFIX got me through build-tools with = TARGET/TARGET_ARCH=3Dpowerpc and a native build as well. >=20 > MAKEOBJDIRPREFIX gets set above it: >=20 > 190 .if ${MACHINE} =3D=3D ${TARGET} && ${MACHINE_ARCH} =3D=3D = ${TARGET_ARCH} && !defined(CROSS_BUILD_TESTING) > 191 OBJTREE=3D ${MAKEOBJDIRPREFIX} > 192 .else > 193 OBJTREE=3D ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH} > 194 .endif > ... > 270 TMAKE=3D ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f = Makefile.inc1 \ >=20 > That being said, my commit was probably broken in a cross-build = environment anyhow, as it was installing to ${WORLDTMP}/usr/bin, not = ${WORLDTMP}/legacy/usr/bin (the latter is where all of the build tools = go). Oh cool. More make tinderbox broken-ness=85 = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D196425 . --Apple-Mail=_94D28C94-D7E1-47B9-94F7-47655A5DDC34 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpbiXAAoJEMZr5QU6S73e8BAH/2BkEpAjOSVGedCWJBfELvIQ LuEGUIsjyIeWufd18KMWXPASz/LcHuzvVuo5i8S7ssyMNcaKQmIPFJJnqTXPOOdt tcsRMPlONT4/y+XuXLudbfpKX/gECGFJkJdB1jp2Cjto9RS6p/zpV0G5QCxj0ljt skCjBdUnVPSNyLmDIiM6AbR2keA29uwFDJFpgDgRTArdJWqcQhTU7dQ9qEa3U9Qk uMnsZXEg0IsnfhP9pQa1p/OBgcNuIZ/OnP4q1V1gvLHF893d60+xSFuzXf6PHgBe BfEVQahjFKfHS9Iflass/ydPN7EH1635VD0kFEv4sDadrXsTkvKMsADhCmLAyhU= =0YgZ -----END PGP SIGNATURE----- --Apple-Mail=_94D28C94-D7E1-47B9-94F7-47655A5DDC34-- From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 22:20:20 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CFE72D91; Thu, 1 Jan 2015 22:20:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BB7C0645D2; Thu, 1 Jan 2015 22:20:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01MKKlB088393; Thu, 1 Jan 2015 22:20:20 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01MKK7t088392; Thu, 1 Jan 2015 22:20:20 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201501012220.t01MKK7t088392@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Thu, 1 Jan 2015 22:20:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276514 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 22:20:20 -0000 Author: nwhitehorn Date: Thu Jan 1 22:20:19 2015 New Revision: 276514 URL: https://svnweb.freebsd.org/changeset/base/276514 Log: The path entry for a device tree node and its name property are usually, but not always, identical. In particular, the path entry may contain a unit address that the name does not. If the FDT node does have an explicit name property, treat that as an override of the FDT path rather than ignoring it. MFC after: 2 weeks Modified: head/sys/dev/ofw/ofw_fdt.c Modified: head/sys/dev/ofw/ofw_fdt.c ============================================================================== --- head/sys/dev/ofw/ofw_fdt.c Thu Jan 1 22:18:27 2015 (r276513) +++ head/sys/dev/ofw/ofw_fdt.c Thu Jan 1 22:20:19 2015 (r276514) @@ -222,15 +222,15 @@ ofw_fdt_getproplen(ofw_t ofw, phandle_t if (offset < 0) return (-1); - if (strcmp(propname, "name") == 0) { + len = -1; + prop = fdt_get_property(fdtp, offset, propname, &len); + + if (prop == NULL && strcmp(propname, "name") == 0) { /* Emulate the 'name' property */ fdt_get_name(fdtp, offset, &len); return (len + 1); } - len = -1; - prop = fdt_get_property(fdtp, offset, propname, &len); - return (len); } @@ -247,7 +247,9 @@ ofw_fdt_getprop(ofw_t ofw, phandle_t pac if (offset < 0) return (-1); - if (strcmp(propname, "name") == 0) { + prop = fdt_getprop(fdtp, offset, propname, &len); + + if (prop == NULL && strcmp(propname, "name") == 0) { /* Emulate the 'name' property */ name = fdt_get_name(fdtp, offset, &len); strncpy(buf, name, buflen); @@ -256,7 +258,6 @@ ofw_fdt_getprop(ofw_t ofw, phandle_t pac return (len + 1); } - prop = fdt_getprop(fdtp, offset, propname, &len); if (prop == NULL) return (-1); From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 22:26:14 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 336A6EC; Thu, 1 Jan 2015 22:26:14 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 13FF46471B; Thu, 1 Jan 2015 22:26:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01MQDHo091927; Thu, 1 Jan 2015 22:26:13 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01MQD2v091920; Thu, 1 Jan 2015 22:26:13 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201501012226.t01MQD2v091920@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Thu, 1 Jan 2015 22:26:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276515 - in head/sys/powerpc: aim conf ofw pseries X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 22:26:14 -0000 Author: nwhitehorn Date: Thu Jan 1 22:26:12 2015 New Revision: 276515 URL: https://svnweb.freebsd.org/changeset/base/276515 Log: Allow booting with both a real Open Firmware tree and a flattened version of the Open Firmware, as provided by petitboot, for example. Note that this is not quite complete, since RTAS instantiation still depends on callable firmware. MFC after: 2 weeks Modified: head/sys/powerpc/aim/mmu_oea64.c head/sys/powerpc/conf/GENERIC64 head/sys/powerpc/ofw/ofw_machdep.c head/sys/powerpc/pseries/xics.c Modified: head/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea64.c Thu Jan 1 22:20:19 2015 (r276514) +++ head/sys/powerpc/aim/mmu_oea64.c Thu Jan 1 22:26:12 2015 (r276515) @@ -188,6 +188,7 @@ extern unsigned char _etext[]; extern unsigned char _end[]; extern int dumpsys_minidump; +extern int ofw_real_mode; /* * Map of physical memory regions. @@ -850,7 +851,7 @@ moea64_late_bootstrap(mmu_t mmup, vm_off ihandle_t mmui; phandle_t chosen; phandle_t mmu; - size_t sz; + ssize_t sz; int i; vm_offset_t pa, va; void *dpcpu; @@ -861,15 +862,17 @@ moea64_late_bootstrap(mmu_t mmup, vm_off */ chosen = OF_finddevice("/chosen"); - if (chosen != -1 && OF_getprop(chosen, "mmu", &mmui, 4) != -1) { - mmu = OF_instance_to_package(mmui); - if (mmu == -1 || (sz = OF_getproplen(mmu, "translations")) == -1) - sz = 0; - if (sz > 6144 /* tmpstksz - 2 KB headroom */) - panic("moea64_bootstrap: too many ofw translations"); + if (!ofw_real_mode && chosen != -1 && + OF_getprop(chosen, "mmu", &mmui, 4) != -1) { + mmu = OF_instance_to_package(mmui); + if (mmu == -1 || + (sz = OF_getproplen(mmu, "translations")) == -1) + sz = 0; + if (sz > 6144 /* tmpstksz - 2 KB headroom */) + panic("moea64_bootstrap: too many ofw translations"); - if (sz > 0) - moea64_add_ofw_mappings(mmup, mmu, sz); + if (sz > 0) + moea64_add_ofw_mappings(mmup, mmu, sz); } /* Modified: head/sys/powerpc/conf/GENERIC64 ============================================================================== --- head/sys/powerpc/conf/GENERIC64 Thu Jan 1 22:20:19 2015 (r276514) +++ head/sys/powerpc/conf/GENERIC64 Thu Jan 1 22:26:12 2015 (r276515) @@ -32,6 +32,7 @@ options PS3 #Sony Playstation 3 options MAMBO #IBM Mambo Full System Simulator options PSERIES #PAPR-compliant systems (e.g. IBM p) +options FDT #Flattened Device Tree options SCHED_ULE #ULE scheduler options PREEMPTION #Enable kernel thread preemption options INET #InterNETworking Modified: head/sys/powerpc/ofw/ofw_machdep.c ============================================================================== --- head/sys/powerpc/ofw/ofw_machdep.c Thu Jan 1 22:20:19 2015 (r276514) +++ head/sys/powerpc/ofw/ofw_machdep.c Thu Jan 1 22:26:12 2015 (r276515) @@ -328,6 +328,9 @@ openfirmware_core(void *args) int result; register_t oldmsr; + if (openfirmware_entry == NULL) + return (-1); + /* * Turn off exceptions - we really don't want to end up * anywhere unexpected with PCPU set to something strange @@ -402,7 +405,12 @@ openfirmware(void *args) int result; #ifdef SMP struct ofw_rv_args rv_args; + #endif + if (openfirmware_entry == NULL) + return (-1); + + #ifdef SMP rv_args.args = args; rv_args.in_progress = 1; smp_rendezvous(smp_no_rendevous_barrier, ofw_rendezvous_dispatch, Modified: head/sys/powerpc/pseries/xics.c ============================================================================== --- head/sys/powerpc/pseries/xics.c Thu Jan 1 22:20:19 2015 (r276514) +++ head/sys/powerpc/pseries/xics.c Thu Jan 1 22:26:12 2015 (r276515) @@ -169,10 +169,7 @@ xicp_attach(device_t dev) sc->ibm_set_xive = rtas_token_lookup("ibm,set-xive"); sc->ibm_get_xive = rtas_token_lookup("ibm,get-xive"); - if (OF_getproplen(phandle, "ibm,phandle") > 0) - OF_getprop(phandle, "ibm,phandle", &phandle, sizeof(phandle)); - - powerpc_register_pic(dev, phandle, MAX_XICP_IRQS, + powerpc_register_pic(dev, OF_xref_from_node(phandle), MAX_XICP_IRQS, 1 /* Number of IPIs */, FALSE); root_pic = dev; @@ -184,12 +181,9 @@ xics_attach(device_t dev) { phandle_t phandle = ofw_bus_get_node(dev); - if (OF_getproplen(phandle, "ibm,phandle") > 0) - OF_getprop(phandle, "ibm,phandle", &phandle, sizeof(phandle)); - /* The XICP (root PIC) will handle all our interrupts */ - powerpc_register_pic(root_pic, phandle, MAX_XICP_IRQS, - 1 /* Number of IPIs */, FALSE); + powerpc_register_pic(root_pic, OF_xref_from_node(phandle), + MAX_XICP_IRQS, 1 /* Number of IPIs */, FALSE); return (0); } From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 22:44:03 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C486E3E7; Thu, 1 Jan 2015 22:44:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B0B1364985; Thu, 1 Jan 2015 22:44:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01Mi3aE001286; Thu, 1 Jan 2015 22:44:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01Mi3AV001285; Thu, 1 Jan 2015 22:44:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201501012244.t01Mi3AV001285@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 1 Jan 2015 22:44:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276516 - head/contrib/llvm/tools/clang/lib/Sema X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 22:44:03 -0000 Author: dim Date: Thu Jan 1 22:44:02 2015 New Revision: 276516 URL: https://svnweb.freebsd.org/changeset/base/276516 Log: Pull in r213790 from upstream clang trunk (by Richard Smith): PR20228: don't retain a pointer to a vector element after the container has been resized. This fixes a possible crash when compiling certain parts of libc++'s type_traits header. Modified: head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp Modified: head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp ============================================================================== --- head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp Thu Jan 1 22:26:12 2015 (r276515) +++ head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp Thu Jan 1 22:44:02 2015 (r276516) @@ -3642,12 +3642,13 @@ static bool evaluateTypeTrait(Sema &S, T if (T->isObjectType() || T->isFunctionType()) T = S.Context.getRValueReferenceType(T); OpaqueArgExprs.push_back( - OpaqueValueExpr(Args[I]->getTypeLoc().getLocStart(), + OpaqueValueExpr(Args[I]->getTypeLoc().getLocStart(), T.getNonLValueExprType(S.Context), Expr::getValueKindForType(T))); - ArgExprs.push_back(&OpaqueArgExprs.back()); } - + for (Expr &E : OpaqueArgExprs) + ArgExprs.push_back(&E); + // Perform the initialization in an unevaluated context within a SFINAE // trap at translation unit scope. EnterExpressionEvaluationContext Unevaluated(S, Sema::Unevaluated); From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 22:49:18 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9FE275D9; Thu, 1 Jan 2015 22:49:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 80E67649E6; Thu, 1 Jan 2015 22:49:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01MnIbF002058; Thu, 1 Jan 2015 22:49:18 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01MnIYv002057; Thu, 1 Jan 2015 22:49:18 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201501012249.t01MnIYv002057@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 1 Jan 2015 22:49:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276517 - head/contrib/libc++/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 22:49:18 -0000 Author: dim Date: Thu Jan 1 22:49:17 2015 New Revision: 276517 URL: https://svnweb.freebsd.org/changeset/base/276517 Log: Pull in r200010 from upstream libc++ trunk (by Marshall Clow): Rename some internal templates to avoid conflict with complier intrinsics. __is_constructible --> __libcpp_is_constructible, __is_nothrow_constructible --> __libcpp_is_nothrow_constructible, and __is_nothrow_assignable --> __libcpp_is_nothrow_assignable. No functionality change. Pull in r206805 from upstream libc++ trunk (by Marshall Clow): Use compiler intrinsic __is_constructible if available This should fix building parts of world with -std=c++11 enabled. Reported by: Oliver Hartmann MFC after: 1 week Modified: head/contrib/libc++/include/type_traits Modified: head/contrib/libc++/include/type_traits ============================================================================== --- head/contrib/libc++/include/type_traits Thu Jan 1 22:44:02 2015 (r276516) +++ head/contrib/libc++/include/type_traits Thu Jan 1 22:49:17 2015 (r276517) @@ -2015,10 +2015,24 @@ class _LIBCPP_TYPE_VIS_ONLY result_of<_F #endif // _LIBCPP_HAS_NO_VARIADICS -#ifndef _LIBCPP_HAS_NO_VARIADICS - // template struct is_constructible; +namespace __is_construct +{ +struct __nat {}; +} + +#if __has_feature(is_constructible) + +template +struct _LIBCPP_TYPE_VIS_ONLY is_constructible + : public integral_constant + {}; + +#else + +#ifndef _LIBCPP_HAS_NO_VARIADICS + // main is_constructible test template @@ -2030,7 +2044,7 @@ false_type __is_constructible_test(__any, _Args&& ...); template -struct __is_constructible // false, _Tp is not a scalar +struct __libcpp_is_constructible // false, _Tp is not a scalar : public common_type < decltype(__is_constructible_test(declval<_Tp>(), declval<_Args>()...)) @@ -2040,7 +2054,7 @@ struct __is_constructible // false, _Tp // function types are not constructible template -struct __is_constructible +struct __libcpp_is_constructible : public false_type {}; @@ -2049,7 +2063,7 @@ struct __is_constructible -struct __is_constructible +struct __libcpp_is_constructible : public is_scalar<_Tp> {}; @@ -2064,7 +2078,7 @@ struct __is_constructible_ref }; template -struct __is_constructible +struct __libcpp_is_constructible : public common_type < decltype(__is_constructible_ref<_Tp>::__lxx(declval<_A0>())) @@ -2074,7 +2088,7 @@ struct __is_constructible -struct __is_constructible +struct __libcpp_is_constructible : public false_type {}; @@ -2082,7 +2096,7 @@ struct __is_constructible struct __is_constructible_void_check - : public __is_constructible::value || is_reference<_Tp>::value, + : public __libcpp_is_constructible::value || is_reference<_Tp>::value, _Tp, _Args...> {}; @@ -2117,21 +2131,21 @@ struct _LIBCPP_TYPE_VIS_ONLY is_construc // is default constructible template -struct __is_constructible +struct __libcpp_is_constructible : public is_constructible::type> {}; // Otherwise array types are not constructible by this syntax template -struct __is_constructible +struct __libcpp_is_constructible : public false_type {}; // Incomplete array types are not constructible template -struct __is_constructible +struct __libcpp_is_constructible : public false_type {}; @@ -2246,13 +2260,6 @@ struct __is_constructible2_void_check struct _LIBCPP_TYPE_VIS_ONLY is_constructible @@ -2317,6 +2324,7 @@ struct __is_constructible2_imp struct __is_nothrow_constructible; +template struct __libcpp_is_nothrow_constructible; template -struct __is_nothrow_constructible +struct __libcpp_is_nothrow_constructible : public integral_constant()...))> { }; template -struct __is_nothrow_constructible +struct __libcpp_is_nothrow_constructible : public false_type { }; template struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible - : __is_nothrow_constructible::value, _Tp, _Args...> + : __libcpp_is_nothrow_constructible::value, _Tp, _Args...> { }; template struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp[_Ns]> - : __is_nothrow_constructible::value, _Tp> + : __libcpp_is_nothrow_constructible::value, _Tp> { }; @@ -2743,23 +2751,23 @@ template struct _LIBCPP_TYPE #if __has_feature(cxx_noexcept) -template struct __is_nothrow_assignable; +template struct __libcpp_is_nothrow_assignable; template -struct __is_nothrow_assignable +struct __libcpp_is_nothrow_assignable : public false_type { }; template -struct __is_nothrow_assignable +struct __libcpp_is_nothrow_assignable : public integral_constant() = _VSTD::declval<_Arg>()) > { }; template struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_assignable - : public __is_nothrow_assignable::value, _Tp, _Arg> + : public __libcpp_is_nothrow_assignable::value, _Tp, _Arg> { }; @@ -2829,23 +2837,23 @@ template struct _LIBCPP_TYPE #if __has_feature(cxx_noexcept) -template struct __is_nothrow_destructible; +template struct __libcpp_is_nothrow_destructible; template -struct __is_nothrow_destructible +struct __libcpp_is_nothrow_destructible : public false_type { }; template -struct __is_nothrow_destructible +struct __libcpp_is_nothrow_destructible : public integral_constant().~_Tp()) > { }; template struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_destructible - : public __is_nothrow_destructible::value, _Tp> + : public __libcpp_is_nothrow_destructible::value, _Tp> { }; From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 23:15:53 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 84BA1A55; Thu, 1 Jan 2015 23:15:53 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 703D5E9E; Thu, 1 Jan 2015 23:15:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01NFrtm015633; Thu, 1 Jan 2015 23:15:53 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01NFrPV015632; Thu, 1 Jan 2015 23:15:53 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501012315.t01NFrPV015632@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Thu, 1 Jan 2015 23:15:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276518 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 23:15:53 -0000 Author: ian Date: Thu Jan 1 23:15:52 2015 New Revision: 276518 URL: https://svnweb.freebsd.org/changeset/base/276518 Log: Rework the vpf support code so that it compiles with clang 3.4, 3.5, and gcc. Michal Meloun did most of the hard work in figuring out what would work with which compiler, I just reformated things a bit before committing. Modified: head/sys/arm/arm/vfp.c Modified: head/sys/arm/arm/vfp.c ============================================================================== --- head/sys/arm/arm/vfp.c Thu Jan 1 22:49:17 2015 (r276517) +++ head/sys/arm/arm/vfp.c Thu Jan 1 23:15:52 2015 (r276518) @@ -51,30 +51,35 @@ static struct undefined_handler vfp10_uh /* If true the VFP unit has 32 double registers, otherwise it has 16 */ static int is_d32; -/* The VFMXR command using coprocessor commands */ +/* + * About .fpu directives in this file... + * + * We should need simply .fpu vfpv3, but clang 3.5 has a quirk where setting + * vfpv3 doesn't imply that vfp2 features are also available -- both have to be + * explicitly set to get all the features of both. This is probably a bug in + * clang, so it may get fixed and require changes here some day. Other changes + * are probably coming in clang too, because there is email and open PRs + * indicating they want to completely disable the ability to use .fpu and + * similar directives in inline asm. That would be catastrophic for us, + * hopefully they come to their senses. There was also some discusion of a new + * syntax such as .push fpu=vfpv3; ...; .pop fpu; and that would be ideal for + * us, better than what we have now really. + * + * For gcc, each .fpu directive completely overrides the prior directive, unlike + * with clang, but luckily on gcc saying v3 implies all the v2 features as well. + */ + #define fmxr(reg, val) \ - __asm __volatile("mcr p10, 7, %0, " __STRING(reg) " , c0, 0" :: "r"(val)); + __asm __volatile(" .fpu vfpv2\n .fpu vfpv3\n" \ + " vmsr " __STRING(reg) ", %0" :: "r"(val)); -/* The VFMRX command using coprocessor commands */ #define fmrx(reg) \ ({ u_int val = 0;\ - __asm __volatile("mrc p10, 7, %0, " __STRING(reg) " , c0, 0" : "=r"(val));\ + __asm __volatile(" .fpu vfpv2\n .fpu vfpv3\n" \ + " vmrs %0, " __STRING(reg) : "=r"(val)); \ val; \ }) -/* - * Work around an issue with GCC where the asm it generates is not unified - * syntax and fails to assemble because it expects the ldcleq instruction in the - * form ldcl, not in the UAL form ldcl, and similar for stcleq. - */ -#ifdef __clang__ -#define LDCLNE "ldclne " -#define STCLNE "stclne " -#else -#define LDCLNE "ldcnel " -#define STCLNE "stcnel " -#endif - static u_int get_coprocessorACR(void) { @@ -103,25 +108,25 @@ vfp_init(void) coproc |= COPROC10 | COPROC11; set_coprocessorACR(coproc); - fpsid = fmrx(VFPSID); /* read the vfp system id */ - fpexc = fmrx(VFPEXC); /* read the vfp exception reg */ + fpsid = fmrx(fpsid); /* read the vfp system id */ + fpexc = fmrx(fpexc); /* read the vfp exception reg */ if (!(fpsid & VFPSID_HARDSOFT_IMP)) { vfp_exists = 1; is_d32 = 0; - PCPU_SET(vfpsid, fpsid); /* save the VFPSID */ + PCPU_SET(vfpsid, fpsid); /* save the fpsid */ vfp_arch = (fpsid & VFPSID_SUBVERSION2_MASK) >> VFPSID_SUBVERSION_OFF; if (vfp_arch >= VFP_ARCH3) { - tmp = fmrx(VMVFR0); + tmp = fmrx(mvfr0); PCPU_SET(vfpmvfr0, tmp); if ((tmp & VMVFR0_RB_MASK) == 2) is_d32 = 1; - tmp = fmrx(VMVFR1); + tmp = fmrx(mvfr1); PCPU_SET(vfpmvfr1, tmp); } @@ -161,10 +166,10 @@ vfp_bounce(u_int addr, u_int insn, struc * something tried to executate a truly invalid instruction that maps to * the VFP. */ - fpexc = fmrx(VFPEXC); + fpexc = fmrx(fpexc); if (fpexc & VFPEXC_EN) { /* Clear any exceptions */ - fmxr(VFPEXC, fpexc & ~(VFPEXC_EX | VFPEXC_FP2V)); + fmxr(fpexc, fpexc & ~(VFPEXC_EX | VFPEXC_FP2V)); /* kill the process - we do not handle emulation */ critical_exit(); @@ -192,7 +197,7 @@ vfp_bounce(u_int addr, u_int insn, struc * the last thread to use the VFP on this core was this thread, then the * VFP state is valid, otherwise restore this thread's state to the VFP. */ - fmxr(VFPEXC, fpexc | VFPEXC_EN); + fmxr(fpexc, fpexc | VFPEXC_EN); curpcb = curthread->td_pcb; cpu = PCPU_GET(cpu); if (curpcb->pcb_vfpcpu != cpu || curthread != PCPU_GET(fpcurthread)) { @@ -213,22 +218,26 @@ vfp_restore(struct vfp_state *vfpsave) { uint32_t fpexc; - /* On VFPv2 we may need to restore FPINST and FPINST2 */ + /* On vfpv3 we may need to restore FPINST and FPINST2 */ fpexc = vfpsave->fpexec; if (fpexc & VFPEXC_EX) { - fmxr(VFPINST, vfpsave->fpinst); + fmxr(fpinst, vfpsave->fpinst); if (fpexc & VFPEXC_FP2V) - fmxr(VFPINST2, vfpsave->fpinst2); + fmxr(fpinst2, vfpsave->fpinst2); } - fmxr(VFPSCR, vfpsave->fpscr); + fmxr(fpscr, vfpsave->fpscr); - __asm __volatile("ldc p10, c0, [%0], #128\n" /* d0-d15 */ - "cmp %1, #0\n" /* -D16 or -D32? */ - LDCLNE "p11, c0, [%0], #128\n" /* d16-d31 */ - "addeq %0, %0, #128\n" /* skip missing regs */ - : : "r" (vfpsave), "r" (is_d32) : "cc"); + __asm __volatile( + " .fpu vfpv2\n" + " .fpu vfpv3\n" + " vldmia %0!, {d0-d15}\n" /* d0-d15 */ + " cmp %1, #0\n" /* -D16 or -D32? */ + " vldmiane %0!, {d16-d31}\n" /* d16-d31 */ + " addeq %0, %0, #128\n" /* skip missing regs */ + : "+&r" (vfpsave) : "r" (is_d32) : "cc" + ); - fmxr(VFPEXC, fpexc); + fmxr(fpexc, fpexc); } /* @@ -241,28 +250,31 @@ vfp_store(struct vfp_state *vfpsave, boo { uint32_t fpexc; - fpexc = fmrx(VFPEXC); /* Is the vfp enabled? */ + fpexc = fmrx(fpexc); /* Is the vfp enabled? */ if (fpexc & VFPEXC_EN) { vfpsave->fpexec = fpexc; - vfpsave->fpscr = fmrx(VFPSCR); + vfpsave->fpscr = fmrx(fpscr); - /* On VFPv2 we may need to save FPINST and FPINST2 */ + /* On vfpv3 we may need to save FPINST and FPINST2 */ if (fpexc & VFPEXC_EX) { - vfpsave->fpinst = fmrx(VFPINST); + vfpsave->fpinst = fmrx(fpinst); if (fpexc & VFPEXC_FP2V) - vfpsave->fpinst2 = fmrx(VFPINST2); + vfpsave->fpinst2 = fmrx(fpinst2); fpexc &= ~VFPEXC_EX; } __asm __volatile( - "stc p11, c0, [%0], #128\n" /* d0-d15 */ - "cmp %1, #0\n" /* -D16 or -D32? */ - STCLNE "p11, c0, [%0], #128\n" /* d16-d31 */ - "addeq %0, %0, #128\n" /* skip missing regs */ - : : "r" (vfpsave), "r" (is_d32) : "cc"); + " .fpu vfpv2\n" + " .fpu vfpv3\n" + " vstmia %0!, {d0-d15}\n" /* d0-d15 */ + " cmp %1, #0\n" /* -D16 or -D32? */ + " vstmiane r0!, {d16-d31}\n" /* d16-d31 */ + " addeq %0, %0, #128\n" /* skip missing regs */ + : "+&r" (vfpsave) : "r" (is_d32) : "cc" + ); if (disable_vfp) - fmxr(VFPEXC , fpexc & ~VFPEXC_EN); + fmxr(fpexc , fpexc & ~VFPEXC_EN); } } @@ -281,9 +293,9 @@ vfp_discard(struct thread *td) if (PCPU_GET(fpcurthread) == td) PCPU_SET(fpcurthread, NULL); - tmp = fmrx(VFPEXC); + tmp = fmrx(fpexc); if (tmp & VFPEXC_EN) - fmxr(VFPEXC, tmp & ~VFPEXC_EN); + fmxr(fpexc, tmp & ~VFPEXC_EN); } #endif From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 23:18:39 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0B175BC8; Thu, 1 Jan 2015 23:18:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EB1AAEE3; Thu, 1 Jan 2015 23:18:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01NIcR6015998; Thu, 1 Jan 2015 23:18:38 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01NIcgw015995; Thu, 1 Jan 2015 23:18:38 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501012318.t01NIcgw015995@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Thu, 1 Jan 2015 23:18:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276519 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 23:18:39 -0000 Author: ian Date: Thu Jan 1 23:18:37 2015 New Revision: 276519 URL: https://svnweb.freebsd.org/changeset/base/276519 Log: Define a WFI macro that expands to the right form of wait-for-interrupt depending on the architecture. Modified: head/sys/arm/arm/locore-v6.S head/sys/arm/include/asm.h head/sys/arm/include/sysreg.h Modified: head/sys/arm/arm/locore-v6.S ============================================================================== --- head/sys/arm/arm/locore-v6.S Thu Jan 1 23:15:52 2015 (r276518) +++ head/sys/arm/arm/locore-v6.S Thu Jan 1 23:18:37 2015 (r276519) @@ -461,7 +461,7 @@ ENTRY_NP(cpu_halt) teq r4, #0 movne pc, r4 1: - wfi + WFI b 1b /* Modified: head/sys/arm/include/asm.h ============================================================================== --- head/sys/arm/include/asm.h Thu Jan 1 23:15:52 2015 (r276518) +++ head/sys/arm/include/asm.h Thu Jan 1 23:18:37 2015 (r276519) @@ -227,14 +227,17 @@ #define ISB isb #define DSB dsb #define DMB dmb +#define WFI wfi #elif __ARM_ARCH == 6 #define ISB mcr CP15_CP15ISB #define DSB mcr CP15_CP15DSB #define DMB mcr CP15_CP15DMB +#define WFI mcr CP15_CP15WFI #else #define ISB mcr CP15_CP15ISB #define DSB mcr CP15_CP15DSB /* DSB and DMB are the */ #define DMB mcr CP15_CP15DSB /* same prior to v6.*/ +/* No form of WFI available on v4, define nothing to get an error on use. */ #endif #endif /* !_MACHINE_ASM_H_ */ Modified: head/sys/arm/include/sysreg.h ============================================================================== --- head/sys/arm/include/sysreg.h Thu Jan 1 23:15:52 2015 (r276518) +++ head/sys/arm/include/sysreg.h Thu Jan 1 23:18:37 2015 (r276519) @@ -166,6 +166,7 @@ /* Only ARMv6: */ #define CP15_CP15DSB p15, 0, r0, c7, c10, 4 /* DSB */ #define CP15_CP15DMB p15, 0, r0, c7, c10, 5 /* DMB */ +#define CP15_CP15WFI p15, 0, r0, c7, c0, 4 /* WFI */ #endif #if __ARM_ARCH >= 7 From owner-svn-src-all@FreeBSD.ORG Thu Jan 1 23:21:50 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D36B2D61; Thu, 1 Jan 2015 23:21:50 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BD6BBFBE; Thu, 1 Jan 2015 23:21:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t01NLowZ018018; Thu, 1 Jan 2015 23:21:50 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t01NLljx017992; Thu, 1 Jan 2015 23:21:47 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501012321.t01NLljx017992@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Thu, 1 Jan 2015 23:21:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276520 - in head/sys/arm: allwinner allwinner/a20 altera/socfpga freescale/imx freescale/vybrid mv rockchip samsung/exynos ti xilinx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jan 2015 23:21:50 -0000 Author: ian Date: Thu Jan 1 23:21:46 2015 New Revision: 276520 URL: https://svnweb.freebsd.org/changeset/base/276520 Log: Remove -Wa,-march=armv7a from arm kernel configs, it makes clang 3.5 sad and apparently isn't needed now that we're using the integrated assembler. Modified: head/sys/arm/allwinner/a20/std.a20 head/sys/arm/allwinner/std.a10 head/sys/arm/altera/socfpga/std.socfpga head/sys/arm/freescale/imx/std.imx51 head/sys/arm/freescale/imx/std.imx53 head/sys/arm/freescale/imx/std.imx6 head/sys/arm/freescale/vybrid/std.vybrid head/sys/arm/mv/std-pj4b.mv head/sys/arm/rockchip/std.rk30xx head/sys/arm/samsung/exynos/std.exynos5250 head/sys/arm/samsung/exynos/std.exynos5420 head/sys/arm/ti/std.ti head/sys/arm/xilinx/std.zynq7 Modified: head/sys/arm/allwinner/a20/std.a20 ============================================================================== --- head/sys/arm/allwinner/a20/std.a20 Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/allwinner/a20/std.a20 Thu Jan 1 23:21:46 2015 (r276520) @@ -3,7 +3,7 @@ cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" makeoption ARM_LITTLE_ENDIAN # Physical memory starts at 0x40200000. We assume images are loaded at Modified: head/sys/arm/allwinner/std.a10 ============================================================================== --- head/sys/arm/allwinner/std.a10 Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/allwinner/std.a10 Thu Jan 1 23:21:46 2015 (r276520) @@ -3,7 +3,7 @@ cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" makeoption ARM_LITTLE_ENDIAN # Physical memory starts at 0x40200000. We assume images are loaded at Modified: head/sys/arm/altera/socfpga/std.socfpga ============================================================================== --- head/sys/arm/altera/socfpga/std.socfpga Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/altera/socfpga/std.socfpga Thu Jan 1 23:21:46 2015 (r276520) @@ -4,7 +4,7 @@ makeoption ARM_LITTLE_ENDIAN cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" options PHYSADDR=0x00000000 Modified: head/sys/arm/freescale/imx/std.imx51 ============================================================================== --- head/sys/arm/freescale/imx/std.imx51 Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/freescale/imx/std.imx51 Thu Jan 1 23:21:46 2015 (r276520) @@ -1,7 +1,7 @@ # $FreeBSD$ machine arm armv6 cpu CPU_CORTEXA -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" makeoptions ARM_LITTLE_ENDIAN options ARM_L2_PIPT Modified: head/sys/arm/freescale/imx/std.imx53 ============================================================================== --- head/sys/arm/freescale/imx/std.imx53 Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/freescale/imx/std.imx53 Thu Jan 1 23:21:46 2015 (r276520) @@ -1,7 +1,7 @@ # $FreeBSD$ machine arm armv6 cpu CPU_CORTEXA -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" makeoptions ARM_LITTLE_ENDIAN options ARM_L2_PIPT Modified: head/sys/arm/freescale/imx/std.imx6 ============================================================================== --- head/sys/arm/freescale/imx/std.imx6 Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/freescale/imx/std.imx6 Thu Jan 1 23:21:46 2015 (r276520) @@ -1,7 +1,7 @@ # $FreeBSD$ machine arm armv6 cpu CPU_CORTEXA -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" makeoptions ARM_LITTLE_ENDIAN options ARM_L2_PIPT Modified: head/sys/arm/freescale/vybrid/std.vybrid ============================================================================== --- head/sys/arm/freescale/vybrid/std.vybrid Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/freescale/vybrid/std.vybrid Thu Jan 1 23:21:46 2015 (r276520) @@ -4,7 +4,7 @@ makeoption ARM_LITTLE_ENDIAN cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" options PHYSADDR=0x80000000 Modified: head/sys/arm/mv/std-pj4b.mv ============================================================================== --- head/sys/arm/mv/std-pj4b.mv Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/mv/std-pj4b.mv Thu Jan 1 23:21:46 2015 (r276520) @@ -3,6 +3,6 @@ files "../mv/files.mv" cpu CPU_MV_PJ4B machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" options VM_MAXUSER_ADDRESS="(KERNBASE-(1024*1024*1024))" Modified: head/sys/arm/rockchip/std.rk30xx ============================================================================== --- head/sys/arm/rockchip/std.rk30xx Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/rockchip/std.rk30xx Thu Jan 1 23:21:46 2015 (r276520) @@ -3,7 +3,7 @@ cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" makeoption ARM_LITTLE_ENDIAN # Physical memory starts at 0x60400000. We assume images are loaded at Modified: head/sys/arm/samsung/exynos/std.exynos5250 ============================================================================== --- head/sys/arm/samsung/exynos/std.exynos5250 Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/samsung/exynos/std.exynos5250 Thu Jan 1 23:21:46 2015 (r276520) @@ -4,7 +4,7 @@ makeoption ARM_LITTLE_ENDIAN cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" options PHYSADDR=0x40000000 Modified: head/sys/arm/samsung/exynos/std.exynos5420 ============================================================================== --- head/sys/arm/samsung/exynos/std.exynos5420 Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/samsung/exynos/std.exynos5420 Thu Jan 1 23:21:46 2015 (r276520) @@ -4,7 +4,7 @@ makeoption ARM_LITTLE_ENDIAN cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" options PHYSADDR=0x20000000 Modified: head/sys/arm/ti/std.ti ============================================================================== --- head/sys/arm/ti/std.ti Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/ti/std.ti Thu Jan 1 23:21:46 2015 (r276520) @@ -2,6 +2,6 @@ cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" files "../ti/files.ti" Modified: head/sys/arm/xilinx/std.zynq7 ============================================================================== --- head/sys/arm/xilinx/std.zynq7 Thu Jan 1 23:18:37 2015 (r276519) +++ head/sys/arm/xilinx/std.zynq7 Thu Jan 1 23:21:46 2015 (r276520) @@ -5,7 +5,7 @@ cpu CPU_CORTEXA machine arm armv6 -makeoptions CONF_CFLAGS="-march=armv7a -Wa,-march=armv7a" +makeoptions CONF_CFLAGS="-march=armv7a" files "../xilinx/files.zynq7" From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 00:57:41 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 757BBB56; Fri, 2 Jan 2015 00:57:41 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6174D64C88; Fri, 2 Jan 2015 00:57:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t020vf7e063192; Fri, 2 Jan 2015 00:57:41 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t020vf4d063191; Fri, 2 Jan 2015 00:57:41 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201501020057.t020vf4d063191@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 2 Jan 2015 00:57:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276521 - head/contrib/netbsd-tests/lib/libm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 00:57:41 -0000 Author: ngie Date: Fri Jan 2 00:57:40 2015 New Revision: 276521 URL: https://svnweb.freebsd.org/changeset/base/276521 Log: Reset errno in :scalbnf_val and :scalbnl_val before running the tests so the tested errno isn't stale This was needed in order for the test to pass on amd64 with stable/10 MFC after: 3 days Modified: head/contrib/netbsd-tests/lib/libm/t_scalbn.c Modified: head/contrib/netbsd-tests/lib/libm/t_scalbn.c ============================================================================== --- head/contrib/netbsd-tests/lib/libm/t_scalbn.c Thu Jan 1 23:21:46 2015 (r276520) +++ head/contrib/netbsd-tests/lib/libm/t_scalbn.c Fri Jan 2 00:57:40 2015 (r276521) @@ -225,6 +225,9 @@ ATF_TC_BODY(scalbnf_val, tc) double rv; for (i = 0; i < tcnt; i++) { +#ifdef __FreeBSD__ + errno = 0; +#endif rv = scalbnf(tests[i].inval, tests[i].exp); ATF_CHECK_EQ_MSG(errno, tests[i].error, "test %zu: errno %d instead of %d", i, errno, @@ -369,6 +372,9 @@ ATF_TC_BODY(scalbnl_val, tc) long double rv; for (i = 0; i < tcnt; i++) { +#ifdef __FreeBSD__ + errno = 0; +#endif rv = scalbnl(tests[i].inval, tests[i].exp); ATF_CHECK_EQ_MSG(errno, tests[i].error, "test %zu: errno %d instead of %d", i, errno, From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 01:00:39 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D8062D79; Fri, 2 Jan 2015 01:00:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C46DB64D83; Fri, 2 Jan 2015 01:00:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t0210dvM064364; Fri, 2 Jan 2015 01:00:39 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t0210dIx064363; Fri, 2 Jan 2015 01:00:39 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201501020100.t0210dIx064363@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 2 Jan 2015 01:00:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276522 - head/sys/amd64/amd64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 01:00:40 -0000 Author: kib Date: Fri Jan 2 01:00:38 2015 New Revision: 276522 URL: https://svnweb.freebsd.org/changeset/base/276522 Log: Actually remove GIANT_REQUIRED, declared but not done in r263475. Style. Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/amd64/amd64/mem.c Modified: head/sys/amd64/amd64/mem.c ============================================================================== --- head/sys/amd64/amd64/mem.c Fri Jan 2 00:57:40 2015 (r276521) +++ head/sys/amd64/amd64/mem.c Fri Jan 2 01:00:38 2015 (r276522) @@ -81,8 +81,6 @@ memrw(struct cdev *dev, struct uio *uio, int error, o, sflags; vm_offset_t addr, eaddr; - GIANT_REQUIRED; - error = 0; c = 0; sflags = curthread_pflags_set(TDP_DEVMEMIO); @@ -110,8 +108,7 @@ kmemphys: } error = uiomove((void *)v, (int)c, uio); continue; - } - else if (dev2unit(dev) == CDEV_MINOR_KMEM) { + } else if (dev2unit(dev) == CDEV_MINOR_KMEM) { v = uio->uio_offset; if (v >= DMAP_MIN_ADDRESS && v < DMAP_MAX_ADDRESS) { From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 01:05:09 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EC523EE9; Fri, 2 Jan 2015 01:05:09 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D817C64DC6; Fri, 2 Jan 2015 01:05:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t021591h067720; Fri, 2 Jan 2015 01:05:09 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02159vZ067719; Fri, 2 Jan 2015 01:05:09 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201501020105.t02159vZ067719@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 2 Jan 2015 01:05:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276523 - head/sys/amd64/amd64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 01:05:10 -0000 Author: kib Date: Fri Jan 2 01:05:08 2015 New Revision: 276523 URL: https://svnweb.freebsd.org/changeset/base/276523 Log: Callers of pmap_kextract() cannot distinguish between failure and physical address zero. Assume that the lowest page is always mapped by direct map. This restores access to the page at zero through /dev/mem after r263475. Reported and tested by: neel Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/amd64/amd64/mem.c Modified: head/sys/amd64/amd64/mem.c ============================================================================== --- head/sys/amd64/amd64/mem.c Fri Jan 2 01:00:38 2015 (r276522) +++ head/sys/amd64/amd64/mem.c Fri Jan 2 01:05:08 2015 (r276523) @@ -77,7 +77,7 @@ int memrw(struct cdev *dev, struct uio *uio, int flags) { struct iovec *iov; - u_long c, v; + u_long c, v, vd; int error, o, sflags; vm_offset_t addr, eaddr; @@ -98,15 +98,15 @@ memrw(struct cdev *dev, struct uio *uio, kmemphys: o = v & PAGE_MASK; c = min(uio->uio_resid, (u_int)(PAGE_SIZE - o)); - v = PHYS_TO_DMAP(v); - if (v < DMAP_MIN_ADDRESS || - (v > DMAP_MIN_ADDRESS + dmaplimit && - v <= DMAP_MAX_ADDRESS) || - pmap_kextract(v) == 0) { + vd = PHYS_TO_DMAP(v); + if (vd < DMAP_MIN_ADDRESS || + (vd > DMAP_MIN_ADDRESS + dmaplimit && + vd <= DMAP_MAX_ADDRESS) || + (pmap_kextract(vd) == 0 && (v & PG_FRAME) != 0)) { error = EFAULT; goto ret; } - error = uiomove((void *)v, (int)c, uio); + error = uiomove((void *)vd, (int)c, uio); continue; } else if (dev2unit(dev) == CDEV_MINOR_KMEM) { v = uio->uio_offset; From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 02:47:49 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F1809157; Fri, 2 Jan 2015 02:47:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DD38764C56; Fri, 2 Jan 2015 02:47:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t022lmM4014441; Fri, 2 Jan 2015 02:47:48 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t022lm7B014440; Fri, 2 Jan 2015 02:47:48 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201501020247.t022lm7B014440@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 2 Jan 2015 02:47:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276524 - head/contrib/elftoolchain/libelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 02:47:49 -0000 Author: emaste Date: Fri Jan 2 02:47:47 2015 New Revision: 276524 URL: https://svnweb.freebsd.org/changeset/base/276524 Log: libelf: Return an error instead of asserting on an invalid ar file Upstream elftoolchain ticket 467 http://sourceforge.net/p/elftoolchain/tickets/467/ Reported by: Alexander Cherepanov MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/libelf/libelf_ar_util.c Modified: head/contrib/elftoolchain/libelf/libelf_ar_util.c ============================================================================== --- head/contrib/elftoolchain/libelf/libelf_ar_util.c Fri Jan 2 01:05:08 2015 (r276523) +++ head/contrib/elftoolchain/libelf/libelf_ar_util.c Fri Jan 2 02:47:47 2015 (r276524) @@ -279,7 +279,8 @@ _libelf_ar_open(Elf *e, int reporterror) */ if (arh.ar_name[0] == '/') { - assert(sz > 0); + if (sz == 0) + goto error; e->e_flags |= LIBELF_F_AR_VARIANT_SVR4; From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 03:20:14 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DA88587E; Fri, 2 Jan 2015 03:20:14 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C6E7C14B0; Fri, 2 Jan 2015 03:20:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t023KEmG029725; Fri, 2 Jan 2015 03:20:14 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t023KESc029724; Fri, 2 Jan 2015 03:20:14 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501020320.t023KESc029724@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Fri, 2 Jan 2015 03:20:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276525 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 03:20:15 -0000 Author: ian Date: Fri Jan 2 03:20:13 2015 New Revision: 276525 URL: https://svnweb.freebsd.org/changeset/base/276525 Log: Put in a workaround for bug 196407 (arm modules cause crashes & panics). When we started compiling the kernel with -march=armv7 the compiler started emitting new types of relocation info which are incompatible with the shared-lib file format used by .ko modules. This workaround prevents the compiler from emitting the instruction sequences that require the new relocs. This amounts to using an undocumented internal compiler flag, so this is just a temporary workaround while we look for a good fix. PR: 196407 Modified: head/sys/conf/kmod.mk Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Fri Jan 2 02:47:47 2015 (r276524) +++ head/sys/conf/kmod.mk Fri Jan 2 03:20:13 2015 (r276525) @@ -118,6 +118,11 @@ CFLAGS+= ${DEBUG_FLAGS} CFLAGS+= -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer .endif +# Temporary workaround for PR 196407, which contains the fascinating details. +.if ${MACHINE_CPUARCH} == arm +CFLAGS.clang+= -mllvm -arm-use-movt=0 +.endif + .if ${MACHINE_CPUARCH} == powerpc CFLAGS+= -mlongcall -fno-omit-frame-pointer .endif From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 05:34:17 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C3EF0961; Fri, 2 Jan 2015 05:34:17 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A445D64731; Fri, 2 Jan 2015 05:34:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t025YHvv093794; Fri, 2 Jan 2015 05:34:17 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t025YFU5093787; Fri, 2 Jan 2015 05:34:15 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201501020534.t025YFU5093787@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Fri, 2 Jan 2015 05:34:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276526 - in head: share/man/man4 sys/conf sys/dev/asr sys/i386/conf sys/modules sys/modules/asr X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 05:34:17 -0000 Author: scottl Date: Fri Jan 2 05:34:14 2015 New Revision: 276526 URL: https://svnweb.freebsd.org/changeset/base/276526 Log: Garbage collect the asr driver. Hardware for it has not been produced in roughly 10 years, and the driver has not enjoyed any significant maintenance since long before that. Despite well-meaning efforts from a number of people, myself included, it never made the jump to 64-bit and was relegated to the back-corners of i386. Now its frailty is hampering forward progress with Clang. Any renewed engineering efforts are of course welcome and can happen outside of the tree. No MFC of this is planned. Deleted: head/share/man/man4/asr.4 head/sys/dev/asr/ head/sys/modules/asr/ Modified: head/share/man/man4/Makefile head/sys/conf/files head/sys/conf/options.i386 head/sys/i386/conf/GENERIC head/sys/i386/conf/NOTES head/sys/i386/conf/PAE head/sys/modules/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Fri Jan 2 03:20:13 2015 (r276525) +++ head/share/man/man4/Makefile Fri Jan 2 05:34:14 2015 (r276526) @@ -52,7 +52,6 @@ MAN= aac.4 \ ${_apic.4} \ arcmsr.4 \ ${_asmc.4} \ - asr.4 \ ata.4 \ ath.4 \ ath_ahb.4 \ Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Fri Jan 2 03:20:13 2015 (r276525) +++ head/sys/conf/files Fri Jan 2 05:34:14 2015 (r276526) @@ -673,8 +673,6 @@ dev/an/if_an.c optional an dev/an/if_an_isa.c optional an isa dev/an/if_an_pccard.c optional an pccard dev/an/if_an_pci.c optional an pci -dev/asr/asr.c optional asr pci \ - compile-with "${NORMAL_C} ${NO_WARRAY_BOUNDS}" # dev/ata/ata_if.m optional ata | atacore dev/ata/ata-all.c optional ata | atacore Modified: head/sys/conf/options.i386 ============================================================================== --- head/sys/conf/options.i386 Fri Jan 2 03:20:13 2015 (r276525) +++ head/sys/conf/options.i386 Fri Jan 2 05:34:14 2015 (r276526) @@ -109,7 +109,6 @@ NETGRAPH_CRONYX opt_ng_cronyx.h DEV_APIC opt_apic.h DEV_ATPIC opt_atpic.h DEV_NPX opt_npx.h -ASR_COMPAT opt_asr.h # Debugging NPX_DEBUG opt_npx.h Modified: head/sys/i386/conf/GENERIC ============================================================================== --- head/sys/i386/conf/GENERIC Fri Jan 2 03:20:13 2015 (r276525) +++ head/sys/i386/conf/GENERIC Fri Jan 2 05:34:14 2015 (r276526) @@ -150,7 +150,6 @@ device ses # Enclosure Services (SES # RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID -device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x Modified: head/sys/i386/conf/NOTES ============================================================================== --- head/sys/i386/conf/NOTES Fri Jan 2 03:20:13 2015 (r276525) +++ head/sys/i386/conf/NOTES Fri Jan 2 05:34:14 2015 (r276526) @@ -738,12 +738,6 @@ device aacp # SCSI Passthrough interfac # Adaptec by PMC RAID controllers, Series 6/7/8 and upcoming families device aacraid # Container interface, CAM required -# The 'asr' driver provides support for current DPT/Adaptec SCSI RAID -# controllers (SmartRAID V and VI and later). -# These controllers require the CAM infrastructure. -# -device asr - # # Highpoint RocketRAID 27xx. device hpt27xx @@ -1070,6 +1064,3 @@ options VM_KMEM_SIZE_MAX options VM_KMEM_SIZE_SCALE -# asr old ioctls support, needed by raidutils - -options ASR_COMPAT Modified: head/sys/i386/conf/PAE ============================================================================== --- head/sys/i386/conf/PAE Fri Jan 2 03:20:13 2015 (r276525) +++ head/sys/i386/conf/PAE Fri Jan 2 05:34:14 2015 (r276526) @@ -17,7 +17,6 @@ nodevice hptmv nodevice ida # The following drivers don't work with PAE enabled. -makeoptions WITHOUT_MODULES+="asr ncr pst" -nodevice asr +makeoptions WITHOUT_MODULES+="ncr pst" nodevice ncr nodevice pst Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Fri Jan 2 03:20:13 2015 (r276525) +++ head/sys/modules/Makefile Fri Jan 2 05:34:14 2015 (r276526) @@ -44,7 +44,6 @@ SUBDIR= \ ${_arcmsr} \ ${_arcnet} \ ${_asmc} \ - ${_asr} \ ata \ ath \ ath_pci \ @@ -649,7 +648,6 @@ _xe= xe .if ${MK_EISA} != "no" _ahb= ahb .endif -_asr= asr _bios= bios _cm= cm .if ${MK_SOURCELESS_UCODE} != "no" From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 05:35:26 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0D00DA99; Fri, 2 Jan 2015 05:35:26 +0000 (UTC) Received: from mail-pd0-x233.google.com (mail-pd0-x233.google.com [IPv6:2607:f8b0:400e:c02::233]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C72B26473C; Fri, 2 Jan 2015 05:35:25 +0000 (UTC) Received: by mail-pd0-f179.google.com with SMTP id fp1so23218809pdb.38; Thu, 01 Jan 2015 21:35:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=Gd7eVGWNMWmFTVNu2RYCNQ9J/SXGkd22wpTt4cU4mdk=; b=T3Njyw+iVDGmZ9XE7oXbUtEPljtVOA6hNXAEBJ0g+c/krtS6C261IAfPAsDmFAHl0O FmxqOZTjN73CcoQOC5SEyw+vtzLyizgb9lJ4sRiYiNqu/cI5Uur9BwYxVl3G7/r6wuhX YoBkxAvswAF4eB00bRiLvGRBwdPxDELNXOR8O3XlysGpC+5LnyFg69UA3eMF9wC9NyQi ViBgEH3eavAETb0kucp5dS2JnbxUKZwRl/AN8r2/6arkY4jI2pSbNJGSHhXJOiZ5rulW WO5hoBFsjiK5QSEZytdwwPMNbeZXhQWvKSY8wvV17bmvzXa6xTbkupM4eqSd9bujmqwu nqow== X-Received: by 10.70.90.10 with SMTP id bs10mr118539327pdb.165.1420176925097; Thu, 01 Jan 2015 21:35:25 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:6d22:f632:3b17:f5d8? ([2601:8:ab80:7d6:6d22:f632:3b17:f5d8]) by mx.google.com with ESMTPSA id cm10sm45700679pad.46.2015.01.01.21.35.23 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 01 Jan 2015 21:35:24 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_6A69A06F-E9EC-4D9A-BF53-FC6AF6D71609"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276526 - in head: share/man/man4 sys/conf sys/dev/asr sys/i386/conf sys/modules sys/modules/asr From: Garrett Cooper In-Reply-To: <201501020534.t025YFU5093787@svn.freebsd.org> Date: Thu, 1 Jan 2015 21:35:19 -0800 Message-Id: References: <201501020534.t025YFU5093787@svn.freebsd.org> To: Scott Long X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 05:35:26 -0000 --Apple-Mail=_6A69A06F-E9EC-4D9A-BF53-FC6AF6D71609 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On Jan 1, 2015, at 21:34, Scott Long wrote: > Author: scottl > Date: Fri Jan 2 05:34:14 2015 > New Revision: 276526 > URL: https://svnweb.freebsd.org/changeset/base/276526 >=20 > Log: > Garbage collect the asr driver. Hardware for it has not been = produced in > roughly 10 years, and the driver has not enjoyed any significant = maintenance > since long before that. Despite well-meaning efforts from a number = of > people, myself included, it never made the jump to 64-bit and was = relegated > to the back-corners of i386. Now its frailty is hampering forward = progress > with Clang. Any renewed engineering efforts are of course welcome = and can > happen outside of the tree. No MFC of this is planned. An MFC will be required if clang 3.5.0 is going to be MFCed to stable/10 = though... --Apple-Mail=_6A69A06F-E9EC-4D9A-BF53-FC6AF6D71609 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpi4YAAoJEMZr5QU6S73epcQIAIMsetup0uN1zPpuWQAJB+ZX 6ixbkvvu8f+dlMnfl1hmWdfcU4xhHYocHM3yXcGKz7a/yZ2aOzM7tVFv7VCJuyDQ oCbWIpJW7KWDACSuh2/f9W39WgQM1FocsFodPo7YWqSgzqsBqVZk3WrEY5nSZfoC 2aqtdLhHZtg0eTq+QmYAzcm7JYvj8FSVlm87oTcnPuRHOdZXCxcC7L8z0jWKLLDJ yuucxlTd7AIioEgJwxiJeKh5c83yFF8mq3PiPZJQ9/7XjjIVeyN+xUCrieGdZruY i6Tz95dGMH6UJ0uyzQp5nNoB1ZxN+aMluwz8reBuFxOuYReNWMt93+A7rwd+0U8= =l04U -----END PGP SIGNATURE----- --Apple-Mail=_6A69A06F-E9EC-4D9A-BF53-FC6AF6D71609-- From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 05:40:04 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8F538C8E; Fri, 2 Jan 2015 05:40:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 61F7E6478B; Fri, 2 Jan 2015 05:40:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t025e4q4094579; Fri, 2 Jan 2015 05:40:04 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t025e3FD094571; Fri, 2 Jan 2015 05:40:03 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201501020540.t025e3FD094571@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 2 Jan 2015 05:40:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276527 - in head: contrib/netbsd-tests/lib/libc/ssp lib/libc/tests/ssp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 05:40:04 -0000 Author: ngie Date: Fri Jan 2 05:40:02 2015 New Revision: 276527 URL: https://svnweb.freebsd.org/changeset/base/276527 Log: Don't install h_raw if dealing with clang 3.5.0+ to unbreak the tests2 Jenkins job The h_raw application doesn't do proper bounds checking without the option being supplied via the build, which means that it doesn't throw signals and fail as expected PR: 196430 X-MFC with: r276479 Modified: head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh head/lib/libc/tests/ssp/Makefile Modified: head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh ============================================================================== --- head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Fri Jan 2 05:34:14 2015 (r276526) +++ head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Fri Jan 2 05:40:02 2015 (r276527) @@ -360,6 +360,9 @@ raw_head() raw_body() { prog="$(atf_get_srcdir)/h_raw" + # Begin FreeBSD + [ -x $prog ] || atf_skip "$prog is missing; skipping testcase" + # End FreeBSD h_pass "$prog 9" # Begin FreeBSD Modified: head/lib/libc/tests/ssp/Makefile ============================================================================== --- head/lib/libc/tests/ssp/Makefile Fri Jan 2 05:34:14 2015 (r276526) +++ head/lib/libc/tests/ssp/Makefile Fri Jan 2 05:40:02 2015 (r276527) @@ -9,10 +9,7 @@ WARNS?= 2 CFLAGS.h_raw+= -fstack-protector-all -Wstack-protector .if ${COMPILER_TYPE} == "clang" -# Disable -fsanitize=bounds until runtime support is done for clang 3.5.0. -.if ${COMPILER_VERSION} < 30500 CFLAGS.h_raw+= -fsanitize=bounds -.endif .elif ${COMPILER_TYPE} == "gcc" CFLAGS.h_raw+= --param ssp-buffer-size=1 DPADD+= ${LIBSSP} @@ -29,7 +26,11 @@ PROGS+= h_getcwd PROGS+= h_memcpy PROGS+= h_memmove PROGS+= h_memset +# This testcase doesn't run properly when not compiled with -fsantize=bounds +# with clang, which is currently contingent on a compiler_rt update +.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 30500 PROGS+= h_raw +.endif PROGS+= h_read PROGS+= h_readlink PROGS+= h_snprintf From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 06:56:09 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0250060B; Fri, 2 Jan 2015 06:56:09 +0000 (UTC) Received: from mail.myota.org (mail.myota.org [85.10.206.105]) by mx1.freebsd.org (Postfix) with ESMTP id 7FD3566F55; Fri, 2 Jan 2015 06:56:08 +0000 (UTC) Received: from g229017217.adsl.alicedsl.de (g229017217.adsl.alicedsl.de [92.229.17.217]) (authenticated bits=128) by mail.myota.org (8.14.9/8.14.9) with ESMTP id t026tghq059601; Fri, 2 Jan 2015 07:55:49 +0100 (CET) (envelope-from andre@fbsd.ata.myota.org) Received: from submit.client ([127.0.0.1]) by gate.local (8.14.9/8.14.9) with ESMTP id t026tgGg065502; Fri, 2 Jan 2015 07:55:42 +0100 (CET) (envelope-from andre@fbsd.ata.myota.org) Received: (from user@localhost) by gate.local (8.14.9/8.14.9/Submit) id t026tgXC065501; Fri, 2 Jan 2015 07:55:42 +0100 (CET) (envelope-from andre@fbsd.ata.myota.org) Date: Fri, 2 Jan 2015 07:55:42 +0100 From: Andre Albsmeier To: Erwin Lansing Subject: Re: svn commit: r275890 - in stable/9: contrib/bind9 contrib/bind9/bin/check contrib/bind9/bin/confgen contrib/bind9/bin/dig contrib/bind9/bin/dig/include/dig contrib/bind9/bin/dnssec contrib/bind9/bin... Message-ID: <20150102065542.GA65388@gate> References: <201412180836.sBI8aLHe025437@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201412180836.sBI8aLHe025437@svn.freebsd.org> X-Echelon: government, 727, MD2, detonator, 757 X-Advice: Drop that crappy M$-Outlook, I'm tired of your viruses! User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Not delayed on 85.10.206.105, ACL: AUTH(59), Origin: DE, OS: FreeBSD 9.x X-Greylist: Not delayed, ACL: localhost(52) X-Virus-Scanned: clamav-milter 0.98.5 at colo X-Virus-Status: Clean Cc: mat@FreeBSD.org, svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-9@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 06:56:09 -0000 On Thu, 18-Dec-2014 at 08:36:21 +0000, Erwin Lansing wrote: > Author: erwin > Date: Thu Dec 18 08:36:19 2014 > New Revision: 275890 > URL: https://svnweb.freebsd.org/changeset/base/275890 > > Log: > Update BIND to 9.9.6-P1 This leads to a regression due to a bug in nsupdate. A vendor patch is available from https://kb.isc.org/article/AA-01220/. It applies cleanly to 9.3-STABLE and fixes the problem. It would be great if someone could commit this. I've CC'ed the maintainer of the port dns/bind99 as it should be affected as well. From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 08:29:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BAE48201; Fri, 2 Jan 2015 08:29:02 +0000 (UTC) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id 7E79D64B23; Fri, 2 Jan 2015 08:29:02 +0000 (UTC) Received: from c122-106-147-133.carlnfd1.nsw.optusnet.com.au (c122-106-147-133.carlnfd1.nsw.optusnet.com.au [122.106.147.133]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id 6E5C9D457FB; Fri, 2 Jan 2015 19:03:43 +1100 (AEDT) Date: Fri, 2 Jan 2015 19:03:43 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Garrett Cooper Subject: Re: svn commit: r276521 - head/contrib/netbsd-tests/lib/libm In-Reply-To: <201501020057.t020vf4d063191@svn.freebsd.org> Message-ID: <20150102185046.K943@besplex.bde.org> References: <201501020057.t020vf4d063191@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R8o6R7hX c=1 sm=1 tr=0 a=7NqvjVvQucbO2RlWB8PEog==:117 a=PO7r1zJSAAAA:8 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=vw_EG5dSKMz9CBa7WAkA:9 a=CjuIK1q_8ugA:10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 08:29:02 -0000 On Fri, 2 Jan 2015, Garrett Cooper wrote: > Log: > Reset errno in :scalbnf_val and :scalbnl_val before running the tests so the > tested errno isn't stale It is a bug to even test errno. No function in libm accesses errno. > This was needed in order for the test to pass on amd64 with stable/10 > > MFC after: 3 days > > Modified: > head/contrib/netbsd-tests/lib/libm/t_scalbn.c > > Modified: head/contrib/netbsd-tests/lib/libm/t_scalbn.c > ============================================================================== > --- head/contrib/netbsd-tests/lib/libm/t_scalbn.c Thu Jan 1 23:21:46 2015 (r276520) > +++ head/contrib/netbsd-tests/lib/libm/t_scalbn.c Fri Jan 2 00:57:40 2015 (r276521) > @@ -225,6 +225,9 @@ ATF_TC_BODY(scalbnf_val, tc) > double rv; > > for (i = 0; i < tcnt; i++) { > +#ifdef __FreeBSD__ > + errno = 0; > +#endif This is not FreeBSD-specific. A correct test might test errno under the condition (math_errhandling & MATH_ERRNO), but that would be a lot of work to test a fundamentally broken implementataion. > rv = scalbnf(tests[i].inval, tests[i].exp); > ATF_CHECK_EQ_MSG(errno, tests[i].error, > "test %zu: errno %d instead of %d", i, errno, The tests might set errno elsewhere, but scalbnf() obviously doesn't in FreeBSD (and shouldn't unless MATH_ERRNO), so the ATF_CHECK_EQ_MSG() test can have no effect. It is surprising that it doesn't sometimes fail if errno is always 0. If it always succeeds, then tests[i].error must be dead data (always 0) and the ATF_CHECK_EQ_MSG() test dead code (always pass). Bruce From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 08:32:46 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D9E10399; Fri, 2 Jan 2015 08:32:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C453364C17; Fri, 2 Jan 2015 08:32:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t028WkFT076129; Fri, 2 Jan 2015 08:32:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t028WkuR076128; Fri, 2 Jan 2015 08:32:46 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201501020832.t028WkuR076128@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 2 Jan 2015 08:32:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276528 - in stable/10/contrib/ofed/libibverbs/examples: . build X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 08:32:47 -0000 Author: hselasky Date: Fri Jan 2 08:32:45 2015 New Revision: 276528 URL: https://svnweb.freebsd.org/changeset/base/276528 Log: MFC r276238: Add proper Makefiles to build some infiniband example utilities. Sponsored by: Mellanox Technologies Added: stable/10/contrib/ofed/libibverbs/examples/build/ - copied from r276238, head/contrib/ofed/libibverbs/examples/build/ Deleted: stable/10/contrib/ofed/libibverbs/examples/Makefile Modified: Directory Properties: stable/10/ (props changed) From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 08:38:24 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AA8E54EE; Fri, 2 Jan 2015 08:38:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95DD664C3E; Fri, 2 Jan 2015 08:38:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t028cOOD076923; Fri, 2 Jan 2015 08:38:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t028cOYQ076922; Fri, 2 Jan 2015 08:38:24 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201501020838.t028cOYQ076922@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 2 Jan 2015 08:38:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276529 - in stable/9/contrib/ofed/libibverbs/examples: . build X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 08:38:24 -0000 Author: hselasky Date: Fri Jan 2 08:38:23 2015 New Revision: 276529 URL: https://svnweb.freebsd.org/changeset/base/276529 Log: MFC r276238: Add proper Makefiles to build some infiniband example utilities. Sponsored by: Mellanox Technologies Added: stable/9/contrib/ofed/libibverbs/examples/build/ - copied from r276238, head/contrib/ofed/libibverbs/examples/build/ Deleted: stable/9/contrib/ofed/libibverbs/examples/Makefile Modified: Directory Properties: stable/9/contrib/ (props changed) From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 08:42:46 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1505B63A; Fri, 2 Jan 2015 08:42:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 00D3064D13; Fri, 2 Jan 2015 08:42:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t028gjk9080991; Fri, 2 Jan 2015 08:42:45 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t028gjxm080990; Fri, 2 Jan 2015 08:42:45 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201501020842.t028gjxm080990@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 2 Jan 2015 08:42:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276530 - head/sys/x86/xen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 08:42:46 -0000 Author: hselasky Date: Fri Jan 2 08:42:44 2015 New Revision: 276530 URL: https://svnweb.freebsd.org/changeset/base/276530 Log: Fix warning about possible use of uninitialized variable. Modified: head/sys/x86/xen/xen_nexus.c Modified: head/sys/x86/xen/xen_nexus.c ============================================================================== --- head/sys/x86/xen/xen_nexus.c Fri Jan 2 08:38:23 2015 (r276529) +++ head/sys/x86/xen/xen_nexus.c Fri Jan 2 08:42:44 2015 (r276530) @@ -67,7 +67,7 @@ nexus_xen_attach(device_t dev) { int error; #ifndef XEN - device_t acpi_dev; + device_t acpi_dev = NULL; #endif nexus_init_resources(); From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 08:52:48 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E370A7BD; Fri, 2 Jan 2015 08:52:48 +0000 (UTC) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3AEF26639B; Fri, 2 Jan 2015 08:51:58 +0000 (UTC) Received: from laptop015.home.selasky.org (cm-176.74.213.204.customer.telag.net [176.74.213.204]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 1F9131FE022; Fri, 2 Jan 2015 09:51:49 +0100 (CET) Message-ID: <54A65C52.8090207@freebsd.org> Date: Fri, 02 Jan 2015 09:52:34 +0100 From: Hans Petter Selasky User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: John-Mark Gurney , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r275732 - in head: etc/mtree share/man/man4 share/man/man7 share/man/man9 sys/conf sys/crypto/aesni sys/crypto/via sys/geom/eli sys/libkern sys/mips/rmi/dev/sec sys/modules/aesni sys/mo... References: <201412121956.sBCJucpj048475@svn.freebsd.org> In-Reply-To: <201412121956.sBCJucpj048475@svn.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 08:52:49 -0000 On 12/12/14 20:56, John-Mark Gurney wrote: > Author: jmg > Date: Fri Dec 12 19:56:36 2014 > New Revision: 275732 > URL: https://svnweb.freebsd.org/changeset/base/275732 > > Log: Compile breakage with older compilers: > crypto/aesni/aesni.c: In function 'aesni_process': > crypto/aesni/aesni.c:458: warning: 'ivlen' may be used uninitialized in this function > crypto/aesni/aesni.c:458: note: 'ivlen' was declared here --HPS From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 08:57:37 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C1E99918; Fri, 2 Jan 2015 08:57:37 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ADEBA66CFF; Fri, 2 Jan 2015 08:57:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t028vbcb086151; Fri, 2 Jan 2015 08:57:37 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t028vbbv086150; Fri, 2 Jan 2015 08:57:37 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201501020857.t028vbbv086150@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 2 Jan 2015 08:57:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276531 - head/sys/dev/xen/pci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 08:57:37 -0000 Author: hselasky Date: Fri Jan 2 08:57:36 2015 New Revision: 276531 URL: https://svnweb.freebsd.org/changeset/base/276531 Log: Remove duplicate pci_driver class declaration. Modified: head/sys/dev/xen/pci/xen_pci.c Modified: head/sys/dev/xen/pci/xen_pci.c ============================================================================== --- head/sys/dev/xen/pci/xen_pci.c Fri Jan 2 08:42:44 2015 (r276530) +++ head/sys/dev/xen/pci/xen_pci.c Fri Jan 2 08:57:36 2015 (r276531) @@ -72,7 +72,6 @@ static device_method_t xen_pci_methods[] static devclass_t pci_devclass; -DECLARE_CLASS(pci_driver); DEFINE_CLASS_1(pci, xen_pci_driver, xen_pci_methods, sizeof(struct pci_softc), pci_driver); DRIVER_MODULE(xen_pci, pcib, xen_pci_driver, pci_devclass, 0, 0); From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 09:48:53 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 33C3C35E for ; Fri, 2 Jan 2015 09:48:53 +0000 (UTC) Received: from o1.l99.sendgrid.net (o1.l99.sendgrid.net [198.37.153.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CECEE1358 for ; Fri, 2 Jan 2015 09:48:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info; h=from:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding; s=smtpapi; bh=ddM3cQjS7/IQGXOv3qyZSt9bRKc=; b=EohF2X4/BbS0geZS/f PJRcWC/Q7FM2Aw5DfMrIk6AKehxzxhtlB4ZkygbfUonHdaqUMXqAdbej7H6czXG9 lYtlxw+jMXQirQF9rV9PA2rPX+s/dUeUqlU78S36+kdFuYFFoHVakB34zftUhoqT NUVkW8WETRw3R7tte+v7MuUd8= Received: by filter0111p1mdw1.sendgrid.net with SMTP id filter0111p1mdw1.30603.54A6697F2 2015-01-02 09:48:47.931261848 +0000 UTC Received: from mail.tarsnap.com (unknown [10.100.60.97]) by ismtpd-024 (SG) with ESMTP id 14aaa0c1b7e.53e7.14861d for ; Fri, 02 Jan 2015 09:48:47 +0000 (UTC) Received: (qmail 24994 invoked from network); 2 Jan 2015 09:48:33 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by ec2-107-20-205-189.compute-1.amazonaws.com with ESMTP; 2 Jan 2015 09:48:33 -0000 Received: (qmail 16024 invoked from network); 2 Jan 2015 09:48:40 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by clamshell.daemonology.net with SMTP; 2 Jan 2015 09:48:40 -0000 Message-ID: <54A66978.1070108@freebsd.org> Date: Fri, 02 Jan 2015 01:48:40 -0800 From: Colin Percival User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Hans Petter Selasky , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, =?UTF-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= Subject: Re: svn commit: r276530 - head/sys/x86/xen References: <201501020842.t028gjxm080990@svn.freebsd.org> In-Reply-To: <201501020842.t028gjxm080990@svn.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SG-EID: A6W2xSVPHetogaU8rnzccWwgBYtN+QvIzXyjfe/10PG7rGkRJN3EjF7qU06DqZX4DcyPpX432VSVBX u73laOPlZCIgU7YqirtlXjSS3pIgdJJ/ckrtRMJq0j66fnfUjQPV6EqzKU0spINcYs6taAr3qVSO4Y fgqCfV+X0joWQ4oC+6Eewg25Hk8y+6pv1N34 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 09:48:53 -0000 On 01/02/15 00:42, Hans Petter Selasky wrote: > Author: hselasky > Date: Fri Jan 2 08:42:44 2015 > New Revision: 276530 > URL: https://svnweb.freebsd.org/changeset/base/276530 > > Log: > Fix warning about possible use of uninitialized variable. Looks to me like the right solution here would be to add bool initial_domain = xen_initial_domain(); and then s/xen_initial_domain()/initial_domain/ in the rest of the function. That should make it clear to static analysis tools that acpi_dev will not be used uninitialized -- since the problem right now is that they don't know that xen_initial_domain() always returns the same value -- without having a bogus initialization which could hide a future bug. -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 13:10:34 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8F7843DB; Fri, 2 Jan 2015 13:10:34 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7BB6A64ECB; Fri, 2 Jan 2015 13:10:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02DAYfj001839; Fri, 2 Jan 2015 13:10:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02DAYhn001838; Fri, 2 Jan 2015 13:10:34 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201501021310.t02DAYhn001838@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 2 Jan 2015 13:10:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276532 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 13:10:34 -0000 Author: hselasky Date: Fri Jan 2 13:10:33 2015 New Revision: 276532 URL: https://svnweb.freebsd.org/changeset/base/276532 Log: The "cnputs_mtx" mutex must be allowed to recurse. Debug prints and/or witness printouts in the console driver clients can cause this mutex to recurse by calls to "printf()" from witness for example. In particular this can happen if "debug.witness.skipspin=0" is set in the boot environment. MFC after: 1 week Modified: head/sys/kern/kern_cons.c Modified: head/sys/kern/kern_cons.c ============================================================================== --- head/sys/kern/kern_cons.c Fri Jan 2 08:57:36 2015 (r276531) +++ head/sys/kern/kern_cons.c Fri Jan 2 13:10:33 2015 (r276532) @@ -601,7 +601,13 @@ static void cn_drvinit(void *unused) { - mtx_init(&cnputs_mtx, "cnputs_mtx", NULL, MTX_SPIN | MTX_NOWITNESS); + /* + * NOTE: Debug prints and/or witness printouts in console + * driver clients can cause the "cnputs_mtx" mutex to + * recurse. Make sure the "MTX_RECURSE" flags is set! + */ + mtx_init(&cnputs_mtx, "cnputs_mtx", NULL, MTX_SPIN | + MTX_NOWITNESS | MTX_RECURSE); use_cnputs_mtx = 1; } From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 13:15:38 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3700C552; Fri, 2 Jan 2015 13:15:38 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 21BE864F1A; Fri, 2 Jan 2015 13:15:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02DFc0f005905; Fri, 2 Jan 2015 13:15:38 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02DFbKJ005902; Fri, 2 Jan 2015 13:15:37 GMT (envelope-from br@FreeBSD.org) Message-Id: <201501021315.t02DFbKJ005902@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Fri, 2 Jan 2015 13:15:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276533 - in head/sys: arm/altera/socfpga boot/fdt/dts/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 13:15:38 -0000 Author: br Date: Fri Jan 2 13:15:36 2015 New Revision: 276533 URL: https://svnweb.freebsd.org/changeset/base/276533 Log: Add driver for general-purpose I/O (GPIO). Sponsored by: DARPA, AFRL Added: head/sys/arm/altera/socfpga/socfpga_gpio.c (contents, props changed) Modified: head/sys/arm/altera/socfpga/files.socfpga head/sys/boot/fdt/dts/arm/socfpga.dtsi Modified: head/sys/arm/altera/socfpga/files.socfpga ============================================================================== --- head/sys/arm/altera/socfpga/files.socfpga Fri Jan 2 13:10:33 2015 (r276532) +++ head/sys/arm/altera/socfpga/files.socfpga Fri Jan 2 13:15:36 2015 (r276533) @@ -18,6 +18,7 @@ arm/altera/socfpga/socfpga_machdep.c st arm/altera/socfpga/socfpga_manager.c standard arm/altera/socfpga/socfpga_rstmgr.c standard arm/altera/socfpga/socfpga_mp.c optional smp +arm/altera/socfpga/socfpga_gpio.c optional gpio dev/dwc/if_dwc.c optional dwc dev/mii/micphy.c optional micphy Added: head/sys/arm/altera/socfpga/socfpga_gpio.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/altera/socfpga/socfpga_gpio.c Fri Jan 2 13:15:36 2015 (r276533) @@ -0,0 +1,437 @@ +/*- + * Copyright (c) 2015 Ruslan Bukin + * All rights reserved. + * + * This software was developed by SRI International and the University of + * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) + * ("CTSRD"), as part of the DARPA CRASH research programme. + * + * 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. + */ + +/* + * SOCFPGA General-Purpose I/O Interface. + * Chapter 22, Cyclone V Device Handbook (CV-5V2 2014.07.22) + */ + +/* + * The GPIO modules are instances of the Synopsys® DesignWare® APB General + * Purpose Programming I/O (DW_apb_gpio) peripheral. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "gpio_if.h" + +#define READ4(_sc, _reg) \ + bus_read_4((_sc)->res[0], _reg) +#define WRITE4(_sc, _reg, _val) \ + bus_write_4((_sc)->res[0], _reg, _val) + +#define GPIO_SWPORTA_DR 0x00 /* Port A Data Register */ +#define GPIO_SWPORTA_DDR 0x04 /* Port A Data Direction Register */ +#define GPIO_INTEN 0x30 /* Interrupt Enable Register */ +#define GPIO_INTMASK 0x34 /* Interrupt Mask Register */ +#define GPIO_INTTYPE_LEVEL 0x38 /* Interrupt Level Register */ +#define GPIO_INT_POLARITY 0x3C /* Interrupt Polarity Register */ +#define GPIO_INTSTATUS 0x40 /* Interrupt Status Register */ +#define GPIO_RAW_INTSTATUS 0x44 /* Raw Interrupt Status Register */ +#define GPIO_DEBOUNCE 0x48 /* Debounce Enable Register */ +#define GPIO_PORTA_EOI 0x4C /* Clear Interrupt Register */ +#define GPIO_EXT_PORTA 0x50 /* External Port A Register */ +#define GPIO_LS_SYNC 0x60 /* Synchronization Level Register */ +#define GPIO_ID_CODE 0x64 /* ID Code Register */ +#define GPIO_VER_ID_CODE 0x6C /* GPIO Version Register */ +#define GPIO_CONFIG_REG2 0x70 /* Configuration Register 2 */ +#define ENCODED_ID_PWIDTH_M 0x1f /* Width of GPIO Port N Mask */ +#define ENCODED_ID_PWIDTH_S(n) (5 * n) /* Width of GPIO Port N Shift */ +#define GPIO_CONFIG_REG1 0x74 /* Configuration Register 1 */ + +enum port_no { + PORTA, + PORTB, + PORTC, + PORTD, +}; + +#define NR_GPIO_MAX 32 /* Maximum pins per port */ + +#define GPIO_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define GPIO_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) + +#define DEFAULT_CAPS (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT) + +/* + * GPIO interface + */ +static int socfpga_gpio_pin_max(device_t, int *); +static int socfpga_gpio_pin_getcaps(device_t, uint32_t, uint32_t *); +static int socfpga_gpio_pin_getname(device_t, uint32_t, char *); +static int socfpga_gpio_pin_getflags(device_t, uint32_t, uint32_t *); +static int socfpga_gpio_pin_setflags(device_t, uint32_t, uint32_t); +static int socfpga_gpio_pin_set(device_t, uint32_t, unsigned int); +static int socfpga_gpio_pin_get(device_t, uint32_t, unsigned int *); +static int socfpga_gpio_pin_toggle(device_t, uint32_t pin); + +struct socfpga_gpio_softc { + struct resource *res[1]; + bus_space_tag_t bst; + bus_space_handle_t bsh; + + device_t dev; + struct mtx sc_mtx; + int gpio_npins; + struct gpio_pin gpio_pins[NR_GPIO_MAX]; +}; + +struct socfpga_gpio_softc *gpio_sc; + +static struct resource_spec socfpga_gpio_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE }, + { -1, 0 } +}; + +static int +socfpga_gpio_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_is_compatible(dev, "snps,dw-apb-gpio")) + return (ENXIO); + + device_set_desc(dev, "DesignWare General-Purpose I/O Interface"); + return (BUS_PROBE_DEFAULT); +} + +static int +socfpga_gpio_attach(device_t dev) +{ + struct socfpga_gpio_softc *sc; + int version; + int nr_pins; + int cfg2; + int i; + + sc = device_get_softc(dev); + sc->dev = dev; + mtx_init(&sc->sc_mtx, device_get_nameunit(dev), NULL, MTX_DEF); + + if (bus_alloc_resources(dev, socfpga_gpio_spec, sc->res)) { + device_printf(dev, "could not allocate resources\n"); + return (ENXIO); + } + + /* Memory interface */ + sc->bst = rman_get_bustag(sc->res[0]); + sc->bsh = rman_get_bushandle(sc->res[0]); + + gpio_sc = sc; + + version = READ4(sc, GPIO_VER_ID_CODE); +#if 0 + device_printf(sc->dev, "Version = 0x%08x\n", version); +#endif + + /* + * Take number of pins from hardware. + * XXX: Assume we have GPIO port A only. + */ + cfg2 = READ4(sc, GPIO_CONFIG_REG2); + nr_pins = (cfg2 >> ENCODED_ID_PWIDTH_S(PORTA)) & \ + ENCODED_ID_PWIDTH_M; + sc->gpio_npins = nr_pins + 1; + + for (i = 0; i < sc->gpio_npins; i++) { + sc->gpio_pins[i].gp_pin = i; + sc->gpio_pins[i].gp_caps = DEFAULT_CAPS; + sc->gpio_pins[i].gp_flags = + (READ4(sc, GPIO_SWPORTA_DDR) & (1 << i)) ? + GPIO_PIN_OUTPUT: GPIO_PIN_INPUT; + snprintf(sc->gpio_pins[i].gp_name, GPIOMAXNAME, + "socfpga_gpio%d.%d", device_get_unit(dev), i); + } + + device_add_child(dev, "gpioc", -1); + device_add_child(dev, "gpiobus", -1); + + return (bus_generic_attach(dev)); +} + +static int +socfpga_gpio_pin_max(device_t dev, int *maxpin) +{ + struct socfpga_gpio_softc *sc; + + sc = device_get_softc(dev); + + *maxpin = sc->gpio_npins - 1; + + return (0); +} + +static int +socfpga_gpio_pin_getname(device_t dev, uint32_t pin, char *name) +{ + struct socfpga_gpio_softc *sc; + int i; + + sc = device_get_softc(dev); + for (i = 0; i < sc->gpio_npins; i++) { + if (sc->gpio_pins[i].gp_pin == pin) + break; + } + + if (i >= sc->gpio_npins) + return (EINVAL); + + GPIO_LOCK(sc); + memcpy(name, sc->gpio_pins[i].gp_name, GPIOMAXNAME); + GPIO_UNLOCK(sc); + + return (0); +} + +static int +socfpga_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps) +{ + struct socfpga_gpio_softc *sc; + int i; + + sc = device_get_softc(dev); + for (i = 0; i < sc->gpio_npins; i++) { + if (sc->gpio_pins[i].gp_pin == pin) + break; + } + + if (i >= sc->gpio_npins) + return (EINVAL); + + GPIO_LOCK(sc); + *caps = sc->gpio_pins[i].gp_caps; + GPIO_UNLOCK(sc); + + return (0); +} + +static int +socfpga_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags) +{ + struct socfpga_gpio_softc *sc; + int i; + + sc = device_get_softc(dev); + for (i = 0; i < sc->gpio_npins; i++) { + if (sc->gpio_pins[i].gp_pin == pin) + break; + } + + if (i >= sc->gpio_npins) + return (EINVAL); + + GPIO_LOCK(sc); + *flags = sc->gpio_pins[i].gp_flags; + GPIO_UNLOCK(sc); + + return (0); +} + +static int +socfpga_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val) +{ + struct socfpga_gpio_softc *sc; + int i; + + sc = device_get_softc(dev); + for (i = 0; i < sc->gpio_npins; i++) { + if (sc->gpio_pins[i].gp_pin == pin) + break; + } + + if (i >= sc->gpio_npins) + return (EINVAL); + + GPIO_LOCK(sc); + *val = (READ4(sc, GPIO_EXT_PORTA) & (1 << i)) ? 1 : 0; + GPIO_UNLOCK(sc); + + return (0); +} + +static int +socfpga_gpio_pin_toggle(device_t dev, uint32_t pin) +{ + struct socfpga_gpio_softc *sc; + int reg; + int i; + + sc = device_get_softc(dev); + for (i = 0; i < sc->gpio_npins; i++) { + if (sc->gpio_pins[i].gp_pin == pin) + break; + } + + if (i >= sc->gpio_npins) + return (EINVAL); + + GPIO_LOCK(sc); + reg = READ4(sc, GPIO_SWPORTA_DR); + if (reg & (1 << i)) + reg &= ~(1 << i); + else + reg |= (1 << i); + WRITE4(sc, GPIO_SWPORTA_DR, reg); + GPIO_UNLOCK(sc); + + return (0); +} + + +static void +socfpga_gpio_pin_configure(struct socfpga_gpio_softc *sc, + struct gpio_pin *pin, unsigned int flags) +{ + int reg; + + GPIO_LOCK(sc); + + /* + * Manage input/output + */ + + reg = READ4(sc, GPIO_SWPORTA_DDR); + if (flags & (GPIO_PIN_INPUT|GPIO_PIN_OUTPUT)) { + pin->gp_flags &= ~(GPIO_PIN_INPUT|GPIO_PIN_OUTPUT); + if (flags & GPIO_PIN_OUTPUT) { + pin->gp_flags |= GPIO_PIN_OUTPUT; + reg |= (1 << pin->gp_pin); + } else { + pin->gp_flags |= GPIO_PIN_INPUT; + reg &= ~(1 << pin->gp_pin); + } + } + + WRITE4(sc, GPIO_SWPORTA_DDR, reg); + GPIO_UNLOCK(sc); +} + + +static int +socfpga_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags) +{ + struct socfpga_gpio_softc *sc; + int i; + + sc = device_get_softc(dev); + for (i = 0; i < sc->gpio_npins; i++) { + if (sc->gpio_pins[i].gp_pin == pin) + break; + } + + if (i >= sc->gpio_npins) + return (EINVAL); + + socfpga_gpio_pin_configure(sc, &sc->gpio_pins[i], flags); + + return (0); +} + +static int +socfpga_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value) +{ + struct socfpga_gpio_softc *sc; + int reg; + int i; + + sc = device_get_softc(dev); + + for (i = 0; i < sc->gpio_npins; i++) { + if (sc->gpio_pins[i].gp_pin == pin) + break; + } + + if (i >= sc->gpio_npins) + return (EINVAL); + + GPIO_LOCK(sc); + reg = READ4(sc, GPIO_SWPORTA_DR); + if (value) + reg |= (1 << i); + else + reg &= ~(1 << i); + WRITE4(sc, GPIO_SWPORTA_DR, reg); + GPIO_UNLOCK(sc); + + return (0); +} + +static device_method_t socfpga_gpio_methods[] = { + DEVMETHOD(device_probe, socfpga_gpio_probe), + DEVMETHOD(device_attach, socfpga_gpio_attach), + + /* GPIO protocol */ + DEVMETHOD(gpio_pin_max, socfpga_gpio_pin_max), + DEVMETHOD(gpio_pin_getname, socfpga_gpio_pin_getname), + DEVMETHOD(gpio_pin_getcaps, socfpga_gpio_pin_getcaps), + DEVMETHOD(gpio_pin_getflags, socfpga_gpio_pin_getflags), + DEVMETHOD(gpio_pin_get, socfpga_gpio_pin_get), + DEVMETHOD(gpio_pin_toggle, socfpga_gpio_pin_toggle), + DEVMETHOD(gpio_pin_setflags, socfpga_gpio_pin_setflags), + DEVMETHOD(gpio_pin_set, socfpga_gpio_pin_set), + { 0, 0 } +}; + +static driver_t socfpga_gpio_driver = { + "gpio", + socfpga_gpio_methods, + sizeof(struct socfpga_gpio_softc), +}; + +static devclass_t socfpga_gpio_devclass; + +DRIVER_MODULE(socfpga_gpio, simplebus, socfpga_gpio_driver, + socfpga_gpio_devclass, 0, 0); Modified: head/sys/boot/fdt/dts/arm/socfpga.dtsi ============================================================================== --- head/sys/boot/fdt/dts/arm/socfpga.dtsi Fri Jan 2 13:10:33 2015 (r276532) +++ head/sys/boot/fdt/dts/arm/socfpga.dtsi Fri Jan 2 13:15:36 2015 (r276533) @@ -76,6 +76,11 @@ reg = <0xffd08000 0x1000>; }; + clkmgr: clkmgr@ffd04000 { + compatible = "altr,clk-mgr"; + reg = <0xffd04000 0x1000>; + }; + rstmgr: rstmgr@ffd05000 { compatible = "altr,rst-mgr"; reg = <0xffd05000 0x1000>; @@ -94,6 +99,36 @@ interrupt-parent = <&GIC>; }; + gpio0: gpio@ff708000 { + compatible = "snps,dw-apb-gpio"; + reg = <0xff708000 0x1000>; + porta: gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + snps,nr-gpios = <29>; + }; + }; + + gpio1: gpio@ff709000 { + compatible = "snps,dw-apb-gpio"; + reg = <0xff709000 0x1000>; + portb: gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + snps,nr-gpios = <29>; + }; + }; + + gpio2: gpio@ff70a000 { + compatible = "snps,dw-apb-gpio"; + reg = <0xff70a000 0x1000>; + portc: gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + snps,nr-gpios = <27>; + }; + }; + serial0: serial@ffc02000 { compatible = "ns16550"; reg = <0xffc02000 0x1000>; From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 13:35:11 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 826DB835; Fri, 2 Jan 2015 13:35:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 551F366F8A; Fri, 2 Jan 2015 13:35:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02DZB3G015073; Fri, 2 Jan 2015 13:35:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02DZBRm015072; Fri, 2 Jan 2015 13:35:11 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201501021335.t02DZBRm015072@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 2 Jan 2015 13:35:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276534 - head/sys/dev/vt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 13:35:11 -0000 Author: hselasky Date: Fri Jan 2 13:35:10 2015 New Revision: 276534 URL: https://svnweb.freebsd.org/changeset/base/276534 Log: The "vt_suspend_flush_timer()" function is sometimes called locked which prevents us from doing a "callout_drain()" call. The callout in question has a lock associated with it and we are not freeing the callout. That means we can use the "callout_stop()" function to atomically stop the callback iff the "callout_stop()" function is called locked. This patch applies proper locking to "callout_stop()" and replaces a "callout_drain()" with a "callout_stop()". MFC after: 1 week Modified: head/sys/dev/vt/vt_core.c Modified: head/sys/dev/vt/vt_core.c ============================================================================== --- head/sys/dev/vt/vt_core.c Fri Jan 2 13:15:36 2015 (r276533) +++ head/sys/dev/vt/vt_core.c Fri Jan 2 13:35:10 2015 (r276534) @@ -114,6 +114,7 @@ const struct terminal_class vt_termclass #define VT_LOCK(vd) mtx_lock(&(vd)->vd_lock) #define VT_UNLOCK(vd) mtx_unlock(&(vd)->vd_lock) +#define VT_LOCK_ASSERT(vd, what) mtx_assert(&(vd)->vd_lock, what) #define VT_UNIT(vw) ((vw)->vw_device->vd_unit * VT_MAXWINDOWS + \ (vw)->vw_number) @@ -283,12 +284,18 @@ vt_resume_flush_timer(struct vt_device * static void vt_suspend_flush_timer(struct vt_device *vd) { + /* + * As long as this function is called locked, callout_stop() + * has the same effect like callout_drain() with regard to + * preventing the callback function from executing. + */ + VT_LOCK_ASSERT(vd, MA_OWNED); if (!(vd->vd_flags & VDF_ASYNC) || !atomic_cmpset_int(&vd->vd_timer_armed, 1, 0)) return; - callout_drain(&vd->vd_timer); + callout_stop(&vd->vd_timer); } static void @@ -2604,7 +2611,9 @@ vt_allocate(struct vt_driver *drv, void if (vd->vd_flags & VDF_ASYNC) { /* Stop vt_flush periodic task. */ + VT_LOCK(vd); vt_suspend_flush_timer(vd); + VT_UNLOCK(vd); /* * Mute current terminal until we done. vt_change_font (called * from vt_resize) will unmute it. From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 13:54:04 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3F076C79; Fri, 2 Jan 2015 13:54:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B658133A; Fri, 2 Jan 2015 13:54:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Ds4Ow024092; Fri, 2 Jan 2015 13:54:04 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Ds4rE024091; Fri, 2 Jan 2015 13:54:04 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021354.t02Ds4rE024091@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 13:54:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276535 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 13:54:04 -0000 Author: bapt Date: Fri Jan 2 13:54:03 2015 New Revision: 276535 URL: https://svnweb.freebsd.org/changeset/base/276535 Log: Use mandoc -Tlint instead of groff for manlint target Modified: head/share/mk/bsd.man.mk Modified: head/share/mk/bsd.man.mk ============================================================================== --- head/share/mk/bsd.man.mk Fri Jan 2 13:35:10 2015 (r276534) +++ head/share/mk/bsd.man.mk Fri Jan 2 13:54:03 2015 (r276535) @@ -55,6 +55,7 @@ MINSTALL?= ${INSTALL} -o ${MANOWN} -g ${ CATDIR= ${MANDIR:H:S/$/\/cat/} CATEXT= .cat MROFF_CMD?= groff -Tascii -mtty-char -man -t +MANDOC_CMD?= mandoc MCOMPRESS_CMD?= ${COMPRESS_CMD} MCOMPRESS_EXT?= ${COMPRESS_EXT} @@ -239,9 +240,9 @@ manlint: manlint: ${__page}lint ${__page}lint: ${__page} .if defined(MANFILTER) - ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} -ww -z + ${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} -Tlint .else - ${MROFF_CMD} -ww -z ${.ALLSRC} + ${MANDOC_CMD} -Tlint ${.ALLSRC} .endif .endfor .endif From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 14:05:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BA61EED9; Fri, 2 Jan 2015 14:05:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8CB39151C; Fri, 2 Jan 2015 14:05:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02E5V7C028991; Fri, 2 Jan 2015 14:05:31 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02E5VON028990; Fri, 2 Jan 2015 14:05:31 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021405.t02E5VON028990@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 14:05:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276536 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 14:05:31 -0000 Author: bapt Date: Fri Jan 2 14:05:30 2015 New Revision: 276536 URL: https://svnweb.freebsd.org/changeset/base/276536 Log: Use mandoc to generate cat pages Modified: head/share/mk/bsd.man.mk Modified: head/share/mk/bsd.man.mk ============================================================================== --- head/share/mk/bsd.man.mk Fri Jan 2 13:54:03 2015 (r276535) +++ head/share/mk/bsd.man.mk Fri Jan 2 14:05:30 2015 (r276536) @@ -38,7 +38,7 @@ # MANBUILDCAT create preformatted manual pages in addition to normal # pages. [not set] # -# MROFF_CMD command and flags to create preformatted pages +# MANDOC_CMD command and flags to create preformatted pages # # +++ targets +++ # @@ -54,8 +54,7 @@ MINSTALL?= ${INSTALL} -o ${MANOWN} -g ${ CATDIR= ${MANDIR:H:S/$/\/cat/} CATEXT= .cat -MROFF_CMD?= groff -Tascii -mtty-char -man -t -MANDOC_CMD?= mandoc +MANDOC_CMD?= mandoc -Tascii MCOMPRESS_CMD?= ${COMPRESS_CMD} MCOMPRESS_EXT?= ${COMPRESS_EXT} @@ -101,7 +100,7 @@ ${__target}: ${__page} .for __target in ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g} _manpages: ${__target} ${__target}: ${__page} - ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} > ${.TARGET} + ${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} > ${.TARGET} .endfor .endif .endfor @@ -114,7 +113,7 @@ CLEANFILES+= ${MAN:T:S/$/${CATEXT}/g} .for __target in ${__page:T:S/$/${CATEXT}/g} _manpages: ${__target} ${__target}: ${__page} - ${MROFF_CMD} ${.ALLSRC} > ${.TARGET} + ${MANDOC_CMD} ${.ALLSRC} > ${.TARGET} .endfor .endfor .else @@ -145,9 +144,9 @@ ${__target}: ${__page} _manpages: ${__target} ${__target}: ${__page} .if defined(MANFILTER) - ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} | ${MCOMPRESS_CMD} > ${.TARGET} + ${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} | ${MCOMPRESS_CMD} > ${.TARGET} .else - ${MROFF_CMD} ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET} + ${MANDOC_CMD} ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET} .endif .endfor .endif From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 14:55:03 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 39B6C9E5; Fri, 2 Jan 2015 14:55:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 263C264C7F; Fri, 2 Jan 2015 14:55:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Et3Qh052804; Fri, 2 Jan 2015 14:55:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Et2BA052802; Fri, 2 Jan 2015 14:55:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201501021455.t02Et2BA052802@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 2 Jan 2015 14:55:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276537 - head/contrib/llvm/lib/Target/ARM/AsmParser X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 14:55:03 -0000 Author: dim Date: Fri Jan 2 14:55:02 2015 New Revision: 276537 URL: https://svnweb.freebsd.org/changeset/base/276537 Log: Pull in r222587 from upstream llvm trunk (by Jörg Sonnenberger): Fix transformation of add with pc argument to adr for non-immediate arguments. This fixes an "Unimplemented" error when assembling certain ARM add instructions with pc-relative arguments. Reported by: sbruno PR: 196412, 196423 Modified: head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Modified: head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp ============================================================================== --- head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Fri Jan 2 14:05:30 2015 (r276536) +++ head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Fri Jan 2 14:55:02 2015 (r276537) @@ -314,7 +314,7 @@ class ARMAsmParser : public MCTargetAsmP void cvtThumbBranches(MCInst &Inst, const OperandVector &); bool validateInstruction(MCInst &Inst, const OperandVector &Ops); - bool processInstruction(MCInst &Inst, const OperandVector &Ops); + bool processInstruction(MCInst &Inst, const OperandVector &Ops, MCStreamer &Out); bool shouldOmitCCOutOperand(StringRef Mnemonic, OperandVector &Operands); bool shouldOmitPredicateOperand(StringRef Mnemonic, OperandVector &Operands); @@ -6175,7 +6175,8 @@ static unsigned getRealVLDOpcode(unsigne } bool ARMAsmParser::processInstruction(MCInst &Inst, - const OperandVector &Operands) { + const OperandVector &Operands, + MCStreamer &Out) { switch (Inst.getOpcode()) { // Alias for alternate form of 'ldr{,b}t Rt, [Rn], #imm' instruction. case ARM::LDRT_POST: @@ -6216,12 +6217,31 @@ bool ARMAsmParser::processInstruction(MC // Alias for alternate form of 'ADR Rd, #imm' instruction. case ARM::ADDri: { if (Inst.getOperand(1).getReg() != ARM::PC || - Inst.getOperand(5).getReg() != 0) + Inst.getOperand(5).getReg() != 0 || + !(Inst.getOperand(2).isExpr() || Inst.getOperand(2).isImm())) return false; MCInst TmpInst; TmpInst.setOpcode(ARM::ADR); TmpInst.addOperand(Inst.getOperand(0)); - TmpInst.addOperand(Inst.getOperand(2)); + if (Inst.getOperand(2).isImm()) { + TmpInst.addOperand(Inst.getOperand(2)); + } else { + // Turn PC-relative expression into absolute expression. + // Reading PC provides the start of the current instruction + 8 and + // the transform to adr is biased by that. + MCSymbol *Dot = getContext().CreateTempSymbol(); + Out.EmitLabel(Dot); + const MCExpr *OpExpr = Inst.getOperand(2).getExpr(); + const MCExpr *InstPC = MCSymbolRefExpr::Create(Dot, + MCSymbolRefExpr::VK_None, + getContext()); + const MCExpr *Const8 = MCConstantExpr::Create(8, getContext()); + const MCExpr *ReadPC = MCBinaryExpr::CreateAdd(InstPC, Const8, + getContext()); + const MCExpr *FixupAddr = MCBinaryExpr::CreateAdd(ReadPC, OpExpr, + getContext()); + TmpInst.addOperand(MCOperand::CreateExpr(FixupAddr)); + } TmpInst.addOperand(Inst.getOperand(3)); TmpInst.addOperand(Inst.getOperand(4)); Inst = TmpInst; @@ -8061,7 +8081,7 @@ bool ARMAsmParser::MatchAndEmitInstructi // encoding is selected. Loop on it while changes happen so the // individual transformations can chain off each other. E.g., // tPOP(r8)->t2LDMIA_UPD(sp,r8)->t2STR_POST(sp,r8) - while (processInstruction(Inst, Operands)) + while (processInstruction(Inst, Operands, Out)) ; // Only after the instruction is fully processed, we can validate it From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 14:58:42 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B33B2B8C; Fri, 2 Jan 2015 14:58:42 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95C1F64CCA; Fri, 2 Jan 2015 14:58:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02EwgIl053311; Fri, 2 Jan 2015 14:58:42 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02EwgOe053309; Fri, 2 Jan 2015 14:58:42 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201501021458.t02EwgOe053309@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 2 Jan 2015 14:58:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276538 - head/contrib/llvm/patches X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 14:58:42 -0000 Author: dim Date: Fri Jan 2 14:58:41 2015 New Revision: 276538 URL: https://svnweb.freebsd.org/changeset/base/276538 Log: Add clang and llvm patches corresponding to r276516 and r276537. Added: head/contrib/llvm/patches/patch-29-clang-r213790-type_traits-crash.diff head/contrib/llvm/patches/patch-30-llvm-r222587-arm-add-pc.diff Added: head/contrib/llvm/patches/patch-29-clang-r213790-type_traits-crash.diff ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/llvm/patches/patch-29-clang-r213790-type_traits-crash.diff Fri Jan 2 14:58:41 2015 (r276538) @@ -0,0 +1,57 @@ +Pull in r213790 from upstream clang trunk (by Richard Smith): + + PR20228: don't retain a pointer to a vector element after the + container has been resized. + +This fixes a possible crash when compiling certain parts of libc++'s +type_traits header. + +Introduced here: http://svnweb.freebsd.org/changeset/base/276516 + +Index: tools/clang/lib/Sema/SemaExprCXX.cpp +=================================================================== +--- tools/clang/lib/Sema/SemaExprCXX.cpp ++++ tools/clang/lib/Sema/SemaExprCXX.cpp +@@ -3642,12 +3642,13 @@ static bool evaluateTypeTrait(Sema &S, TypeTrait K + if (T->isObjectType() || T->isFunctionType()) + T = S.Context.getRValueReferenceType(T); + OpaqueArgExprs.push_back( +- OpaqueValueExpr(Args[I]->getTypeLoc().getLocStart(), ++ OpaqueValueExpr(Args[I]->getTypeLoc().getLocStart(), + T.getNonLValueExprType(S.Context), + Expr::getValueKindForType(T))); +- ArgExprs.push_back(&OpaqueArgExprs.back()); + } +- ++ for (Expr &E : OpaqueArgExprs) ++ ArgExprs.push_back(&E); ++ + // Perform the initialization in an unevaluated context within a SFINAE + // trap at translation unit scope. + EnterExpressionEvaluationContext Unevaluated(S, Sema::Unevaluated); +Index: tools/clang/test/SemaCXX/type-traits.cpp +=================================================================== +--- tools/clang/test/SemaCXX/type-traits.cpp ++++ tools/clang/test/SemaCXX/type-traits.cpp +@@ -146,6 +146,10 @@ struct ThreeArgCtor { + ThreeArgCtor(int*, char*, int); + }; + ++struct VariadicCtor { ++ template VariadicCtor(T...); ++}; ++ + void is_pod() + { + { int arr[T(__is_pod(int))]; } +@@ -1968,6 +1972,10 @@ void constructible_checks() { + // PR19178 + { int arr[F(__is_constructible(Abstract))]; } + { int arr[F(__is_nothrow_constructible(Abstract))]; } ++ ++ // PR20228 ++ { int arr[T(__is_constructible(VariadicCtor, ++ int, int, int, int, int, int, int, int, int))]; } + } + + // Instantiation of __is_trivially_constructible Added: head/contrib/llvm/patches/patch-30-llvm-r222587-arm-add-pc.diff ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/llvm/patches/patch-30-llvm-r222587-arm-add-pc.diff Fri Jan 2 14:58:41 2015 (r276538) @@ -0,0 +1,108 @@ +Pull in r222587 from upstream llvm trunk (by Jörg Sonnenberger): + + Fix transformation of add with pc argument to adr for non-immediate + arguments. + +This fixes an "Unimplemented" error when assembling certain ARM add +instructions with pc-relative arguments. + +Reported by: sbruno +PR: 196412, 196423 + +Introduced here: http://svnweb.freebsd.org/changeset/base/276537 + +Index: lib/Target/ARM/AsmParser/ARMAsmParser.cpp +=================================================================== +--- lib/Target/ARM/AsmParser/ARMAsmParser.cpp ++++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp +@@ -314,7 +314,7 @@ class ARMAsmParser : public MCTargetAsmParser { + void cvtThumbBranches(MCInst &Inst, const OperandVector &); + + bool validateInstruction(MCInst &Inst, const OperandVector &Ops); +- bool processInstruction(MCInst &Inst, const OperandVector &Ops); ++ bool processInstruction(MCInst &Inst, const OperandVector &Ops, MCStreamer &Out); + bool shouldOmitCCOutOperand(StringRef Mnemonic, OperandVector &Operands); + bool shouldOmitPredicateOperand(StringRef Mnemonic, OperandVector &Operands); + +@@ -6175,7 +6175,8 @@ static unsigned getRealVLDOpcode(unsigned Opc, uns + } + + bool ARMAsmParser::processInstruction(MCInst &Inst, +- const OperandVector &Operands) { ++ const OperandVector &Operands, ++ MCStreamer &Out) { + switch (Inst.getOpcode()) { + // Alias for alternate form of 'ldr{,b}t Rt, [Rn], #imm' instruction. + case ARM::LDRT_POST: +@@ -6216,12 +6217,31 @@ bool ARMAsmParser::processInstruction(MCInst &Inst + // Alias for alternate form of 'ADR Rd, #imm' instruction. + case ARM::ADDri: { + if (Inst.getOperand(1).getReg() != ARM::PC || +- Inst.getOperand(5).getReg() != 0) ++ Inst.getOperand(5).getReg() != 0 || ++ !(Inst.getOperand(2).isExpr() || Inst.getOperand(2).isImm())) + return false; + MCInst TmpInst; + TmpInst.setOpcode(ARM::ADR); + TmpInst.addOperand(Inst.getOperand(0)); +- TmpInst.addOperand(Inst.getOperand(2)); ++ if (Inst.getOperand(2).isImm()) { ++ TmpInst.addOperand(Inst.getOperand(2)); ++ } else { ++ // Turn PC-relative expression into absolute expression. ++ // Reading PC provides the start of the current instruction + 8 and ++ // the transform to adr is biased by that. ++ MCSymbol *Dot = getContext().CreateTempSymbol(); ++ Out.EmitLabel(Dot); ++ const MCExpr *OpExpr = Inst.getOperand(2).getExpr(); ++ const MCExpr *InstPC = MCSymbolRefExpr::Create(Dot, ++ MCSymbolRefExpr::VK_None, ++ getContext()); ++ const MCExpr *Const8 = MCConstantExpr::Create(8, getContext()); ++ const MCExpr *ReadPC = MCBinaryExpr::CreateAdd(InstPC, Const8, ++ getContext()); ++ const MCExpr *FixupAddr = MCBinaryExpr::CreateAdd(ReadPC, OpExpr, ++ getContext()); ++ TmpInst.addOperand(MCOperand::CreateExpr(FixupAddr)); ++ } + TmpInst.addOperand(Inst.getOperand(3)); + TmpInst.addOperand(Inst.getOperand(4)); + Inst = TmpInst; +@@ -8061,7 +8081,7 @@ bool ARMAsmParser::MatchAndEmitInstruction(SMLoc I + // encoding is selected. Loop on it while changes happen so the + // individual transformations can chain off each other. E.g., + // tPOP(r8)->t2LDMIA_UPD(sp,r8)->t2STR_POST(sp,r8) +- while (processInstruction(Inst, Operands)) ++ while (processInstruction(Inst, Operands, Out)) + ; + + // Only after the instruction is fully processed, we can validate it +Index: test/MC/ARM/basic-arm-instructions.s +=================================================================== +--- test/MC/ARM/basic-arm-instructions.s ++++ test/MC/ARM/basic-arm-instructions.s +@@ -191,8 +191,10 @@ Lforward: + + add r0, #-4 + add r4, r5, #-21 +- add r0, pc, #0xc0000000 ++ add r0, pc, #0xc0000000 + ++ add r0, pc, #(Lback - .) ++ + @ CHECK: add r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe2] + @ CHECK: add r4, r5, r6 @ encoding: [0x06,0x40,0x85,0xe0] + @ CHECK: add r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x85,0xe0] +@@ -222,7 +224,11 @@ Lforward: + + @ CHECK: sub r0, r0, #4 @ encoding: [0x04,0x00,0x40,0xe2] + @ CHECK: sub r4, r5, #21 @ encoding: [0x15,0x40,0x45,0xe2] +-@ CHECK: adr r0, #-1073741824 @ encoding: [0x03,0x01,0x8f,0xe2] ++@ CHECK: adr r0, #-1073741824 @ encoding: [0x03,0x01,0x8f,0xe2] ++@ CHECK: Ltmp0: ++@ CHECK-NEXT: Ltmp1: ++@ CHECK-NEXT: adr r0, (Ltmp1+8)+(Lback-Ltmp0) @ encoding: [A,A,0x0f'A',0xe2'A'] ++@ CHECK-NEXT: @ fixup A - offset: 0, value: (Ltmp1+8)+(Lback-Ltmp0), kind: fixup_arm_adr_pcrel_12 + + @ Test right shift by 32, which is encoded as 0 + add r3, r1, r2, lsr #32 From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 15:36:32 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 358B149E; Fri, 2 Jan 2015 15:36:32 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1F2C566282; Fri, 2 Jan 2015 15:36:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02FaWEY072190; Fri, 2 Jan 2015 15:36:32 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02FaUcM072185; Fri, 2 Jan 2015 15:36:30 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201501021536.t02FaUcM072185@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 2 Jan 2015 15:36:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276539 - in head/sys: arm/include mips/include sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 15:36:32 -0000 Author: emaste Date: Fri Jan 2 15:36:29 2015 New Revision: 276539 URL: https://svnweb.freebsd.org/changeset/base/276539 Log: Update ELF headers to include additional defines The elftoolchain project includes these additional defines for various userland programs. Given that arch-specific defines are still interesting in the context of userland programs reading or writing ELF metadata, they should be included in top-level ELF headers. Remove duplicate defines from ARM and MIPS elf headers. Submitted by: will (initial version) Reviewed by: imp, will Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D844 Modified: head/sys/arm/include/elf.h head/sys/mips/include/elf.h head/sys/sys/elf32.h head/sys/sys/elf64.h head/sys/sys/elf_common.h Modified: head/sys/arm/include/elf.h ============================================================================== --- head/sys/arm/include/elf.h Fri Jan 2 14:58:41 2015 (r276538) +++ head/sys/arm/include/elf.h Fri Jan 2 15:36:29 2015 (r276539) @@ -104,7 +104,6 @@ __ElfType(Auxinfo); #define ELF_TARG_VER 1 /* Defines specific for arm headers */ -#define EF_ARM_EABIMASK 0xff000000 #define EF_ARM_EABI_VERSION(x) (((x) & EF_ARM_EABIMASK) >> 24) #define EF_ARM_EABI_VERSION_UNKNOWN 0 #define EF_ARM_EABI_FREEBSD_MIN 4 Modified: head/sys/mips/include/elf.h ============================================================================== --- head/sys/mips/include/elf.h Fri Jan 2 14:58:41 2015 (r276538) +++ head/sys/mips/include/elf.h Fri Jan 2 15:36:29 2015 (r276539) @@ -238,39 +238,10 @@ __ElfType(Auxinfo); #define R_MIPS_COPY 126 #define R_MIPS_JUMP_SLOT 127 -/* mips dynamic tags */ - -#define DT_MIPS_RLD_VERSION 0x70000001 -#define DT_MIPS_TIME_STAMP 0x70000002 -#define DT_MIPS_ICHECKSUM 0x70000003 -#define DT_MIPS_IVERSION 0x70000004 -#define DT_MIPS_FLAGS 0x70000005 -#define DT_MIPS_BASE_ADDRESS 0x70000006 -#define DT_MIPS_CONFLICT 0x70000008 -#define DT_MIPS_LIBLIST 0x70000009 -#define DT_MIPS_CONFLICTNO 0x7000000b -#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* number of local got ents */ -#define DT_MIPS_LIBLISTNO 0x70000010 -#define DT_MIPS_SYMTABNO 0x70000011 /* number of .dynsym entries */ -#define DT_MIPS_UNREFEXTNO 0x70000012 -#define DT_MIPS_GOTSYM 0x70000013 /* first dynamic sym in got */ -#define DT_MIPS_HIPAGENO 0x70000014 -#define DT_MIPS_RLD_MAP 0x70000016 /* address of loader map */ -#define DT_MIPS_PLTGOT 0x70000032 -#define DT_MIPS_RWPLT 0x70000034 - /* * ELF Flags */ -#define EF_MIPS_PIC 0x00000002 /* Contains PIC code */ -#define EF_MIPS_CPIC 0x00000004 /* STD PIC calling sequence */ -#define EF_MIPS_ABI2 0x00000020 /* N32 */ - -#define EF_MIPS_ARCH_ASE 0x0f000000 /* Architectural extensions */ -#define EF_MIPS_ARCH_MDMX 0x08000000 /* MDMX multimedia extension */ -#define EF_MIPS_ARCH_M16 0x04000000 /* MIPS-16 ISA extensions */ -#define EF_MIPS_ARCH 0xf0000000 /* Architecture field */ #define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code */ #define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code */ #define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code */ Modified: head/sys/sys/elf32.h ============================================================================== --- head/sys/sys/elf32.h Fri Jan 2 14:58:41 2015 (r276538) +++ head/sys/sys/elf32.h Fri Jan 2 15:36:29 2015 (r276539) @@ -70,6 +70,18 @@ typedef struct { } Elf32_Ehdr; /* + * Shared object information, found in SHT_MIPS_LIBLIST. + */ + +typedef struct { + Elf32_Word l_name; /* The name of a shared object. */ + Elf32_Word l_time_stamp; /* 32-bit timestamp. */ + Elf32_Word l_checksum; /* Checksum of visible symbols, sizes. */ + Elf32_Word l_version; /* Interface version string index. */ + Elf32_Word l_flags; /* Flags (LL_*). */ +} Elf32_Lib; + +/* * Section header. */ Modified: head/sys/sys/elf64.h ============================================================================== --- head/sys/sys/elf64.h Fri Jan 2 14:58:41 2015 (r276538) +++ head/sys/sys/elf64.h Fri Jan 2 15:36:29 2015 (r276539) @@ -79,6 +79,18 @@ typedef struct { } Elf64_Ehdr; /* + * Shared object information, found in SHT_MIPS_LIBLIST. + */ + +typedef struct { + Elf64_Word l_name; /* The name of a shared object. */ + Elf64_Word l_time_stamp; /* 64-bit timestamp. */ + Elf64_Word l_checksum; /* Checksum of visible symbols, sizes. */ + Elf64_Word l_version; /* Interface version string index. */ + Elf64_Word l_flags; /* Flags (LL_*). */ +} Elf64_Lib; + +/* * Section header. */ Modified: head/sys/sys/elf_common.h ============================================================================== --- head/sys/sys/elf_common.h Fri Jan 2 14:58:41 2015 (r276538) +++ head/sys/sys/elf_common.h Fri Jan 2 15:36:29 2015 (r276539) @@ -50,6 +50,61 @@ typedef struct { } Elf_Note; /* + * Option kinds. + */ +#define ODK_NULL 0 /* undefined */ +#define ODK_REGINFO 1 /* register usage info */ +#define ODK_EXCEPTIONS 2 /* exception processing info */ +#define ODK_PAD 3 /* section padding */ +#define ODK_HWPATCH 4 /* hardware patch applied */ +#define ODK_FILL 5 /* fill value used by the linker */ +#define ODK_TAGS 6 /* reserved space for tools */ +#define ODK_HWAND 7 /* hardware AND patch applied */ +#define ODK_HWOR 8 /* hardware OR patch applied */ +#define ODK_GP_GROUP 9 /* GP group for text/data sections */ +#define ODK_IDENT 10 /* ID information */ +#define ODK_PAGESIZE 11 /* page size information */ + +/* + * ODK_EXCEPTIONS info field masks. + */ +#define OEX_FPU_MIN 0x0000001f /* min FPU exception required */ +#define OEX_FPU_MAX 0x00001f00 /* max FPU exception allowed */ +#define OEX_PAGE0 0x00010000 /* page zero must be mapped */ +#define OEX_SMM 0x00020000 /* run in sequential memory mode */ +#define OEX_PRECISEFP 0x00040000 /* run in precise FP exception mode */ +#define OEX_DISMISS 0x00080000 /* dismiss invalid address traps */ + +/* + * ODK_PAD info field masks. + */ +#define OPAD_PREFIX 0x0001 +#define OPAD_POSTFIX 0x0002 +#define OPAD_SYMBOL 0x0004 + +/* + * ODK_HWPATCH info field masks. + */ +#define OHW_R4KEOP 0x00000001 /* patch for R4000 branch at end-of-page bug */ +#define OHW_R8KPFETCH 0x00000002 /* R8000 prefetch bug may occur */ +#define OHW_R5KEOP 0x00000004 /* patch for R5000 branch at end-of-page bug */ +#define OHW_R5KCVTL 0x00000008 /* R5000 cvt.[ds].l bug: clean == 1 */ +#define OHW_R10KLDL 0x00000010UL /* need patch for R10000 misaligned load */ + +/* + * ODK_HWAND/ODK_HWOR info field and hwp_flags[12] masks. + */ +#define OHWA0_R4KEOP_CHECKED 0x00000001 /* object checked for R4000 end-of-page bug */ +#define OHWA0_R4KEOP_CLEAN 0x00000002 /* object verified clean for R4000 end-of-page bug */ +#define OHWO0_FIXADE 0x00000001 /* object requires call to fixade */ + +/* + * ODK_IDENT/ODK_GP_GROUP info field masks. + */ +#define OGP_GROUP 0x0000ffff /* GP group number */ +#define OGP_SELF 0x00010000 /* GP group is self-contained */ + +/* * The header for GNU-style hash sections. */ @@ -119,6 +174,7 @@ typedef struct { #define ELFOSABI_SYSV ELFOSABI_NONE /* symbol used in old spec */ #define ELFOSABI_MONTEREY ELFOSABI_AIX /* Monterey */ +#define ELFOSABI_GNU ELFOSABI_LINUX /* e_ident */ #define IS_ELF(ehdr) ((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \ @@ -245,6 +301,60 @@ typedef struct { #define EM_ALPHA_STD 41 /* Digital Alpha (standard value). */ #define EM_ALPHA 0x9026 /* Alpha (written in the absence of an ABI) */ +/** + * e_flags + */ +#define EF_ARM_RELEXEC 0x1 +#define EF_ARM_HASENTRY 0x2 +#define EF_ARM_SYMSARESORTED 0x4 +#define EF_ARM_DYNSYMSUSESEGIDX 0x8 +#define EF_ARM_MAPSYMSFIRST 0x10 +#define EF_ARM_LE8 0x00400000 +#define EF_ARM_BE8 0x00800000 +#define EF_ARM_EABIMASK 0xFF000000 +#define EF_ARM_EABI_UNKNOWN 0x00000000 +#define EF_ARM_EABI_VER1 0x01000000 +#define EF_ARM_EABI_VER2 0x02000000 +#define EF_ARM_EABI_VER3 0x03000000 +#define EF_ARM_EABI_VER4 0x04000000 +#define EF_ARM_EABI_VER5 0x05000000 +#define EF_ARM_INTERWORK 0x00000004 +#define EF_ARM_APCS_26 0x00000008 +#define EF_ARM_APCS_FLOAT 0x00000010 +#define EF_ARM_PIC 0x00000020 +#define EF_ARM_ALIGN8 0x00000040 +#define EF_ARM_NEW_ABI 0x00000080 +#define EF_ARM_OLD_ABI 0x00000100 +#define EF_ARM_SOFT_FLOAT 0x00000200 +#define EF_ARM_VFP_FLOAT 0x00000400 +#define EF_ARM_MAVERICK_FLOAT 0x00000800 + +#define EF_MIPS_NOREORDER 0x00000001 +#define EF_MIPS_PIC 0x00000002 /* Contains PIC code */ +#define EF_MIPS_CPIC 0x00000004 /* STD PIC calling sequence */ +#define EF_MIPS_UCODE 0x00000010 +#define EF_MIPS_ABI2 0x00000020 /* N32 */ +#define EF_MIPS_OPTIONS_FIRST 0x00000080 +#define EF_MIPS_ARCH_ASE 0x0F000000 /* Architectural extensions */ +#define EF_MIPS_ARCH_ASE_MDMX 0x08000000 /* MDMX multimedia extension */ +#define EF_MIPS_ARCH_ASE_M16 0x04000000 /* MIPS-16 ISA extensions */ +#define EF_MIPS_ARCH 0xF0000000 /* Architecture field */ + +#define EF_PPC_EMB 0x80000000 +#define EF_PPC_RELOCATABLE 0x00010000 +#define EF_PPC_RELOCATABLE_LIB 0x00008000 + +#define EF_SPARC_EXT_MASK 0x00ffff00 +#define EF_SPARC_32PLUS 0x00000100 +#define EF_SPARC_SUN_US1 0x00000200 +#define EF_SPARC_HAL_R1 0x00000200 +#define EF_SPARC_SUN_US3 0x00000800 + +#define EF_SPARCV9_MM 0x00000003 +#define EF_SPARCV9_TSO 0x00000000 +#define EF_SPARCV9_PSO 0x00000001 +#define EF_SPARCV9_RMO 0x00000002 + /* Special section indexes. */ #define SHN_UNDEF 0 /* Undefined, missing, irrelevant. */ #define SHN_LORESERVE 0xff00 /* First of reserved range. */ @@ -279,6 +389,7 @@ typedef struct { #define SHT_LOSUNW 0x6ffffff4 #define SHT_SUNW_dof 0x6ffffff4 #define SHT_SUNW_cap 0x6ffffff5 +#define SHT_GNU_ATTRIBUTES 0x6ffffff5 #define SHT_SUNW_SIGNATURE 0x6ffffff6 #define SHT_GNU_HASH 0x6ffffff6 #define SHT_GNU_LIBLIST 0x6ffffff7 @@ -298,6 +409,7 @@ typedef struct { #define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ #define SHT_LOPROC 0x70000000 /* reserved range for processor */ #define SHT_AMD64_UNWIND 0x70000001 /* unwind information */ + #define SHT_ARM_EXIDX 0x70000001 /* Exception index table. */ #define SHT_ARM_PREEMPTMAP 0x70000002 /* BPABI DLL dynamic linking pre-emption map. */ @@ -305,9 +417,38 @@ typedef struct { attributes. */ #define SHT_ARM_DEBUGOVERLAY 0x70000004 /* See DBGOVL for details. */ #define SHT_ARM_OVERLAYSECTION 0x70000005 /* See DBGOVL for details. */ +#define SHT_MIPS_LIBLIST 0x70000000 +#define SHT_MIPS_MSYM 0x70000001 +#define SHT_MIPS_CONFLICT 0x70000002 +#define SHT_MIPS_GPTAB 0x70000003 +#define SHT_MIPS_UCODE 0x70000004 +#define SHT_MIPS_DEBUG 0x70000005 #define SHT_MIPS_REGINFO 0x70000006 +#define SHT_MIPS_PACKAGE 0x70000007 +#define SHT_MIPS_PACKSYM 0x70000008 +#define SHT_MIPS_RELD 0x70000009 +#define SHT_MIPS_IFACE 0x7000000b +#define SHT_MIPS_CONTENT 0x7000000c #define SHT_MIPS_OPTIONS 0x7000000d +#define SHT_MIPS_DELTASYM 0x7000001b +#define SHT_MIPS_DELTAINST 0x7000001c +#define SHT_MIPS_DELTACLASS 0x7000001d #define SHT_MIPS_DWARF 0x7000001e /* MIPS gcc uses MIPS_DWARF */ +#define SHT_MIPS_DELTADECL 0x7000001f +#define SHT_MIPS_SYMBOL_LIB 0x70000020 +#define SHT_MIPS_EVENTS 0x70000021 +#define SHT_MIPS_TRANSLATE 0x70000022 +#define SHT_MIPS_PIXIE 0x70000023 +#define SHT_MIPS_XLATE 0x70000024 +#define SHT_MIPS_XLATE_DEBUG 0x70000025 +#define SHT_MIPS_WHIRL 0x70000026 +#define SHT_MIPS_EH_REGION 0x70000027 +#define SHT_MIPS_XLATE_OLD 0x70000028 +#define SHT_MIPS_PDR_EXCEPTION 0x70000029 + +#define SHT_SPARC_GOTDATA 0x70000000 + +#define SHTORDERED #define SHT_HIPROC 0x7fffffff /* specific section header types */ #define SHT_LOUSER 0x80000000 /* reserved range for application */ #define SHT_HIUSER 0xffffffff /* specific indexes */ @@ -424,11 +565,15 @@ typedef struct { * Dyn.d_un.d_val field of the Elf*_Dyn structure. */ #define DT_VALRNGLO 0x6ffffd00 +#define DT_GNU_PRELINKED 0x6ffffdf5 /* prelinking timestamp */ +#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* size of conflict section */ +#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* size of library list */ #define DT_CHECKSUM 0x6ffffdf8 /* elf checksum */ #define DT_PLTPADSZ 0x6ffffdf9 /* pltpadding size */ #define DT_MOVEENT 0x6ffffdfa /* move table entry size */ #define DT_MOVESZ 0x6ffffdfb /* move table size */ #define DT_FEATURE 0x6ffffdfc /* feature holder */ +#define DT_FEATURE_1 DT_FEATURE #define DT_POSFLAG_1 0x6ffffdfd /* flags for DT_* entries, effecting */ /* the following DT_* entry. */ /* See DF_P1_* definitions */ @@ -445,6 +590,8 @@ typedef struct { */ #define DT_ADDRRNGLO 0x6ffffe00 #define DT_GNU_HASH 0x6ffffef5 /* GNU-style hash table */ +#define DT_GNU_CONFLICT 0x6ffffef8 /* address of conflict section */ +#define DT_GNU_LIBLIST 0x6ffffef9 /* address of library list */ #define DT_CONFIG 0x6ffffefa /* configuration information */ #define DT_DEPAUDIT 0x6ffffefb /* dependency auditing */ #define DT_AUDIT 0x6ffffefc /* object auditing */ @@ -463,7 +610,67 @@ typedef struct { #define DT_VERNEEDNUM 0x6fffffff /* Number of elems in verneed section */ #define DT_LOPROC 0x70000000 /* First processor-specific type. */ + +#define DT_ARM_SYMTABSZ 0x70000001 +#define DT_ARM_PREEMPTMAP 0x70000002 + +#define DT_SPARC_REGISTER 0x70000001 #define DT_DEPRECATED_SPARC_REGISTER 0x7000001 + +#define DT_MIPS_RLD_VERSION 0x70000001 +#define DT_MIPS_TIME_STAMP 0x70000002 +#define DT_MIPS_ICHECKSUM 0x70000003 +#define DT_MIPS_IVERSION 0x70000004 +#define DT_MIPS_FLAGS 0x70000005 +#define DT_MIPS_BASE_ADDRESS 0x70000006 +#define DT_MIPS_CONFLICT 0x70000008 +#define DT_MIPS_LIBLIST 0x70000009 +#define DT_MIPS_LOCAL_GOTNO 0x7000000a +#define DT_MIPS_CONFLICTNO 0x7000000b +#define DT_MIPS_LIBLISTNO 0x70000010 +#define DT_MIPS_SYMTABNO 0x70000011 +#define DT_MIPS_UNREFEXTNO 0x70000012 +#define DT_MIPS_GOTSYM 0x70000013 +#define DT_MIPS_HIPAGENO 0x70000014 +#define DT_MIPS_RLD_MAP 0x70000016 +#define DT_MIPS_DELTA_CLASS 0x70000017 +#define DT_MIPS_DELTA_CLASS_NO 0x70000018 +#define DT_MIPS_DELTA_INSTANCE 0x70000019 +#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001A +#define DT_MIPS_DELTA_RELOC 0x7000001B +#define DT_MIPS_DELTA_RELOC_NO 0x7000001C +#define DT_MIPS_DELTA_SYM 0x7000001D +#define DT_MIPS_DELTA_SYM_NO 0x7000001E +#define DT_MIPS_DELTA_CLASSSYM 0x70000020 +#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 +#define DT_MIPS_CXX_FLAGS 0x70000022 +#define DT_MIPS_PIXIE_INIT 0x70000023 +#define DT_MIPS_SYMBOL_LIB 0x70000024 +#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 +#define DT_MIPS_LOCAL_GOTIDX 0x70000026 +#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 +#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 +#define DT_MIPS_OPTIONS 0x70000029 +#define DT_MIPS_INTERFACE 0x7000002A +#define DT_MIPS_DYNSTR_ALIGN 0x7000002B +#define DT_MIPS_INTERFACE_SIZE 0x7000002C +#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002D +#define DT_MIPS_PERF_SUFFIX 0x7000002E +#define DT_MIPS_COMPACT_SIZE 0x7000002F +#define DT_MIPS_GP_VALUE 0x70000030 +#define DT_MIPS_AUX_DYNAMIC 0x70000031 +#define DT_MIPS_PLTGOT 0x70000032 +#define DT_MIPS_RLD_OBJ_UPDATE 0x70000033 +#define DT_MIPS_RWPLT 0x70000034 + +#define DT_PPC_GOT 0x70000000 +#define DT_PPC_TLSOPT 0x70000001 + +#define DT_PPC64_GLINK 0x70000000 +#define DT_PPC64_OPD 0x70000001 +#define DT_PPC64_OPDSZ 0x70000002 +#define DT_PPC64_TLSOPT 0x70000003 + #define DT_AUXILIARY 0x7ffffffd /* shared library auxiliary name */ #define DT_USED 0x7ffffffe /* ignored - same as needed */ #define DT_FILTER 0x7fffffff /* shared library filter name */ @@ -494,6 +701,15 @@ typedef struct { #define DF_1_INTERPOSE 0x00000400 /* Interpose all objects but main */ #define DF_1_NODEFLIB 0x00000800 /* Do not search default paths */ +/* Values for l_flags. */ +#define LL_NONE 0x0 /* no flags */ +#define LL_EXACT_MATCH 0x1 /* require an exact match */ +#define LL_IGNORE_INT_VER 0x2 /* ignore version incompatibilities */ +#define LL_REQUIRE_MINOR 0x4 +#define LL_EXPORTS 0x8 +#define LL_DELAY_LOAD 0x10 +#define LL_DELTA 0x20 + /* Values for n_type. Used in core files. */ #define NT_PRSTATUS 1 /* Process status. */ #define NT_FPREGSET 2 /* Floating point registers. */ From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 15:46:55 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E0C64A25; Fri, 2 Jan 2015 15:46:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CD67566452; Fri, 2 Jan 2015 15:46:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Fkt1q077058; Fri, 2 Jan 2015 15:46:55 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Fktei077057; Fri, 2 Jan 2015 15:46:55 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201501021546.t02Fktei077057@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Fri, 2 Jan 2015 15:46:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276540 - head/sys/amd64/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 15:46:56 -0000 Author: scottl Date: Fri Jan 2 15:46:54 2015 New Revision: 276540 URL: https://svnweb.freebsd.org/changeset/base/276540 Log: Fix a missed comment from r276526. Modified: head/sys/amd64/conf/GENERIC Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Fri Jan 2 15:36:29 2015 (r276539) +++ head/sys/amd64/conf/GENERIC Fri Jan 2 15:46:54 2015 (r276540) @@ -145,8 +145,6 @@ device ses # Enclosure Services (SES # RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID -#XXX it is not 64-bit clean, -scottl -#device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 16:43:11 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 44CF624E; Fri, 2 Jan 2015 16:43:11 +0000 (UTC) Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2AD371BD4; Fri, 2 Jan 2015 16:43:10 +0000 (UTC) Received: from comporellon.tachypleus.net (polaris.tachypleus.net [75.101.50.44]) (authenticated bits=0) by c.mail.sonic.net (8.14.9/8.14.9) with ESMTP id t02Gh8lp017273 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 2 Jan 2015 08:43:08 -0800 Message-ID: <54A6CA9C.2050506@freebsd.org> Date: Fri, 02 Jan 2015 08:43:08 -0800 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.1.0 MIME-Version: 1.0 To: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r276522 - head/sys/amd64/amd64 References: <201501020100.t0210dIx064363@svn.freebsd.org> In-Reply-To: <201501020100.t0210dIx064363@svn.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVaLfxEGmusTpYuoEZDlNMwrcm1i1iY7PI+0JO7IvCPjM1lhZOPjYwSv+fM5kAt/hmwdyDYgGRHXZ1U6TMqpJ1hkDgBkFxYLeDc= X-Sonic-ID: C;hFdnbp6S5BG0cPCsS5uE/A== M;2uW+bp6S5BG0cPCsS5uE/A== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 16:43:11 -0000 Other architectures (PowerPC, for example) seem to have this same code there by copy and paste. Any chance you could do a global sweep? -Nathan On 01/01/15 17:00, Konstantin Belousov wrote: > Author: kib > Date: Fri Jan 2 01:00:38 2015 > New Revision: 276522 > URL: https://svnweb.freebsd.org/changeset/base/276522 > > Log: > Actually remove GIANT_REQUIRED, declared but not done in r263475. > Style. > > Sponsored by: The FreeBSD Foundation > MFC after: 1 week > > Modified: > head/sys/amd64/amd64/mem.c > > Modified: head/sys/amd64/amd64/mem.c > ============================================================================== > --- head/sys/amd64/amd64/mem.c Fri Jan 2 00:57:40 2015 (r276521) > +++ head/sys/amd64/amd64/mem.c Fri Jan 2 01:00:38 2015 (r276522) > @@ -81,8 +81,6 @@ memrw(struct cdev *dev, struct uio *uio, > int error, o, sflags; > vm_offset_t addr, eaddr; > > - GIANT_REQUIRED; > - > error = 0; > c = 0; > sflags = curthread_pflags_set(TDP_DEVMEMIO); > @@ -110,8 +108,7 @@ kmemphys: > } > error = uiomove((void *)v, (int)c, uio); > continue; > - } > - else if (dev2unit(dev) == CDEV_MINOR_KMEM) { > + } else if (dev2unit(dev) == CDEV_MINOR_KMEM) { > v = uio->uio_offset; > > if (v >= DMAP_MIN_ADDRESS && v < DMAP_MAX_ADDRESS) { > From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:31:39 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F25A7163; Fri, 2 Jan 2015 17:31:38 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DA41266338; Fri, 2 Jan 2015 17:31:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02HVcUv028196; Fri, 2 Jan 2015 17:31:38 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02HVbuY028187; Fri, 2 Jan 2015 17:31:37 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501021731.t02HVbuY028187@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Fri, 2 Jan 2015 17:31:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276541 - in vendor/unbound/dist: . compat contrib daemon dns64 dnstap doc iterator ldns libunbound libunbound/python libunbound/python/examples pythonmod services services/cache smalla... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:31:39 -0000 Author: des Date: Fri Jan 2 17:31:36 2015 New Revision: 276541 URL: https://svnweb.freebsd.org/changeset/base/276541 Log: import unbound 1.5.0 Added: vendor/unbound/dist/compat/arc4_lock.c vendor/unbound/dist/compat/arc4random.c vendor/unbound/dist/compat/arc4random_uniform.c vendor/unbound/dist/compat/chacha_private.h vendor/unbound/dist/compat/explicit_bzero.c vendor/unbound/dist/compat/getentropy_linux.c vendor/unbound/dist/compat/getentropy_osx.c vendor/unbound/dist/compat/getentropy_solaris.c vendor/unbound/dist/compat/getentropy_win.c vendor/unbound/dist/compat/sha512.c vendor/unbound/dist/contrib/create_unbound_ad_servers.cmd vendor/unbound/dist/contrib/create_unbound_ad_servers.sh (contents, props changed) vendor/unbound/dist/contrib/unbound_cache.cmd vendor/unbound/dist/contrib/unbound_cache.sh (contents, props changed) vendor/unbound/dist/contrib/warmup.cmd vendor/unbound/dist/contrib/warmup.sh (contents, props changed) vendor/unbound/dist/dns64/ vendor/unbound/dist/dns64/dns64.c vendor/unbound/dist/dns64/dns64.h vendor/unbound/dist/dnstap/ vendor/unbound/dist/dnstap/dnstap.c vendor/unbound/dist/dnstap/dnstap.h vendor/unbound/dist/dnstap/dnstap.m4 vendor/unbound/dist/dnstap/dnstap.proto vendor/unbound/dist/dnstap/dnstap_config.h.in vendor/unbound/dist/doc/README.DNS64 vendor/unbound/dist/doc/unbound-host.1.in vendor/unbound/dist/libunbound/worker.h vendor/unbound/dist/smallapp/unbound-control-setup.sh.in vendor/unbound/dist/testcode/run_vm.sh (contents, props changed) vendor/unbound/dist/testdata/dlv_remove.rpl vendor/unbound/dist/testdata/dlv_remove_empty.rpl vendor/unbound/dist/testdata/dlv_remove_nodel.rpl vendor/unbound/dist/testdata/dlv_remove_pos.rpl vendor/unbound/dist/testdata/dns64_lookup.rpl vendor/unbound/dist/testdata/iter_prefetch_fail.rpl vendor/unbound/dist/winrc/unbound-control-setup.cmd Deleted: vendor/unbound/dist/doc/unbound-host.1 vendor/unbound/dist/smallapp/unbound-control-setup.sh Modified: vendor/unbound/dist/Makefile.in vendor/unbound/dist/aclocal.m4 vendor/unbound/dist/acx_python.m4 vendor/unbound/dist/compat/fake-rfc2553.c vendor/unbound/dist/compat/inet_aton.c vendor/unbound/dist/compat/memmove.c vendor/unbound/dist/compat/strptime.c vendor/unbound/dist/config.guess vendor/unbound/dist/config.h.in vendor/unbound/dist/config.sub vendor/unbound/dist/configure vendor/unbound/dist/configure.ac vendor/unbound/dist/contrib/README vendor/unbound/dist/contrib/unbound_munin_ vendor/unbound/dist/daemon/cachedump.c vendor/unbound/dist/daemon/daemon.c vendor/unbound/dist/daemon/daemon.h vendor/unbound/dist/daemon/remote.c vendor/unbound/dist/daemon/remote.h vendor/unbound/dist/daemon/stats.c vendor/unbound/dist/daemon/stats.h vendor/unbound/dist/daemon/unbound.c vendor/unbound/dist/daemon/worker.c vendor/unbound/dist/daemon/worker.h vendor/unbound/dist/doc/CREDITS vendor/unbound/dist/doc/Changelog vendor/unbound/dist/doc/README vendor/unbound/dist/doc/README.svn vendor/unbound/dist/doc/example.conf.in vendor/unbound/dist/doc/libunbound.3.in vendor/unbound/dist/doc/unbound-anchor.8.in vendor/unbound/dist/doc/unbound-checkconf.8.in vendor/unbound/dist/doc/unbound-control.8.in vendor/unbound/dist/doc/unbound.8.in vendor/unbound/dist/doc/unbound.conf.5.in vendor/unbound/dist/doc/unbound.doxygen vendor/unbound/dist/iterator/iter_delegpt.c vendor/unbound/dist/iterator/iter_hints.c vendor/unbound/dist/iterator/iter_utils.c vendor/unbound/dist/iterator/iterator.c vendor/unbound/dist/iterator/iterator.h vendor/unbound/dist/ldns/keyraw.c vendor/unbound/dist/ldns/parse.c vendor/unbound/dist/ldns/parseutil.c vendor/unbound/dist/ldns/rrdef.c vendor/unbound/dist/ldns/rrdef.h vendor/unbound/dist/ldns/sbuffer.c vendor/unbound/dist/ldns/sbuffer.h vendor/unbound/dist/ldns/str2wire.c vendor/unbound/dist/ldns/wire2str.c vendor/unbound/dist/libunbound/libunbound.c vendor/unbound/dist/libunbound/libworker.c vendor/unbound/dist/libunbound/libworker.h vendor/unbound/dist/libunbound/python/examples/async-lookup.py vendor/unbound/dist/libunbound/python/examples/dns-lookup.py vendor/unbound/dist/libunbound/python/examples/dnssec-valid.py vendor/unbound/dist/libunbound/python/examples/dnssec_test.py vendor/unbound/dist/libunbound/python/examples/example8-1.py vendor/unbound/dist/libunbound/python/examples/idn-lookup.py vendor/unbound/dist/libunbound/python/examples/mx-lookup.py vendor/unbound/dist/libunbound/python/examples/ns-lookup.py vendor/unbound/dist/libunbound/python/examples/reverse-lookup.py vendor/unbound/dist/libunbound/python/libunbound.i vendor/unbound/dist/libunbound/ubsyms.def vendor/unbound/dist/libunbound/unbound.h vendor/unbound/dist/pythonmod/interface.i vendor/unbound/dist/services/cache/dns.c vendor/unbound/dist/services/cache/dns.h vendor/unbound/dist/services/listen_dnsport.c vendor/unbound/dist/services/listen_dnsport.h vendor/unbound/dist/services/localzone.c vendor/unbound/dist/services/modstack.c vendor/unbound/dist/services/outside_network.c vendor/unbound/dist/services/outside_network.h vendor/unbound/dist/smallapp/unbound-anchor.c vendor/unbound/dist/smallapp/unbound-checkconf.c vendor/unbound/dist/smallapp/unbound-control.c vendor/unbound/dist/smallapp/unbound-host.c vendor/unbound/dist/smallapp/worker_cb.c vendor/unbound/dist/testcode/checklocks.c vendor/unbound/dist/testcode/fake_event.c vendor/unbound/dist/testcode/lock_verify.c vendor/unbound/dist/testcode/petal.c vendor/unbound/dist/testcode/readhex.c vendor/unbound/dist/testcode/replay.c vendor/unbound/dist/testcode/signit.c vendor/unbound/dist/testcode/testbound.c vendor/unbound/dist/testcode/testpkts.c vendor/unbound/dist/testdata/01-doc.tpkg vendor/unbound/dist/testdata/09-unbound-control.tpkg vendor/unbound/dist/testdata/ctrl_itr.tpkg vendor/unbound/dist/testdata/edns_lame.tpkg vendor/unbound/dist/testdata/fwd_ancil.tpkg vendor/unbound/dist/testdata/fwd_bogus.tpkg vendor/unbound/dist/testdata/fwd_capsid.tpkg vendor/unbound/dist/testdata/fwd_capsid_fallback.tpkg vendor/unbound/dist/testdata/fwd_compress_c00c.tpkg vendor/unbound/dist/testdata/fwd_edns_bksec.tpkg vendor/unbound/dist/testdata/fwd_edns_probe.tpkg vendor/unbound/dist/testdata/fwd_no_edns.tpkg vendor/unbound/dist/testdata/fwd_oneport.tpkg vendor/unbound/dist/testdata/fwd_tcp.tpkg vendor/unbound/dist/testdata/fwd_tcp_tc.tpkg vendor/unbound/dist/testdata/fwd_three.tpkg vendor/unbound/dist/testdata/fwd_three_service.tpkg vendor/unbound/dist/testdata/fwd_ttlexpire.tpkg vendor/unbound/dist/testdata/fwd_udp.tpkg vendor/unbound/dist/testdata/fwd_udptmout.tpkg vendor/unbound/dist/testdata/fwd_waitudp.tpkg vendor/unbound/dist/testdata/fwd_zero.tpkg vendor/unbound/dist/testdata/local_nodefault.tpkg vendor/unbound/dist/testdata/local_norec.tpkg vendor/unbound/dist/testdata/local_nosnoop.tpkg vendor/unbound/dist/testdata/remote-threaded.tpkg vendor/unbound/dist/testdata/speed_cache.tpkg vendor/unbound/dist/testdata/speed_local.tpkg vendor/unbound/dist/testdata/stat_timer.tpkg vendor/unbound/dist/testdata/stream_ssl.tpkg vendor/unbound/dist/testdata/stream_tcp.tpkg vendor/unbound/dist/testdata/stub_udp.tpkg vendor/unbound/dist/testdata/tcp_sigpipe.tpkg vendor/unbound/dist/testdata/test_ldnsrr.3 vendor/unbound/dist/testdata/test_ldnsrr.5 vendor/unbound/dist/testdata/test_ldnsrr.c3 vendor/unbound/dist/util/config_file.c vendor/unbound/dist/util/config_file.h vendor/unbound/dist/util/configlexer.c vendor/unbound/dist/util/configlexer.lex vendor/unbound/dist/util/configparser.c vendor/unbound/dist/util/configparser.h vendor/unbound/dist/util/configparser.y vendor/unbound/dist/util/data/dname.c vendor/unbound/dist/util/data/msgreply.c vendor/unbound/dist/util/data/msgreply.h vendor/unbound/dist/util/data/packed_rrset.h vendor/unbound/dist/util/fptr_wlist.c vendor/unbound/dist/util/fptr_wlist.h vendor/unbound/dist/util/iana_ports.inc vendor/unbound/dist/util/locks.h vendor/unbound/dist/util/log.c vendor/unbound/dist/util/mini_event.h vendor/unbound/dist/util/module.h vendor/unbound/dist/util/net_help.c vendor/unbound/dist/util/net_help.h vendor/unbound/dist/util/netevent.c vendor/unbound/dist/util/netevent.h vendor/unbound/dist/util/random.c vendor/unbound/dist/util/storage/lookup3.c vendor/unbound/dist/util/storage/slabhash.c vendor/unbound/dist/util/storage/slabhash.h vendor/unbound/dist/util/winsock_event.h vendor/unbound/dist/validator/autotrust.c vendor/unbound/dist/validator/val_anchor.c vendor/unbound/dist/validator/val_nsec3.c vendor/unbound/dist/winrc/setup.nsi vendor/unbound/dist/winrc/w_inst.c Modified: vendor/unbound/dist/Makefile.in ============================================================================== --- vendor/unbound/dist/Makefile.in Fri Jan 2 15:46:54 2015 (r276540) +++ vendor/unbound/dist/Makefile.in Fri Jan 2 17:31:36 2015 (r276541) @@ -19,9 +19,10 @@ libtool=@libtool@ staticexe=@staticexe@ EXEEXT=@EXEEXT@ configfile=@ub_conf_file@ -UNBOUND_RUN_DIR=@UNBOUND_RUN_DIR@ CHECKLOCK_SRC=testcode/checklocks.c CHECKLOCK_OBJ=@CHECKLOCK_OBJ@ +DNSTAP_SRC=@DNSTAP_SRC@ +DNSTAP_OBJ=@DNSTAP_OBJ@ WITH_PYTHONMODULE=@WITH_PYTHONMODULE@ WITH_PYUNBOUND=@WITH_PYUNBOUND@ PYTHON_SITE_PKG=@PYTHON_SITE_PKG@ @@ -44,6 +45,7 @@ PYUNBOUND_TARGET=@PYUNBOUND_TARGET@ # K&R C compilers), but causes problems if $U is defined in the env). U= +PROTOC_C=@PROTOC_C@ SWIG=@SWIG@ YACC=@YACC@ LEX=@LEX@ @@ -56,6 +58,7 @@ LIBS=@LIBS@ LIBOBJS=@LIBOBJS@ # filter out ctime_r from compat obj. LIBOBJ_WITHOUT_CTIME=@LIBOBJ_WITHOUT_CTIME@ +LIBOBJ_WITHOUT_CTIMEARC4=@LIBOBJ_WITHOUT_CTIMEARC4@ RUNTIME_PATH=@RUNTIME_PATH@ DEPFLAG=@DEPFLAG@ DATE=@CONFIG_DATE@ @@ -69,13 +72,13 @@ LINT=splint LINTFLAGS=+quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc -Drlimit=rlimit64 -D__gnuc_va_list=va_list -formatcode #-Dglob64=glob -Dglobfree64=globfree # compat with openssl linux edition. -LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned" -D"ECDSA_SIG=DSA_SIG" +LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned" -D"ECDSA_SIG=DSA_SIG" -Dfstrm_res=int # compat with NetBSD LINTFLAGS+=@NETBSD_LINTFLAGS@ # compat with OpenBSD LINTFLAGS+="-Dsigset_t=long" # FreeBSD -LINTFLAGS+="-D__uint16_t=uint16_t" "-DEVP_PKEY_ASN1_METHOD=int" +LINTFLAGS+="-D__uint16_t=uint16_t" "-DEVP_PKEY_ASN1_METHOD=int" "-D_RuneLocale=int" "-D__va_list=va_list" INSTALL=$(srcdir)/install-sh @@ -106,7 +109,7 @@ util/winsock_event.c validator/autotrust validator/validator.c validator/val_kcache.c validator/val_kentry.c \ validator/val_neg.c validator/val_nsec3.c validator/val_nsec.c \ validator/val_secalgo.c validator/val_sigcrypt.c \ -validator/val_utils.c $(CHECKLOCK_SRC) +validator/val_utils.c dns64/dns64.c $(CHECKLOCK_SRC) $(DNSTAP_SRC) COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \ msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \ iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \ @@ -116,7 +119,8 @@ fptr_wlist.lo locks.lo log.lo mini_event random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \ slabhash.lo timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo \ validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \ -val_secalgo.lo val_sigcrypt.lo val_utils.lo $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) +val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo \ +$(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) COMMON_OBJ=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \ outside_network.lo # set to $COMMON_OBJ or to "" if --enableallsymbols @@ -124,9 +128,13 @@ COMMON_OBJ_ALL_SYMBOLS=@COMMON_OBJ_ALL_S COMPAT_SRC=compat/ctime_r.c compat/fake-rfc2553.c compat/gmtime_r.c \ compat/inet_aton.c compat/inet_ntop.c compat/inet_pton.c compat/malloc.c \ compat/memcmp.c compat/memmove.c compat/snprintf.c compat/strlcat.c \ -compat/strlcpy.c compat/strptime.c +compat/strlcpy.c compat/strptime.c compat/getentropy_linux.c \ +compat/getentropy_osx.c compat/getentropy_solaris.c compat/getentropy_win.c \ +compat/explicit_bzero.c compat/arc4random.c compat/arc4random_uniform.c \ +compat/arc4_lock.c compat/sha512.c COMPAT_OBJ=$(LIBOBJS:.o=.lo) COMPAT_OBJ_WITHOUT_CTIME=$(LIBOBJ_WITHOUT_CTIME:.o=.lo) +COMPAT_OBJ_WITHOUT_CTIMEARC4=$(LIBOBJ_WITHOUT_CTIMEARC4:.o=.lo) SLDNS_SRC=ldns/keyraw.c ldns/sbuffer.c ldns/wire2str.c ldns/parse.c \ ldns/parseutil.c ldns/rrdef.c ldns/str2wire.c SLDNS_OBJ=keyraw.lo sbuffer.lo wire2str.lo parse.lo parseutil.lo rrdef.lo \ @@ -156,7 +164,7 @@ CONTROL_OBJ_LINK=$(CONTROL_OBJ) worker_c $(SLDNS_OBJ) $(COMPAT_OBJ) @WIN_CONTROL_OBJ_LINK@ HOST_SRC=smallapp/unbound-host.c HOST_OBJ=unbound-host.lo -HOST_OBJ_LINK=$(HOST_OBJ) $(SLDNS_OBJ) $(COMPAT_OBJ_WITHOUT_CTIME) @WIN_HOST_OBJ_LINK@ +HOST_OBJ_LINK=$(HOST_OBJ) $(SLDNS_OBJ) $(COMPAT_OBJ_WITHOUT_CTIMEARC4) @WIN_HOST_OBJ_LINK@ UBANCHOR_SRC=smallapp/unbound-anchor.c UBANCHOR_OBJ=unbound-anchor.lo UBANCHOR_OBJ_LINK=$(UBANCHOR_OBJ) \ @@ -173,7 +181,7 @@ LOCKVERIFY_OBJ_LINK=$(LOCKVERIFY_OBJ) wo $(SLDNS_OBJ) PETAL_SRC=testcode/petal.c PETAL_OBJ=petal.lo -PETAL_OBJ_LINK=$(PETAL_OBJ) $(COMPAT_OBJ_WITHOUT_CTIME) +PETAL_OBJ_LINK=$(PETAL_OBJ) $(COMPAT_OBJ_WITHOUT_CTIMEARC4) PKTVIEW_SRC=testcode/pktview.c testcode/readhex.c PKTVIEW_OBJ=pktview.lo PKTVIEW_OBJ_LINK=$(PKTVIEW_OBJ) worker_cb.lo readhex.lo $(COMMON_OBJ) \ @@ -348,10 +356,22 @@ signit$(EXEEXT): testcode/signit.c unbound.h: $(srcdir)/libunbound/unbound.h sed -e 's/@''UNBOUND_VERSION_MAJOR@/$(UNBOUND_VERSION_MAJOR)/' -e 's/@''UNBOUND_VERSION_MINOR@/$(UNBOUND_VERSION_MINOR)/' -e 's/@''UNBOUND_VERSION_MICRO@/$(UNBOUND_VERSION_MICRO)/' < $(srcdir)/libunbound/unbound.h > $@ -unbound-control-setup: $(srcdir)/smallapp/unbound-control-setup.sh - sed -e 's:^DESTDIR=.*$$:DESTDIR=$(UNBOUND_RUN_DIR):' < $(srcdir)/smallapp/unbound-control-setup.sh > $@ +unbound-control-setup: smallapp/unbound-control-setup.sh + cp smallapp/unbound-control-setup.sh $@ -chmod +x $@ +# dnstap +dnstap.lo dnstap.o: $(srcdir)/dnstap/dnstap.c config.h dnstap/dnstap_config.h \ + dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h + +dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h: $(srcdir)/dnstap/dnstap.proto + @-if test ! -d dnstap; then $(INSTALL) -d dnstap; fi + $(PROTOC_C) --c_out=. $(srcdir)/dnstap/dnstap.proto + +dnstap.pb-c.lo dnstap.pb-c.o: dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h + # Python Module pythonmod.lo pythonmod.o: $(srcdir)/pythonmod/pythonmod.c config.h \ pythonmod/interface.h \ @@ -412,7 +432,7 @@ realclean: clean $(LINT) $(LINTFLAGS) -I. -I$(srcdir) $< touch $@ -util/configparser.lint util/configlexer.lint pythonmod/pythonmod.lint libunbound/python/libunbound_wrap.lint: +util/configparser.lint util/configlexer.lint pythonmod/pythonmod.lint libunbound/python/libunbound_wrap.lint dnstap/dnstap.pb-c.lint: # skip lint for generated code touch $@ @@ -495,7 +515,7 @@ install-all: all $(PYTHONMOD_INSTALL) $( $(INSTALL) -c -m 644 doc/unbound-control.8 $(DESTDIR)$(mandir)/man8/unbound-control-setup.8 $(INSTALL) -c -m 644 doc/unbound-anchor.8 $(DESTDIR)$(mandir)/man8 $(INSTALL) -c -m 644 doc/unbound.conf.5 $(DESTDIR)$(mandir)/man5 - $(INSTALL) -c -m 644 $(srcdir)/doc/unbound-host.1 $(DESTDIR)$(mandir)/man1 + $(INSTALL) -c -m 644 doc/unbound-host.1 $(DESTDIR)$(mandir)/man1 $(INSTALL) -c -m 755 unbound-control-setup $(DESTDIR)$(sbindir)/unbound-control-setup if test ! -e $(DESTDIR)$(configfile); then $(INSTALL) -d `dirname $(DESTDIR)$(configfile)`; $(INSTALL) -c -m 644 doc/example.conf $(DESTDIR)$(configfile); fi @@ -687,7 +707,7 @@ modstack.lo modstack.o: $(srcdir)/servic $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ @@ -723,16 +743,15 @@ fptr_wlist.lo fptr_wlist.o: $(srcdir)/ut $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ - $(srcdir)/util/rbtree.h $(srcdir)/daemon/worker.h $(srcdir)/util/alloc.h $(srcdir)/daemon/stats.h \ - $(srcdir)/util/timehist.h $(srcdir)/daemon/remote.h \ - $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ - $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/util/config_file.h + $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \ + $(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h $(srcdir)/libunbound/libworker.h \ + $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h $(srcdir)/util/config_file.h locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/ldns/sbuffer.h mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ @@ -755,8 +774,7 @@ net_help.lo net_help.o: $(srcdir)/util/n $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/ldns/parseutil.h \ $(srcdir)/ldns/wire2str.h \ -random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h \ - +random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ @@ -857,6 +875,13 @@ val_utils.lo val_utils.o: $(srcdir)/vali $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/net_help.h $(srcdir)/util/regional.h +dns64.lo dns64.o: $(srcdir)/dns64/dns64.c config.h $(srcdir)/dns64/dns64.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/regional.h checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/testcode/checklocks.h unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ @@ -906,22 +931,23 @@ acl_list.lo acl_list.o: $(srcdir)/daemon $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \ - $(srcdir)/daemon/cachedump.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h \ - $(srcdir)/iterator/iter_fwd.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h + $(srcdir)/daemon/cachedump.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h \ + $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \ $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ - $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ @@ -929,41 +955,45 @@ daemon.lo daemon.o: $(srcdir)/daemon/dae $(srcdir)/util/net_help.h $(srcdir)/ldns/keyraw.h remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \ $(srcdir)/daemon/remote.h \ - $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h \ - $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/cachedump.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h \ - $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/iterator/iter_delegpt.h \ - $(srcdir)/services/outside_network.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/parseutil.h \ - $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/sbuffer.h + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h $(srcdir)/ldns/str2wire.h \ + $(srcdir)/ldns/parseutil.h $(srcdir)/ldns/wire2str.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \ $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/ldns/sbuffer.h + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \ $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ $(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ - $(srcdir)/ldns/rrdef.h $(srcdir)/util/net_help.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/util/net_help.h $(srcdir)/util/mini_event.h \ + $(srcdir)/util/rbtree.h worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h \ - $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/remote.h \ + $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ @@ -971,7 +1001,8 @@ worker.lo worker.o: $(srcdir)/daemon/wor $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/ldns/sbuffer.h + $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/libworker.h testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/testpkts.h \ $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h \ $(srcdir)/daemon/remote.h \ @@ -979,18 +1010,18 @@ testbound.lo testbound.o: $(srcdir)/test $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h \ $(srcdir)/services/cache/rrset.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/net_help.h $(srcdir)/util/mini_event.h \ - $(srcdir)/util/rbtree.h + $(srcdir)/util/rtt.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c config.h $(srcdir)/testcode/testpkts.h \ $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/pkthdr.h \ $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h \ - $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/remote.h \ + $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ @@ -998,29 +1029,32 @@ worker.lo worker.o: $(srcdir)/daemon/wor $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/ldns/sbuffer.h + $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/libworker.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \ $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ - $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ $(srcdir)/util/net_help.h $(srcdir)/ldns/keyraw.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \ $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/ldns/sbuffer.h + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/testcode/testpkts.h \ $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h @@ -1057,11 +1091,12 @@ unbound-checkconf.lo unbound-checkconf.o $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/localzone.h \ $(srcdir)/ldns/sbuffer.h -worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/util/log.h $(srcdir)/services/mesh.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/services/modstack.h +worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h context.lo context.o: $(srcdir)/libunbound/context.c config.h $(srcdir)/libunbound/context.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ @@ -1081,15 +1116,15 @@ libunbound.lo libunbound.o: $(srcdir)/li libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \ $(srcdir)/libunbound/libworker.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/unbound-event.h \ - $(srcdir)/services/outside_network.h $(srcdir)/util/netevent.h $(srcdir)/services/mesh.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/regional.h \ - $(srcdir)/util/random.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/tube.h $(srcdir)/iterator/iter_fwd.h \ - $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/sbuffer.h \ - $(srcdir)/ldns/str2wire.h + $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h \ + $(srcdir)/util/netevent.h $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/str2wire.h unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/wire2str.h asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \ @@ -1123,10 +1158,10 @@ pythonmod_utils.lo pythonmod_utils.o: $( $(srcdir)/ldns/sbuffer.h win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc.h $(srcdir)/winrc/w_inst.h \ $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ - $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \ $(srcdir)/util/config_file.h $(srcdir)/util/winsock_event.h w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \ @@ -1161,3 +1196,13 @@ snprintf.lo snprintf.o: $(srcdir)/compat strlcat.lo strlcat.o: $(srcdir)/compat/strlcat.c config.h strlcpy.lo strlcpy.o: $(srcdir)/compat/strlcpy.c config.h strptime.lo strptime.o: $(srcdir)/compat/strptime.c config.h +getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c config.h \ + +getentropy_osx.lo getentropy_osx.o: $(srcdir)/compat/getentropy_osx.c config.h +getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c config.h +getentropy_win.lo getentropy_win.o: $(srcdir)/compat/getentropy_win.c +explicit_bzero.lo explicit_bzero.o: $(srcdir)/compat/explicit_bzero.c config.h +arc4random.lo arc4random.o: $(srcdir)/compat/arc4random.c config.h $(srcdir)/compat/chacha_private.h +arc4random_uniform.lo arc4random_uniform.o: $(srcdir)/compat/arc4random_uniform.c config.h +arc4_lock.lo arc4_lock.o: $(srcdir)/compat/arc4_lock.c config.h $(srcdir)/util/locks.h +sha512.lo sha512.o: $(srcdir)/compat/sha512.c config.h Modified: vendor/unbound/dist/aclocal.m4 ============================================================================== --- vendor/unbound/dist/aclocal.m4 Fri Jan 2 15:46:54 2015 (r276540) +++ vendor/unbound/dist/aclocal.m4 Fri Jan 2 17:31:36 2015 (r276541) @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.12.2 -*- Autoconf -*- +# generated automatically by aclocal 1.13.4 -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11,6 +11,7 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, @@ -1317,7 +1318,7 @@ ia64-*-hpux*) rm -rf conftest* ;; -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext @@ -1331,7 +1332,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; - ppc64-*linux*|powerpc64-*linux*) + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -1350,7 +1354,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) Modified: vendor/unbound/dist/acx_python.m4 ============================================================================== --- vendor/unbound/dist/acx_python.m4 Fri Jan 2 15:46:54 2015 (r276540) +++ vendor/unbound/dist/acx_python.m4 Fri Jan 2 17:31:36 2015 (r276541) @@ -14,58 +14,11 @@ AC_DEFUN([AC_PYTHON_DEVEL],[ fi if test -z "$PYTHON_VERSION"; then - PYTHON_VERSION=`$PYTHON -c "import sys, string; \ - print string.split(sys.version)[[0]]"` + PYTHON_VERSION=`$PYTHON -c "import sys; \ + print(sys.version.split()[[0]])"` fi # - # Check for a version of Python >= 2.1.0 - # - AC_MSG_CHECKING([for a version of Python >= '2.1.0']) - ac_supports_python_ver=`$PYTHON -c "import sys, string; \ - ver = string.split(sys.version)[[0]]; \ - print ver >= '2.1.0'"` - if test "$ac_supports_python_ver" != "True"; then - if test -z "$PYTHON_NOVERSIONCHECK"; then - AC_MSG_RESULT([no]) - AC_MSG_FAILURE([ -This version of the AC@&t@_PYTHON_DEVEL macro -doesn't work properly with versions of Python before -2.1.0. You may need to re-run configure, setting the -variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, -PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. -Moreover, to disable this check, set PYTHON_NOVERSIONCHECK -to something else than an empty string. -]) - else - AC_MSG_RESULT([skip at user request]) - fi - else - AC_MSG_RESULT([yes]) - fi - - # - # if the macro parameter ``version'' is set, honour it - # - if test -n "$1"; then - AC_MSG_CHECKING([for a version of Python $1]) - ac_supports_python_ver=`$PYTHON -c "import sys, string; \ - ver = string.split(sys.version)[[0]]; \ - print ver $1"` - if test "$ac_supports_python_ver" = "True"; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - AC_MSG_ERROR([this package requires Python $1. -If you have it installed, but it isn't the default Python -interpreter in your system path, please pass the PYTHON_VERSION -variable to configure. See ``configure --help'' for reference. -]) - PYTHON_VERSION="" - fi - fi - - # # Check if you have distutils, else fail # AC_MSG_CHECKING([for the distutils Python package]) @@ -86,7 +39,7 @@ $ac_distutils_result]) AC_MSG_CHECKING([for Python include path]) if test -z "$PYTHON_CPPFLAGS"; then python_path=`$PYTHON -c "import distutils.sysconfig; \ - print distutils.sysconfig.get_python_inc();"` + print(distutils.sysconfig.get_python_inc());"` if test -n "${python_path}"; then python_path="-I$python_path" fi @@ -100,25 +53,8 @@ $ac_distutils_result]) # AC_MSG_CHECKING([for Python library path]) if test -z "$PYTHON_LDFLAGS"; then - # (makes two attempts to ensure we've got a version number - # from the interpreter) - py_version=`$PYTHON -c "from distutils.sysconfig import *; \ - from string import join; \ - print join(get_config_vars('VERSION'))"` - if test "$py_version" = "[None]"; then - if test -n "$PYTHON_VERSION"; then - py_version=$PYTHON_VERSION - else - py_version=`$PYTHON -c "import sys; \ - print sys.version[[:3]]"` - fi - fi - PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \ - from string import join; \ - print '-L' + get_python_lib(0,1), \ - '-L' + os.path.dirname(get_python_lib(0,1)), \ - '-lpython';"`$py_version + print(get_config_var('BLDLIBRARY'));"` fi AC_MSG_RESULT([$PYTHON_LDFLAGS]) AC_SUBST([PYTHON_LDFLAGS]) @@ -129,36 +65,12 @@ $ac_distutils_result]) AC_MSG_CHECKING([for Python site-packages path]) if test -z "$PYTHON_SITE_PKG"; then PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ - print distutils.sysconfig.get_python_lib(1,0);"` + print(distutils.sysconfig.get_python_lib(1,0));"` fi AC_MSG_RESULT([$PYTHON_SITE_PKG]) AC_SUBST([PYTHON_SITE_PKG]) # - # libraries which must be linked in when embedding - # - AC_MSG_CHECKING(python extra libraries) - if test -z "$PYTHON_EXTRA_LIBS"; then - PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ - conf = distutils.sysconfig.get_config_var; \ - print conf('LOCALMODLIBS'), conf('LIBS')"` - fi - AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) - AC_SUBST(PYTHON_EXTRA_LIBS) - - # - # linking flags needed when embedding - # - AC_MSG_CHECKING(python extra linking flags) - if test -z "$PYTHON_EXTRA_LDFLAGS"; then - PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ - conf = distutils.sysconfig.get_config_var; \ - print conf('LINKFORSHARED')"` - fi - AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) - AC_SUBST(PYTHON_EXTRA_LDFLAGS) - - # # final check to see if everything compiles alright # AC_MSG_CHECKING([consistency of all components of python development environment]) Added: vendor/unbound/dist/compat/arc4_lock.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/unbound/dist/compat/arc4_lock.c Fri Jan 2 17:31:36 2015 (r276541) @@ -0,0 +1,65 @@ +/* arc4_lock.c - global lock for arc4random +* + * Copyright (c) 2014, NLnet Labs. All rights reserved. + * + * This software is open source. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the NLNET LABS nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "config.h" +#define LOCKRET(func) func +#include "util/locks.h" + +void _ARC4_LOCK(void); +void _ARC4_UNLOCK(void); + +#ifdef THREADS_DISABLED +void _ARC4_LOCK(void) +{ +} + +void _ARC4_UNLOCK(void) +{ +} +#else /* !THREADS_DISABLED */ + +static lock_quick_t arc4lock; +static int arc4lockinit = 0; + +void _ARC4_LOCK(void) +{ + if(!arc4lockinit) + lock_quick_init(&arc4lock); + lock_quick_lock(&arc4lock); +} + +void _ARC4_UNLOCK(void) +{ + lock_quick_unlock(&arc4lock); +} +#endif /* THREADS_DISABLED */ Added: vendor/unbound/dist/compat/arc4random.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/unbound/dist/compat/arc4random.c Fri Jan 2 17:31:36 2015 (r276541) @@ -0,0 +1,231 @@ +/* $OpenBSD: arc4random.c,v 1.41 2014/07/12 13:24:54 deraadt Exp $ */ + +/* + * Copyright (c) 1996, David Mazieres + * Copyright (c) 2008, Damien Miller + * Copyright (c) 2013, Markus Friedl + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +#include "config.h" + +/* + * ChaCha based random number generator for OpenBSD. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef UB_ON_WINDOWS +#include +#endif + +#define KEYSTREAM_ONLY +#include "chacha_private.h" + +#define arc4_min(a, b) ((a) < (b) ? (a) : (b)) +#ifdef __GNUC__ +#define inline __inline +#else /* !__GNUC__ */ +#define inline +#endif /* !__GNUC__ */ + +#define KEYSZ 32 +#define IVSZ 8 +#define BLOCKSZ 64 +#define RSBUFSZ (16*BLOCKSZ) + +/* Marked MAP_INHERIT_ZERO, so zero'd out in fork children. */ +static struct { + size_t rs_have; /* valid bytes at end of rs_buf */ + size_t rs_count; /* bytes till reseed */ +} *rs; + +/* Preserved in fork children. */ +static struct { + chacha_ctx rs_chacha; /* chacha context for random keystream */ + u_char rs_buf[RSBUFSZ]; /* keystream blocks */ +} *rsx; + +static inline void _rs_rekey(u_char *dat, size_t datlen); + +static inline void +_rs_init(u_char *buf, size_t n) +{ + if (n < KEYSZ + IVSZ) + return; + + if (rs == NULL) { +#ifndef UB_ON_WINDOWS + if ((rs = mmap(NULL, sizeof(*rs), PROT_READ|PROT_WRITE, + MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) + abort(); +#ifdef MAP_INHERIT_ZERO + if (minherit(rs, sizeof(*rs), MAP_INHERIT_ZERO) == -1) + abort(); +#endif +#else /* WINDOWS */ + rs = malloc(sizeof(*rs)); + if(!rs) + abort(); +#endif + } + if (rsx == NULL) { +#ifndef UB_ON_WINDOWS + if ((rsx = mmap(NULL, sizeof(*rsx), PROT_READ|PROT_WRITE, + MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) + abort(); +#else /* WINDOWS */ + rsx = malloc(sizeof(*rsx)); + if(!rsx) + abort(); +#endif + } + + chacha_keysetup(&rsx->rs_chacha, buf, KEYSZ * 8, 0); + chacha_ivsetup(&rsx->rs_chacha, buf + KEYSZ); +} + +static void +_rs_stir(void) +{ + u_char rnd[KEYSZ + IVSZ]; + + if (getentropy(rnd, sizeof rnd) == -1) { +#ifdef SIGKILL + raise(SIGKILL); +#else + exit(9); /* windows */ +#endif + } + + if (!rs) + _rs_init(rnd, sizeof(rnd)); + else + _rs_rekey(rnd, sizeof(rnd)); + explicit_bzero(rnd, sizeof(rnd)); /* discard source seed */ + + /* invalidate rs_buf */ + rs->rs_have = 0; + memset(rsx->rs_buf, 0, sizeof(rsx->rs_buf)); + + rs->rs_count = 1600000; +} + +static inline void +_rs_stir_if_needed(size_t len) +{ +#ifndef MAP_INHERIT_ZERO + static pid_t _rs_pid = 0; + pid_t pid = getpid(); + + /* If a system lacks MAP_INHERIT_ZERO, resort to getpid() */ + if (_rs_pid == 0 || _rs_pid != pid) { + _rs_pid = pid; + if (rs) + rs->rs_count = 0; + } +#endif + if (!rs || rs->rs_count <= len) + _rs_stir(); + if (rs->rs_count <= len) + rs->rs_count = 0; + else + rs->rs_count -= len; +} + +static inline void +_rs_rekey(u_char *dat, size_t datlen) +{ +#ifndef KEYSTREAM_ONLY + memset(rsx->rs_buf, 0, sizeof(rsx->rs_buf)); +#endif + /* fill rs_buf with the keystream */ + chacha_encrypt_bytes(&rsx->rs_chacha, rsx->rs_buf, + rsx->rs_buf, sizeof(rsx->rs_buf)); + /* mix in optional user provided data */ + if (dat) { + size_t i, m; + + m = arc4_min(datlen, KEYSZ + IVSZ); + for (i = 0; i < m; i++) + rsx->rs_buf[i] ^= dat[i]; + } + /* immediately reinit for backtracking resistance */ + _rs_init(rsx->rs_buf, KEYSZ + IVSZ); + memset(rsx->rs_buf, 0, KEYSZ + IVSZ); + rs->rs_have = sizeof(rsx->rs_buf) - KEYSZ - IVSZ; +} + +static inline void +_rs_random_buf(void *_buf, size_t n) +{ + u_char *buf = (u_char *)_buf; + u_char *keystream; + size_t m; + + _rs_stir_if_needed(n); + while (n > 0) { + if (rs->rs_have > 0) { + m = arc4_min(n, rs->rs_have); + keystream = rsx->rs_buf + sizeof(rsx->rs_buf) + - rs->rs_have; + memcpy(buf, keystream, m); + memset(keystream, 0, m); + buf += m; + n -= m; + rs->rs_have -= m; + } + if (rs->rs_have == 0) + _rs_rekey(NULL, 0); + } +} + +static inline void +_rs_random_u32(uint32_t *val) +{ + u_char *keystream; + _rs_stir_if_needed(sizeof(*val)); + if (rs->rs_have < sizeof(*val)) + _rs_rekey(NULL, 0); + keystream = rsx->rs_buf + sizeof(rsx->rs_buf) - rs->rs_have; + memcpy(val, keystream, sizeof(*val)); + memset(keystream, 0, sizeof(*val)); + rs->rs_have -= sizeof(*val); +} + +uint32_t +arc4random(void) +{ + uint32_t val; + + _ARC4_LOCK(); + _rs_random_u32(&val); + _ARC4_UNLOCK(); + return val; +} + +void +arc4random_buf(void *buf, size_t n) +{ + _ARC4_LOCK(); + _rs_random_buf(buf, n); + _ARC4_UNLOCK(); +} Added: vendor/unbound/dist/compat/arc4random_uniform.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/unbound/dist/compat/arc4random_uniform.c Fri Jan 2 17:31:36 2015 (r276541) @@ -0,0 +1,57 @@ +/* $OpenBSD: arc4random_uniform.c,v 1.1 2014/07/12 13:24:54 deraadt Exp $ */ + +/* + * Copyright (c) 2008, Damien Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "config.h" +#include +#include + +/* + * Calculate a uniformly distributed random number less than upper_bound + * avoiding "modulo bias". + * + * Uniformity is achieved by generating new random numbers until the one + * returned is outside the range [0, 2**32 % upper_bound). This + * guarantees the selected random number will be inside + * [2**32 % upper_bound, 2**32) which maps back to [0, upper_bound) + * after reduction modulo upper_bound. + */ +uint32_t +arc4random_uniform(uint32_t upper_bound) +{ + uint32_t r, min; + + if (upper_bound < 2) + return 0; + + /* 2**32 % x == (2**32 - x) % x */ + min = -upper_bound % upper_bound; + + /* *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:32:52 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0438E295; Fri, 2 Jan 2015 17:32:52 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D935C66346; Fri, 2 Jan 2015 17:32:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02HWpfJ028421; Fri, 2 Jan 2015 17:32:51 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02HWpQk028419; Fri, 2 Jan 2015 17:32:51 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501021732.t02HWpQk028419@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Fri, 2 Jan 2015 17:32:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276542 - vendor/unbound/dist/iterator X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:32:52 -0000 Author: des Date: Fri Jan 2 17:32:50 2015 New Revision: 276542 URL: https://svnweb.freebsd.org/changeset/base/276542 Log: fix unwanted merge in previous commit Modified: vendor/unbound/dist/iterator/iterator.c vendor/unbound/dist/iterator/iterator.h Modified: vendor/unbound/dist/iterator/iterator.c ============================================================================== --- vendor/unbound/dist/iterator/iterator.c Fri Jan 2 17:31:36 2015 (r276541) +++ vendor/unbound/dist/iterator/iterator.c Fri Jan 2 17:32:50 2015 (r276542) @@ -120,7 +120,6 @@ iter_new(struct module_qstate* qstate, i iq->query_restart_count = 0; iq->referral_count = 0; iq->sent_count = 0; - iq->target_count = NULL; iq->wait_priming_stub = 0; iq->refetch_glue = 0; iq->dnssec_expected = 0; @@ -454,26 +453,6 @@ handle_cname_response(struct module_qsta return 1; } -/** create target count structure for this query */ -static void -target_count_create(struct iter_qstate* iq) -{ - if(!iq->target_count) { - iq->target_count = (int*)calloc(2, sizeof(int)); - /* if calloc fails we simply do not track this number */ - if(iq->target_count) - iq->target_count[0] = 1; - } -} - -static void -target_count_increase(struct iter_qstate* iq, int num) -{ - target_count_create(iq); - if(iq->target_count) - iq->target_count[1] += num; -} - /** * Generate a subrequest. * Generate a local request event. Local events are tied to this module, and @@ -545,10 +524,6 @@ generate_sub_request(uint8_t* qname, siz subiq = (struct iter_qstate*)subq->minfo[id]; memset(subiq, 0, sizeof(*subiq)); subiq->num_target_queries = 0; - target_count_create(iq); - subiq->target_count = iq->target_count; - if(iq->target_count) - iq->target_count[0] ++; /* extra reference */ subiq->num_current_queries = 0; subiq->depth = iq->depth+1; outbound_list_init(&subiq->outlist); @@ -1375,12 +1350,6 @@ query_for_targets(struct module_qstate* if(iq->depth == ie->max_dependency_depth) return 0; - if(iq->depth > 0 && iq->target_count && - iq->target_count[1] > MAX_TARGET_COUNT) { - verbose(VERB_QUERY, "request has exceeded the maximum " - "number of glue fetches %d", iq->target_count[1]); - return 0; - } iter_mark_cycle_targets(qstate, iq->dp); missing = (int)delegpt_count_missing_targets(iq->dp); @@ -1563,7 +1532,6 @@ processLastResort(struct module_qstate* return error_response(qstate, id, LDNS_RCODE_SERVFAIL); } iq->num_target_queries += qs; - target_count_increase(iq, qs); if(qs != 0) { qstate->ext_state[id] = module_wait_subquery; return 0; /* and wait for them */ @@ -1573,12 +1541,6 @@ processLastResort(struct module_qstate* verbose(VERB_QUERY, "maxdepth and need more nameservers, fail"); return error_response_cache(qstate, id, LDNS_RCODE_SERVFAIL); } - if(iq->depth > 0 && iq->target_count && - iq->target_count[1] > MAX_TARGET_COUNT) { - verbose(VERB_QUERY, "request has exceeded the maximum " - "number of glue fetches %d", iq->target_count[1]); - return error_response_cache(qstate, id, LDNS_RCODE_SERVFAIL); - } /* mark cycle targets for parent-side lookups */ iter_mark_pside_cycle_targets(qstate, iq->dp); /* see if we can issue queries to get nameserver addresses */ @@ -1608,7 +1570,6 @@ processLastResort(struct module_qstate* if(query_count != 0) { /* suspend to await results */ verbose(VERB_ALGO, "try parent-side glue lookup"); iq->num_target_queries += query_count; - target_count_increase(iq, query_count); qstate->ext_state[id] = module_wait_subquery; return 0; } @@ -1764,7 +1725,6 @@ processQueryTargets(struct module_qstate return error_response(qstate, id, LDNS_RCODE_SERVFAIL); } iq->num_target_queries += extra; - target_count_increase(iq, extra); if(iq->num_target_queries > 0) { /* wait to get all targets, we want to try em */ verbose(VERB_ALGO, "wait for all targets for fallback"); @@ -1805,7 +1765,6 @@ processQueryTargets(struct module_qstate /* errors ignored, these targets are not strictly necessary for * this result, we do not have to reply with SERVFAIL */ iq->num_target_queries += extra; - target_count_increase(iq, extra); } /* Add the current set of unused targets to our queue. */ @@ -1851,7 +1810,6 @@ processQueryTargets(struct module_qstate return 1; } iq->num_target_queries += qs; - target_count_increase(iq, qs); } /* Since a target query might have been made, we * need to check again. */ @@ -2963,8 +2921,6 @@ iter_clear(struct module_qstate* qstate, iq = (struct iter_qstate*)qstate->minfo[id]; if(iq) { outbound_list_clear(&iq->outlist); - if(iq->target_count && --iq->target_count[0] == 0) - free(iq->target_count); iq->num_current_queries = 0; } qstate->minfo[id] = NULL; Modified: vendor/unbound/dist/iterator/iterator.h ============================================================================== --- vendor/unbound/dist/iterator/iterator.h Fri Jan 2 17:31:36 2015 (r276541) +++ vendor/unbound/dist/iterator/iterator.h Fri Jan 2 17:32:50 2015 (r276542) @@ -52,8 +52,6 @@ struct iter_donotq; struct iter_prep_list; struct iter_priv; -/** max number of targets spawned for a query and its subqueries */ -#define MAX_TARGET_COUNT 32 /** max number of query restarts. Determines max number of CNAME chain. */ #define MAX_RESTART_COUNT 8 /** max number of referrals. Makes sure resolver does not run away */ @@ -253,10 +251,6 @@ struct iter_qstate { /** number of queries fired off */ int sent_count; - - /** number of target queries spawned in [1], for this query and its - * subqueries, the malloced-array is shared, [0] refcount. */ - int* target_count; /** * The query must store NS records from referrals as parentside RRs From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:33:28 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7786C3CD for ; Fri, 2 Jan 2015 17:33:28 +0000 (UTC) Received: from mail-ig0-x235.google.com (mail-ig0-x235.google.com [IPv6:2607:f8b0:4001:c05::235]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 29C2666358 for ; Fri, 2 Jan 2015 17:33:28 +0000 (UTC) Received: by mail-ig0-f181.google.com with SMTP id l13so16730159iga.14 for ; Fri, 02 Jan 2015 09:33:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=from:content-type:mime-version:subject:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=3h+M27K1X5wuJNLZpkTQdW5Ei18TIxVFymCh6mAcyXY=; b=FSlHrBe3Jj4X5zHgGrfF9csxFrWX9OhFtoFtTej8fkZwEIRPE/eJBoGRzxi+gQ+zox svUdIcOXakCabjcJB2TggYsunYMZufkcP5zju+7iLxTNH6KqdueKW8/F+m3Q5Mudi+t4 GVufs5mbq9YwSWOCQlaVYlOWGB3GJaHRhvgb4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:content-type:mime-version:subject :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=3h+M27K1X5wuJNLZpkTQdW5Ei18TIxVFymCh6mAcyXY=; b=YLZPzsEC/BXj5AVTclQkmqp6Kkx6FiT1RQ9rFKLkD18Fax+7uF+gzqma1gktZDmo+B ErhULnpE/zZVoZb5Fq7xjG73l5K9aCCy6umRnmdNVoyDR2rEDgqE5E49HeQe4vwFeA3h QLGPR1Mky/CDV4eENz9hSlGYFWOejZ+g680B+kllXxl6SsLNszo/ruDoHstvHS4ud5/6 5jXqiWpe+Tp/J68rEo1Ad4XeUSKC8tcqfwnHtrLzWyzB+vZNX1D9YxPWSV+CaZtZ8jv/ Y4PHnzvqVRguZQSTk7ZRrpSKYQK0E0Hl+hFchJGGnL/egxXRwoixOhJ15svvKXRsBgIN R2ug== X-Gm-Message-State: ALoCoQl3BIV3gI/PkhjGQS3RMbTebwqeeP3+NHC+v05Y1jtyplxSWKkY4f1gWF0BQDHyAkcjvbba X-Received: by 10.50.28.8 with SMTP id x8mr9051339igg.19.1420220007357; Fri, 02 Jan 2015 09:33:27 -0800 (PST) Received: from netflix-mac-wired.bsdimp.com ([50.253.99.174]) by mx.google.com with ESMTPSA id e63sm23089990ioe.15.2015.01.02.09.33.26 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 02 Jan 2015 09:33:26 -0800 (PST) From: Warner Losh X-Google-Original-From: Warner Losh Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Subject: Re: svn commit: r276499 - head/sys/conf In-Reply-To: <201501011007.t01A7wYW032884@svn.freebsd.org> Date: Fri, 2 Jan 2015 10:33:25 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <41CF0351-83A3-4D54-B308-32F310DCD3DA@gmail.com> References: <201501011007.t01A7wYW032884@svn.freebsd.org> To: Roman Divacky X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:33:28 -0000 This breaks building the kernel with clang 3.4.1 Warner > On Jan 1, 2015, at 3:07 AM, Roman Divacky = wrote: >=20 > Author: rdivacky > Date: Thu Jan 1 10:07:57 2015 > New Revision: 276499 > URL: https://svnweb.freebsd.org/changeset/base/276499 >=20 > Log: > LLVM integrated assembler can assemble these files just fine. >=20 > Modified: > head/sys/conf/Makefile.amd64 > head/sys/conf/Makefile.i386 > head/sys/conf/Makefile.pc98 >=20 > Modified: head/sys/conf/Makefile.amd64 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/conf/Makefile.amd64 Thu Jan 1 09:33:46 2015 = (r276498) > +++ head/sys/conf/Makefile.amd64 Thu Jan 1 10:07:57 2015 = (r276499) > @@ -37,11 +37,6 @@ INCLUDES+=3D -I$S/contrib/libfdt > CFLAGS+=3D -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer > .endif >=20 > -# XXX: clang integrated-as doesn't grok .codeNN directives yet > -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} > -ASM_CFLAGS.mpboot.S=3D ${CLANG_NO_IAS} > -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} > - > %BEFORE_DEPEND >=20 > %OBJS >=20 > Modified: head/sys/conf/Makefile.i386 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/conf/Makefile.i386 Thu Jan 1 09:33:46 2015 = (r276498) > +++ head/sys/conf/Makefile.i386 Thu Jan 1 10:07:57 2015 = (r276499) > @@ -32,11 +32,6 @@ S=3D ../../.. >=20 > INCLUDES+=3D -I$S/contrib/libfdt >=20 > -# XXX: clang integrated-as doesn't grok .codeNN directives yet > -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} > -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} > -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} > - > %BEFORE_DEPEND >=20 > %OBJS >=20 > Modified: head/sys/conf/Makefile.pc98 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/conf/Makefile.pc98 Thu Jan 1 09:33:46 2015 = (r276498) > +++ head/sys/conf/Makefile.pc98 Thu Jan 1 10:07:57 2015 = (r276499) > @@ -30,10 +30,6 @@ S=3D ../../.. > .endif > .include "$S/conf/kern.pre.mk" >=20 > -# XXX: clang integrated-as doesn't grok .codeNN directives yet > -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} > -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} > - > %BEFORE_DEPEND >=20 > %OBJS >=20 From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:33:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3A8874A1; Fri, 2 Jan 2015 17:33:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25A106635C; Fri, 2 Jan 2015 17:33:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02HXV6G028589; Fri, 2 Jan 2015 17:33:31 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02HXVfB028587; Fri, 2 Jan 2015 17:33:31 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501021733.t02HXVfB028587@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Fri, 2 Jan 2015 17:33:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276543 - in vendor/unbound/1.5.0: . iterator X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:33:31 -0000 Author: des Date: Fri Jan 2 17:33:30 2015 New Revision: 276543 URL: https://svnweb.freebsd.org/changeset/base/276543 Log: tag unbound 1.5.0 Added: vendor/unbound/1.5.0/ - copied from r276541, vendor/unbound/dist/ Replaced: vendor/unbound/1.5.0/iterator/iterator.c - copied unchanged from r276542, vendor/unbound/dist/iterator/iterator.c vendor/unbound/1.5.0/iterator/iterator.h - copied unchanged from r276542, vendor/unbound/dist/iterator/iterator.h Copied: vendor/unbound/1.5.0/iterator/iterator.c (from r276542, vendor/unbound/dist/iterator/iterator.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/unbound/1.5.0/iterator/iterator.c Fri Jan 2 17:33:30 2015 (r276543, copy of r276542, vendor/unbound/dist/iterator/iterator.c) @@ -0,0 +1,2996 @@ +/* + * iterator/iterator.c - iterative resolver DNS query response module + * + * Copyright (c) 2007, NLnet Labs. All rights reserved. + * + * This software is open source. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the NLNET LABS nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER 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. + */ + +/** + * \file + * + * This file contains a module that performs recusive iterative DNS query + * processing. + */ + +#include "config.h" +#include "iterator/iterator.h" +#include "iterator/iter_utils.h" +#include "iterator/iter_hints.h" +#include "iterator/iter_fwd.h" +#include "iterator/iter_donotq.h" +#include "iterator/iter_delegpt.h" +#include "iterator/iter_resptype.h" +#include "iterator/iter_scrub.h" +#include "iterator/iter_priv.h" +#include "validator/val_neg.h" +#include "services/cache/dns.h" +#include "services/cache/infra.h" +#include "util/module.h" +#include "util/netevent.h" +#include "util/net_help.h" +#include "util/regional.h" +#include "util/data/dname.h" +#include "util/data/msgencode.h" +#include "util/fptr_wlist.h" +#include "util/config_file.h" +#include "ldns/rrdef.h" +#include "ldns/wire2str.h" +#include "ldns/parseutil.h" +#include "ldns/sbuffer.h" + +int +iter_init(struct module_env* env, int id) +{ + struct iter_env* iter_env = (struct iter_env*)calloc(1, + sizeof(struct iter_env)); + if(!iter_env) { + log_err("malloc failure"); + return 0; + } + env->modinfo[id] = (void*)iter_env; + if(!iter_apply_cfg(iter_env, env->cfg)) { + log_err("iterator: could not apply configuration settings."); + return 0; + } + return 1; +} + +void +iter_deinit(struct module_env* env, int id) +{ + struct iter_env* iter_env; + if(!env || !env->modinfo[id]) + return; + iter_env = (struct iter_env*)env->modinfo[id]; + free(iter_env->target_fetch_policy); + priv_delete(iter_env->priv); + donotq_delete(iter_env->donotq); + free(iter_env); + env->modinfo[id] = NULL; +} + +/** new query for iterator */ +static int +iter_new(struct module_qstate* qstate, int id) +{ + struct iter_qstate* iq = (struct iter_qstate*)regional_alloc( + qstate->region, sizeof(struct iter_qstate)); + qstate->minfo[id] = iq; + if(!iq) + return 0; + memset(iq, 0, sizeof(*iq)); + iq->state = INIT_REQUEST_STATE; + iq->final_state = FINISHED_STATE; + iq->an_prepend_list = NULL; + iq->an_prepend_last = NULL; + iq->ns_prepend_list = NULL; + iq->ns_prepend_last = NULL; + iq->dp = NULL; + iq->depth = 0; + iq->num_target_queries = 0; + iq->num_current_queries = 0; + iq->query_restart_count = 0; + iq->referral_count = 0; + iq->sent_count = 0; + iq->wait_priming_stub = 0; + iq->refetch_glue = 0; + iq->dnssec_expected = 0; + iq->dnssec_lame_query = 0; + iq->chase_flags = qstate->query_flags; + /* Start with the (current) qname. */ + iq->qchase = qstate->qinfo; + outbound_list_init(&iq->outlist); + return 1; +} + +/** + * Transition to the next state. This can be used to advance a currently + * processing event. It cannot be used to reactivate a forEvent. + * + * @param iq: iterator query state + * @param nextstate The state to transition to. + * @return true. This is so this can be called as the return value for the + * actual process*State() methods. (Transitioning to the next state + * implies further processing). + */ +static int +next_state(struct iter_qstate* iq, enum iter_state nextstate) +{ + /* If transitioning to a "response" state, make sure that there is a + * response */ + if(iter_state_is_responsestate(nextstate)) { + if(iq->response == NULL) { + log_err("transitioning to response state sans " + "response."); + } + } + iq->state = nextstate; + return 1; +} + +/** + * Transition an event to its final state. Final states always either return + * a result up the module chain, or reactivate a dependent event. Which + * final state to transtion to is set in the module state for the event when + * it was created, and depends on the original purpose of the event. + * + * The response is stored in the qstate->buf buffer. + * + * @param iq: iterator query state + * @return false. This is so this method can be used as the return value for + * the processState methods. (Transitioning to the final state + */ +static int +final_state(struct iter_qstate* iq) +{ + return next_state(iq, iq->final_state); +} + +/** + * Callback routine to handle errors in parent query states + * @param qstate: query state that failed. + * @param id: module id. + * @param super: super state. + */ +static void +error_supers(struct module_qstate* qstate, int id, struct module_qstate* super) +{ + struct iter_qstate* super_iq = (struct iter_qstate*)super->minfo[id]; + + if(qstate->qinfo.qtype == LDNS_RR_TYPE_A || + qstate->qinfo.qtype == LDNS_RR_TYPE_AAAA) { + /* mark address as failed. */ + struct delegpt_ns* dpns = NULL; + if(super_iq->dp) + dpns = delegpt_find_ns(super_iq->dp, + qstate->qinfo.qname, qstate->qinfo.qname_len); + if(!dpns) { + /* not interested */ + verbose(VERB_ALGO, "subq error, but not interested"); + log_query_info(VERB_ALGO, "superq", &super->qinfo); + if(super_iq->dp) + delegpt_log(VERB_ALGO, super_iq->dp); + log_assert(0); + return; + } else { + /* see if the failure did get (parent-lame) info */ + if(!cache_fill_missing(super->env, + super_iq->qchase.qclass, super->region, + super_iq->dp)) + log_err("out of memory adding missing"); + } + dpns->resolved = 1; /* mark as failed */ + super_iq->num_target_queries--; + } + if(qstate->qinfo.qtype == LDNS_RR_TYPE_NS) { + /* prime failed to get delegation */ + super_iq->dp = NULL; + } + /* evaluate targets again */ + super_iq->state = QUERYTARGETS_STATE; + /* super becomes runnable, and will process this change */ +} + +/** + * Return an error to the client + * @param qstate: our query state + * @param id: module id + * @param rcode: error code (DNS errcode). + * @return: 0 for use by caller, to make notation easy, like: + * return error_response(..). + */ +static int +error_response(struct module_qstate* qstate, int id, int rcode) +{ + verbose(VERB_QUERY, "return error response %s", + sldns_lookup_by_id(sldns_rcodes, rcode)? + sldns_lookup_by_id(sldns_rcodes, rcode)->name:"??"); + qstate->return_rcode = rcode; + qstate->return_msg = NULL; + qstate->ext_state[id] = module_finished; + return 0; +} + +/** + * Return an error to the client and cache the error code in the + * message cache (so per qname, qtype, qclass). + * @param qstate: our query state + * @param id: module id + * @param rcode: error code (DNS errcode). + * @return: 0 for use by caller, to make notation easy, like: + * return error_response(..). + */ +static int +error_response_cache(struct module_qstate* qstate, int id, int rcode) +{ + /* store in cache */ + struct reply_info err; + if(qstate->prefetch_leeway > NORR_TTL) { + verbose(VERB_ALGO, "error response for prefetch in cache"); + /* attempt to adjust the cache entry prefetch */ + if(dns_cache_prefetch_adjust(qstate->env, &qstate->qinfo, + NORR_TTL)) + return error_response(qstate, id, rcode); + /* if that fails (not in cache), fall through to store err */ + } + memset(&err, 0, sizeof(err)); + err.flags = (uint16_t)(BIT_QR | BIT_RA); + FLAGS_SET_RCODE(err.flags, rcode); + err.qdcount = 1; + err.ttl = NORR_TTL; + err.prefetch_ttl = PREFETCH_TTL_CALC(err.ttl); + /* do not waste time trying to validate this servfail */ + err.security = sec_status_indeterminate; + verbose(VERB_ALGO, "store error response in message cache"); + iter_dns_store(qstate->env, &qstate->qinfo, &err, 0, 0, 0, NULL); + return error_response(qstate, id, rcode); +} + +/** check if prepend item is duplicate item */ +static int +prepend_is_duplicate(struct ub_packed_rrset_key** sets, size_t to, + struct ub_packed_rrset_key* dup) +{ + size_t i; + for(i=0; irk.type == dup->rk.type && + sets[i]->rk.rrset_class == dup->rk.rrset_class && + sets[i]->rk.dname_len == dup->rk.dname_len && + query_dname_compare(sets[i]->rk.dname, dup->rk.dname) + == 0) + return 1; + } + return 0; +} + +/** prepend the prepend list in the answer and authority section of dns_msg */ +static int +iter_prepend(struct iter_qstate* iq, struct dns_msg* msg, + struct regional* region) +{ + struct iter_prep_list* p; + struct ub_packed_rrset_key** sets; + size_t num_an = 0, num_ns = 0;; + for(p = iq->an_prepend_list; p; p = p->next) + num_an++; + for(p = iq->ns_prepend_list; p; p = p->next) + num_ns++; + if(num_an + num_ns == 0) + return 1; + verbose(VERB_ALGO, "prepending %d rrsets", (int)num_an + (int)num_ns); + sets = regional_alloc(region, (num_an+num_ns+msg->rep->rrset_count) * + sizeof(struct ub_packed_rrset_key*)); + if(!sets) + return 0; + /* ANSWER section */ + num_an = 0; + for(p = iq->an_prepend_list; p; p = p->next) { + sets[num_an++] = p->rrset; + } + memcpy(sets+num_an, msg->rep->rrsets, msg->rep->an_numrrsets * + sizeof(struct ub_packed_rrset_key*)); + /* AUTH section */ + num_ns = 0; + for(p = iq->ns_prepend_list; p; p = p->next) { + if(prepend_is_duplicate(sets+msg->rep->an_numrrsets+num_an, + num_ns, p->rrset) || prepend_is_duplicate( + msg->rep->rrsets+msg->rep->an_numrrsets, + msg->rep->ns_numrrsets, p->rrset)) + continue; + sets[msg->rep->an_numrrsets + num_an + num_ns++] = p->rrset; + } + memcpy(sets + num_an + msg->rep->an_numrrsets + num_ns, + msg->rep->rrsets + msg->rep->an_numrrsets, + (msg->rep->ns_numrrsets + msg->rep->ar_numrrsets) * + sizeof(struct ub_packed_rrset_key*)); + + /* NXDOMAIN rcode can stay if we prepended DNAME/CNAMEs, because + * this is what recursors should give. */ + msg->rep->rrset_count += num_an + num_ns; + msg->rep->an_numrrsets += num_an; + msg->rep->ns_numrrsets += num_ns; + msg->rep->rrsets = sets; + return 1; +} + +/** + * Add rrset to ANSWER prepend list + * @param qstate: query state. + * @param iq: iterator query state. + * @param rrset: rrset to add. + * @return false on failure (malloc). + */ +static int +iter_add_prepend_answer(struct module_qstate* qstate, struct iter_qstate* iq, + struct ub_packed_rrset_key* rrset) +{ + struct iter_prep_list* p = (struct iter_prep_list*)regional_alloc( + qstate->region, sizeof(struct iter_prep_list)); + if(!p) + return 0; + p->rrset = rrset; + p->next = NULL; + /* add at end */ + if(iq->an_prepend_last) + iq->an_prepend_last->next = p; + else iq->an_prepend_list = p; + iq->an_prepend_last = p; + return 1; +} + +/** + * Add rrset to AUTHORITY prepend list + * @param qstate: query state. + * @param iq: iterator query state. + * @param rrset: rrset to add. + * @return false on failure (malloc). + */ +static int +iter_add_prepend_auth(struct module_qstate* qstate, struct iter_qstate* iq, + struct ub_packed_rrset_key* rrset) +{ + struct iter_prep_list* p = (struct iter_prep_list*)regional_alloc( + qstate->region, sizeof(struct iter_prep_list)); + if(!p) + return 0; + p->rrset = rrset; + p->next = NULL; + /* add at end */ + if(iq->ns_prepend_last) + iq->ns_prepend_last->next = p; + else iq->ns_prepend_list = p; + iq->ns_prepend_last = p; + return 1; +} + +/** + * Given a CNAME response (defined as a response containing a CNAME or DNAME + * that does not answer the request), process the response, modifying the + * state as necessary. This follows the CNAME/DNAME chain and returns the + * final query name. + * + * sets the new query name, after following the CNAME/DNAME chain. + * @param qstate: query state. + * @param iq: iterator query state. + * @param msg: the response. + * @param mname: returned target new query name. + * @param mname_len: length of mname. + * @return false on (malloc) error. + */ +static int +handle_cname_response(struct module_qstate* qstate, struct iter_qstate* iq, + struct dns_msg* msg, uint8_t** mname, size_t* mname_len) +{ + size_t i; + /* Start with the (current) qname. */ + *mname = iq->qchase.qname; + *mname_len = iq->qchase.qname_len; + + /* Iterate over the ANSWER rrsets in order, looking for CNAMEs and + * DNAMES. */ + for(i=0; irep->an_numrrsets; i++) { + struct ub_packed_rrset_key* r = msg->rep->rrsets[i]; + /* If there is a (relevant) DNAME, add it to the list. + * We always expect there to be CNAME that was generated + * by this DNAME following, so we don't process the DNAME + * directly. */ + if(ntohs(r->rk.type) == LDNS_RR_TYPE_DNAME && + dname_strict_subdomain_c(*mname, r->rk.dname)) { + if(!iter_add_prepend_answer(qstate, iq, r)) + return 0; + continue; + } + + if(ntohs(r->rk.type) == LDNS_RR_TYPE_CNAME && + query_dname_compare(*mname, r->rk.dname) == 0) { + /* Add this relevant CNAME rrset to the prepend list.*/ + if(!iter_add_prepend_answer(qstate, iq, r)) + return 0; + get_cname_target(r, mname, mname_len); + } + + /* Other rrsets in the section are ignored. */ + } + /* add authority rrsets to authority prepend, for wildcarded CNAMEs */ + for(i=msg->rep->an_numrrsets; irep->an_numrrsets + + msg->rep->ns_numrrsets; i++) { + struct ub_packed_rrset_key* r = msg->rep->rrsets[i]; + /* only add NSEC/NSEC3, as they may be needed for validation */ + if(ntohs(r->rk.type) == LDNS_RR_TYPE_NSEC || + ntohs(r->rk.type) == LDNS_RR_TYPE_NSEC3) { + if(!iter_add_prepend_auth(qstate, iq, r)) + return 0; + } + } + return 1; +} + +/** + * Generate a subrequest. + * Generate a local request event. Local events are tied to this module, and + * have a correponding (first tier) event that is waiting for this event to + * resolve to continue. + * + * @param qname The query name for this request. + * @param qnamelen length of qname + * @param qtype The query type for this request. + * @param qclass The query class for this request. + * @param qstate The event that is generating this event. + * @param id: module id. + * @param iq: The iterator state that is generating this event. + * @param initial_state The initial response state (normally this + * is QUERY_RESP_STATE, unless it is known that the request won't + * need iterative processing + * @param finalstate The final state for the response to this request. + * @param subq_ret: if newly allocated, the subquerystate, or NULL if it does + * not need initialisation. + * @param v: if true, validation is done on the subquery. + * @return false on error (malloc). + */ +static int +generate_sub_request(uint8_t* qname, size_t qnamelen, uint16_t qtype, + uint16_t qclass, struct module_qstate* qstate, int id, + struct iter_qstate* iq, enum iter_state initial_state, + enum iter_state finalstate, struct module_qstate** subq_ret, int v) +{ + struct module_qstate* subq = NULL; + struct iter_qstate* subiq = NULL; + uint16_t qflags = 0; /* OPCODE QUERY, no flags */ + struct query_info qinf; + int prime = (finalstate == PRIME_RESP_STATE)?1:0; + qinf.qname = qname; + qinf.qname_len = qnamelen; + qinf.qtype = qtype; + qinf.qclass = qclass; + + /* RD should be set only when sending the query back through the INIT + * state. */ + if(initial_state == INIT_REQUEST_STATE) + qflags |= BIT_RD; + /* We set the CD flag so we can send this through the "head" of + * the resolution chain, which might have a validator. We are + * uninterested in validating things not on the direct resolution + * path. */ + if(!v) + qflags |= BIT_CD; + + /* attach subquery, lookup existing or make a new one */ + fptr_ok(fptr_whitelist_modenv_attach_sub(qstate->env->attach_sub)); + if(!(*qstate->env->attach_sub)(qstate, &qinf, qflags, prime, &subq)) { + return 0; + } + *subq_ret = subq; + if(subq) { + /* initialise the new subquery */ + subq->curmod = id; + subq->ext_state[id] = module_state_initial; + subq->minfo[id] = regional_alloc(subq->region, + sizeof(struct iter_qstate)); + if(!subq->minfo[id]) { + log_err("init subq: out of memory"); + fptr_ok(fptr_whitelist_modenv_kill_sub( + qstate->env->kill_sub)); + (*qstate->env->kill_sub)(subq); + return 0; + } + subiq = (struct iter_qstate*)subq->minfo[id]; + memset(subiq, 0, sizeof(*subiq)); + subiq->num_target_queries = 0; + subiq->num_current_queries = 0; + subiq->depth = iq->depth+1; + outbound_list_init(&subiq->outlist); + subiq->state = initial_state; + subiq->final_state = finalstate; + subiq->qchase = subq->qinfo; + subiq->chase_flags = subq->query_flags; + subiq->refetch_glue = 0; + } + return 1; +} + +/** + * Generate and send a root priming request. + * @param qstate: the qtstate that triggered the need to prime. + * @param iq: iterator query state. + * @param id: module id. + * @param qclass: the class to prime. + * @return 0 on failure + */ +static int +prime_root(struct module_qstate* qstate, struct iter_qstate* iq, int id, + uint16_t qclass) +{ + struct delegpt* dp; + struct module_qstate* subq; + verbose(VERB_DETAIL, "priming . %s NS", + sldns_lookup_by_id(sldns_rr_classes, (int)qclass)? + sldns_lookup_by_id(sldns_rr_classes, (int)qclass)->name:"??"); + dp = hints_lookup_root(qstate->env->hints, qclass); + if(!dp) { + verbose(VERB_ALGO, "Cannot prime due to lack of hints"); + return 0; + } + /* Priming requests start at the QUERYTARGETS state, skipping + * the normal INIT state logic (which would cause an infloop). */ + if(!generate_sub_request((uint8_t*)"\000", 1, LDNS_RR_TYPE_NS, + qclass, qstate, id, iq, QUERYTARGETS_STATE, PRIME_RESP_STATE, + &subq, 0)) { + verbose(VERB_ALGO, "could not prime root"); + return 0; + } + if(subq) { + struct iter_qstate* subiq = + (struct iter_qstate*)subq->minfo[id]; + /* Set the initial delegation point to the hint. + * copy dp, it is now part of the root prime query. + * dp was part of in the fixed hints structure. */ + subiq->dp = delegpt_copy(dp, subq->region); + if(!subiq->dp) { + log_err("out of memory priming root, copydp"); + fptr_ok(fptr_whitelist_modenv_kill_sub( + qstate->env->kill_sub)); + (*qstate->env->kill_sub)(subq); + return 0; + } + /* there should not be any target queries. */ + subiq->num_target_queries = 0; + subiq->dnssec_expected = iter_indicates_dnssec( + qstate->env, subiq->dp, NULL, subq->qinfo.qclass); + } + + /* this module stops, our submodule starts, and does the query. */ + qstate->ext_state[id] = module_wait_subquery; + return 1; +} + +/** + * Generate and process a stub priming request. This method tests for the + * need to prime a stub zone, so it is safe to call for every request. + * + * @param qstate: the qtstate that triggered the need to prime. + * @param iq: iterator query state. + * @param id: module id. + * @param qname: request name. + * @param qclass: request class. + * @return true if a priming subrequest was made, false if not. The will only + * issue a priming request if it detects an unprimed stub. + * Uses value of 2 to signal during stub-prime in root-prime situation + * that a noprime-stub is available and resolution can continue. + */ +static int +prime_stub(struct module_qstate* qstate, struct iter_qstate* iq, int id, + uint8_t* qname, uint16_t qclass) +{ + /* Lookup the stub hint. This will return null if the stub doesn't + * need to be re-primed. */ + struct iter_hints_stub* stub; + struct delegpt* stub_dp; + struct module_qstate* subq; + + if(!qname) return 0; + stub = hints_lookup_stub(qstate->env->hints, qname, qclass, iq->dp); + /* The stub (if there is one) does not need priming. */ + if(!stub) + return 0; + stub_dp = stub->dp; + + /* is it a noprime stub (always use) */ + if(stub->noprime) { + int r = 0; + if(iq->dp == NULL) r = 2; + /* copy the dp out of the fixed hints structure, so that + * it can be changed when servicing this query */ + iq->dp = delegpt_copy(stub_dp, qstate->region); + if(!iq->dp) { + log_err("out of memory priming stub"); + (void)error_response(qstate, id, LDNS_RCODE_SERVFAIL); + return 1; /* return 1 to make module stop, with error */ + } + log_nametypeclass(VERB_DETAIL, "use stub", stub_dp->name, + LDNS_RR_TYPE_NS, qclass); + return r; + } + + /* Otherwise, we need to (re)prime the stub. */ + log_nametypeclass(VERB_DETAIL, "priming stub", stub_dp->name, + LDNS_RR_TYPE_NS, qclass); + + /* Stub priming events start at the QUERYTARGETS state to avoid the + * redundant INIT state processing. */ + if(!generate_sub_request(stub_dp->name, stub_dp->namelen, + LDNS_RR_TYPE_NS, qclass, qstate, id, iq, + QUERYTARGETS_STATE, PRIME_RESP_STATE, &subq, 0)) { + verbose(VERB_ALGO, "could not prime stub"); + (void)error_response(qstate, id, LDNS_RCODE_SERVFAIL); + return 1; /* return 1 to make module stop, with error */ + } + if(subq) { + struct iter_qstate* subiq = + (struct iter_qstate*)subq->minfo[id]; + + /* Set the initial delegation point to the hint. */ + /* make copy to avoid use of stub dp by different qs/threads */ + subiq->dp = delegpt_copy(stub_dp, subq->region); + if(!subiq->dp) { + log_err("out of memory priming stub, copydp"); + fptr_ok(fptr_whitelist_modenv_kill_sub( + qstate->env->kill_sub)); + (*qstate->env->kill_sub)(subq); + (void)error_response(qstate, id, LDNS_RCODE_SERVFAIL); + return 1; /* return 1 to make module stop, with error */ + } + /* there should not be any target queries -- although there + * wouldn't be anyway, since stub hints never have + * missing targets. */ + subiq->num_target_queries = 0; + subiq->wait_priming_stub = 1; + subiq->dnssec_expected = iter_indicates_dnssec( + qstate->env, subiq->dp, NULL, subq->qinfo.qclass); + } + + /* this module stops, our submodule starts, and does the query. */ + qstate->ext_state[id] = module_wait_subquery; + return 1; +} + +/** + * Generate A and AAAA checks for glue that is in-zone for the referral + * we just got to obtain authoritative information on the adresses. + * + * @param qstate: the qtstate that triggered the need to prime. + * @param iq: iterator query state. + * @param id: module id. + */ +static void +generate_a_aaaa_check(struct module_qstate* qstate, struct iter_qstate* iq, + int id) +{ + struct iter_env* ie = (struct iter_env*)qstate->env->modinfo[id]; + struct module_qstate* subq; + size_t i; + struct reply_info* rep = iq->response->rep; + struct ub_packed_rrset_key* s; + log_assert(iq->dp); + + if(iq->depth == ie->max_dependency_depth) + return; + /* walk through additional, and check if in-zone, + * only relevant A, AAAA are left after scrub anyway */ + for(i=rep->an_numrrsets+rep->ns_numrrsets; irrset_count; i++) { + s = rep->rrsets[i]; + /* check *ALL* addresses that are transmitted in additional*/ + /* is it an address ? */ + if( !(ntohs(s->rk.type)==LDNS_RR_TYPE_A || + ntohs(s->rk.type)==LDNS_RR_TYPE_AAAA)) { + continue; + } + /* is this query the same as the A/AAAA check for it */ + if(qstate->qinfo.qtype == ntohs(s->rk.type) && + qstate->qinfo.qclass == ntohs(s->rk.rrset_class) && + query_dname_compare(qstate->qinfo.qname, + s->rk.dname)==0 && + (qstate->query_flags&BIT_RD) && + !(qstate->query_flags&BIT_CD)) + continue; + + /* generate subrequest for it */ + log_nametypeclass(VERB_ALGO, "schedule addr fetch", + s->rk.dname, ntohs(s->rk.type), + ntohs(s->rk.rrset_class)); + if(!generate_sub_request(s->rk.dname, s->rk.dname_len, + ntohs(s->rk.type), ntohs(s->rk.rrset_class), + qstate, id, iq, + INIT_REQUEST_STATE, FINISHED_STATE, &subq, 1)) { + verbose(VERB_ALGO, "could not generate addr check"); + return; + } + /* ignore subq - not need for more init */ + } +} + +/** + * Generate a NS check request to obtain authoritative information + * on an NS rrset. + * + * @param qstate: the qtstate that triggered the need to prime. + * @param iq: iterator query state. + * @param id: module id. + */ +static void +generate_ns_check(struct module_qstate* qstate, struct iter_qstate* iq, int id) +{ + struct iter_env* ie = (struct iter_env*)qstate->env->modinfo[id]; + struct module_qstate* subq; + log_assert(iq->dp); + + if(iq->depth == ie->max_dependency_depth) + return; + /* is this query the same as the nscheck? */ + if(qstate->qinfo.qtype == LDNS_RR_TYPE_NS && + query_dname_compare(iq->dp->name, qstate->qinfo.qname)==0 && + (qstate->query_flags&BIT_RD) && !(qstate->query_flags&BIT_CD)){ + /* spawn off A, AAAA queries for in-zone glue to check */ + generate_a_aaaa_check(qstate, iq, id); + return; + } + + log_nametypeclass(VERB_ALGO, "schedule ns fetch", + iq->dp->name, LDNS_RR_TYPE_NS, iq->qchase.qclass); + if(!generate_sub_request(iq->dp->name, iq->dp->namelen, + LDNS_RR_TYPE_NS, iq->qchase.qclass, qstate, id, iq, + INIT_REQUEST_STATE, FINISHED_STATE, &subq, 1)) { + verbose(VERB_ALGO, "could not generate ns check"); + return; + } + if(subq) { + struct iter_qstate* subiq = + (struct iter_qstate*)subq->minfo[id]; + + /* make copy to avoid use of stub dp by different qs/threads */ + /* refetch glue to start higher up the tree */ + subiq->refetch_glue = 1; + subiq->dp = delegpt_copy(iq->dp, subq->region); + if(!subiq->dp) { + log_err("out of memory generating ns check, copydp"); + fptr_ok(fptr_whitelist_modenv_kill_sub( + qstate->env->kill_sub)); + (*qstate->env->kill_sub)(subq); + return; + } + } +} + +/** + * Generate a DNSKEY prefetch query to get the DNSKEY for the DS record we + * just got in a referral (where we have dnssec_expected, thus have trust + * anchors above it). Note that right after calling this routine the + * iterator detached subqueries (because of following the referral), and thus + * the DNSKEY query becomes detached, its return stored in the cache for + * later lookup by the validator. This cache lookup by the validator avoids + * the roundtrip incurred by the DNSKEY query. The DNSKEY query is now + * performed at about the same time the original query is sent to the domain, + * thus the two answers are likely to be returned at about the same time, + * saving a roundtrip from the validated lookup. + * + * @param qstate: the qtstate that triggered the need to prime. + * @param iq: iterator query state. + * @param id: module id. + */ +static void +generate_dnskey_prefetch(struct module_qstate* qstate, + struct iter_qstate* iq, int id) +{ + struct module_qstate* subq; + log_assert(iq->dp); + + /* is this query the same as the prefetch? */ + if(qstate->qinfo.qtype == LDNS_RR_TYPE_DNSKEY && + query_dname_compare(iq->dp->name, qstate->qinfo.qname)==0 && + (qstate->query_flags&BIT_RD) && !(qstate->query_flags&BIT_CD)){ + return; + } + + /* if the DNSKEY is in the cache this lookup will stop quickly */ + log_nametypeclass(VERB_ALGO, "schedule dnskey prefetch", + iq->dp->name, LDNS_RR_TYPE_DNSKEY, iq->qchase.qclass); + if(!generate_sub_request(iq->dp->name, iq->dp->namelen, + LDNS_RR_TYPE_DNSKEY, iq->qchase.qclass, qstate, id, iq, + INIT_REQUEST_STATE, FINISHED_STATE, &subq, 0)) { + /* we'll be slower, but it'll work */ + verbose(VERB_ALGO, "could not generate dnskey prefetch"); + return; + } + if(subq) { + struct iter_qstate* subiq = + (struct iter_qstate*)subq->minfo[id]; + /* this qstate has the right delegation for the dnskey lookup*/ + /* make copy to avoid use of stub dp by different qs/threads */ + subiq->dp = delegpt_copy(iq->dp, subq->region); + /* if !subiq->dp, it'll start from the cache, no problem */ + } +} + +/** + * See if the query needs forwarding. + * + * @param qstate: query state. + * @param iq: iterator query state. + * @return true if the request is forwarded, false if not. + * If returns true but, iq->dp is NULL then a malloc failure occurred. + */ +static int +forward_request(struct module_qstate* qstate, struct iter_qstate* iq) +{ + struct delegpt* dp; + uint8_t* delname = iq->qchase.qname; + size_t delnamelen = iq->qchase.qname_len; + if(iq->refetch_glue) { + delname = iq->dp->name; + delnamelen = iq->dp->namelen; + } + /* strip one label off of DS query to lookup higher for it */ + if( (iq->qchase.qtype == LDNS_RR_TYPE_DS || iq->refetch_glue) + && !dname_is_root(iq->qchase.qname)) + dname_remove_label(&delname, &delnamelen); + dp = forwards_lookup(qstate->env->fwds, delname, iq->qchase.qclass); + if(!dp) + return 0; + /* send recursion desired to forward addr */ + iq->chase_flags |= BIT_RD; + iq->dp = delegpt_copy(dp, qstate->region); + /* iq->dp checked by caller */ + verbose(VERB_ALGO, "forwarding request"); + return 1; +} + +/** + * Process the initial part of the request handling. This state roughly + * corresponds to resolver algorithms steps 1 (find answer in cache) and 2 + * (find the best servers to ask). + * + * Note that all requests start here, and query restarts revisit this state. + * + * This state either generates: 1) a response, from cache or error, 2) a + * priming event, or 3) forwards the request to the next state (init2, + * generally). + * + * @param qstate: query state. + * @param iq: iterator query state. + * @param ie: iterator shared global environment. + * @param id: module id. + * @return true if the event needs more request processing immediately, + * false if not. + */ +static int +processInitRequest(struct module_qstate* qstate, struct iter_qstate* iq, + struct iter_env* ie, int id) +{ + uint8_t* delname; + size_t delnamelen; + struct dns_msg* msg; + + log_query_info(VERB_DETAIL, "resolving", &qstate->qinfo); + /* check effort */ + + /* We enforce a maximum number of query restarts. This is primarily a + * cheap way to prevent CNAME loops. */ + if(iq->query_restart_count > MAX_RESTART_COUNT) { + verbose(VERB_QUERY, "request has exceeded the maximum number" + " of query restarts with %d", iq->query_restart_count); + return error_response(qstate, id, LDNS_RCODE_SERVFAIL); + } + + /* We enforce a maximum recursion/dependency depth -- in general, + * this is unnecessary for dependency loops (although it will + * catch those), but it provides a sensible limit to the amount + * of work required to answer a given query. */ + verbose(VERB_ALGO, "request has dependency depth of %d", iq->depth); + if(iq->depth > ie->max_dependency_depth) { + verbose(VERB_QUERY, "request has exceeded the maximum " + "dependency depth with depth of %d", iq->depth); + return error_response(qstate, id, LDNS_RCODE_SERVFAIL); + } + + /* If the request is qclass=ANY, setup to generate each class */ + if(qstate->qinfo.qclass == LDNS_RR_CLASS_ANY) { + iq->qchase.qclass = 0; + return next_state(iq, COLLECT_CLASS_STATE); + } + + /* Resolver Algorithm Step 1 -- Look for the answer in local data. */ + + /* This either results in a query restart (CNAME cache response), a + * terminating response (ANSWER), or a cache miss (null). */ + + if(qstate->blacklist) { + /* if cache, or anything else, was blacklisted then + * getting older results from cache is a bad idea, no cache */ + verbose(VERB_ALGO, "cache blacklisted, going to the network"); + msg = NULL; + } else { + msg = dns_cache_lookup(qstate->env, iq->qchase.qname, + iq->qchase.qname_len, iq->qchase.qtype, + iq->qchase.qclass, qstate->region, qstate->env->scratch); + if(!msg && qstate->env->neg_cache) { + /* lookup in negative cache; may result in + * NOERROR/NODATA or NXDOMAIN answers that need validation */ + msg = val_neg_getmsg(qstate->env->neg_cache, &iq->qchase, + qstate->region, qstate->env->rrset_cache, + qstate->env->scratch_buffer, + *qstate->env->now, 1/*add SOA*/, NULL); + } + /* item taken from cache does not match our query name, thus + * security needs to be re-examined later */ + if(msg && query_dname_compare(qstate->qinfo.qname, + iq->qchase.qname) != 0) + msg->rep->security = sec_status_unchecked; + } + if(msg) { + /* handle positive cache response */ + enum response_type type = response_type_from_cache(msg, + &iq->qchase); + if(verbosity >= VERB_ALGO) { + log_dns_msg("msg from cache lookup", &msg->qinfo, + msg->rep); + verbose(VERB_ALGO, "msg ttl is %d, prefetch ttl %d", + (int)msg->rep->ttl, + (int)msg->rep->prefetch_ttl); + } + + if(type == RESPONSE_TYPE_CNAME) { + uint8_t* sname = 0; + size_t slen = 0; + verbose(VERB_ALGO, "returning CNAME response from " + "cache"); + if(!handle_cname_response(qstate, iq, msg, + &sname, &slen)) + return error_response(qstate, id, + LDNS_RCODE_SERVFAIL); + iq->qchase.qname = sname; + iq->qchase.qname_len = slen; + /* This *is* a query restart, even if it is a cheap + * one. */ + iq->dp = NULL; + iq->refetch_glue = 0; + iq->query_restart_count++; + iq->sent_count = 0; + sock_list_insert(&qstate->reply_origin, NULL, 0, qstate->region); + return next_state(iq, INIT_REQUEST_STATE); + } + + /* if from cache, NULL, else insert 'cache IP' len=0 */ + if(qstate->reply_origin) + sock_list_insert(&qstate->reply_origin, NULL, 0, qstate->region); + /* it is an answer, response, to final state */ + verbose(VERB_ALGO, "returning answer from cache."); + iq->response = msg; + return final_state(iq); + } + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:35:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A7F6563C; Fri, 2 Jan 2015 17:35:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 912A766376; Fri, 2 Jan 2015 17:35:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02HZV5e028923; Fri, 2 Jan 2015 17:35:31 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02HZUMt028915; Fri, 2 Jan 2015 17:35:30 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501021735.t02HZUMt028915@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Fri, 2 Jan 2015 17:35:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276544 - in vendor/unbound/dist: . compat contrib daemon dns64 doc iterator libunbound pythonmod services services/cache smallapp util util/data validator X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:35:31 -0000 Author: des Date: Fri Jan 2 17:35:29 2015 New Revision: 276544 URL: https://svnweb.freebsd.org/changeset/base/276544 Log: import unbound 1.5.1 Added: vendor/unbound/dist/contrib/aaaa-filter-iterator.patch Modified: vendor/unbound/dist/Makefile.in vendor/unbound/dist/compat/arc4_lock.c vendor/unbound/dist/compat/getentropy_linux.c vendor/unbound/dist/compat/getentropy_win.c vendor/unbound/dist/config.h.in vendor/unbound/dist/configure vendor/unbound/dist/configure.ac vendor/unbound/dist/contrib/README vendor/unbound/dist/daemon/cachedump.c vendor/unbound/dist/daemon/remote.c vendor/unbound/dist/daemon/unbound.c vendor/unbound/dist/daemon/worker.c vendor/unbound/dist/dns64/dns64.c vendor/unbound/dist/doc/Changelog vendor/unbound/dist/doc/README vendor/unbound/dist/doc/example.conf.in vendor/unbound/dist/doc/libunbound.3.in vendor/unbound/dist/doc/unbound-anchor.8.in vendor/unbound/dist/doc/unbound-checkconf.8.in vendor/unbound/dist/doc/unbound-control.8.in vendor/unbound/dist/doc/unbound-host.1.in vendor/unbound/dist/doc/unbound.8.in vendor/unbound/dist/doc/unbound.conf.5.in vendor/unbound/dist/iterator/iter_utils.c vendor/unbound/dist/iterator/iter_utils.h vendor/unbound/dist/iterator/iterator.c vendor/unbound/dist/iterator/iterator.h vendor/unbound/dist/libunbound/unbound.h vendor/unbound/dist/pythonmod/pythonmod_utils.c vendor/unbound/dist/services/cache/dns.c vendor/unbound/dist/services/cache/dns.h vendor/unbound/dist/services/mesh.c vendor/unbound/dist/services/mesh.h vendor/unbound/dist/smallapp/unbound-host.c vendor/unbound/dist/util/data/msgreply.c vendor/unbound/dist/util/data/msgreply.h vendor/unbound/dist/util/fptr_wlist.c vendor/unbound/dist/util/fptr_wlist.h vendor/unbound/dist/util/iana_ports.inc vendor/unbound/dist/util/module.h vendor/unbound/dist/util/net_help.c vendor/unbound/dist/validator/validator.c Modified: vendor/unbound/dist/Makefile.in ============================================================================== --- vendor/unbound/dist/Makefile.in Fri Jan 2 17:33:30 2015 (r276543) +++ vendor/unbound/dist/Makefile.in Fri Jan 2 17:35:29 2015 (r276544) @@ -80,7 +80,7 @@ LINTFLAGS+="-Dsigset_t=long" # FreeBSD LINTFLAGS+="-D__uint16_t=uint16_t" "-DEVP_PKEY_ASN1_METHOD=int" "-D_RuneLocale=int" "-D__va_list=va_list" -INSTALL=$(srcdir)/install-sh +INSTALL=$(SHELL) $(srcdir)/install-sh #pythonmod.c is not here, it is mentioned by itself in its own rules, #makedepend fails on missing interface.h otherwise. @@ -397,7 +397,7 @@ libunbound/python/libunbound_wrap.c: $(s # Pyunbound python unbound wrapper _unbound.la: libunbound_wrap.lo libunbound.la - $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -version-info @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) L. -L.libs -lunbound $(LIBS) + $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -avoid-version -no-undefined -shared -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) L. -L.libs -lunbound util/config_file.c: util/configparser.h util/configlexer.c: $(srcdir)/util/configlexer.lex util/configparser.h Modified: vendor/unbound/dist/compat/arc4_lock.c ============================================================================== --- vendor/unbound/dist/compat/arc4_lock.c Fri Jan 2 17:33:30 2015 (r276543) +++ vendor/unbound/dist/compat/arc4_lock.c Fri Jan 2 17:35:29 2015 (r276544) @@ -53,8 +53,10 @@ static int arc4lockinit = 0; void _ARC4_LOCK(void) { - if(!arc4lockinit) + if(!arc4lockinit) { + arc4lockinit = 1; lock_quick_init(&arc4lock); + } lock_quick_lock(&arc4lock); } Modified: vendor/unbound/dist/compat/getentropy_linux.c ============================================================================== --- vendor/unbound/dist/compat/getentropy_linux.c Fri Jan 2 17:33:30 2015 (r276543) +++ vendor/unbound/dist/compat/getentropy_linux.c Fri Jan 2 17:35:29 2015 (r276544) @@ -48,6 +48,7 @@ #include #include +#include #include #include #ifdef HAVE_GETAUXVAL @@ -77,7 +78,7 @@ extern int main(int, char *argv[]); #endif static int gotdata(char *buf, size_t len); static int getentropy_urandom(void *buf, size_t len); -#ifdef CTL_MAXNAME +#ifdef SYS__sysctl static int getentropy_sysctl(void *buf, size_t len); #endif static int getentropy_fallback(void *buf, size_t len); @@ -102,7 +103,7 @@ getentropy(void *buf, size_t len) if (ret != -1) return (ret); -#ifdef CTL_MAXNAME +#ifdef SYS__sysctl /* * Try to use sysctl CTL_KERN, KERN_RANDOM, RANDOM_UUID. * sysctl is a failsafe API, so it guarantees a result. This @@ -124,7 +125,7 @@ getentropy(void *buf, size_t len) ret = getentropy_sysctl(buf, len); if (ret != -1) return (ret); -#endif /* CTL_MAXNAME */ +#endif /* SYS__sysctl */ /* * Entropy collection via /dev/urandom and sysctl have failed. @@ -235,7 +236,7 @@ nodevrandom: return -1; } -#ifdef CTL_MAXNAME +#ifdef SYS__sysctl static int getentropy_sysctl(void *buf, size_t len) { @@ -265,7 +266,7 @@ sysctlfailed: errno = EIO; return -1; } -#endif /* CTL_MAXNAME */ +#endif /* SYS__sysctl */ static int cl[] = { CLOCK_REALTIME, Modified: vendor/unbound/dist/compat/getentropy_win.c ============================================================================== --- vendor/unbound/dist/compat/getentropy_win.c Fri Jan 2 17:33:30 2015 (r276543) +++ vendor/unbound/dist/compat/getentropy_win.c Fri Jan 2 17:35:29 2015 (r276544) @@ -41,9 +41,9 @@ getentropy(void *buf, size_t len) } if (CryptAcquireContext(&provider, NULL, NULL, PROV_RSA_FULL, - CRYPT_VERIFYCONTEXT) != 0) + CRYPT_VERIFYCONTEXT) == 0) goto fail; - if (CryptGenRandom(provider, len, buf) != 0) { + if (CryptGenRandom(provider, len, buf) == 0) { CryptReleaseContext(provider, 0); goto fail; } Modified: vendor/unbound/dist/config.h.in ============================================================================== --- vendor/unbound/dist/config.h.in Fri Jan 2 17:33:30 2015 (r276543) +++ vendor/unbound/dist/config.h.in Fri Jan 2 17:35:29 2015 (r276544) @@ -1,8 +1,5 @@ /* config.h.in. Generated from configure.ac by autoheader. */ -/* define if a library can reference the 'main' symbol */ -#undef CAN_REFERENCE_MAIN - /* Directory to chroot to */ #undef CHROOT_DIR Modified: vendor/unbound/dist/configure ============================================================================== --- vendor/unbound/dist/configure Fri Jan 2 17:33:30 2015 (r276543) +++ vendor/unbound/dist/configure Fri Jan 2 17:35:29 2015 (r276544) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.5.0. +# Generated by GNU Autoconf 2.69 for unbound 1.5.1. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.5.0' -PACKAGE_STRING='unbound 1.5.0' +PACKAGE_VERSION='1.5.1' +PACKAGE_STRING='unbound 1.5.1' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -1387,7 +1387,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.5.0 to adapt to many kinds of systems. +\`configure' configures unbound 1.5.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1452,7 +1452,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.5.0:";; + short | recursive ) echo "Configuration of unbound 1.5.1:";; esac cat <<\_ACEOF @@ -1627,7 +1627,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.5.0 +unbound configure 1.5.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2336,7 +2336,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.5.0, which was +It was created by unbound $as_me 1.5.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2688,7 +2688,7 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=5 -UNBOUND_VERSION_MICRO=0 +UNBOUND_VERSION_MICRO=1 LIBUNBOUND_CURRENT=5 @@ -2732,6 +2732,7 @@ LIBUNBOUND_AGE=3 # 1.4.21 had 4:1:2 # 1.4.22 had 4:1:2 # 1.5.0 had 5:3:3 # adds ub_ctx_add_ta_autr +# 1.5.1 had 5:4:3 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -18312,1411 +18313,6 @@ fi ;; esac - # generate libtool to test if linking main - # from a dynamic library works. - : ${CONFIG_LT=./config.lt} -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_LT" >&5 -$as_echo "$as_me: creating $CONFIG_LT" >&6;} -as_write_fail=0 -cat >"$CONFIG_LT" <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate a libtool stub with the current configuration. -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>"$CONFIG_LT" <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## --------------------------------- ## -## Main body of "$CONFIG_LT" script. ## -## --------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x "$CONFIG_LT" - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 - -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $0 [OPTIONS] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to ." - -lt_cl_version="\ -unbound config.lt 1.5.0 -configured by $0, generated by GNU Autoconf 2.69. - -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." - -while test $# != 0 -do - case $1 in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; - - -*) as_fn_error $? "unrecognized option: $1 -Try \`$0 --help' for more information." "$LINENO" 5 ;; - - *) as_fn_error $? "unrecognized argument: $1 -Try \`$0 --help' for more information." "$LINENO" 5 ;; - esac - shift -done - -if $lt_cl_silent; then - exec 6>/dev/null -fi -_LTEOF - -cat >>"$CONFIG_LT" <<_LTEOF - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -OBJDUMP \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -DLLTOOL \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -nm_file_list_spec \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - -_LTEOF - -cat >>"$CONFIG_LT" <<\_LTEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ofile" >&5 -$as_echo "$as_me: creating $ofile" >&6;} - - - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:36:08 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 62507763; Fri, 2 Jan 2015 17:36:08 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4AA2266382; Fri, 2 Jan 2015 17:36:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Ha8OV029104; Fri, 2 Jan 2015 17:36:08 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Ha87q029101; Fri, 2 Jan 2015 17:36:08 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501021736.t02Ha87q029101@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Fri, 2 Jan 2015 17:36:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276545 - in vendor/unbound/1.5.1: . compat contrib daemon dns64 doc iterator libunbound pythonmod services services/cache smallapp util util/data validator X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:36:08 -0000 Author: des Date: Fri Jan 2 17:36:07 2015 New Revision: 276545 URL: https://svnweb.freebsd.org/changeset/base/276545 Log: tag unbound 1.5.1 Added: vendor/unbound/1.5.1/ - copied from r276543, vendor/unbound/dist/ vendor/unbound/1.5.1/contrib/aaaa-filter-iterator.patch - copied unchanged from r276544, vendor/unbound/dist/contrib/aaaa-filter-iterator.patch Replaced: vendor/unbound/1.5.1/Makefile.in - copied unchanged from r276544, vendor/unbound/dist/Makefile.in vendor/unbound/1.5.1/compat/arc4_lock.c - copied unchanged from r276544, vendor/unbound/dist/compat/arc4_lock.c vendor/unbound/1.5.1/compat/getentropy_linux.c - copied unchanged from r276544, vendor/unbound/dist/compat/getentropy_linux.c vendor/unbound/1.5.1/compat/getentropy_win.c - copied unchanged from r276544, vendor/unbound/dist/compat/getentropy_win.c vendor/unbound/1.5.1/config.h.in - copied unchanged from r276544, vendor/unbound/dist/config.h.in vendor/unbound/1.5.1/configure - copied unchanged from r276544, vendor/unbound/dist/configure vendor/unbound/1.5.1/configure.ac - copied unchanged from r276544, vendor/unbound/dist/configure.ac vendor/unbound/1.5.1/contrib/README - copied unchanged from r276544, vendor/unbound/dist/contrib/README vendor/unbound/1.5.1/daemon/cachedump.c - copied unchanged from r276544, vendor/unbound/dist/daemon/cachedump.c vendor/unbound/1.5.1/daemon/remote.c - copied unchanged from r276544, vendor/unbound/dist/daemon/remote.c vendor/unbound/1.5.1/daemon/unbound.c - copied unchanged from r276544, vendor/unbound/dist/daemon/unbound.c vendor/unbound/1.5.1/daemon/worker.c - copied unchanged from r276544, vendor/unbound/dist/daemon/worker.c vendor/unbound/1.5.1/dns64/dns64.c - copied unchanged from r276544, vendor/unbound/dist/dns64/dns64.c vendor/unbound/1.5.1/doc/Changelog - copied unchanged from r276544, vendor/unbound/dist/doc/Changelog vendor/unbound/1.5.1/doc/README - copied unchanged from r276544, vendor/unbound/dist/doc/README vendor/unbound/1.5.1/doc/example.conf.in - copied unchanged from r276544, vendor/unbound/dist/doc/example.conf.in vendor/unbound/1.5.1/doc/libunbound.3.in - copied unchanged from r276544, vendor/unbound/dist/doc/libunbound.3.in vendor/unbound/1.5.1/doc/unbound-anchor.8.in - copied unchanged from r276544, vendor/unbound/dist/doc/unbound-anchor.8.in vendor/unbound/1.5.1/doc/unbound-checkconf.8.in - copied unchanged from r276544, vendor/unbound/dist/doc/unbound-checkconf.8.in vendor/unbound/1.5.1/doc/unbound-control.8.in - copied unchanged from r276544, vendor/unbound/dist/doc/unbound-control.8.in vendor/unbound/1.5.1/doc/unbound-host.1.in - copied unchanged from r276544, vendor/unbound/dist/doc/unbound-host.1.in vendor/unbound/1.5.1/doc/unbound.8.in - copied unchanged from r276544, vendor/unbound/dist/doc/unbound.8.in vendor/unbound/1.5.1/doc/unbound.conf.5.in - copied unchanged from r276544, vendor/unbound/dist/doc/unbound.conf.5.in vendor/unbound/1.5.1/iterator/iter_utils.c - copied unchanged from r276544, vendor/unbound/dist/iterator/iter_utils.c vendor/unbound/1.5.1/iterator/iter_utils.h - copied unchanged from r276544, vendor/unbound/dist/iterator/iter_utils.h vendor/unbound/1.5.1/iterator/iterator.c - copied unchanged from r276544, vendor/unbound/dist/iterator/iterator.c vendor/unbound/1.5.1/iterator/iterator.h - copied unchanged from r276544, vendor/unbound/dist/iterator/iterator.h vendor/unbound/1.5.1/libunbound/unbound.h - copied unchanged from r276544, vendor/unbound/dist/libunbound/unbound.h vendor/unbound/1.5.1/pythonmod/pythonmod_utils.c - copied unchanged from r276544, vendor/unbound/dist/pythonmod/pythonmod_utils.c vendor/unbound/1.5.1/services/cache/dns.c - copied unchanged from r276544, vendor/unbound/dist/services/cache/dns.c vendor/unbound/1.5.1/services/cache/dns.h - copied unchanged from r276544, vendor/unbound/dist/services/cache/dns.h vendor/unbound/1.5.1/services/mesh.c - copied unchanged from r276544, vendor/unbound/dist/services/mesh.c vendor/unbound/1.5.1/services/mesh.h - copied unchanged from r276544, vendor/unbound/dist/services/mesh.h vendor/unbound/1.5.1/smallapp/unbound-host.c - copied unchanged from r276544, vendor/unbound/dist/smallapp/unbound-host.c vendor/unbound/1.5.1/util/data/msgreply.c - copied unchanged from r276544, vendor/unbound/dist/util/data/msgreply.c vendor/unbound/1.5.1/util/data/msgreply.h - copied unchanged from r276544, vendor/unbound/dist/util/data/msgreply.h vendor/unbound/1.5.1/util/fptr_wlist.c - copied unchanged from r276544, vendor/unbound/dist/util/fptr_wlist.c vendor/unbound/1.5.1/util/fptr_wlist.h - copied unchanged from r276544, vendor/unbound/dist/util/fptr_wlist.h vendor/unbound/1.5.1/util/iana_ports.inc - copied unchanged from r276544, vendor/unbound/dist/util/iana_ports.inc vendor/unbound/1.5.1/util/module.h - copied unchanged from r276544, vendor/unbound/dist/util/module.h vendor/unbound/1.5.1/util/net_help.c - copied unchanged from r276544, vendor/unbound/dist/util/net_help.c vendor/unbound/1.5.1/validator/validator.c - copied unchanged from r276544, vendor/unbound/dist/validator/validator.c Copied: vendor/unbound/1.5.1/Makefile.in (from r276544, vendor/unbound/dist/Makefile.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/unbound/1.5.1/Makefile.in Fri Jan 2 17:36:07 2015 (r276545, copy of r276544, vendor/unbound/dist/Makefile.in) @@ -0,0 +1,1208 @@ +# Copyright 2007 NLnet Labs +# See the file LICENSE for the license + +SHELL=@SHELL@ +VERSION=@PACKAGE_VERSION@ +srcdir=@srcdir@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +bindir=@bindir@ +sbindir=@sbindir@ +mandir=@mandir@ +libdir=@libdir@ +# datarootdir is here to please some checkers, use datadir. +datarootdir=@datarootdir@ +datadir=@datadir@ +includedir=@includedir@ +doxygen=@doxygen@ +libtool=@libtool@ +staticexe=@staticexe@ +EXEEXT=@EXEEXT@ +configfile=@ub_conf_file@ +CHECKLOCK_SRC=testcode/checklocks.c +CHECKLOCK_OBJ=@CHECKLOCK_OBJ@ +DNSTAP_SRC=@DNSTAP_SRC@ +DNSTAP_OBJ=@DNSTAP_OBJ@ +WITH_PYTHONMODULE=@WITH_PYTHONMODULE@ +WITH_PYUNBOUND=@WITH_PYUNBOUND@ +PYTHON_SITE_PKG=@PYTHON_SITE_PKG@ +PYTHONMOD_INSTALL=@PYTHONMOD_INSTALL@ +PYTHONMOD_UNINSTALL=@PYTHONMOD_UNINSTALL@ +PYUNBOUND_INSTALL=@PYUNBOUND_INSTALL@ +PYUNBOUND_UNINSTALL=@PYUNBOUND_UNINSTALL@ +UNBOUND_EVENT_INSTALL=@UNBOUND_EVENT_INSTALL@ +UNBOUND_EVENT_UNINSTALL=@UNBOUND_EVENT_UNINSTALL@ +UNBOUND_VERSION_MAJOR=@UNBOUND_VERSION_MAJOR@ +UNBOUND_VERSION_MINOR=@UNBOUND_VERSION_MINOR@ +UNBOUND_VERSION_MICRO=@UNBOUND_VERSION_MICRO@ +ALLTARGET=@ALLTARGET@ +INSTALLTARGET=@INSTALLTARGET@ + +# _unbound.la if pyunbound enabled. +PYUNBOUND_TARGET=@PYUNBOUND_TARGET@ + +# override $U variable which is used by autotools for deansification (for +# K&R C compilers), but causes problems if $U is defined in the env). +U= + +PROTOC_C=@PROTOC_C@ +SWIG=@SWIG@ +YACC=@YACC@ +LEX=@LEX@ +STRIP=@STRIP@ +CC=@CC@ +CPPFLAGS=-I. @CPPFLAGS@ +CFLAGS=@CFLAGS@ +LDFLAGS=@LDFLAGS@ +LIBS=@LIBS@ +LIBOBJS=@LIBOBJS@ +# filter out ctime_r from compat obj. +LIBOBJ_WITHOUT_CTIME=@LIBOBJ_WITHOUT_CTIME@ +LIBOBJ_WITHOUT_CTIMEARC4=@LIBOBJ_WITHOUT_CTIMEARC4@ +RUNTIME_PATH=@RUNTIME_PATH@ +DEPFLAG=@DEPFLAG@ +DATE=@CONFIG_DATE@ +LIBTOOL=$(libtool) +BUILD=build/ +UBSYMS=@UBSYMS@ +EXTRALINK=@EXTRALINK@ + +WINDRES=@WINDRES@ +LINT=splint +LINTFLAGS=+quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc -Drlimit=rlimit64 -D__gnuc_va_list=va_list -formatcode +#-Dglob64=glob -Dglobfree64=globfree +# compat with openssl linux edition. +LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned" -D"ECDSA_SIG=DSA_SIG" -Dfstrm_res=int +# compat with NetBSD +LINTFLAGS+=@NETBSD_LINTFLAGS@ +# compat with OpenBSD +LINTFLAGS+="-Dsigset_t=long" +# FreeBSD +LINTFLAGS+="-D__uint16_t=uint16_t" "-DEVP_PKEY_ASN1_METHOD=int" "-D_RuneLocale=int" "-D__va_list=va_list" + +INSTALL=$(SHELL) $(srcdir)/install-sh + +#pythonmod.c is not here, it is mentioned by itself in its own rules, +#makedepend fails on missing interface.h otherwise. +PYTHONMOD_SRC=pythonmod/pythonmod_utils.c +# pythonmod.lo pythonmod_utils.lo if python mod enabled. +PYTHONMOD_OBJ=@PYTHONMOD_OBJ@ +PYTHONMOD_HEADER=@PYTHONMOD_HEADER@ +# libunbound/python/libunbound_wrap.c is dealt with by its own rules. +PYUNBOUND_SRC= +# libunbound_wrap.lo if python libunbound wrapper enabled. +PYUNBOUND_OBJ=@PYUNBOUND_OBJ@ +COMMON_SRC=services/cache/dns.c services/cache/infra.c services/cache/rrset.c \ +util/data/dname.c util/data/msgencode.c util/data/msgparse.c \ +util/data/msgreply.c util/data/packed_rrset.c iterator/iterator.c \ +iterator/iter_delegpt.c iterator/iter_donotq.c iterator/iter_fwd.c \ +iterator/iter_hints.c iterator/iter_priv.c iterator/iter_resptype.c \ +iterator/iter_scrub.c iterator/iter_utils.c services/listen_dnsport.c \ +services/localzone.c services/mesh.c services/modstack.c \ +services/outbound_list.c services/outside_network.c util/alloc.c \ +util/config_file.c util/configlexer.c util/configparser.c \ +util/fptr_wlist.c util/locks.c util/log.c util/mini_event.c util/module.c \ +util/netevent.c util/net_help.c util/random.c util/rbtree.c util/regional.c \ +util/rtt.c util/storage/dnstree.c util/storage/lookup3.c \ +util/storage/lruhash.c util/storage/slabhash.c util/timehist.c util/tube.c \ +util/winsock_event.c validator/autotrust.c validator/val_anchor.c \ +validator/validator.c validator/val_kcache.c validator/val_kentry.c \ +validator/val_neg.c validator/val_nsec3.c validator/val_nsec.c \ +validator/val_secalgo.c validator/val_sigcrypt.c \ +validator/val_utils.c dns64/dns64.c $(CHECKLOCK_SRC) $(DNSTAP_SRC) +COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \ +msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \ +iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \ +iter_scrub.lo iter_utils.lo localzone.lo mesh.lo modstack.lo \ +outbound_list.lo alloc.lo config_file.lo configlexer.lo configparser.lo \ +fptr_wlist.lo locks.lo log.lo mini_event.lo module.lo net_help.lo \ +random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \ +slabhash.lo timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo \ +validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \ +val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo \ +$(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) +COMMON_OBJ=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \ +outside_network.lo +# set to $COMMON_OBJ or to "" if --enableallsymbols +COMMON_OBJ_ALL_SYMBOLS=@COMMON_OBJ_ALL_SYMBOLS@ +COMPAT_SRC=compat/ctime_r.c compat/fake-rfc2553.c compat/gmtime_r.c \ +compat/inet_aton.c compat/inet_ntop.c compat/inet_pton.c compat/malloc.c \ +compat/memcmp.c compat/memmove.c compat/snprintf.c compat/strlcat.c \ +compat/strlcpy.c compat/strptime.c compat/getentropy_linux.c \ +compat/getentropy_osx.c compat/getentropy_solaris.c compat/getentropy_win.c \ +compat/explicit_bzero.c compat/arc4random.c compat/arc4random_uniform.c \ +compat/arc4_lock.c compat/sha512.c +COMPAT_OBJ=$(LIBOBJS:.o=.lo) +COMPAT_OBJ_WITHOUT_CTIME=$(LIBOBJ_WITHOUT_CTIME:.o=.lo) +COMPAT_OBJ_WITHOUT_CTIMEARC4=$(LIBOBJ_WITHOUT_CTIMEARC4:.o=.lo) +SLDNS_SRC=ldns/keyraw.c ldns/sbuffer.c ldns/wire2str.c ldns/parse.c \ +ldns/parseutil.c ldns/rrdef.c ldns/str2wire.c +SLDNS_OBJ=keyraw.lo sbuffer.lo wire2str.lo parse.lo parseutil.lo rrdef.lo \ +str2wire.lo +UNITTEST_SRC=testcode/unitanchor.c testcode/unitdname.c \ +testcode/unitlruhash.c testcode/unitmain.c testcode/unitmsgparse.c \ +testcode/unitneg.c testcode/unitregional.c testcode/unitslabhash.c \ +testcode/unitverify.c testcode/readhex.c testcode/testpkts.c testcode/unitldns.c +UNITTEST_OBJ=unitanchor.lo unitdname.lo unitlruhash.lo unitmain.lo \ +unitmsgparse.lo unitneg.lo unitregional.lo unitslabhash.lo unitverify.lo \ +readhex.lo testpkts.lo unitldns.lo +UNITTEST_OBJ_LINK=$(UNITTEST_OBJ) worker_cb.lo $(COMMON_OBJ) $(SLDNS_OBJ) \ +$(COMPAT_OBJ) +DAEMON_SRC=daemon/acl_list.c daemon/cachedump.c daemon/daemon.c \ +daemon/remote.c daemon/stats.c daemon/unbound.c daemon/worker.c @WIN_DAEMON_SRC@ +DAEMON_OBJ=acl_list.lo cachedump.lo daemon.lo remote.lo stats.lo unbound.lo \ +worker.lo @WIN_DAEMON_OBJ@ +DAEMON_OBJ_LINK=$(DAEMON_OBJ) $(COMMON_OBJ_ALL_SYMBOLS) $(SLDNS_OBJ) \ +$(COMPAT_OBJ) @WIN_DAEMON_OBJ_LINK@ +CHECKCONF_SRC=smallapp/unbound-checkconf.c smallapp/worker_cb.c +CHECKCONF_OBJ=unbound-checkconf.lo worker_cb.lo +CHECKCONF_OBJ_LINK=$(CHECKCONF_OBJ) $(COMMON_OBJ_ALL_SYMBOLS) $(SLDNS_OBJ) \ +$(COMPAT_OBJ) @WIN_CHECKCONF_OBJ_LINK@ +CONTROL_SRC=smallapp/unbound-control.c +CONTROL_OBJ=unbound-control.lo +CONTROL_OBJ_LINK=$(CONTROL_OBJ) worker_cb.lo $(COMMON_OBJ_ALL_SYMBOLS) \ +$(SLDNS_OBJ) $(COMPAT_OBJ) @WIN_CONTROL_OBJ_LINK@ +HOST_SRC=smallapp/unbound-host.c +HOST_OBJ=unbound-host.lo +HOST_OBJ_LINK=$(HOST_OBJ) $(SLDNS_OBJ) $(COMPAT_OBJ_WITHOUT_CTIMEARC4) @WIN_HOST_OBJ_LINK@ +UBANCHOR_SRC=smallapp/unbound-anchor.c +UBANCHOR_OBJ=unbound-anchor.lo +UBANCHOR_OBJ_LINK=$(UBANCHOR_OBJ) \ +$(COMPAT_OBJ_WITHOUT_CTIME) @WIN_UBANCHOR_OBJ_LINK@ +TESTBOUND_SRC=testcode/testbound.c testcode/testpkts.c \ +daemon/worker.c daemon/acl_list.c daemon/daemon.c daemon/stats.c \ +testcode/replay.c testcode/fake_event.c +TESTBOUND_OBJ=testbound.lo replay.lo fake_event.lo +TESTBOUND_OBJ_LINK=$(TESTBOUND_OBJ) testpkts.lo worker.lo acl_list.lo \ +daemon.lo stats.lo $(COMMON_OBJ_WITHOUT_NETCALL) $(SLDNS_OBJ) $(COMPAT_OBJ) +LOCKVERIFY_SRC=testcode/lock_verify.c +LOCKVERIFY_OBJ=lock_verify.lo +LOCKVERIFY_OBJ_LINK=$(LOCKVERIFY_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ) \ +$(SLDNS_OBJ) +PETAL_SRC=testcode/petal.c +PETAL_OBJ=petal.lo +PETAL_OBJ_LINK=$(PETAL_OBJ) $(COMPAT_OBJ_WITHOUT_CTIMEARC4) +PKTVIEW_SRC=testcode/pktview.c testcode/readhex.c +PKTVIEW_OBJ=pktview.lo +PKTVIEW_OBJ_LINK=$(PKTVIEW_OBJ) worker_cb.lo readhex.lo $(COMMON_OBJ) \ +$(COMPAT_OBJ) $(SLDNS_OBJ) +MEMSTATS_SRC=testcode/memstats.c +MEMSTATS_OBJ=memstats.lo +MEMSTATS_OBJ_LINK=$(MEMSTATS_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ) \ +$(SLDNS_OBJ) +ASYNCLOOK_SRC=testcode/asynclook.c +ASYNCLOOK_OBJ=asynclook.lo +ASYNCLOOK_OBJ_LINK=$(ASYNCLOOK_OBJ) log.lo locks.lo $(COMPAT_OBJ) +STREAMTCP_SRC=testcode/streamtcp.c +STREAMTCP_OBJ=streamtcp.lo +STREAMTCP_OBJ_LINK=$(STREAMTCP_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ) \ +$(SLDNS_OBJ) +PERF_SRC=testcode/perf.c +PERF_OBJ=perf.lo +PERF_OBJ_LINK=$(PERF_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ) $(SLDNS_OBJ) +DELAYER_SRC=testcode/delayer.c +DELAYER_OBJ=delayer.lo +DELAYER_OBJ_LINK=$(DELAYER_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ) \ +$(SLDNS_OBJ) +LIBUNBOUND_SRC=libunbound/context.c libunbound/libunbound.c \ +libunbound/libworker.c +LIBUNBOUND_OBJ=context.lo libunbound.lo libworker.lo +LIBUNBOUND_OBJ_LINK=$(LIBUNBOUND_OBJ) $(COMMON_OBJ) $(SLDNS_OBJ) $(COMPAT_OBJ) + +# win apps or "" if not on windows +WINAPPS=@WINAPPS@ +WIN_DAEMON_THE_SRC=winrc/win_svc.c winrc/w_inst.c +SVCINST_SRC=winrc/unbound-service-install.c +SVCINST_OBJ=unbound-service-install.lo +SVCINST_OBJ_LINK=$(SVCINST_OBJ) w_inst.lo rsrc_svcinst.o $(COMPAT_OBJ_WITHOUT_CTIME) +SVCUNINST_SRC=winrc/unbound-service-remove.c +SVCUNINST_OBJ=unbound-service-remove.lo +SVCUNINST_OBJ_LINK=$(SVCUNINST_OBJ) w_inst.lo rsrc_svcuninst.o \ +$(COMPAT_OBJ_WITHOUT_CTIME) +ANCHORUPD_SRC=winrc/anchor-update.c +ANCHORUPD_OBJ=anchor-update.lo +ANCHORUPD_OBJ_LINK=$(ANCHORUPD_OBJ) rsrc_anchorupd.o $(COMPAT_OBJ_WITHOUT_CTIME) +RSRC_OBJ=rsrc_svcinst.o rsrc_svcuninst.o rsrc_anchorupd.o rsrc_unbound.o \ + rsrc_unbound_host.o rsrc_unbound_anchor.o rsrc_unbound_control.o \ + rsrc_unbound_checkconf.o + +ALL_SRC=$(COMMON_SRC) $(UNITTEST_SRC) $(DAEMON_SRC) \ + $(TESTBOUND_SRC) $(LOCKVERIFY_SRC) $(PKTVIEW_SRC) \ + $(MEMSTATS_SRC) $(CHECKCONF_SRC) $(LIBUNBOUND_SRC) $(HOST_SRC) \ + $(ASYNCLOOK_SRC) $(STREAMTCP_SRC) $(PERF_SRC) $(DELAYER_SRC) \ + $(CONTROL_SRC) $(UBANCHOR_SRC) $(PETAL_SRC) \ + $(PYTHONMOD_SRC) $(PYUNBOUND_SRC) $(WIN_DAEMON_THE_SRC)\ + $(SVCINST_SRC) $(SVCUNINST_SRC) $(ANCHORUPD_SRC) $(SLDNS_SRC) +ALL_OBJ=$(COMMON_OBJ) $(UNITTEST_OBJ) $(DAEMON_OBJ) \ + $(TESTBOUND_OBJ) $(LOCKVERIFY_OBJ) $(PKTVIEW_OBJ) \ + $(MEMSTATS_OBJ) $(CHECKCONF_OBJ) $(LIBUNBOUND_OBJ) $(HOST_OBJ) \ + $(ASYNCLOOK_OBJ) $(STREAMTCP_OBJ) $(PERF_OBJ) $(DELAYER_OBJ) \ + $(CONTROL_OBJ) $(UBANCHOR_OBJ) $(PETAL_OBJ) \ + $(COMPAT_OBJ) $(PYUNBOUND_OBJ) \ + $(SVCINST_OBJ) $(SVCUNINST_OBJ) $(ANCHORUPD_OBJ) $(SLDNS_OBJ) + +COMPILE=$(LIBTOOL) --tag=CC --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) +LINK=$(LIBTOOL) --tag=CC --mode=link $(CC) $(staticexe) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) +LINK_LIB=$(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(staticexe) -version-info @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined + +.PHONY: clean realclean doc lint all install uninstall tests test strip lib longtest longcheck check alltargets + +all: $(COMMON_OBJ) $(ALLTARGET) + +alltargets: unbound$(EXEEXT) unbound-checkconf$(EXEEXT) lib unbound-host$(EXEEXT) unbound-control$(EXEEXT) unbound-anchor$(EXEEXT) unbound-control-setup $(WINAPPS) $(PYUNBOUND_TARGET) + +# compat with BSD make, register suffix, and an implicit rule to actualise it. +.SUFFIXES: .lo +.c.lo: + $(COMPILE) -o $@ -c $< + +$(ALL_OBJ): + @@SOURCEDETERMINE@ + $(COMPILE) -o $@ -c @SOURCEFILE@ + +$(RSRC_OBJ): + @@SOURCEDETERMINE@ + $(WINDRES) $(CPPFLAGS) @SOURCEFILE@ $@ + +rsrc_svcinst.o: $(srcdir)/winrc/rsrc_svcinst.rc config.h +rsrc_svcuninst.o: $(srcdir)/winrc/rsrc_svcuninst.rc config.h +rsrc_anchorupd.o: $(srcdir)/winrc/rsrc_anchorupd.rc config.h +rsrc_unbound.o: $(srcdir)/winrc/rsrc_unbound.rc config.h +rsrc_unbound_host.o: $(srcdir)/winrc/rsrc_unbound_host.rc config.h +rsrc_unbound_anchor.o: $(srcdir)/winrc/rsrc_unbound_anchor.rc config.h +rsrc_unbound_control.o: $(srcdir)/winrc/rsrc_unbound_control.rc config.h +rsrc_unbound_checkconf.o: $(srcdir)/winrc/rsrc_unbound_checkconf.rc config.h + +TEST_BIN=asynclook$(EXEEXT) delayer$(EXEEXT) \ + lock-verify$(EXEEXT) memstats$(EXEEXT) perf$(EXEEXT) \ + petal$(EXEEXT) pktview$(EXEEXT) streamtcp$(EXEEXT) \ + testbound$(EXEEXT) unittest$(EXEEXT) +tests: all $(TEST_BIN) + +check: test +longcheck: longtest + +test: unittest$(EXEEXT) testbound$(EXEEXT) + ./unittest$(EXEEXT) + ./testbound$(EXEEXT) -s + for x in testdata/*.rpl; do echo -n "$$x "; if ./testbound$(EXEEXT) -p $$x >/dev/null 2>&1; then echo OK; else echo failed; exit 1; fi done + @echo test OK + +longtest: tests + if test -x "`which bash`"; then bash testcode/do-tests.sh; else sh testcode/do-tests.sh; fi + +lib: libunbound.la unbound.h + +libunbound.la: $(LIBUNBOUND_OBJ_LINK) + $(LINK_LIB) $(UBSYMS) -o $@ $(LIBUNBOUND_OBJ_LINK) -rpath $(libdir) -lssl $(LIBS) + +unbound$(EXEEXT): $(DAEMON_OBJ_LINK) libunbound.la + $(LINK) -o $@ $(DAEMON_OBJ_LINK) $(EXTRALINK) -lssl $(LIBS) + +unbound-checkconf$(EXEEXT): $(CHECKCONF_OBJ_LINK) libunbound.la + $(LINK) -o $@ $(CHECKCONF_OBJ_LINK) $(EXTRALINK) -lssl $(LIBS) + +unbound-control$(EXEEXT): $(CONTROL_OBJ_LINK) libunbound.la + $(LINK) -o $@ $(CONTROL_OBJ_LINK) $(EXTRALINK) -lssl $(LIBS) + +unbound-host$(EXEEXT): $(HOST_OBJ_LINK) libunbound.la + $(LINK) -o $@ $(HOST_OBJ_LINK) -L. -L.libs -lunbound $(LIBS) + +unbound-anchor$(EXEEXT): $(UBANCHOR_OBJ_LINK) libunbound.la + $(LINK) -o $@ $(UBANCHOR_OBJ_LINK) -L. -L.libs -lunbound -lexpat -lssl $(LIBS) + +unbound-service-install$(EXEEXT): $(SVCINST_OBJ_LINK) + $(LINK) -o $@ $(SVCINST_OBJ_LINK) $(LIBS) + +unbound-service-remove$(EXEEXT): $(SVCUNINST_OBJ_LINK) + $(LINK) -o $@ $(SVCUNINST_OBJ_LINK) $(LIBS) + +anchor-update$(EXEEXT): $(ANCHORUPD_OBJ_LINK) libunbound.la + $(LINK) -o $@ $(ANCHORUPD_OBJ_LINK) -L. -L.libs -lunbound $(LIBS) + +unittest$(EXEEXT): $(UNITTEST_OBJ_LINK) + $(LINK) -o $@ $(UNITTEST_OBJ_LINK) -lssl $(LIBS) + +testbound$(EXEEXT): $(TESTBOUND_OBJ_LINK) + $(LINK) -o $@ $(TESTBOUND_OBJ_LINK) -lssl $(LIBS) + +lock-verify$(EXEEXT): $(LOCKVERIFY_OBJ_LINK) + $(LINK) -o $@ $(LOCKVERIFY_OBJ_LINK) -lssl $(LIBS) + +petal$(EXEEXT): $(PETAL_OBJ_LINK) + $(LINK) -o $@ $(PETAL_OBJ_LINK) -lssl $(LIBS) + +pktview$(EXEEXT): $(PKTVIEW_OBJ_LINK) + $(LINK) -o $@ $(PKTVIEW_OBJ_LINK) -lssl $(LIBS) + +memstats$(EXEEXT): $(MEMSTATS_OBJ_LINK) + $(LINK) -o $@ $(MEMSTATS_OBJ_LINK) -lssl $(LIBS) + +asynclook$(EXEEXT): $(ASYNCLOOK_OBJ_LINK) libunbound.la + $(LINK) -o $@ $(ASYNCLOOK_OBJ_LINK) $(LIBS) -L. -L.libs -lunbound + +streamtcp$(EXEEXT): $(STREAMTCP_OBJ_LINK) + $(LINK) -o $@ $(STREAMTCP_OBJ_LINK) -lssl $(LIBS) + +perf$(EXEEXT): $(PERF_OBJ_LINK) + $(LINK) -o $@ $(PERF_OBJ_LINK) -lssl $(LIBS) + +delayer$(EXEEXT): $(DELAYER_OBJ_LINK) + $(LINK) -o $@ $(DELAYER_OBJ_LINK) -lssl $(LIBS) + +signit$(EXEEXT): testcode/signit.c + $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ testcode/signit.c $(LDFLAGS) -lldns -lssl $(LIBS) + +unbound.h: $(srcdir)/libunbound/unbound.h + sed -e 's/@''UNBOUND_VERSION_MAJOR@/$(UNBOUND_VERSION_MAJOR)/' -e 's/@''UNBOUND_VERSION_MINOR@/$(UNBOUND_VERSION_MINOR)/' -e 's/@''UNBOUND_VERSION_MICRO@/$(UNBOUND_VERSION_MICRO)/' < $(srcdir)/libunbound/unbound.h > $@ + +unbound-control-setup: smallapp/unbound-control-setup.sh + cp smallapp/unbound-control-setup.sh $@ + -chmod +x $@ + +# dnstap +dnstap.lo dnstap.o: $(srcdir)/dnstap/dnstap.c config.h dnstap/dnstap_config.h \ + dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h + +dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h: $(srcdir)/dnstap/dnstap.proto + @-if test ! -d dnstap; then $(INSTALL) -d dnstap; fi + $(PROTOC_C) --c_out=. $(srcdir)/dnstap/dnstap.proto + +dnstap.pb-c.lo dnstap.pb-c.o: dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h + +# Python Module +pythonmod.lo pythonmod.o: $(srcdir)/pythonmod/pythonmod.c config.h \ + pythonmod/interface.h \ + $(srcdir)/pythonmod/pythonmod.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/config_file.h \ + $(srcdir)/pythonmod/pythonmod_utils.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + +pythonmod/interface.h: $(srcdir)/pythonmod/interface.i config.h + @-if test ! -d pythonmod; then $(INSTALL) -d pythonmod; fi + $(SWIG) $(CPPFLAGS) -o $@ -python $(srcdir)/pythonmod/interface.i + +libunbound_wrap.lo libunbound_wrap.o: libunbound/python/libunbound_wrap.c \ + unbound.h +libunbound/python/libunbound_wrap.c: $(srcdir)/libunbound/python/libunbound.i unbound.h + @-if test ! -d libunbound/python; then $(INSTALL) -d libunbound/python; fi + $(SWIG) -python -o $@ $(CPPFLAGS) $(srcdir)/libunbound/python/libunbound.i + +# Pyunbound python unbound wrapper +_unbound.la: libunbound_wrap.lo libunbound.la + $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -avoid-version -no-undefined -shared -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) L. -L.libs -lunbound + +util/config_file.c: util/configparser.h +util/configlexer.c: $(srcdir)/util/configlexer.lex util/configparser.h + @-if test ! -d util; then $(INSTALL) -d util; fi + if test "$(LEX)" != ":"; then \ + echo "#include \"config.h\"" > $@ ;\ + echo "#include \"util/configyyrename.h\"" >> $@ ;\ + $(LEX) -t $(srcdir)/util/configlexer.lex >> $@ ;\ + fi + +util/configparser.c util/configparser.h: $(srcdir)/util/configparser.y + @-if test ! -d util; then $(INSTALL) -d util; fi + $(YACC) -d -o util/configparser.c $(srcdir)/util/configparser.y + +clean: + rm -f *.o *.d *.lo *~ tags + rm -f unbound$(EXEEXT) unbound-checkconf$(EXEEXT) unbound-host$(EXEEXT) unbound-control$(EXEEXT) unbound-anchor$(EXEEXT) unbound-control-setup libunbound.la unbound.h + rm -f $(ALL_SRC:.c=.lint) + rm -f _unbound.la libunbound/python/libunbound_wrap.c libunbound/python/unbound.py pythonmod/interface.h pythonmod/unboundmodule.py + rm -rf autom4te.cache .libs build doc/html doc/xml + +realclean: clean + rm -f config.status config.log config.h.in config.h + rm -f configure config.sub config.guess ltmain.sh aclocal.m4 libtool + rm -f util/configlexer.c util/configparser.c util/configparser.h + rm -f doc/example.conf doc/libunbound.3 doc/unbound-anchor.8 doc/unbound-checkconf.8 doc/unbound-control.8 doc/unbound.8 doc/unbound.conf.5 + rm -f $(TEST_BIN) + rm -f Makefile + +.SUFFIXES: .lint +.c.lint: + $(LINT) $(LINTFLAGS) -I. -I$(srcdir) $< + touch $@ + +util/configparser.lint util/configlexer.lint pythonmod/pythonmod.lint libunbound/python/libunbound_wrap.lint dnstap/dnstap.pb-c.lint: + # skip lint for generated code + touch $@ + +winrc/win_svc.lint winrc/w_inst.lint winrc/unbound-service-install.lint winrc/unbound-service-remove.lint: + # skip lint for windows types + touch $@ + +lint: $(ALL_SRC:.c=.lint) + +tags: $(srcdir)/*.[ch] $(srcdir)/*/*.[ch] + ctags -f $(srcdir)/tags $(srcdir)/*.[ch] $(srcdir)/*/*.[ch] + +doc: + if test -n "$(doxygen)"; then \ + $(doxygen) $(srcdir)/doc/unbound.doxygen; fi + if test "$(WITH_PYUNBOUND)" = "yes" -o "$(WITH_PYTHONMODULE)" = "yes"; \ + then if test -x "`which sphinx-build 2>&1`"; then \ + sphinx-build -b html pythonmod/doc doc/html/pythonmod; \ + sphinx-build -b html libunbound/python/doc doc/html/pyunbound;\ + fi ;\ + fi + +strip: + $(STRIP) unbound$(EXEEXT) + $(STRIP) unbound-checkconf$(EXEEXT) + $(STRIP) unbound-control$(EXEEXT) + $(STRIP) unbound-host$(EXEEXT) + $(STRIP) unbound-anchor$(EXEEXT) + +pythonmod-install: + $(INSTALL) -m 755 -d $(DESTDIR)$(PYTHON_SITE_PKG) + $(INSTALL) -c -m 644 pythonmod/unboundmodule.py $(DESTDIR)$(PYTHON_SITE_PKG)/unboundmodule.py + +pyunbound-install: + $(INSTALL) -m 755 -d $(DESTDIR)$(PYTHON_SITE_PKG) + $(INSTALL) -c -m 644 $(srcdir)/libunbound/python/unbound.py $(DESTDIR)$(PYTHON_SITE_PKG)/unbound.py + $(LIBTOOL) --mode=install cp _unbound.la $(DESTDIR)$(PYTHON_SITE_PKG) + $(LIBTOOL) --mode=finish $(DESTDIR)$(PYTHON_SITE_PKG) + +unbound-event-install: + $(INSTALL) -m 755 -d $(DESTDIR)$(includedir) + $(LIBTOOL) --mode=install cp $(srcdir)/libunbound/unbound-event.h $(DESTDIR)$(includedir)/unbound-event.h + +install: $(INSTALLTARGET) + +install-lib: lib $(UNBOUND_EVENT_INSTALL) + $(INSTALL) -m 755 -d $(DESTDIR)$(libdir) + $(INSTALL) -m 755 -d $(DESTDIR)$(includedir) + $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) + $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man3 + $(INSTALL) -c -m 644 doc/libunbound.3 $(DESTDIR)$(mandir)/man3 + for mpage in ub_ctx ub_result ub_ctx_create ub_ctx_delete \ + ub_ctx_set_option ub_ctx_get_option ub_ctx_config ub_ctx_set_fwd \ + ub_ctx_resolvconf ub_ctx_hosts ub_ctx_add_ta ub_ctx_add_ta_file \ + ub_ctx_trustedkeys ub_ctx_debugout ub_ctx_debuglevel ub_ctx_async \ + ub_poll ub_wait ub_fd ub_process ub_resolve ub_resolve_async ub_cancel \ + ub_resolve_free ub_strerror ub_ctx_print_local_zones ub_ctx_zone_add \ + ub_ctx_zone_remove ub_ctx_data_add ub_ctx_data_remove; \ + do \ + echo ".so man3/libunbound.3" > $(DESTDIR)$(mandir)/man3/$$mpage.3 ; \ + done + $(LIBTOOL) --mode=install cp unbound.h $(DESTDIR)$(includedir)/unbound.h + $(LIBTOOL) --mode=install cp libunbound.la $(DESTDIR)$(libdir) + $(LIBTOOL) --mode=finish $(DESTDIR)$(libdir) + +install-all: all $(PYTHONMOD_INSTALL) $(PYUNBOUND_INSTALL) $(UNBOUND_EVENT_INSTALL) install-lib + $(INSTALL) -m 755 -d $(DESTDIR)$(sbindir) + $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) + $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man8 + $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man5 + $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 + $(LIBTOOL) --mode=install cp unbound$(EXEEXT) $(DESTDIR)$(sbindir)/unbound$(EXEEXT) + $(LIBTOOL) --mode=install cp unbound-checkconf$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-checkconf$(EXEEXT) + $(LIBTOOL) --mode=install cp unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT) + $(LIBTOOL) --mode=install cp unbound-host$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-host$(EXEEXT) + $(LIBTOOL) --mode=install cp unbound-anchor$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-anchor$(EXEEXT) + $(INSTALL) -c -m 644 doc/unbound.8 $(DESTDIR)$(mandir)/man8 + $(INSTALL) -c -m 644 doc/unbound-checkconf.8 $(DESTDIR)$(mandir)/man8 + $(INSTALL) -c -m 644 doc/unbound-control.8 $(DESTDIR)$(mandir)/man8 + $(INSTALL) -c -m 644 doc/unbound-control.8 $(DESTDIR)$(mandir)/man8/unbound-control-setup.8 + $(INSTALL) -c -m 644 doc/unbound-anchor.8 $(DESTDIR)$(mandir)/man8 + $(INSTALL) -c -m 644 doc/unbound.conf.5 $(DESTDIR)$(mandir)/man5 + $(INSTALL) -c -m 644 doc/unbound-host.1 $(DESTDIR)$(mandir)/man1 + $(INSTALL) -c -m 755 unbound-control-setup $(DESTDIR)$(sbindir)/unbound-control-setup + if test ! -e $(DESTDIR)$(configfile); then $(INSTALL) -d `dirname $(DESTDIR)$(configfile)`; $(INSTALL) -c -m 644 doc/example.conf $(DESTDIR)$(configfile); fi + +pythonmod-uninstall: + rm -f -- $(DESTDIR)$(PYTHON_SITE_PKG)/unboundmodule.py + +pyunbound-uninstall: + rm -f -- $(DESTDIR)$(PYTHON_SITE_PKG)/unbound.py + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(PYTHON_SITE_PKG)/_unbound.la + +unbound-event-uninstall: + rm -f -- $(DESTDIR)$(includedir)/unbound-event.h + +uninstall: $(PYTHONMOD_UNINSTALL) $(PYUNBOUND_UNINSTALL) $(UNBOUND_EVENT_UNINSTALL) + rm -f -- $(DESTDIR)$(sbindir)/unbound$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-checkconf$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-host$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-anchor$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control-setup + rm -f -- $(DESTDIR)$(mandir)/man8/unbound.8 $(DESTDIR)$(mandir)/man8/unbound-checkconf.8 $(DESTDIR)$(mandir)/man5/unbound.conf.5 $(DESTDIR)$(mandir)/man8/unbound-control.8 $(DESTDIR)$(mandir)/man8/unbound-anchor.8 $(DESTDIR)$(mandir)/man8/unbound-control-setup.8 + rm -f -- $(DESTDIR)$(mandir)/man1/unbound-host.1 $(DESTDIR)$(mandir)/man3/libunbound.3 + for mpage in ub_ctx ub_result ub_ctx_create ub_ctx_delete \ + ub_ctx_set_option ub_ctx_get_option ub_ctx_config ub_ctx_set_fwd \ + ub_ctx_resolvconf ub_ctx_hosts ub_ctx_add_ta ub_ctx_add_ta_file \ + ub_ctx_trustedkeys ub_ctx_debugout ub_ctx_debuglevel ub_ctx_async \ + ub_poll ub_wait ub_fd ub_process ub_resolve ub_resolve_async ub_cancel \ + ub_resolve_free ub_strerror ub_ctx_print_local_zones ub_ctx_zone_add \ + ub_ctx_zone_remove ub_ctx_data_add ub_ctx_data_remove; \ + do \ + rm -f -- $(DESTDIR)$(mandir)/man3/$$mpage.3 ; \ + done + rm -f -- $(DESTDIR)$(includedir)/unbound.h + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/libunbound.la + @echo + @echo "You still need to remove "`dirname $(DESTDIR)$(configfile)`" , $(DESTDIR)$(configfile) by hand" + +iana_update: + curl -o port-numbers.tmp http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml --compressed + if file port-numbers.tmp | grep 'gzip' >/dev/null; then zcat port-numbers.tmp; else cat port-numbers.tmp; fi | awk '// {p=0;} /udp/ {p=1;} /[^u]/ {p=0;} /Decomissioned|Decommissioned|Removed|De-registered|unassigned|Unassigned|Reserved/ {u=1;} // { if(u==1) {u=0;} else { if(p==1) { match($$0,/[0-9]+/); print substr($$0, RSTART, RLENGTH) ","}}}' | sort -nu > util/iana_ports.inc + rm -f port-numbers.tmp + +# dependency generation +DEPEND_TMP=depend1073.tmp +DEPEND_TMP2=depend1074.tmp +DEPEND_TARGET=Makefile +DEPEND_TARGET2=Makefile.in +# actions: generate deplines from gcc, +# then, filter out home/xx, /usr/xx and /opt/xx lines (some cc already do this) +# then, remove empty " \" lines +# then, add srcdir before .c and .h in deps. +# then, remove srcdir from the (generated) parser and lexer. +# and mention the .lo +depend: + (cd $(srcdir) ; $(CC) $(DEPFLAG) $(CPPFLAGS) $(CFLAGS) $(ALL_SRC) $(COMPAT_SRC)) | \ + sed -e 's!'$$HOME'[^ ]* !!g' -e 's!'$$HOME'[^ ]*$$!!g' \ + -e 's!/usr[^ ]* !!g' -e 's!/usr[^ ]*$$!!g' \ + -e 's!/opt[^ ]* !!g' -e 's!/opt[^ ]*$$!!g' | \ + sed -e '/^ \\$$/d' | \ + sed -e 's? *\([^ ]*\.[ch]\)? $$(srcdir)/\1?g' | \ + sed -e 's? *\([^ ]*\.inc\)? $$(srcdir)/\1?g' | \ + sed -e 's?$$(srcdir)/config.h?config.h?g' \ + -e 's?$$(srcdir)/util/configlexer.c?util/configlexer.c?g' \ + -e 's?$$(srcdir)/util/configparser.c?util/configparser.c?g' \ + -e 's?$$(srcdir)/util/configparser.h?util/configparser.h?g' \ + -e 's?$$(srcdir)/pythonmod/pythonmod.h?$$(PYTHONMOD_HEADER)?g' \ + -e 's!\(.*\)\.o[ :]*!\1.lo \1.o: !g' \ + > $(DEPEND_TMP) + cp $(DEPEND_TARGET) $(DEPEND_TMP2) + head -`egrep -n "# Dependencies" $(DEPEND_TARGET) | tail -1 | sed -e 's/:.*$$//'` $(DEPEND_TMP2) > $(DEPEND_TARGET) + cat $(DEPEND_TMP) >> $(DEPEND_TARGET) + @if diff $(DEPEND_TARGET) $(DEPEND_TMP2); then echo " $(DEPEND_TARGET) unchanged"; else echo " Updated $(DEPEND_TARGET))"; fi + @if test -f $(DEPEND_TARGET2); then \ + cp $(DEPEND_TARGET2) $(DEPEND_TMP2); \ + head -`egrep -n "# Dependencies" $(DEPEND_TARGET2) | tail -1 | sed -e 's/:.*$$//'` $(DEPEND_TMP2) > $(DEPEND_TARGET2); \ + cat $(DEPEND_TMP) >> $(DEPEND_TARGET2); \ + if diff $(DEPEND_TARGET2) $(DEPEND_TMP2); then echo " $(DEPEND_TARGET2) unchanged"; else echo " Updated $(DEPEND_TARGET2))"; fi; \ + fi + rm -f $(DEPEND_TMP) $(DEPEND_TMP2) + +# Dependencies +dns.lo dns.o: $(srcdir)/services/cache/dns.c config.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h +infra.lo infra.o: $(srcdir)/services/cache/infra.c config.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h +rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h +dname.lo dname.o: $(srcdir)/util/data/dname.c config.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/storage/lookup3.h $(srcdir)/ldns/sbuffer.h +msgencode.lo msgencode.o: $(srcdir)/util/data/msgencode.c config.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/ldns/sbuffer.h +msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c config.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/parseutil.h \ + $(srcdir)/ldns/wire2str.h +msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c config.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h +packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \ + $(srcdir)/util/net_help.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h +iterator.lo iterator.o: $(srcdir)/iterator/iterator.c config.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/iterator/iter_utils.h \ + $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_scrub.h $(srcdir)/iterator/iter_priv.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/config_file.h $(srcdir)/ldns/wire2str.h \ + $(srcdir)/ldns/parseutil.h $(srcdir)/ldns/sbuffer.h +iter_delegpt.lo iter_delegpt.o: $(srcdir)/iterator/iter_delegpt.c config.h $(srcdir)/iterator/iter_delegpt.h \ + $(srcdir)/util/log.h $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/sbuffer.h +iter_donotq.lo iter_donotq.o: $(srcdir)/iterator/iter_donotq.c config.h $(srcdir)/iterator/iter_donotq.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h +iter_fwd.lo iter_fwd.o: $(srcdir)/iterator/iter_fwd.c config.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/str2wire.h +iter_hints.lo iter_hints.o: $(srcdir)/iterator/iter_hints.c config.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/str2wire.h \ + $(srcdir)/ldns/wire2str.h +iter_priv.lo iter_priv.o: $(srcdir)/iterator/iter_priv.c config.h $(srcdir)/iterator/iter_priv.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/sbuffer.h +iter_resptype.lo iter_resptype.o: $(srcdir)/iterator/iter_resptype.c config.h \ + $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/pkthdr.h +iter_scrub.lo iter_scrub.o: $(srcdir)/iterator/iter_scrub.c config.h $(srcdir)/iterator/iter_scrub.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h $(srcdir)/ldns/sbuffer.h +iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_utils.c config.h $(srcdir)/iterator/iter_utils.h \ + $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_priv.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/ldns/sbuffer.h +listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/outside_network.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/ldns/sbuffer.h +localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h +mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h +modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h +outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/netevent.h +outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c config.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/services/modstack.h $(srcdir)/ldns/sbuffer.h \ + +alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h +config_file.lo config_file.o: $(srcdir)/util/config_file.c config.h $(srcdir)/util/log.h \ + $(srcdir)/util/configyyrename.h $(srcdir)/util/config_file.h util/configparser.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/parseutil.h \ + $(srcdir)/util/iana_ports.inc +configlexer.lo configlexer.o: util/configlexer.c config.h $(srcdir)/util/configyyrename.h \ + $(srcdir)/util/config_file.h util/configparser.h +configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/configyyrename.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h +fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \ + $(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h $(srcdir)/libunbound/libworker.h \ + $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h $(srcdir)/util/config_file.h +locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h +log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/ldns/sbuffer.h +mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h +module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h +netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/util/log.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h +net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/ldns/parseutil.h \ + $(srcdir)/ldns/wire2str.h \ + +random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h +rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h +regional.lo regional.o: $(srcdir)/util/regional.c config.h $(srcdir)/util/log.h $(srcdir)/util/regional.h +rtt.lo rtt.o: $(srcdir)/util/rtt.c config.h $(srcdir)/util/rtt.h +dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c config.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/net_help.h +lookup3.lo lookup3.o: $(srcdir)/util/storage/lookup3.c config.h $(srcdir)/util/storage/lookup3.h +lruhash.lo lruhash.o: $(srcdir)/util/storage/lruhash.c config.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h +slabhash.lo slabhash.o: $(srcdir)/util/storage/slabhash.c config.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h +timehist.lo timehist.o: $(srcdir)/util/timehist.c config.h $(srcdir)/util/timehist.h $(srcdir)/util/log.h +tube.lo tube.o: $(srcdir)/util/tube.c config.h $(srcdir)/util/tube.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h +winsock_event.lo winsock_event.o: $(srcdir)/util/winsock_event.c config.h +autotrust.lo autotrust.o: $(srcdir)/validator/autotrust.c config.h $(srcdir)/validator/autotrust.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/services/modstack.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/keyraw.h \ + +val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_sigcrypt.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/autotrust.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/str2wire.h +validator.lo validator.o: $(srcdir)/validator/validator.c config.h $(srcdir)/validator/validator.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/util/rbtree.h $(srcdir)/validator/val_kcache.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/autotrust.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/ldns/wire2str.h +val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h +val_kentry.lo val_kentry.o: $(srcdir)/validator/val_kentry.c config.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/keyraw.h \ + +val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/sbuffer.h +val_nsec3.lo val_nsec3.o: $(srcdir)/validator/val_nsec3.c config.h \ + $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/validator.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/validator/val_nsec.h $(srcdir)/ldns/sbuffer.h +val_nsec.lo val_nsec.o: $(srcdir)/validator/val_nsec.c config.h $(srcdir)/validator/val_nsec.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h +val_secalgo.lo val_secalgo.o: $(srcdir)/validator/val_secalgo.c config.h $(srcdir)/validator/val_secalgo.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/ldns/sbuffer.h \ + +val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/val_sigcrypt.c config.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/validator.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/parseutil.h $(srcdir)/ldns/wire2str.h \ + +val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h +dns64.lo dns64.o: $(srcdir)/dns64/dns64.c config.h $(srcdir)/dns64/dns64.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/regional.h +checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/checklocks.h +unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/rrdef.h +unitdname.lo unitdname.o: $(srcdir)/testcode/unitdname.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h +unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h +unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/random.h +unitmsgparse.lo unitmsgparse.o: $(srcdir)/testcode/unitmsgparse.c config.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/unitmain.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/testcode/readhex.h \ + $(srcdir)/testcode/testpkts.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h +unitneg.lo unitneg.o: $(srcdir)/testcode/unitneg.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/dname.h $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h \ + $(srcdir)/ldns/rrdef.h +unitregional.lo unitregional.o: $(srcdir)/testcode/unitregional.c config.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/log.h $(srcdir)/util/regional.h +unitslabhash.lo unitslabhash.o: $(srcdir)/testcode/unitslabhash.c config.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h +unitverify.lo unitverify.o: $(srcdir)/testcode/unitverify.c config.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/validator/val_secalgo.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h \ + $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/testcode/testpkts.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h +readhex.lo readhex.o: $(srcdir)/testcode/readhex.c config.h $(srcdir)/testcode/readhex.h $(srcdir)/util/log.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/parseutil.h +testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c config.h $(srcdir)/testcode/testpkts.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h +unitldns.lo unitldns.o: $(srcdir)/testcode/unitldns.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/wire2str.h +acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h +cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \ + $(srcdir)/daemon/cachedump.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h \ + $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h +daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ + $(srcdir)/util/net_help.h $(srcdir)/ldns/keyraw.h +remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \ + $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h $(srcdir)/ldns/str2wire.h \ + $(srcdir)/ldns/parseutil.h $(srcdir)/ldns/wire2str.h +stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \ + $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h +unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/util/net_help.h $(srcdir)/util/mini_event.h \ + $(srcdir)/util/rbtree.h +worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:42:47 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C054C914; Fri, 2 Jan 2015 17:42:47 +0000 (UTC) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 8274E664AE; Fri, 2 Jan 2015 17:42:47 +0000 (UTC) Received: from nine.des.no (smtp.des.no [194.63.250.102]) by smtp-int.des.no (Postfix) with ESMTP id 5F3229DA5; Fri, 2 Jan 2015 17:42:35 +0000 (UTC) Received: by nine.des.no (Postfix, from userid 1001) id AA7D05B55; Fri, 2 Jan 2015 18:42:32 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: src-committers@freebsd.org Subject: Re: svn commit: r276545 - in vendor/unbound/1.5.1: . compat contrib daemon dns64 doc iterator libunbound pythonmod services services/cache smallapp util util/data validator References: <201501021736.t02Ha87q029101@svn.freebsd.org> Date: Fri, 02 Jan 2015 18:42:32 +0100 In-Reply-To: <201501021736.t02Ha87q029101@svn.freebsd.org> (Dag-Erling SmXXrgrav's message of "Fri, 2 Jan 2015 17:36:08 +0000 (UTC)") Message-ID: <86387thyev.fsf@nine.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:42:47 -0000 Dag-Erling SmXXrgrav writes: > Log: > tag unbound 1.5.1 > > Added: > vendor/unbound/1.5.1/ > - copied from r276543, vendor/unbound/dist/ > vendor/unbound/1.5.1/contrib/aaaa-filter-iterator.patch > - copied unchanged from r276544, vendor/unbound/dist/contrib/aaaa-fi= lter-iterator.patch > Replaced: > vendor/unbound/1.5.1/Makefile.in > - copied unchanged from r276544, vendor/unbound/dist/Makefile.in > vendor/unbound/1.5.1/compat/arc4_lock.c > - copied unchanged from r276544, vendor/unbound/dist/compat/arc4_loc= k.c > [...] I seem to have 'svn cp'ed a mixed-revision working copy, which results in a complicated delta, although the outcome is correct. Sorry about that. I should have done a remote copy instead. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:45:55 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 108ABA67; Fri, 2 Jan 2015 17:45:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EF1DC664D6; Fri, 2 Jan 2015 17:45:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Hjsm1034453; Fri, 2 Jan 2015 17:45:54 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Hjrv6034434; Fri, 2 Jan 2015 17:45:53 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201501021745.t02Hjrv6034434@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Fri, 2 Jan 2015 17:45:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276546 - in stable/10/sys: amd64/amd64 arm/arm i386/i386 i386/include vm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:45:55 -0000 Author: alc Date: Fri Jan 2 17:45:52 2015 New Revision: 276546 URL: https://svnweb.freebsd.org/changeset/base/276546 Log: MFC r273701, r274556 By the time that pmap_init() runs, vm_phys_segs[] has been initialized. Obtaining the end of memory address from vm_phys_segs[] is a little easier than obtaining it from phys_avail[]. Enable the use of VM_PHYSSEG_SPARSE on amd64 and i386, making it the default on i386 PAE. (The use of VM_PHYSSEG_SPARSE on i386 PAE saves us some precious kernel virtual address space that would have been wasted on unused vm_page structures.) Modified: stable/10/sys/amd64/amd64/pmap.c stable/10/sys/arm/arm/pmap-v6.c stable/10/sys/i386/i386/pmap.c stable/10/sys/i386/include/vmparam.h stable/10/sys/vm/vm_page.c stable/10/sys/vm/vm_phys.c stable/10/sys/vm/vm_phys.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/amd64/pmap.c ============================================================================== --- stable/10/sys/amd64/amd64/pmap.c Fri Jan 2 17:36:07 2015 (r276545) +++ stable/10/sys/amd64/amd64/pmap.c Fri Jan 2 17:45:52 2015 (r276546) @@ -130,6 +130,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -836,6 +837,15 @@ pmap_bootstrap(vm_paddr_t *firstaddr) */ create_pagetables(firstaddr); + /* + * Add a physical memory segment (vm_phys_seg) corresponding to the + * preallocated kernel page table pages so that vm_page structures + * representing these pages will be created. The vm_page structures + * are required for promotion of the corresponding kernel virtual + * addresses to superpage mappings. + */ + vm_phys_add_seg(KPTphys, KPTphys + ptoa(nkpt)); + virtual_avail = (vm_offset_t) KERNBASE + *firstaddr; virtual_avail = pmap_kmem_choose(virtual_avail); @@ -1060,8 +1070,7 @@ pmap_init(void) /* * Calculate the size of the pv head table for superpages. */ - for (i = 0; phys_avail[i + 1]; i += 2); - pv_npg = round_2mpage(phys_avail[(i - 2) + 1]) / NBPDR; + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); /* * Allocate memory for the pv head table for superpages. Modified: stable/10/sys/arm/arm/pmap-v6.c ============================================================================== --- stable/10/sys/arm/arm/pmap-v6.c Fri Jan 2 17:36:07 2015 (r276545) +++ stable/10/sys/arm/arm/pmap-v6.c Fri Jan 2 17:45:52 2015 (r276546) @@ -172,6 +172,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -1342,9 +1343,10 @@ pmap_init(void) /* * Calculate the size of the pv head table for superpages. + * Handle the possibility that "vm_phys_segs[...].end" is zero. */ - for (i = 0; phys_avail[i + 1]; i += 2); - pv_npg = round_1mpage(phys_avail[(i - 2) + 1]) / NBPDR; + pv_npg = trunc_1mpage(vm_phys_segs[vm_phys_nsegs - 1].end - + PAGE_SIZE) / NBPDR + 1; /* * Allocate memory for the pv head table for superpages. Modified: stable/10/sys/i386/i386/pmap.c ============================================================================== --- stable/10/sys/i386/i386/pmap.c Fri Jan 2 17:36:07 2015 (r276545) +++ stable/10/sys/i386/i386/pmap.c Fri Jan 2 17:45:52 2015 (r276546) @@ -133,6 +133,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -374,6 +375,15 @@ pmap_bootstrap(vm_paddr_t firstaddr) int i; /* + * Add a physical memory segment (vm_phys_seg) corresponding to the + * preallocated kernel page table pages so that vm_page structures + * representing these pages will be created. The vm_page structures + * are required for promotion of the corresponding kernel virtual + * addresses to superpage mappings. + */ + vm_phys_add_seg(KPTphys, KPTphys + ptoa(nkpt)); + + /* * Initialize the first available kernel virtual address. However, * using "firstaddr" may waste a few pages of the kernel virtual * address space, because locore may not have mapped every physical @@ -778,9 +788,10 @@ pmap_init(void) /* * Calculate the size of the pv head table for superpages. + * Handle the possibility that "vm_phys_segs[...].end" is zero. */ - for (i = 0; phys_avail[i + 1]; i += 2); - pv_npg = round_4mpage(phys_avail[(i - 2) + 1]) / NBPDR; + pv_npg = trunc_4mpage(vm_phys_segs[vm_phys_nsegs - 1].end - + PAGE_SIZE) / NBPDR + 1; /* * Allocate memory for the pv head table for superpages. Modified: stable/10/sys/i386/include/vmparam.h ============================================================================== --- stable/10/sys/i386/include/vmparam.h Fri Jan 2 17:36:07 2015 (r276545) +++ stable/10/sys/i386/include/vmparam.h Fri Jan 2 17:45:52 2015 (r276546) @@ -64,9 +64,15 @@ #endif /* - * The physical address space is densely populated. + * Choose between DENSE and SPARSE based on whether lower execution time or + * lower kernel address space consumption is desired. Under PAE, kernel + * address space is often in short supply. */ +#ifdef PAE +#define VM_PHYSSEG_SPARSE +#else #define VM_PHYSSEG_DENSE +#endif /* * The number of PHYSSEG entries must be one greater than the number Modified: stable/10/sys/vm/vm_page.c ============================================================================== --- stable/10/sys/vm/vm_page.c Fri Jan 2 17:36:07 2015 (r276545) +++ stable/10/sys/vm/vm_page.c Fri Jan 2 17:45:52 2015 (r276546) @@ -307,9 +307,23 @@ vm_page_startup(vm_offset_t vaddr) phys_avail[i + 1] = trunc_page(phys_avail[i + 1]); } +#ifdef XEN + /* + * There is no obvious reason why i386 PV Xen needs vm_page structs + * created for these pseudo-physical addresses. XXX + */ + vm_phys_add_seg(0, phys_avail[0]); +#endif + low_water = phys_avail[0]; high_water = phys_avail[1]; + for (i = 0; i < vm_phys_nsegs; i++) { + if (vm_phys_segs[i].start < low_water) + low_water = vm_phys_segs[i].start; + if (vm_phys_segs[i].end > high_water) + high_water = vm_phys_segs[i].end; + } for (i = 0; phys_avail[i + 1]; i += 2) { vm_paddr_t size = phys_avail[i + 1] - phys_avail[i]; @@ -323,10 +337,6 @@ vm_page_startup(vm_offset_t vaddr) high_water = phys_avail[i + 1]; } -#ifdef XEN - low_water = 0; -#endif - end = phys_avail[biggestone+1]; /* @@ -394,6 +404,10 @@ vm_page_startup(vm_offset_t vaddr) first_page = low_water / PAGE_SIZE; #ifdef VM_PHYSSEG_SPARSE page_range = 0; + for (i = 0; i < vm_phys_nsegs; i++) { + page_range += atop(vm_phys_segs[i].end - + vm_phys_segs[i].start); + } for (i = 0; phys_avail[i + 1] != 0; i += 2) page_range += atop(phys_avail[i + 1] - phys_avail[i]); #elif defined(VM_PHYSSEG_DENSE) @@ -436,6 +450,13 @@ vm_page_startup(vm_offset_t vaddr) phys_avail[biggestone + 1] = new_end; /* + * Add physical memory segments corresponding to the available + * physical pages. + */ + for (i = 0; phys_avail[i + 1] != 0; i += 2) + vm_phys_add_seg(phys_avail[i], phys_avail[i + 1]); + + /* * Clear all of the page structures */ bzero((caddr_t) vm_page_array, page_range * sizeof(struct vm_page)); Modified: stable/10/sys/vm/vm_phys.c ============================================================================== --- stable/10/sys/vm/vm_phys.c Fri Jan 2 17:36:07 2015 (r276545) +++ stable/10/sys/vm/vm_phys.c Fri Jan 2 17:45:52 2015 (r276546) @@ -246,29 +246,19 @@ static void _vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end, int flind, int domain) { struct vm_phys_seg *seg; -#ifdef VM_PHYSSEG_SPARSE - long pages; - int segind; - pages = 0; - for (segind = 0; segind < vm_phys_nsegs; segind++) { - seg = &vm_phys_segs[segind]; - pages += atop(seg->end - seg->start); - } -#endif KASSERT(vm_phys_nsegs < VM_PHYSSEG_MAX, ("vm_phys_create_seg: increase VM_PHYSSEG_MAX")); KASSERT(domain < vm_ndomains, ("vm_phys_create_seg: invalid domain provided")); seg = &vm_phys_segs[vm_phys_nsegs++]; + while (seg > vm_phys_segs && (seg - 1)->start >= end) { + *seg = *(seg - 1); + seg--; + } seg->start = start; seg->end = end; seg->domain = domain; -#ifdef VM_PHYSSEG_SPARSE - seg->first_page = &vm_page_array[pages]; -#else - seg->first_page = PHYS_TO_VM_PAGE(start); -#endif seg->free_queues = &vm_phys_free_queues[domain][flind]; } @@ -302,47 +292,68 @@ vm_phys_create_seg(vm_paddr_t start, vm_ } /* - * Initialize the physical memory allocator. + * Add a physical memory segment. */ void -vm_phys_init(void) +vm_phys_add_seg(vm_paddr_t start, vm_paddr_t end) { - struct vm_freelist *fl; - int dom, flind, i, oind, pind; - for (i = 0; phys_avail[i + 1] != 0; i += 2) { + KASSERT((start & PAGE_MASK) == 0, + ("vm_phys_define_seg: start is not page aligned")); + KASSERT((end & PAGE_MASK) == 0, + ("vm_phys_define_seg: end is not page aligned")); #ifdef VM_FREELIST_ISADMA - if (phys_avail[i] < 16777216) { - if (phys_avail[i + 1] > 16777216) { - vm_phys_create_seg(phys_avail[i], 16777216, - VM_FREELIST_ISADMA); - vm_phys_create_seg(16777216, phys_avail[i + 1], - VM_FREELIST_DEFAULT); - } else { - vm_phys_create_seg(phys_avail[i], - phys_avail[i + 1], VM_FREELIST_ISADMA); - } - if (VM_FREELIST_ISADMA >= vm_nfreelists) - vm_nfreelists = VM_FREELIST_ISADMA + 1; + if (start < 16777216) { + if (end > 16777216) { + vm_phys_create_seg(start, 16777216, + VM_FREELIST_ISADMA); + vm_phys_create_seg(16777216, end, VM_FREELIST_DEFAULT); } else + vm_phys_create_seg(start, end, VM_FREELIST_ISADMA); + if (VM_FREELIST_ISADMA >= vm_nfreelists) + vm_nfreelists = VM_FREELIST_ISADMA + 1; + } else #endif #ifdef VM_FREELIST_HIGHMEM - if (phys_avail[i + 1] > VM_HIGHMEM_ADDRESS) { - if (phys_avail[i] < VM_HIGHMEM_ADDRESS) { - vm_phys_create_seg(phys_avail[i], - VM_HIGHMEM_ADDRESS, VM_FREELIST_DEFAULT); - vm_phys_create_seg(VM_HIGHMEM_ADDRESS, - phys_avail[i + 1], VM_FREELIST_HIGHMEM); - } else { - vm_phys_create_seg(phys_avail[i], - phys_avail[i + 1], VM_FREELIST_HIGHMEM); - } - if (VM_FREELIST_HIGHMEM >= vm_nfreelists) - vm_nfreelists = VM_FREELIST_HIGHMEM + 1; + if (end > VM_HIGHMEM_ADDRESS) { + if (start < VM_HIGHMEM_ADDRESS) { + vm_phys_create_seg(start, VM_HIGHMEM_ADDRESS, + VM_FREELIST_DEFAULT); + vm_phys_create_seg(VM_HIGHMEM_ADDRESS, end, + VM_FREELIST_HIGHMEM); } else + vm_phys_create_seg(start, end, VM_FREELIST_HIGHMEM); + if (VM_FREELIST_HIGHMEM >= vm_nfreelists) + vm_nfreelists = VM_FREELIST_HIGHMEM + 1; + } else +#endif + vm_phys_create_seg(start, end, VM_FREELIST_DEFAULT); +} + +/* + * Initialize the physical memory allocator. + */ +void +vm_phys_init(void) +{ + struct vm_freelist *fl; + struct vm_phys_seg *seg; +#ifdef VM_PHYSSEG_SPARSE + long pages; +#endif + int dom, flind, oind, pind, segind; + +#ifdef VM_PHYSSEG_SPARSE + pages = 0; +#endif + for (segind = 0; segind < vm_phys_nsegs; segind++) { + seg = &vm_phys_segs[segind]; +#ifdef VM_PHYSSEG_SPARSE + seg->first_page = &vm_page_array[pages]; + pages += atop(seg->end - seg->start); +#else + seg->first_page = PHYS_TO_VM_PAGE(seg->start); #endif - vm_phys_create_seg(phys_avail[i], phys_avail[i + 1], - VM_FREELIST_DEFAULT); } for (dom = 0; dom < vm_ndomains; dom++) { for (flind = 0; flind < vm_nfreelists; flind++) { Modified: stable/10/sys/vm/vm_phys.h ============================================================================== --- stable/10/sys/vm/vm_phys.h Fri Jan 2 17:36:07 2015 (r276545) +++ stable/10/sys/vm/vm_phys.h Fri Jan 2 17:45:52 2015 (r276546) @@ -69,6 +69,7 @@ extern int vm_phys_nsegs; * The following functions are only to be used by the virtual memory system. */ void vm_phys_add_page(vm_paddr_t pa); +void vm_phys_add_seg(vm_paddr_t start, vm_paddr_t end); vm_page_t vm_phys_alloc_contig(u_long npages, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary); vm_page_t vm_phys_alloc_freelist_pages(int flind, int pool, int order); From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 17:54:48 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1B271E78; Fri, 2 Jan 2015 17:54:48 +0000 (UTC) Received: from anubis.delphij.net (anubis.delphij.net [64.62.153.212]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id F22E966653; Fri, 2 Jan 2015 17:54:47 +0000 (UTC) Received: from zeta.ixsystems.com (unknown [12.229.62.2]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id B82121757E; Fri, 2 Jan 2015 09:54:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1420221281; x=1420235681; bh=3P/pjBpXTn9onY+CAyW0r/wDUfzUuFIbJ/BIg0jBg60=; h=Date:From:Reply-To:To:Subject:References:In-Reply-To; b=jO817TEaEhTWP7kblN39vWhmi8rGqSLe7gKXh+zGvOA6WlbCo1/PpZatDicaIf562 S6eiGgmcYw8UcvXORso4/tUCkFfmttkR/34NSAsxnNCYkg+Dwe15rWfIaBBVy5QgiO B2lLKhvF8N3L40t83swaXxf9+iaq8c3/u5Yf5ZQw= Message-ID: <54A6DB61.9060607@delphij.net> Date: Fri, 02 Jan 2015 09:54:41 -0800 From: Xin Li Reply-To: d@delphij.net Organization: The FreeBSD Project MIME-Version: 1.0 To: Steven Hartland , d@delphij.net, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r276123 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs References: <201412230931.sBN9VPMK017968@svn.freebsd.org> <54A35B88.9090102@delphij.net> <54A39153.8040905@freebsd.org> <54A3ACEF.70905@delphij.net> <54A5AC21.5070802@multiplay.co.uk> In-Reply-To: <54A5AC21.5070802@multiplay.co.uk> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 17:54:48 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 01/01/15 12:20, Steven Hartland wrote: > > On 31/12/2014 07:59, Xin Li wrote: >> Hi, Steven, >> >> On 12/30/14 22:01, Steven Hartland wrote: >>> On 31/12/2014 02:12, Xin Li wrote: >>>> On 12/23/14 01:31, Steven Hartland wrote: >>>>> Author: smh Date: Tue Dec 23 09:31:24 2014 New Revision: >>>>> 276123 URL: >>>>> https://svnweb.freebsd.org/changeset/base/276123 >>>>> >>>>> Log: Always sync the global ZFS config cache to reflect the >>>>> new mosconfig This fixes out of date zpool.cache for root >>>>> pools, which can cause issues such as confusion of zdb >>>>> etc. MFC after: 1 month >>>>> >>>>> Modified: >>>>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>>>> >>>>> >>>>> Modified: >>>>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>>>> >>>>> ============================================================================== >>>>> >>>>> >>>>> --- >>>>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>>>> >>>>> Tue Dec 23 08:51:30 2014 (r276122) >>>>> +++ >>>>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c >>>>> >>>>> Tue Dec 23 09:31:24 2014 (r276123) >>>>> @@ -536,8 +536,7 @@ spa_config_update(spa_t *spa, int >>>>> what) /* * Update the global config cache to reflect the >>>>> new mosconfig. */ - if (!spa->spa_is_root) - >>>>> spa_config_sync(spa, B_FALSE, what != >>>>> SPA_CONFIG_UPDATE_POOL); + spa_config_sync(spa, B_FALSE, >>>>> what != SPA_CONFIG_UPDATE_POOL); if (what == >>>>> SPA_CONFIG_UPDATE_POOL) spa_config_update(spa, >>>>> SPA_CONFIG_UPDATE_VDEVS); >>>> It seems like that this change breaks systems where not all >>>> pools are available (e.g. some of pools are encrypted) at >>>> boot time, by removing all these pools from the cache file. >>>> >>>> As a result, on the next boot, these pools would not be >>>> imported even when the devices are available (geli attached), >>>> and reverting this change would restore the system to its >>>> previous behavior. >>>> >>>> Perhaps it have exposed an existing bug? >>> I've managed to reproduce this here with mdX backed test pools, >>> and looking into it this is due to spa_config_sync: >>> >>> /* * Skip over our own pool if we're about to remove * >>> ourselves from the spa namespace or any pool that * is >>> readonly. Since we cannot guarantee that a * readonly pool >>> would successfully import upon reboot, * we don't allow them to >>> be written to the cache file. */ if ((spa == target && >>> removing) || !spa_writeable(spa)) { continue; } >>> >>> This was added by upstream: >>> https://github.com/illumos/illumos-gate/commit/fb02ae025247e3b662600e5a9c1b4c33ecab7d72 >>> >>> >>> >>> https://www.illumos.org/issues/3639 >>> >>> It seems the desired behavior was to exclude read only pools, >>> to prevent them being mounted writable on reboot, but the check >>> is too wide and also excludes unavailable pools too. >>> >>> The attached patch corrects the test to only check writable on >>> active pools so I believe should fix the issue your seeing. >>> >>> If you can test it and lmk that would be great. >> This is an improvement (the attaching of pool is now working) but >> the cached configuration is somewhat corrupted, it shows many >> lines of vdev_stats[] contents. >> >> I'll take a look at the code tomorrow and see if I can do some >> instruments and possibly figure out the underlying issue. >> >> Cheers, > Looks like the spa_config_sync makes the assumption that the last > call to spa_config_generate was done with getstats = 0. > > This is now an invalid assumption so we need to ensure that stats > are removed from the config nvl before persisting to disk. > > The attached patch, which supersedes the last one I sent, fixes > that in my tests here. > > Let me know if it fixes your test case too? Yes, this fixes the problem, thanks for working on it. I'm not fully convinced with the approach though -- shouldn't we update the cachefile (again) when the pool become available? Cheers, - -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.1.1 (FreeBSD) iQIcBAEBCgAGBQJUptteAAoJEJW2GBstM+nsrKIQAIGex0+PbAXgMzXgKh4dB+gw ZX2VN6XBFYsG0Eu7m0ZNDv5cdYayLEM5gL2RXd7XTLssDXFi7TecWOmrZydXawES vhc8uvjFboZN8jxlKBw+AL3gPaRx4IY05pX36DBo4Rnj+b2+A7HZFegdPUPrVMwS LZRk+ABrE3dobVu3QYtjBjNc+U6sAgDRJyewGslLQNITrwNyWXRM5O+NjGOitY3a +xlhmyuod2zNddz14oIDcJ/3Y7NUNlvSkldmLJhBnaX9WvLSVvBlK8J5fsZpwDAI TJ6kzUd97C4A7t5twX88zIHWhZMFqxsHXACQkpY5Uq3JIp5VVwPHLbuh7THmKi2e IiGVynGT9Agt0XwgeCQRRvD048cHX0MMnSIIo7VB1eXihMTXvcVxsZnaGS16lO5U H8uhegeB9EbFx/lcg+dGpVmbpjqQ+jbrxu0wBx1Gfj0KHe4t/ajkdTnUQuNpUV+o r/8R2uL1H33dYjDtJDRPTOJEttNDcssZSt7EM1Rp1UdlYpWgXVP/wiKf5o4Ad9yZ /H2PTczcHSqOUEvXFfLUmy+T0u1htHCzi6FqI+wBh9PMBbDtZhetWTfVbjy4GIQr AzmGESjzrj97WQWum7ArmtuWYLnOfbsAtgj8XO1q94OfYoaTAkreOQndym/l+lRG mfScLpmdOJtY+ghicS6l =97mC -----END PGP SIGNATURE----- From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:27:33 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E235F626; Fri, 2 Jan 2015 18:27:33 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CE5F61A73; Fri, 2 Jan 2015 18:27:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02IRXDd056566; Fri, 2 Jan 2015 18:27:33 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02IRX4U056565; Fri, 2 Jan 2015 18:27:33 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021827.t02IRX4U056565@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 18:27:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276547 - stable/10 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:27:34 -0000 Author: bapt Date: Fri Jan 2 18:27:32 2015 New Revision: 276547 URL: https://svnweb.freebsd.org/changeset/base/276547 Log: MFC: r276052,r276053 Build selective portions of gnu/usr.bin/texinfo as part of build-tools to ensure that building on a host without makeinfo (i.e. a host where make delete-old -DWITHOUT_INFO was run), then building with MK_INFO == yes doesn't manifest in build errors when building info pages This manifested itself like the following when I was build testing an MFC change on stable/10: makeinfo --no-split -I /usr/src/gnu/lib/libregex/doc -I /usr/src/gnu/lib/libregex/doc regex.texi -o regex.info makeinfo: not found *** [regex.info] Error code 127 make[6]: stopped in /usr/src/gnu/lib/libregex/doc 1 error Modified: stable/10/Makefile.inc1 Directory Properties: stable/10/ (props changed) Modified: stable/10/Makefile.inc1 ============================================================================== --- stable/10/Makefile.inc1 Fri Jan 2 17:45:52 2015 (r276546) +++ stable/10/Makefile.inc1 Fri Jan 2 18:27:32 2015 (r276547) @@ -1358,6 +1358,11 @@ _share= share/syscons/scrnmaps _gcc_tools= gnu/usr.bin/cc/cc_tools .endif +.if ${MK_INFO} != "no" +_texinfo= gnu/usr.bin/texinfo/libtxi \ + gnu/usr.bin/texinfo/makeinfo +.endif + .if ${MK_RESCUE} != "no" _rescue= rescue/rescue .endif @@ -1389,6 +1394,16 @@ build-tools: .MAKE ${MAKE} DIRPRFX=${_tool}/ depend && \ ${MAKE} DIRPRFX=${_tool}/ all .endfor +.for _tool in \ + ${_texinfo} + ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ + cd ${.CURDIR}/${_tool} && \ + ${MAKE} DIRPRFX=${_tool}/ obj && \ + ${MAKE} DIRPRFX=${_tool}/ depend && \ + ${MAKE} DIRPRFX=${_tool}/ all && \ + ${MAKE} DIRPRFX=${_tool}/ install DESTDIR=${WORLDTMP} +.endfor + # # kernel-tools: Build kernel-building tools From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:31:13 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DC21978A; Fri, 2 Jan 2015 18:31:13 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C79401B48; Fri, 2 Jan 2015 18:31:13 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02IVDCx058269; Fri, 2 Jan 2015 18:31:13 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02IVD1x058242; Fri, 2 Jan 2015 18:31:13 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501021831.t02IVD1x058242@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 18:31:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276548 - stable/10/lib/libc/regex X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:31:14 -0000 Author: delphij Date: Fri Jan 2 18:31:12 2015 New Revision: 276548 URL: https://svnweb.freebsd.org/changeset/base/276548 Log: MFC r275930: Plug a memory leak. Obtained from: DragonFlyBSD (commit 5119ece) Modified: stable/10/lib/libc/regex/regcomp.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/regex/regcomp.c ============================================================================== --- stable/10/lib/libc/regex/regcomp.c Fri Jan 2 18:27:32 2015 (r276547) +++ stable/10/lib/libc/regex/regcomp.c Fri Jan 2 18:31:12 2015 (r276548) @@ -1716,8 +1716,10 @@ computematchjumps(struct parse *p, struc } g->matchjump = (int*) malloc(g->mlen * sizeof(unsigned int)); - if (g->matchjump == NULL) /* Not a fatal error */ + if (g->matchjump == NULL) { /* Not a fatal error */ + free(pmatches); return; + } /* Set maximum possible jump for each character in the pattern */ for (mindex = 0; mindex < g->mlen; mindex++) From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:32:55 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 00FD88D1; Fri, 2 Jan 2015 18:32:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E0FB41BB1; Fri, 2 Jan 2015 18:32:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02IWsjH061193; Fri, 2 Jan 2015 18:32:54 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02IWsnk061192; Fri, 2 Jan 2015 18:32:54 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021832.t02IWsnk061192@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 18:32:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276549 - stable/9 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:32:55 -0000 Author: bapt Date: Fri Jan 2 18:32:53 2015 New Revision: 276549 URL: https://svnweb.freebsd.org/changeset/base/276549 Log: MFC: r276052,r276053 Build selective portions of gnu/usr.bin/texinfo as part of build-tools to ensure that building on a host without makeinfo (i.e. a host where make delete-old -DWITHOUT_INFO was run), then building with MK_INFO == yes doesn't manifest in build errors when building info pages This manifested itself like the following when I was build testing an MFC change on stable/10: makeinfo --no-split -I /usr/src/gnu/lib/libregex/doc -I /usr/src/gnu/lib/libregex/doc regex.texi -o regex.info makeinfo: not found *** [regex.info] Error code 127 make[6]: stopped in /usr/src/gnu/lib/libregex/doc 1 error Modified: stable/9/Makefile.inc1 (contents, props changed) Directory Properties: stable/9/ (props changed) Modified: stable/9/Makefile.inc1 ============================================================================== --- stable/9/Makefile.inc1 Fri Jan 2 18:31:12 2015 (r276548) +++ stable/9/Makefile.inc1 Fri Jan 2 18:32:53 2015 (r276549) @@ -1221,6 +1221,11 @@ _gcc_tools= gnu/usr.bin/cc/cc_tools _kerberos5_tools= kerberos5/tools .endif +.if ${MK_INFO} != "no" +_texinfo= gnu/usr.bin/texinfo/libtxi \ + gnu/usr.bin/texinfo/makeinfo +.endif + .if ${MK_RESCUE} != "no" _rescue= rescue/rescue .endif @@ -1253,6 +1258,16 @@ build-tools: ${MAKE} DIRPRFX=${_tool}/ depend; \ ${MAKE} DIRPRFX=${_tool}/ all .endfor +.for _tool in \ + ${_texinfo} + ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ + cd ${.CURDIR}/${_tool} && \ + ${MAKE} DIRPRFX=${_tool}/ obj && \ + ${MAKE} DIRPRFX=${_tool}/ depend && \ + ${MAKE} DIRPRFX=${_tool}/ all && \ + ${MAKE} DIRPRFX=${_tool}/ install DESTDIR=${WORLDTMP} +.endfor + # # cross-tools: Build cross-building tools From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:36:09 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5BD36A33; Fri, 2 Jan 2015 18:36:09 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 482A31BD8; Fri, 2 Jan 2015 18:36:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Ia959061960; Fri, 2 Jan 2015 18:36:09 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Ia92s061959; Fri, 2 Jan 2015 18:36:09 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201501021836.t02Ia92s061959@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Fri, 2 Jan 2015 18:36:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276550 - head/sys/compat/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:36:09 -0000 Author: dchagin Date: Fri Jan 2 18:36:08 2015 New Revision: 276550 URL: https://svnweb.freebsd.org/changeset/base/276550 Log: Remove Giant from linux_getcwd() due to VFS is MPSAFE now. Discussed with: kib MFC after: 1 week Modified: head/sys/compat/linux/linux_getcwd.c Modified: head/sys/compat/linux/linux_getcwd.c ============================================================================== --- head/sys/compat/linux/linux_getcwd.c Fri Jan 2 18:32:53 2015 (r276549) +++ head/sys/compat/linux/linux_getcwd.c Fri Jan 2 18:36:08 2015 (r276550) @@ -450,11 +450,8 @@ linux_getcwd(struct thread *td, struct l * limit it to N/2 vnodes for an N byte buffer. */ - mtx_lock(&Giant); error = linux_getcwd_common (td->td_proc->p_fd->fd_cdir, NULL, &bp, path, len/2, GETCWD_CHECK_ACCESS, td); - mtx_unlock(&Giant); - if (error) goto out; lenused = bend - bp; From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:45:07 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A76A8F3E; Fri, 2 Jan 2015 18:45:07 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 88F6D1D9F; Fri, 2 Jan 2015 18:45:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Ij7vA067438; Fri, 2 Jan 2015 18:45:07 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Ij3fX067411; Fri, 2 Jan 2015 18:45:03 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021845.t02Ij3fX067411@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 18:45:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276551 - in head: . contrib/texinfo gnu/usr.bin gnu/usr.bin/binutils gnu/usr.bin/binutils/doc gnu/usr.bin/cc gnu/usr.bin/cc/doc gnu/usr.bin/gdb gnu/usr.bin/gdb/doc gnu/usr.bin/grep gnu... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:45:07 -0000 Author: bapt Date: Fri Jan 2 18:45:03 2015 New Revision: 276551 URL: https://svnweb.freebsd.org/changeset/base/276551 Log: Remove GNU texinfo from base along with all info pages. To be able to info pages consider installing texinfo from ports print/texinfo or via pkg: pkg install texinfo Differential Revision: https://reviews.freebsd.org/D1409 Reviewed by: emaste, imp (previous version) Relnotes: yes Deleted: head/contrib/texinfo/ head/gnu/usr.bin/binutils/doc/ head/gnu/usr.bin/cc/doc/ head/gnu/usr.bin/gdb/doc/ head/gnu/usr.bin/grep/doc/ head/gnu/usr.bin/groff/doc/ head/gnu/usr.bin/texinfo/ head/kerberos5/doc/ head/lib/libcom_err/doc/ head/tools/build/options/WITH_INFO head/usr.sbin/amd/doc/ Modified: head/Makefile.inc1 head/ObsoleteFiles.inc head/UPDATING head/gnu/usr.bin/Makefile head/gnu/usr.bin/binutils/Makefile head/gnu/usr.bin/cc/Makefile head/gnu/usr.bin/gdb/Makefile head/gnu/usr.bin/grep/Makefile head/gnu/usr.bin/groff/Makefile head/kerberos5/Makefile head/lib/libcom_err/Makefile head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.sbin/amd/Makefile Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Fri Jan 2 18:36:08 2015 (r276550) +++ head/Makefile.inc1 Fri Jan 2 18:45:03 2015 (r276551) @@ -260,7 +260,7 @@ BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \ DESTDIR= \ BOOTSTRAPPING=${OSRELDATE} \ SSP_CFLAGS= \ - MK_HTML=no MK_INFO=no NO_LINT=yes MK_MAN=no \ + MK_HTML=no NO_LINT=yes MK_MAN=no \ -DNO_PIC MK_PROFILE=no -DNO_SHARED \ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \ MK_CLANG_EXTRAS=no MK_CLANG_FULL=no \ @@ -293,7 +293,7 @@ KTMAKE= TOOLS_PREFIX=${WORLDTMP} MAKEOB DESTDIR= \ BOOTSTRAPPING=${OSRELDATE} \ SSP_CFLAGS= \ - MK_HTML=no MK_INFO=no -DNO_LINT MK_MAN=no \ + MK_HTML=no -DNO_LINT MK_MAN=no \ -DNO_PIC MK_PROFILE=no -DNO_SHARED \ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no @@ -438,7 +438,7 @@ LIB32WMAKEFLAGS+= CC="${XCC} ${LIB32FLAG MK_TESTS=no LIB32WMAKE= ${LIB32WMAKEENV} ${MAKE} ${LIB32WMAKEFLAGS} \ - MK_MAN=no MK_INFO=no MK_HTML=no + MK_MAN=no MK_HTML=no LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} \ MK_TOOLCHAIN=no ${IMAKE_INSTALL} .endif @@ -590,7 +590,7 @@ _libraries: @echo ">>> stage 4.2: building libraries" @echo "--------------------------------------------------------------" ${_+_}cd ${.CURDIR}; \ - ${WMAKE} -DNO_FSCHG MK_HTML=no MK_INFO=no -DNO_LINT MK_MAN=no \ + ${WMAKE} -DNO_FSCHG MK_HTML=no -DNO_LINT MK_MAN=no \ MK_PROFILE=no MK_TESTS=no MK_TESTS_SUPPORT=${MK_TESTS} libraries _depend: @echo @@ -784,9 +784,6 @@ __installcheck_UGID: # # Required install tools to be saved in a scratch dir for safety. # -.if ${MK_INFO} != "no" -_install-info= install-info -.endif .if ${MK_ZONEINFO} != "no" _zoneinfo= zic tzsetup .endif @@ -1367,11 +1364,6 @@ _share= share/syscons/scrnmaps _gcc_tools= gnu/usr.bin/cc/cc_tools .endif -.if ${MK_INFO} != "no" -_texinfo= gnu/usr.bin/texinfo/libtxi \ - gnu/usr.bin/texinfo/makeinfo -.endif - .if ${MK_RESCUE} != "no" _rescue= rescue/rescue .endif @@ -1403,16 +1395,6 @@ build-tools: .MAKE ${MAKE} DIRPRFX=${_tool}/ depend && \ ${MAKE} DIRPRFX=${_tool}/ all .endfor -.for _tool in \ - ${_texinfo} - ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ - cd ${.CURDIR}/${_tool} && \ - ${MAKE} DIRPRFX=${_tool}/ obj && \ - ${MAKE} DIRPRFX=${_tool}/ depend && \ - ${MAKE} DIRPRFX=${_tool}/ all && \ - ${MAKE} DIRPRFX=${_tool}/ install DESTDIR=${WORLDTMP} -.endfor - # # kernel-tools: Build kernel-building tools @@ -1495,7 +1477,7 @@ NXBMAKE= ${NXBENV} ${MAKE} \ MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \ MK_GDB=no MK_TESTS=no \ SSP_CFLAGS= \ - MK_HTML=no MK_INFO=no NO_LINT=yes MK_MAN=no \ + MK_HTML=no NO_LINT=yes MK_MAN=no \ -DNO_PIC MK_PROFILE=no -DNO_SHARED \ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \ MK_CLANG_EXTRAS=no MK_CLANG_FULL=no \ @@ -2024,7 +2006,7 @@ XDEV_CPUTYPE?=${CPUTYPE} XDEV_CPUTYPE?=${TARGET_CPUTYPE} .endif -NOFUN=-DNO_FSCHG MK_HTML=no MK_INFO=no -DNO_LINT \ +NOFUN=-DNO_FSCHG MK_HTML=no -DNO_LINT \ MK_MAN=no MK_NLS=no MK_PROFILE=no \ MK_KERBEROS=no MK_RESCUE=no MK_TESTS=no MK_WARNS=no \ TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Fri Jan 2 18:36:08 2015 (r276550) +++ head/ObsoleteFiles.inc Fri Jan 2 18:45:03 2015 (r276551) @@ -38,6 +38,38 @@ # xargs -n1 | sort | uniq -d; # done +# 20150103: removal of texinfo +OLD_FILES+=usr/bin/info +OLD_FILES+=usr/bin/infokey +OLD_FILES+=usr/bin/install-info +OLD_FILES+=usr/bin/makeinfo +OLD_FILES+=usr/bin/texindex +OLD_FILES+=usr/share/info/am-utils.info.gz +OLD_FILES+=usr/share/info/as-utils.info.gz +OLD_FILES+=usr/share/info/binutils.info.gz +OLD_FILES+=usr/share/info/com_err.info.gz +OLD_FILES+=usr/share/info/diff.info.gz +OLD_FILES+=usr/share/info/gdb.info.gz +OLD_FILES+=usr/share/info/gdbint.info.gz +OLD_FILES+=usr/share/info/gperf.info.gz +OLD_FILES+=usr/share/info/grep.info.gz +OLD_FILES+=usr/share/info/groff.info.gz +OLD_FILES+=usr/share/info/heimdal.info.gz +OLD_FILES+=usr/share/info/history.info.gz +OLD_FILES+=usr/share/info/info-stnd.info.gz +OLD_FILES+=usr/share/info/info.info.gz +OLD_FILES+=usr/share/info/ld.info.gz +OLD_FILES+=usr/share/info/regex.info.gz +OLD_FILES+=usr/share/info/rluserman.info.gz +OLD_FILES+=usr/share/info/stabs.info.gz +OLD_FILES+=usr/share/info/texinfo.info.gz +OLD_FILES+=usr/share/man/man1/info.1.gz +OLD_FILES+=usr/share/man/man1/infokey.1.gz +OLD_FILES+=usr/share/man/man1/install-info.1.gz +OLD_FILES+=usr/share/man/man1/makeinfo.1.gz +OLD_FILES+=usr/share/man/man1/texindex.1.gz +OLD_FILES+=usr/share/man/man5/info.5.gz +OLD_FILES+=usr/share/man/man5/texinfo.5.gz # 20141231: new clang import which bumps version from 3.4.1 to 3.5.0. OLD_FILES+=usr/include/clang/3.4.1/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.4.1/__wmmintrin_pclmul.h Modified: head/UPDATING ============================================================================== --- head/UPDATING Fri Jan 2 18:36:08 2015 (r276550) +++ head/UPDATING Fri Jan 2 18:45:03 2015 (r276551) @@ -31,6 +31,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20150102: + The GNU texinfo and GNU info pages have been removed. + To be able to view GNU info pages please install texinfo from ports. + 20141231: Clang, llvm and lldb have been upgraded to 3.5.0 release. @@ -176,6 +180,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 The GNU texinfo and GNU info pages are not built and installed anymore, WITH_INFO knob has been added to allow to built and install them again. + UPDATE: see 20150102 entry on texinfo's removal 20140708: The GNU readline library is now an INTERNALLIB - that is, it is Modified: head/gnu/usr.bin/Makefile ============================================================================== --- head/gnu/usr.bin/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/gnu/usr.bin/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -14,8 +14,7 @@ SUBDIR= ${_binutils} \ ${_groff} \ ${_rcs} \ sdiff \ - ${_tests} \ - ${_texinfo} + ${_tests} .if ${MK_CXX} != "no" .if ${MK_GCC} != "no" @@ -30,10 +29,6 @@ _groff= groff _dtc= dtc .endif -.if ${MK_INFO} != "no" -_texinfo= texinfo -.endif - .if ${MK_RCS} != "no" _rcs= rcs .endif Modified: head/gnu/usr.bin/binutils/Makefile ============================================================================== --- head/gnu/usr.bin/binutils/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/gnu/usr.bin/binutils/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -15,9 +15,8 @@ SUBDIR= libiberty \ readelf \ ${_size} \ ${_strings} \ - ${_strip} \ - doc - + ${_strip} + .if ${MK_ELFTOOLCHAIN_TOOLS} == "no" _addr2line= addr2line _nm= nm Modified: head/gnu/usr.bin/cc/Makefile ============================================================================== --- head/gnu/usr.bin/cc/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/gnu/usr.bin/cc/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -5,7 +5,7 @@ # The order of some of these are rather important. Some depend on previous # subdirs. -SUBDIR= cc_tools libiberty libcpp libdecnumber cc_int cc cc1 include doc +SUBDIR= cc_tools libiberty libcpp libdecnumber cc_int cc cc1 include .if ${MK_CPP} != "no" SUBDIR+= cpp Modified: head/gnu/usr.bin/gdb/Makefile ============================================================================== --- head/gnu/usr.bin/gdb/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/gnu/usr.bin/gdb/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -1,6 +1,6 @@ # $FreeBSD$ -SUBDIR= doc libgdb gdb gdbtui kgdb +SUBDIR= libgdb gdb gdbtui kgdb .if exists(${.CURDIR}/gdbserver/reg-${MACHINE_CPUARCH}.c) SUBDIR+=gdbserver Modified: head/gnu/usr.bin/grep/Makefile ============================================================================== --- head/gnu/usr.bin/grep/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/gnu/usr.bin/grep/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -45,8 +45,6 @@ MLINKS+=grep.1 zgrep.1 grep.1 zegrep.1 g gnugrep.1: grep.1 cp ${.ALLSRC} ${.TARGET} -SUBDIR+=doc - check: all @failed=0; total=0; \ for tst in ${TESTS}; do \ Modified: head/gnu/usr.bin/groff/Makefile ============================================================================== --- head/gnu/usr.bin/groff/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/gnu/usr.bin/groff/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -1,6 +1,6 @@ # $FreeBSD$ -SUBDIR= contrib doc font man src tmac +SUBDIR= contrib font man src tmac .for subdir in ${SUBDIR:Nsrc} SUBDIR_DEPEND_${subdir}= src Modified: head/kerberos5/Makefile ============================================================================== --- head/kerberos5/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/kerberos5/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -1,6 +1,6 @@ # $FreeBSD$ -SUBDIR= doc lib libexec tools usr.bin usr.sbin +SUBDIR= lib libexec tools usr.bin usr.sbin # These are the programs which depend on Kerberos. KPROGS= lib/libpam \ Modified: head/lib/libcom_err/Makefile ============================================================================== --- head/lib/libcom_err/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/lib/libcom_err/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -10,8 +10,6 @@ CFLAGS+= -I${COM_ERRDIR} LDFLAGS= -Wl,--no-undefined VERSION_MAP= ${COM_ERRDIR}/version-script.map -SUBDIR= doc - .include .PATH: ${COM_ERRDIR} Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Fri Jan 2 18:36:08 2015 (r276550) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Fri Jan 2 18:45:03 2015 (r276551) @@ -1967,40 +1967,6 @@ OLD_FILES+=usr/share/man/man8/traceroute OLD_FILES+=rescue/ping6 .endif -.if ${MK_INFO} == no -OLD_FILES+=usr/bin/info -OLD_FILES+=usr/bin/infokey -OLD_FILES+=usr/bin/install-info -OLD_FILES+=usr/bin/makeinfo -OLD_FILES+=usr/bin/texindex -OLD_FILES+=usr/share/info/am-utils.info.gz -OLD_FILES+=usr/share/info/as-utils.info.gz -OLD_FILES+=usr/share/info/binutils.info.gz -OLD_FILES+=usr/share/info/com_err.info.gz -OLD_FILES+=usr/share/info/diff.info.gz -OLD_FILES+=usr/share/info/gdb.info.gz -OLD_FILES+=usr/share/info/gdbint.info.gz -OLD_FILES+=usr/share/info/gperf.info.gz -OLD_FILES+=usr/share/info/grep.info.gz -OLD_FILES+=usr/share/info/groff.info.gz -OLD_FILES+=usr/share/info/heimdal.info.gz -OLD_FILES+=usr/share/info/history.info.gz -OLD_FILES+=usr/share/info/info-stnd.info.gz -OLD_FILES+=usr/share/info/info.info.gz -OLD_FILES+=usr/share/info/ld.info.gz -OLD_FILES+=usr/share/info/regex.info.gz -OLD_FILES+=usr/share/info/rluserman.info.gz -OLD_FILES+=usr/share/info/stabs.info.gz -OLD_FILES+=usr/share/info/texinfo.info.gz -OLD_FILES+=usr/share/man/man1/info.1.gz -OLD_FILES+=usr/share/man/man1/infokey.1.gz -OLD_FILES+=usr/share/man/man1/install-info.1.gz -OLD_FILES+=usr/share/man/man1/makeinfo.1.gz -OLD_FILES+=usr/share/man/man1/texindex.1.gz -OLD_FILES+=usr/share/man/man5/info.5.gz -OLD_FILES+=usr/share/man/man5/texinfo.5.gz -.endif - .if ${MK_IPFILTER} == no OLD_FILES+=etc/periodic/security/510.ipfdenied OLD_FILES+=etc/periodic/security/610.ipf6denied Modified: head/usr.sbin/amd/Makefile ============================================================================== --- head/usr.sbin/amd/Makefile Fri Jan 2 18:36:08 2015 (r276550) +++ head/usr.sbin/amd/Makefile Fri Jan 2 18:45:03 2015 (r276551) @@ -5,7 +5,7 @@ # # $FreeBSD$ -SUBDIR= include libamu amd amq doc fixmount fsinfo hlfsd mk-amd-map pawd \ +SUBDIR= include libamu amd amq fixmount fsinfo hlfsd mk-amd-map pawd \ scripts wire-test .include From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:45:49 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 511D71E0; Fri, 2 Jan 2015 18:45:49 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3DD9E1DB6; Fri, 2 Jan 2015 18:45:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Ijn3n067738; Fri, 2 Jan 2015 18:45:49 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Ijn3m067737; Fri, 2 Jan 2015 18:45:49 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021845.t02Ijn3m067737@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 18:45:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276552 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:45:49 -0000 Author: bapt Date: Fri Jan 2 18:45:48 2015 New Revision: 276552 URL: https://svnweb.freebsd.org/changeset/base/276552 Log: Fix the date of texinfo removal Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Fri Jan 2 18:45:03 2015 (r276551) +++ head/ObsoleteFiles.inc Fri Jan 2 18:45:48 2015 (r276552) @@ -38,7 +38,7 @@ # xargs -n1 | sort | uniq -d; # done -# 20150103: removal of texinfo +# 20150102: removal of texinfo OLD_FILES+=usr/bin/info OLD_FILES+=usr/bin/infokey OLD_FILES+=usr/bin/install-info From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:50:20 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 24A9B4ED; Fri, 2 Jan 2015 18:50:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 106241E39; Fri, 2 Jan 2015 18:50:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02IoJed073061; Fri, 2 Jan 2015 18:50:19 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02IoJj9073060; Fri, 2 Jan 2015 18:50:19 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201501021850.t02IoJj9073060@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Fri, 2 Jan 2015 18:50:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276553 - stable/10/sys/amd64/amd64 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:50:20 -0000 Author: alc Date: Fri Jan 2 18:50:18 2015 New Revision: 276553 URL: https://svnweb.freebsd.org/changeset/base/276553 Log: MFC r270961 Update a comment to reflect the changes in r213408. Modified: stable/10/sys/amd64/amd64/pmap.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/amd64/pmap.c ============================================================================== --- stable/10/sys/amd64/amd64/pmap.c Fri Jan 2 18:45:48 2015 (r276552) +++ stable/10/sys/amd64/amd64/pmap.c Fri Jan 2 18:50:18 2015 (r276553) @@ -2603,7 +2603,7 @@ pmap_growkernel(vm_offset_t addr) * "kernel_vm_end" and the kernel page table as they were. * * The correctness of this action is based on the following - * argument: vm_map_findspace() allocates contiguous ranges of the + * argument: vm_map_insert() allocates contiguous ranges of the * kernel virtual address space. It calls this function if a range * ends after "kernel_vm_end". If the kernel is mapped between * "kernel_vm_end" and "addr", then the range cannot begin at From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:51:48 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7597B62C; Fri, 2 Jan 2015 18:51:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 613901F28; Fri, 2 Jan 2015 18:51:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Ipmel074936; Fri, 2 Jan 2015 18:51:48 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Ipmlg074935; Fri, 2 Jan 2015 18:51:48 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501021851.t02Ipmlg074935@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 18:51:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276554 - stable/9/lib/libc/regex X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:51:48 -0000 Author: delphij Date: Fri Jan 2 18:51:47 2015 New Revision: 276554 URL: https://svnweb.freebsd.org/changeset/base/276554 Log: MFC r275930: Plug a memory leak. Obtained from: DragonFlyBSD (commit 5119ece) Modified: stable/9/lib/libc/regex/regcomp.c Directory Properties: stable/9/lib/libc/ (props changed) Modified: stable/9/lib/libc/regex/regcomp.c ============================================================================== --- stable/9/lib/libc/regex/regcomp.c Fri Jan 2 18:50:18 2015 (r276553) +++ stable/9/lib/libc/regex/regcomp.c Fri Jan 2 18:51:47 2015 (r276554) @@ -1699,8 +1699,10 @@ computematchjumps(struct parse *p, struc } g->matchjump = (int*) malloc(g->mlen * sizeof(unsigned int)); - if (g->matchjump == NULL) /* Not a fatal error */ + if (g->matchjump == NULL) { /* Not a fatal error */ + free(pmatches); return; + } /* Set maximum possible jump for each character in the pattern */ for (mindex = 0; mindex < g->mlen; mindex++) From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:52:20 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0F80A75F; Fri, 2 Jan 2015 18:52:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EF4DD1F3F; Fri, 2 Jan 2015 18:52:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02IqJgK075119; Fri, 2 Jan 2015 18:52:19 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02IqJDY075118; Fri, 2 Jan 2015 18:52:19 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501021852.t02IqJDY075118@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 18:52:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r276555 - stable/8/lib/libc/regex X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:52:20 -0000 Author: delphij Date: Fri Jan 2 18:52:18 2015 New Revision: 276555 URL: https://svnweb.freebsd.org/changeset/base/276555 Log: MFC r275930: Plug a memory leak. Obtained from: DragonFlyBSD (commit 5119ece) Modified: stable/8/lib/libc/regex/regcomp.c Directory Properties: stable/8/lib/libc/ (props changed) Modified: stable/8/lib/libc/regex/regcomp.c ============================================================================== --- stable/8/lib/libc/regex/regcomp.c Fri Jan 2 18:51:47 2015 (r276554) +++ stable/8/lib/libc/regex/regcomp.c Fri Jan 2 18:52:18 2015 (r276555) @@ -1693,8 +1693,10 @@ computematchjumps(struct parse *p, struc } g->matchjump = (int*) malloc(g->mlen * sizeof(unsigned int)); - if (g->matchjump == NULL) /* Not a fatal error */ + if (g->matchjump == NULL) { /* Not a fatal error */ + free(pmatches); return; + } /* Set maximum possible jump for each character in the pattern */ for (mindex = 0; mindex < g->mlen; mindex++) From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:54:56 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 683688AC; Fri, 2 Jan 2015 18:54:56 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 54FA41F5B; Fri, 2 Jan 2015 18:54:56 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02IsuD7075648; Fri, 2 Jan 2015 18:54:56 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02IsuLm075647; Fri, 2 Jan 2015 18:54:56 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021854.t02IsuLm075647@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 18:54:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276556 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:54:56 -0000 Author: bapt Date: Fri Jan 2 18:54:55 2015 New Revision: 276556 URL: https://svnweb.freebsd.org/changeset/base/276556 Log: Remove leftovers from r276551 Modified: head/share/mk/bsd.opts.mk Modified: head/share/mk/bsd.opts.mk ============================================================================== --- head/share/mk/bsd.opts.mk Fri Jan 2 18:52:18 2015 (r276555) +++ head/share/mk/bsd.opts.mk Fri Jan 2 18:54:55 2015 (r276556) @@ -68,8 +68,7 @@ __DEFAULT_YES_OPTIONS = \ __DEFAULT_NO_OPTIONS = \ CTF \ DEBUG_FILES \ - INSTALL_AS_USER \ - INFO + INSTALL_AS_USER .include From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:57:27 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 99946A0C; Fri, 2 Jan 2015 18:57:27 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8573A1FB8; Fri, 2 Jan 2015 18:57:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02IvRIQ076240; Fri, 2 Jan 2015 18:57:27 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02IvReA076239; Fri, 2 Jan 2015 18:57:27 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501021857.t02IvReA076239@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 18:57:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276557 - stable/10/rescue/rescue X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:57:27 -0000 Author: delphij Date: Fri Jan 2 18:57:26 2015 New Revision: 276557 URL: https://svnweb.freebsd.org/changeset/base/276557 Log: MFC r275435: Add sleep(1) to /rescue. Modified: stable/10/rescue/rescue/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/rescue/rescue/Makefile ============================================================================== --- stable/10/rescue/rescue/Makefile Fri Jan 2 18:54:55 2015 (r276556) +++ stable/10/rescue/rescue/Makefile Fri Jan 2 18:57:26 2015 (r276557) @@ -51,7 +51,8 @@ CRUNCH_LIBS+= ${.OBJDIR}/../librescue/*. CRUNCH_SRCDIRS+= bin CRUNCH_PROGS_bin= cat chflags chio chmod cp date dd df echo \ ed expr getfacl hostname kenv kill ln ls mkdir mv \ - pkill ps pwd realpath rm rmdir setfacl sh stty sync test + pkill ps pwd realpath rm rmdir setfacl sh sleep stty \ + sync test CRUNCH_LIBS+= -lcrypt -ledit -ljail -lkvm -ll -ltermcap -lutil CRUNCH_BUILDTOOLS+= bin/sh From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:57:52 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 71F0DB37; Fri, 2 Jan 2015 18:57:52 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5DCEA1FC2; Fri, 2 Jan 2015 18:57:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Ivqgk076371; Fri, 2 Jan 2015 18:57:52 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02IvqOe076370; Fri, 2 Jan 2015 18:57:52 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501021857.t02IvqOe076370@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 18:57:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276558 - stable/9/rescue/rescue X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:57:52 -0000 Author: delphij Date: Fri Jan 2 18:57:51 2015 New Revision: 276558 URL: https://svnweb.freebsd.org/changeset/base/276558 Log: MFC r275435: Add sleep(1) to /rescue. Modified: stable/9/rescue/rescue/Makefile Directory Properties: stable/9/rescue/rescue/ (props changed) Modified: stable/9/rescue/rescue/Makefile ============================================================================== --- stable/9/rescue/rescue/Makefile Fri Jan 2 18:57:26 2015 (r276557) +++ stable/9/rescue/rescue/Makefile Fri Jan 2 18:57:51 2015 (r276558) @@ -51,7 +51,8 @@ CRUNCH_LIBS+= ${.OBJDIR}/../librescue/*. CRUNCH_SRCDIRS+= bin CRUNCH_PROGS_bin= cat chflags chio chmod cp date dd df echo \ ed expr getfacl hostname kenv kill ln ls mkdir mv \ - pkill ps pwd realpath rm rmdir setfacl sh stty sync test + pkill ps pwd realpath rm rmdir setfacl sh sleep stty \ + sync test CRUNCH_LIBS+= -lcrypt -ledit -ljail -lkvm -ll -ltermcap -lutil CRUNCH_BUILDTOOLS+= bin/sh From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 18:57:59 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7DC9CC60; Fri, 2 Jan 2015 18:57:59 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6A3FD1FC5; Fri, 2 Jan 2015 18:57:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Ivxku076443; Fri, 2 Jan 2015 18:57:59 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Ivxvj076442; Fri, 2 Jan 2015 18:57:59 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021857.t02Ivxvj076442@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 18:57:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276559 - head/tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 18:57:59 -0000 Author: bapt Date: Fri Jan 2 18:57:58 2015 New Revision: 276559 URL: https://svnweb.freebsd.org/changeset/base/276559 Log: Fix typo Modified: head/tools/build/options/WITHOUT_WARNS Modified: head/tools/build/options/WITHOUT_WARNS ============================================================================== --- head/tools/build/options/WITHOUT_WARNS Fri Jan 2 18:57:51 2015 (r276558) +++ head/tools/build/options/WITHOUT_WARNS Fri Jan 2 18:57:58 2015 (r276559) @@ -2,4 +2,4 @@ Set this to not add warning flags to the compiler invocations. Useful as a temporary workaround when code enters the tree which triggers warnings in environments that differ from the -original develoepr. +original developer. From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 19:01:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 12C40E17; Fri, 2 Jan 2015 19:01:02 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F30B5640A5; Fri, 2 Jan 2015 19:01:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02J11KJ079599; Fri, 2 Jan 2015 19:01:01 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02J119M079598; Fri, 2 Jan 2015 19:01:01 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201501021901.t02J119M079598@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Fri, 2 Jan 2015 19:01:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276560 - stable/9/sys/amd64/amd64 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 19:01:02 -0000 Author: alc Date: Fri Jan 2 19:01:00 2015 New Revision: 276560 URL: https://svnweb.freebsd.org/changeset/base/276560 Log: MFC r270961 Update a comment to reflect the changes in r213408. Modified: stable/9/sys/amd64/amd64/pmap.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/amd64/amd64/pmap.c ============================================================================== --- stable/9/sys/amd64/amd64/pmap.c Fri Jan 2 18:57:58 2015 (r276559) +++ stable/9/sys/amd64/amd64/pmap.c Fri Jan 2 19:01:00 2015 (r276560) @@ -1999,7 +1999,7 @@ pmap_growkernel(vm_offset_t addr) * "kernel_vm_end" and the kernel page table as they were. * * The correctness of this action is based on the following - * argument: vm_map_findspace() allocates contiguous ranges of the + * argument: vm_map_insert() allocates contiguous ranges of the * kernel virtual address space. It calls this function if a range * ends after "kernel_vm_end". If the kernel is mapped between * "kernel_vm_end" and "addr", then the range cannot begin at From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 19:01:37 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 576F5B6; Fri, 2 Jan 2015 19:01:37 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 204A1640D1; Fri, 2 Jan 2015 19:01:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02J1axN080394; Fri, 2 Jan 2015 19:01:36 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02J1aeV080393; Fri, 2 Jan 2015 19:01:36 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021901.t02J1aeV080393@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 19:01:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276561 - head/share/man/man5 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 19:01:37 -0000 Author: bapt Date: Fri Jan 2 19:01:36 2015 New Revision: 276561 URL: https://svnweb.freebsd.org/changeset/base/276561 Log: Regen after removal of texinfo Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Fri Jan 2 19:01:00 2015 (r276560) +++ head/share/man/man5/src.conf.5 Fri Jan 2 19:01:36 2015 (r276561) @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 255964 2013-10-01 07:22:04Z des .\" $FreeBSD$ -.Dd December 1, 2014 +.Dd January 2, 2015 .Dt SRC.CONF 5 .Os .Sh NAME @@ -506,9 +506,6 @@ BSD grep. .It Va WITHOUT_GNU_SUPPORT .\" from FreeBSD: head/tools/build/options/WITHOUT_GNU_SUPPORT 156932 2006-03-21 07:50:50Z ru Set to build some programs without optional GNU support. -.It Va WITHOUT_GPIB -.\" from FreeBSD: head/tools/build/options/WITHOUT_GPIB 156932 2006-03-21 07:50:50Z ru -Set to not build GPIB bus support. .It Va WITHOUT_GPIO .\" from FreeBSD: head/tools/build/options/WITHOUT_GPIO 228081 2011-11-28 17:54:34Z dim Set to not build @@ -574,11 +571,6 @@ Set to build libraries, programs, and ke .It Va WITHOUT_INET_SUPPORT .\" from FreeBSD: head/tools/build/options/WITHOUT_INET_SUPPORT 221266 2011-04-30 17:58:28Z bz Set to build libraries, programs, and kernel modules without IPv4 support. -.It Va WITH_INFO -.\" from FreeBSD: head/tools/build/options/WITH_INFO 268496 2014-07-10 15:05:41Z bapt -Set to make or install -.Xr info 5 -files. .It Va WITHOUT_INSTALLLIB .\" from FreeBSD: head/tools/build/options/WITHOUT_INSTALLLIB 174497 2007-12-09 21:56:21Z dougb Set this if you do not want to install optional libraries. @@ -1139,7 +1131,7 @@ Set to not build .Xr vt 4 support files (fonts and keymaps). .It Va WITHOUT_WARNS -.\" from FreeBSD: head/tools/build/options/WITHOUT_WARNS 265830 2014-05-10 16:37:53Z imp +.\" from FreeBSD: head/tools/build/options/WITHOUT_WARNS 276559 2015-01-02 18:57:58Z bapt Set this to not add warning flags to the compiler invocations. Useful as a temporary workaround when code enters the tree which triggers warnings in environments that differ from the From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 19:05:40 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C9926262; Fri, 2 Jan 2015 19:05:40 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B5DD264104; Fri, 2 Jan 2015 19:05:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02J5eDu081835; Fri, 2 Jan 2015 19:05:40 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02J5e0n081834; Fri, 2 Jan 2015 19:05:40 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501021905.t02J5e0n081834@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 19:05:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276562 - in head/gnu/lib/libregex: . doc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 19:05:40 -0000 Author: bapt Date: Fri Jan 2 19:05:39 2015 New Revision: 276562 URL: https://svnweb.freebsd.org/changeset/base/276562 Log: Remove info pages Deleted: head/gnu/lib/libregex/doc/ Modified: head/gnu/lib/libregex/Makefile Modified: head/gnu/lib/libregex/Makefile ============================================================================== --- head/gnu/lib/libregex/Makefile Fri Jan 2 19:01:36 2015 (r276561) +++ head/gnu/lib/libregex/Makefile Fri Jan 2 19:05:39 2015 (r276562) @@ -1,7 +1,5 @@ # $FreeBSD$ -SUBDIR= doc - LIB= gnuregex SHLIB_MAJOR= 5 From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 19:06:28 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CB0A93A8; Fri, 2 Jan 2015 19:06:28 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B73C16411C; Fri, 2 Jan 2015 19:06:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02J6SF3082056; Fri, 2 Jan 2015 19:06:28 GMT (envelope-from rwatson@FreeBSD.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02J6Sau082055; Fri, 2 Jan 2015 19:06:28 GMT (envelope-from rwatson@FreeBSD.org) Message-Id: <201501021906.t02J6Sau082055@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: rwatson set sender to rwatson@FreeBSD.org using -f From: Robert Watson Date: Fri, 2 Jan 2015 19:06:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276563 - head/sys/dev/cxgb/ulp/tom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 19:06:28 -0000 Author: rwatson Date: Fri Jan 2 19:06:27 2015 New Revision: 276563 URL: https://svnweb.freebsd.org/changeset/base/276563 Log: In mbuf_to_synq_entry(), use M_START() and M_SIZE() to calculate an offset into mbuf storage, to reduce knowledge about mbuf/cluster layout in the cxgb device driver. Reviewed by: np Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/cxgb/ulp/tom/cxgb_listen.c Modified: head/sys/dev/cxgb/ulp/tom/cxgb_listen.c ============================================================================== --- head/sys/dev/cxgb/ulp/tom/cxgb_listen.c Fri Jan 2 19:05:39 2015 (r276562) +++ head/sys/dev/cxgb/ulp/tom/cxgb_listen.c Fri Jan 2 19:06:27 2015 (r276563) @@ -442,26 +442,13 @@ static struct synq_entry * mbuf_to_synq_entry(struct mbuf *m) { int len = roundup(sizeof (struct synq_entry), 8); - uint8_t *buf; - int buflen; if (__predict_false(M_TRAILINGSPACE(m) < len)) { panic("%s: no room for synq_entry (%td, %d)\n", __func__, M_TRAILINGSPACE(m), len); } - if (m->m_flags & M_EXT) { - buf = m->m_ext.ext_buf; - buflen = m->m_ext.ext_size; - } else if (m->m_flags & M_PKTHDR) { - buf = &m->m_pktdat[0]; - buflen = MHLEN; - } else { - buf = &m->m_dat[0]; - buflen = MLEN; - } - - return ((void *)(buf + buflen - len)); + return ((void *)(M_START(m) + M_SIZE(m) - len)); } #ifdef KTR From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 19:29:34 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F158874C; Fri, 2 Jan 2015 19:29:33 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DD9302450; Fri, 2 Jan 2015 19:29:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02JTXYs093293; Fri, 2 Jan 2015 19:29:33 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02JTXd7093292; Fri, 2 Jan 2015 19:29:33 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201501021929.t02JTXd7093292@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Fri, 2 Jan 2015 19:29:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276564 - head/sys/compat/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 19:29:34 -0000 Author: dchagin Date: Fri Jan 2 19:29:32 2015 New Revision: 276564 URL: https://svnweb.freebsd.org/changeset/base/276564 Log: Cast *path to silence clang -Wpointer-sign warning. MFC after: 1 week Modified: head/sys/compat/linux/linux_getcwd.c Modified: head/sys/compat/linux/linux_getcwd.c ============================================================================== --- head/sys/compat/linux/linux_getcwd.c Fri Jan 2 19:06:27 2015 (r276563) +++ head/sys/compat/linux/linux_getcwd.c Fri Jan 2 19:29:32 2015 (r276564) @@ -430,7 +430,7 @@ linux_getcwd(struct thread *td, struct l path = (char *)malloc(len, M_TEMP, M_WAITOK); - error = kern___getcwd(td, path, UIO_SYSSPACE, len); + error = kern___getcwd(td, (u_char *)path, UIO_SYSSPACE, len); if (!error) { lenused = strlen(path) + 1; if (lenused <= args->bufsize) { From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:23:21 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DCCFFFE4; Fri, 2 Jan 2015 20:23:20 +0000 (UTC) Received: from tensor.andric.com (unknown [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "tensor.andric.com", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 84BE32D7D; Fri, 2 Jan 2015 20:23:20 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::fd7c:bcc2:17c:e893] (unknown [IPv6:2001:7b8:3a7:0:fd7c:bcc2:17c:e893]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 7BCB9B80A; Fri, 2 Jan 2015 21:23:16 +0100 (CET) Subject: Re: svn commit: r276499 - head/sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_EB1095E1-34C5-4036-A3A9-EF5C539A485B"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.5b4 From: Dimitry Andric In-Reply-To: <41CF0351-83A3-4D54-B308-32F310DCD3DA@gmail.com> Date: Fri, 2 Jan 2015 21:23:09 +0100 Message-Id: References: <201501011007.t01A7wYW032884@svn.freebsd.org> <41CF0351-83A3-4D54-B308-32F310DCD3DA@gmail.com> To: Warner Losh X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, Roman Divacky , src-committers , svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:23:21 -0000 --Apple-Mail=_EB1095E1-34C5-4036-A3A9-EF5C539A485B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hm, conditionalizing this on the compiler version is rather ugly. Isn't this only relevant when we do an MFC? But maybe it is indeed better to have the same Makefile for different toolchain envronments. -Dimitry > On 02 Jan 2015, at 18:33, Warner Losh wrote: >=20 > This breaks building the kernel with clang 3.4.1 >=20 > Warner >=20 >=20 >> On Jan 1, 2015, at 3:07 AM, Roman Divacky = wrote: >>=20 >> Author: rdivacky >> Date: Thu Jan 1 10:07:57 2015 >> New Revision: 276499 >> URL: https://svnweb.freebsd.org/changeset/base/276499 >>=20 >> Log: >> LLVM integrated assembler can assemble these files just fine. >>=20 >> Modified: >> head/sys/conf/Makefile.amd64 >> head/sys/conf/Makefile.i386 >> head/sys/conf/Makefile.pc98 >>=20 >> Modified: head/sys/conf/Makefile.amd64 >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/conf/Makefile.amd64 Thu Jan 1 09:33:46 2015 = (r276498) >> +++ head/sys/conf/Makefile.amd64 Thu Jan 1 10:07:57 2015 = (r276499) >> @@ -37,11 +37,6 @@ INCLUDES+=3D -I$S/contrib/libfdt >> CFLAGS+=3D -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer >> .endif >>=20 >> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >> -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} >> -ASM_CFLAGS.mpboot.S=3D ${CLANG_NO_IAS} >> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >> - >> %BEFORE_DEPEND >>=20 >> %OBJS >>=20 >> Modified: head/sys/conf/Makefile.i386 >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/conf/Makefile.i386 Thu Jan 1 09:33:46 2015 = (r276498) >> +++ head/sys/conf/Makefile.i386 Thu Jan 1 10:07:57 2015 = (r276499) >> @@ -32,11 +32,6 @@ S=3D ../../.. >>=20 >> INCLUDES+=3D -I$S/contrib/libfdt >>=20 >> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >> -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} >> -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} >> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >> - >> %BEFORE_DEPEND >>=20 >> %OBJS >>=20 >> Modified: head/sys/conf/Makefile.pc98 >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/conf/Makefile.pc98 Thu Jan 1 09:33:46 2015 = (r276498) >> +++ head/sys/conf/Makefile.pc98 Thu Jan 1 10:07:57 2015 = (r276499) >> @@ -30,10 +30,6 @@ S=3D ../../.. >> .endif >> .include "$S/conf/kern.pre.mk" >>=20 >> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >> -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} >> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >> - >> %BEFORE_DEPEND >>=20 >> %OBJS >>=20 >=20 >=20 --Apple-Mail=_EB1095E1-34C5-4036-A3A9-EF5C539A485B Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.26 iEYEARECAAYFAlSm/jQACgkQsF6jCi4glqNFjgCg0NI8rl/HwNJK/MB1QvTH9Mbf /BIAn0UkX9YhUdD6FxNegCSOLiD+gVFP =RTGU -----END PGP SIGNATURE----- --Apple-Mail=_EB1095E1-34C5-4036-A3A9-EF5C539A485B-- From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:34:57 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A5756502; Fri, 2 Jan 2015 20:34:57 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7786164E1D; Fri, 2 Jan 2015 20:34:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02KYvaQ030457; Fri, 2 Jan 2015 20:34:57 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02KYu1I030453; Fri, 2 Jan 2015 20:34:56 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201501022034.t02KYu1I030453@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 2 Jan 2015 20:34:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:34:57 -0000 Author: ngie Date: Fri Jan 2 20:34:55 2015 New Revision: 276565 URL: https://svnweb.freebsd.org/changeset/base/276565 Log: Remove gnu/ info pages to unbreak the build with MK_GCC != no, etc Reported by: Ivan Klymenko Reviewed by: bapt Differential Revision: D1412 Deleted: head/gnu/lib/libstdc++/doc/ head/gnu/usr.bin/diff/doc/ head/gnu/usr.bin/gperf/doc/Makefile Modified: head/gnu/usr.bin/diff/Makefile head/gnu/usr.bin/gdb/Makefile.inc head/gnu/usr.bin/gperf/Makefile Modified: head/gnu/usr.bin/diff/Makefile ============================================================================== --- head/gnu/usr.bin/diff/Makefile Fri Jan 2 19:29:32 2015 (r276564) +++ head/gnu/usr.bin/diff/Makefile Fri Jan 2 20:34:55 2015 (r276565) @@ -24,8 +24,6 @@ CFLAGS+=-I${.CURDIR}/../../../contrib/di CFLAGS+=-I${.CURDIR}/../../../contrib/diff/lib CFLAGS+=-I${DESTDIR}/usr/include/gnu -SUBDIR+=doc - LIBADD+= gnuregex .if ${MK_TESTS} != "no" Modified: head/gnu/usr.bin/gdb/Makefile.inc ============================================================================== --- head/gnu/usr.bin/gdb/Makefile.inc Fri Jan 2 19:29:32 2015 (r276564) +++ head/gnu/usr.bin/gdb/Makefile.inc Fri Jan 2 20:34:55 2015 (r276565) @@ -32,8 +32,6 @@ TARGET_SUBDIR= ${BMAKE_GDB}/arch/${TARGE GDB_CROSS_DEBUGGER= .endif -.if !defined(INFO) - .PATH: ${CNTRB_GDB}/gdb ${CNTRB_GDB}/gdb/cli ${CNTRB_GDB}/gdb/mi \ ${CNTRB_GDB}/gdb/signals ${CNTRB_GDB}/gdb/tui ${TARGET_SUBDIR} @@ -62,10 +60,4 @@ MAN= SRCS+= ${GENSRCS} CLEANFILES+= ${GENSRCS} -.else - -.PATH: ${CNTRB_GDB}/gdb ${CNTRB_GDB}/gdb/doc ${CNTRB_RL}/doc - -.endif - .include "../Makefile.inc" Modified: head/gnu/usr.bin/gperf/Makefile ============================================================================== --- head/gnu/usr.bin/gperf/Makefile Fri Jan 2 19:29:32 2015 (r276564) +++ head/gnu/usr.bin/gperf/Makefile Fri Jan 2 20:34:55 2015 (r276565) @@ -5,8 +5,6 @@ GPERFDIR= ${.CURDIR}/../../../contrib/gp .PATH: ${GPERFDIR}/src ${GPERFDIR}/lib ${GPERFDIR}/doc -SUBDIR= doc - PROG_CXX= gperf SRCS= bool-array.cc hash-table.cc input.cc keyword-list.cc keyword.cc \ main.cc options.cc output.cc positions.cc search.cc version.cc \ From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:47:53 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5DF408B7; Fri, 2 Jan 2015 20:47:53 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 303D2116B; Fri, 2 Jan 2015 20:47:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02KlrKs036442; Fri, 2 Jan 2015 20:47:53 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Klret036440; Fri, 2 Jan 2015 20:47:53 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201501022047.t02Klret036440@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Fri, 2 Jan 2015 20:47:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276566 - head/gnu/usr.bin/gperf/doc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:47:53 -0000 Author: jkim Date: Fri Jan 2 20:47:52 2015 New Revision: 276566 URL: https://svnweb.freebsd.org/changeset/base/276566 Log: Garbage collect the empty directory. Deleted: head/gnu/usr.bin/gperf/doc/ From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:49:44 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7E671A9B; Fri, 2 Jan 2015 20:49:44 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 51442119B; Fri, 2 Jan 2015 20:49:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02KniF3036851; Fri, 2 Jan 2015 20:49:44 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Kni1P036850; Fri, 2 Jan 2015 20:49:44 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201501022049.t02Kni1P036850@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 2 Jan 2015 20:49:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276567 - head/contrib/elftoolchain/readelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:49:44 -0000 Author: emaste Date: Fri Jan 2 20:49:43 2015 New Revision: 276567 URL: https://svnweb.freebsd.org/changeset/base/276567 Log: readelf: Correct rounding on note padding In general 64-bit ELF notes use 4-byte padding, not 8, despite what is claimed in various specs. Upstream elftoolchain ticket 472 https://sourceforge.net/p/elftoolchain/tickets/472/ Sponsored by: The FreeBSD Foundation Modified: head/contrib/elftoolchain/readelf/readelf.c Modified: head/contrib/elftoolchain/readelf/readelf.c ============================================================================== --- head/contrib/elftoolchain/readelf/readelf.c Fri Jan 2 20:47:52 2015 (r276566) +++ head/contrib/elftoolchain/readelf/readelf.c Fri Jan 2 20:49:43 2015 (r276567) @@ -1492,6 +1492,7 @@ note_type(unsigned int osabi, unsigned i return "NT_FPREGSET (Floating point information)"; case NT_PRPSINFO: return "NT_PRPSINFO (Process information)"; +#if 0 case NT_AUXV: return "NT_AUXV (Auxiliary vector)"; case NT_PRXFPREG: @@ -1506,12 +1507,14 @@ note_type(unsigned int osabi, unsigned i return "NT_LWPSTATUS (Linux lwpstatus_t type)"; case NT_LWPSINFO: return "NT_LWPSINFO (Linux lwpinfo_t type)"; +#endif default: snprintf(s_nt, sizeof(s_nt), "", nt); return (s_nt); } } else { switch (nt) { +#if 0 case NT_ABI_TAG: switch (osabi) { case ELFOSABI_FREEBSD: @@ -1529,11 +1532,13 @@ note_type(unsigned int osabi, unsigned i return "NT_GNU_BUILD_ID (Build id set by ld(1))"; case NT_GNU_GOLD_VERSION: return "NT_GNU_GOLD_VERSION (GNU gold version)"; +#endif default: snprintf(s_nt, sizeof(s_nt), "", nt); return (s_nt); } } + (void)osabi; } static struct { @@ -3592,13 +3597,8 @@ dump_notes_content(struct readelf *re, c (uintmax_t) note->n_descsz); printf(" %s\n", note_type(re->ehdr.e_ident[EI_OSABI], re->ehdr.e_type, note->n_type)); - buf += sizeof(Elf_Note); - if (re->ec == ELFCLASS32) - buf += roundup2(note->n_namesz, 4) + - roundup2(note->n_descsz, 4); - else - buf += roundup2(note->n_namesz, 8) + - roundup2(note->n_descsz, 8); + buf += sizeof(Elf_Note) + roundup2(note->n_namesz, 4) + + roundup2(note->n_descsz, 4); } } From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:49:54 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4AF91BD6; Fri, 2 Jan 2015 20:49:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 348F911A4; Fri, 2 Jan 2015 20:49:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02KnsEV036961; Fri, 2 Jan 2015 20:49:54 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Knmcw036904; Fri, 2 Jan 2015 20:49:48 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501022049.t02Knmcw036904@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 20:49:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276568 - in vendor/file/dist: . doc magic magic/Magdir python src tests X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:49:54 -0000 Author: delphij Date: Fri Jan 2 20:49:47 2015 New Revision: 276568 URL: https://svnweb.freebsd.org/changeset/base/276568 Log: Vendor import of file 5.22. Added: vendor/file/dist/magic/Magdir/qt Modified: vendor/file/dist/ChangeLog vendor/file/dist/Makefile.in vendor/file/dist/README vendor/file/dist/aclocal.m4 vendor/file/dist/configure vendor/file/dist/configure.ac vendor/file/dist/doc/Makefile.in vendor/file/dist/doc/file.man vendor/file/dist/doc/libmagic.man vendor/file/dist/doc/magic.man vendor/file/dist/magic/Localstuff vendor/file/dist/magic/Magdir/cafebabe vendor/file/dist/magic/Magdir/filesystems vendor/file/dist/magic/Magdir/images vendor/file/dist/magic/Magdir/jpeg vendor/file/dist/magic/Makefile.am vendor/file/dist/magic/Makefile.in vendor/file/dist/missing vendor/file/dist/python/Makefile.in vendor/file/dist/src/Makefile.in vendor/file/dist/src/apprentice.c vendor/file/dist/src/compress.c vendor/file/dist/src/elfclass.h vendor/file/dist/src/file.c vendor/file/dist/src/file.h vendor/file/dist/src/file_opts.h vendor/file/dist/src/funcs.c vendor/file/dist/src/getline.c vendor/file/dist/src/magic.c vendor/file/dist/src/magic.h vendor/file/dist/src/magic.h.in vendor/file/dist/src/readelf.c vendor/file/dist/src/softmagic.c vendor/file/dist/tests/Makefile.in Modified: vendor/file/dist/ChangeLog ============================================================================== --- vendor/file/dist/ChangeLog Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/ChangeLog Fri Jan 2 20:49:47 2015 (r276568) @@ -1,3 +1,29 @@ +2015-01-02 15:15 Christos Zoulas + + * release 5.22 + +2015-01-01 12:01 Christos Zoulas + + * add indirect relative for TIFF/Exif + +2014-12-16 18:10 Christos Zoulas + + * restructure elf note printing to avoid repeated messages + * add note limit, suggested by Alexander Cherepanov + +2014-12-16 16:53 Christos Zoulas + + * Bail out on partial pread()'s (Alexander Cherepanov) + * Fix incorrect bounds check in file_printable (Alexander Cherepanov) + +2014-12-11 20:01 Christos Zoulas + + * PR/405: ignore SIGPIPE from uncompress programs + * change printable -> file_printable and use it in + more places for safety + * in ELF, instead of "(uses dynamic libraries)" when PT_INTERP + is present print the interpreter name. + 2014-12-10 20:01 Christos Zoulas * release 5.21 @@ -23,6 +49,8 @@ - reduce the number of recursion levels from 20 to 10 - preserve error messages in indirect magic handling + This is tracked as CVE-2014-8116 and CVE-2014-8117 + 2014-11-12 10:30 Christos Zoulas * fix bogus free in the user buffer case. Modified: vendor/file/dist/Makefile.in ============================================================================== --- vendor/file/dist/Makefile.in Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/Makefile.in Fri Jan 2 20:49:47 2015 (r276568) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -618,10 +618,9 @@ distcheck: dist && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ Modified: vendor/file/dist/README ============================================================================== --- vendor/file/dist/README Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/README Fri Jan 2 20:49:47 2015 (r276568) @@ -1,6 +1,6 @@ ## README for file(1) Command ## - @(#) $File: README,v 1.48 2014/03/07 13:55:30 christos Exp $ + @(#) $File: README,v 1.49 2015/01/02 20:23:04 christos Exp $ Mailing List: file@mx.gw.com Mailing List archives: http://mx.gw.com/pipermail/file/ @@ -25,8 +25,8 @@ A public read-only git repository of the https://github.com/file/file -The major changes for 5.x are CDF file parsing, indirect magic, and -overhaul in mime and ascii encoding handling. +The major changes for 5.x are CDF file parsing, indirect magic, name/use +(recursion) and overhaul in mime and ascii encoding handling. The major feature of 4.x is the refactoring of the code into a library, and the re-write of the file command in terms of that library. The library @@ -67,33 +67,41 @@ in magic(5) format please, to the mainta COPYING - read this first. README - read this second (you are currently reading this file). INSTALL - read on how to install - src/apprentice.c - parses /etc/magic to learn magic +src/asctime_r.c - replacement for OS's that don't have it. src/apptype.c - used for OS/2 specific application type magic src/asprintf.c - replacement for OS's that don't have it. src/ascmagic.c - third & last set of tests, based on hardwired assumptions. -src/asctime_r.c - for systems that don't have it. -src/asprintf.c - for systems that don't have it. -src/cdf.c - parser for Microsoft Compound Document Files +src/asctime_r.c - replacement for OS's that don't have it. +src/asprintf.c - replacement for OS's that don't have it. +src/cdf.[ch] - parser for Microsoft Compound Document Files src/cdf_time.c - time converter for CDF. src/compress.c - handles decompressing files to look inside. -src/ctime_r.c - for systems that don't have it. +src/ctime_r.c - replacement for OS's that don't have it. +src/elfclass.h - common code for elf 32/64. src/encoding.c - handles unicode encodings src/file.c - the main program src/file.h - header file +src/file_opts.h - list of options +src/fmtcheck.c - replacement for OS's that don't have it. src/fsmagic.c - first set of tests the program runs, based on filesystem info src/funcs.c - utilility functions -src/getopt_long.c - for systems that don't have it. -src/getline.c - for systems that don't have it. +src/getline.c - replacement for OS's that don't have it. +src/getopt_long.c - replacement for OS's that don't have it. src/is_tar.c, tar.h - knows about tarchives (courtesy John Gilmore). src/names.h - header file for ascmagic.c +src/magic.h.in - source file for magic.h src/magic.c - the libmagic api +src/pread.c - replacement for OS's that don't have it. src/print.c - print results, errors, warnings. src/readcdf.c - CDF wrapper. src/readelf.[ch] - Stand-alone elf parsing code. src/softmagic.c - 2nd set of tests, based on /etc/magic -src/strlcat.c - for systems that don't have it. -src/strlcpy.c - for systems that don't have it. +src/mygetopt.h - replacement for OS's that don't have it. +src/strcasestr.c - replacement for OS's that don't have it. +src/strlcat.c - replacement for OS's that don't have it. +src/strlcpy.c - replacement for OS's that don't have it. +src/tar.h - tar file definitions src/vasprintf.c - for systems that don't have it. doc/file.man - man page for the command doc/magic.man - man page for the magic file, courtesy Guy Harris. Modified: vendor/file/dist/aclocal.m4 ============================================================================== --- vendor/file/dist/aclocal.m4 Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/aclocal.m4 Fri Jan 2 20:49:47 2015 (r276568) @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.14 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -21,7 +21,7 @@ If you have problems, you may need to re To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # visibility.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2005, 2008, 2010-2014 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2008, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -113,7 +113,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], +m4_if([$1], [1.14], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -129,7 +129,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl +[AM_AUTOMAKE_VERSION([1.14])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) Modified: vendor/file/dist/configure ============================================================================== --- vendor/file/dist/configure Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/configure Fri Jan 2 20:49:47 2015 (r276568) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for file 5.21. +# Generated by GNU Autoconf 2.69 for file 5.22. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='file' PACKAGE_TARNAME='file' -PACKAGE_VERSION='5.21' -PACKAGE_STRING='file 5.21' +PACKAGE_VERSION='5.22' +PACKAGE_STRING='file 5.22' PACKAGE_BUGREPORT='christos@astron.com' PACKAGE_URL='' @@ -1327,7 +1327,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures file 5.21 to adapt to many kinds of systems. +\`configure' configures file 5.22 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1397,7 +1397,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of file 5.21:";; + short | recursive ) echo "Configuration of file 5.22:";; esac cat <<\_ACEOF @@ -1507,7 +1507,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -file configure 5.21 +file configure 5.22 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2163,7 +2163,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by file $as_me 5.21, which was +It was created by file $as_me 5.22, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3029,7 +3029,7 @@ fi # Define the identity of the package. PACKAGE='file' - VERSION='5.21' + VERSION='5.22' cat >>confdefs.h <<_ACEOF @@ -14998,7 +14998,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by file $as_me 5.21, which was +This file was extended by file $as_me 5.22, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15064,7 +15064,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -file config.status 5.21 +file config.status 5.22 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: vendor/file/dist/configure.ac ============================================================================== --- vendor/file/dist/configure.ac Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/configure.ac Fri Jan 2 20:49:47 2015 (r276568) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([file],[5.21],[christos@astron.com]) +AC_INIT([file],[5.22],[christos@astron.com]) AM_INIT_AUTOMAKE([subdir-objects foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) Modified: vendor/file/dist/doc/Makefile.in ============================================================================== --- vendor/file/dist/doc/Makefile.in Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/doc/Makefile.in Fri Jan 2 20:49:47 2015 (r276568) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. Modified: vendor/file/dist/doc/file.man ============================================================================== --- vendor/file/dist/doc/file.man Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/doc/file.man Fri Jan 2 20:49:47 2015 (r276568) @@ -1,5 +1,5 @@ -.\" $File: file.man,v 1.110 2014/11/28 02:46:39 christos Exp $ -.Dd November 27, 2014 +.\" $File: file.man,v 1.111 2014/12/16 23:18:40 christos Exp $ +.Dd December 16, 2014 .Dt FILE __CSECTION__ .Os .Sh NAME @@ -310,6 +310,7 @@ Set various parameter limits. .It Sy "Name" Ta Sy "Default" Ta Sy "Explanation" .It Li indir Ta 15 Ta recursion limit for indirect magic .It Li name Ta 30 Ta use count limit for name/use magic +.It Li elf_notes Ta 256 Ta max ELF notes processed .It Li elf_phnum Ta 128 Ta max ELF program sections processed .It Li elf_shnum Ta 32768 Ta max ELF sections processed .El Modified: vendor/file/dist/doc/libmagic.man ============================================================================== --- vendor/file/dist/doc/libmagic.man Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/doc/libmagic.man Fri Jan 2 20:49:47 2015 (r276568) @@ -1,4 +1,4 @@ -.\" $File: libmagic.man,v 1.33 2014/11/28 02:46:39 christos Exp $ +.\" $File: libmagic.man,v 1.34 2014/12/16 23:18:40 christos Exp $ .\" .\" Copyright (c) Christos Zoulas 2003. .\" All Rights Reserved. @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 27, 2014 +.Dd December 16, 2014 .Dt LIBMAGIC 3 .Os .Sh NAME @@ -284,6 +284,7 @@ library. .It Sy "Parameter" Ta Sy "Type" Ta Sy "Default" .It Li MAGIC_PARAM_INDIR_MAX Ta size_t Ta 15 .It Li MAGIC_PARAM_NAME_MAX Ta size_t Ta 30 +.It Li MAGIC_PARAM_ELF_NOTES_MAX Ta size_t Ta 256 .It Li MAGIC_PARAM_ELF_PHNUM_MAX Ta size_t Ta 128 .It Li MAGIC_PARAM_ELF_SHNUM_MAX Ta size_t Ta 32768 .El @@ -303,12 +304,16 @@ The parameter controls the maximum number of calls for name/use. .Pp The +.Dv MAGIC_PARAM_NOTES_MAX +parameter controls how many ELF notes will be processed. +.Pp +The .Dv MAGIC_PARAM_PHNUM_MAX -parameter controls how many elf program sections will be processed. +parameter controls how many ELF program sections will be processed. .Pp The .Dv MAGIC_PARAM_SHNUM_MAX -parameter controls how many elf sections will be processed. +parameter controls how many ELF sections will be processed. .Pp The .Fn magic_version Modified: vendor/file/dist/doc/magic.man ============================================================================== --- vendor/file/dist/doc/magic.man Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/doc/magic.man Fri Jan 2 20:49:47 2015 (r276568) @@ -1,5 +1,5 @@ -.\" $File: magic.man,v 1.84 2014/06/03 19:01:34 christos Exp $ -.Dd June 3, 2014 +.\" $File: magic.man,v 1.85 2015/01/01 17:07:34 christos Exp $ +.Dd January 1, 2015 .Dt MAGIC __FSECTION__ .Os .\" install as magic.4 on USG, magic.5 on V7, Berkeley and Linux systems. @@ -200,6 +200,11 @@ interpreted as a UNIX-style date, but in than UTC. .It Dv indirect Starting at the given offset, consult the magic database again. +The offset of th +.Dv indirect +magic is by default absolute in the file, but one can specify +.Dv /r +to indicate that the offset is relative from the beginning of the entry. .It Dv name Define a .Dq named Modified: vendor/file/dist/magic/Localstuff ============================================================================== --- vendor/file/dist/magic/Localstuff Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/magic/Localstuff Fri Jan 2 20:49:47 2015 (r276568) @@ -2,6 +2,6 @@ #------------------------------------------------------------------------------ # Localstuff: file(1) magic for locally observed files # -# $File: Localstuff,v 1.5 2007/01/12 17:38:27 christos Exp $ +# $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $ # Add any locally observed files here. Remember: # text if readable, executable if runnable binary, data if unreadable. Modified: vendor/file/dist/magic/Magdir/cafebabe ============================================================================== --- vendor/file/dist/magic/Magdir/cafebabe Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/magic/Magdir/cafebabe Fri Jan 2 20:49:47 2015 (r276568) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: cafebabe,v 1.16 2014/04/30 21:41:02 christos Exp $ +# $File: cafebabe,v 1.17 2015/01/01 17:07:00 christos Exp $ # Cafe Babes unite! # # Since Java bytecode and Mach-O universal binaries have the same magic number, @@ -45,7 +45,7 @@ 0 name mach-o \b [ >0 use mach-o-cpu \b ->&(8.L) indirect \b: +>(8.L) indirect \b: >0 belong x \b] 0 belong 0xcafebabe Modified: vendor/file/dist/magic/Magdir/filesystems ============================================================================== --- vendor/file/dist/magic/Magdir/filesystems Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/magic/Magdir/filesystems Fri Jan 2 20:49:47 2015 (r276568) @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------ -# $File: filesystems,v 1.107 2014/12/03 18:02:52 christos Exp $ +# $File: filesystems,v 1.108 2015/01/01 17:43:47 christos Exp $ # filesystems: file(1) magic for different filesystems # 0 name partid @@ -260,6 +260,13 @@ >>(11.s-2) uleshort 0xAA55 DOS/MBR boot sector # for sector sizes with 512 or more Bytes >0x1FE leshort 0xAA55 DOS/MBR boot sector + +# keep old DOS/MBR boot sector as dummy for mbr and bootloader displaying +# only for sector sizes with 512 or more Bytes +0x1FE leshort 0xAA55 DOS/MBR boot sector +# +# to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version +!:strength +65 >2 string OSBS OS/BS MBR # added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/ # and http://en.wikipedia.org/wiki/Master_Boot_Record Modified: vendor/file/dist/magic/Magdir/images ============================================================================== --- vendor/file/dist/magic/Magdir/images Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/magic/Magdir/images Fri Jan 2 20:49:47 2015 (r276568) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: images,v 1.97 2014/12/08 16:06:19 christos Exp $ +# $File: images,v 1.102 2015/01/02 02:36:35 christos Exp $ # images: file(1) magic for image formats (see also "iff", and "c-lang" for # XPM bitmaps) # @@ -115,7 +115,7 @@ # never changed. The TIFF specification recommends testing for it. 0 string MM\x00\x2a TIFF image data, big-endian !:mime image/tiff ->(4.L) use tiff_ifd +>(4.L) use \^tiff_ifd 0 string II\x2a\x00 TIFF image data, little-endian !:mime image/tiff >(4.l) use tiff_ifd @@ -125,54 +125,57 @@ >2 use tiff_entry 0 name tiff_entry +# NewSubFileType +>0 leshort 0xfe +>>12 use tiff_entry >0 leshort 0x100 >>4 lelong 1 >>>12 use tiff_entry ->>>8 lelong x \b, width=%d +>>>8 leshort x \b, width=%d >0 leshort 0x101 >>4 lelong 1 ->>>8 lelong x \b, height=%d +>>>8 leshort x \b, height=%d >>>12 use tiff_entry >0 leshort 0x102 ->>8 lelong x \b, bps=%d +>>8 leshort x \b, bps=%d >>12 use tiff_entry >0 leshort 0x103 >>4 lelong 1 \b, compression= ->>>8 lelong 1 \bnone ->>>8 lelong 2 \bhuffman ->>>8 lelong 3 \bbi-level group 3 ->>>8 lelong 4 \bbi-level group 4 ->>>8 lelong 5 \bLZW ->>>8 lelong 6 \bJPEG (old) ->>>8 lelong 7 \bJPEG ->>>8 lelong 8 \bdeflate ->>>8 lelong 9 \bJBIG, ITU-T T.85 ->>>8 lelong 0xa \bJBIG, ITU-T T.43 ->>>8 lelong 0x7ffe \bNeXT RLE 2-bit ->>>8 lelong 0x8005 \bPackBits (Macintosh RLE) ->>>8 lelong 0x8029 \bThunderscan RLE ->>>8 lelong 0x807f \bRasterPadding (CT or MP) ->>>8 lelong 0x8080 \bRLE (Line Work) ->>>8 lelong 0x8081 \bRLE (High-Res Cont-Tone) ->>>8 lelong 0x8082 \bRLE (Binary Line Work) ->>>8 lelong 0x80b2 \bDeflate (PKZIP) ->>>8 lelong 0x80b3 \bKodak DCS ->>>8 lelong 0x8765 \bJBIG ->>>8 lelong 0x8798 \bJPEG2000 ->>>8 lelong 0x8799 \bNikon NEF Compressed +>>>8 leshort 1 \bnone +>>>8 leshort 2 \bhuffman +>>>8 leshort 3 \bbi-level group 3 +>>>8 leshort 4 \bbi-level group 4 +>>>8 leshort 5 \bLZW +>>>8 leshort 6 \bJPEG (old) +>>>8 leshort 7 \bJPEG +>>>8 leshort 8 \bdeflate +>>>8 leshort 9 \bJBIG, ITU-T T.85 +>>>8 leshort 0xa \bJBIG, ITU-T T.43 +>>>8 leshort 0x7ffe \bNeXT RLE 2-bit +>>>8 leshort 0x8005 \bPackBits (Macintosh RLE) +>>>8 leshort 0x8029 \bThunderscan RLE +>>>8 leshort 0x807f \bRasterPadding (CT or MP) +>>>8 leshort 0x8080 \bRLE (Line Work) +>>>8 leshort 0x8081 \bRLE (High-Res Cont-Tone) +>>>8 leshort 0x8082 \bRLE (Binary Line Work) +>>>8 leshort 0x80b2 \bDeflate (PKZIP) +>>>8 leshort 0x80b3 \bKodak DCS +>>>8 leshort 0x8765 \bJBIG +>>>8 leshort 0x8798 \bJPEG2000 +>>>8 leshort 0x8799 \bNikon NEF Compressed >>>8 default x ->>>>8 lelong x \b(unknown 0x%x) +>>>>8 leshort x \b(unknown 0x%x) >>>12 use tiff_entry >0 leshort 0x106 \b, PhotometricIntepretation= ->>8 lelong 0 \bWhiteIsZero ->>8 lelong 1 \bBlackIsZero ->>8 lelong 2 \bRGB ->>8 lelong 3 \bRGB Palette ->>8 lelong 4 \bTransparency Mask ->>8 lelong 5 \bCMYK ->>8 lelong 6 \bYCbCr ->>8 lelong 8 \bCIELab ->>>8 lelong x \b(unknown=0x%x) +>>8 leshort 0 \bWhiteIsZero +>>8 leshort 1 \bBlackIsZero +>>8 leshort 2 \bRGB +>>8 leshort 3 \bRGB Palette +>>8 leshort 4 \bTransparency Mask +>>8 leshort 5 \bCMYK +>>8 leshort 6 \bYCbCr +>>8 leshort 8 \bCIELab +>>>8 leshort x \b(unknown=0x%x) >>12 use tiff_entry # FillOrder >0 leshort 0x10a @@ -186,21 +189,79 @@ >0 leshort 0x10e >>(8.l) string x \b, description=%s >>>12 use tiff_entry +# Make +>0 leshort 0x10f +>>(8.l) string x \b, manufacturer=%s +>>>12 use tiff_entry +# Model +>0 leshort 0x110 +>>(8.l) string x \b, model=%s +>>>12 use tiff_entry # StripOffsets >0 leshort 0x111 >>12 use tiff_entry -# NewSubFileType ->0 leshort 0xfe +# Orientation +>0 leshort 0x112 \b, orientation= +>>8 leshort 1 \bupper-left +>>8 leshort 3 \blower-right +>>8 leshort 6 \bupper-right +>>8 leshort 8 \blower-left +>>8 leshort 9 \bundefined +>>8 default x +>>>8 leshort x \b[*%d*] +>>12 use tiff_entry +# XResolution +>0 leshort 0x11a +>>8 lelong x \b, xresolution=%d +>>12 use tiff_entry +# YResolution +>0 leshort 0x11b +>>8 lelong x \b, yresolution=%d +>>12 use tiff_entry +# ResolutionUnit +>0 leshort 0x128 +>>8 leshort x \b, resolutionunit=%d +>>12 use tiff_entry +# Software +>0 leshort 0x131 +>>(8.l) string x \b, software=%s >>12 use tiff_entry # Datetime >0 leshort 0x132 >>(8.l) string x \b, datetime=%s ->>>12 use tiff_entry +>>12 use tiff_entry # HostComputer >0 leshort 0x13c >>(8.l) string x \b, hostcomputer=%s ->>>12 use tiff_entry +>>12 use tiff_entry +# WhitePoint +>0 leshort 0x13e +>>12 use tiff_entry +# PrimaryChromaticities +>0 leshort 0x13f +>>12 use tiff_entry +# YCbCrCoefficients +>0 leshort 0x211 +>>12 use tiff_entry +# YCbCrPositioning +>0 leshort 0x213 +>>12 use tiff_entry +# ReferenceBlackWhite +>0 leshort 0x214 +>>12 use tiff_entry +# Copyright +>0 leshort 0x8298 +>>(8.l) string x \b, copyright=%s +>>12 use tiff_entry +# ExifOffset +>0 leshort 0x8769 +>>12 use tiff_entry +# GPS IFD +>0 leshort 0x8825 \b, GPS-Data +>>12 use tiff_entry + #>0 leshort x \b, unknown=0x%x +#>>12 use tiff_entry 0 string MM\x00\x2b Big TIFF image data, big-endian !:mime image/tiff Modified: vendor/file/dist/magic/Magdir/jpeg ============================================================================== --- vendor/file/dist/magic/Magdir/jpeg Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/magic/Magdir/jpeg Fri Jan 2 20:49:47 2015 (r276568) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: jpeg,v 1.21 2014/09/12 20:47:00 christos Exp $ +# $File: jpeg,v 1.25 2015/01/02 16:56:50 christos Exp $ # JPEG images # SunOS 5.5.1 had # @@ -31,98 +31,9 @@ # Next, show thumbnail info, if it exists: >>18 byte !0 \b, thumbnail %dx >>>19 byte x \b%d - -# EXIF moved down here to avoid reporting a bogus version number, -# and EXIF version number printing added. -# - Patrik R=E5dman ->6 string Exif \b, EXIF standard -# Look for EXIF IFD offset in IFD 0, and then look for EXIF version tag in EXIF IFD. -# All possible combinations of entries have to be enumerated, since no looping -# is possible. And both endians are possible... -# The combinations included below are from real-world JPEGs. -# Little-endian ->>12 string II -# IFD 0 Entry #5: ->>>70 leshort 0x8769 -# EXIF IFD Entry #1: ->>>>(78.l+14) leshort 0x9000 ->>>>>(78.l+23) byte x %c ->>>>>(78.l+24) byte x \b.%c ->>>>>(78.l+25) byte !0x30 \b%c -# IFD 0 Entry #9: ->>>118 leshort 0x8769 -# EXIF IFD Entry #3: ->>>>(126.l+38) leshort 0x9000 ->>>>>(126.l+47) byte x %c ->>>>>(126.l+48) byte x \b.%c ->>>>>(126.l+49) byte !0x30 \b%c -# IFD 0 Entry #10 ->>>130 leshort 0x8769 -# EXIF IFD Entry #3: ->>>>(138.l+38) leshort 0x9000 ->>>>>(138.l+47) byte x %c ->>>>>(138.l+48) byte x \b.%c ->>>>>(138.l+49) byte !0x30 \b%c -# EXIF IFD Entry #4: ->>>>(138.l+50) leshort 0x9000 ->>>>>(138.l+59) byte x %c ->>>>>(138.l+60) byte x \b.%c ->>>>>(138.l+61) byte !0x30 \b%c -# EXIF IFD Entry #5: ->>>>(138.l+62) leshort 0x9000 ->>>>>(138.l+71) byte x %c ->>>>>(138.l+72) byte x \b.%c ->>>>>(138.l+73) byte !0x30 \b%c -# IFD 0 Entry #11 ->>>142 leshort 0x8769 -# EXIF IFD Entry #3: ->>>>(150.l+38) leshort 0x9000 ->>>>>(150.l+47) byte x %c ->>>>>(150.l+48) byte x \b.%c ->>>>>(150.l+49) byte !0x30 \b%c -# EXIF IFD Entry #4: ->>>>(150.l+50) leshort 0x9000 ->>>>>(150.l+59) byte x %c ->>>>>(150.l+60) byte x \b.%c ->>>>>(150.l+61) byte !0x30 \b%c -# EXIF IFD Entry #5: ->>>>(150.l+62) leshort 0x9000 ->>>>>(150.l+71) byte x %c ->>>>>(150.l+72) byte x \b.%c ->>>>>(150.l+73) byte !0x30 \b%c -# Big-endian ->>12 string MM -# IFD 0 Entry #9: ->>>118 beshort 0x8769 -# EXIF IFD Entry #1: ->>>>(126.L+14) beshort 0x9000 ->>>>>(126.L+23) byte x %c ->>>>>(126.L+24) byte x \b.%c ->>>>>(126.L+25) byte !0x30 \b%c -# EXIF IFD Entry #3: ->>>>(126.L+38) beshort 0x9000 ->>>>>(126.L+47) byte x %c ->>>>>(126.L+48) byte x \b.%c ->>>>>(126.L+49) byte !0x30 \b%c -# IFD 0 Entry #10 ->>>130 beshort 0x8769 -# EXIF IFD Entry #3: ->>>>(138.L+38) beshort 0x9000 ->>>>>(138.L+47) byte x %c ->>>>>(138.L+48) byte x \b.%c ->>>>>(138.L+49) byte !0x30 \b%c -# EXIF IFD Entry #5: ->>>>(138.L+62) beshort 0x9000 ->>>>>(138.L+71) byte x %c ->>>>>(138.L+72) byte x \b.%c ->>>>>(138.L+73) byte !0x30 \b%c -# IFD 0 Entry #11 ->>>142 beshort 0x8769 -# EXIF IFD Entry #4: ->>>>(150.L+50) beshort 0x9000 ->>>>>(150.L+59) byte x %c ->>>>>(150.L+60) byte x \b.%c ->>>>>(150.L+61) byte !0x30 \b%c +>6 string Exif \b, Exif standard: [ +>>12 indirect/r x +>>12 string x \b] # Jump to the first segment >(4.S+4) use jpeg_segment @@ -158,6 +69,12 @@ >0 beshort 0xFFC4 >>(2.S+2) use jpeg_segment +>0 beshort 0xFFE1 +#>>(2.S+2) use jpeg_segment +>>4 string Exif \b, Exif Standard: [ +>>>10 indirect/r x +>>>10 string x \b] + # Application specific markers >0 beshort&0xFFE0 =0xFFE0 >>(2.S+2) use jpeg_segment @@ -170,6 +87,9 @@ >0 beshort&0xFFD0 =0xFFD0 >>(2.S+2) use jpeg_segment +#>0 beshort x unknown 0x%x +#>>(2.S+2) use jpeg_segment + # HSI is Handmade Software's proprietary JPEG encoding scheme 0 string hsi1 JPEG image data, HSI proprietary Added: vendor/file/dist/magic/Magdir/qt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/file/dist/magic/Magdir/qt Fri Jan 2 20:49:47 2015 (r276568) @@ -0,0 +1,19 @@ + +#------------------------------------------------------------------------------ +# $File: qt,v 1.2 2014/12/16 19:49:29 christos Exp $ +# qt: file(1) magic for Qt + +# http://doc.qt.io/qt-5/resources.html +0 string \ Qt Resource Collection file + +# https://qt.gitorious.org/qt/qtbase/source/\ +# 5367fa356233da4c0f28172a8f817791525f5457:\ +# src/tools/rcc/rcc.cpp#L840 +0 string qres\0\0 Qt Binary Resource file +0 search/1024 The\040Resource\040Compiler\040for\040Qt Qt C-code resource file + +# https://qt.gitorious.org/qt/qtbase/source/\ +# 5367fa356233da4c0f28172a8f817791525f5457:\ +# src/corelib/kernel/qtranslator.cpp#L62 +0 string \x3c\xb8\x64\x18\xca\xef\x9c\x95 +>8 string \xcd\x21\x1c\xbf\x60\xa1\xbd\xdd Qt Translation file Modified: vendor/file/dist/magic/Makefile.am ============================================================================== --- vendor/file/dist/magic/Makefile.am Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/magic/Makefile.am Fri Jan 2 20:49:47 2015 (r276568) @@ -1,5 +1,5 @@ # -# $File: Makefile.am,v 1.100 2014/12/10 18:45:43 christos Exp $ +# $File: Makefile.am,v 1.101 2014/12/12 16:48:39 christos Exp $ # MAGIC_FRAGMENT_BASE = Magdir MAGIC_DIR = $(top_srcdir)/magic @@ -198,6 +198,7 @@ $(MAGIC_FRAGMENT_DIR)/pulsar \ $(MAGIC_FRAGMENT_DIR)/pwsafe \ $(MAGIC_FRAGMENT_DIR)/pyramid \ $(MAGIC_FRAGMENT_DIR)/python \ +$(MAGIC_FRAGMENT_DIR)/qt \ $(MAGIC_FRAGMENT_DIR)/revision \ $(MAGIC_FRAGMENT_DIR)/riff \ $(MAGIC_FRAGMENT_DIR)/rpm \ Modified: vendor/file/dist/magic/Makefile.in ============================================================================== --- vendor/file/dist/magic/Makefile.in Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/magic/Makefile.in Fri Jan 2 20:49:47 2015 (r276568) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -262,7 +262,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # -# $File: Makefile.am,v 1.100 2014/12/10 18:45:43 christos Exp $ +# $File: Makefile.am,v 1.101 2014/12/12 16:48:39 christos Exp $ # MAGIC_FRAGMENT_BASE = Magdir MAGIC_DIR = $(top_srcdir)/magic @@ -459,6 +459,7 @@ $(MAGIC_FRAGMENT_DIR)/pulsar \ $(MAGIC_FRAGMENT_DIR)/pwsafe \ $(MAGIC_FRAGMENT_DIR)/pyramid \ $(MAGIC_FRAGMENT_DIR)/python \ +$(MAGIC_FRAGMENT_DIR)/qt \ $(MAGIC_FRAGMENT_DIR)/revision \ $(MAGIC_FRAGMENT_DIR)/riff \ $(MAGIC_FRAGMENT_DIR)/rpm \ Modified: vendor/file/dist/missing ============================================================================== --- vendor/file/dist/missing Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/missing Fri Jan 2 20:49:47 2015 (r276568) @@ -1,7 +1,7 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. @@ -160,7 +160,7 @@ give_advice () ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." + echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) Modified: vendor/file/dist/python/Makefile.in ============================================================================== --- vendor/file/dist/python/Makefile.in Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/python/Makefile.in Fri Jan 2 20:49:47 2015 (r276568) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. Modified: vendor/file/dist/src/Makefile.in ============================================================================== --- vendor/file/dist/src/Makefile.in Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/src/Makefile.in Fri Jan 2 20:49:47 2015 (r276568) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,9 +81,9 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = file$(EXEEXT) subdir = src -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am strcasestr.c \ - pread.c strlcpy.c vasprintf.c getopt_long.c asctime_r.c \ - strlcat.c ctime_r.c getline.c asprintf.c fmtcheck.c \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ctime_r.c \ + vasprintf.c asctime_r.c asprintf.c strcasestr.c pread.c \ + getline.c strlcpy.c strlcat.c fmtcheck.c getopt_long.c \ $(top_srcdir)/depcomp $(include_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ Modified: vendor/file/dist/src/apprentice.c ============================================================================== --- vendor/file/dist/src/apprentice.c Fri Jan 2 20:49:43 2015 (r276567) +++ vendor/file/dist/src/apprentice.c Fri Jan 2 20:49:47 2015 (r276568) @@ -32,7 +32,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: apprentice.c,v 1.227 2014/11/28 02:46:39 christos Exp $") +FILE_RCSID("@(#)$File: apprentice.c,v 1.229 2015/01/01 17:07:34 christos Exp $") #endif /* lint */ #include "magic.h" @@ -528,6 +528,7 @@ file_ms_alloc(int flags) ms->name_max = FILE_NAME_MAX; ms->elf_shnum_max = FILE_ELF_SHNUM_MAX; ms->elf_phnum_max = FILE_ELF_PHNUM_MAX; + ms->elf_notes_max = FILE_ELF_NOTES_MAX; return ms; free: free(ms); @@ -1604,6 +1605,145 @@ check_cond(struct magic_set *ms, int con } #endif /* ENABLE_CONDITIONALS */ +private int +parse_indirect_modifier(struct magic_set *ms, struct magic *m, const char **lp) +{ + const char *l = *lp; + + while (!isspace((unsigned char)*++l)) + switch (*l) { + case CHAR_INDIRECT_RELATIVE: + m->str_flags |= INDIRECT_RELATIVE; + break; + default: + if (ms->flags & MAGIC_CHECK) + file_magwarn(ms, "indirect modifier `%c' " + "invalid", *l); + *lp = l; + return -1; + } + *lp = l; + return 0; +} + +private void +parse_op_modifier(struct magic_set *ms, struct magic *m, const char **lp, + int op) +{ + const char *l = *lp; + char *t; + uint64_t val; + + ++l; + m->mask_op |= op; + val = (uint64_t)strtoull(l, &t, 0); + l = t; + m->num_mask = file_signextend(ms, m, val); + eatsize(&l); + *lp = l; +} + +private int +parse_string_modifier(struct magic_set *ms, struct magic *m, const char **lp) +{ + const char *l = *lp; + char *t; + int have_range = 0; + + while (!isspace((unsigned char)*++l)) { + switch (*l) { + case '0': case '1': case '2': + case '3': case '4': case '5': + case '6': case '7': case '8': + case '9': + if (have_range && (ms->flags & MAGIC_CHECK)) + file_magwarn(ms, "multiple ranges"); + have_range = 1; + m->str_range = CAST(uint32_t, strtoul(l, &t, 0)); + if (m->str_range == 0) + file_magwarn(ms, "zero range"); + l = t - 1; + break; + case CHAR_COMPACT_WHITESPACE: + m->str_flags |= STRING_COMPACT_WHITESPACE; + break; + case CHAR_COMPACT_OPTIONAL_WHITESPACE: + m->str_flags |= STRING_COMPACT_OPTIONAL_WHITESPACE; + break; + case CHAR_IGNORE_LOWERCASE: + m->str_flags |= STRING_IGNORE_LOWERCASE; + break; + case CHAR_IGNORE_UPPERCASE: + m->str_flags |= STRING_IGNORE_UPPERCASE; + break; + case CHAR_REGEX_OFFSET_START: + m->str_flags |= REGEX_OFFSET_START; + break; + case CHAR_BINTEST: + m->str_flags |= STRING_BINTEST; + break; + case CHAR_TEXTTEST: + m->str_flags |= STRING_TEXTTEST; + break; + case CHAR_TRIM: + m->str_flags |= STRING_TRIM; + break; + case CHAR_PSTRING_1_LE: +#define SET_LENGTH(a) m->str_flags = (m->str_flags & ~PSTRING_LEN) | (a) + if (m->type != FILE_PSTRING) + goto bad; + SET_LENGTH(PSTRING_1_LE); + break; + case CHAR_PSTRING_2_BE: + if (m->type != FILE_PSTRING) + goto bad; + SET_LENGTH(PSTRING_2_BE); + break; + case CHAR_PSTRING_2_LE: + if (m->type != FILE_PSTRING) + goto bad; + SET_LENGTH(PSTRING_2_LE); + break; + case CHAR_PSTRING_4_BE: + if (m->type != FILE_PSTRING) + goto bad; + SET_LENGTH(PSTRING_4_BE); + break; + case CHAR_PSTRING_4_LE: + switch (m->type) { + case FILE_PSTRING: + case FILE_REGEX: + break; + default: + goto bad; + } + SET_LENGTH(PSTRING_4_LE); + break; + case CHAR_PSTRING_LENGTH_INCLUDES_ITSELF: + if (m->type != FILE_PSTRING) + goto bad; + m->str_flags |= PSTRING_LENGTH_INCLUDES_ITSELF; + break; + default: + bad: + if (ms->flags & MAGIC_CHECK) + file_magwarn(ms, "string modifier `%c' " + "invalid", *l); + goto out; + } + /* allow multiple '/' for readability */ + if (l[1] == '/' && !isspace((unsigned char)l[2])) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:50:16 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 88BFCD00; Fri, 2 Jan 2015 20:50:16 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5B5161266; Fri, 2 Jan 2015 20:50:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02KoGKQ037151; Fri, 2 Jan 2015 20:50:16 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02KoGnE037150; Fri, 2 Jan 2015 20:50:16 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501022050.t02KoGnE037150@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 20:50:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276569 - vendor/file/5.22 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:50:16 -0000 Author: delphij Date: Fri Jan 2 20:50:15 2015 New Revision: 276569 URL: https://svnweb.freebsd.org/changeset/base/276569 Log: Tag file 5.22. Added: vendor/file/5.22/ - copied from r276568, vendor/file/dist/ From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:52:52 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 74816F53; Fri, 2 Jan 2015 20:52:52 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 60CAA12D5; Fri, 2 Jan 2015 20:52:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Kqqxm041185; Fri, 2 Jan 2015 20:52:52 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Kqq7V041184; Fri, 2 Jan 2015 20:52:52 GMT (envelope-from np@FreeBSD.org) Message-Id: <201501022052.t02Kqq7V041184@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 2 Jan 2015 20:52:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276570 - head/sys/dev/cxgbe/tom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:52:52 -0000 Author: np Date: Fri Jan 2 20:52:51 2015 New Revision: 276570 URL: https://svnweb.freebsd.org/changeset/base/276570 Log: cxgbe/tom: log some more details in send_flowc_wr. MFC after: 1 week Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Fri Jan 2 20:50:15 2015 (r276569) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Fri Jan 2 20:52:51 2015 (r276570) @@ -111,8 +111,6 @@ send_flowc_wr(struct toepcb *toep, struc KASSERT(!(toep->flags & TPF_FLOWC_WR_SENT), ("%s: flowc for tid %u sent already", __func__, toep->tid)); - CTR2(KTR_CXGBE, "%s: tid %u", __func__, toep->tid); - flowclen = sizeof(*flowc) + nparams * sizeof(struct fw_flowc_mnemval); wr = alloc_wrqe(roundup2(flowclen, 16), toep->ofld_txq); @@ -147,11 +145,18 @@ send_flowc_wr(struct toepcb *toep, struc flowc->mnemval[6].val = htobe32(sndbuf); flowc->mnemval[7].mnemonic = FW_FLOWC_MNEM_MSS; flowc->mnemval[7].val = htobe32(ftxp->mss); + + CTR6(KTR_CXGBE, + "%s: tid %u, mss %u, sndbuf %u, snd_nxt 0x%x, rcv_nxt 0x%x", + __func__, toep->tid, ftxp->mss, sndbuf, ftxp->snd_nxt, + ftxp->rcv_nxt); } else { flowc->mnemval[4].mnemonic = FW_FLOWC_MNEM_SNDBUF; flowc->mnemval[4].val = htobe32(512); flowc->mnemval[5].mnemonic = FW_FLOWC_MNEM_MSS; flowc->mnemval[5].val = htobe32(512); + + CTR2(KTR_CXGBE, "%s: tid %u", __func__, toep->tid); } txsd->tx_credits = howmany(flowclen, 16); From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:56:18 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 834F8167; Fri, 2 Jan 2015 20:56:18 +0000 (UTC) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "troutmask", Issuer "troutmask" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 610D112FF; Fri, 2 Jan 2015 20:56:18 +0000 (UTC) Received: from troutmask.apl.washington.edu (localhost [127.0.0.1]) by troutmask.apl.washington.edu (8.14.9/8.14.9) with ESMTP id t02KiweQ072285 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 2 Jan 2015 12:44:58 -0800 (PST) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.9/8.14.9/Submit) id t02Kiw5l072284; Fri, 2 Jan 2015 12:44:58 -0800 (PST) (envelope-from sgk) Date: Fri, 2 Jan 2015 12:44:58 -0800 From: Steve Kargl To: Garrett Cooper Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc Message-ID: <20150102204458.GA72199@troutmask.apl.washington.edu> References: <201501022034.t02KYu1I030453@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201501022034.t02KYu1I030453@svn.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:56:18 -0000 On Fri, Jan 02, 2015 at 08:34:56PM +0000, Garrett Cooper wrote: > Author: ngie > Date: Fri Jan 2 20:34:55 2015 > New Revision: 276565 > URL: https://svnweb.freebsd.org/changeset/base/276565 > > Log: > Remove gnu/ info pages to unbreak the build with MK_GCC != no, etc > Does this mean that FreeBSD is now shipping utilities without documentation? -- Steve From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 20:59:13 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 64C3C2CD; Fri, 2 Jan 2015 20:59:13 +0000 (UTC) Received: from mail-wi0-x232.google.com (mail-wi0-x232.google.com [IPv6:2a00:1450:400c:c05::232]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E19821341; Fri, 2 Jan 2015 20:59:12 +0000 (UTC) Received: by mail-wi0-f178.google.com with SMTP id em10so155303wid.5; Fri, 02 Jan 2015 12:59:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=2WAbs673plw+p+HppIT/M7u/NbpyiyAXUrPmVrKvwFE=; b=eeYawMP+sqledRfv0eZcehJ8U6XAarmyXVXbKa8UIc1SZnbnY1HoMBonMuNJ2ccT/s bORx7fNPoQ4rjFxcWqhQHQg0pyWsUbnzKNRdsu+P9vl9XwdWxeGsWzlXjMtt/gjestmv +/WR5w2v4VpQP2ftjdYABjJzs4OikPNGPDc+jU0GwCRJ8mpFB47d8Tpe9teWTP64dgEd UzMAaNv1l76LMpVOCFCLxHJVylDgSJ3vuHefTjCvLHBxJD85UZE1HzxP6Fs3BAATU1Zo qtkgb+/ADNQv0Ldstq4L1utxyICc3sikIH8qT9mQtdGWjcX8oevT/vbLok/3jhzFyMsh IGIQ== MIME-Version: 1.0 X-Received: by 10.180.228.108 with SMTP id sh12mr997842wic.55.1420232351153; Fri, 02 Jan 2015 12:59:11 -0800 (PST) Received: by 10.27.179.168 with HTTP; Fri, 2 Jan 2015 12:59:11 -0800 (PST) In-Reply-To: <20150102204458.GA72199@troutmask.apl.washington.edu> References: <201501022034.t02KYu1I030453@svn.freebsd.org> <20150102204458.GA72199@troutmask.apl.washington.edu> Date: Fri, 2 Jan 2015 15:59:11 -0500 Message-ID: Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc From: Benjamin Kaduk To: Steve Kargl Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 20:59:13 -0000 On Fri, Jan 2, 2015 at 3:44 PM, Steve Kargl < sgk@troutmask.apl.washington.edu> wrote: > On Fri, Jan 02, 2015 at 08:34:56PM +0000, Garrett Cooper wrote: > > Author: ngie > > Date: Fri Jan 2 20:34:55 2015 > > New Revision: 276565 > > URL: https://svnweb.freebsd.org/changeset/base/276565 > > > > Log: > > Remove gnu/ info pages to unbreak the build with MK_GCC != no, etc > > > > Does this mean that FreeBSD is now shipping utilities without > documentation? > I'm pretty sure we've been doing that for a long, long time. Note that MK_GCC=no is the default on head for the tier-1 platforms. -Ben From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:02:42 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9F4C0462; Fri, 2 Jan 2015 21:02:42 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8AD6414A9; Fri, 2 Jan 2015 21:02:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02L2gBR046878; Fri, 2 Jan 2015 21:02:42 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02L2g60046875; Fri, 2 Jan 2015 21:02:42 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501022102.t02L2g60046875@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 21:02:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276571 - head/usr.sbin/portsnap/phttpget X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:02:42 -0000 Author: delphij Date: Fri Jan 2 21:02:41 2015 New Revision: 276571 URL: https://svnweb.freebsd.org/changeset/base/276571 Log: Add a manual page for phttpget(8). MFC after: 1 month Added: head/usr.sbin/portsnap/phttpget/phttpget.8 (contents, props changed) Modified: head/usr.sbin/portsnap/phttpget/Makefile Modified: head/usr.sbin/portsnap/phttpget/Makefile ============================================================================== --- head/usr.sbin/portsnap/phttpget/Makefile Fri Jan 2 20:52:51 2015 (r276570) +++ head/usr.sbin/portsnap/phttpget/Makefile Fri Jan 2 21:02:41 2015 (r276571) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= phttpget -MAN= +MAN= phttpget.8 BINDIR= ${LIBEXECDIR} Added: head/usr.sbin/portsnap/phttpget/phttpget.8 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/portsnap/phttpget/phttpget.8 Fri Jan 2 21:02:41 2015 (r276571) @@ -0,0 +1,88 @@ +.\"- +.\" Copyright (c) 2015 Xin Li +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 3, 2015 +.Dt PHTTPGET 8 +.Os +.Sh NAME +.Nm phttpget +.Nd retrieve multiple files via pipelined HTTP +.Sh SYNOPSIS +.Nm +.Ar server +.Ar file ... +.Sh DESCRIPTION +The +.Nm +utility is a minimalist pipelined HTTP client, +which is used to retrieve multiple +.Ar file Ns s +from one +.Ar server , +and saves the downloaded files in the current working directory, +using the last portion of their download path as file names. +.Pp +By making several "in flight" HTTP requests, +it can dramatically increase performance when a large number of +small files need to be downloaded. +.Pp +The +.Xr freebsd-update 8 +and +.Xr portnap 8 +tools use +.Nm +to download binary patch files. +.Sh ENVIRONMENT +.Bl -tag -width HTTP_PROXY_AUTH +.It Ev HTTP_PROXY +URL of the proxy to use for HTTP requests. +.It Ev HTTP_PROXY_AUTH +Authorization parameters for the HTTP proxy. +.It Ev HTTP_USER_AGENT +The User-Agent string to use for HTTP requests. +The default is +.Dq phttpget/0.1 . +.It Ev HTTP_TIMEOUT +Timeout for HTTP request in seconds. +.El +.Sh SEE ALSO +.Xr fetch 1 , +.Xr freebsd-update 8 , +.Xr portsnap 8 +.Sh AUTHORS +.An -nosplit +The +.Nm +utility was written by +.An Colin Percival Aq Mt cperciva@FreeBSD.org +for use with +.Xr portsnap 8 +and later with +.Xr freebsd-update 8 . +This manual page was written by +.An Xin LI Aq Mt delphij@FreeBSD.org . From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:09:55 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6E66A8EE; Fri, 2 Jan 2015 21:09:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5863F157C; Fri, 2 Jan 2015 21:09:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02L9txR048433; Fri, 2 Jan 2015 21:09:55 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02L9tqU048432; Fri, 2 Jan 2015 21:09:55 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022109.t02L9tqU048432@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 21:09:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276573 - head/release/doc/en_US.ISO8859-1/hardware X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:09:55 -0000 Author: gjb Date: Fri Jan 2 21:09:54 2015 New Revision: 276573 URL: https://svnweb.freebsd.org/changeset/base/276573 Log: Remove hwlist.asr macro, asr(4) removed in r276526. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/hardware/article.xml Modified: head/release/doc/en_US.ISO8859-1/hardware/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/hardware/article.xml Fri Jan 2 21:08:34 2015 (r276572) +++ head/release/doc/en_US.ISO8859-1/hardware/article.xml Fri Jan 2 21:09:54 2015 (r276573) @@ -669,8 +669,6 @@ &hwlist.arcmsr; - &hwlist.asr; - &hwlist.bt; &hwlist.ciss; From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:13:26 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 041A0A6D; Fri, 2 Jan 2015 21:13:26 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E48AD16B8; Fri, 2 Jan 2015 21:13:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02LDPns052650; Fri, 2 Jan 2015 21:13:25 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02LDPIF052649; Fri, 2 Jan 2015 21:13:25 GMT (envelope-from np@FreeBSD.org) Message-Id: <201501022113.t02LDPIF052649@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 2 Jan 2015 21:13:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276574 - head/sys/dev/cxgbe/tom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:13:26 -0000 Author: np Date: Fri Jan 2 21:13:24 2015 New Revision: 276574 URL: https://svnweb.freebsd.org/changeset/base/276574 Log: cxgbe/tom: fix the MSS calculation for IPv6 connections handled by the TOE. MFC after: 1 week Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Fri Jan 2 21:09:54 2015 (r276573) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Fri Jan 2 21:13:24 2015 (r276574) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #define TCPSTATES #include @@ -236,11 +237,20 @@ static void assign_rxopt(struct tcpcb *tp, unsigned int opt) { struct toepcb *toep = tp->t_toe; + struct inpcb *inp = tp->t_inpcb; struct adapter *sc = td_adapter(toep->td); + int n; + + INP_LOCK_ASSERT(inp); - INP_LOCK_ASSERT(tp->t_inpcb); + if (inp->inp_inc.inc_flags & INC_ISIPV6) + n = sizeof(struct ip6_hdr) + sizeof(struct tcphdr); + else + n = sizeof(struct ip) + sizeof(struct tcphdr); + tp->t_maxseg = tp->t_maxopd = sc->params.mtus[G_TCPOPT_MSS(opt)] - n; - tp->t_maxseg = tp->t_maxopd = sc->params.mtus[G_TCPOPT_MSS(opt)] - 40; + CTR4(KTR_CXGBE, "%s: tid %d, mtu_idx %u (%u)", __func__, toep->tid, + G_TCPOPT_MSS(opt), sc->params.mtus[G_TCPOPT_MSS(opt)]); if (G_TCPOPT_TSTAMP(opt)) { tp->t_flags |= TF_RCVD_TSTMP; /* timestamps ok */ From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:16:14 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A019BCCE; Fri, 2 Jan 2015 21:16:14 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7206C16F7; Fri, 2 Jan 2015 21:16:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02LGEMx053325; Fri, 2 Jan 2015 21:16:14 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02LGEfM053324; Fri, 2 Jan 2015 21:16:14 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501022116.t02LGEfM053324@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 21:16:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276576 - stable/10 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:16:14 -0000 Author: bapt Date: Fri Jan 2 21:16:13 2015 New Revision: 276576 URL: https://svnweb.freebsd.org/changeset/base/276576 Log: Make texinfo a bootstrap tools this fixes cross building when makeinfo is not \ available on the host Differential Revision: https://reviews.freebsd.org/D1410 Submitted by: ngie (initial patch) Reviewed by: ngie, imp MFC after: 1 week Modified: stable/10/Makefile.inc1 Modified: stable/10/Makefile.inc1 ============================================================================== --- stable/10/Makefile.inc1 Fri Jan 2 21:13:32 2015 (r276575) +++ stable/10/Makefile.inc1 Fri Jan 2 21:16:13 2015 (r276576) @@ -233,6 +233,7 @@ CROSSENV+= GROFF_BIN_PATH=${WORLDTMP}/le GROFF_TMAC_PATH=${WORLDTMP}/legacy/usr/share/tmac .endif +_BOOTSTRAP_MAKEINFO?= ${MK_INFO} # bootstrap-tools stage BMAKEENV= INSTALL="sh ${.CURDIR}/tools/install.sh" \ PATH=${BPATH}:${PATH} \ @@ -247,6 +248,7 @@ BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \ SSP_CFLAGS= \ -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN \ -DNO_PIC -DNO_PROFILE -DNO_SHARED \ + _BOOTSTRAP_MAKEINFO=${_BOOTSTRAP_MAKEINFO} \ -DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD -DNO_TESTS # build-tools stage @@ -1309,6 +1311,10 @@ _kerberos5_bootstrap_tools= \ usr.bin/compile_et .endif +.if ${_BOOTSTRAP_MAKEINFO} != "no" +_texinfo= gnu/usr.bin/texinfo/libtxi \ + gnu/usr.bin/texinfo/makeinfo +.endif # Please document (add comment) why something is in 'bootstrap-tools'. # Try to bound the building of the bootstrap-tool to just the # FreeBSD versions that need the tool built at this stage of the build. @@ -1338,6 +1344,7 @@ bootstrap-tools: .MAKE usr.sbin/config \ ${_crunch} \ ${_nmtree} \ + ${_texinfo} \ ${_vtfontcvt} ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ cd ${.CURDIR}/${_tool} && \ @@ -1358,11 +1365,6 @@ _share= share/syscons/scrnmaps _gcc_tools= gnu/usr.bin/cc/cc_tools .endif -.if ${MK_INFO} != "no" -_texinfo= gnu/usr.bin/texinfo/libtxi \ - gnu/usr.bin/texinfo/makeinfo -.endif - .if ${MK_RESCUE} != "no" _rescue= rescue/rescue .endif @@ -1394,15 +1396,6 @@ build-tools: .MAKE ${MAKE} DIRPRFX=${_tool}/ depend && \ ${MAKE} DIRPRFX=${_tool}/ all .endfor -.for _tool in \ - ${_texinfo} - ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ - cd ${.CURDIR}/${_tool} && \ - ${MAKE} DIRPRFX=${_tool}/ obj && \ - ${MAKE} DIRPRFX=${_tool}/ depend && \ - ${MAKE} DIRPRFX=${_tool}/ all && \ - ${MAKE} DIRPRFX=${_tool}/ install DESTDIR=${WORLDTMP} -.endfor # From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:20:09 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2F402E54; Fri, 2 Jan 2015 21:20:09 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 180021760; Fri, 2 Jan 2015 21:20:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02LK9UX054201; Fri, 2 Jan 2015 21:20:09 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02LK3up054153; Fri, 2 Jan 2015 21:20:03 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501022120.t02LK3up054153@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 21:20:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276577 - in head: contrib/file contrib/file/doc contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/tests lib/libmagic X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:20:09 -0000 Author: delphij Date: Fri Jan 2 21:20:02 2015 New Revision: 276577 URL: https://svnweb.freebsd.org/changeset/base/276577 Log: MFV r276568: Update file to 5.22. MFC after: 2 weeks Added: head/contrib/file/magic/Magdir/qt - copied unchanged from r276570, vendor/file/dist/magic/Magdir/qt Modified: head/contrib/file/ChangeLog head/contrib/file/Makefile.in head/contrib/file/README head/contrib/file/aclocal.m4 head/contrib/file/configure head/contrib/file/configure.ac head/contrib/file/doc/Makefile.in head/contrib/file/doc/file.man head/contrib/file/doc/libmagic.man head/contrib/file/doc/magic.man head/contrib/file/magic/Localstuff head/contrib/file/magic/Magdir/cafebabe head/contrib/file/magic/Magdir/filesystems head/contrib/file/magic/Magdir/images head/contrib/file/magic/Magdir/jpeg head/contrib/file/magic/Makefile.am head/contrib/file/magic/Makefile.in head/contrib/file/missing head/contrib/file/python/Makefile.in head/contrib/file/src/Makefile.in head/contrib/file/src/apprentice.c head/contrib/file/src/compress.c head/contrib/file/src/elfclass.h head/contrib/file/src/file.c head/contrib/file/src/file.h head/contrib/file/src/file_opts.h head/contrib/file/src/funcs.c head/contrib/file/src/getline.c head/contrib/file/src/magic.c head/contrib/file/src/magic.h head/contrib/file/src/magic.h.in head/contrib/file/src/readelf.c head/contrib/file/src/softmagic.c head/contrib/file/tests/Makefile.in head/lib/libmagic/config.h Directory Properties: head/contrib/file/ (props changed) Modified: head/contrib/file/ChangeLog ============================================================================== --- head/contrib/file/ChangeLog Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/ChangeLog Fri Jan 2 21:20:02 2015 (r276577) @@ -1,3 +1,29 @@ +2015-01-02 15:15 Christos Zoulas + + * release 5.22 + +2015-01-01 12:01 Christos Zoulas + + * add indirect relative for TIFF/Exif + +2014-12-16 18:10 Christos Zoulas + + * restructure elf note printing to avoid repeated messages + * add note limit, suggested by Alexander Cherepanov + +2014-12-16 16:53 Christos Zoulas + + * Bail out on partial pread()'s (Alexander Cherepanov) + * Fix incorrect bounds check in file_printable (Alexander Cherepanov) + +2014-12-11 20:01 Christos Zoulas + + * PR/405: ignore SIGPIPE from uncompress programs + * change printable -> file_printable and use it in + more places for safety + * in ELF, instead of "(uses dynamic libraries)" when PT_INTERP + is present print the interpreter name. + 2014-12-10 20:01 Christos Zoulas * release 5.21 @@ -23,6 +49,8 @@ - reduce the number of recursion levels from 20 to 10 - preserve error messages in indirect magic handling + This is tracked as CVE-2014-8116 and CVE-2014-8117 + 2014-11-12 10:30 Christos Zoulas * fix bogus free in the user buffer case. Modified: head/contrib/file/Makefile.in ============================================================================== --- head/contrib/file/Makefile.in Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/Makefile.in Fri Jan 2 21:20:02 2015 (r276577) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -618,10 +618,9 @@ distcheck: dist && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ Modified: head/contrib/file/README ============================================================================== --- head/contrib/file/README Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/README Fri Jan 2 21:20:02 2015 (r276577) @@ -1,6 +1,6 @@ ## README for file(1) Command ## - @(#) $File: README,v 1.48 2014/03/07 13:55:30 christos Exp $ + @(#) $File: README,v 1.49 2015/01/02 20:23:04 christos Exp $ Mailing List: file@mx.gw.com Mailing List archives: http://mx.gw.com/pipermail/file/ @@ -25,8 +25,8 @@ A public read-only git repository of the https://github.com/file/file -The major changes for 5.x are CDF file parsing, indirect magic, and -overhaul in mime and ascii encoding handling. +The major changes for 5.x are CDF file parsing, indirect magic, name/use +(recursion) and overhaul in mime and ascii encoding handling. The major feature of 4.x is the refactoring of the code into a library, and the re-write of the file command in terms of that library. The library @@ -67,33 +67,41 @@ in magic(5) format please, to the mainta COPYING - read this first. README - read this second (you are currently reading this file). INSTALL - read on how to install - src/apprentice.c - parses /etc/magic to learn magic +src/asctime_r.c - replacement for OS's that don't have it. src/apptype.c - used for OS/2 specific application type magic src/asprintf.c - replacement for OS's that don't have it. src/ascmagic.c - third & last set of tests, based on hardwired assumptions. -src/asctime_r.c - for systems that don't have it. -src/asprintf.c - for systems that don't have it. -src/cdf.c - parser for Microsoft Compound Document Files +src/asctime_r.c - replacement for OS's that don't have it. +src/asprintf.c - replacement for OS's that don't have it. +src/cdf.[ch] - parser for Microsoft Compound Document Files src/cdf_time.c - time converter for CDF. src/compress.c - handles decompressing files to look inside. -src/ctime_r.c - for systems that don't have it. +src/ctime_r.c - replacement for OS's that don't have it. +src/elfclass.h - common code for elf 32/64. src/encoding.c - handles unicode encodings src/file.c - the main program src/file.h - header file +src/file_opts.h - list of options +src/fmtcheck.c - replacement for OS's that don't have it. src/fsmagic.c - first set of tests the program runs, based on filesystem info src/funcs.c - utilility functions -src/getopt_long.c - for systems that don't have it. -src/getline.c - for systems that don't have it. +src/getline.c - replacement for OS's that don't have it. +src/getopt_long.c - replacement for OS's that don't have it. src/is_tar.c, tar.h - knows about tarchives (courtesy John Gilmore). src/names.h - header file for ascmagic.c +src/magic.h.in - source file for magic.h src/magic.c - the libmagic api +src/pread.c - replacement for OS's that don't have it. src/print.c - print results, errors, warnings. src/readcdf.c - CDF wrapper. src/readelf.[ch] - Stand-alone elf parsing code. src/softmagic.c - 2nd set of tests, based on /etc/magic -src/strlcat.c - for systems that don't have it. -src/strlcpy.c - for systems that don't have it. +src/mygetopt.h - replacement for OS's that don't have it. +src/strcasestr.c - replacement for OS's that don't have it. +src/strlcat.c - replacement for OS's that don't have it. +src/strlcpy.c - replacement for OS's that don't have it. +src/tar.h - tar file definitions src/vasprintf.c - for systems that don't have it. doc/file.man - man page for the command doc/magic.man - man page for the magic file, courtesy Guy Harris. Modified: head/contrib/file/aclocal.m4 ============================================================================== --- head/contrib/file/aclocal.m4 Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/aclocal.m4 Fri Jan 2 21:20:02 2015 (r276577) @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.14 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -21,7 +21,7 @@ If you have problems, you may need to re To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # visibility.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2005, 2008, 2010-2014 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2008, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -113,7 +113,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], +m4_if([$1], [1.14], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -129,7 +129,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl +[AM_AUTOMAKE_VERSION([1.14])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) Modified: head/contrib/file/configure ============================================================================== --- head/contrib/file/configure Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/configure Fri Jan 2 21:20:02 2015 (r276577) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for file 5.21. +# Generated by GNU Autoconf 2.69 for file 5.22. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='file' PACKAGE_TARNAME='file' -PACKAGE_VERSION='5.21' -PACKAGE_STRING='file 5.21' +PACKAGE_VERSION='5.22' +PACKAGE_STRING='file 5.22' PACKAGE_BUGREPORT='christos@astron.com' PACKAGE_URL='' @@ -1327,7 +1327,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures file 5.21 to adapt to many kinds of systems. +\`configure' configures file 5.22 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1397,7 +1397,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of file 5.21:";; + short | recursive ) echo "Configuration of file 5.22:";; esac cat <<\_ACEOF @@ -1507,7 +1507,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -file configure 5.21 +file configure 5.22 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2163,7 +2163,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by file $as_me 5.21, which was +It was created by file $as_me 5.22, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3029,7 +3029,7 @@ fi # Define the identity of the package. PACKAGE='file' - VERSION='5.21' + VERSION='5.22' cat >>confdefs.h <<_ACEOF @@ -14998,7 +14998,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by file $as_me 5.21, which was +This file was extended by file $as_me 5.22, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15064,7 +15064,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -file config.status 5.21 +file config.status 5.22 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/file/configure.ac ============================================================================== --- head/contrib/file/configure.ac Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/configure.ac Fri Jan 2 21:20:02 2015 (r276577) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([file],[5.21],[christos@astron.com]) +AC_INIT([file],[5.22],[christos@astron.com]) AM_INIT_AUTOMAKE([subdir-objects foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) Modified: head/contrib/file/doc/Makefile.in ============================================================================== --- head/contrib/file/doc/Makefile.in Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/doc/Makefile.in Fri Jan 2 21:20:02 2015 (r276577) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. Modified: head/contrib/file/doc/file.man ============================================================================== --- head/contrib/file/doc/file.man Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/doc/file.man Fri Jan 2 21:20:02 2015 (r276577) @@ -1,5 +1,5 @@ -.\" $File: file.man,v 1.110 2014/11/28 02:46:39 christos Exp $ -.Dd November 27, 2014 +.\" $File: file.man,v 1.111 2014/12/16 23:18:40 christos Exp $ +.Dd December 16, 2014 .Dt FILE __CSECTION__ .Os .Sh NAME @@ -310,6 +310,7 @@ Set various parameter limits. .It Sy "Name" Ta Sy "Default" Ta Sy "Explanation" .It Li indir Ta 15 Ta recursion limit for indirect magic .It Li name Ta 30 Ta use count limit for name/use magic +.It Li elf_notes Ta 256 Ta max ELF notes processed .It Li elf_phnum Ta 128 Ta max ELF program sections processed .It Li elf_shnum Ta 32768 Ta max ELF sections processed .El Modified: head/contrib/file/doc/libmagic.man ============================================================================== --- head/contrib/file/doc/libmagic.man Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/doc/libmagic.man Fri Jan 2 21:20:02 2015 (r276577) @@ -1,4 +1,4 @@ -.\" $File: libmagic.man,v 1.33 2014/11/28 02:46:39 christos Exp $ +.\" $File: libmagic.man,v 1.34 2014/12/16 23:18:40 christos Exp $ .\" .\" Copyright (c) Christos Zoulas 2003. .\" All Rights Reserved. @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 27, 2014 +.Dd December 16, 2014 .Dt LIBMAGIC 3 .Os .Sh NAME @@ -284,6 +284,7 @@ library. .It Sy "Parameter" Ta Sy "Type" Ta Sy "Default" .It Li MAGIC_PARAM_INDIR_MAX Ta size_t Ta 15 .It Li MAGIC_PARAM_NAME_MAX Ta size_t Ta 30 +.It Li MAGIC_PARAM_ELF_NOTES_MAX Ta size_t Ta 256 .It Li MAGIC_PARAM_ELF_PHNUM_MAX Ta size_t Ta 128 .It Li MAGIC_PARAM_ELF_SHNUM_MAX Ta size_t Ta 32768 .El @@ -303,12 +304,16 @@ The parameter controls the maximum number of calls for name/use. .Pp The +.Dv MAGIC_PARAM_NOTES_MAX +parameter controls how many ELF notes will be processed. +.Pp +The .Dv MAGIC_PARAM_PHNUM_MAX -parameter controls how many elf program sections will be processed. +parameter controls how many ELF program sections will be processed. .Pp The .Dv MAGIC_PARAM_SHNUM_MAX -parameter controls how many elf sections will be processed. +parameter controls how many ELF sections will be processed. .Pp The .Fn magic_version Modified: head/contrib/file/doc/magic.man ============================================================================== --- head/contrib/file/doc/magic.man Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/doc/magic.man Fri Jan 2 21:20:02 2015 (r276577) @@ -1,5 +1,5 @@ -.\" $File: magic.man,v 1.84 2014/06/03 19:01:34 christos Exp $ -.Dd June 3, 2014 +.\" $File: magic.man,v 1.85 2015/01/01 17:07:34 christos Exp $ +.Dd January 1, 2015 .Dt MAGIC __FSECTION__ .Os .\" install as magic.4 on USG, magic.5 on V7, Berkeley and Linux systems. @@ -200,6 +200,11 @@ interpreted as a UNIX-style date, but in than UTC. .It Dv indirect Starting at the given offset, consult the magic database again. +The offset of th +.Dv indirect +magic is by default absolute in the file, but one can specify +.Dv /r +to indicate that the offset is relative from the beginning of the entry. .It Dv name Define a .Dq named Modified: head/contrib/file/magic/Localstuff ============================================================================== --- head/contrib/file/magic/Localstuff Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/magic/Localstuff Fri Jan 2 21:20:02 2015 (r276577) @@ -2,6 +2,6 @@ #------------------------------------------------------------------------------ # Localstuff: file(1) magic for locally observed files # -# $File: Localstuff,v 1.5 2007/01/12 17:38:27 christos Exp $ +# $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $ # Add any locally observed files here. Remember: # text if readable, executable if runnable binary, data if unreadable. Modified: head/contrib/file/magic/Magdir/cafebabe ============================================================================== --- head/contrib/file/magic/Magdir/cafebabe Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/magic/Magdir/cafebabe Fri Jan 2 21:20:02 2015 (r276577) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: cafebabe,v 1.16 2014/04/30 21:41:02 christos Exp $ +# $File: cafebabe,v 1.17 2015/01/01 17:07:00 christos Exp $ # Cafe Babes unite! # # Since Java bytecode and Mach-O universal binaries have the same magic number, @@ -45,7 +45,7 @@ 0 name mach-o \b [ >0 use mach-o-cpu \b ->&(8.L) indirect \b: +>(8.L) indirect \b: >0 belong x \b] 0 belong 0xcafebabe Modified: head/contrib/file/magic/Magdir/filesystems ============================================================================== --- head/contrib/file/magic/Magdir/filesystems Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/magic/Magdir/filesystems Fri Jan 2 21:20:02 2015 (r276577) @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------ -# $File: filesystems,v 1.107 2014/12/03 18:02:52 christos Exp $ +# $File: filesystems,v 1.108 2015/01/01 17:43:47 christos Exp $ # filesystems: file(1) magic for different filesystems # 0 name partid @@ -260,6 +260,13 @@ >>(11.s-2) uleshort 0xAA55 DOS/MBR boot sector # for sector sizes with 512 or more Bytes >0x1FE leshort 0xAA55 DOS/MBR boot sector + +# keep old DOS/MBR boot sector as dummy for mbr and bootloader displaying +# only for sector sizes with 512 or more Bytes +0x1FE leshort 0xAA55 DOS/MBR boot sector +# +# to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version +!:strength +65 >2 string OSBS OS/BS MBR # added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/ # and http://en.wikipedia.org/wiki/Master_Boot_Record Modified: head/contrib/file/magic/Magdir/images ============================================================================== --- head/contrib/file/magic/Magdir/images Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/magic/Magdir/images Fri Jan 2 21:20:02 2015 (r276577) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: images,v 1.97 2014/12/08 16:06:19 christos Exp $ +# $File: images,v 1.102 2015/01/02 02:36:35 christos Exp $ # images: file(1) magic for image formats (see also "iff", and "c-lang" for # XPM bitmaps) # @@ -115,7 +115,7 @@ # never changed. The TIFF specification recommends testing for it. 0 string MM\x00\x2a TIFF image data, big-endian !:mime image/tiff ->(4.L) use tiff_ifd +>(4.L) use \^tiff_ifd 0 string II\x2a\x00 TIFF image data, little-endian !:mime image/tiff >(4.l) use tiff_ifd @@ -125,54 +125,57 @@ >2 use tiff_entry 0 name tiff_entry +# NewSubFileType +>0 leshort 0xfe +>>12 use tiff_entry >0 leshort 0x100 >>4 lelong 1 >>>12 use tiff_entry ->>>8 lelong x \b, width=%d +>>>8 leshort x \b, width=%d >0 leshort 0x101 >>4 lelong 1 ->>>8 lelong x \b, height=%d +>>>8 leshort x \b, height=%d >>>12 use tiff_entry >0 leshort 0x102 ->>8 lelong x \b, bps=%d +>>8 leshort x \b, bps=%d >>12 use tiff_entry >0 leshort 0x103 >>4 lelong 1 \b, compression= ->>>8 lelong 1 \bnone ->>>8 lelong 2 \bhuffman ->>>8 lelong 3 \bbi-level group 3 ->>>8 lelong 4 \bbi-level group 4 ->>>8 lelong 5 \bLZW ->>>8 lelong 6 \bJPEG (old) ->>>8 lelong 7 \bJPEG ->>>8 lelong 8 \bdeflate ->>>8 lelong 9 \bJBIG, ITU-T T.85 ->>>8 lelong 0xa \bJBIG, ITU-T T.43 ->>>8 lelong 0x7ffe \bNeXT RLE 2-bit ->>>8 lelong 0x8005 \bPackBits (Macintosh RLE) ->>>8 lelong 0x8029 \bThunderscan RLE ->>>8 lelong 0x807f \bRasterPadding (CT or MP) ->>>8 lelong 0x8080 \bRLE (Line Work) ->>>8 lelong 0x8081 \bRLE (High-Res Cont-Tone) ->>>8 lelong 0x8082 \bRLE (Binary Line Work) ->>>8 lelong 0x80b2 \bDeflate (PKZIP) ->>>8 lelong 0x80b3 \bKodak DCS ->>>8 lelong 0x8765 \bJBIG ->>>8 lelong 0x8798 \bJPEG2000 ->>>8 lelong 0x8799 \bNikon NEF Compressed +>>>8 leshort 1 \bnone +>>>8 leshort 2 \bhuffman +>>>8 leshort 3 \bbi-level group 3 +>>>8 leshort 4 \bbi-level group 4 +>>>8 leshort 5 \bLZW +>>>8 leshort 6 \bJPEG (old) +>>>8 leshort 7 \bJPEG +>>>8 leshort 8 \bdeflate +>>>8 leshort 9 \bJBIG, ITU-T T.85 +>>>8 leshort 0xa \bJBIG, ITU-T T.43 +>>>8 leshort 0x7ffe \bNeXT RLE 2-bit +>>>8 leshort 0x8005 \bPackBits (Macintosh RLE) +>>>8 leshort 0x8029 \bThunderscan RLE +>>>8 leshort 0x807f \bRasterPadding (CT or MP) +>>>8 leshort 0x8080 \bRLE (Line Work) +>>>8 leshort 0x8081 \bRLE (High-Res Cont-Tone) +>>>8 leshort 0x8082 \bRLE (Binary Line Work) +>>>8 leshort 0x80b2 \bDeflate (PKZIP) +>>>8 leshort 0x80b3 \bKodak DCS +>>>8 leshort 0x8765 \bJBIG +>>>8 leshort 0x8798 \bJPEG2000 +>>>8 leshort 0x8799 \bNikon NEF Compressed >>>8 default x ->>>>8 lelong x \b(unknown 0x%x) +>>>>8 leshort x \b(unknown 0x%x) >>>12 use tiff_entry >0 leshort 0x106 \b, PhotometricIntepretation= ->>8 lelong 0 \bWhiteIsZero ->>8 lelong 1 \bBlackIsZero ->>8 lelong 2 \bRGB ->>8 lelong 3 \bRGB Palette ->>8 lelong 4 \bTransparency Mask ->>8 lelong 5 \bCMYK ->>8 lelong 6 \bYCbCr ->>8 lelong 8 \bCIELab ->>>8 lelong x \b(unknown=0x%x) +>>8 leshort 0 \bWhiteIsZero +>>8 leshort 1 \bBlackIsZero +>>8 leshort 2 \bRGB +>>8 leshort 3 \bRGB Palette +>>8 leshort 4 \bTransparency Mask +>>8 leshort 5 \bCMYK +>>8 leshort 6 \bYCbCr +>>8 leshort 8 \bCIELab +>>>8 leshort x \b(unknown=0x%x) >>12 use tiff_entry # FillOrder >0 leshort 0x10a @@ -186,21 +189,79 @@ >0 leshort 0x10e >>(8.l) string x \b, description=%s >>>12 use tiff_entry +# Make +>0 leshort 0x10f +>>(8.l) string x \b, manufacturer=%s +>>>12 use tiff_entry +# Model +>0 leshort 0x110 +>>(8.l) string x \b, model=%s +>>>12 use tiff_entry # StripOffsets >0 leshort 0x111 >>12 use tiff_entry -# NewSubFileType ->0 leshort 0xfe +# Orientation +>0 leshort 0x112 \b, orientation= +>>8 leshort 1 \bupper-left +>>8 leshort 3 \blower-right +>>8 leshort 6 \bupper-right +>>8 leshort 8 \blower-left +>>8 leshort 9 \bundefined +>>8 default x +>>>8 leshort x \b[*%d*] +>>12 use tiff_entry +# XResolution +>0 leshort 0x11a +>>8 lelong x \b, xresolution=%d +>>12 use tiff_entry +# YResolution +>0 leshort 0x11b +>>8 lelong x \b, yresolution=%d +>>12 use tiff_entry +# ResolutionUnit +>0 leshort 0x128 +>>8 leshort x \b, resolutionunit=%d +>>12 use tiff_entry +# Software +>0 leshort 0x131 +>>(8.l) string x \b, software=%s >>12 use tiff_entry # Datetime >0 leshort 0x132 >>(8.l) string x \b, datetime=%s ->>>12 use tiff_entry +>>12 use tiff_entry # HostComputer >0 leshort 0x13c >>(8.l) string x \b, hostcomputer=%s ->>>12 use tiff_entry +>>12 use tiff_entry +# WhitePoint +>0 leshort 0x13e +>>12 use tiff_entry +# PrimaryChromaticities +>0 leshort 0x13f +>>12 use tiff_entry +# YCbCrCoefficients +>0 leshort 0x211 +>>12 use tiff_entry +# YCbCrPositioning +>0 leshort 0x213 +>>12 use tiff_entry +# ReferenceBlackWhite +>0 leshort 0x214 +>>12 use tiff_entry +# Copyright +>0 leshort 0x8298 +>>(8.l) string x \b, copyright=%s +>>12 use tiff_entry +# ExifOffset +>0 leshort 0x8769 +>>12 use tiff_entry +# GPS IFD +>0 leshort 0x8825 \b, GPS-Data +>>12 use tiff_entry + #>0 leshort x \b, unknown=0x%x +#>>12 use tiff_entry 0 string MM\x00\x2b Big TIFF image data, big-endian !:mime image/tiff Modified: head/contrib/file/magic/Magdir/jpeg ============================================================================== --- head/contrib/file/magic/Magdir/jpeg Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/magic/Magdir/jpeg Fri Jan 2 21:20:02 2015 (r276577) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: jpeg,v 1.21 2014/09/12 20:47:00 christos Exp $ +# $File: jpeg,v 1.25 2015/01/02 16:56:50 christos Exp $ # JPEG images # SunOS 5.5.1 had # @@ -31,98 +31,9 @@ # Next, show thumbnail info, if it exists: >>18 byte !0 \b, thumbnail %dx >>>19 byte x \b%d - -# EXIF moved down here to avoid reporting a bogus version number, -# and EXIF version number printing added. -# - Patrik R=E5dman ->6 string Exif \b, EXIF standard -# Look for EXIF IFD offset in IFD 0, and then look for EXIF version tag in EXIF IFD. -# All possible combinations of entries have to be enumerated, since no looping -# is possible. And both endians are possible... -# The combinations included below are from real-world JPEGs. -# Little-endian ->>12 string II -# IFD 0 Entry #5: ->>>70 leshort 0x8769 -# EXIF IFD Entry #1: ->>>>(78.l+14) leshort 0x9000 ->>>>>(78.l+23) byte x %c ->>>>>(78.l+24) byte x \b.%c ->>>>>(78.l+25) byte !0x30 \b%c -# IFD 0 Entry #9: ->>>118 leshort 0x8769 -# EXIF IFD Entry #3: ->>>>(126.l+38) leshort 0x9000 ->>>>>(126.l+47) byte x %c ->>>>>(126.l+48) byte x \b.%c ->>>>>(126.l+49) byte !0x30 \b%c -# IFD 0 Entry #10 ->>>130 leshort 0x8769 -# EXIF IFD Entry #3: ->>>>(138.l+38) leshort 0x9000 ->>>>>(138.l+47) byte x %c ->>>>>(138.l+48) byte x \b.%c ->>>>>(138.l+49) byte !0x30 \b%c -# EXIF IFD Entry #4: ->>>>(138.l+50) leshort 0x9000 ->>>>>(138.l+59) byte x %c ->>>>>(138.l+60) byte x \b.%c ->>>>>(138.l+61) byte !0x30 \b%c -# EXIF IFD Entry #5: ->>>>(138.l+62) leshort 0x9000 ->>>>>(138.l+71) byte x %c ->>>>>(138.l+72) byte x \b.%c ->>>>>(138.l+73) byte !0x30 \b%c -# IFD 0 Entry #11 ->>>142 leshort 0x8769 -# EXIF IFD Entry #3: ->>>>(150.l+38) leshort 0x9000 ->>>>>(150.l+47) byte x %c ->>>>>(150.l+48) byte x \b.%c ->>>>>(150.l+49) byte !0x30 \b%c -# EXIF IFD Entry #4: ->>>>(150.l+50) leshort 0x9000 ->>>>>(150.l+59) byte x %c ->>>>>(150.l+60) byte x \b.%c ->>>>>(150.l+61) byte !0x30 \b%c -# EXIF IFD Entry #5: ->>>>(150.l+62) leshort 0x9000 ->>>>>(150.l+71) byte x %c ->>>>>(150.l+72) byte x \b.%c ->>>>>(150.l+73) byte !0x30 \b%c -# Big-endian ->>12 string MM -# IFD 0 Entry #9: ->>>118 beshort 0x8769 -# EXIF IFD Entry #1: ->>>>(126.L+14) beshort 0x9000 ->>>>>(126.L+23) byte x %c ->>>>>(126.L+24) byte x \b.%c ->>>>>(126.L+25) byte !0x30 \b%c -# EXIF IFD Entry #3: ->>>>(126.L+38) beshort 0x9000 ->>>>>(126.L+47) byte x %c ->>>>>(126.L+48) byte x \b.%c ->>>>>(126.L+49) byte !0x30 \b%c -# IFD 0 Entry #10 ->>>130 beshort 0x8769 -# EXIF IFD Entry #3: ->>>>(138.L+38) beshort 0x9000 ->>>>>(138.L+47) byte x %c ->>>>>(138.L+48) byte x \b.%c ->>>>>(138.L+49) byte !0x30 \b%c -# EXIF IFD Entry #5: ->>>>(138.L+62) beshort 0x9000 ->>>>>(138.L+71) byte x %c ->>>>>(138.L+72) byte x \b.%c ->>>>>(138.L+73) byte !0x30 \b%c -# IFD 0 Entry #11 ->>>142 beshort 0x8769 -# EXIF IFD Entry #4: ->>>>(150.L+50) beshort 0x9000 ->>>>>(150.L+59) byte x %c ->>>>>(150.L+60) byte x \b.%c ->>>>>(150.L+61) byte !0x30 \b%c +>6 string Exif \b, Exif standard: [ +>>12 indirect/r x +>>12 string x \b] # Jump to the first segment >(4.S+4) use jpeg_segment @@ -158,6 +69,12 @@ >0 beshort 0xFFC4 >>(2.S+2) use jpeg_segment +>0 beshort 0xFFE1 +#>>(2.S+2) use jpeg_segment +>>4 string Exif \b, Exif Standard: [ +>>>10 indirect/r x +>>>10 string x \b] + # Application specific markers >0 beshort&0xFFE0 =0xFFE0 >>(2.S+2) use jpeg_segment @@ -170,6 +87,9 @@ >0 beshort&0xFFD0 =0xFFD0 >>(2.S+2) use jpeg_segment +#>0 beshort x unknown 0x%x +#>>(2.S+2) use jpeg_segment + # HSI is Handmade Software's proprietary JPEG encoding scheme 0 string hsi1 JPEG image data, HSI proprietary Copied: head/contrib/file/magic/Magdir/qt (from r276570, vendor/file/dist/magic/Magdir/qt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/file/magic/Magdir/qt Fri Jan 2 21:20:02 2015 (r276577, copy of r276570, vendor/file/dist/magic/Magdir/qt) @@ -0,0 +1,19 @@ + +#------------------------------------------------------------------------------ +# $File: qt,v 1.2 2014/12/16 19:49:29 christos Exp $ +# qt: file(1) magic for Qt + +# http://doc.qt.io/qt-5/resources.html +0 string \ Qt Resource Collection file + +# https://qt.gitorious.org/qt/qtbase/source/\ +# 5367fa356233da4c0f28172a8f817791525f5457:\ +# src/tools/rcc/rcc.cpp#L840 +0 string qres\0\0 Qt Binary Resource file +0 search/1024 The\040Resource\040Compiler\040for\040Qt Qt C-code resource file + +# https://qt.gitorious.org/qt/qtbase/source/\ +# 5367fa356233da4c0f28172a8f817791525f5457:\ +# src/corelib/kernel/qtranslator.cpp#L62 +0 string \x3c\xb8\x64\x18\xca\xef\x9c\x95 +>8 string \xcd\x21\x1c\xbf\x60\xa1\xbd\xdd Qt Translation file Modified: head/contrib/file/magic/Makefile.am ============================================================================== --- head/contrib/file/magic/Makefile.am Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/magic/Makefile.am Fri Jan 2 21:20:02 2015 (r276577) @@ -1,5 +1,5 @@ # -# $File: Makefile.am,v 1.100 2014/12/10 18:45:43 christos Exp $ +# $File: Makefile.am,v 1.101 2014/12/12 16:48:39 christos Exp $ # MAGIC_FRAGMENT_BASE = Magdir MAGIC_DIR = $(top_srcdir)/magic @@ -198,6 +198,7 @@ $(MAGIC_FRAGMENT_DIR)/pulsar \ $(MAGIC_FRAGMENT_DIR)/pwsafe \ $(MAGIC_FRAGMENT_DIR)/pyramid \ $(MAGIC_FRAGMENT_DIR)/python \ +$(MAGIC_FRAGMENT_DIR)/qt \ $(MAGIC_FRAGMENT_DIR)/revision \ $(MAGIC_FRAGMENT_DIR)/riff \ $(MAGIC_FRAGMENT_DIR)/rpm \ Modified: head/contrib/file/magic/Makefile.in ============================================================================== --- head/contrib/file/magic/Makefile.in Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/magic/Makefile.in Fri Jan 2 21:20:02 2015 (r276577) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -262,7 +262,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # -# $File: Makefile.am,v 1.100 2014/12/10 18:45:43 christos Exp $ +# $File: Makefile.am,v 1.101 2014/12/12 16:48:39 christos Exp $ # MAGIC_FRAGMENT_BASE = Magdir MAGIC_DIR = $(top_srcdir)/magic @@ -459,6 +459,7 @@ $(MAGIC_FRAGMENT_DIR)/pulsar \ $(MAGIC_FRAGMENT_DIR)/pwsafe \ $(MAGIC_FRAGMENT_DIR)/pyramid \ $(MAGIC_FRAGMENT_DIR)/python \ +$(MAGIC_FRAGMENT_DIR)/qt \ $(MAGIC_FRAGMENT_DIR)/revision \ $(MAGIC_FRAGMENT_DIR)/riff \ $(MAGIC_FRAGMENT_DIR)/rpm \ Modified: head/contrib/file/missing ============================================================================== --- head/contrib/file/missing Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/missing Fri Jan 2 21:20:02 2015 (r276577) @@ -1,7 +1,7 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. @@ -160,7 +160,7 @@ give_advice () ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." + echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) Modified: head/contrib/file/python/Makefile.in ============================================================================== --- head/contrib/file/python/Makefile.in Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/python/Makefile.in Fri Jan 2 21:20:02 2015 (r276577) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. Modified: head/contrib/file/src/Makefile.in ============================================================================== --- head/contrib/file/src/Makefile.in Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/src/Makefile.in Fri Jan 2 21:20:02 2015 (r276577) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,9 +81,9 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = file$(EXEEXT) subdir = src -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am strcasestr.c \ - pread.c strlcpy.c vasprintf.c getopt_long.c asctime_r.c \ - strlcat.c ctime_r.c getline.c asprintf.c fmtcheck.c \ +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ctime_r.c \ + vasprintf.c asctime_r.c asprintf.c strcasestr.c pread.c \ + getline.c strlcpy.c strlcat.c fmtcheck.c getopt_long.c \ $(top_srcdir)/depcomp $(include_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ Modified: head/contrib/file/src/apprentice.c ============================================================================== --- head/contrib/file/src/apprentice.c Fri Jan 2 21:16:13 2015 (r276576) +++ head/contrib/file/src/apprentice.c Fri Jan 2 21:20:02 2015 (r276577) @@ -32,7 +32,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: apprentice.c,v 1.227 2014/11/28 02:46:39 christos Exp $") +FILE_RCSID("@(#)$File: apprentice.c,v 1.229 2015/01/01 17:07:34 christos Exp $") #endif /* lint */ #include "magic.h" @@ -528,6 +528,7 @@ file_ms_alloc(int flags) ms->name_max = FILE_NAME_MAX; ms->elf_shnum_max = FILE_ELF_SHNUM_MAX; ms->elf_phnum_max = FILE_ELF_PHNUM_MAX; + ms->elf_notes_max = FILE_ELF_NOTES_MAX; return ms; free: free(ms); @@ -1604,6 +1605,145 @@ check_cond(struct magic_set *ms, int con } #endif /* ENABLE_CONDITIONALS */ +private int +parse_indirect_modifier(struct magic_set *ms, struct magic *m, const char **lp) +{ + const char *l = *lp; + + while (!isspace((unsigned char)*++l)) + switch (*l) { + case CHAR_INDIRECT_RELATIVE: + m->str_flags |= INDIRECT_RELATIVE; + break; + default: + if (ms->flags & MAGIC_CHECK) + file_magwarn(ms, "indirect modifier `%c' " + "invalid", *l); + *lp = l; + return -1; + } + *lp = l; + return 0; +} + +private void +parse_op_modifier(struct magic_set *ms, struct magic *m, const char **lp, + int op) +{ + const char *l = *lp; + char *t; + uint64_t val; + + ++l; + m->mask_op |= op; + val = (uint64_t)strtoull(l, &t, 0); + l = t; + m->num_mask = file_signextend(ms, m, val); + eatsize(&l); + *lp = l; +} + +private int +parse_string_modifier(struct magic_set *ms, struct magic *m, const char **lp) +{ + const char *l = *lp; + char *t; + int have_range = 0; + + while (!isspace((unsigned char)*++l)) { + switch (*l) { + case '0': case '1': case '2': + case '3': case '4': case '5': + case '6': case '7': case '8': + case '9': + if (have_range && (ms->flags & MAGIC_CHECK)) + file_magwarn(ms, "multiple ranges"); + have_range = 1; + m->str_range = CAST(uint32_t, strtoul(l, &t, 0)); + if (m->str_range == 0) + file_magwarn(ms, "zero range"); + l = t - 1; + break; + case CHAR_COMPACT_WHITESPACE: + m->str_flags |= STRING_COMPACT_WHITESPACE; + break; + case CHAR_COMPACT_OPTIONAL_WHITESPACE: + m->str_flags |= STRING_COMPACT_OPTIONAL_WHITESPACE; + break; + case CHAR_IGNORE_LOWERCASE: + m->str_flags |= STRING_IGNORE_LOWERCASE; + break; + case CHAR_IGNORE_UPPERCASE: + m->str_flags |= STRING_IGNORE_UPPERCASE; + break; + case CHAR_REGEX_OFFSET_START: + m->str_flags |= REGEX_OFFSET_START; + break; + case CHAR_BINTEST: + m->str_flags |= STRING_BINTEST; + break; + case CHAR_TEXTTEST: + m->str_flags |= STRING_TEXTTEST; + break; + case CHAR_TRIM: + m->str_flags |= STRING_TRIM; + break; + case CHAR_PSTRING_1_LE: +#define SET_LENGTH(a) m->str_flags = (m->str_flags & ~PSTRING_LEN) | (a) + if (m->type != FILE_PSTRING) + goto bad; + SET_LENGTH(PSTRING_1_LE); + break; + case CHAR_PSTRING_2_BE: + if (m->type != FILE_PSTRING) + goto bad; + SET_LENGTH(PSTRING_2_BE); + break; + case CHAR_PSTRING_2_LE: + if (m->type != FILE_PSTRING) + goto bad; + SET_LENGTH(PSTRING_2_LE); + break; + case CHAR_PSTRING_4_BE: + if (m->type != FILE_PSTRING) + goto bad; + SET_LENGTH(PSTRING_4_BE); + break; + case CHAR_PSTRING_4_LE: + switch (m->type) { + case FILE_PSTRING: + case FILE_REGEX: + break; + default: + goto bad; + } + SET_LENGTH(PSTRING_4_LE); + break; + case CHAR_PSTRING_LENGTH_INCLUDES_ITSELF: + if (m->type != FILE_PSTRING) + goto bad; + m->str_flags |= PSTRING_LENGTH_INCLUDES_ITSELF; + break; + default: + bad: + if (ms->flags & MAGIC_CHECK) + file_magwarn(ms, "string modifier `%c' " + "invalid", *l); + goto out; + } + /* allow multiple '/' for readability */ + if (l[1] == '/' && !isspace((unsigned char)l[2])) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:33:42 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B64547DB; Fri, 2 Jan 2015 21:33:42 +0000 (UTC) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "troutmask", Issuer "troutmask" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 907E81A49; Fri, 2 Jan 2015 21:33:42 +0000 (UTC) Received: from troutmask.apl.washington.edu (localhost [127.0.0.1]) by troutmask.apl.washington.edu (8.14.9/8.14.9) with ESMTP id t02LXgvg072616 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 2 Jan 2015 13:33:42 -0800 (PST) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.9/8.14.9/Submit) id t02LXggs072615; Fri, 2 Jan 2015 13:33:42 -0800 (PST) (envelope-from sgk) Date: Fri, 2 Jan 2015 13:33:41 -0800 From: Steve Kargl To: Benjamin Kaduk Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc Message-ID: <20150102213341.GA72376@troutmask.apl.washington.edu> References: <201501022034.t02KYu1I030453@svn.freebsd.org> <20150102204458.GA72199@troutmask.apl.washington.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:33:42 -0000 On Fri, Jan 02, 2015 at 03:59:11PM -0500, Benjamin Kaduk wrote: > On Fri, Jan 2, 2015 at 3:44 PM, Steve Kargl < > sgk@troutmask.apl.washington.edu> wrote: > > > On Fri, Jan 02, 2015 at 08:34:56PM +0000, Garrett Cooper wrote: > > > Author: ngie > > > Date: Fri Jan 2 20:34:55 2015 > > > New Revision: 276565 > > > URL: https://svnweb.freebsd.org/changeset/base/276565 > > > > > > Log: > > > Remove gnu/ info pages to unbreak the build with MK_GCC != no, etc > > > > > > > Does this mean that FreeBSD is now shipping utilities without > > documentation? > > > > I'm pretty sure we've been doing that for a long, long time. > > Note that MK_GCC=no is the default on head for the tier-1 platforms. > Yeah, I know what the default is for tier-1, which is somewhat irrelevant to my question. bapt@ has removed info pages (and Garrett seems to have cleanup after bapt). Noting that FreeBSD has more than just tier-1, the question remains. Is FreeBSD now shipping utilities without proper documentation? -- Steve From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:36:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BB2EB95E; Fri, 2 Jan 2015 21:36:02 +0000 (UTC) Received: from mail-wg0-x233.google.com (mail-wg0-x233.google.com [IPv6:2a00:1450:400c:c00::233]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 633F61A69; Fri, 2 Jan 2015 21:36:02 +0000 (UTC) Received: by mail-wg0-f51.google.com with SMTP id x12so24490016wgg.38; Fri, 02 Jan 2015 13:36:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=SNrlaV4YHawPtmQ3T8T61RgxrB8PIJPmZLKdozIRlpE=; b=nKW+WEFhZp7f5zUl7KmwqdCPLiRgqI7RbEAK2D8yggBB07Nm3lvNAEsC3uOWjwaohX jmpHPtadwuWAhGPh2vsds1oH33xm7j2IaIU+ZHaZcUpqUFYWDS/creIkw7KRnjoCOF3U WNlLM5V0LmkY40VHA0e8peQcAyWrKWeGkBq2KOTMdNufr6htT8OInp2+mZn+f8+qHJbX QzxIzMTulbmRfuuUQPrqVRipbZI/vudZgHNpSCQ86Rb20NzKDdF5PsnmTYsoPk3yo7Vs ZOw2KPVdXzUpIrpxgocJTD00hDqYC9RBi0T2kVsD/HvBKQCfpfL4+gJDne8s8kSVh/je xOTA== X-Received: by 10.180.91.193 with SMTP id cg1mr1483122wib.26.1420234560598; Fri, 02 Jan 2015 13:36:00 -0800 (PST) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by mx.google.com with ESMTPSA id eu15sm465466wid.18.2015.01.02.13.35.59 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Jan 2015 13:35:59 -0800 (PST) Sender: Baptiste Daroussin Date: Fri, 2 Jan 2015 22:35:57 +0100 From: Baptiste Daroussin To: Steve Kargl Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc Message-ID: <20150102213557.GE288@ivaldir.etoilebsd.net> References: <201501022034.t02KYu1I030453@svn.freebsd.org> <20150102204458.GA72199@troutmask.apl.washington.edu> <20150102213341.GA72376@troutmask.apl.washington.edu> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="jKBxcB1XkHIR0Eqt" Content-Disposition: inline In-Reply-To: <20150102213341.GA72376@troutmask.apl.washington.edu> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: Benjamin Kaduk , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:36:03 -0000 --jKBxcB1XkHIR0Eqt Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jan 02, 2015 at 01:33:41PM -0800, Steve Kargl wrote: > On Fri, Jan 02, 2015 at 03:59:11PM -0500, Benjamin Kaduk wrote: > > On Fri, Jan 2, 2015 at 3:44 PM, Steve Kargl < > > sgk@troutmask.apl.washington.edu> wrote: > >=20 > > > On Fri, Jan 02, 2015 at 08:34:56PM +0000, Garrett Cooper wrote: > > > > Author: ngie > > > > Date: Fri Jan 2 20:34:55 2015 > > > > New Revision: 276565 > > > > URL: https://svnweb.freebsd.org/changeset/base/276565 > > > > > > > > Log: > > > > Remove gnu/ info pages to unbreak the build with MK_GCC !=3D no, = etc > > > > > > > > > > Does this mean that FreeBSD is now shipping utilities without > > > documentation? > > > > >=20 > > I'm pretty sure we've been doing that for a long, long time. > >=20 > > Note that MK_GCC=3Dno is the default on head for the tier-1 platforms. > >=20 >=20 > Yeah, I know what the default is for tier-1, which is somewhat > irrelevant to my question. bapt@ has removed info pages (and > Garrett seems to have cleanup after bapt). Noting that FreeBSD > has more than just tier-1, the question remains. Is FreeBSD > now shipping utilities without proper documentation? >=20 The man pages remains, for binutils for examples, the manpages were generat= ed out of the texinfo files meaning the manpage contains the same amount of informations Bapt --jKBxcB1XkHIR0Eqt Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlSnDz0ACgkQ8kTtMUmk6EyFUgCfY46hUYG9+JZ2ZNTTCwybrzhq 0FQAnjBepgebXyn/9/VjfQMToctQJGiU =S31U -----END PGP SIGNATURE----- --jKBxcB1XkHIR0Eqt-- From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:37:13 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B9763AB2; Fri, 2 Jan 2015 21:37:13 +0000 (UTC) Received: from elvis.mu.org (elvis.mu.org [IPv6:2001:470:1f05:b76::196]) by mx1.freebsd.org (Postfix) with ESMTP id 9FC4D1AA9; Fri, 2 Jan 2015 21:37:13 +0000 (UTC) Received: from AlfredMacbookAir.local (c-76-21-10-192.hsd1.ca.comcast.net [76.21.10.192]) by elvis.mu.org (Postfix) with ESMTPSA id E5563341F85F; Fri, 2 Jan 2015 13:37:12 -0800 (PST) Message-ID: <54A70FB7.1060202@freebsd.org> Date: Fri, 02 Jan 2015 13:37:59 -0800 From: Alfred Perlstein Organization: FreeBSD User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Steve Kargl , Benjamin Kaduk Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc References: <201501022034.t02KYu1I030453@svn.freebsd.org> <20150102204458.GA72199@troutmask.apl.washington.edu> <20150102213341.GA72376@troutmask.apl.washington.edu> In-Reply-To: <20150102213341.GA72376@troutmask.apl.washington.edu> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:37:13 -0000 On 1/2/15 1:33 PM, Steve Kargl wrote: > On Fri, Jan 02, 2015 at 03:59:11PM -0500, Benjamin Kaduk wrote: >> On Fri, Jan 2, 2015 at 3:44 PM, Steve Kargl < >> sgk@troutmask.apl.washington.edu> wrote: >> >>> On Fri, Jan 02, 2015 at 08:34:56PM +0000, Garrett Cooper wrote: >>>> Author: ngie >>>> Date: Fri Jan 2 20:34:55 2015 >>>> New Revision: 276565 >>>> URL: https://svnweb.freebsd.org/changeset/base/276565 >>>> >>>> Log: >>>> Remove gnu/ info pages to unbreak the build with MK_GCC != no, etc >>>> >>> Does this mean that FreeBSD is now shipping utilities without >>> documentation? >>> >> I'm pretty sure we've been doing that for a long, long time. >> >> Note that MK_GCC=no is the default on head for the tier-1 platforms. >> > Yeah, I know what the default is for tier-1, which is somewhat > irrelevant to my question. bapt@ has removed info pages (and > Garrett seems to have cleanup after bapt). Noting that FreeBSD > has more than just tier-1, the question remains. Is FreeBSD > now shipping utilities without proper documentation? > The docs are there, you just need to install a package to read them. It was explained in the commit log. -Alfred From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:40:56 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 22CB1C1D; Fri, 2 Jan 2015 21:40:56 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E858B1BA8; Fri, 2 Jan 2015 21:40:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02LetDh065885; Fri, 2 Jan 2015 21:40:55 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Letj9065884; Fri, 2 Jan 2015 21:40:55 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022140.t02Letj9065884@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 21:40:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276578 - stable/10/release/doc/en_US.ISO8859-1/errata X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:40:56 -0000 Author: gjb Date: Fri Jan 2 21:40:55 2015 New Revision: 276578 URL: https://svnweb.freebsd.org/changeset/base/276578 Log: Document the following security advisorires: - FreeBSD-SA-14:27.stdio - FreeBSD-SA-14:28.file - FreeBSD-SA-14:30.unbound - FreeBSD-SA-14:31.ntp Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/errata/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/errata/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/errata/article.xml Fri Jan 2 21:20:02 2015 (r276577) +++ stable/10/release/doc/en_US.ISO8859-1/errata/article.xml Fri Jan 2 21:40:55 2015 (r276578) @@ -91,9 +91,29 @@ - No advisories. -   -   + SA-14:27.stdio + 10 December 2014 + Buffer overflow in stdio + + + + SA-14:28.file + 10 December 2014 + Multiple vulnerabilities in &man.file.1; and + &man.libmagic.3; + + + + SA-14:30.unbound + 17 December 2014 + Remote denial of service + vulnerability + + + + SA-14:31.ntp + 23 December 2014 + Multiple vulnerabilities From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:40:59 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3D460D1A; Fri, 2 Jan 2015 21:40:59 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 28C751BAE; Fri, 2 Jan 2015 21:40:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02LexXv065939; Fri, 2 Jan 2015 21:40:59 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02LexLn065938; Fri, 2 Jan 2015 21:40:59 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022140.t02LexLn065938@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 21:40:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276579 - stable/9/release/doc/en_US.ISO8859-1/errata X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:40:59 -0000 Author: gjb Date: Fri Jan 2 21:40:58 2015 New Revision: 276579 URL: https://svnweb.freebsd.org/changeset/base/276579 Log: Document the following security advisorires: - FreeBSD-SA-14:28.file - FreeBSD-SA-14:30.bind - FreeBSD-SA-14:31.ntp Sponsored by: The FreeBSD Foundation Modified: stable/9/release/doc/en_US.ISO8859-1/errata/article.xml Modified: stable/9/release/doc/en_US.ISO8859-1/errata/article.xml ============================================================================== --- stable/9/release/doc/en_US.ISO8859-1/errata/article.xml Fri Jan 2 21:40:55 2015 (r276578) +++ stable/9/release/doc/en_US.ISO8859-1/errata/article.xml Fri Jan 2 21:40:58 2015 (r276579) @@ -151,6 +151,26 @@ 04 November 2014 Remote code execution. + + + SA-14:28.file + 10 December 2014 + Multiple vulnerabilities in &man.file.1; and + &man.libmagic.3; + + + + SA-14:29.bind + 10 December 2014 + Remote denial of service + vulnerability + + + + SA-14:31.ntp + 23 December 2014 + Multiple vulnerabilities + From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:41:26 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B943BE79; Fri, 2 Jan 2015 21:41:26 +0000 (UTC) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "troutmask", Issuer "troutmask" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 918021BBB; Fri, 2 Jan 2015 21:41:26 +0000 (UTC) Received: from troutmask.apl.washington.edu (localhost [127.0.0.1]) by troutmask.apl.washington.edu (8.14.9/8.14.9) with ESMTP id t02LfQ1g072719 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 2 Jan 2015 13:41:26 -0800 (PST) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.9/8.14.9/Submit) id t02LfQkq072718; Fri, 2 Jan 2015 13:41:26 -0800 (PST) (envelope-from sgk) Date: Fri, 2 Jan 2015 13:41:26 -0800 From: Steve Kargl To: Baptiste Daroussin Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc Message-ID: <20150102214126.GA72685@troutmask.apl.washington.edu> References: <201501022034.t02KYu1I030453@svn.freebsd.org> <20150102204458.GA72199@troutmask.apl.washington.edu> <20150102213341.GA72376@troutmask.apl.washington.edu> <20150102213557.GE288@ivaldir.etoilebsd.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150102213557.GE288@ivaldir.etoilebsd.net> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: Benjamin Kaduk , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:41:26 -0000 On Fri, Jan 02, 2015 at 10:35:57PM +0100, Baptiste Daroussin wrote: > On Fri, Jan 02, 2015 at 01:33:41PM -0800, Steve Kargl wrote: > > > > Yeah, I know what the default is for tier-1, which is somewhat > > irrelevant to my question. bapt@ has removed info pages (and > > Garrett seems to have cleanup after bapt). Noting that FreeBSD > > has more than just tier-1, the question remains. Is FreeBSD > > now shipping utilities without proper documentation? > > > The man pages remains, for binutils for examples, the manpages were generated > out of the texinfo files meaning the manpage contains the same amount of > informations > Thanks for the clarification. -- Steve From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:42:40 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5F3A9FCC; Fri, 2 Jan 2015 21:42:40 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46F306604C; Fri, 2 Jan 2015 21:41:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02LfrY2068778; Fri, 2 Jan 2015 21:41:53 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02LfrJc068777; Fri, 2 Jan 2015 21:41:53 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022141.t02LfrJc068777@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 21:41:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276581 - stable/9/release/doc/en_US.ISO8859-1/errata X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:42:40 -0000 Author: gjb Date: Fri Jan 2 21:41:52 2015 New Revision: 276581 URL: https://svnweb.freebsd.org/changeset/base/276581 Log: Bump copyright year. Sponsored by: The FreeBSD Foundation Modified: stable/9/release/doc/en_US.ISO8859-1/errata/article.xml Modified: stable/9/release/doc/en_US.ISO8859-1/errata/article.xml ============================================================================== --- stable/9/release/doc/en_US.ISO8859-1/errata/article.xml Fri Jan 2 21:41:39 2015 (r276580) +++ stable/9/release/doc/en_US.ISO8859-1/errata/article.xml Fri Jan 2 21:41:52 2015 (r276581) @@ -26,7 +26,7 @@ $FreeBSD$ - 2014 + 2015 The &os; Documentation Project From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:42:40 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1C4D9FC8; Fri, 2 Jan 2015 21:42:40 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 062501D80; Fri, 2 Jan 2015 21:41:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02LfeGT068190; Fri, 2 Jan 2015 21:41:40 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Lfe2M068189; Fri, 2 Jan 2015 21:41:40 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022141.t02Lfe2M068189@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 21:41:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276580 - stable/10/release/doc/en_US.ISO8859-1/errata X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:42:40 -0000 Author: gjb Date: Fri Jan 2 21:41:39 2015 New Revision: 276580 URL: https://svnweb.freebsd.org/changeset/base/276580 Log: Bump copyright year. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/errata/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/errata/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/errata/article.xml Fri Jan 2 21:40:58 2015 (r276579) +++ stable/10/release/doc/en_US.ISO8859-1/errata/article.xml Fri Jan 2 21:41:39 2015 (r276580) @@ -17,7 +17,7 @@ $FreeBSD$ - 2014 + 2015 The &os; Documentation Project From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:45:36 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A56C23BD; Fri, 2 Jan 2015 21:45:36 +0000 (UTC) Received: from mail-ie0-x229.google.com (mail-ie0-x229.google.com [IPv6:2607:f8b0:4001:c03::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 62B4866981; Fri, 2 Jan 2015 21:45:36 +0000 (UTC) Received: by mail-ie0-f169.google.com with SMTP id y20so17286733ier.0; Fri, 02 Jan 2015 13:45:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=qIyfcFPSREGYkZjfxux9FEeNsNsHJ+5UlCDgg03jxUI=; b=uN2L/BKxqWZF/R/zbo717gG7IxSRQUjkYa3tT3J/Ac2G8lc4OBRY0c0HT+7lUGM8Q7 GR2vaa2YQSAVY8XT+7YwQruy2P7VjrFRFQtH1vMRpS+K6k2aC7RFIZ2/+T6D9R5jEe3G uzK/JCT2cYWvCZX9KfLR/IwAr24WSY+lHlbeV0sGlIFVomveZWZ5XGveqgQOiCrovums /BpQqB7g0tEhQd+13hIpNms2Ud2v2TJzdRJutC/ATUoNeh+x6FJAbzm3GQjAA+DOm57n UjNzsqpeG7odjyjwx7qK/5y1oah3GJVjX34y/1LfVbeJR1VOjInimmSiP4O5wfpF8qYb K7EA== X-Received: by 10.50.66.198 with SMTP id h6mr827952igt.22.1420235135666; Fri, 02 Jan 2015 13:45:35 -0800 (PST) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.0.85 with HTTP; Fri, 2 Jan 2015 13:45:15 -0800 (PST) In-Reply-To: <201501022049.t02Kni1P036850@svn.freebsd.org> References: <201501022049.t02Kni1P036850@svn.freebsd.org> From: Ed Maste Date: Fri, 2 Jan 2015 16:45:15 -0500 X-Google-Sender-Auth: fy441JwTK_48PTtG_ZEKkORFIi4 Message-ID: Subject: Re: svn commit: r276567 - head/contrib/elftoolchain/readelf To: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:45:36 -0000 On 2 January 2015 at 15:49, Ed Maste wrote: > Author: emaste > Date: Fri Jan 2 20:49:43 2015 > New Revision: 276567 > URL: https://svnweb.freebsd.org/changeset/base/276567 > ... > +#if 0 > case NT_AUXV: > return "NT_AUXV (Auxiliary vector)"; Oops, the #if 0s here were unintentionally included in the commit. It is currently needed to build elftoolchain's readelf though, as the set of NT_ defines here are actually Linux ones. In fact, readelf's note parsing does not properly support multiple operating systems right now: http://sourceforge.net/p/elftoolchain/tickets/473/ This is fairly easily addressed, and will replace this #if 0'd code later on. From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:46:55 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3F3C268E; Fri, 2 Jan 2015 21:46:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 12D7F669F5; Fri, 2 Jan 2015 21:46:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Lks3I070338; Fri, 2 Jan 2015 21:46:54 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02LksAs070337; Fri, 2 Jan 2015 21:46:54 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022146.t02LksAs070337@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 21:46:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276582 - head/release/doc/en_US.ISO8859-1/readme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:46:55 -0000 Author: gjb Date: Fri Jan 2 21:46:53 2015 New Revision: 276582 URL: https://svnweb.freebsd.org/changeset/base/276582 Log: Update the 'Submitting Problem Reports' section to reflect send-pr(1) deprecation, taking the text from the document in stable/10. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/readme/article.xml Modified: head/release/doc/en_US.ISO8859-1/readme/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/readme/article.xml Fri Jan 2 21:41:52 2015 (r276581) +++ head/release/doc/en_US.ISO8859-1/readme/article.xml Fri Jan 2 21:46:53 2015 (r276582) @@ -249,26 +249,24 @@ course even more welcome. The preferred method to submit bug reports from a machine - with Internet mail connectivity is to use the &man.send-pr.1; - command. + with Internet connectivity is to use the + Bugzilla bug tracker. Problem Reports (PRs) submitted in this way will be filed and their progress tracked; the &os; developers will do their best to respond to all reported bugs as soon as - possible. A list - of all active PRs is available on the &os; Web site; - this list is useful to see what potential problems other users - have encountered. - - Note that &man.send-pr.1; itself is a shell script that - should be easy to move even onto a non-&os; system. Using - this interface is highly preferred. If, for some reason, you - are unable to use &man.send-pr.1; to submit a bug report, you - can try to send it to the &a.bugs;. - - For more information, Writing - &os; Problem Reports, available on the &os; Web - site, has a number of helpful hints on writing and submitting - effective problem reports. + possible. A list of all + active PRs is available on the &os; Web site; this + list is useful to see what potential problems other users have + encountered. + + Note that &man.send-pr.1; is deprecated. + + For more information, Writing + &os; Problem Reports, available on the &os; + Web site, has a number of helpful hints on writing and + submitting effective problem reports. From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:46:58 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B1DB67C9; Fri, 2 Jan 2015 21:46:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7960E669F6; Fri, 2 Jan 2015 21:46:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02LkwFq070396; Fri, 2 Jan 2015 21:46:58 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Lkweh070395; Fri, 2 Jan 2015 21:46:58 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022146.t02Lkweh070395@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 21:46:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276583 - head/release/doc/en_US.ISO8859-1/readme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:46:58 -0000 Author: gjb Date: Fri Jan 2 21:46:57 2015 New Revision: 276583 URL: https://svnweb.freebsd.org/changeset/base/276583 Log: Bump copyright year. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/readme/article.xml Modified: head/release/doc/en_US.ISO8859-1/readme/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/readme/article.xml Fri Jan 2 21:46:53 2015 (r276582) +++ head/release/doc/en_US.ISO8859-1/readme/article.xml Fri Jan 2 21:46:57 2015 (r276583) @@ -36,6 +36,7 @@ 2012 2013 2014 + 2015 The &os; Documentation Project From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:47:24 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AFD07904; Fri, 2 Jan 2015 21:47:24 +0000 (UTC) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "troutmask", Issuer "troutmask" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 83BE166A0D; Fri, 2 Jan 2015 21:47:24 +0000 (UTC) Received: from troutmask.apl.washington.edu (localhost [127.0.0.1]) by troutmask.apl.washington.edu (8.14.9/8.14.9) with ESMTP id t02LlN38072822 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 2 Jan 2015 13:47:23 -0800 (PST) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.9/8.14.9/Submit) id t02LlNqR072821; Fri, 2 Jan 2015 13:47:23 -0800 (PST) (envelope-from sgk) Date: Fri, 2 Jan 2015 13:47:23 -0800 From: Steve Kargl To: Alfred Perlstein Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc Message-ID: <20150102214723.GB72685@troutmask.apl.washington.edu> References: <201501022034.t02KYu1I030453@svn.freebsd.org> <20150102204458.GA72199@troutmask.apl.washington.edu> <20150102213341.GA72376@troutmask.apl.washington.edu> <54A70FB7.1060202@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <54A70FB7.1060202@freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: Benjamin Kaduk , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:47:24 -0000 On Fri, Jan 02, 2015 at 01:37:59PM -0800, Alfred Perlstein wrote: > > On 1/2/15 1:33 PM, Steve Kargl wrote: >> Yeah, I know what the default is for tier-1, which is somewhat >> >> irrelevant to my question. bapt@ has removed info pages (and >> Garrett seems to have cleanup after bapt). Noting that FreeBSD >> has more than just tier-1, the question remains. Is FreeBSD >> now shipping utilities without proper documentation? >> > The docs are there, you just need to install a package to read them. > > It was explained in the commit log. > Well, no, it wasn't explained. The commit messages notes that one needs to install print/texinfo to read info pages. The commit message does not explain how to read the now removed usr/share/info/{as,ld,gdb,...}.info that correspond to specific versions of utilities shipped by FreeBSD. -- Steve From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 21:52:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D386BB7B; Fri, 2 Jan 2015 21:52:02 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BFDE966C4B; Fri, 2 Jan 2015 21:52:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Lq2lx075079; Fri, 2 Jan 2015 21:52:02 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Lq2U1075078; Fri, 2 Jan 2015 21:52:02 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022152.t02Lq2U1075078@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 21:52:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276584 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 21:52:02 -0000 Author: gjb Date: Fri Jan 2 21:52:01 2015 New Revision: 276584 URL: https://svnweb.freebsd.org/changeset/base/276584 Log: Document asr(4) removal in r276526. Sponsored by: The FreeBSD Foundation Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 21:46:57 2015 (r276583) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 21:52:01 2015 (r276584) @@ -283,6 +283,9 @@ Support for the disklabel64 partitioning scheme has been added to &man.gpart.8;. + + The asr(4) driver has + been removed, and is no longer supported. From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:11:20 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D93B31F6; Fri, 2 Jan 2015 22:11:19 +0000 (UTC) Received: from mail-wi0-x236.google.com (mail-wi0-x236.google.com [IPv6:2a00:1450:400c:c05::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 58EDA66F58; Fri, 2 Jan 2015 22:11:19 +0000 (UTC) Received: by mail-wi0-f182.google.com with SMTP id h11so212730wiw.9; Fri, 02 Jan 2015 14:11:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=nSQeKhrZP8VJ1lCCSlQzuGMH/uud2kgeKJOVZuMlS9g=; b=twTQYcrbqhstK5HCWpboRTPatTVSalxXAI70DVnr7GOYiEkEJCZvQ9Mqmevwq+K/nz vo9bYV8PO0Ki8AoP+x7PE/ZTfEFDlCAK3J3mmLc4rJQqBLTcN/pBsrS0vveQo6l/JkzF fkcP8RhBluz7K4jl/uj/52K7QN0sWU2pOI2tlqLrJNqhKeJfhPzRBIT4JCz63yRb/gyJ WLR8L6O8ffMRLoAhYqAZ3vODbVJVOzm1wzOEEzifwOBeGc2Ee0Fil8IxzontMZcfEXJT ZtzeleMwxdqZ1ywmUb0dyIJuOGvj/hO4YJnQRPxHt7CM6yHe0dyVQumMlDiy3IbzwOS0 xLDw== X-Received: by 10.180.82.137 with SMTP id i9mr1697945wiy.38.1420236677704; Fri, 02 Jan 2015 14:11:17 -0800 (PST) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by mx.google.com with ESMTPSA id gb10sm40813676wjb.21.2015.01.02.14.11.16 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Jan 2015 14:11:16 -0800 (PST) Sender: Baptiste Daroussin Date: Fri, 2 Jan 2015 23:11:14 +0100 From: Baptiste Daroussin To: Steve Kargl Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc Message-ID: <20150102221114.GF288@ivaldir.etoilebsd.net> References: <201501022034.t02KYu1I030453@svn.freebsd.org> <20150102204458.GA72199@troutmask.apl.washington.edu> <20150102213341.GA72376@troutmask.apl.washington.edu> <20150102213557.GE288@ivaldir.etoilebsd.net> <20150102214126.GA72685@troutmask.apl.washington.edu> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="HCdXmnRlPgeNBad2" Content-Disposition: inline In-Reply-To: <20150102214126.GA72685@troutmask.apl.washington.edu> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: Benjamin Kaduk , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Garrett Cooper X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:11:20 -0000 --HCdXmnRlPgeNBad2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jan 02, 2015 at 01:41:26PM -0800, Steve Kargl wrote: > On Fri, Jan 02, 2015 at 10:35:57PM +0100, Baptiste Daroussin wrote: > > On Fri, Jan 02, 2015 at 01:33:41PM -0800, Steve Kargl wrote: > > >=20 > > > Yeah, I know what the default is for tier-1, which is somewhat > > > irrelevant to my question. bapt@ has removed info pages (and > > > Garrett seems to have cleanup after bapt). Noting that FreeBSD > > > has more than just tier-1, the question remains. Is FreeBSD > > > now shipping utilities without proper documentation? > > >=20 > > The man pages remains, for binutils for examples, the manpages were gen= erated > > out of the texinfo files meaning the manpage contains the same amount of > > informations > >=20 >=20 > Thanks for the clarification. I forgot to say that if a documentation is missing for a user, I'll make su= re to make this doc available. I just needs to be aware of it :) Best regards, Bapt --HCdXmnRlPgeNBad2 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlSnF38ACgkQ8kTtMUmk6ExENACfYkLTqeJJ37Y5DSmLzLnrbeK5 0/AAnj0bnFFptwuULtBnolLxNd+EFrbT =4hnG -----END PGP SIGNATURE----- --HCdXmnRlPgeNBad2-- From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:25:32 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 33FB972E; Fri, 2 Jan 2015 22:25:32 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1FD5821A3; Fri, 2 Jan 2015 22:25:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02MPWIj092129; Fri, 2 Jan 2015 22:25:32 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02MPVSW092126; Fri, 2 Jan 2015 22:25:31 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022225.t02MPVSW092126@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 22:25:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276586 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:25:32 -0000 Author: gjb Date: Fri Jan 2 22:25:30 2015 New Revision: 276586 URL: https://svnweb.freebsd.org/changeset/base/276586 Log: Bump copyright year. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 22:25:27 2015 (r276585) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 22:25:30 2015 (r276586) @@ -36,6 +36,7 @@ 2012 2013 2014 + 2015 The &os; Documentation Project From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:25:28 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B6B3872D; Fri, 2 Jan 2015 22:25:28 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A067121A2; Fri, 2 Jan 2015 22:25:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02MPSac092075; Fri, 2 Jan 2015 22:25:28 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02MPSfV092073; Fri, 2 Jan 2015 22:25:28 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022225.t02MPSfV092073@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 22:25:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276585 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:25:28 -0000 Author: gjb Date: Fri Jan 2 22:25:27 2015 New Revision: 276585 URL: https://svnweb.freebsd.org/changeset/base/276585 Log: Prune stable/10 release notes page after 10.1-RELEASE. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 21:52:01 2015 (r276584) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 22:25:27 2015 (r276585) @@ -130,342 +130,24 @@ Kernel Changes - A new &man.sysctl.8;, - kern.panic_reboot_wait_time, has been - added, which allows controlling how long the system will wait - after &man.panic.9; before rebooting. - - The &man.vt.4; driver has been merged - from &os;-CURRENT. To enable &man.vt.4;, enter - set kern.vty=vt at the &man.loader.8; - prompt during boot, or add kern.vty=vt to - &man.loader.conf.5; and reboot the system. - - Support for &man.hwpmc.4; has been added - for &powerpc; 970 class processors. - - Support for ADT7460 and ADT7467 fan - controllers found in newer PowerBooks™ and - iBooks™ has been added to the &man.iicbus.4; - driver. - - A panic triggered by removing - a &man.urtwn.4; device has been fixed. - - A potential deadlock in the &man.usb.4; - stack triggered by detaching USB devices that create character - devices has been fixed. - - Support for &amd; Family 16h sensor - devices has been added to &man.amdtemp.4;. - - The &man.uslcom.4; driver has been - updated to support 26 new devices. - - A kernel bug that inhibited proper - functionality of the dev.cpu.0.freq - &man.sysctl.8; on &intel; processors with Turbo - Boost™ enabled has been fixed. - - The &man.uart.4; driver has been - updated to include support for the &intel; Lynx Point - KT AMT serial port. - - The radeonkms(4) - driver has been updated to include 32-bit &man.ioctl.2; - support, allowing 32-bit applications to run on a 64-bit - system. - - A bug that would prevent - a &man.jail.8; from setting the correct IPv4 source address - with some operations that required - security.jail.allow_raw_sockets has been - fixed. - - The &man.hwpmc.4; driver has been - updated to support core events from the Atom™ - Silvermont architecture. - - The &man.oce.4; driver has been updated - with vendor-supplied fixes for big endian support, and 20GB/s - and 25GB/s link speeds. - - The &os; virtual memory subsystem - has been updated to implement fast path for - the page fault handler. - - The &man.asmc.4; driver has been updated - to support the &apple; Mac Mini 3,1. - - The &os;/&arch.powerpc64; default kernel - configuration, GENERIC64, has been - updated to enable the &man.vt.4; console driver for the - Sony® Playstation 3™ platform. - - The - &os;/&arch.powerpc; ofwfb driver, used to - provide a graphics console when the &man.vt.4; console driver - is used, has been modified to work with the x11-drivers/xf86-video-scfb - port. - - - If using an ATI graphics card with - the &man.vt.4; driver, the x11-servers/xorg-server package - must be updated to version 1.12.4_8 or newer. - - - Several - performance enchancements to the &man.vt.4; driver have been - merged from &os;-CURRENT. - - The default stack size - (KSTACK_PAGES) has been increased from - 4 to 8 for the - &arch.powerpc64; architecture. - - The &os;/&arch.powerpc; ATI driver - has been updated to support enabling and disabling the - Radeon 9700 backlight, found in the - &apple; PowerBook™ G4. - - Hardware context support has been - added to the drm/i915 driver, adding - support for Mesa 9.2 and - later. +   Virtualization Support - Support for µsoft; Hyper-V - has been added to &os;/i386 as loadable modules, however - not available in the GENERIC kernel - configuration. - - The &man.bhyve.4; hypervisor now - supports soft power-off functionality via the ACPI S5 - state. - - Support for &os;/i386 guests has been - added to &man.bhyve.4;. - - Support for virtualized - XSAVE has been added to &man.bhyve.4;, - allowing guest operating systems to use - XSAVE and - XSAVE-enabled features, such as - AVX. - - The &man.bhyve.4; hypervisor now - supports booting from a &man.zfs.8; filesystem. - - A new driver, &man.virtio_random.4;, - has been added, which allows &os; virtual machines to - harvest entropy from the hypervisor. - - The &man.bhyve.4; hypervisor has been - synced with the version in &os;-CURRENT. - - A number of enhancements have been added, and several - bug fixes, including: - - - - Post-mortem debugging has been added when - a guest virtual machine exits with an - EPT Misconfiguration - error. - - - - The hypervisor &man.virtio.4; API - has been expanded from 32- to 64-bit. - - - - Support for identifying capabilities of the virtual - CPU has been added. - - - - Support for emulating legacy x86 task - switching has been added. - - - - Support to list the VT-x features in base kernel - &man.dmesg.8; has been added. - - - - Support for extended PCI configuration space - has been added. - - +   ARM Support - The WANDBOARD - kernel configuration file has been added. - - Boot devices may now be specified by - setting a u-boot environment variable. If a boot device is - not specified, the probe mechanism will be used. To specify - the boot device, set the - loaderdev=device - u-boot environment variable. - - The nexus(4) driver - has been updated to include Flattened Device - Tree support, replacing the &man.fdtbus.4; driver - in most cases. - - The &man.gpioiic.4; and - &man.gpioled.4; have been merged from &os;-CURRENT. - - Support for hardware floating point was added to the - kernel, and enabled by default in the configuration files - for all platforms that contain the required hardware. - - C++ exception handling now - works with GCC. - - Support for SMP was added to the - kernel, and enabled by default in the configuration files - for all platforms that contain multi-core CPUs. - - Support was added for: - - - - CHROMEBOOK (Samsung Exynos 5250) - - - - COLIBRI (Freescale Vybrid) - - - - COSMIC (Freescale Vybrid) - - - - IMX53-QSB (Freescale i.MX53) - - - - QUARTZ (Freescale Vybrid) - - - - RADXA (Rockchip rk30xx) - - - - WANDBOARD (Freescale i.MX6) - - - - An I2C driver was added for - the RaspberryPi. - - Drivers have been added to support TI - platforms, such as BEAGLEBONE and PANDABOARD: - - - - PRUSS (Programmable Realtime Unit Subsystem) - - - - MBOX (Mailbox hardware) - - - - SDHCI (new faster driver for - MMC/SD - storage) - - - - PPS (Pulse Per Second input on a - GPIO/timer pin) - - - - PWM (Pulse Width Modulation output) - - - - ADC (Analog to Digital converter) - - +   Boot Loader Changes - A kernel selection menu has been added - to &man.loader.8;. If the beastie menu is - enabled, the kernel to boot may be selected from the kernel - selection menu. Additional kernels may be listed in - &man.loader.conf.5; as a comma- or space-separated list. By - default, kernel and - kernel.old are listed. - - The - sys/boot/ sources - have been rearranged, moving &man.libstand.3; to a directory - indicating the library is built as 32-bit. - - The - &man.libstand.3; library has been updated to produce - a 64-bit shared library for the &os;/&arch.amd64; and - &os;/&arch.powerpc64; architectures. - - Initial support for UEFI - boot has been added. - - Three - new files are installed to /boot, supporting - UEFI boot: - - - - boot1.efi: The - UEFI first stage bootstrap - file. - - - - boot1.efifat: - A FAT filesystem image containing - an EFI system partition. - - - - loader.efi: The third stage - bootstrap file. - - - - Serial console and null console - support has been added to the UEFI boot - loader. - - Support has been added to cache - &man.geli.8; passphrases during system boot. When a system - is configured with multiple GEOM_ELI - providers all using the same passphrase, the passphrase that - is cached after the first entry is used for the subsequent - GEOM_ELI provider. If the passphrase in - the cache is incorrect, then a prompt for the passphrase for - the next provider is displayed. +   @@ -477,998 +159,68 @@ Multimedia Support   - Network Interface Support - Support for Ralink RT5370 and - RT5372 chipsets has been added to the &man.run.4; - driver. - - Firmware for the &man.run.4; driver - has been updated to version 0.33. - - Support for the Ralink RT3593 - chipset has been added to the &man.run.4; driver. - - The &man.nve.4; driver is now - deprecated, and the &man.nfe.4; driver should be used - instead. - - Support for the &man.axge.4; driver - has been added. This driver supports the ASIX AX88178A - and AX88179 USB ethernet adapters. The AX88178A supports - USB 2.0, and the AX88179 supports USB 2.0 and 3.0. - - The &man.urndis.4; driver has been - imported from OpenBSD. - - Support for multiple - transmitter/receiver queues has been added to the - &man.vmx.4; driver. - - - The &os; guest operating system must have - MSIX enabled as a prerequisite for - multiple queues. - - - Support for the ASUS USB-N10 Nano - wireless card has been added to the &man.urtwn.4; - driver. - - Transmission checksum offloading has - been disabled for the RTL8168C and RTL8168CP chipsets in - the &man.re.4; driver for TCP and UDP frames. This is - due to a report of UDP datagrams with IP options - generating corrupt frames. - - Preliminary support has been added - to the &man.urtwn.4; driver for the Realtek RTL8188EUS and - RTL8188ETV chipsets. - - A bug in the fast receiver buffer - recycle path has been fixed in the &man.cxgbe.4; - driver. - - The bundled &man.cxgbe.4; firmware for - T4 and T5 cards has been updated to version - 1.11.27.0. - - The &man.em.4; driver has been - updated to version 7.4.2. - - The &man.ixgbe.4; tunables have been - renamed to match their &man.sysctl.8; counterparts: - - - - - - - - Old Name - New Name - - - - - - hw.ixgbe.enable_aim - hw.ix.enable_aim - - - - hw.ixgbe.max_interrupt_rate - hw.ix.max_interrupt_rate - - - - hw.ixgbe.rx_process_limit - hw.ix.rx_process_limit - - - - hw.ixgbe.tx_process_limit - hw.ix.tx_process_limit - - - - hw.ixgbe.enable_msix - hw.ix.enable_msix - - - - hw.ixgbe.num_queues - hw.ix.num_queues - - - - hw.ixgbe.txd - hw.ix.txd - - - - hw.ixgbe.rxd - hw.ix.rxd - - - - hw.ixgbe.unsupported_sfp - hw.ix.unsupported_sfp - - - - - - Be sure to update &man.loader.conf.5; if using the - old tunables before upgrading to - &os; &release.current;. - - The &man.if.nf10bmac.4; driver has - been merged from &os;-CURRENT to support the NetFPGA-10G - Embedded CPU Ethernet Core. - - The &man.cxgbe.4; driver has been - updated to support &man.netmap.4; for the T5 10G/40G - cards. - - The &man.vtnet.4; driver has been - updated to support &man.netmap.4;. - - The &man.urtwn.4; driver has been - updated to support the ASUS USB-AC51 wireless card. - - The &intel; XL710 ethernet - controller driver, ixlv(4), has been - merged from &os;-CURRENT. +   Network Protocols - Support for the UDP-Lite protocol - (RFC 3828) has been added to the IPv4 and IPv6 - stacks. - - A bug in &man.sctp.4; that would allow - two listening sockets bound to the same port has been - fixed. - - Kernel RPC code, which - is a base of NFS server took multiple optimizations, that - significantly improved its performance and - SMP scalability. - - The - iSCSI initiator has been updated to - support redirection handling when an - iSCSI device is configured with multiple - IP addresses across different network - interfaces. Previously, clients connecting to - such iSCSI devices could require - additional client-side configuration. - - A new - &man.sysctl.8;, - kern.iscsi.fail_on_disconnection, has - been added, which allows iSCSI clients to - remove the attached disk device when the connection to the - target is dropped, where previously I/O would stop until the - connection is restored. - - The - iSCSI transmit code has been optimized - to coalesce PDUs and avoid lock - contention. - - Several performance optimizations have been - made to the iSCSI subsystem, including - deferring wakeup until enough data has been received to - read or write a file, reducing CPU usage - and throughput performance with large I/O workloads. - - Support for hostname- and IP-based access - restriction has been added to the iSCSI - &man.ctld.8; daemon. - - The &man.ctld.8; daemon has been updated - to allow overriding the default - portal-group configuration. - - The &man.ctld.8; daemon now includes a new - auth-group, default, - defaulting to deny, which is possible - to override. +   Disks and Storage - The - &man.geom.4; subsystem has been updated to support I/O - direct dispatch. When safety requirements are met, it - enables avoiding passing I/O requests to GEOM - g_up/g_down thread, - executing them directly in the caller context, avoiding - CPU bottlenecks in - g_up/g_down threads, - plus avoid several context switches per I/O. - - The - &man.geom.4; RAID driver has been - updated to support unmapped I/O. - - The - &man.cam.4; subsystem has been updated to support - finer-grained locking, direct dispatch and multi-queue, - which combined with &man.geom.4; direct dispatch, reduces - lock congestion and improves SMP - scalability of the SCSI/ATA stack. - - The &man.geom.8; - GEOM_MULTIPATH class has been updated to - support automatic live partition resizing. - - The &man.virtio_blk.4; driver has been - updated to support unmapped I/O. - - The &man.virtio_scsi.4; driver has - been updated to support unmapped I/O. - - Support for LUN-based CD changers has - been removed from the &man.cd.4; driver. - - Support for - BIO_DELETE has been added to &man.zfs.8; - zvol volumes. - - Support for 9th generation HP host bus - adapter cards has been added to &man.ciss.4;. - - The - &man.mpr.4; device has been added, - providing support for LSI Fusion-MPT 3 12Gb SCSI/SATA - controllers. - - A new zvol property - volmode and &man.sysctl.8; - vfs.zfs.vol.mode has been added to allow - switching zvol between three different - ways of exposing it to a user: geom, - dev and none. - - The - &man.mrsas.4; driver has been added, providing support for - LSI MegaRAID SAS controllers. The &man.mfi.4; driver will - attach to the controller, by default. To enable - &man.mrsas.4; add hw.mfi.mrsas_enable=1 - to /boot/loader.conf, which turns off - &man.mfi.4; device probing. - - - At this time, the &man.mfiutil.8; utility and the &os; - version of MegaCLI and - StorCli do not work with - &man.mrsas.4;. - - - Fixed accounting of - BIO_FLUSH operation in &man.geom.8; - GEOM_DISK class - - The &man.gstat.8; utility now has an - -o option, to display - other operations, such as - BIO_FLUSH. - - The &man.mfi.4; driver has been - updated to include support for unmapped I/O. - - The &man.hpt27xx.4; driver has been - updated with various vendor-supplied bug fixes. - - Support for unmapped I/O has been - added to the &man.xen.4; blkfront - driver. - - The - &man.geom.8; label class is now aware of - resized partitions. This corrects an issue where - geom resize would resize the partition, - but the label provider in /dev/gptid/ would not be - resized. - - The &man.gmirror.8; - utility now has a resize command, making - it easier to resize the size of a mirror when all of its - components have been replaced. - - Support for MegaRAID Fury cards has - been added to the &man.mfi.4; driver. - - The &man.aacraid.4; driver has been - updated to version 3.2.5. - - The GEOM_VINUM - option is now able to be built both directly into the kernel - or as a &man.kldload.8; loadable module. - - The &man.geom.8; - GEOM_PART class has been updated to - support automatic partition resizing. Changes to the - partition size are not saved to disk until - gpart commit is run, and prior to saving, - can be reverted with gpart undo. - - The &man.geom.uncompress.4; module is - built by default which, similar to &man.geom.uzip.4;, - provides support for compressed, read-only disk - images. - - Support for the - disklabel64 partitioning scheme has been - added to &man.gpart.8;. - - A new &man.sysctl.8; and - &man.loader.8; tunable, - kern.geom.part.mbr.enforce_chs has been - added to the &man.geom.8; MBR partition - class. When set to a non-zero value, - GEOM_PART_MBR will automatically - recalculate the user-specified offset and size for alignment - with the disk geometry. - - Many improvements to - the CAM Target Layer (CTL): - - - Support for UNMAP, WRITE - SAME, COMPARE AND WRITE, - XCOPY and some other SCSI commands - was added to support VMWare VAAI and Microsoft ODX - storage acceleration. - - - The - READ/WRITE size - limitations were removed by supporting multiple - data moves per command. - - - Finer-grained per-LUN locking and - multiple worker threads for better - SMP scapability. - - - Memory consumption reduced by - several times by disabling some never used - functionality. - - - The maximum number of - SCSI ports increased from 32 to - 128. - - - Improved zvol - integration for better performance. - - - - The &man.hptnr.4; driver has been - updated to version 1.0.1. - - The &man.mrsas.4; driver has been - added to the GENERIC kernel - configuration on &arch.amd64; and &arch.i386; - architectures. +   File Systems - The - vfs.zfs.zio.use_uma &man.sysctl.8; has - been re-enabled. On multi-CPU machines with enough RAM, - this can easily double &man.zfs.8; performance or reduce CPU - usage in half. It was originally disabled due to memory and - KVA exhaustion problem reports, which - should be resolved due to several changes in the VM - subsystem. - - A new flag, -R, - has been added to the &man.fsck.ffs.8; utility. When used, - &man.fsck.ffs.8; will restart itself when too many critical - errors have been detected. - - The &man.zfs.8; filesystem has been - updated to implement bookmarks. See - &man.zfs.8; for further details. - - The &man.zfs.8; filesystem has been - updated to allow tuning the minimum ashift - value when creating new top-level virtual devices (vdevs). - To set the minimum ashift value, for example when creating - a &man.zpool.8; on Advanced Format drives, - set the vfs.zfs.min_auto_ashift - &man.sysctl.8; accordingly. - - The libzfs thread - pool API has been imported from - OpenSolaris, and adapted for &os;. This change allows - parallel disk scanning, which can reduce &man.zpool.8; - overall import time in some workloads. - - The &man.restore.8; utility has been - updated to prevent assertion failures when restoring - a UFS filesystem dump to - a ZFS filesystem by writing restored - files in block sizes that are a multiple of 1024. - - Two &man.sysctl.8;s have been added - to the &man.zfs.8; filesystem: - - - - - vfs.zfs.mg_fragmentation_threshold: The - percentage of the metaslab group size that should be - considered eligible for allocation, unless all metaslab - groups within the metaslab class have also crossed this - threshold. - - - - - vfs.zfs.metaslab.fragmentation_threshold: The - maximum percentage of metaslab fragmentation level to - keep their active state - - - - The default &man.zfs.8; - ARC hash table size has been increased, - and a new &man.loader.8; tunable, - vfs.zfs.arc_average_blocksize, has been - added. Previously, the hash table could be too small, which - would lead to long hash chains and limit performance for - cached reads. The - vfs.zfs.arc_average_blocksize tunable - allows overriding the default block size. The previous - default was 65536, and default of the new &man.loader.8; - tunable is 8192. - - The Fast File System - (FFS) has been updated to support - multi-threaded soft updates. Previously, soft updates were - handled by a single thread, and as of this change, now have - one thread per FFS mountpoint. - - The - new filesystem automount facility, &man.autofs.5;, has been - merged from &os;-CURRENT. The new &man.autofs.5; facility - is similar to that found in other &unix;-like operating - systems, such as OS X™ and Solaris™. The - &man.autofs.5; facility uses a &sun;-compatible - &man.auto.master.5; configuration file, and is administered - with the &man.automount.8; userland utility, and the - &man.automountd.8; and &man.autounmountd.8; daemons. +   Userland Changes - A new flag is added to &man.camcontrol.8;, - -b, which outputs the existing buses and - their parents. - - The &man.newsyslog.8; utility has been - updated to rotate files based on the actual file size instead - of the blocks on disk. This matches the behavior documented - in &man.newsyslog.conf.5;. - - The location of the &man.rctl.8; - configuration file can now be overridden in &man.rc.conf.5;. - To use a non-default location, set - rctl_rules in &man.rc.conf.5; to the - location of the file. - - The ATF test - suite has been updated to version 0.20. The test suite is - disabled by default in &os; 10.1, and can be enabled by - adding WITH_TESTS=yes to - &man.src.conf.5;. - - The libucl library - (Unified Configuration Library) has been merged from - &os;-CURRENT. - - The &man.pkg.7; bootstrapping utility - has been synced with the version in &os;-CURRENT. - - The &man.zfs.8; userland utility has - been updated to include aliases for - snapshot, which allows use of zfs - list -t snap and zfs - snap. - - The &man.zfs.8; userland utility has - been updated to include a new flag to zfs - list, -p, which when specified, - prints the output in a parsable format. - - The Blowfish password format - implementation has been updated. Support for $2b$ has - been added, allowing use of passwords greater than 256 - characters long. - - The &man.iconv.3; library has been - updated to match NetBSD, providing several bug fixes. - - The &man.date.1; utility has been - updated to include a new flag, -R, which - prints the date and time output as specified in RFC - 2822. - - The &man.bc.1; utility has been updated - to version 1.1, in sync with the version in OpenBSD. - - The &man.pmcstat.8; utility has been - updated to include a new flag, -a, which - when specified, produces a full stack track on the sampled - points. - - The &man.netstat.8; and &man.route.8; - utilities have been updated to include a shorthand equivalent - to the -f inet and -f - inet6 address specifiers, -4 - and -6, respectively. - - The &man.crypt.3; library now defaults - to SHA512 for password hashing. - - The &man.gvinum.8; utility has been - updated to allow forceful configuration reset with the - -f flag. Additionally, a bug that would - prevent -f from properly creating - a &man.gvinum.8; configuration has been fixed. - - The &man.login.conf.5; file now takes - precedence over the shell-specific environment files. In - particular, the PATH, - BLOCKSIZE variables are commented from - /usr/share/skel/dot.profile, and the - path, BLOCKSIZE, and - umask variables have been commented from - /usr/share/skel/dot.cshrc. - - The &man.binmiscctl.8; userland utility - and related image activator features have been merged from - &os;-CURRENT. - - The &man.ps.1; utility has been - updated to include the -J flag, used to - filter output by matching &man.jail.8; IDs and names. - Additionally, argument 0 can be used to - -J to only list processes running on the - host system. - - The &man.top.1; utility has been updated - to filter by &man.jail.8; ID or name, in followup to the - &man.ps.1; change in r265229. - - The &man.gstat.8; utility has been - updated to include a new flag, -o. When - set, &man.gstat.8; will display statistics for operations - such as BIO_FLUSH. - - The &man.fetch.3; library has been - updated to look for root SSL certificates - in /usr/local/etc/ssl/ - before /etc/ssl/. - - The &man.clang.1;/llvm suite has been - updated to version 3.4.1. - - The Blowfish password format - has been changed to $2b$ by default. - - The amount of data collected for - &man.hwpmc.4; has been updated to work with modern processors - and larger amounts of available memory. - - The &man.pmcstat.8; utility has been - updated to include a new flag, -l, which - ends event collection after the specified number of - seconds. - - The &man.mergemaster.8; utility has - been updated to avoid printing - /var/tmp/temproot - disappeared if there is nothing to compare. - - The &os; installer, &man.bsdinstall.8;, - has been updated to include optional - &man.geli.8;-encrypted or &man.gmirror.8;-mirrored swap - devices when installing onto a full &man.zfs.8; filesystem. - Additionally, the parent &man.zfs.8; dataset is now configured - with lz4 compression enabled. - - The default &man.newsyslog.conf.5; now - includes files in the - /etc/newsyslog.conf.d/ and - /usr/local/etc/newsyslog.conf.d/ - directories by default for &man.newsyslog.8;. - - The &man.realpath.1; utility has been - updated to return ENOTDIR on paths - components . and .. that are *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:26:56 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 07214992; Fri, 2 Jan 2015 22:26:56 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E73E421E6; Fri, 2 Jan 2015 22:26:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02MQt0b092461; Fri, 2 Jan 2015 22:26:55 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02MQteT092460; Fri, 2 Jan 2015 22:26:55 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201501022226.t02MQteT092460@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 2 Jan 2015 22:26:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276587 - head/usr.bin/readelf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:26:56 -0000 Author: emaste Date: Fri Jan 2 22:26:54 2015 New Revision: 276587 URL: https://svnweb.freebsd.org/changeset/base/276587 Log: Add Makefile for elftoolchain readelf(1) Sponsored by: The FreeBSD Foundation Added: head/usr.bin/readelf/ head/usr.bin/readelf/Makefile (contents, props changed) Added: head/usr.bin/readelf/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/readelf/Makefile Fri Jan 2 22:26:54 2015 (r276587) @@ -0,0 +1,14 @@ +# $FreeBSD$ + +ELFTCDIR= ${.CURDIR}/../../contrib/elftoolchain +READELFDIR= ${ELFTCDIR}/readelf + +.PATH: ${READELFDIR} + +PROG= readelf + +LIBADD= dwarf elftc elf + +CFLAGS+=-I${ELFTCDIR}/libelftc -I${ELFTCDIR}/common + +.include From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:34:01 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5B5BFE33; Fri, 2 Jan 2015 22:34:01 +0000 (UTC) Received: from mail-la0-x22e.google.com (mail-la0-x22e.google.com [IPv6:2a00:1450:4010:c03::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E5BC924A9; Fri, 2 Jan 2015 22:34:00 +0000 (UTC) Received: by mail-la0-f46.google.com with SMTP id q1so16323797lam.33; Fri, 02 Jan 2015 14:33:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=OY+4aYYKZpo4W9aXIivSxw+DwHHnqYjAN9fS328J6NQ=; b=BXn27WKYR4Y68ttvHZJxkHNG2H78EKtHBzN2EZlQmpkDagQLrzJgbJUIjZDMd3K1qa mDJDFkiloynGtiYAWkC8Jp3iHtb92hLJpoI6OSdfFZY+ClWNYPrgr624neNjFdFALAMK +2UkO4sLjymT/tcYRfIJyEcP6oy+iMcbOAWJn1OPAeth9/biZSrJWzIrycrBPb54b6Zb ARqrtIWrfkeHZ6pmBHSS+HgKfG3kT9wMpRF8BpFu30r3TA1UxHXAe1XXAldITJJgLJMK lHI2mnaSb1IhHMwN4oW1+cWlL4kK0ff3N7o9CZVk5G16CoEBLOvL/5aGXE2Hzs1gCCf7 AUeQ== MIME-Version: 1.0 X-Received: by 10.112.51.44 with SMTP id h12mr79058171lbo.5.1420238038856; Fri, 02 Jan 2015 14:33:58 -0800 (PST) Sender: crodr001@gmail.com Received: by 10.112.141.5 with HTTP; Fri, 2 Jan 2015 14:33:58 -0800 (PST) In-Reply-To: <201501022120.t02LK3up054153@svn.freebsd.org> References: <201501022120.t02LK3up054153@svn.freebsd.org> Date: Fri, 2 Jan 2015 14:33:58 -0800 X-Google-Sender-Auth: 9kN4vv8HBe9HOp5aUhv-wrvSEvE Message-ID: Subject: Re: svn commit: r276577 - in head: contrib/file contrib/file/doc contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/tests lib/libmagic From: Craig Rodrigues To: Xin LI Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:34:01 -0000 On Fri, Jan 2, 2015 at 1:20 PM, Xin LI wrote: > Author: delphij > Date: Fri Jan 2 21:20:02 2015 > New Revision: 276577 > URL: https://svnweb.freebsd.org/changeset/base/276577 > > Log: > MFV r276568: > > Update file to 5.22. > In future for commits like this, please set the "Relnotes:" flag in your commit log message, to make it easier for re@ to track updates to contrib code in the release notes. -- Craig From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:34:04 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 80EAFF65; Fri, 2 Jan 2015 22:34:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6D13A24AA; Fri, 2 Jan 2015 22:34:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02MY43e097351; Fri, 2 Jan 2015 22:34:04 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02MY4RI097350; Fri, 2 Jan 2015 22:34:04 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201501022234.t02MY4RI097350@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Fri, 2 Jan 2015 22:34:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276588 - head/sys/powerpc/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:34:04 -0000 Author: nwhitehorn Date: Fri Jan 2 22:34:03 2015 New Revision: 276588 URL: https://svnweb.freebsd.org/changeset/base/276588 Log: Remove last vestige of Apple-specific memory parsing removed in r258807. Modified: head/sys/powerpc/ofw/ofw_machdep.c Modified: head/sys/powerpc/ofw/ofw_machdep.c ============================================================================== --- head/sys/powerpc/ofw/ofw_machdep.c Fri Jan 2 22:26:54 2015 (r276587) +++ head/sys/powerpc/ofw/ofw_machdep.c Fri Jan 2 22:34:03 2015 (r276588) @@ -141,11 +141,9 @@ parse_ofw_memory(phandle_t node, const c cell_t address_cells, size_cells; cell_t OFmem[4 * PHYS_AVAIL_SZ]; int sz, i, j; - int apple_hack_mode; phandle_t phandle; sz = 0; - apple_hack_mode = 0; /* * Get #address-cells from root node, defaulting to 1 if it cannot From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:42:04 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CB1C125E; Fri, 2 Jan 2015 22:42:04 +0000 (UTC) Received: from mail-ig0-x234.google.com (mail-ig0-x234.google.com [IPv6:2607:f8b0:4001:c05::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 84A1825FF; Fri, 2 Jan 2015 22:42:04 +0000 (UTC) Received: by mail-ig0-f180.google.com with SMTP id h15so204480igd.13; Fri, 02 Jan 2015 14:42:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=9XXH9V5r694iKdTuBIr6pL8qwpyAtFCou4oxk6ZyBMY=; b=vBTdvIExUT44dMub2ECZEuNJc8fR0HbnYoyhvWDVYEhf6BTj0AI/MgxLLixUEWeop2 1lKMkY95Bq8UV1yHbl2vI8VyxyzP04RAQLo5p4RBWW3pGT7D1C3yj0ECuN5iBtXHfWrn GKQxaLIEyaGiOjsm2qvGD4KYDNXGu1XdUgNpu8wkft6yPYtUilfZfrLmWqSx5U0+5oc0 vaV0iLFvGwC+Xcaramd7Zwf9sG9U9m34hHRvvT4gp1d+zKSqxFt05APqHpux1RFx21s3 3QUV9EWtq+yPzJLyuiUj+4FK3GNHoaC8DIRJ7MTjXBQKE5QsgYln71adHsdZlZwxkDQB tUGA== X-Received: by 10.43.154.138 with SMTP id le10mr57737520icc.50.1420238523844; Fri, 02 Jan 2015 14:42:03 -0800 (PST) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.0.85 with HTTP; Fri, 2 Jan 2015 14:41:43 -0800 (PST) In-Reply-To: References: <201501022120.t02LK3up054153@svn.freebsd.org> From: Ed Maste Date: Fri, 2 Jan 2015 17:41:43 -0500 X-Google-Sender-Auth: FTQydRUJUxSlMlVL2E57hpPPL8A Message-ID: Subject: Re: svn commit: r276577 - in head: contrib/file contrib/file/doc contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/tests lib/libmagic To: Craig Rodrigues Content-Type: text/plain; charset=UTF-8 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Xin LI X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:42:04 -0000 On 2 January 2015 at 17:33, Craig Rodrigues wrote: > > In future for commits like this, please set the "Relnotes:" flag in your > commit log message, to make it easier for re@ to track updates to > contrib code in the release notes. Good point. Perhaps we should add a note in the Committer's Guide Subversion Primer as well. I'll review it and see if there are other things we may want to comment on. From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:44:58 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 25EDA41B; Fri, 2 Jan 2015 22:44:58 +0000 (UTC) Received: from mail-pa0-x235.google.com (mail-pa0-x235.google.com [IPv6:2607:f8b0:400e:c03::235]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E1FE5263C; Fri, 2 Jan 2015 22:44:57 +0000 (UTC) Received: by mail-pa0-f53.google.com with SMTP id kq14so24814709pab.40; Fri, 02 Jan 2015 14:44:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=dPs0fyJ1bb/8cOm0GouTxzmuC+hAFR8CMug/sas3U4U=; b=mHb4WDShEQQ+9bmVeGEEuHj+MdDzfyrZCvDtZpwMsjKiG2GGdkvQRhGuGCVJIRRul1 ccRqVxZS/wbq4OoWhmrt3/3DLcWyYtk69EikM7Rtljddam4NDbDglcWSgEfd/HlQ2E5o ax87QQGs9Nx3jlNpf6YrOZhRJhJjzvRgRVB9U3xMrrWDnKDBQp92VXjD4L1ghPkuz0Sq QcpoKGPkDSRQgHgB136frp6sD7z/gavjve7aFQX26RHcodU2ruJ8nm9rl9OIya4IrLsD +5WjsUa08LCjqQwK1ubPIkdt1zrFfj//kjNsA9AkX+kH5toWFaXZ2yAuwv11fuHJQnMv GR+Q== X-Received: by 10.68.196.231 with SMTP id ip7mr68524112pbc.156.1420238697488; Fri, 02 Jan 2015 14:44:57 -0800 (PST) Received: from ?IPv6:2601:8:ab80:7d6:9824:7859:76bd:f878? ([2601:8:ab80:7d6:9824:7859:76bd:f878]) by mx.google.com with ESMTPSA id kr10sm26989830pdb.42.2015.01.02.14.44.56 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 02 Jan 2015 14:44:56 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_0D91F331-A51B-41FF-BF57-56C9EE97BB7B"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r276566 - head/gnu/usr.bin/gperf/doc From: Garrett Cooper In-Reply-To: <201501022047.t02Klret036440@svn.freebsd.org> Date: Fri, 2 Jan 2015 14:44:53 -0800 Message-Id: References: <201501022047.t02Klret036440@svn.freebsd.org> To: Jung-uk Kim X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:44:58 -0000 --Apple-Mail=_0D91F331-A51B-41FF-BF57-56C9EE97BB7B Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On Jan 2, 2015, at 12:47, Jung-uk Kim wrote: > Author: jkim > Date: Fri Jan 2 20:47:52 2015 > New Revision: 276566 > URL: https://svnweb.freebsd.org/changeset/base/276566 > > Log: > Garbage collect the empty directory. Thanks for getting that! --Apple-Mail=_0D91F331-A51B-41FF-BF57-56C9EE97BB7B Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUpx9mAAoJEMZr5QU6S73eULMIAJvwuUMuke3vKvbvjYvX9JyV ld8hpSfXLw06JSDTrfq+aNqoQrsR9E4uFLp+Zs8vfNcu7zO7BJZNXB9j8GVfruHG wfaqpeZGx7i3wBwpQOyzzLTwTMgc1+SCx6l3dEflkhp0ghtc5LWwhsr+kIs2+dvq TWd9qqT/LIut/YYhMpvYjLDgt4m8Qy5koT7AotAEIom6MaBDMbIR2+gYG/BLa8pi R7x3s0/KldJIWgeDkMjte0bWf36lDVN9CGteQIt84V/UY9dyDaQAJVIVQC1vAIcu hmL1uNnkPX3VhNBJkIC15LUPy2Vt5iUlC5t+idq6UFI0NM+UrP6kyoeLuuXha0M= =gDKT -----END PGP SIGNATURE----- --Apple-Mail=_0D91F331-A51B-41FF-BF57-56C9EE97BB7B-- From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:45:56 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1B7B655D; Fri, 2 Jan 2015 22:45:56 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0797A2650; Fri, 2 Jan 2015 22:45:56 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02MjttB003143; Fri, 2 Jan 2015 22:45:55 GMT (envelope-from loos@FreeBSD.org) Received: (from loos@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Mjtdw003142; Fri, 2 Jan 2015 22:45:55 GMT (envelope-from loos@FreeBSD.org) Message-Id: <201501022245.t02Mjtdw003142@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: loos set sender to loos@FreeBSD.org using -f From: Luiz Otavio O Souza Date: Fri, 2 Jan 2015 22:45:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276589 - head/sys/dev/puc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:45:56 -0000 Author: loos Date: Fri Jan 2 22:45:55 2015 New Revision: 276589 URL: https://svnweb.freebsd.org/changeset/base/276589 Log: puc(4): Add an entry for the Feasso PCI FPP-02 2S1P card. MFC after: 1 week Modified: head/sys/dev/puc/pucdata.c Modified: head/sys/dev/puc/pucdata.c ============================================================================== --- head/sys/dev/puc/pucdata.c Fri Jan 2 22:34:03 2015 (r276588) +++ head/sys/dev/puc/pucdata.c Fri Jan 2 22:45:55 2015 (r276589) @@ -1035,6 +1035,12 @@ const struct puc_cfg puc_pci_devices[] = .config_function = puc_config_sunix }, + { 0x5372, 0x6872, 0xffff, 0, + "Feasso PCI FPP-02 2S1P", + DEFAULT_RCLK, + PUC_PORT_2S1P, 0x10, 4, 0, + }, + { 0x5372, 0x6873, 0xffff, 0, "Sun 1040 PCI Quad Serial", DEFAULT_RCLK, From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:46:51 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 481796A4; Fri, 2 Jan 2015 22:46:51 +0000 (UTC) Received: from mail-lb0-x22a.google.com (mail-lb0-x22a.google.com [IPv6:2a00:1450:4010:c04::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D0D092690; Fri, 2 Jan 2015 22:46:50 +0000 (UTC) Received: by mail-lb0-f170.google.com with SMTP id 10so15702394lbg.15; Fri, 02 Jan 2015 14:46:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=3imFhnvM/8WGAm2BMHuCHUmRUzGFvewo7apI6+1nfeE=; b=GSkNXbxQev5E2U8/xNaDAXYyVwQZj4G7/d/PWZ08BBN/3A182DW/uZbbCve6j5vTyg b6mHBawweC9u5MQOFBMrsqH2kmVtLw8+X3ds6m16Zz0D8bhEH35LOvuhJYlqCr1mBPqH B+A0BEO9FJKKZHtqdN2gQ+WXIJXI9lh7eu1EOxNpyhS3qHDykK5yohSvd+GDN4RNMeSN SY797QO27mTCmS3bUajXzwrJ0Rof1xk8jxdN4uRujy0m1zDjj1PrF1HF5jikl6A/8DMo yJQoBU7gG+XmU+HCp2UmVWw9aqpM+VKA/ekn3BePFLY28FELQwX1wL485i2fl3tvLyCf wpJQ== MIME-Version: 1.0 X-Received: by 10.152.6.67 with SMTP id y3mr78442260lay.90.1420238808732; Fri, 02 Jan 2015 14:46:48 -0800 (PST) Sender: crodr001@gmail.com Received: by 10.112.141.5 with HTTP; Fri, 2 Jan 2015 14:46:48 -0800 (PST) In-Reply-To: References: <201501022120.t02LK3up054153@svn.freebsd.org> Date: Fri, 2 Jan 2015 14:46:48 -0800 X-Google-Sender-Auth: jCPW-MSRRakhoMHDjBTjE9je5bg Message-ID: Subject: Re: svn commit: r276577 - in head: contrib/file contrib/file/doc contrib/file/magic contrib/file/magic/Magdir contrib/file/python contrib/file/src contrib/file/tests lib/libmagic From: Craig Rodrigues To: Ed Maste Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:46:51 -0000 On Fri, Jan 2, 2015 at 2:41 PM, Ed Maste wrote: > > Good point. Perhaps we should add a note in the Committer's Guide > Subversion Primer as well. I'll review it and see if there are other > things we may want to comment on. > https://www.freebsd.org/doc/en/articles/committers-guide/commit-log-message.html mentions "Relnotes:" briefly. However, it is too brief. The example on that page is too brief, and does not give the new committer a good idea as to when to set "Relnotes:". -- Craig From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:49:08 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 39354825; Fri, 2 Jan 2015 22:49:08 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2428B26C9; Fri, 2 Jan 2015 22:49:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Mn87N003584; Fri, 2 Jan 2015 22:49:08 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Mn6VN003573; Fri, 2 Jan 2015 22:49:06 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201501022249.t02Mn6VN003573@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Fri, 2 Jan 2015 22:49:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276590 - in head: contrib/netbsd-tests/lib/libc/c063 lib/libc/tests/c063 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:49:08 -0000 Author: jilles Date: Fri Jan 2 22:49:05 2015 New Revision: 276590 URL: https://svnweb.freebsd.org/changeset/base/276590 Log: Link lib/libc/c063 tests to the build. Some files lack required #include . The #ifdef is per ngie's request; the includes are clearly necessary for struct stat. The faccessat test fails because it tries to use AT_SYMLINK_NOFOLLOW with faccessat(), which is not specified by POSIX.1-2008. Differential Revision: https://reviews.freebsd.org/D1411 Reviewed by: ngie Modified: head/contrib/netbsd-tests/lib/libc/c063/t_faccessat.c head/contrib/netbsd-tests/lib/libc/c063/t_fchmodat.c head/contrib/netbsd-tests/lib/libc/c063/t_fchownat.c head/contrib/netbsd-tests/lib/libc/c063/t_fstatat.c head/lib/libc/tests/c063/Makefile Modified: head/contrib/netbsd-tests/lib/libc/c063/t_faccessat.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/c063/t_faccessat.c Fri Jan 2 22:45:55 2015 (r276589) +++ head/contrib/netbsd-tests/lib/libc/c063/t_faccessat.c Fri Jan 2 22:49:05 2015 (r276590) @@ -165,6 +165,9 @@ ATF_TC_BODY(faccessat_fdlink, tc) ATF_REQUIRE(faccessat(dfd, BASELINK, F_OK, 0) == -1); ATF_REQUIRE(errno == ENOENT); +#ifdef __FreeBSD__ + atf_tc_expect_fail("Depends on non-standard behavior not mentioned in POSIX.1-2008"); +#endif ATF_REQUIRE(faccessat(dfd, BASELINK, F_OK, AT_SYMLINK_NOFOLLOW) == 0); ATF_REQUIRE(close(dfd) == 0); Modified: head/contrib/netbsd-tests/lib/libc/c063/t_fchmodat.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/c063/t_fchmodat.c Fri Jan 2 22:45:55 2015 (r276589) +++ head/contrib/netbsd-tests/lib/libc/c063/t_fchmodat.c Fri Jan 2 22:49:05 2015 (r276590) @@ -40,6 +40,9 @@ __RCSID("$NetBSD: t_fchmodat.c,v 1.2 201 #include #include #include +#ifdef __FreeBSD__ +#include +#endif #define DIR "dir" #define FILE "dir/fchmodat" Modified: head/contrib/netbsd-tests/lib/libc/c063/t_fchownat.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/c063/t_fchownat.c Fri Jan 2 22:45:55 2015 (r276589) +++ head/contrib/netbsd-tests/lib/libc/c063/t_fchownat.c Fri Jan 2 22:49:05 2015 (r276590) @@ -41,6 +41,9 @@ __RCSID("$NetBSD: t_fchownat.c,v 1.3 201 #include #include #include +#ifdef __FreeBSD__ +#include +#endif #define DIR "dir" #define FILE "dir/fchownat" Modified: head/contrib/netbsd-tests/lib/libc/c063/t_fstatat.c ============================================================================== --- head/contrib/netbsd-tests/lib/libc/c063/t_fstatat.c Fri Jan 2 22:45:55 2015 (r276589) +++ head/contrib/netbsd-tests/lib/libc/c063/t_fstatat.c Fri Jan 2 22:49:05 2015 (r276590) @@ -40,6 +40,9 @@ __RCSID("$NetBSD: t_fstatat.c,v 1.2 2013 #include #include #include +#ifdef __FreeBSD__ +#include +#endif #define DIR "dir" #define FILE "dir/fstatat" Modified: head/lib/libc/tests/c063/Makefile ============================================================================== --- head/lib/libc/tests/c063/Makefile Fri Jan 2 22:45:55 2015 (r276589) +++ head/lib/libc/tests/c063/Makefile Fri Jan 2 22:49:05 2015 (r276590) @@ -4,21 +4,23 @@ TESTSDIR= ${TESTSBASE}/lib/libc/c063 #TODO: t_o_search, t_utimensat -NETBSD_ATF_TESTS_C= t_faccessat -NETBSD_ATF_TESTS_C+= t_fchmodat -NETBSD_ATF_TESTS_C+= t_fchownat -NETBSD_ATF_TESTS_C+= t_fexecve -NETBSD_ATF_TESTS_C+= t_fstatat -NETBSD_ATF_TESTS_C+= t_linkat -NETBSD_ATF_TESTS_C+= t_mkdirat -NETBSD_ATF_TESTS_C+= t_mkfifoat -NETBSD_ATF_TESTS_C+= t_mknodat -NETBSD_ATF_TESTS_C+= t_openat -NETBSD_ATF_TESTS_C+= t_readlinkat -NETBSD_ATF_TESTS_C+= t_renameat -NETBSD_ATF_TESTS_C+= t_symlinkat -NETBSD_ATF_TESTS_C+= t_unlinkat +NETBSD_ATF_TESTS_C= faccessat +NETBSD_ATF_TESTS_C+= fchmodat +NETBSD_ATF_TESTS_C+= fchownat +NETBSD_ATF_TESTS_C+= fexecve +NETBSD_ATF_TESTS_C+= fstatat +NETBSD_ATF_TESTS_C+= linkat +NETBSD_ATF_TESTS_C+= mkdirat +NETBSD_ATF_TESTS_C+= mkfifoat +NETBSD_ATF_TESTS_C+= mknodat +NETBSD_ATF_TESTS_C+= openat +NETBSD_ATF_TESTS_C+= readlinkat +NETBSD_ATF_TESTS_C+= renameat +NETBSD_ATF_TESTS_C+= symlinkat +NETBSD_ATF_TESTS_C+= unlinkat CFLAGS+= -D_INCOMPLETE_XOPEN_C063 +.include "../Makefile.netbsd-tests" + .include From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:53:04 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EACCF9A1; Fri, 2 Jan 2015 22:53:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D62EF1631; Fri, 2 Jan 2015 22:53:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02Mr44Z007530; Fri, 2 Jan 2015 22:53:04 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02Mr4ME007529; Fri, 2 Jan 2015 22:53:04 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201501022253.t02Mr4ME007529@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 2 Jan 2015 22:53:04 +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: r276591 - stable/10/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:53:05 -0000 Author: gjb Date: Fri Jan 2 22:53:03 2015 New Revision: 276591 URL: https://svnweb.freebsd.org/changeset/base/276591 Log: Trim the copyright year list to match the style in head. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 22:49:05 2015 (r276590) +++ stable/10/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 22:53:03 2015 (r276591) @@ -21,21 +21,6 @@ $FreeBSD$ - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010 - 2011 - 2012 - 2013 - 2014 2015 The &os; Documentation Project From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 22:55:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C61E1AF5; Fri, 2 Jan 2015 22:55:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B20801652; Fri, 2 Jan 2015 22:55:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02MtVtY007911; Fri, 2 Jan 2015 22:55:31 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02MtVnb007910; Fri, 2 Jan 2015 22:55:31 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201501022255.t02MtVnb007910@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 2 Jan 2015 22:55:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276592 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 22:55:31 -0000 Author: ngie Date: Fri Jan 2 22:55:30 2015 New Revision: 276592 URL: https://svnweb.freebsd.org/changeset/base/276592 Log: Remove MK_INFO guards in bsd.info.mk per r276556 As a side-effect now info pages will always be built/installed if MK_INFO == yes, whereas before their presence was conditional based on the value of MK_INFO This .mk file might be removed in the future, pending discussion on -arch. For now unbreak its use outside of src (with the only use in ports according to bapt being devel/cvs*) X-MFC with: r276551, r276556 Reviewed by: bapt Differential Revision: D1413 Modified: head/share/mk/bsd.info.mk Modified: head/share/mk/bsd.info.mk ============================================================================== --- head/share/mk/bsd.info.mk Fri Jan 2 22:53:03 2015 (r276591) +++ head/share/mk/bsd.info.mk Fri Jan 2 22:55:30 2015 (r276592) @@ -121,7 +121,6 @@ DVIPS2ASCII?= dvips2ascii IFILENS+= ${INFO:S/$/.${_f}/} .endfor -.if ${MK_INFO} != "no" CLEANFILES+= ${IFILENS} .if !defined(NO_INFOCOMPRESS) CLEANFILES+= ${IFILENS:S/$/${ICOMPRESS_EXT}/} @@ -131,9 +130,6 @@ all: ${IFILES} IFILES= ${IFILENS} all: ${IFILES} .endif -.else -all: -.endif .for x in ${IFILENS} ${x:S/$/${ICOMPRESS_EXT}/}: ${x} @@ -177,7 +173,7 @@ CLEANFILES+= ${INFO:S/$/-la.texi/} CLEANFILES+= ${INFO:S/$/.info.*.html/} ${INFO:S/$/.info/} .endif -.if ${MK_INFO} != "no" && defined(INFO) +.if defined(INFO) install: ${INSTALLINFODIRS} .if !empty(IFILES:N*.html) ${INSTALL} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \ From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 23:10:29 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5598AD2E; Fri, 2 Jan 2015 23:10:29 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4108C1A0E; Fri, 2 Jan 2015 23:10:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02NATRn013703; Fri, 2 Jan 2015 23:10:29 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02NATjU013702; Fri, 2 Jan 2015 23:10:29 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201501022310.t02NATjU013702@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 2 Jan 2015 23:10:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276593 - head/release/doc/en_US.ISO8859-1/relnotes X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 23:10:29 -0000 Author: delphij Date: Fri Jan 2 23:10:28 2015 New Revision: 276593 URL: https://svnweb.freebsd.org/changeset/base/276593 Log: Document file update. Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- head/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 22:55:30 2015 (r276592) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Jan 2 23:10:28 2015 (r276593) @@ -415,6 +415,9 @@ OpenSSL has been updated to version 1.0.1h. + + file has been + updated to version 5.22. From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 23:13:05 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4D75BE99; Fri, 2 Jan 2015 23:13:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 38BB71A50; Fri, 2 Jan 2015 23:13:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02ND5IT017011; Fri, 2 Jan 2015 23:13:05 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02ND5Yf017010; Fri, 2 Jan 2015 23:13:05 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501022313.t02ND5Yf017010@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 2 Jan 2015 23:13:05 +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: r276594 - stable/10 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 23:13:05 -0000 Author: bapt Date: Fri Jan 2 23:13:04 2015 New Revision: 276594 URL: https://svnweb.freebsd.org/changeset/base/276594 Log: install-info is also needed for installworld so add it to the bootstrap tools Add BPATH to the installworld path to ensure using installworld works if install-info is not in base Modified: stable/10/Makefile.inc1 Modified: stable/10/Makefile.inc1 ============================================================================== --- stable/10/Makefile.inc1 Fri Jan 2 23:10:28 2015 (r276593) +++ stable/10/Makefile.inc1 Fri Jan 2 23:13:04 2015 (r276594) @@ -815,6 +815,7 @@ MTREE_MAGIC?= mtree 2.0 distributeworld installworld: _installcheck_world mkdir -p ${INSTALLTMP} + export PATH=${BPATH}:${PATH} ; \ progs=$$(for prog in ${ITOOLS}; do \ if progpath=`which $$prog`; then \ echo $$progpath; \ @@ -1313,7 +1314,8 @@ _kerberos5_bootstrap_tools= \ .if ${_BOOTSTRAP_MAKEINFO} != "no" _texinfo= gnu/usr.bin/texinfo/libtxi \ - gnu/usr.bin/texinfo/makeinfo + gnu/usr.bin/texinfo/makeinfo \ + gnu/usr.bin/texinfo/install-info .endif # Please document (add comment) why something is in 'bootstrap-tools'. # Try to bound the building of the bootstrap-tool to just the From owner-svn-src-all@FreeBSD.ORG Fri Jan 2 23:46:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 000F46B7; Fri, 2 Jan 2015 23:46:30 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D497E1F40; Fri, 2 Jan 2015 23:46:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t02NkUfR032795; Fri, 2 Jan 2015 23:46:30 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t02NkRgd032775; Fri, 2 Jan 2015 23:46:27 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501022346.t02NkRgd032775@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Fri, 2 Jan 2015 23:46:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276596 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2015 23:46:31 -0000 Author: ian Date: Fri Jan 2 23:46:26 2015 New Revision: 276596 URL: https://svnweb.freebsd.org/changeset/base/276596 Log: Fix alignment directives in arm asm code after clang 3.5 import. The ancient gas we've been using interprets .align 0 as align to the minimum required alignment for the current section. Clang's integrated assembler interprets it as align to a byte boundary. Fortunately both assemblers interpret a non-zero value as align to 2^N so just make sure we have appropriate non-zero values everywhere. Modified: head/sys/arm/arm/bcopyinout.S head/sys/arm/arm/bcopyinout_xscale.S head/sys/arm/arm/copystr.S head/sys/arm/arm/cpufunc_asm.S head/sys/arm/arm/cpufunc_asm_arm10.S head/sys/arm/arm/cpufunc_asm_arm9.S head/sys/arm/arm/cpufunc_asm_armv5.S head/sys/arm/arm/exception.S head/sys/arm/arm/fusu.S head/sys/arm/arm/locore-v4.S head/sys/arm/arm/locore-v6.S head/sys/arm/include/asm.h head/sys/arm/include/profile.h Modified: head/sys/arm/arm/bcopyinout.S ============================================================================== --- head/sys/arm/arm/bcopyinout.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/bcopyinout.S Fri Jan 2 23:46:26 2015 (r276596) @@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$"); #else .text - .align 0 + .align 2 #ifdef _ARM_ARCH_6 #define GET_PCB(tmp) \ Modified: head/sys/arm/arm/bcopyinout_xscale.S ============================================================================== --- head/sys/arm/arm/bcopyinout_xscale.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/bcopyinout_xscale.S Fri Jan 2 23:46:26 2015 (r276596) @@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$"); .syntax unified .text - .align 0 + .align 2 #ifdef _ARM_ARCH_6 #define GET_PCB(tmp) \ Modified: head/sys/arm/arm/copystr.S ============================================================================== --- head/sys/arm/arm/copystr.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/copystr.S Fri Jan 2 23:46:26 2015 (r276596) @@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$"); #include .text - .align 0 + .align 2 #ifdef _ARM_ARCH_6 #define GET_PCB(tmp) \ @@ -210,5 +210,5 @@ END(copyoutstr) Lcopystrpcbfaulttext: .asciz "No valid PCB during copyinoutstr() addr1=%08x addr2=%08x\n" - .align 0 + .align 2 #endif Modified: head/sys/arm/arm/cpufunc_asm.S ============================================================================== --- head/sys/arm/arm/cpufunc_asm.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/cpufunc_asm.S Fri Jan 2 23:46:26 2015 (r276596) @@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$"); .text - .align 0 + .align 2 ENTRY(cpufunc_nullop) RET @@ -138,7 +138,7 @@ ENTRY(cpufunc_control) RET .Lglou: .asciz "plop %p\n" - .align 0 + .align 2 END(cpufunc_control) /* Modified: head/sys/arm/arm/cpufunc_asm_arm10.S ============================================================================== --- head/sys/arm/arm/cpufunc_asm_arm10.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/cpufunc_asm_arm10.S Fri Jan 2 23:46:26 2015 (r276596) @@ -265,7 +265,7 @@ END(arm10_context_switch) * four variables is assumed in the code above. Hence the reason for * declaring them in the assembler file. */ - .align 0 + .align 2 C_OBJECT(arm10_dcache_sets_max) .space 4 C_OBJECT(arm10_dcache_index_max) Modified: head/sys/arm/arm/cpufunc_asm_arm9.S ============================================================================== --- head/sys/arm/arm/cpufunc_asm_arm9.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/cpufunc_asm_arm9.S Fri Jan 2 23:46:26 2015 (r276596) @@ -252,7 +252,7 @@ END(arm9_context_switch) * four variables is assumed in the code above. Hence the reason for * declaring them in the assembler file. */ - .align 0 + .align 2 C_OBJECT(arm9_dcache_sets_max) .space 4 C_OBJECT(arm9_dcache_index_max) Modified: head/sys/arm/arm/cpufunc_asm_armv5.S ============================================================================== --- head/sys/arm/arm/cpufunc_asm_armv5.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/cpufunc_asm_armv5.S Fri Jan 2 23:46:26 2015 (r276596) @@ -236,7 +236,7 @@ END(armv5_idcache_wbinv_all) * four variables is assumed in the code above. Hence the reason for * declaring them in the assembler file. */ - .align 0 + .align 2 C_OBJECT(armv5_dcache_sets_max) .space 4 C_OBJECT(armv5_dcache_index_max) Modified: head/sys/arm/arm/exception.S ============================================================================== --- head/sys/arm/arm/exception.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/exception.S Fri Jan 2 23:46:26 2015 (r276596) @@ -54,7 +54,7 @@ __FBSDID("$FreeBSD$"); .text - .align 0 + .align 2 /* * ASM macros for pushing and pulling trapframes from the stack Modified: head/sys/arm/arm/fusu.S ============================================================================== --- head/sys/arm/arm/fusu.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/fusu.S Fri Jan 2 23:46:26 2015 (r276596) @@ -204,7 +204,7 @@ Lblock_userspace_access: .word _C_LABEL(block_userspace_access) .data - .align 0 + .align 2 .global _C_LABEL(block_userspace_access) _C_LABEL(block_userspace_access): .word 0 Modified: head/sys/arm/arm/locore-v4.S ============================================================================== --- head/sys/arm/arm/locore-v4.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/locore-v4.S Fri Jan 2 23:46:26 2015 (r276596) @@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$"); * the running kernel. */ .text - .align 0 + .align 2 #ifdef PHYSADDR .globl kernbase .set kernbase,KERNBASE @@ -373,7 +373,7 @@ Lend: .Lmainreturned: .asciz "main() returned" - .align 0 + .align 2 .bss svcstk: @@ -389,7 +389,7 @@ pagetable: .space L1_TABLE_SIZE .text - .align 0 + .align 2 .Lcpufuncs: .word _C_LABEL(cpufuncs) @@ -476,7 +476,7 @@ mpvirt_done: .Lmpreturned: .asciz "init_secondary() returned" - .align 0 + .align 2 END(mpentry) #endif @@ -584,7 +584,7 @@ END(sigcode) .word SYS_sigreturn .word SYS_exit - .align 0 + .align 2 .global _C_LABEL(esigcode) _C_LABEL(esigcode): Modified: head/sys/arm/arm/locore-v6.S ============================================================================== --- head/sys/arm/arm/locore-v6.S Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/arm/locore-v6.S Fri Jan 2 23:46:26 2015 (r276596) @@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$"); #define INIT_ARM_STACK_SIZE 2048 .text - .align 0 + .align 2 /* * On entry for FreeBSD boot ABI: @@ -373,7 +373,7 @@ VA_TO_PA_POINTER(Lpagetable, boot_pt1) .Lmainreturned: .asciz "main() returned" - .align 0 + .align 2 .bss svcstk: @@ -390,7 +390,7 @@ boot_pt1: .space L1_TABLE_SIZE .text - .align 0 + .align 2 .Lcpufuncs: .word _C_LABEL(cpufuncs) @@ -443,11 +443,11 @@ ASENTRY_NP(mpentry) adr r0, .Lmpreturned b _C_LABEL(panic) /* NOTREACHED */ +END(mpentry) .Lmpreturned: .asciz "init_secondary() returned" - .align 0 -END(mpentry) + .align 2 #endif ENTRY_NP(cpu_halt) @@ -525,7 +525,7 @@ END(sigcode) .word SYS_sigreturn .word SYS_exit - .align 0 + .align 2 .global _C_LABEL(esigcode) _C_LABEL(esigcode): Modified: head/sys/arm/include/asm.h ============================================================================== --- head/sys/arm/include/asm.h Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/include/asm.h Fri Jan 2 23:46:26 2015 (r276596) @@ -46,7 +46,7 @@ #define _ASM_LABEL(x) x #ifndef _ALIGN_TEXT -# define _ALIGN_TEXT .align 0 +# define _ALIGN_TEXT .align 2 #endif #if defined(__ARM_EABI__) && !defined(_STANDALONE) @@ -129,11 +129,11 @@ pclabel: add got, got, pc #ifdef __thumb__ #define GOT_INITSYM(gotsym,pclabel) \ - .align 0; \ + .align 2; \ gotsym: .word _C_LABEL(_GLOBAL_OFFSET_TABLE_) - (pclabel+4) #else #define GOT_INITSYM(gotsym,pclabel) \ - .align 0; \ + .align 2; \ gotsym: .word _C_LABEL(_GLOBAL_OFFSET_TABLE_) - (pclabel+8) #endif Modified: head/sys/arm/include/profile.h ============================================================================== --- head/sys/arm/include/profile.h Fri Jan 2 23:27:16 2015 (r276595) +++ head/sys/arm/include/profile.h Fri Jan 2 23:46:26 2015 (r276596) @@ -60,7 +60,7 @@ typedef u_long fptrdiff_t; #define MCOUNT \ __asm__(".text"); \ - __asm__(".align 0"); \ + __asm__(".align 2"); \ __asm__(".type __mcount ,%function"); \ __asm__(".global __mcount"); \ __asm__("__mcount:"); \ From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 00:09:23 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1F6A5B0B; Sat, 3 Jan 2015 00:09:23 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0AEC720B3; Sat, 3 Jan 2015 00:09:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t0309MqI043520; Sat, 3 Jan 2015 00:09:22 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t0309MQk043517; Sat, 3 Jan 2015 00:09:22 GMT (envelope-from np@FreeBSD.org) Message-Id: <201501030009.t0309MQk043517@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Sat, 3 Jan 2015 00:09:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276597 - in head/sys/dev/cxgbe: . tom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 00:09:23 -0000 Author: np Date: Sat Jan 3 00:09:21 2015 New Revision: 276597 URL: https://svnweb.freebsd.org/changeset/base/276597 Log: cxgbe/tom: do not engage the TOE's payload chopper for payload < 2 MSS or for 10Gbps ports. MFC after: 2 weeks Modified: head/sys/dev/cxgbe/offload.h head/sys/dev/cxgbe/t4_main.c head/sys/dev/cxgbe/tom/t4_cpl_io.c Modified: head/sys/dev/cxgbe/offload.h ============================================================================== --- head/sys/dev/cxgbe/offload.h Fri Jan 2 23:46:26 2015 (r276596) +++ head/sys/dev/cxgbe/offload.h Sat Jan 3 00:09:21 2015 (r276597) @@ -147,6 +147,7 @@ struct tom_tunables { int indsz; int ddp_thres; int rx_coalesce; + int tx_align; }; int t4_register_uld(struct uld_info *); Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Fri Jan 2 23:46:26 2015 (r276596) +++ head/sys/dev/cxgbe/t4_main.c Sat Jan 3 00:09:21 2015 (r276597) @@ -4801,6 +4801,10 @@ t4_sysctls(struct adapter *sc) sc->tt.rx_coalesce = 1; SYSCTL_ADD_INT(ctx, children, OID_AUTO, "rx_coalesce", CTLFLAG_RW, &sc->tt.rx_coalesce, 0, "receive coalescing"); + + sc->tt.tx_align = 1; + SYSCTL_ADD_INT(ctx, children, OID_AUTO, "tx_align", + CTLFLAG_RW, &sc->tt.tx_align, 0, "chop and align payload"); } #endif Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Fri Jan 2 23:46:26 2015 (r276596) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Sat Jan 3 00:09:21 2015 (r276597) @@ -491,7 +491,7 @@ max_dsgl_nsegs(int tx_credits) static inline void write_tx_wr(void *dst, struct toepcb *toep, unsigned int immdlen, - unsigned int plen, uint8_t credits, int shove, int ulp_mode) + unsigned int plen, uint8_t credits, int shove, int ulp_mode, int txalign) { struct fw_ofld_tx_data_wr *txwr = dst; unsigned int wr_ulp_mode; @@ -513,6 +513,19 @@ write_tx_wr(void *dst, struct toepcb *to V_FW_OFLD_TX_DATA_WR_URGENT(0) | /* XXX */ V_FW_OFLD_TX_DATA_WR_SHOVE(shove)); txwr->plen = htobe32(plen); + + if (txalign > 0) { + struct tcpcb *tp = intotcpcb(toep->inp); + + if (plen < 2 * tp->t_maxseg || is_10G_port(toep->port)) + txwr->lsodisable_to_proxy |= + htobe32(F_FW_OFLD_TX_DATA_WR_LSODISABLE); + else + txwr->lsodisable_to_proxy |= + htobe32(F_FW_OFLD_TX_DATA_WR_ALIGNPLD | + (tp->t_flags & TF_NODELAY ? 0 : + F_FW_OFLD_TX_DATA_WR_ALIGNPLDSHOVE)); + } } /* @@ -716,7 +729,8 @@ t4_push_frames(struct adapter *sc, struc } txwr = wrtod(wr); credits = howmany(wr->wr_len, 16); - write_tx_wr(txwr, toep, plen, plen, credits, shove, 0); + write_tx_wr(txwr, toep, plen, plen, credits, shove, 0, + sc->tt.tx_align); m_copydata(sndptr, 0, plen, (void *)(txwr + 1)); nsegs = 0; } else { @@ -734,7 +748,8 @@ t4_push_frames(struct adapter *sc, struc } txwr = wrtod(wr); credits = howmany(wr_len, 16); - write_tx_wr(txwr, toep, 0, plen, credits, shove, 0); + write_tx_wr(txwr, toep, 0, plen, credits, shove, 0, + sc->tt.tx_align); write_tx_sgl(txwr + 1, sndptr, m, nsegs, max_nsegs_1mbuf); if (wr_len & 0xf) { @@ -890,7 +905,7 @@ t4_ulp_push_frames(struct adapter *sc, s txwr = wrtod(wr); credits = howmany(wr->wr_len, 16); write_tx_wr(txwr, toep, plen, ulp_len, credits, shove, - ulp_mode); + ulp_mode, 0); m_copydata(sndptr, 0, plen, (void *)(txwr + 1)); } else { int wr_len; @@ -907,7 +922,7 @@ t4_ulp_push_frames(struct adapter *sc, s txwr = wrtod(wr); credits = howmany(wr_len, 16); write_tx_wr(txwr, toep, 0, ulp_len, credits, shove, - ulp_mode); + ulp_mode, 0); write_tx_sgl(txwr + 1, sndptr, m, nsegs, max_nsegs_1mbuf); if (wr_len & 0xf) { From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 00:26:22 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B1BF3E19; Sat, 3 Jan 2015 00:26:22 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9BFC82579; Sat, 3 Jan 2015 00:26:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t030QMVL052469; Sat, 3 Jan 2015 00:26:22 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t030QM6U052465; Sat, 3 Jan 2015 00:26:22 GMT (envelope-from np@FreeBSD.org) Message-Id: <201501030026.t030QM6U052465@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Sat, 3 Jan 2015 00:26:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276598 - head/tools/tools/cxgbetool X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 00:26:22 -0000 Author: np Date: Sat Jan 3 00:26:21 2015 New Revision: 276598 URL: https://svnweb.freebsd.org/changeset/base/276598 Log: Add a manual page for cxgbetool. It is incomplete but definitely better than nothing. MFC after: 1 month Added: head/tools/tools/cxgbetool/cxgbetool.8 (contents, props changed) Modified: head/tools/tools/cxgbetool/Makefile Modified: head/tools/tools/cxgbetool/Makefile ============================================================================== --- head/tools/tools/cxgbetool/Makefile Sat Jan 3 00:09:21 2015 (r276597) +++ head/tools/tools/cxgbetool/Makefile Sat Jan 3 00:26:21 2015 (r276598) @@ -2,7 +2,7 @@ PROG= cxgbetool SRCS= cxgbetool.c -MAN= +MAN= cxgbetool.8 CFLAGS+= -I${.CURDIR}/../../../sys/dev/cxgbe -I${.CURDIR}/../../../sys -I. BINDIR?= /usr/sbin Added: head/tools/tools/cxgbetool/cxgbetool.8 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/cxgbetool/cxgbetool.8 Sat Jan 3 00:26:21 2015 (r276598) @@ -0,0 +1,497 @@ +." Copyright (c) 2015, Chelsio Inc +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" 3. Neither the name of the Chelsio Inc nor the names of its +.\" contributors may be used to endorse or promote products derived from +.\" this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.\" * Other names and brands may be claimed as the property of others. +.\" +.\" $FreeBSD$ +.\" +.Dd February 1, 2013 +.Dt CXGBETOOL 8 +.Os +.Sh NAME +.Nm cxgbetool +.Nd Userspace companion to +.Xr cxgbe 4 +.Sh SYNOPSIS +.Bl -item -compact +.It +.Nm Ar nexus command Op Ar parameter ... +.Pp +.It +.Nm Ar nexus Cm clearstats Ar port_id +.It +.Nm Ar nexus Cm context Bro Cm ingress | egress | fl | cong Brc Ar cntxt_id +.It +.Nm Ar nexus Cm filter mode Op Ar match-criteria ... +.It +.Nm Ar nexus Cm filter Ar idx Bro Ar filter-specification | Cm delete Brc +.It +.Nm Ar nexus Cm filter list +.It +.Nm Ar nexus Cm i2c Ar port_id devaddr addr Op Ar len +.It +.Nm Ar nexus Cm loadfw Ar fw-image.bin +.It +.Nm Ar nexus Cm memdump Ar addr len +.It +.Nm Ar nexus Bro Cm reg | reg64 Brc Ar addr Ns Op Ar =val +.It +.Nm Ar nexus Cm regdump Op Ar register-block ... +.It +.Nm Ar nexus Cm sched-class Ar sub-command Op Ar param Ar value +.It +.Nm Ar nexus Cm sched-queue Ar port Ar queue Ar class +.It +.Nm Ar nexus Cm stdio +.It +.Nm Ar nexus Cm tcb Ar tid +.El +.Sh DESCRIPTION +.Nm +provides command-line access to features and debug facilities exported by +.Xr cxgbe 4 +via private ioctls. +The target nexus device, +.Va t4nex%d +, is always the first argument. +(The parent nexus for an Ethernet port +.Va cxgbe%d +is listed in +.Va dev.cxgbe.%d.%parent +in the +.Xr sysctl 8 +MIB). +The rest consists of a command and any parameters required by that command. +.Ss Commands +.Bl -ohang +.It Cm clearstats Ar port_id +Clear all transmit, receive, and error statistics of all queues associated +with a port. +The total number of ports attached to a nexus is listed in +.Va dev.t4nex.%d.nports +and the 0 based +.Ar port_id +identifies a port within this range. +.Pp +.Bl -item -compact +.It +.Cm context ingress Ar ingress_cntxt_id +.It +.Cm context cong Ar ingress_cntxt_id +.It +.Cm context egress Ar egress_cntxt_id +.It +.Cm context fl Ar flm_cntxt_id +.El +Display hardware context for an ingress queue, congestion manager, egress +queue, or freelist manager. +.Bl -tag -width ingress_cntxt_id -compact +.It Ar ingress_cntxt_id +context id of an ingress queue -- the value listed in one of +.Va dev.t4nex.%d.fwq.cntxt_id Ns , +.Va dev.cxgbe.%d.rxq.%d.cntxt_id Ns , +or +.Va dev.cxgbe.%d.ofld_rxq.%d.cntxt_id Ns . +.It Ar egress_cntxt_id +context id of an egress queue -- the value listed in one of +.Va dev.t4nex.%d.mgmtq.cntxt_id Ns , +.Va dev.cxgbe.%d.txq.%d.cntxt_id Ns , +.Va dev.cxgbe.%d.ctrlq.%d.cntxt_id Ns , +.Va dev.cxgbe.%d.ofld_txq.%d.cntxt_id Ns , +.Va dev.cxgbe.%d.rxq.%d.fl.cntxt_id Ns , +or +.Va dev.cxgbe.%d.ofld_rxq.%d.fl.cntxt_id Ns . +Note that freelists are egress queues too. +.It Ar flm_cntxt_id +context id of a freelist manager. The FLM context id is displayed in the +egress context dump of a freelist as FLMcontextID. +.El +.It Cm filter mode Op Ar match-criteria ... +Display or set the nexus's filter mode. +.Ar match-criteria +is a whitespace separated list of criteria from the table below. +Each criteria has an associated budget which is also listed in the table. +The total budget allowed is 36 and attempts to set a filter mode that +exceeds this will be rejected. +Every filter must conform to the filter mode -- multiple match criteria +per filter are allowed but only from among those in the current setting +of the filter mode. +The filter mode can only be changed when there are no existing filters. +Its default value is +.Cm ipv4 ipv6 sip dip sport dport matchtype proto vlan iport fcoe +.Pp +(Note that +.Ar mask +defaults to all 1s when not provided explicitly. +Also note that many of the items being matched are discrete numeric +values rather than bit fields and should be masked with caution.) +.TS +center expand; +cb cb cb cbw(40m) +cb c l l. +Criteria Budget Usage Matches if ... +_ +ipv4 0 T{ +.Cm type ipv4 +T} T{ +incoming packet is an IPv4 datagram. +T} +_ +ipv6 0 T{ +.Cm type ipv6 +T} T{ +incoming packet is an IPv6 datagram. +T} +_ +sip 0 T{ +.Cm sip Ar addr Ns Op / Ns Ar mask +T} T{ +bitwise and of the source address in an incoming IP datagram with +.Ar mask +equals +.Ar addr Ns . +.Ar addr +can be an IPv4 or IPv6 address. +T} +_ +dip 0 T{ +.Cm dip Ar addr Ns Op / Ns Ar mask +T} T{ +bitwise and of the destination address in an incoming IP datagram with +.Ar mask +equals +.Ar addr Ns . +.Ar addr +can be an IPv4 or IPv6 address. +T} +_ +sport 0 T{ +.Cm sport Ar port Ns Op : Ns Ar mask +T} T{ +bitwise and of the source port in an incoming TCP or UDP datagram with +.Ar mask +equals +.Ar port Ns . +T} +_ +dport 0 T{ +.Cm dport Ar port Ns Op : Ns Ar mask +T} T{ +bitwise and of the destination port in an incoming TCP or UDP datagram with +.Ar mask +equals +.Ar port Ns . +T} +_ +fcoe 1 T{ +.Cm fcoe Brq 0 | 1 +T} T{ +incoming frame is Fibre Channel over Ethernet(1) or not(0). +T} +_ +iport 3 T{ +.Cm iport Ar val Ns Op : Ns Ar mask +T} T{ +bitwise and of the ingress port with +.Ar mask +equals +.Ar val Ns . +The ingress port is a 3 bit number that identifies the port on which a +frame arrived. +Physical ports are numbered 0-3 and 4-7 are internal loopback paths +within the chip. +Note that ingress port is not a bit field so it is not always possible +to match an arbitrary subset of ingress ports with a single filter rule. +T} +_ +ovlan 17 T{ +.Cm ovlan Ar tag Ns Op : Ns Ar mask +T} T{ +bitwise and of the 16-bit outer VLAN tag of an incoming frame with +.Ar mask +equals +.Ar tag Ns . +T} +_ +vlan 17 T{ +.Cm vlan Ar tag Ns Op : Ns Ar mask +T} T{ +bitwise and of the 16-bit VLAN tag of an incoming QinQ frame with +.Ar mask +equals +.Ar tag Ns . +The inner VLAN tag is used if the incoming frame is QinQ. +T} +_ +tos 8 T{ +.Cm tos Ar val Ns Op : Ns Ar mask +T} T{ +bitwise and of the 8-bit IP Type of Service/IPv6 Traffic Class in an +incoming packet with +.Ar mask +equals +.Ar val Ns . +T} +_ +proto 8 T{ +.Cm proto Ar ipproto Ns Op : Ns Ar mask +T} T{ +bitwise and of the 8-bit IP protocol in an incoming packet with +.Ar mask +equals +.Ar ipproto Ns . +T} +_ +ethtype 16 T{ +.Cm ethtype Ar type Ns Op : Ns Ar mask +T} T{ +bitwise and of the 16-bit Ethernet type field of an incoming frame with +.Ar mask +equals +.Ar type Ns . +T} +_ +macidx 9 T{ +.Cm macidx Ar idx Ns Op : Ns Ar mask +T} T{ +bitwise and of the MAC Address Match Index of an incoming frame with +.Ar mask +equals +.Ar idx Ns . +The MAC Address Match Index refers to an entry in the MPS TCAM or in the +MPS hash. See +.Cm matchtype +for more information. +T} +_ +matchtype 3 T{ +.Cm matchtype Ar type Ns Op : Ns Ar mask +T} T{ +bitwise and of the Match Type of an incoming frame with +.Ar mask +equals +.Ar idx Ns . +Match Type is one of the following: +.Bl -tag -width "n" -compact +.It 0 +destination MAC in incoming frame is a unicast L2 address that is +programmed in the MPS TCAM. +.Cm macidx +can be used to match the index (and thus the MAC address) of the match +in the TCAM. +.It 1 +destination MAC in incoming frame is a unicast L2 address that "hit" a +hash entry in the MPS hash table. +.Cm macidx +can be used to match the index of the entry in the MPS hash table. +.It 2 +destination MAC in incoming frame is a multicast L2 address that is +programmed in the MPS TCAM. +.Cm macidx +can be used to match the index (and thus the MAC address) of the match +in the TCAM. +.It 3 +destination MAC in incoming frame is a multicast L2 address that "hit" +an entry in the MPS hash table. +.It 4 +interface on which incoming frame was received is in promiscuous mode +and the destination MAC in the frame is not a broadcast address, and +does not match in the MPS TCAM or the MPS hash either. (The frame would +have been discarded if the interface wasn't in promiscuous mode.) +.It 5 +interface on which incoming frame was received is in promiscuous mode +and the destination MAC in the frame is not a broadcast address; it +wasn't looked up in the MPS TCAM or the MPS hash because the chip is +configured to give precedence to promiscuous mode classification. +.It 6 +destination MAC in incoming frame is a broadcast address. +.It 7 +Not documented. Do not use. +.El +T} +_ +frag 1 T{ +.Cm frag Brq 0 | 1 +T} T{ +incoming frame is part of a fragmented IP datagram(1) or not(0). +T} +.TE +.It Cm filter Ar idx Ar filter-specification +Program a filter at the index specified by +.Ar idx Ns . +.Ar filter-specification +consists of one or more matches to try against an incoming frame and an +action to perform when all matches succeed. +.It Cm filter Ar idx Cm delete +Delete filter that is at the given index. +.It Cm filter Cm list +List all filters programmed into the hardware. +.It Cm i2c Ar port_id devaddr addr Op Ar len +.It Cm loadfw Ar fw-image.bin +Install the firmware contained in +.Ar fw-image.bin +to the card. +.It Cm memdump Ar addr len +Display +.Ar len +bytes of data of the card's memory starting at +.Ar addr Ns . +The card's memory map is available in +.Va dev.t4nex.%d.misc.meminfo Ns . +.It Bro Cm reg | reg64 Brc Ar addr Ns Op Ar =val +.It Cm regdump Op Ar register-block ... +Display contents of device registers. One or more +.Ar register-block +can be specified to limit the registers displayed. +The default is to display registers for all blocks. +Registers with read side effects are not read during a +.Cm regdump +operation. +.Ar register-block +can be +.Cm sge pci dbg mc ma edc0 edc1 cim tp ulp_rx ulp_tx pmrx pmtx mps cplsw +.Cm smb i2c mi uart pmu sf pl le ncsi xgmac Ns . +.It Cm sched-class config Op Ar param Ar value +Configure optional feature capabilities for the TX scheduler. +.Bl -ohang -offset indent +.It Sy type Ar scheduler-type +Use packet for the packet scheduler. +.It Sy minmax Ar value +A non-zero value will enable "minmax" mode; a zero value will disable "minmax" mode. +.Pp +NOTE: Many (most) of the parameters and constraints are adapter-specific +- for instance the number of channels and classes which are available +whether various modes are implemented, etc. Consult the adapter documentation for specific information on any limitations. +.El +.It Cm sched-class params Op Ar param Ar value +Configure parameters for a scheduling class. +.Bl -ohang -offset indent +.It Sy type Ar scheduler-type +Use packet for packet scheduler. +.It Sy level Ar scheduler-hierarchy-level +The "level" within the scheduling hierarchy which is being programed: +.Pp +.Bl -tag -width "cl-wrr" -compact -offset indent +.It Sy cl-rl +Class Rate Limiting. +.Pp +.It Sy cl-wrr +Class Weighted Round Robin. +.Pp +.It Sy cl-wrr +Channel Rate Limiting. +.El +.Pp +.It Sy mode Ar scheduler-mode +The mode in which the scheduling class is going to operate: +.Pp +.Bl -tag -width "class" -compact -offset indent +.It Sy class +All of the "flows" bound to the scheduling class will be held to aggregate scheduling constraints. +.Pp +.It Sy flow +Each of the "flows" bound to the scheduling class will be held to the scheduling constraints. +.El +.Pp +E.g. if the scheduling class has a TX bandwidth of 10Mb/s, in +.Cm class +mode, all of the "flows" bound to the class would be limited to an +aggregate bandwidth of 10Mb/s; but in +.Cm flow +mode, each of the "flows" bound to the scheduling class would be limited to 10Mb/s. +.Pp +.It Sy rate-unit Ar scheduler-rate-unit +The units of the scheduler rate constraints: +.Pp +.Bl -tag -width "bits" -compact -offset indent +.It Sy bits +bit rate in Kb/s. +.Pp +.It Sy pkts +packets/s. +.El +.It Sy rate-mode Ar scheduler-rate-mode +The mode of the scheduler rate constraints: +.Pp +.Bl -tag -width "relative" -compact -offset indent +.It Sy relative +percent of port rate. +.Pp +.It Sy absolute +Kb/s. +.El +.Pp +.It Sy channel Ar scheduler-channel-index +The scheduling channel to which the scheduling class will be bound. +.Pp +.It Sy class Ar scheduler-class-index +The scheduling class being programmed. +.Pp +.It Sy min-rate Ar minimum-rate +The minimum guaranteed rate to which a rate-limiting scheduling class hierarchy will have access. +.Pp +.It Sy max-rate Ar maximum-rate +The maximum rate for a rate-limiting scheduling class hierarchy. +.Pp +.It Sy weight Ar round-robin-weight +The weight to be used for a weighted-round-robin scheduling hierarchy. +.It Sy pkt-size Ar average-packet-size +The average packet size will be used to compute scheduler constraints for a rate-limited scheduler class hierarchy. +.Pp +NOTE: Many (most) of the parameters and constraints are adapter-specific - for instance the number of channels and classes which are available, +whether various modes are implemented, etc. Consult the adapter documentation for specific information on any limitations. +.El +.It Cm sched-queue Ar port queue class +Bind the indicated port's NIC TX +.Ar queue +to the specified TX Scheduler +.Ar class. +If the TX +.Ar queue +is +.Cm all, * +or any negative value, the binding will apply to +all of the TX queues associated with the +.Ar interface. +If the class is +.Cm unbind, clear +or any negative value, the TX queue(s) will be unbound from +any current TX Scheduler Class binding. +.It Cm stdio +Switch to interactive mode. +.It Cm tcb Ar tid +Display contents of the hardware TCB (TCP Control Block) for the +connection identfied by +.Ar tid Ns . +.El +.Sh FILES +/sys/dev/cxgbe/t4_ioctl.h +.Sh AUTHORS +This manual page was written by +.An Navdeep Parhar Aq np@FreeBSD.org . From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 00:31:54 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0C7C4FF4; Sat, 3 Jan 2015 00:31:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EC1CB26CE; Sat, 3 Jan 2015 00:31:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t030Vr2P056650; Sat, 3 Jan 2015 00:31:53 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t030VrF2056649; Sat, 3 Jan 2015 00:31:53 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501030031.t030VrF2056649@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Sat, 3 Jan 2015 00:31:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276599 - head/contrib/unbound X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 00:31:54 -0000 Author: des Date: Sat Jan 3 00:31:52 2015 New Revision: 276599 URL: https://svnweb.freebsd.org/changeset/base/276599 Log: Recognize the lexer and parser sources. Modified: head/contrib/unbound/freebsd-sources.pl Modified: head/contrib/unbound/freebsd-sources.pl ============================================================================== --- head/contrib/unbound/freebsd-sources.pl Sat Jan 3 00:26:21 2015 (r276598) +++ head/contrib/unbound/freebsd-sources.pl Sat Jan 3 00:31:52 2015 (r276599) @@ -51,7 +51,11 @@ sub get_sources($) { close(MAKE); chomp($objs); $objs =~ s/\.l?o\b/.c/g; - return (split(/\s+/, $objs)); + return map { + /lexer/ && s/c$/l/; + /parser/ && s/c$/y/; + $_; + } split(/\s+/, $objs); } MAIN:{ @@ -70,4 +74,3 @@ MAIN:{ } 1; - From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 01:28:59 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D987C772; Sat, 3 Jan 2015 01:28:59 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AB4F11E02; Sat, 3 Jan 2015 01:28:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t031Sxll080822; Sat, 3 Jan 2015 01:28:59 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t031SxiF080819; Sat, 3 Jan 2015 01:28:59 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201501030128.t031SxiF080819@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 3 Jan 2015 01:28:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276600 - in head/sys/amd64: amd64 include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 01:29:00 -0000 Author: kib Date: Sat Jan 3 01:28:58 2015 New Revision: 276600 URL: https://svnweb.freebsd.org/changeset/base/276600 Log: For /dev/mem and /dev/kmem accesses, avoid asserting that addresses are within direct map. We want to return error instead of panicing. PR: 194995 Sponsored by: The FreeBSD Foundation Modified: head/sys/amd64/amd64/mem.c head/sys/amd64/include/vmparam.h Modified: head/sys/amd64/amd64/mem.c ============================================================================== --- head/sys/amd64/amd64/mem.c Sat Jan 3 00:31:52 2015 (r276599) +++ head/sys/amd64/amd64/mem.c Sat Jan 3 01:28:58 2015 (r276600) @@ -98,7 +98,7 @@ memrw(struct cdev *dev, struct uio *uio, kmemphys: o = v & PAGE_MASK; c = min(uio->uio_resid, (u_int)(PAGE_SIZE - o)); - vd = PHYS_TO_DMAP(v); + vd = PHYS_TO_DMAP_RAW(v); if (vd < DMAP_MIN_ADDRESS || (vd > DMAP_MIN_ADDRESS + dmaplimit && vd <= DMAP_MAX_ADDRESS) || @@ -112,7 +112,7 @@ kmemphys: v = uio->uio_offset; if (v >= DMAP_MIN_ADDRESS && v < DMAP_MAX_ADDRESS) { - v = DMAP_TO_PHYS(v); + v = DMAP_TO_PHYS_RAW(v); goto kmemphys; } Modified: head/sys/amd64/include/vmparam.h ============================================================================== --- head/sys/amd64/include/vmparam.h Sat Jan 3 00:31:52 2015 (r276599) +++ head/sys/amd64/include/vmparam.h Sat Jan 3 01:28:58 2015 (r276600) @@ -183,6 +183,8 @@ #define VM_MAX_ADDRESS UPT_MAX_ADDRESS #define VM_MIN_ADDRESS (0) +#define PHYS_TO_DMAP_RAW(x) ((x) | DMAP_MIN_ADDRESS) +#define DMAP_TO_PHYS_RAW(x) ((x) & ~DMAP_MIN_ADDRESS) /* * XXX Allowing dmaplimit == 0 is a temporary workaround for vt(4) efifb's * early use of PHYS_TO_DMAP before the mapping is actually setup. This works @@ -193,14 +195,14 @@ KASSERT(dmaplimit == 0 || (x) < dmaplimit, \ ("physical address %#jx not covered by the DMAP", \ (uintmax_t)x)); \ - (x) | DMAP_MIN_ADDRESS; }) + PHYS_TO_DMAP_RAW(x); }) #define DMAP_TO_PHYS(x) ({ \ KASSERT((x) < (DMAP_MIN_ADDRESS + dmaplimit) && \ (x) >= DMAP_MIN_ADDRESS, \ ("virtual address %#jx not covered by the DMAP", \ (uintmax_t)x)); \ - (x) & ~DMAP_MIN_ADDRESS; }) + DMAP_TO_PHYS_RAW(x); }) /* * How many physical pages per kmem arena virtual page. From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 01:41:11 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6FB30BF1; Sat, 3 Jan 2015 01:41:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5A1DD64088; Sat, 3 Jan 2015 01:41:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t031fBHJ085972; Sat, 3 Jan 2015 01:41:11 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t031fAnb085970; Sat, 3 Jan 2015 01:41:10 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201501030141.t031fAnb085970@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 3 Jan 2015 01:41:10 +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: r276601 - stable/10/sys/amd64/ia32 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 01:41:11 -0000 Author: kib Date: Sat Jan 3 01:41:10 2015 New Revision: 276601 URL: https://svnweb.freebsd.org/changeset/base/276601 Log: MFC r276322: Change the way the lcall $7,$0 is reflected to usermode. Instead of setting call gate, which must be 64 bit, put a code segment descriptor into ldt slot 0. Modified: stable/10/sys/amd64/ia32/ia32_sigtramp.S stable/10/sys/amd64/ia32/ia32_syscall.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/ia32/ia32_sigtramp.S ============================================================================== --- stable/10/sys/amd64/ia32/ia32_sigtramp.S Sat Jan 3 01:28:58 2015 (r276600) +++ stable/10/sys/amd64/ia32/ia32_sigtramp.S Sat Jan 3 01:41:10 2015 (r276601) @@ -86,34 +86,14 @@ ia32_osigcode: * executed, we would have a window where the ring 0 code is * executed with the wrong gsbase. * - * Instead, reflect the lcall $7,$0 back to ring 3 trampoline - * which sets up the frame for int $0x80. + * Instead, set LDT descriptor 0 as code segment, which reflects + * the lcall $7,$0 back to ring 3 trampoline. The trampoline sets up + * the frame for int $0x80. */ ALIGN_TEXT lcall_tramp: - .code64 - /* - * There, we are in 64bit mode and need to return to 32bit. - * First, convert call frame from 64 to 32 bit format. - */ - pushq %rax - movl 16(%rsp),%eax - movl %eax,20(%rsp) /* ret %cs */ - movl 8(%rsp),%eax - movl %eax,16(%rsp) /* ret %rip -> %eip */ - popq %rax - addq $8,%rsp - /* Now return to 32bit */ - pushq $0x33 /* _ucode32sel UPL */ - callq 1f -1: - addq $2f-1b,(%rsp) - lretq -2: - /* Back in 32bit mode */ - .code32 cmpl $SYS_vfork,%eax - je 4f + je 1f pushl %ebp movl %esp,%ebp pushl 0x24(%ebp) /* arg 6 */ @@ -122,21 +102,20 @@ lcall_tramp: pushl 0x18(%ebp) pushl 0x14(%ebp) pushl 0x10(%ebp) /* arg 1 */ - pushl 0xc(%ebp) /* gap */ + subl $4,%esp /* gap */ int $0x80 leavel -3: lretl -4: +1: /* * vfork handling is special and relies on the libc stub saving - * the return ip in %ecx. If vfork failed, then there is no - * child which can corrupt the frame created by call gate. + * the return ip in %ecx. Also, we assume that the call was done + * with ucode32 selector in %cs. */ int $0x80 - jb 3b - addl $8,%esp - jmpl *%ecx + movl $0x33,4(%esp) /* GUCODE32_SEL | SEL_UPL */ + movl %ecx,(%esp) + lretl #endif ALIGN_TEXT Modified: stable/10/sys/amd64/ia32/ia32_syscall.c ============================================================================== --- stable/10/sys/amd64/ia32/ia32_syscall.c Sat Jan 3 01:28:58 2015 (r276600) +++ stable/10/sys/amd64/ia32/ia32_syscall.c Sat Jan 3 01:41:10 2015 (r276601) @@ -223,39 +223,28 @@ int setup_lcall_gate(void) { struct i386_ldt_args uap; - struct user_segment_descriptor descs[2]; - struct gate_descriptor *ssd; + struct user_segment_descriptor desc; uint32_t lcall_addr; int error; bzero(&uap, sizeof(uap)); uap.start = 0; - uap.num = 2; - - /* - * This is the easiest way to cut the space for system - * descriptor in ldt. Manually adjust the descriptor type to - * the call gate later. - */ - bzero(&descs[0], sizeof(descs)); - descs[0].sd_type = SDT_SYSNULL; - descs[1].sd_type = SDT_SYSNULL; - error = amd64_set_ldt(curthread, &uap, descs); + uap.num = 1; + lcall_addr = curproc->p_sysent->sv_psstrings - sz_lcall_tramp; + bzero(&desc, sizeof(desc)); + desc.sd_type = SDT_MEMERA; + desc.sd_dpl = SEL_UPL; + desc.sd_p = 1; + desc.sd_def32 = 1; + desc.sd_gran = 1; + desc.sd_lolimit = 0xffff; + desc.sd_hilimit = 0xf; + desc.sd_lobase = lcall_addr; + desc.sd_hibase = lcall_addr >> 24; + error = amd64_set_ldt(curthread, &uap, &desc); if (error != 0) return (error); - lcall_addr = curproc->p_sysent->sv_psstrings - sz_lcall_tramp; - mtx_lock(&dt_lock); - ssd = (struct gate_descriptor *)(curproc->p_md.md_ldt->ldt_base); - bzero(ssd, sizeof(*ssd)); - ssd->gd_looffset = lcall_addr; - ssd->gd_hioffset = lcall_addr >> 16; - ssd->gd_selector = _ucodesel; - ssd->gd_type = SDT_SYSCGT; - ssd->gd_dpl = SEL_UPL; - ssd->gd_p = 1; - mtx_unlock(&dt_lock); - return (0); } #endif From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 01:52:07 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 44ED9DF0; Sat, 3 Jan 2015 01:52:07 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 310E0642FC; Sat, 3 Jan 2015 01:52:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t031q7vH094141; Sat, 3 Jan 2015 01:52:07 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t031q7EN094140; Sat, 3 Jan 2015 01:52:07 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501030152.t031q7EN094140@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Sat, 3 Jan 2015 01:52:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276602 - head/sbin/routed X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 01:52:07 -0000 Author: des Date: Sat Jan 3 01:52:06 2015 New Revision: 276602 URL: https://svnweb.freebsd.org/changeset/base/276602 Log: Belatedly commit the patch for SA-14:21 to head. It was not committed to head at the time because it's a band-aid, rather than a complete fix, but the complete fix never materialized. Modified: head/sbin/routed/input.c Modified: head/sbin/routed/input.c ============================================================================== --- head/sbin/routed/input.c Sat Jan 3 01:41:10 2015 (r276601) +++ head/sbin/routed/input.c Sat Jan 3 01:52:06 2015 (r276602) @@ -288,6 +288,10 @@ input(struct sockaddr_in *from, /* rece /* Answer a query from a utility program * with all we know. */ + if (aifp == NULL) { + trace_pkt("ignore remote query"); + return; + } if (from->sin_port != htons(RIP_PORT)) { /* * insecure: query from non-router node From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 02:34:24 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9D4E039F; Sat, 3 Jan 2015 02:34:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 892E36672D; Sat, 3 Jan 2015 02:34:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t032YOXm013330; Sat, 3 Jan 2015 02:34:24 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t032YOl1013329; Sat, 3 Jan 2015 02:34:24 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201501030234.t032YOl1013329@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 3 Jan 2015 02:34:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276603 - head/sys/mips/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 02:34:24 -0000 Author: adrian Date: Sat Jan 3 02:34:23 2015 New Revision: 276603 URL: https://svnweb.freebsd.org/changeset/base/276603 Log: The kernel has gotten too big; trim out MSDOSFS for the DIR825B1. Modified: head/sys/mips/conf/DIR-825B1 Modified: head/sys/mips/conf/DIR-825B1 ============================================================================== --- head/sys/mips/conf/DIR-825B1 Sat Jan 3 01:52:06 2015 (r276602) +++ head/sys/mips/conf/DIR-825B1 Sat Jan 3 02:34:23 2015 (r276603) @@ -61,7 +61,7 @@ options AR71XX_REALMEM=64*1024*1024 options AR71XX_ENV_UBOOT -options MSDOSFS # Read MSDOS filesystems; useful for USB/CF +# options MSDOSFS # Read MSDOS filesystems; useful for USB/CF # options MD_ROOT # options MD_ROOT_SIZE="6144" From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 02:39:29 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 71B6C5F3; Sat, 3 Jan 2015 02:39:29 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5D66966778; Sat, 3 Jan 2015 02:39:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t032dT1L013999; Sat, 3 Jan 2015 02:39:29 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t032dTR6013998; Sat, 3 Jan 2015 02:39:29 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201501030239.t032dTR6013998@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 3 Jan 2015 02:39:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276604 - head/sys/mips/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 02:39:29 -0000 Author: adrian Date: Sat Jan 3 02:39:28 2015 New Revision: 276604 URL: https://svnweb.freebsd.org/changeset/base/276604 Log: For now build random into the kernel - there seems to be issues kldload'ing it at early boot. Modified: head/sys/mips/conf/DIR-825B1 Modified: head/sys/mips/conf/DIR-825B1 ============================================================================== --- head/sys/mips/conf/DIR-825B1 Sat Jan 3 02:34:23 2015 (r276603) +++ head/sys/mips/conf/DIR-825B1 Sat Jan 3 02:39:28 2015 (r276604) @@ -19,7 +19,7 @@ hints "DIR-825B1.hints" # Since the kernel image must fit inside 1024KiB, we have to build almost # everything as modules. -nodevice random +# nodevice random nodevice gpio nodevice gpioled nodevice gif From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 02:40:54 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 39C97743; Sat, 3 Jan 2015 02:40:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 20B146682A; Sat, 3 Jan 2015 02:40:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t032esZW016552; Sat, 3 Jan 2015 02:40:54 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t032eqhB016542; Sat, 3 Jan 2015 02:40:52 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501030240.t032eqhB016542@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Sat, 3 Jan 2015 02:40:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276605 - in head: contrib/unbound contrib/unbound/compat contrib/unbound/daemon contrib/unbound/dns64 contrib/unbound/dnstap contrib/unbound/doc contrib/unbound/iterator contrib/unboun... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 02:40:54 -0000 Author: des Date: Sat Jan 3 02:40:51 2015 New Revision: 276605 URL: https://svnweb.freebsd.org/changeset/base/276605 Log: Upgrade to Unbound 1.5.1. Almost all our local changes to date have been adopted upstream, greatly reducing the diff. Added: head/contrib/unbound/compat/arc4_lock.c - copied, changed from r276541, vendor/unbound/dist/compat/arc4_lock.c head/contrib/unbound/compat/arc4random.c - copied unchanged from r276541, vendor/unbound/dist/compat/arc4random.c head/contrib/unbound/compat/arc4random_uniform.c - copied unchanged from r276541, vendor/unbound/dist/compat/arc4random_uniform.c head/contrib/unbound/compat/chacha_private.h - copied unchanged from r276541, vendor/unbound/dist/compat/chacha_private.h head/contrib/unbound/compat/explicit_bzero.c - copied unchanged from r276541, vendor/unbound/dist/compat/explicit_bzero.c head/contrib/unbound/compat/getentropy_linux.c - copied, changed from r276541, vendor/unbound/dist/compat/getentropy_linux.c head/contrib/unbound/compat/getentropy_osx.c - copied unchanged from r276541, vendor/unbound/dist/compat/getentropy_osx.c head/contrib/unbound/compat/getentropy_solaris.c - copied unchanged from r276541, vendor/unbound/dist/compat/getentropy_solaris.c head/contrib/unbound/compat/getentropy_win.c - copied, changed from r276541, vendor/unbound/dist/compat/getentropy_win.c head/contrib/unbound/compat/sha512.c - copied unchanged from r276541, vendor/unbound/dist/compat/sha512.c head/contrib/unbound/dns64/ - copied from r276541, vendor/unbound/dist/dns64/ head/contrib/unbound/dnstap/ - copied from r276541, vendor/unbound/dist/dnstap/ head/contrib/unbound/doc/README.DNS64 - copied unchanged from r276541, vendor/unbound/dist/doc/README.DNS64 head/contrib/unbound/doc/unbound-host.1.in - copied, changed from r276541, vendor/unbound/dist/doc/unbound-host.1.in Deleted: head/contrib/unbound/doc/unbound-host.1 Modified: head/contrib/unbound/Makefile.in head/contrib/unbound/aclocal.m4 head/contrib/unbound/acx_python.m4 head/contrib/unbound/compat/fake-rfc2553.c head/contrib/unbound/compat/inet_aton.c head/contrib/unbound/compat/memmove.c head/contrib/unbound/compat/strptime.c head/contrib/unbound/config.guess head/contrib/unbound/config.h head/contrib/unbound/config.h.in head/contrib/unbound/config.sub head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/daemon/cachedump.c head/contrib/unbound/daemon/daemon.c head/contrib/unbound/daemon/daemon.h head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/stats.c head/contrib/unbound/daemon/stats.h head/contrib/unbound/daemon/unbound.c head/contrib/unbound/daemon/worker.c head/contrib/unbound/daemon/worker.h head/contrib/unbound/dns64/dns64.c head/contrib/unbound/doc/CREDITS head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/README.svn head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/doc/unbound.doxygen head/contrib/unbound/iterator/iter_delegpt.c head/contrib/unbound/iterator/iter_hints.c head/contrib/unbound/iterator/iter_utils.c head/contrib/unbound/iterator/iter_utils.h head/contrib/unbound/iterator/iterator.c head/contrib/unbound/iterator/iterator.h head/contrib/unbound/ldns/keyraw.c head/contrib/unbound/ldns/parseutil.c head/contrib/unbound/ldns/rrdef.c head/contrib/unbound/ldns/rrdef.h head/contrib/unbound/ldns/sbuffer.h head/contrib/unbound/ldns/str2wire.c head/contrib/unbound/ldns/wire2str.c head/contrib/unbound/libunbound/libunbound.c head/contrib/unbound/libunbound/libworker.c head/contrib/unbound/libunbound/python/examples/async-lookup.py head/contrib/unbound/libunbound/python/examples/dns-lookup.py head/contrib/unbound/libunbound/python/examples/dnssec-valid.py head/contrib/unbound/libunbound/python/examples/dnssec_test.py head/contrib/unbound/libunbound/python/examples/example8-1.py head/contrib/unbound/libunbound/python/examples/idn-lookup.py head/contrib/unbound/libunbound/python/examples/mx-lookup.py head/contrib/unbound/libunbound/python/examples/ns-lookup.py head/contrib/unbound/libunbound/python/examples/reverse-lookup.py head/contrib/unbound/libunbound/python/libunbound.i head/contrib/unbound/libunbound/ubsyms.def head/contrib/unbound/libunbound/unbound.h head/contrib/unbound/libunbound/worker.h head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/cache/dns.h head/contrib/unbound/services/listen_dnsport.c head/contrib/unbound/services/listen_dnsport.h head/contrib/unbound/services/localzone.c head/contrib/unbound/services/mesh.c head/contrib/unbound/services/mesh.h head/contrib/unbound/services/modstack.c head/contrib/unbound/services/outside_network.c head/contrib/unbound/services/outside_network.h head/contrib/unbound/smallapp/unbound-anchor.c head/contrib/unbound/smallapp/unbound-checkconf.c head/contrib/unbound/smallapp/unbound-control.c head/contrib/unbound/smallapp/unbound-host.c head/contrib/unbound/smallapp/worker_cb.c head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/configyyrename.h head/contrib/unbound/util/data/dname.c head/contrib/unbound/util/data/msgreply.c head/contrib/unbound/util/data/msgreply.h head/contrib/unbound/util/data/packed_rrset.h head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/fptr_wlist.h head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/locks.h head/contrib/unbound/util/log.c head/contrib/unbound/util/mini_event.h head/contrib/unbound/util/module.h head/contrib/unbound/util/net_help.c head/contrib/unbound/util/net_help.h head/contrib/unbound/util/netevent.c head/contrib/unbound/util/netevent.h head/contrib/unbound/util/random.c head/contrib/unbound/util/storage/lookup3.c head/contrib/unbound/util/storage/slabhash.c head/contrib/unbound/util/storage/slabhash.h head/contrib/unbound/util/winsock_event.h head/contrib/unbound/validator/autotrust.c head/contrib/unbound/validator/val_anchor.c head/contrib/unbound/validator/val_nsec3.c head/contrib/unbound/validator/validator.c head/lib/libunbound/Makefile Modified: head/contrib/unbound/Makefile.in ============================================================================== --- head/contrib/unbound/Makefile.in Sat Jan 3 02:39:28 2015 (r276604) +++ head/contrib/unbound/Makefile.in Sat Jan 3 02:40:51 2015 (r276605) @@ -19,9 +19,10 @@ libtool=@libtool@ staticexe=@staticexe@ EXEEXT=@EXEEXT@ configfile=@ub_conf_file@ -UNBOUND_RUN_DIR=@UNBOUND_RUN_DIR@ CHECKLOCK_SRC=testcode/checklocks.c CHECKLOCK_OBJ=@CHECKLOCK_OBJ@ +DNSTAP_SRC=@DNSTAP_SRC@ +DNSTAP_OBJ=@DNSTAP_OBJ@ WITH_PYTHONMODULE=@WITH_PYTHONMODULE@ WITH_PYUNBOUND=@WITH_PYUNBOUND@ PYTHON_SITE_PKG=@PYTHON_SITE_PKG@ @@ -44,6 +45,7 @@ PYUNBOUND_TARGET=@PYUNBOUND_TARGET@ # K&R C compilers), but causes problems if $U is defined in the env). U= +PROTOC_C=@PROTOC_C@ SWIG=@SWIG@ YACC=@YACC@ LEX=@LEX@ @@ -56,6 +58,7 @@ LIBS=@LIBS@ LIBOBJS=@LIBOBJS@ # filter out ctime_r from compat obj. LIBOBJ_WITHOUT_CTIME=@LIBOBJ_WITHOUT_CTIME@ +LIBOBJ_WITHOUT_CTIMEARC4=@LIBOBJ_WITHOUT_CTIMEARC4@ RUNTIME_PATH=@RUNTIME_PATH@ DEPFLAG=@DEPFLAG@ DATE=@CONFIG_DATE@ @@ -69,15 +72,15 @@ LINT=splint LINTFLAGS=+quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc -Drlimit=rlimit64 -D__gnuc_va_list=va_list -formatcode #-Dglob64=glob -Dglobfree64=globfree # compat with openssl linux edition. -LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned" -D"ECDSA_SIG=DSA_SIG" +LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned" -D"ECDSA_SIG=DSA_SIG" -Dfstrm_res=int # compat with NetBSD LINTFLAGS+=@NETBSD_LINTFLAGS@ # compat with OpenBSD LINTFLAGS+="-Dsigset_t=long" # FreeBSD -LINTFLAGS+="-D__uint16_t=uint16_t" "-DEVP_PKEY_ASN1_METHOD=int" +LINTFLAGS+="-D__uint16_t=uint16_t" "-DEVP_PKEY_ASN1_METHOD=int" "-D_RuneLocale=int" "-D__va_list=va_list" -INSTALL=$(srcdir)/install-sh +INSTALL=$(SHELL) $(srcdir)/install-sh #pythonmod.c is not here, it is mentioned by itself in its own rules, #makedepend fails on missing interface.h otherwise. @@ -106,7 +109,7 @@ util/winsock_event.c validator/autotrust validator/validator.c validator/val_kcache.c validator/val_kentry.c \ validator/val_neg.c validator/val_nsec3.c validator/val_nsec.c \ validator/val_secalgo.c validator/val_sigcrypt.c \ -validator/val_utils.c $(CHECKLOCK_SRC) +validator/val_utils.c dns64/dns64.c $(CHECKLOCK_SRC) $(DNSTAP_SRC) COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \ msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \ iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \ @@ -116,7 +119,8 @@ fptr_wlist.lo locks.lo log.lo mini_event random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \ slabhash.lo timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo \ validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \ -val_secalgo.lo val_sigcrypt.lo val_utils.lo $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) +val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo \ +$(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) COMMON_OBJ=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \ outside_network.lo # set to $COMMON_OBJ or to "" if --enableallsymbols @@ -124,9 +128,13 @@ COMMON_OBJ_ALL_SYMBOLS=@COMMON_OBJ_ALL_S COMPAT_SRC=compat/ctime_r.c compat/fake-rfc2553.c compat/gmtime_r.c \ compat/inet_aton.c compat/inet_ntop.c compat/inet_pton.c compat/malloc.c \ compat/memcmp.c compat/memmove.c compat/snprintf.c compat/strlcat.c \ -compat/strlcpy.c compat/strptime.c +compat/strlcpy.c compat/strptime.c compat/getentropy_linux.c \ +compat/getentropy_osx.c compat/getentropy_solaris.c compat/getentropy_win.c \ +compat/explicit_bzero.c compat/arc4random.c compat/arc4random_uniform.c \ +compat/arc4_lock.c compat/sha512.c COMPAT_OBJ=$(LIBOBJS:.o=.lo) COMPAT_OBJ_WITHOUT_CTIME=$(LIBOBJ_WITHOUT_CTIME:.o=.lo) +COMPAT_OBJ_WITHOUT_CTIMEARC4=$(LIBOBJ_WITHOUT_CTIMEARC4:.o=.lo) SLDNS_SRC=ldns/keyraw.c ldns/sbuffer.c ldns/wire2str.c ldns/parse.c \ ldns/parseutil.c ldns/rrdef.c ldns/str2wire.c SLDNS_OBJ=keyraw.lo sbuffer.lo wire2str.lo parse.lo parseutil.lo rrdef.lo \ @@ -156,7 +164,7 @@ CONTROL_OBJ_LINK=$(CONTROL_OBJ) worker_c $(SLDNS_OBJ) $(COMPAT_OBJ) @WIN_CONTROL_OBJ_LINK@ HOST_SRC=smallapp/unbound-host.c HOST_OBJ=unbound-host.lo -HOST_OBJ_LINK=$(HOST_OBJ) $(SLDNS_OBJ) $(COMPAT_OBJ_WITHOUT_CTIME) @WIN_HOST_OBJ_LINK@ +HOST_OBJ_LINK=$(HOST_OBJ) $(SLDNS_OBJ) $(COMPAT_OBJ_WITHOUT_CTIMEARC4) @WIN_HOST_OBJ_LINK@ UBANCHOR_SRC=smallapp/unbound-anchor.c UBANCHOR_OBJ=unbound-anchor.lo UBANCHOR_OBJ_LINK=$(UBANCHOR_OBJ) \ @@ -173,7 +181,7 @@ LOCKVERIFY_OBJ_LINK=$(LOCKVERIFY_OBJ) wo $(SLDNS_OBJ) PETAL_SRC=testcode/petal.c PETAL_OBJ=petal.lo -PETAL_OBJ_LINK=$(PETAL_OBJ) $(COMPAT_OBJ_WITHOUT_CTIME) +PETAL_OBJ_LINK=$(PETAL_OBJ) $(COMPAT_OBJ_WITHOUT_CTIMEARC4) PKTVIEW_SRC=testcode/pktview.c testcode/readhex.c PKTVIEW_OBJ=pktview.lo PKTVIEW_OBJ_LINK=$(PKTVIEW_OBJ) worker_cb.lo readhex.lo $(COMMON_OBJ) \ @@ -348,10 +356,22 @@ signit$(EXEEXT): testcode/signit.c unbound.h: $(srcdir)/libunbound/unbound.h sed -e 's/@''UNBOUND_VERSION_MAJOR@/$(UNBOUND_VERSION_MAJOR)/' -e 's/@''UNBOUND_VERSION_MINOR@/$(UNBOUND_VERSION_MINOR)/' -e 's/@''UNBOUND_VERSION_MICRO@/$(UNBOUND_VERSION_MICRO)/' < $(srcdir)/libunbound/unbound.h > $@ -unbound-control-setup: $(srcdir)/smallapp/unbound-control-setup.sh - sed -e 's:^DESTDIR=.*$$:DESTDIR=$(UNBOUND_RUN_DIR):' < $(srcdir)/smallapp/unbound-control-setup.sh > $@ +unbound-control-setup: smallapp/unbound-control-setup.sh + cp smallapp/unbound-control-setup.sh $@ -chmod +x $@ +# dnstap +dnstap.lo dnstap.o: $(srcdir)/dnstap/dnstap.c config.h dnstap/dnstap_config.h \ + dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h + +dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h: $(srcdir)/dnstap/dnstap.proto + @-if test ! -d dnstap; then $(INSTALL) -d dnstap; fi + $(PROTOC_C) --c_out=. $(srcdir)/dnstap/dnstap.proto + +dnstap.pb-c.lo dnstap.pb-c.o: dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h + # Python Module pythonmod.lo pythonmod.o: $(srcdir)/pythonmod/pythonmod.c config.h \ pythonmod/interface.h \ @@ -377,7 +397,7 @@ libunbound/python/libunbound_wrap.c: $(s # Pyunbound python unbound wrapper _unbound.la: libunbound_wrap.lo libunbound.la - $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -version-info @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) L. -L.libs -lunbound $(LIBS) + $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -avoid-version -no-undefined -shared -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) L. -L.libs -lunbound util/config_file.c: util/configparser.h util/configlexer.c: $(srcdir)/util/configlexer.lex util/configparser.h @@ -412,7 +432,7 @@ realclean: clean $(LINT) $(LINTFLAGS) -I. -I$(srcdir) $< touch $@ -util/configparser.lint util/configlexer.lint pythonmod/pythonmod.lint libunbound/python/libunbound_wrap.lint: +util/configparser.lint util/configlexer.lint pythonmod/pythonmod.lint libunbound/python/libunbound_wrap.lint dnstap/dnstap.pb-c.lint: # skip lint for generated code touch $@ @@ -495,7 +515,7 @@ install-all: all $(PYTHONMOD_INSTALL) $( $(INSTALL) -c -m 644 doc/unbound-control.8 $(DESTDIR)$(mandir)/man8/unbound-control-setup.8 $(INSTALL) -c -m 644 doc/unbound-anchor.8 $(DESTDIR)$(mandir)/man8 $(INSTALL) -c -m 644 doc/unbound.conf.5 $(DESTDIR)$(mandir)/man5 - $(INSTALL) -c -m 644 $(srcdir)/doc/unbound-host.1 $(DESTDIR)$(mandir)/man1 + $(INSTALL) -c -m 644 doc/unbound-host.1 $(DESTDIR)$(mandir)/man1 $(INSTALL) -c -m 755 unbound-control-setup $(DESTDIR)$(sbindir)/unbound-control-setup if test ! -e $(DESTDIR)$(configfile); then $(INSTALL) -d `dirname $(DESTDIR)$(configfile)`; $(INSTALL) -c -m 644 doc/example.conf $(DESTDIR)$(configfile); fi @@ -572,3 +592,617 @@ depend: rm -f $(DEPEND_TMP) $(DEPEND_TMP2) # Dependencies +dns.lo dns.o: $(srcdir)/services/cache/dns.c config.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h +infra.lo infra.o: $(srcdir)/services/cache/infra.c config.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h +rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h +dname.lo dname.o: $(srcdir)/util/data/dname.c config.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/storage/lookup3.h $(srcdir)/ldns/sbuffer.h +msgencode.lo msgencode.o: $(srcdir)/util/data/msgencode.c config.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/ldns/sbuffer.h +msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c config.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/parseutil.h \ + $(srcdir)/ldns/wire2str.h +msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c config.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h +packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \ + $(srcdir)/util/net_help.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h +iterator.lo iterator.o: $(srcdir)/iterator/iterator.c config.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/iterator/iter_utils.h \ + $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_scrub.h $(srcdir)/iterator/iter_priv.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/config_file.h $(srcdir)/ldns/wire2str.h \ + $(srcdir)/ldns/parseutil.h $(srcdir)/ldns/sbuffer.h +iter_delegpt.lo iter_delegpt.o: $(srcdir)/iterator/iter_delegpt.c config.h $(srcdir)/iterator/iter_delegpt.h \ + $(srcdir)/util/log.h $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/sbuffer.h +iter_donotq.lo iter_donotq.o: $(srcdir)/iterator/iter_donotq.c config.h $(srcdir)/iterator/iter_donotq.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h +iter_fwd.lo iter_fwd.o: $(srcdir)/iterator/iter_fwd.c config.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/str2wire.h +iter_hints.lo iter_hints.o: $(srcdir)/iterator/iter_hints.c config.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/str2wire.h \ + $(srcdir)/ldns/wire2str.h +iter_priv.lo iter_priv.o: $(srcdir)/iterator/iter_priv.c config.h $(srcdir)/iterator/iter_priv.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/sbuffer.h +iter_resptype.lo iter_resptype.o: $(srcdir)/iterator/iter_resptype.c config.h \ + $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/pkthdr.h +iter_scrub.lo iter_scrub.o: $(srcdir)/iterator/iter_scrub.c config.h $(srcdir)/iterator/iter_scrub.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h $(srcdir)/ldns/sbuffer.h +iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_utils.c config.h $(srcdir)/iterator/iter_utils.h \ + $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_priv.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/ldns/sbuffer.h +listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/outside_network.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/ldns/sbuffer.h +localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h +mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h +modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h +outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/netevent.h +outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c config.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/services/modstack.h $(srcdir)/ldns/sbuffer.h \ + +alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h +config_file.lo config_file.o: $(srcdir)/util/config_file.c config.h $(srcdir)/util/log.h \ + $(srcdir)/util/configyyrename.h $(srcdir)/util/config_file.h util/configparser.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/parseutil.h \ + $(srcdir)/util/iana_ports.inc +configlexer.lo configlexer.o: util/configlexer.c config.h $(srcdir)/util/configyyrename.h \ + $(srcdir)/util/config_file.h util/configparser.h +configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/configyyrename.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h +fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \ + $(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h $(srcdir)/libunbound/libworker.h \ + $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h $(srcdir)/util/config_file.h +locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h +log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/ldns/sbuffer.h +mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h +module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h +netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/util/log.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h +net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/ldns/parseutil.h \ + $(srcdir)/ldns/wire2str.h \ + +random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h +rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h +regional.lo regional.o: $(srcdir)/util/regional.c config.h $(srcdir)/util/log.h $(srcdir)/util/regional.h +rtt.lo rtt.o: $(srcdir)/util/rtt.c config.h $(srcdir)/util/rtt.h +dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c config.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/net_help.h +lookup3.lo lookup3.o: $(srcdir)/util/storage/lookup3.c config.h $(srcdir)/util/storage/lookup3.h +lruhash.lo lruhash.o: $(srcdir)/util/storage/lruhash.c config.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h +slabhash.lo slabhash.o: $(srcdir)/util/storage/slabhash.c config.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h +timehist.lo timehist.o: $(srcdir)/util/timehist.c config.h $(srcdir)/util/timehist.h $(srcdir)/util/log.h +tube.lo tube.o: $(srcdir)/util/tube.c config.h $(srcdir)/util/tube.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h +winsock_event.lo winsock_event.o: $(srcdir)/util/winsock_event.c config.h +autotrust.lo autotrust.o: $(srcdir)/validator/autotrust.c config.h $(srcdir)/validator/autotrust.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/services/modstack.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/keyraw.h \ + +val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_sigcrypt.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/autotrust.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/str2wire.h +validator.lo validator.o: $(srcdir)/validator/validator.c config.h $(srcdir)/validator/validator.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/util/rbtree.h $(srcdir)/validator/val_kcache.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/autotrust.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/ldns/wire2str.h +val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h +val_kentry.lo val_kentry.o: $(srcdir)/validator/val_kentry.c config.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/keyraw.h \ + +val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/sbuffer.h +val_nsec3.lo val_nsec3.o: $(srcdir)/validator/val_nsec3.c config.h \ + $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/validator.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/validator/val_nsec.h $(srcdir)/ldns/sbuffer.h +val_nsec.lo val_nsec.o: $(srcdir)/validator/val_nsec.c config.h $(srcdir)/validator/val_nsec.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h +val_secalgo.lo val_secalgo.o: $(srcdir)/validator/val_secalgo.c config.h $(srcdir)/validator/val_secalgo.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/ldns/sbuffer.h \ + +val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/val_sigcrypt.c config.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/validator.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/parseutil.h $(srcdir)/ldns/wire2str.h \ + +val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h +dns64.lo dns64.o: $(srcdir)/dns64/dns64.c config.h $(srcdir)/dns64/dns64.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/regional.h +checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/checklocks.h +unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/rrdef.h +unitdname.lo unitdname.o: $(srcdir)/testcode/unitdname.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h +unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h +unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/random.h +unitmsgparse.lo unitmsgparse.o: $(srcdir)/testcode/unitmsgparse.c config.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/unitmain.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/testcode/readhex.h \ + $(srcdir)/testcode/testpkts.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h +unitneg.lo unitneg.o: $(srcdir)/testcode/unitneg.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/dname.h $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h \ + $(srcdir)/ldns/rrdef.h +unitregional.lo unitregional.o: $(srcdir)/testcode/unitregional.c config.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/log.h $(srcdir)/util/regional.h +unitslabhash.lo unitslabhash.o: $(srcdir)/testcode/unitslabhash.c config.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h +unitverify.lo unitverify.o: $(srcdir)/testcode/unitverify.c config.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/validator/val_secalgo.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h \ + $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/testcode/testpkts.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h +readhex.lo readhex.o: $(srcdir)/testcode/readhex.c config.h $(srcdir)/testcode/readhex.h $(srcdir)/util/log.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/parseutil.h +testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c config.h $(srcdir)/testcode/testpkts.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h +unitldns.lo unitldns.o: $(srcdir)/testcode/unitldns.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/wire2str.h +acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h +cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \ + $(srcdir)/daemon/cachedump.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h \ + $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h +daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ + $(srcdir)/util/net_help.h $(srcdir)/ldns/keyraw.h +remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \ + $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h $(srcdir)/ldns/str2wire.h \ + $(srcdir)/ldns/parseutil.h $(srcdir)/ldns/wire2str.h +stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \ + $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h +unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/util/net_help.h $(srcdir)/util/mini_event.h \ + $(srcdir)/util/rbtree.h +worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ + $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/libworker.h +testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/testpkts.h \ + $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h \ + $(srcdir)/daemon/remote.h \ + $(srcdir)/util/config_file.h $(srcdir)/ldns/keyraw.h $(srcdir)/daemon/unbound.c $(srcdir)/util/log.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h +testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c config.h $(srcdir)/testcode/testpkts.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h +worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ + $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/libworker.h +acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h +daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ + $(srcdir)/util/net_help.h $(srcdir)/ldns/keyraw.h +stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \ + $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h +replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/testcode/testpkts.h \ + $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h +fake_event.lo fake_event.o: $(srcdir)/testcode/fake_event.c config.h $(srcdir)/testcode/fake_event.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h +lock_verify.lo lock_verify.o: $(srcdir)/testcode/lock_verify.c config.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h +pktview.lo pktview.o: $(srcdir)/testcode/pktview.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/testcode/unitmain.h $(srcdir)/testcode/readhex.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/ldns/parseutil.h +readhex.lo readhex.o: $(srcdir)/testcode/readhex.c config.h $(srcdir)/testcode/readhex.h $(srcdir)/util/log.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/parseutil.h +memstats.lo memstats.o: $(srcdir)/testcode/memstats.c config.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h +unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/smallapp/unbound-checkconf.c config.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/localzone.h \ + $(srcdir)/ldns/sbuffer.h +worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h +context.lo context.o: $(srcdir)/libunbound/context.c config.h $(srcdir)/libunbound/context.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/ldns/sbuffer.h +libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/unbound-event.h config.h $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/libunbound/libworker.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/regional.h \ + $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/ldns/sbuffer.h +libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \ + $(srcdir)/libunbound/libworker.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h \ + $(srcdir)/util/netevent.h $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/str2wire.h +unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/wire2str.h +asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/ldns/rrdef.h +streamtcp.lo streamtcp.o: $(srcdir)/testcode/streamtcp.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/dname.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/wire2str.h \ + +perf.lo perf.o: $(srcdir)/testcode/perf.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h +delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ + $(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h +unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h \ + $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h +unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/ldns/rrdef.h \ + +petal.lo petal.o: $(srcdir)/testcode/petal.c config.h \ + +pythonmod_utils.lo pythonmod_utils.o: $(srcdir)/pythonmod/pythonmod_utils.c config.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \ + $(srcdir)/ldns/sbuffer.h +win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc.h $(srcdir)/winrc/w_inst.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/winsock_event.h +w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h +unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \ + $(srcdir)/winrc/w_inst.h +unbound-service-remove.lo unbound-service-remove.o: $(srcdir)/winrc/unbound-service-remove.c config.h \ + $(srcdir)/winrc/w_inst.h +anchor-update.lo anchor-update.o: $(srcdir)/winrc/anchor-update.c config.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/wire2str.h +keyraw.lo keyraw.o: $(srcdir)/ldns/keyraw.c config.h $(srcdir)/ldns/keyraw.h \ + $(srcdir)/ldns/rrdef.h \ + +sbuffer.lo sbuffer.o: $(srcdir)/ldns/sbuffer.c config.h $(srcdir)/ldns/sbuffer.h +wire2str.lo wire2str.o: $(srcdir)/ldns/wire2str.c config.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h \ + $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/parseutil.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/keyraw.h \ + +parse.lo parse.o: $(srcdir)/ldns/parse.c config.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/parseutil.h \ + $(srcdir)/ldns/sbuffer.h +parseutil.lo parseutil.o: $(srcdir)/ldns/parseutil.c config.h $(srcdir)/ldns/parseutil.h +rrdef.lo rrdef.o: $(srcdir)/ldns/rrdef.c config.h $(srcdir)/ldns/rrdef.h $(srcdir)/ldns/parseutil.h +str2wire.lo str2wire.o: $(srcdir)/ldns/str2wire.c config.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h \ + $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/parseutil.h +ctime_r.lo ctime_r.o: $(srcdir)/compat/ctime_r.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h +fake-rfc2553.lo fake-rfc2553.o: $(srcdir)/compat/fake-rfc2553.c $(srcdir)/compat/fake-rfc2553.h config.h +gmtime_r.lo gmtime_r.o: $(srcdir)/compat/gmtime_r.c config.h +inet_aton.lo inet_aton.o: $(srcdir)/compat/inet_aton.c config.h +inet_ntop.lo inet_ntop.o: $(srcdir)/compat/inet_ntop.c config.h +inet_pton.lo inet_pton.o: $(srcdir)/compat/inet_pton.c config.h +malloc.lo malloc.o: $(srcdir)/compat/malloc.c config.h +memcmp.lo memcmp.o: $(srcdir)/compat/memcmp.c config.h +memmove.lo memmove.o: $(srcdir)/compat/memmove.c config.h +snprintf.lo snprintf.o: $(srcdir)/compat/snprintf.c config.h +strlcat.lo strlcat.o: $(srcdir)/compat/strlcat.c config.h +strlcpy.lo strlcpy.o: $(srcdir)/compat/strlcpy.c config.h +strptime.lo strptime.o: $(srcdir)/compat/strptime.c config.h +getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c config.h \ + +getentropy_osx.lo getentropy_osx.o: $(srcdir)/compat/getentropy_osx.c config.h +getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c config.h +getentropy_win.lo getentropy_win.o: $(srcdir)/compat/getentropy_win.c +explicit_bzero.lo explicit_bzero.o: $(srcdir)/compat/explicit_bzero.c config.h +arc4random.lo arc4random.o: $(srcdir)/compat/arc4random.c config.h $(srcdir)/compat/chacha_private.h +arc4random_uniform.lo arc4random_uniform.o: $(srcdir)/compat/arc4random_uniform.c config.h +arc4_lock.lo arc4_lock.o: $(srcdir)/compat/arc4_lock.c config.h $(srcdir)/util/locks.h +sha512.lo sha512.o: $(srcdir)/compat/sha512.c config.h Modified: head/contrib/unbound/aclocal.m4 ============================================================================== --- head/contrib/unbound/aclocal.m4 Sat Jan 3 02:39:28 2015 (r276604) +++ head/contrib/unbound/aclocal.m4 Sat Jan 3 02:40:51 2015 (r276605) @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.12.2 -*- Autoconf -*- +# generated automatically by aclocal 1.13.4 -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11,6 +11,7 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, @@ -1317,7 +1318,7 @@ ia64-*-hpux*) rm -rf conftest* ;; -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext @@ -1331,7 +1332,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; - ppc64-*linux*|powerpc64-*linux*) + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -1350,7 +1354,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) Modified: head/contrib/unbound/acx_python.m4 ============================================================================== --- head/contrib/unbound/acx_python.m4 Sat Jan 3 02:39:28 2015 (r276604) +++ head/contrib/unbound/acx_python.m4 Sat Jan 3 02:40:51 2015 (r276605) @@ -14,58 +14,11 @@ AC_DEFUN([AC_PYTHON_DEVEL],[ fi if test -z "$PYTHON_VERSION"; then - PYTHON_VERSION=`$PYTHON -c "import sys, string; \ - print string.split(sys.version)[[0]]"` + PYTHON_VERSION=`$PYTHON -c "import sys; \ + print(sys.version.split()[[0]])"` fi # - # Check for a version of Python >= 2.1.0 - # - AC_MSG_CHECKING([for a version of Python >= '2.1.0']) - ac_supports_python_ver=`$PYTHON -c "import sys, string; \ - ver = string.split(sys.version)[[0]]; \ - print ver >= '2.1.0'"` - if test "$ac_supports_python_ver" != "True"; then - if test -z "$PYTHON_NOVERSIONCHECK"; then - AC_MSG_RESULT([no]) - AC_MSG_FAILURE([ -This version of the AC@&t@_PYTHON_DEVEL macro -doesn't work properly with versions of Python before -2.1.0. You may need to re-run configure, setting the -variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, -PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. -Moreover, to disable this check, set PYTHON_NOVERSIONCHECK -to something else than an empty string. -]) - else - AC_MSG_RESULT([skip at user request]) - fi - else - AC_MSG_RESULT([yes]) - fi - - # - # if the macro parameter ``version'' is set, honour it - # - if test -n "$1"; then - AC_MSG_CHECKING([for a version of Python $1]) - ac_supports_python_ver=`$PYTHON -c "import sys, string; \ - ver = string.split(sys.version)[[0]]; \ - print ver $1"` - if test "$ac_supports_python_ver" = "True"; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - AC_MSG_ERROR([this package requires Python $1. -If you have it installed, but it isn't the default Python -interpreter in your system path, please pass the PYTHON_VERSION -variable to configure. See ``configure --help'' for reference. -]) - PYTHON_VERSION="" - fi - fi - - # # Check if you have distutils, else fail # AC_MSG_CHECKING([for the distutils Python package]) @@ -86,7 +39,7 @@ $ac_distutils_result]) AC_MSG_CHECKING([for Python include path]) if test -z "$PYTHON_CPPFLAGS"; then python_path=`$PYTHON -c "import distutils.sysconfig; \ - print distutils.sysconfig.get_python_inc();"` + print(distutils.sysconfig.get_python_inc());"` if test -n "${python_path}"; then python_path="-I$python_path" fi @@ -100,25 +53,8 @@ $ac_distutils_result]) # AC_MSG_CHECKING([for Python library path]) if test -z "$PYTHON_LDFLAGS"; then - # (makes two attempts to ensure we've got a version number - # from the interpreter) - py_version=`$PYTHON -c "from distutils.sysconfig import *; \ - from string import join; \ - print join(get_config_vars('VERSION'))"` - if test "$py_version" = "[None]"; then - if test -n "$PYTHON_VERSION"; then - py_version=$PYTHON_VERSION - else - py_version=`$PYTHON -c "import sys; \ - print sys.version[[:3]]"` - fi - fi - PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \ - from string import join; \ - print '-L' + get_python_lib(0,1), \ - '-L' + os.path.dirname(get_python_lib(0,1)), \ - '-lpython';"`$py_version + print(get_config_var('BLDLIBRARY'));"` fi AC_MSG_RESULT([$PYTHON_LDFLAGS]) AC_SUBST([PYTHON_LDFLAGS]) @@ -129,36 +65,12 @@ $ac_distutils_result]) AC_MSG_CHECKING([for Python site-packages path]) if test -z "$PYTHON_SITE_PKG"; then PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ - print distutils.sysconfig.get_python_lib(1,0);"` + print(distutils.sysconfig.get_python_lib(1,0));"` fi AC_MSG_RESULT([$PYTHON_SITE_PKG]) AC_SUBST([PYTHON_SITE_PKG]) # - # libraries which must be linked in when embedding - # - AC_MSG_CHECKING(python extra libraries) - if test -z "$PYTHON_EXTRA_LIBS"; then - PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ - conf = distutils.sysconfig.get_config_var; \ - print conf('LOCALMODLIBS'), conf('LIBS')"` - fi - AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) - AC_SUBST(PYTHON_EXTRA_LIBS) - - # - # linking flags needed when embedding - # - AC_MSG_CHECKING(python extra linking flags) - if test -z "$PYTHON_EXTRA_LDFLAGS"; then - PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ - conf = distutils.sysconfig.get_config_var; \ - print conf('LINKFORSHARED')"` - fi - AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) - AC_SUBST(PYTHON_EXTRA_LDFLAGS) - - # # final check to see if everything compiles alright # AC_MSG_CHECKING([consistency of all components of python development environment]) Copied and modified: head/contrib/unbound/compat/arc4_lock.c (from r276541, vendor/unbound/dist/compat/arc4_lock.c) ============================================================================== --- vendor/unbound/dist/compat/arc4_lock.c Fri Jan 2 17:31:36 2015 (r276541, copy source) +++ head/contrib/unbound/compat/arc4_lock.c Sat Jan 3 02:40:51 2015 (r276605) @@ -53,8 +53,10 @@ static int arc4lockinit = 0; void _ARC4_LOCK(void) { - if(!arc4lockinit) + if(!arc4lockinit) { + arc4lockinit = 1; lock_quick_init(&arc4lock); + } lock_quick_lock(&arc4lock); } Copied: head/contrib/unbound/compat/arc4random.c (from r276541, vendor/unbound/dist/compat/arc4random.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/compat/arc4random.c Sat Jan 3 02:40:51 2015 (r276605, copy of r276541, vendor/unbound/dist/compat/arc4random.c) @@ -0,0 +1,231 @@ +/* $OpenBSD: arc4random.c,v 1.41 2014/07/12 13:24:54 deraadt Exp $ */ + +/* + * Copyright (c) 1996, David Mazieres + * Copyright (c) 2008, Damien Miller + * Copyright (c) 2013, Markus Friedl + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +#include "config.h" + +/* + * ChaCha based random number generator for OpenBSD. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 03:35:25 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9E1D6F01; Sat, 3 Jan 2015 03:35:25 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7EEA42134; Sat, 3 Jan 2015 03:35:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t033ZPJh042079; Sat, 3 Jan 2015 03:35:25 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t033ZJmA042050; Sat, 3 Jan 2015 03:35:19 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201501030335.t033ZJmA042050@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sat, 3 Jan 2015 03:35:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276606 - in head/sys: conf modules/aic7xxx/ahc/ahc_pci modules/aic7xxx/ahd modules/ath modules/bwn modules/ce modules/drm/r128 modules/drm/radeon modules/drm/via modules/drm2/i915kms m... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 03:35:25 -0000 Author: imp Date: Sat Jan 3 03:35:18 2015 New Revision: 276606 URL: https://svnweb.freebsd.org/changeset/base/276606 Log: Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support CWARNFALGS.$file centrally so we don't have to have it in all the places. Remove a few warning flags that are no longer needed. Also, always use -Wno-unknown-pragma to (hopefully temporarily) work around #pragma ident in debug.h in the opensolaris code. Remove some stale warning suppression that's no longer necessary. Modified: head/sys/conf/files head/sys/conf/kern.mk head/sys/modules/aic7xxx/ahc/ahc_pci/Makefile head/sys/modules/aic7xxx/ahd/Makefile head/sys/modules/ath/Makefile head/sys/modules/bwn/Makefile head/sys/modules/ce/Makefile head/sys/modules/drm/r128/Makefile head/sys/modules/drm/radeon/Makefile head/sys/modules/drm/via/Makefile head/sys/modules/drm2/i915kms/Makefile head/sys/modules/dtrace/fasttrap/Makefile head/sys/modules/ibcore/Makefile head/sys/modules/ipfilter/Makefile head/sys/modules/ips/Makefile head/sys/modules/mlx4/Makefile head/sys/modules/mpr/Makefile head/sys/modules/mps/Makefile head/sys/modules/nxge/Makefile head/sys/modules/wlan/Makefile head/sys/modules/zfs/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/conf/files Sat Jan 3 03:35:18 2015 (r276606) @@ -1270,17 +1270,16 @@ dev/drm/mga_irq.c optional mgadrm dev/drm/mga_state.c optional mgadrm dev/drm/mga_warp.c optional mgadrm dev/drm/r128_cce.c optional r128drm \ - compile-with "${NORMAL_C} ${NO_WUNUSED_VALUE} ${NO_WCONSTANT_CONVERSION}" + compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION}" dev/drm/r128_drv.c optional r128drm dev/drm/r128_irq.c optional r128drm -dev/drm/r128_state.c optional r128drm \ - compile-with "${NORMAL_C} ${NO_WUNUSED_VALUE}" +dev/drm/r128_state.c optional r128drm dev/drm/r300_cmdbuf.c optional radeondrm dev/drm/r600_blit.c optional radeondrm dev/drm/r600_cp.c optional radeondrm \ - compile-with "${NORMAL_C} ${NO_WUNUSED_VALUE} ${NO_WCONSTANT_CONVERSION}" + compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION}" dev/drm/radeon_cp.c optional radeondrm \ - compile-with "${NORMAL_C} ${NO_WUNUSED_VALUE} ${NO_WCONSTANT_CONVERSION}" + compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION}" dev/drm/radeon_cs.c optional radeondrm dev/drm/radeon_drv.c optional radeondrm dev/drm/radeon_irq.c optional radeondrm Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/conf/kern.mk Sat Jan 3 03:35:18 2015 (r276606) @@ -17,12 +17,9 @@ CWARNFLAGS?= -Wall -Wredundant-decls -Wn # a false positive. .if ${COMPILER_TYPE} == "clang" NO_WCONSTANT_CONVERSION= -Wno-constant-conversion -NO_WARRAY_BOUNDS= -Wno-array-bounds NO_WSHIFT_COUNT_NEGATIVE= -Wno-shift-count-negative NO_WSHIFT_COUNT_OVERFLOW= -Wno-shift-count-overflow -NO_WUNUSED_VALUE= -Wno-unused-value NO_WSELF_ASSIGN= -Wno-self-assign -NO_WFORMAT_SECURITY= -Wno-format-security NO_WUNNEEDED_INTERNAL_DECL= -Wno-unneeded-internal-declaration NO_WSOMETIMES_UNINITIALIZED= -Wno-error-sometimes-uninitialized # Several other warnings which might be useful in some cases, but not severe @@ -31,10 +28,7 @@ NO_WSOMETIMES_UNINITIALIZED= -Wno-error- CWARNEXTRA?= -Wno-error-tautological-compare -Wno-error-empty-body \ -Wno-error-parentheses-equality -Wno-error-unused-function \ -Wno-error-pointer-sign -Wno-error-format -Wno-error-parentheses \ - -Wno-error-switch -Wno-error-switch \ - -Wno-error-shift-count-negative \ - -Wno-error-shift-count-overflow \ - -Wno-error-constant-conversion + -Wno-unknown-pragmas .endif .if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 40300 @@ -200,3 +194,6 @@ CFLAGS+= -std=iso9899:1999 .else # CSTD CFLAGS+= -std=${CSTD} .endif # CSTD + +# Pull in any CWARNFLAGS the modules have added. +CFLAGS+= ${CWARNFLAGS} ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/aic7xxx/ahc/ahc_pci/Makefile ============================================================================== --- head/sys/modules/aic7xxx/ahc/ahc_pci/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/aic7xxx/ahc/ahc_pci/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -13,4 +13,3 @@ CFLAGS+= -I${.CURDIR}/../../../../dev/ai .include CWARNFLAGS.ahc_pci.c= ${NO_WCONSTANT_CONVERSION} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/aic7xxx/ahd/Makefile ============================================================================== --- head/sys/modules/aic7xxx/ahd/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/aic7xxx/ahd/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -44,4 +44,3 @@ CLEANFILES= ${GENSRCS} .include CWARNFLAGS.ahd_pci.c= ${NO_WCONSTANT_CONVERSION} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/ath/Makefile ============================================================================== --- head/sys/modules/ath/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/ath/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -162,7 +162,6 @@ opt_ah.h: CWARNFLAGS.ah_regdomain.c= ${NO_WSHIFT_COUNT_NEGATIVE} ${NO_WSHIFT_COUNT_OVERFLOW} # XXX Work around clang warnings, until maintainer approves fix. CWARNFLAGS.if_ath.c= ${NO_WSOMETIMES_UNINITIALIZED} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} # AR9300 HAL build overrides, as there's still some code to tidy up CWARNFLAGS.ar9300_eeprom.c= ${NO_WCONSTANT_CONVERSION} Modified: head/sys/modules/bwn/Makefile ============================================================================== --- head/sys/modules/bwn/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/bwn/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -10,4 +10,3 @@ SRCS+= device_if.h bus_if.h pci_if.h # XXX Work around clang warning, until maintainer approves fix. CWARNFLAGS.if_bwn.c= ${NO_WSOMETIMES_UNINITIALIZED} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/ce/Makefile ============================================================================== --- head/sys/modules/ce/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/ce/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -28,4 +28,3 @@ opt_ng_cronyx.h: .include CWARNFLAGS.tau32-ddk.c= ${NO_WCONSTANT_CONVERSION} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/drm/r128/Makefile ============================================================================== --- head/sys/modules/drm/r128/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/drm/r128/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -9,4 +9,3 @@ SRCS +=device_if.h bus_if.h pci_if.h opt CWARNFLAGS.r128_cce.c= -Wno-unused ${NO_WCONSTANT_CONVERSION} CWARNFLAGS.r128_state.c= -Wno-unused -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/drm/radeon/Makefile ============================================================================== --- head/sys/modules/drm/radeon/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/drm/radeon/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -10,4 +10,3 @@ SRCS +=device_if.h bus_if.h pci_if.h opt CWARNFLAGS.r600_cp.c= -Wno-unused ${NO_WCONSTANT_CONVERSION} CWARNFLAGS.radeon_cp.c= -Wno-unused ${NO_WCONSTANT_CONVERSION} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/drm/via/Makefile ============================================================================== --- head/sys/modules/drm/via/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/drm/via/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -24,4 +24,3 @@ opt_drm.h: CWARNFLAGS.via_dma.c= -Wno-unused-value CWARNFLAGS.via_dmablit.c= -Wno-unused-value -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/drm2/i915kms/Makefile ============================================================================== --- head/sys/modules/drm2/i915kms/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/drm2/i915kms/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -53,4 +53,3 @@ SRCS += \ CWARNFLAGS.i915_debug.c= -Wno-unused-function CWARNFLAGS.intel_lvds.c= -Wno-unused CWARNFLAGS.intel_tv.c= -Wno-unused -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/dtrace/fasttrap/Makefile ============================================================================== --- head/sys/modules/dtrace/fasttrap/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/dtrace/fasttrap/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -28,5 +28,6 @@ CFLAGS+= -DSMP .include CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h + CWARNFLAGS+= -Wno-cast-qual CWARNFLAGS+= -Wno-unused Modified: head/sys/modules/ibcore/Makefile ============================================================================== --- head/sys/modules/ibcore/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/ibcore/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -21,4 +21,3 @@ CFLAGS+= -DINET6 -DINET -DOFED CFLAGS+= -Wno-cast-qual -Wno-pointer-arith ${GCC_MS_EXTENSIONS} CWARNFLAGS.cm.c= -Wno-unused-function -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/ipfilter/Makefile ============================================================================== --- head/sys/modules/ipfilter/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/ipfilter/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -31,4 +31,3 @@ CWARNFLAGS.ip_proxy.c= ${NO_WSELF_ASSIG CWARNFLAGS.ip_scan.c= -Wno-unused CWARNFLAGS.ip_state.c= -Wno-unused CWARNFLAGS.ip_sync.c= -Wno-unused -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/ips/Makefile ============================================================================== --- head/sys/modules/ips/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/ips/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -9,4 +9,3 @@ SRCS = ips.c ips_pci.c ips.h ips_disk.c # XXX Work around clang warning, until maintainer approves fix. CWARNFLAGS.ips.c= ${NO_WSOMETIMES_UNINITIALIZED} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/mlx4/Makefile ============================================================================== --- head/sys/modules/mlx4/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/mlx4/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -15,4 +15,3 @@ CFLAGS+= -Wno-cast-qual -Wno-pointer-ari CFLAGS+= -fms-extensions CWARNFLAGS.mcg.c= -Wno-unused -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/mpr/Makefile ============================================================================== --- head/sys/modules/mpr/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/mpr/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -15,4 +15,3 @@ SRCS+= device_if.h bus_if.h pci_if.h CWARNFLAGS.mpr_sas.c= ${NO_WUNNEEDED_INTERNAL_DECL} # XXX Work around clang warning, until maintainer approves fix. CWARNFLAGS.mpr_mapping.c= ${NO_WSOMETIMES_UNINITIALIZED} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/mps/Makefile ============================================================================== --- head/sys/modules/mps/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/mps/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -15,4 +15,3 @@ SRCS+= device_if.h bus_if.h pci_if.h CWARNFLAGS.mps_sas.c= ${NO_WUNNEEDED_INTERNAL_DECL} # XXX Work around clang warning, until maintainer approves fix. CWARNFLAGS.mps_mapping.c= ${NO_WSOMETIMES_UNINITIALIZED} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/nxge/Makefile ============================================================================== --- head/sys/modules/nxge/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/nxge/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -48,4 +48,3 @@ CWARNFLAGS.xgehal-channel.c= ${NO_WSELF_ CWARNFLAGS.xgehal-fifo.c= ${NO_WSELF_ASSIGN} CWARNFLAGS.xgehal-stats.c= ${NO_WSELF_ASSIGN} CWARNFLAGS.xgehal-mgmt.c= ${NO_WSELF_ASSIGN} -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/wlan/Makefile ============================================================================== --- head/sys/modules/wlan/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/wlan/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -23,4 +23,3 @@ CWARNFLAGS.ieee80211_crypto.c= -Wno-unus CWARNFLAGS.ieee80211_hostap.c= -Wno-unused-function CWARNFLAGS.ieee80211_mesh.c= -Wno-unused-function CWARNFLAGS.ieee80211_sta.c= -Wno-unused-function -CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} Modified: head/sys/modules/zfs/Makefile ============================================================================== --- head/sys/modules/zfs/Makefile Sat Jan 3 02:40:51 2015 (r276605) +++ head/sys/modules/zfs/Makefile Sat Jan 3 03:35:18 2015 (r276606) @@ -103,7 +103,6 @@ DEBUG_FLAGS=-g CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h -CWARNFLAGS+=-Wno-unknown-pragmas CWARNFLAGS+=-Wno-missing-prototypes CWARNFLAGS+=-Wno-undef CWARNFLAGS+=-Wno-strict-prototypes From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 04:14:47 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5148F591 for ; Sat, 3 Jan 2015 04:14:47 +0000 (UTC) Received: from mail-ie0-f179.google.com (mail-ie0-f179.google.com [209.85.223.179]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 140F5926 for ; Sat, 3 Jan 2015 04:14:46 +0000 (UTC) Received: by mail-ie0-f179.google.com with SMTP id rp18so16782522iec.24 for ; Fri, 02 Jan 2015 20:14:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:subject:mime-version:content-type :in-reply-to:date:cc:message-id:references:to; bh=kc30ddeC7ukR78u5rIZVPuPm1zJVhiAZedu4+lsRZuk=; b=Onbb2r5BnWwKv2POReJyP0pmgI4VeNX4Cif0Q6J/DYD5J8aIKViKhzPJUJILHgYDTI aA1giQqzHatZZntjnDHRBCwrwYw19ivlIHOUQDPLMiU+lkQPKasvLlo5imdPvsXgsl/I 9CAfuQC9lssBJoefXyZ8WkMAK6mvZ3F2MHfwXGIvXvxRrABRrS+QscHo1qEXEbnnKrNo JAG3tE2cY4W5eAQczCzUE2lyKgXT7A0CideAMGL67HegUIgOavpExHQG1Gyx/OkD1UUU ci5mIvOOcXKAUE8kWP9MEKj7SrAOpiTI2AKK2xsVU4JxV498IIWlR3FiDzW0pt72il3P L6dg== X-Gm-Message-State: ALoCoQl4gS5/I9A5OHKa9PHG6mqgzOskTlxg+H5h6eX8a272vVD/NV1g3bhQAheNwElHjzjqJ86m X-Received: by 10.42.66.69 with SMTP id o5mr28684446ici.40.1420258480484; Fri, 02 Jan 2015 20:14:40 -0800 (PST) Received: from netflix-mac-wired.bsdimp.com ([50.253.99.174]) by mx.google.com with ESMTPSA id h36sm23710651iod.17.2015.01.02.20.14.39 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 02 Jan 2015 20:14:39 -0800 (PST) Sender: Warner Losh From: Warner Losh X-Google-Original-From: Warner Losh Subject: Re: svn commit: r276499 - head/sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_1BC221AF-D4D6-47E4-854A-8197EB7222B2"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5b3 In-Reply-To: Date: Fri, 2 Jan 2015 21:14:38 -0700 Message-Id: <5206DEA5-A5EA-48F3-B653-3E949ABE2EB1@netflix.com> References: <201501011007.t01A7wYW032884@svn.freebsd.org> <41CF0351-83A3-4D54-B308-32F310DCD3DA@gmail.com> To: Dimitry Andric X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, Roman Divacky , src-committers , svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 04:14:47 -0000 --Apple-Mail=_1BC221AF-D4D6-47E4-854A-8197EB7222B2 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Conditioning on the compiler version is actually rather easy, especially since the number of affected files is so small. It=E2=80=99s an issue when people build the old way on old systems, = which is still a lot more popular than you might think. MFC has nothing to do with the problem. Over the years we=E2=80=99ve fixed dozens of = bugs like this that prevented people from building on older systems and I=E2=80=99d like to avoid breaking things needlessly. I=E2=80=99m happy to do the work to make this happen, if you=E2=80=99re = OK with my backing out these couple of changes. Warner > On Jan 2, 2015, at 1:23 PM, Dimitry Andric wrote: >=20 > Hm, conditionalizing this on the compiler version is rather ugly. = Isn't > this only relevant when we do an MFC? But maybe it is indeed better > to have the same Makefile for different toolchain envronments. >=20 > -Dimitry >=20 >> On 02 Jan 2015, at 18:33, Warner Losh wrote: >>=20 >> This breaks building the kernel with clang 3.4.1 >>=20 >> Warner >>=20 >>=20 >>> On Jan 1, 2015, at 3:07 AM, Roman Divacky = wrote: >>>=20 >>> Author: rdivacky >>> Date: Thu Jan 1 10:07:57 2015 >>> New Revision: 276499 >>> URL: https://svnweb.freebsd.org/changeset/base/276499 >>>=20 >>> Log: >>> LLVM integrated assembler can assemble these files just fine. >>>=20 >>> Modified: >>> head/sys/conf/Makefile.amd64 >>> head/sys/conf/Makefile.i386 >>> head/sys/conf/Makefile.pc98 >>>=20 >>> Modified: head/sys/conf/Makefile.amd64 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/conf/Makefile.amd64 Thu Jan 1 09:33:46 2015 = (r276498) >>> +++ head/sys/conf/Makefile.amd64 Thu Jan 1 10:07:57 2015 = (r276499) >>> @@ -37,11 +37,6 @@ INCLUDES+=3D -I$S/contrib/libfdt >>> CFLAGS+=3D -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer >>> .endif >>>=20 >>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>> -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} >>> -ASM_CFLAGS.mpboot.S=3D ${CLANG_NO_IAS} >>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>> - >>> %BEFORE_DEPEND >>>=20 >>> %OBJS >>>=20 >>> Modified: head/sys/conf/Makefile.i386 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/conf/Makefile.i386 Thu Jan 1 09:33:46 2015 = (r276498) >>> +++ head/sys/conf/Makefile.i386 Thu Jan 1 10:07:57 2015 = (r276499) >>> @@ -32,11 +32,6 @@ S=3D ../../.. >>>=20 >>> INCLUDES+=3D -I$S/contrib/libfdt >>>=20 >>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>> -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} >>> -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} >>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>> - >>> %BEFORE_DEPEND >>>=20 >>> %OBJS >>>=20 >>> Modified: head/sys/conf/Makefile.pc98 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/conf/Makefile.pc98 Thu Jan 1 09:33:46 2015 = (r276498) >>> +++ head/sys/conf/Makefile.pc98 Thu Jan 1 10:07:57 2015 = (r276499) >>> @@ -30,10 +30,6 @@ S=3D ../../.. >>> .endif >>> .include "$S/conf/kern.pre.mk" >>>=20 >>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>> -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} >>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>> - >>> %BEFORE_DEPEND >>>=20 >>> %OBJS >>>=20 >>=20 >>=20 >=20 --Apple-Mail=_1BC221AF-D4D6-47E4-854A-8197EB7222B2 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJUp2yuAAoJEGwc0Sh9sBEAF0cQAJRRGeBLvyM+Qx7+fJtLe/VY vPINOav/cB/uXRpii+aEqrd9hOIfVnMKoPPRAtFwN2SIc4wQ0oECWiUXYor7mpya +PnScM/aJvTpA4QhkCP6eOBgUvD3U0E8ISAJj8lMqVMDW5HrlWPs89o2w0c4U1en QKK1rfUqb3opNoDZiF4HIvzRrH6pIk87ZqxMSF/lpQyuWoWdo3o3YYV0or3mxg6b hw3sAvz+Wl9yyOK+0EjifbBtoV5zAVH33gH/nyLWSLHfU0GoPZikO9Nb/EodfteW sUtF7B1O4P+/cwCJKHFCboAozE7JXYrbTfpuFCCT/gGbXmt+qEzgca5XQpI0RAyb /MxOlKpr2bLTebWmQeBGGod2Lp8TUcyNBRvKbk5VRGyiUxqthCg6iGFOGJX99W+G wJmyaSbSNADGyA169laeTA3bHkxfr9ojQl/bvIpr+5ND0Q/aLabA7Z5sHOX/zk3k 61EVyT+mn0nVqHHZ4LsOCk9y7xjPyf3yR6NsqKMZqXl8icAOWHSww5QNR7HvH3C9 FB4sViYn1iozkIH9sxumWrtQAO5gxiwKXZGjx/tDpQdYAds0SD6jabZqXjsfrM/N rxUPR7uD4/GvQNInU0B41UkCSzDNhQnXV2Jeo/xtrK1w2u8o9GCbFG4xUaNSzPH8 cNxhLQxL7vhzvmVIACA7 =G2kz -----END PGP SIGNATURE----- --Apple-Mail=_1BC221AF-D4D6-47E4-854A-8197EB7222B2-- From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 04:23:43 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 45204968; Sat, 3 Jan 2015 04:23:43 +0000 (UTC) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "tensor.andric.com", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DA0AFB25; Sat, 3 Jan 2015 04:23:42 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::fd7c:bcc2:17c:e893] (unknown [IPv6:2001:7b8:3a7:0:fd7c:bcc2:17c:e893]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 9CA8DB80B; Sat, 3 Jan 2015 05:23:32 +0100 (CET) Subject: Re: svn commit: r276499 - head/sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_4321E6BF-EB4B-4C69-A07E-81D6F6BB6528"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.5b4 From: Dimitry Andric In-Reply-To: <5206DEA5-A5EA-48F3-B653-3E949ABE2EB1@netflix.com> Date: Sat, 3 Jan 2015 05:23:31 +0100 Message-Id: <729C40E4-B73A-41D5-9EBF-F5F776CBF0D0@FreeBSD.org> References: <201501011007.t01A7wYW032884@svn.freebsd.org> <41CF0351-83A3-4D54-B308-32F310DCD3DA@gmail.com> <5206DEA5-A5EA-48F3-B653-3E949ABE2EB1@netflix.com> To: Warner Losh X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, Roman Divacky , src-committers , svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 04:23:43 -0000 --Apple-Mail=_4321E6BF-EB4B-4C69-A07E-81D6F6BB6528 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Sure, I don't have any problem with backing this out for now. For clang 3.5.0 users, it should not matter too much that GNU as is run for just a few files. -Dimitry > On 03 Jan 2015, at 05:14, Warner Losh wrote: >=20 > Conditioning on the compiler version is actually rather easy, > especially since the number of affected files is so small. > It=E2=80=99s an issue when people build the old way on old systems, = which > is still a lot more popular than you might think. MFC has nothing > to do with the problem. Over the years we=E2=80=99ve fixed dozens of = bugs > like this that prevented people from building on older systems and > I=E2=80=99d like to avoid breaking things needlessly. >=20 > I=E2=80=99m happy to do the work to make this happen, if you=E2=80=99re = OK with my > backing out these couple of changes. >=20 > Warner >=20 >=20 >> On Jan 2, 2015, at 1:23 PM, Dimitry Andric wrote: >>=20 >> Hm, conditionalizing this on the compiler version is rather ugly. = Isn't >> this only relevant when we do an MFC? But maybe it is indeed better >> to have the same Makefile for different toolchain envronments. >>=20 >> -Dimitry >>=20 >>> On 02 Jan 2015, at 18:33, Warner Losh wrote: >>>=20 >>> This breaks building the kernel with clang 3.4.1 >>>=20 >>> Warner >>>=20 >>>=20 >>>> On Jan 1, 2015, at 3:07 AM, Roman Divacky = wrote: >>>>=20 >>>> Author: rdivacky >>>> Date: Thu Jan 1 10:07:57 2015 >>>> New Revision: 276499 >>>> URL: https://svnweb.freebsd.org/changeset/base/276499 >>>>=20 >>>> Log: >>>> LLVM integrated assembler can assemble these files just fine. >>>>=20 >>>> Modified: >>>> head/sys/conf/Makefile.amd64 >>>> head/sys/conf/Makefile.i386 >>>> head/sys/conf/Makefile.pc98 >>>>=20 >>>> Modified: head/sys/conf/Makefile.amd64 >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/sys/conf/Makefile.amd64 Thu Jan 1 09:33:46 2015 = (r276498) >>>> +++ head/sys/conf/Makefile.amd64 Thu Jan 1 10:07:57 2015 = (r276499) >>>> @@ -37,11 +37,6 @@ INCLUDES+=3D -I$S/contrib/libfdt >>>> CFLAGS+=3D -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer >>>> .endif >>>>=20 >>>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>>> -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} >>>> -ASM_CFLAGS.mpboot.S=3D ${CLANG_NO_IAS} >>>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>>> - >>>> %BEFORE_DEPEND >>>>=20 >>>> %OBJS >>>>=20 >>>> Modified: head/sys/conf/Makefile.i386 >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/sys/conf/Makefile.i386 Thu Jan 1 09:33:46 2015 = (r276498) >>>> +++ head/sys/conf/Makefile.i386 Thu Jan 1 10:07:57 2015 = (r276499) >>>> @@ -32,11 +32,6 @@ S=3D ../../.. >>>>=20 >>>> INCLUDES+=3D -I$S/contrib/libfdt >>>>=20 >>>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>>> -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} >>>> -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} >>>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>>> - >>>> %BEFORE_DEPEND >>>>=20 >>>> %OBJS >>>>=20 >>>> Modified: head/sys/conf/Makefile.pc98 >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- head/sys/conf/Makefile.pc98 Thu Jan 1 09:33:46 2015 = (r276498) >>>> +++ head/sys/conf/Makefile.pc98 Thu Jan 1 10:07:57 2015 = (r276499) >>>> @@ -30,10 +30,6 @@ S=3D ../../.. >>>> .endif >>>> .include "$S/conf/kern.pre.mk" >>>>=20 >>>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>>> -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} >>>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>>> - >>>> %BEFORE_DEPEND >>>>=20 >>>> %OBJS >>>>=20 >>>=20 >>>=20 >>=20 >=20 --Apple-Mail=_4321E6BF-EB4B-4C69-A07E-81D6F6BB6528 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.26 iEYEARECAAYFAlSnbsMACgkQsF6jCi4glqP66wCgwqBgegF4vffaJmIex6mNhLxw 2mQAn3VUpRaDPBU1zgh0chi2A5wlkQ2y =gPzX -----END PGP SIGNATURE----- --Apple-Mail=_4321E6BF-EB4B-4C69-A07E-81D6F6BB6528-- From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 04:59:33 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 39F4AF52 for ; Sat, 3 Jan 2015 04:59:33 +0000 (UTC) Received: from mail-ig0-f177.google.com (mail-ig0-f177.google.com [209.85.213.177]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F0B22E87 for ; Sat, 3 Jan 2015 04:59:32 +0000 (UTC) Received: by mail-ig0-f177.google.com with SMTP id z20so400045igj.16 for ; Fri, 02 Jan 2015 20:59:25 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:mime-version:content-type:from :in-reply-to:date:cc:message-id:references:to; bh=IgkUUBo8k0bGaBuFryg8ruPirbykK8SW18DEV0yJccw=; b=ibT8HuGdVq4TF4DAWL3FvHuaY5GlaA6gchCfy3RYWMLhJOGCX+rgShRuViejskbLLl vFAcFupD0ZOKxwaBr6ZHqGRMXLc1POuVFbWpix/dJijsKcgKxBFOZiD2kcnbT903DcnU wvjn9mPKH06XYr7SKDRyFoE3PJcwl4HY8GQX1x3FFt8yvJm54DEhd7xmdeACg2YBTJ2i G6tbZjDHqqEA1Oe4z2unW/jRYfx35j9p4elR7yLNckmSWn39wXj5y9vfn+ebAinmn3Ki VT2jweUzhYZ3/AIPzITxXebzlqvuwO2flA9ZxJyLhisiHuHdTbWiaIkZH3jcweHbhlhE iPtw== X-Gm-Message-State: ALoCoQlrt7RFq1Yzc+oKtDuLgUsbh0J2fulW7GcKOcE0OmDnEiGykWEEgtNXXPksw2BJIEdx6FAD X-Received: by 10.42.151.67 with SMTP id d3mr59414512icw.56.1420259802254; Fri, 02 Jan 2015 20:36:42 -0800 (PST) Received: from netflix-mac-wired.bsdimp.com ([50.253.99.174]) by mx.google.com with ESMTPSA id 71sm23722385ios.42.2015.01.02.20.36.41 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 02 Jan 2015 20:36:41 -0800 (PST) Sender: Warner Losh Subject: Re: svn commit: r276499 - head/sys/conf Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Content-Type: multipart/signed; boundary="Apple-Mail=_419A3ACA-00E5-45CF-86D8-075A7053CF33"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail 2.5b3 From: Warner Losh In-Reply-To: <729C40E4-B73A-41D5-9EBF-F5F776CBF0D0@FreeBSD.org> Date: Fri, 2 Jan 2015 21:36:39 -0700 Message-Id: <874E0C45-9FC9-4F19-8741-2D68F5928899@bsdimp.com> References: <201501011007.t01A7wYW032884@svn.freebsd.org> <41CF0351-83A3-4D54-B308-32F310DCD3DA@gmail.com> <5206DEA5-A5EA-48F3-B653-3E949ABE2EB1@netflix.com> <729C40E4-B73A-41D5-9EBF-F5F776CBF0D0@FreeBSD.org> To: Dimitry Andric X-Mailer: Apple Mail (2.1993) Cc: svn-src-head@freebsd.org, Roman Divacky , src-committers , svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 04:59:33 -0000 --Apple-Mail=_419A3ACA-00E5-45CF-86D8-075A7053CF33 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 I=E2=80=99ll back them out in one commit, and commit the fix in the = next, so there will be a one commit window. Warner > On Jan 2, 2015, at 9:23 PM, Dimitry Andric wrote: >=20 > Sure, I don't have any problem with backing this out for now. For = clang > 3.5.0 users, it should not matter too much that GNU as is run for just = a > few files. >=20 > -Dimitry >=20 >> On 03 Jan 2015, at 05:14, Warner Losh wrote: >>=20 >> Conditioning on the compiler version is actually rather easy, >> especially since the number of affected files is so small. >> It=E2=80=99s an issue when people build the old way on old systems, = which >> is still a lot more popular than you might think. MFC has nothing >> to do with the problem. Over the years we=E2=80=99ve fixed dozens of = bugs >> like this that prevented people from building on older systems and >> I=E2=80=99d like to avoid breaking things needlessly. >>=20 >> I=E2=80=99m happy to do the work to make this happen, if you=E2=80=99re= OK with my >> backing out these couple of changes. >>=20 >> Warner >>=20 >>=20 >>> On Jan 2, 2015, at 1:23 PM, Dimitry Andric wrote: >>>=20 >>> Hm, conditionalizing this on the compiler version is rather ugly. = Isn't >>> this only relevant when we do an MFC? But maybe it is indeed better >>> to have the same Makefile for different toolchain envronments. >>>=20 >>> -Dimitry >>>=20 >>>> On 02 Jan 2015, at 18:33, Warner Losh wrote: >>>>=20 >>>> This breaks building the kernel with clang 3.4.1 >>>>=20 >>>> Warner >>>>=20 >>>>=20 >>>>> On Jan 1, 2015, at 3:07 AM, Roman Divacky = wrote: >>>>>=20 >>>>> Author: rdivacky >>>>> Date: Thu Jan 1 10:07:57 2015 >>>>> New Revision: 276499 >>>>> URL: https://svnweb.freebsd.org/changeset/base/276499 >>>>>=20 >>>>> Log: >>>>> LLVM integrated assembler can assemble these files just fine. >>>>>=20 >>>>> Modified: >>>>> head/sys/conf/Makefile.amd64 >>>>> head/sys/conf/Makefile.i386 >>>>> head/sys/conf/Makefile.pc98 >>>>>=20 >>>>> Modified: head/sys/conf/Makefile.amd64 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/conf/Makefile.amd64 Thu Jan 1 09:33:46 2015 = (r276498) >>>>> +++ head/sys/conf/Makefile.amd64 Thu Jan 1 10:07:57 2015 = (r276499) >>>>> @@ -37,11 +37,6 @@ INCLUDES+=3D -I$S/contrib/libfdt >>>>> CFLAGS+=3D -fno-omit-frame-pointer = -mno-omit-leaf-frame-pointer >>>>> .endif >>>>>=20 >>>>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>>>> -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} >>>>> -ASM_CFLAGS.mpboot.S=3D ${CLANG_NO_IAS} >>>>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>>>> - >>>>> %BEFORE_DEPEND >>>>>=20 >>>>> %OBJS >>>>>=20 >>>>> Modified: head/sys/conf/Makefile.i386 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/conf/Makefile.i386 Thu Jan 1 09:33:46 2015 = (r276498) >>>>> +++ head/sys/conf/Makefile.i386 Thu Jan 1 10:07:57 2015 = (r276499) >>>>> @@ -32,11 +32,6 @@ S=3D ../../.. >>>>>=20 >>>>> INCLUDES+=3D -I$S/contrib/libfdt >>>>>=20 >>>>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>>>> -ASM_CFLAGS.acpi_wakecode.S=3D ${CLANG_NO_IAS} >>>>> -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} >>>>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>>>> - >>>>> %BEFORE_DEPEND >>>>>=20 >>>>> %OBJS >>>>>=20 >>>>> Modified: head/sys/conf/Makefile.pc98 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/conf/Makefile.pc98 Thu Jan 1 09:33:46 2015 = (r276498) >>>>> +++ head/sys/conf/Makefile.pc98 Thu Jan 1 10:07:57 2015 = (r276499) >>>>> @@ -30,10 +30,6 @@ S=3D ../../.. >>>>> .endif >>>>> .include "$S/conf/kern.pre.mk" >>>>>=20 >>>>> -# XXX: clang integrated-as doesn't grok .codeNN directives yet >>>>> -ASM_CFLAGS.mpboot.s=3D ${CLANG_NO_IAS} >>>>> -ASM_CFLAGS+=3D ${ASM_CFLAGS.${.IMPSRC:T}} >>>>> - >>>>> %BEFORE_DEPEND >>>>>=20 >>>>> %OBJS >>>>>=20 >>>>=20 >>>>=20 >>>=20 >>=20 >=20 --Apple-Mail=_419A3ACA-00E5-45CF-86D8-075A7053CF33 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJUp3HYAAoJEGwc0Sh9sBEAWAEQANAtOv0y0N5HDvA7qJhp3uHH p1ranZkI5QRU8qrv8bO1wvdKjE0UIe054oQ3Be0j9ie6ChaT3rAo0W4AsQluLJEA 1XYztozT7LtFM3cMc6ej2C8TihYmMxTel4H2NyEwp/Ldq5UCFxAMnJT1rkQS9hvI EP8c1rNKfLCKOw82Wv/4WGiemQd+zjwuTIchbK3mYlPVr/lLs+lgWBQvjk75sdNU cJFX+JCT72bZ1nznAHDQA5e9ssjjmnvS/8a+1R2+EBWQ/yDWsyZ4etWjxLw5XcW6 s9YA/EkMhUI4K7PB6XA8QH8+Ek/Yb04YFkRVg4whUvrEIyNnicZjecjzxCjypevS Vl2o8ms+p7ceofyzkEyfB6SCvdhMd98woyisf0MpvzECL4pdUoQ33ZpabWHSj63H czNa6QF18O27Td5rQJDv8liGJiQYc/+rb+dH8W9CpmENvwy6U4NJj2bcMyxXDgKv DAGhgx37JMOuigNkP9GHC4H1n5TEBVS14tSNZiAGvD3CLeH1gDd2aaezWHfzIPJU oAM0+rR3wV3xHbAntPiDwUW2MctAOIl0tFrUD1IrmM44YFtc7ApNcduhL6XONkbw bXJsPBXae41HFu1ZjTkSgD4I0PW+CqvIo0xPOBcQLcyysi/tf4AhTDK0MdHustWJ 17PDNAgigtabGx5rZjxU =umr1 -----END PGP SIGNATURE----- --Apple-Mail=_419A3ACA-00E5-45CF-86D8-075A7053CF33-- From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 05:39:03 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3CC1D27B; Sat, 3 Jan 2015 05:39:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0F9A064414; Sat, 3 Jan 2015 05:39:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t035d26C099765; Sat, 3 Jan 2015 05:39:02 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t035d240099764; Sat, 3 Jan 2015 05:39:02 GMT (envelope-from np@FreeBSD.org) Message-Id: <201501030539.t035d240099764@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Sat, 3 Jan 2015 05:39:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276607 - head/tools/tools/cxgbetool X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 05:39:03 -0000 Author: np Date: Sat Jan 3 05:39:01 2015 New Revision: 276607 URL: https://svnweb.freebsd.org/changeset/base/276607 Log: Fix all nits reported by mandoc -Tlint. MFC after: 1 month Modified: head/tools/tools/cxgbetool/cxgbetool.8 Modified: head/tools/tools/cxgbetool/cxgbetool.8 ============================================================================== --- head/tools/tools/cxgbetool/cxgbetool.8 Sat Jan 3 03:35:18 2015 (r276606) +++ head/tools/tools/cxgbetool/cxgbetool.8 Sat Jan 3 05:39:01 2015 (r276607) @@ -1,4 +1,4 @@ -." Copyright (c) 2015, Chelsio Inc +.\" Copyright (c) 2015, Chelsio Inc .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -93,7 +93,7 @@ The rest consists of a command and any p .It Cm clearstats Ar port_id Clear all transmit, receive, and error statistics of all queues associated with a port. -The total number of ports attached to a nexus is listed in +The total number of ports attached to a nexus is listed in .Va dev.t4nex.%d.nports and the 0 based .Ar port_id @@ -407,7 +407,6 @@ Class Weighted Round Robin. .It Sy cl-wrr Channel Rate Limiting. .El -.Pp .It Sy mode Ar scheduler-mode The mode in which the scheduling class is going to operate: .Pp @@ -425,7 +424,6 @@ mode, all of the "flows" bound to the cl aggregate bandwidth of 10Mb/s; but in .Cm flow mode, each of the "flows" bound to the scheduling class would be limited to 10Mb/s. -.Pp .It Sy rate-unit Ar scheduler-rate-unit The units of the scheduler rate constraints: .Pp @@ -446,19 +444,14 @@ percent of port rate. .It Sy absolute Kb/s. .El -.Pp .It Sy channel Ar scheduler-channel-index The scheduling channel to which the scheduling class will be bound. -.Pp .It Sy class Ar scheduler-class-index The scheduling class being programmed. -.Pp .It Sy min-rate Ar minimum-rate The minimum guaranteed rate to which a rate-limiting scheduling class hierarchy will have access. -.Pp .It Sy max-rate Ar maximum-rate The maximum rate for a rate-limiting scheduling class hierarchy. -.Pp .It Sy weight Ar round-robin-weight The weight to be used for a weighted-round-robin scheduling hierarchy. .It Sy pkt-size Ar average-packet-size From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 06:30:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 14FEF64B; Sat, 3 Jan 2015 06:30:31 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 015D96498D; Sat, 3 Jan 2015 06:30:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t036UU1g027064; Sat, 3 Jan 2015 06:30:30 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t036UUgB027063; Sat, 3 Jan 2015 06:30:30 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201501030630.t036UUgB027063@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 3 Jan 2015 06:30:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276608 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 06:30:31 -0000 Author: adrian Date: Sat Jan 3 06:30:30 2015 New Revision: 276608 URL: https://svnweb.freebsd.org/changeset/base/276608 Log: Add AR934x GPIO function configuration. Obtained from: Linux OpenWRT Modified: head/sys/mips/atheros/ar934xreg.h Modified: head/sys/mips/atheros/ar934xreg.h ============================================================================== --- head/sys/mips/atheros/ar934xreg.h Sat Jan 3 05:39:01 2015 (r276607) +++ head/sys/mips/atheros/ar934xreg.h Sat Jan 3 06:30:30 2015 (r276608) @@ -179,6 +179,12 @@ /* * GPIO block */ +#define AR934X_GPIO_REG_OUT_FUNC0 0x2c +#define AR934X_GPIO_REG_OUT_FUNC1 0x30 +#define AR934X_GPIO_REG_OUT_FUNC2 0x34 +#define AR934X_GPIO_REG_OUT_FUNC3 0x38 +#define AR934X_GPIO_REG_OUT_FUNC4 0x3c +#define AR934X_GPIO_REG_OUT_FUNC5 0x40 #define AR934X_GPIO_REG_FUNC 0x6c #define AR934X_GPIO_COUNT 23 From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 06:35:54 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8FFE88A7; Sat, 3 Jan 2015 06:35:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7CBDFC83; Sat, 3 Jan 2015 06:35:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t036Zsq9031174; Sat, 3 Jan 2015 06:35:54 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t036Zs2i031173; Sat, 3 Jan 2015 06:35:54 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201501030635.t036Zs2i031173@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 3 Jan 2015 06:35:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276609 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 06:35:54 -0000 Author: adrian Date: Sat Jan 3 06:35:53 2015 New Revision: 276609 URL: https://svnweb.freebsd.org/changeset/base/276609 Log: Add AR934x specific GPIO functions and output MUX configuration. Obtained from: Linux OpenWRT Modified: head/sys/mips/atheros/ar934xreg.h Modified: head/sys/mips/atheros/ar934xreg.h ============================================================================== --- head/sys/mips/atheros/ar934xreg.h Sat Jan 3 06:30:30 2015 (r276608) +++ head/sys/mips/atheros/ar934xreg.h Sat Jan 3 06:35:53 2015 (r276609) @@ -188,6 +188,28 @@ #define AR934X_GPIO_REG_FUNC 0x6c #define AR934X_GPIO_COUNT 23 +/* GPIO functions */ +#define AR934X_GPIO_FUNC_CLK_OBS7_EN (1 << 9) +#define AR934X_GPIO_FUNC_CLK_OBS6_EN (1 << 8) +#define AR934X_GPIO_FUNC_CLK_OBS5_EN (1 << 7) +#define AR934X_GPIO_FUNC_CLK_OBS4_EN (1 << 6) +#define AR934X_GPIO_FUNC_CLK_OBS3_EN (1 << 5) +#define AR934X_GPIO_FUNC_CLK_OBS2_EN (1 << 4) +#define AR934X_GPIO_FUNC_CLK_OBS1_EN (1 << 3) +#define AR934X_GPIO_FUNC_CLK_OBS0_EN (1 << 2) +#define AR934X_GPIO_FUNC_JTAG_DISABLE (1 << 1) + +/* GPIO MUX output function: AR934X_GPIO_REG_OUT_FUNCx */ +#define AR934X_GPIO_OUT_GPIO 0 /* I'm a GPIO */ +#define AR934X_GPIO_OUT_SPI_CS1 7 /* I'm SPI CS1 */ +#define AR934X_GPIO_OUT_LED_LINK0 41 /* I'm switch phy link0 */ +#define AR934X_GPIO_OUT_LED_LINK1 42 +#define AR934X_GPIO_OUT_LED_LINK2 43 +#define AR934X_GPIO_OUT_LED_LINK3 44 +#define AR934X_GPIO_OUT_LED_LINK4 45 +#define AR934X_GPIO_OUT_EXT_LNA0 46 /* I'm WMAC EXT LNA chain 0 */ +#define AR934X_GPIO_OUT_EXT_LNA1 47 /* I'm WMAC EXT LNA chain 1 */ + /* * SRIF block */ From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 06:56:00 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 83A45B00; Sat, 3 Jan 2015 06:56:00 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 64B88E9E; Sat, 3 Jan 2015 06:56:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t036u00X041793; Sat, 3 Jan 2015 06:56:00 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t036txlJ041790; Sat, 3 Jan 2015 06:55:59 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201501030655.t036txlJ041790@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sat, 3 Jan 2015 06:55:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276610 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 06:56:00 -0000 Author: adrian Date: Sat Jan 3 06:55:58 2015 New Revision: 276610 URL: https://svnweb.freebsd.org/changeset/base/276610 Log: Add a GPIO output mux configuration method. The AR934x and later (which will turn up eventually) have a new GPIO output configuration option - a real MUX rather than a "GPIO or this function." For now I'm squirreling it away in the CPU code just so it's done - I may move this to the GPIO layer later. Specifically, this is required for setting up some boards that have external receive side LNA (low noise amplifier) that gets switched on/off by the on-chip wireless MAC. If we don't add this support for those boards then we'll end up with really poor performance. (I don't yet have one of those APs, but it'll likely show up in a week.) Obtained from: Linux OpenWRT Modified: head/sys/mips/atheros/ar71xx_cpudef.h head/sys/mips/atheros/ar934x_chip.c Modified: head/sys/mips/atheros/ar71xx_cpudef.h ============================================================================== --- head/sys/mips/atheros/ar71xx_cpudef.h Sat Jan 3 06:35:53 2015 (r276609) +++ head/sys/mips/atheros/ar71xx_cpudef.h Sat Jan 3 06:55:58 2015 (r276610) @@ -65,6 +65,8 @@ struct ar71xx_cpu_def { void (* ar71xx_chip_init_gmac) (void); void (* ar71xx_chip_reset_nfc) (int); + + void (* ar71xx_chip_gpio_out_configure) (int, uint8_t); }; extern struct ar71xx_cpu_def * ar71xx_cpu_ops; @@ -149,6 +151,12 @@ static inline void ar71xx_reset_nfc(int ar71xx_cpu_ops->ar71xx_chip_reset_nfc(active); } +static inline void ar71xx_gpio_ouput_configure(int gpio, uint8_t func) +{ + if (ar71xx_cpu_ops->ar71xx_chip_gpio_out_configure) + ar71xx_cpu_ops->ar71xx_chip_gpio_out_configure(gpio, func); +} + /* XXX shouldn't be here! */ extern uint32_t u_ar71xx_refclk; extern uint32_t u_ar71xx_cpu_freq; Modified: head/sys/mips/atheros/ar934x_chip.c ============================================================================== --- head/sys/mips/atheros/ar934x_chip.c Sat Jan 3 06:35:53 2015 (r276609) +++ head/sys/mips/atheros/ar934x_chip.c Sat Jan 3 06:55:58 2015 (r276610) @@ -417,6 +417,37 @@ ar934x_chip_reset_nfc(int active) } } +/* + * Configure the GPIO output mux setup. + * + * The AR934x introduced an output mux which allowed + * certain functions to be configured on any pin. + * Specifically, the switch PHY link LEDs and + * WMAC external RX LNA switches are not limited to + * a specific GPIO pin. + */ +static void +ar934x_chip_gpio_output_configure(int gpio, uint8_t func) +{ + uint32_t reg, s; + uint32_t t; + + if (gpio > AR934X_GPIO_COUNT) + return; + + reg = AR934X_GPIO_REG_OUT_FUNC0 + 4 * (gpio / 4); + s = 8 * (gpio % 4); + + /* read-modify-write */ + t = ATH_READ_REG(AR71XX_GPIO_BASE + reg); + t &= ~(0xff << s); + t |= func << s; + ATH_WRITE_REG(AR71XX_GPIO_BASE + reg, t); + + /* flush write */ + ATH_READ_REG(AR71XX_GPIO_BASE + reg); +} + struct ar71xx_cpu_def ar934x_chip_def = { &ar934x_chip_detect_mem_size, &ar934x_chip_detect_sys_frequency, @@ -434,4 +465,5 @@ struct ar71xx_cpu_def ar934x_chip_def = &ar934x_chip_reset_wmac, &ar934x_chip_init_gmac, &ar934x_chip_reset_nfc, + &ar934x_chip_gpio_output_configure, }; From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 08:06:49 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 32231D82; Sat, 3 Jan 2015 08:06:49 +0000 (UTC) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id E9440298A; Sat, 3 Jan 2015 08:06:48 +0000 (UTC) Received: from c122-106-147-133.carlnfd1.nsw.optusnet.com.au (c122-106-147-133.carlnfd1.nsw.optusnet.com.au [122.106.147.133]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id 95F8AD615FE; Sat, 3 Jan 2015 18:39:49 +1100 (AEDT) Date: Sat, 3 Jan 2015 18:39:48 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Dmitry Chagin Subject: Re: svn commit: r276564 - head/sys/compat/linux In-Reply-To: <201501021929.t02JTXd7093292@svn.freebsd.org> Message-ID: <20150103175627.K979@besplex.bde.org> References: <201501021929.t02JTXd7093292@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R8o6R7hX c=1 sm=1 tr=0 a=7NqvjVvQucbO2RlWB8PEog==:117 a=PO7r1zJSAAAA:8 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=V7-QFCcns0Nmk-jv-oAA:9 a=CjuIK1q_8ugA:10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 08:06:49 -0000 On Fri, 2 Jan 2015, Dmitry Chagin wrote: > Log: > Cast *path to silence clang -Wpointer-sign warning. Why not fix the bug instead of breaking the warning? (You usually do this better.) > Modified: head/sys/compat/linux/linux_getcwd.c > ============================================================================== > --- head/sys/compat/linux/linux_getcwd.c Fri Jan 2 19:06:27 2015 (r276563) > +++ head/sys/compat/linux/linux_getcwd.c Fri Jan 2 19:29:32 2015 (r276564) > @@ -430,7 +430,7 @@ linux_getcwd(struct thread *td, struct l > > path = (char *)malloc(len, M_TEMP, M_WAITOK); > > - error = kern___getcwd(td, path, UIO_SYSSPACE, len); > + error = kern___getcwd(td, (u_char *)path, UIO_SYSSPACE, len); The bug is that __getcwd(2undoc) has a bogus API that is mismatched with all callers and also with its implementation. libc/gen/getcwd.c misdeclares __getcwd() as taking a plain char * path, but this type mismatch is not detected since libc/gen/getcwd.c doesn't include the header where the syscall is declared (sys/syscallsubr.h). This type pun prevents clang detecting the same problem as above (pathnames are always char * except when bogusly passed to *__getcwd()). __kern_getcwd() internally doesn't actually use or support u_char * paths, except to copy them to a normal char * path. The copying is done using bcopy(), so its behaviour is not undefined like it is with the type pun, but it is still logically wrong and would be physically wrong if signed chars were exotic. The behaviour is only clearly correct if the pointer: 1) starts as plain char * 2) actually points to valid plain chars 3) is converted without type puns before use, either back to the original plain char * pointer for direct use, or to void * for use in bcopy() and then plain char * is used to access the copy. The above bogus cast gives this. This depends only __kern_getcwd() not actually supporting u_char * but doing step (3). I think the bogus cast from 'signed foo_t *' to 'unsigned foo_t *' gives undefined behaviour in general, but for foo_t = char it only gives implementation-defined behaviour (different interpretations of the sign bit and +-0), at least in POSIX where chars are 8 bits so there is no space for extra bits. The only case of even theoretical interest is +-0 on 1's complement systems with plain char = signed char . Then +-0 cannot be distinguished as chars. FreeBSD just doesn't support such systems. At least to the extent of handling the file name "\xff" on a removable disk generated on a 2's complement system. The cast of malloc() is also bogus. Bruce From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 08:33:14 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0C41E374; Sat, 3 Jan 2015 08:33:14 +0000 (UTC) Received: from gold.funkthat.com (gate2.funkthat.com [208.87.223.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "gold.funkthat.com", Issuer "gold.funkthat.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id DAF172D3F; Sat, 3 Jan 2015 08:33:13 +0000 (UTC) Received: from gold.funkthat.com (localhost [127.0.0.1]) by gold.funkthat.com (8.14.5/8.14.5) with ESMTP id t038XDa8017136 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 3 Jan 2015 00:33:13 -0800 (PST) (envelope-from jmg@gold.funkthat.com) Received: (from jmg@localhost) by gold.funkthat.com (8.14.5/8.14.5/Submit) id t038XDCN017135; Sat, 3 Jan 2015 00:33:13 -0800 (PST) (envelope-from jmg) Date: Sat, 3 Jan 2015 00:33:13 -0800 From: John-Mark Gurney To: Hans Petter Selasky Subject: Re: svn commit: r275732 - in head: etc/mtree share/man/man4 share/man/man7 share/man/man9 sys/conf sys/crypto/aesni sys/crypto/via sys/geom/eli sys/libkern sys/mips/rmi/dev/sec sys/modules/aesni sys/mo... Message-ID: <20150103083313.GB16816@funkthat.com> References: <201412121956.sBCJucpj048475@svn.freebsd.org> <54A65C52.8090207@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <54A65C52.8090207@freebsd.org> X-Operating-System: FreeBSD 9.1-PRERELEASE amd64 X-PGP-Fingerprint: 54BA 873B 6515 3F10 9E88 9322 9CB1 8F74 6D3F A396 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ X-Resume: http://resnet.uoregon.edu/~gurney_j/resume.html X-TipJar: bitcoin:13Qmb6AeTgQecazTWph4XasEsP7nGRbAPE X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (gold.funkthat.com [127.0.0.1]); Sat, 03 Jan 2015 00:33:13 -0800 (PST) Cc: John-Mark Gurney , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 08:33:14 -0000 Hans Petter Selasky wrote this message on Fri, Jan 02, 2015 at 09:52 +0100: > On 12/12/14 20:56, John-Mark Gurney wrote: > > Author: jmg > > Date: Fri Dec 12 19:56:36 2014 > > New Revision: 275732 > > URL: https://svnweb.freebsd.org/changeset/base/275732 > > > > Log: > > Compile breakage with older compilers: > > > crypto/aesni/aesni.c: In function 'aesni_process': > > crypto/aesni/aesni.c:458: warning: 'ivlen' may be used uninitialized in this function > > crypto/aesni/aesni.c:458: note: 'ivlen' was declared here Thanks, I'll fix that tomorrow... I had a email server outage and now just getting things back to working... We really should look at turning of gcc's uninitialized var warning now that it doesn't do a good job... We are now just poluting our code base w/ bad initalizations that could turn into bugs in the future when someone adds a new code path that doesn't initalize the variable and gets the bogus initalization... -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not." From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 08:34:42 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CBFAE4CD; Sat, 3 Jan 2015 08:34:42 +0000 (UTC) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id 5BCA32D5C; Sat, 3 Jan 2015 08:34:41 +0000 (UTC) Received: from c122-106-147-133.carlnfd1.nsw.optusnet.com.au (c122-106-147-133.carlnfd1.nsw.optusnet.com.au [122.106.147.133]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id C549CD4732D; Sat, 3 Jan 2015 19:34:26 +1100 (AEDT) Date: Sat, 3 Jan 2015 19:34:25 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Ian Lepore Subject: Re: svn commit: r276596 - in head/sys/arm: arm include In-Reply-To: <201501022346.t02NkRgd032775@svn.freebsd.org> Message-ID: <20150103184754.H1159@besplex.bde.org> References: <201501022346.t02NkRgd032775@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=Qdxf4Krv c=1 sm=1 tr=0 a=7NqvjVvQucbO2RlWB8PEog==:117 a=PO7r1zJSAAAA:8 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=TkTTPzHaAAAA:8 a=bcXWhih2kQSunO1Cnb4A:9 a=CjuIK1q_8ugA:10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 08:34:43 -0000 On Fri, 2 Jan 2015, Ian Lepore wrote: > Log: > Fix alignment directives in arm asm code after clang 3.5 import. > > The ancient gas we've been using interprets .align 0 as align to the > minimum required alignment for the current section. Clang's integrated > assembler interprets it as align to a byte boundary. Fortunately both > assemblers interpret a non-zero value as align to 2^N so just make sure > we have appropriate non-zero values everywhere. > Modified: head/sys/arm/arm/bcopyinout.S > ============================================================================== > --- head/sys/arm/arm/bcopyinout.S Fri Jan 2 23:27:16 2015 (r276595) > +++ head/sys/arm/arm/bcopyinout.S Fri Jan 2 23:46:26 2015 (r276596) > @@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$"); > #else > > .text > - .align 0 > + .align 2 This is still confusing. Doesn't clang on arm support .p2align? On x86, '.align N' means align to boundary N, where N must be a power of 2. Alignment to boundary 2**N can be done by expanding 2**N literally or using '.p2align N'. The latter is better, and is always (?) used in FreeBSD sources. It was also generated by gcc-3.3.3. gcc-4 broke this and generates .align, and clang is bug for bug compatible with the newer gcc. .align used to mean power of 2 alignment on x86 too, but gas changed this in 1995, or at least introduced .p2align then: X Wed Apr 26 15:54:10 1995 Ken Raeburn X X Support for more portable alignment handling in assembly code, X based on patches from Bryan Ford : X * read.c (potable): Added balign and p2align, for aligning by X bytes or powers of two independent of what ".align" does for a X given target. X * doc/as.texinfo: Document them. Everything should have, and still should, use .p2align for portability and anti-confusion. FreeBSD on x86 didn't catch up with this change until 1997. The fix is disguised in some ELF changes in rev.1.16. It is also a style bug to hard-code .align statements. x86 is missing this style bug, so only about 3 lines in this file needed to be changed to keep up with the change in gas. I couldn't find when gas changed the default, and suspect that it was conditional on ELF. Other arches never supported aout, but they apparently ended up with the confusing aout semantics for .align. .align is apparently portable now, but it is still too confusing to use. This is especially confusing for small powers of 2 A few related style bugs have crept into x86/*.s: - i386 has 2 hard-coded .aligns for kdtrace - amd64 and i386 have a few hard-coded .p2align's. Half are my fault. There is a SUPERALIGN_TEXT macro, but no SUPERALIGN_DATA macro. The [SUPER]ALIGN_TEXT and ALIGN_DATA macros are a bit too simple. They hide complications for profiling. However, the best alignment is very machine-dependent and context-dependent. Modern compilers generate very different amounts of alignment depending on -march and the context (different for function targets than for other branch targets...). The macros should at least depend on -march. SUPERALIGN_TEXT is just a hard-coding of a special context for -march=i486. Bruce From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 09:01:10 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E877EBA5; Sat, 3 Jan 2015 09:01:09 +0000 (UTC) Received: from dchagin.static.corbina.net (dchagin.static.corbina.ru [78.107.232.239]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "dchagin.static.corbina.net", Issuer "dchagin.static.corbina.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 82986118B; Sat, 3 Jan 2015 09:01:08 +0000 (UTC) Received: from dchagin.static.corbina.net (localhost [127.0.0.1]) by dchagin.static.corbina.net (8.14.9/8.14.9) with ESMTP id t03914BT028995 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 3 Jan 2015 12:01:05 +0300 (MSK) (envelope-from dchagin@dchagin.static.corbina.net) Received: (from dchagin@localhost) by dchagin.static.corbina.net (8.14.9/8.14.9/Submit) id t03914Uj028994; Sat, 3 Jan 2015 12:01:04 +0300 (MSK) (envelope-from dchagin) Date: Sat, 3 Jan 2015 12:01:04 +0300 From: Chagin Dmitry To: Bruce Evans Subject: Re: svn commit: r276564 - head/sys/compat/linux Message-ID: <20150103090104.GA28933@dchagin.static.corbina.net> References: <201501021929.t02JTXd7093292@svn.freebsd.org> <20150103175627.K979@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150103175627.K979@besplex.bde.org> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 09:01:10 -0000 On Sat, Jan 03, 2015 at 06:39:48PM +1100, Bruce Evans wrote: > On Fri, 2 Jan 2015, Dmitry Chagin wrote: > > > Log: > > Cast *path to silence clang -Wpointer-sign warning. > > Why not fix the bug instead of breaking the warning? (You usually do > this better.) > > > Modified: head/sys/compat/linux/linux_getcwd.c > > ============================================================================== > > --- head/sys/compat/linux/linux_getcwd.c Fri Jan 2 19:06:27 2015 (r276563) > > +++ head/sys/compat/linux/linux_getcwd.c Fri Jan 2 19:29:32 2015 (r276564) > > @@ -430,7 +430,7 @@ linux_getcwd(struct thread *td, struct l > > > > path = (char *)malloc(len, M_TEMP, M_WAITOK); > > > > - error = kern___getcwd(td, path, UIO_SYSSPACE, len); > > + error = kern___getcwd(td, (u_char *)path, UIO_SYSSPACE, len); > > The bug is that __getcwd(2undoc) has a bogus API that is mismatched with > all callers and also with its implementation. > > libc/gen/getcwd.c misdeclares __getcwd() as taking a plain char * path, but > this type mismatch is not detected since libc/gen/getcwd.c doesn't include > the header where the syscall is declared (sys/syscallsubr.h). This type > pun prevents clang detecting the same problem as above (pathnames are > always char * except when bogusly passed to *__getcwd()). > > __kern_getcwd() internally doesn't actually use or support u_char * paths, > except to copy them to a normal char * path. The copying is done using > bcopy(), so its behaviour is not undefined like it is with the type pun, > but it is still logically wrong and would be physically wrong if signed > chars were exotic. The behaviour is only clearly correct if the pointer: > 1) starts as plain char * > 2) actually points to valid plain chars > 3) is converted without type puns before use, either back to the original > plain char * pointer for direct use, or to void * for use in bcopy() > and then plain char * is used to access the copy. > The above bogus cast gives this. This depends only __kern_getcwd() not > actually supporting u_char * but doing step (3). > > I think the bogus cast from 'signed foo_t *' to 'unsigned foo_t *' gives > undefined behaviour in general, but for foo_t = char it only gives > implementation-defined behaviour (different interpretations of the sign > bit and +-0), at least in POSIX where chars are 8 bits so there is no > space for extra bits. The only case of even theoretical interest is > +-0 on 1's complement systems with plain char = signed char . Then +-0 > cannot be distinguished as chars. FreeBSD just doesn't support such > systems. At least to the extent of handling the file name "\xff" on > a removable disk generated on a 2's complement system. > > The cast of malloc() is also bogus. > Thanks, Bruce! So, let's change kern___getcwd() definition: diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master index 5d445a5..ce655bc 100644 --- a/sys/compat/freebsd32/syscalls.master +++ b/sys/compat/freebsd32/syscalls.master @@ -583,7 +583,7 @@ 323 AUE_NULL OBSOL thr_wakeup 324 AUE_MLOCKALL NOPROTO { int mlockall(int how); } 325 AUE_MUNLOCKALL NOPROTO { int munlockall(void); } -326 AUE_GETCWD NOPROTO { int __getcwd(u_char *buf, u_int buflen); } +326 AUE_GETCWD NOPROTO { int __getcwd(char *buf, u_int buflen); } 327 AUE_NULL NOPROTO { int sched_setparam (pid_t pid, \ const struct sched_param *param); } diff --git a/sys/compat/linux/linux_getcwd.c b/sys/compat/linux/linux_getcwd.c index 1278721..448c404 100644 --- a/sys/compat/linux/linux_getcwd.c +++ b/sys/compat/linux/linux_getcwd.c @@ -186,7 +186,7 @@ linux_getcwd_scandir(lvpp, uvpp, bpp, bufp, td) dirbuflen = DIRBLKSIZ; if (dirbuflen < va.va_blocksize) dirbuflen = va.va_blocksize; - dirbuf = (char *)malloc(dirbuflen, M_LINUX, M_WAITOK); + dirbuf = malloc(dirbuflen, M_LINUX, M_WAITOK); #if 0 unionread: @@ -413,7 +413,7 @@ out: int linux_getcwd(struct thread *td, struct linux_getcwd_args *args) { - caddr_t bp, bend, path; + char *bp, *bend, *path; int error, len, lenused; #ifdef DEBUG @@ -428,9 +428,9 @@ linux_getcwd(struct thread *td, struct linux_getcwd_args *args) else if (len < 2) return ERANGE; - path = (char *)malloc(len, M_LINUX, M_WAITOK); + path = malloc(len, M_LINUX, M_WAITOK); - error = kern___getcwd(td, (u_char *)path, UIO_SYSSPACE, len); + error = kern___getcwd(td, path, UIO_SYSSPACE, len); if (!error) { lenused = strlen(path) + 1; if (lenused <= args->bufsize) { diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index e0f8b61..089896b 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -571,7 +571,7 @@ 323 AUE_NULL OBSOL thr_wakeup 324 AUE_MLOCKALL STD { int mlockall(int how); } 325 AUE_MUNLOCKALL STD { int munlockall(void); } -326 AUE_GETCWD STD { int __getcwd(u_char *buf, u_int buflen); } +326 AUE_GETCWD STD { int __getcwd(char *buf, u_int buflen); } 327 AUE_NULL STD { int sched_setparam (pid_t pid, \ const struct sched_param *param); } diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 55e3217..398d21c 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -1043,14 +1043,6 @@ vfs_cache_lookup(ap) return (error); } - -#ifndef _SYS_SYSPROTO_H_ -struct __getcwd_args { - u_char *buf; - u_int buflen; -}; -#endif - /* * XXX All of these sysctls would probably be more productive dead. */ @@ -1060,16 +1052,14 @@ SYSCTL_INT(_debug, OID_AUTO, disablecwd, CTLFLAG_RW, &disablecwd, 0, /* Implementation of the getcwd syscall. */ int -sys___getcwd(td, uap) - struct thread *td; - struct __getcwd_args *uap; +sys___getcwd(struct thread *td, struct __getcwd_args *uap) { return (kern___getcwd(td, uap->buf, UIO_USERSPACE, uap->buflen)); } int -kern___getcwd(struct thread *td, u_char *buf, enum uio_seg bufseg, u_int buflen) +kern___getcwd(struct thread *td, char *buf, enum uio_seg bufseg, u_int buflen) { char *bp, *tmpbuf; struct filedesc *fdp; diff --git a/sys/sys/syscallsubr.h b/sys/sys/syscallsubr.h index 8f074cc..75138ba 100644 --- a/sys/sys/syscallsubr.h +++ b/sys/sys/syscallsubr.h @@ -60,7 +60,7 @@ struct __wrusage; int do_execve(struct thread *td, struct image_args *args, struct mac *mac_p); -int kern___getcwd(struct thread *td, u_char *buf, enum uio_seg bufseg, +int kern___getcwd(struct thread *td, char *buf, enum uio_seg bufseg, u_int buflen); int kern_accept(struct thread *td, int s, struct sockaddr **name, socklen_t *namelen, struct file **fp); -- Have fun! chd From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 11:04:19 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F049FF58; Sat, 3 Jan 2015 11:04:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DC81F662BE; Sat, 3 Jan 2015 11:04:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03B4Ikm082134; Sat, 3 Jan 2015 11:04:18 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03B4IKV082133; Sat, 3 Jan 2015 11:04:18 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201501031104.t03B4IKV082133@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sat, 3 Jan 2015 11:04:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276611 - head/sys/dev/usb/wlan X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 11:04:19 -0000 Author: hselasky Date: Sat Jan 3 11:04:17 2015 New Revision: 276611 URL: https://svnweb.freebsd.org/changeset/base/276611 Log: Make sure an error case exits unlocked. Submitted by: Dmitry Luhtionov MFC after: 1 week Modified: head/sys/dev/usb/wlan/if_rsu.c Modified: head/sys/dev/usb/wlan/if_rsu.c ============================================================================== --- head/sys/dev/usb/wlan/if_rsu.c Sat Jan 3 06:55:58 2015 (r276610) +++ head/sys/dev/usb/wlan/if_rsu.c Sat Jan 3 11:04:17 2015 (r276611) @@ -328,11 +328,11 @@ rsu_attach(device_t self) if (sc->cut != 3) sc->cut = (sc->cut >> 1) + 1; error = rsu_read_rom(sc); + RSU_UNLOCK(sc); if (error != 0) { device_printf(self, "could not read ROM\n"); goto fail_rom; } - RSU_UNLOCK(sc); IEEE80211_ADDR_COPY(sc->sc_bssid, &sc->rom[0x12]); device_printf(self, "MAC/BB RTL8712 cut %d\n", sc->cut); ifp = sc->sc_ifp = if_alloc(IFT_IEEE80211); From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 11:52:44 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B48D14A4; Sat, 3 Jan 2015 11:52:44 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E8FE183C; Sat, 3 Jan 2015 11:52:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03BqiSx005105; Sat, 3 Jan 2015 11:52:44 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03BqiLK005101; Sat, 3 Jan 2015 11:52:44 GMT (envelope-from des@FreeBSD.org) Message-Id: <201501031152.t03BqiLK005101@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: des set sender to des@FreeBSD.org using -f From: Dag-Erling Smørgrav Date: Sat, 3 Jan 2015 11:52:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276612 - in head/contrib/unbound: dnstap doc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 11:52:44 -0000 Author: des Date: Sat Jan 3 11:52:43 2015 New Revision: 276612 URL: https://svnweb.freebsd.org/changeset/base/276612 Log: Add generated files. Added: head/contrib/unbound/dnstap/dnstap_config.h head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/unbound-host.1 Added: head/contrib/unbound/dnstap/dnstap_config.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/dnstap/dnstap_config.h Sat Jan 3 11:52:43 2015 (r276612) @@ -0,0 +1,17 @@ +#ifndef UNBOUND_DNSTAP_CONFIG_H +#define UNBOUND_DNSTAP_CONFIG_H + +/* + * Process this file (dnstap_config.h.in) with AC_CONFIG_FILES to generate + * dnstap_config.h. + * + * This file exists so that USE_DNSTAP can be used without including config.h. + */ + +#if 0 /* ENABLE_DNSTAP */ +# ifndef USE_DNSTAP +# define USE_DNSTAP 1 +# endif +#endif + +#endif /* UNBOUND_DNSTAP_CONFIG_H */ Added: head/contrib/unbound/doc/example.conf ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/doc/example.conf Sat Jan 3 11:52:43 2015 (r276612) @@ -0,0 +1,603 @@ +# +# Example configuration file. +# +# See unbound.conf(5) man page, version 1.5.1. +# +# this is a comment. + +#Use this to include other text into the file. +#include: "otherfile.conf" + +# The server clause sets the main parameters. +server: + # whitespace is not necessary, but looks cleaner. + + # verbosity number, 0 is least verbose. 1 is default. + verbosity: 1 + + # print statistics to the log (for every thread) every N seconds. + # Set to "" or 0 to disable. Default is disabled. + # statistics-interval: 0 + + # enable cumulative statistics, without clearing them after printing. + # statistics-cumulative: no + + # enable extended statistics (query types, answer codes, status) + # printed from unbound-control. default off, because of speed. + # extended-statistics: no + + # number of threads to create. 1 disables threading. + # num-threads: 1 + + # specify the interfaces to answer queries from by ip-address. + # The default is to listen to localhost (127.0.0.1 and ::1). + # specify 0.0.0.0 and ::0 to bind to all available interfaces. + # specify every interface[@port] on a new 'interface:' labelled line. + # The listen interfaces are not changed on reload, only on restart. + # interface: 192.0.2.153 + # interface: 192.0.2.154 + # interface: 192.0.2.154@5003 + # interface: 2001:DB8::5 + + # enable this feature to copy the source address of queries to reply. + # Socket options are not supported on all platforms. experimental. + # interface-automatic: no + + # port to answer queries from + # port: 53 + + # specify the interfaces to send outgoing queries to authoritative + # server from by ip-address. If none, the default (all) interface + # is used. Specify every interface on a 'outgoing-interface:' line. + # outgoing-interface: 192.0.2.153 + # outgoing-interface: 2001:DB8::5 + # outgoing-interface: 2001:DB8::6 + + # number of ports to allocate per thread, determines the size of the + # port range that can be open simultaneously. About double the + # num-queries-per-thread, or, use as many as the OS will allow you. + # outgoing-range: 4096 + + # permit unbound to use this port number or port range for + # making outgoing queries, using an outgoing interface. + # outgoing-port-permit: 32768 + + # deny unbound the use this of port number or port range for + # making outgoing queries, using an outgoing interface. + # Use this to make sure unbound does not grab a UDP port that some + # other server on this computer needs. The default is to avoid + # IANA-assigned port numbers. + # If multiple outgoing-port-permit and outgoing-port-avoid options + # are present, they are processed in order. + # outgoing-port-avoid: "3200-3208" + + # number of outgoing simultaneous tcp buffers to hold per thread. + # outgoing-num-tcp: 10 + + # number of incoming simultaneous tcp buffers to hold per thread. + # incoming-num-tcp: 10 + + # buffer size for UDP port 53 incoming (SO_RCVBUF socket option). + # 0 is system default. Use 4m to catch query spikes for busy servers. + # so-rcvbuf: 0 + + # buffer size for UDP port 53 outgoing (SO_SNDBUF socket option). + # 0 is system default. Use 4m to handle spikes on very busy servers. + # so-sndbuf: 0 + + # use SO_REUSEPORT to distribute queries over threads. + # so-reuseport: no + + # EDNS reassembly buffer to advertise to UDP peers (the actual buffer + # is set with msg-buffer-size). 1480 can solve fragmentation (timeouts). + # edns-buffer-size: 4096 + + # Maximum UDP response size (not applied to TCP response). + # Suggested values are 512 to 4096. Default is 4096. 65536 disables it. + # max-udp-size: 4096 + + # buffer size for handling DNS data. No messages larger than this + # size can be sent or received, by UDP or TCP. In bytes. + # msg-buffer-size: 65552 + + # the amount of memory to use for the message cache. + # plain value in bytes or you can append k, m or G. default is "4Mb". + # msg-cache-size: 4m + + # the number of slabs to use for the message cache. + # the number of slabs must be a power of 2. + # more slabs reduce lock contention, but fragment memory usage. + # msg-cache-slabs: 4 + + # the number of queries that a thread gets to service. + # num-queries-per-thread: 1024 + + # if very busy, 50% queries run to completion, 50% get timeout in msec + # jostle-timeout: 200 + + # msec to wait before close of port on timeout UDP. 0 disables. + # delay-close: 0 + + # the amount of memory to use for the RRset cache. + # plain value in bytes or you can append k, m or G. default is "4Mb". + # rrset-cache-size: 4m + + # the number of slabs to use for the RRset cache. + # the number of slabs must be a power of 2. + # more slabs reduce lock contention, but fragment memory usage. + # rrset-cache-slabs: 4 + + # the time to live (TTL) value lower bound, in seconds. Default 0. + # If more than an hour could easily give trouble due to stale data. + # cache-min-ttl: 0 + + # the time to live (TTL) value cap for RRsets and messages in the + # cache. Items are not cached for longer. In seconds. + # cache-max-ttl: 86400 + + # the time to live (TTL) value for cached roundtrip times, lameness and + # EDNS version information for hosts. In seconds. + # infra-host-ttl: 900 + + # the number of slabs to use for the Infrastructure cache. + # the number of slabs must be a power of 2. + # more slabs reduce lock contention, but fragment memory usage. + # infra-cache-slabs: 4 + + # the maximum number of hosts that are cached (roundtrip, EDNS, lame). + # infra-cache-numhosts: 10000 + + # Enable IPv4, "yes" or "no". + # do-ip4: yes + + # Enable IPv6, "yes" or "no". + # do-ip6: yes + + # Enable UDP, "yes" or "no". + # do-udp: yes + + # Enable TCP, "yes" or "no". + # do-tcp: yes + + # upstream connections use TCP only (and no UDP), "yes" or "no" + # useful for tunneling scenarios, default no. + # tcp-upstream: no + + # Detach from the terminal, run in background, "yes" or "no". + # do-daemonize: yes + + # control which clients are allowed to make (recursive) queries + # to this server. Specify classless netblocks with /size and action. + # By default everything is refused, except for localhost. + # Choose deny (drop message), refuse (polite error reply), + # allow (recursive ok), allow_snoop (recursive and nonrecursive ok) + # deny_non_local (drop queries unless can be answered from local-data) + # refuse_non_local (like deny_non_local but polite error reply). + # access-control: 0.0.0.0/0 refuse + # access-control: 127.0.0.0/8 allow + # access-control: ::0/0 refuse + # access-control: ::1 allow + # access-control: ::ffff:127.0.0.1 allow + + # if given, a chroot(2) is done to the given directory. + # i.e. you can chroot to the working directory, for example, + # for extra security, but make sure all files are in that directory. + # + # If chroot is enabled, you should pass the configfile (from the + # commandline) as a full path from the original root. After the + # chroot has been performed the now defunct portion of the config + # file path is removed to be able to reread the config after a reload. + # + # All other file paths (working dir, logfile, roothints, and + # key files) can be specified in several ways: + # o as an absolute path relative to the new root. + # o as a relative path to the working directory. + # o as an absolute path relative to the original root. + # In the last case the path is adjusted to remove the unused portion. + # + # The pid file can be absolute and outside of the chroot, it is + # written just prior to performing the chroot and dropping permissions. + # + # Additionally, unbound may need to access /dev/random (for entropy). + # How to do this is specific to your OS. + # + # If you give "" no chroot is performed. The path must not end in a /. + # chroot: "/var/unbound" + + # if given, user privileges are dropped (after binding port), + # and the given username is assumed. Default is user "unbound". + # If you give "" no privileges are dropped. + # username: "unbound" + + # the working directory. The relative files in this config are + # relative to this directory. If you give "" the working directory + # is not changed. + # directory: "/var/unbound" + + # the log file, "" means log to stderr. + # Use of this option sets use-syslog to "no". + # logfile: "" + + # Log to syslog(3) if yes. The log facility LOG_DAEMON is used to + # log to, with identity "unbound". If yes, it overrides the logfile. + # use-syslog: yes + + # print UTC timestamp in ascii to logfile, default is epoch in seconds. + # log-time-ascii: no + + # print one line with time, IP, name, type, class for every query. + # log-queries: no + + # the pid file. Can be an absolute path outside of chroot/work dir. + # pidfile: "/var/unbound/unbound.pid" + + # file to read root hints from. + # get one from ftp://FTP.INTERNIC.NET/domain/named.cache + # root-hints: "" + + # enable to not answer id.server and hostname.bind queries. + # hide-identity: no + + # enable to not answer version.server and version.bind queries. + # hide-version: no + + # the identity to report. Leave "" or default to return hostname. + # identity: "" + + # the version to report. Leave "" or default to return package version. + # version: "" + + # the target fetch policy. + # series of integers describing the policy per dependency depth. + # The number of values in the list determines the maximum dependency + # depth the recursor will pursue before giving up. Each integer means: + # -1 : fetch all targets opportunistically, + # 0: fetch on demand, + # positive value: fetch that many targets opportunistically. + # Enclose the list of numbers between quotes (""). + # target-fetch-policy: "3 2 1 0 0" + + # Harden against very small EDNS buffer sizes. + # harden-short-bufsize: no + + # Harden against unseemly large queries. + # harden-large-queries: no + + # Harden against out of zone rrsets, to avoid spoofing attempts. + # harden-glue: yes + + # Harden against receiving dnssec-stripped data. If you turn it + # off, failing to validate dnskey data for a trustanchor will + # trigger insecure mode for that zone (like without a trustanchor). + # Default on, which insists on dnssec data for trust-anchored zones. + # harden-dnssec-stripped: yes + + # Harden against queries that fall under dnssec-signed nxdomain names. + # harden-below-nxdomain: no + + # Harden the referral path by performing additional queries for + # infrastructure data. Validates the replies (if possible). + # Default off, because the lookups burden the server. Experimental + # implementation of draft-wijngaards-dnsext-resolver-side-mitigation. + # harden-referral-path: no + + # Use 0x20-encoded random bits in the query to foil spoof attempts. + # This feature is an experimental implementation of draft dns-0x20. + # use-caps-for-id: no + + # Enforce privacy of these addresses. Strips them away from answers. + # It may cause DNSSEC validation to additionally mark it as bogus. + # Protects against 'DNS Rebinding' (uses browser as network proxy). + # Only 'private-domain' and 'local-data' names are allowed to have + # these private addresses. No default. + # private-address: 10.0.0.0/8 + # private-address: 172.16.0.0/12 + # private-address: 192.168.0.0/16 + # private-address: 169.254.0.0/16 + # private-address: fd00::/8 + # private-address: fe80::/10 + + # Allow the domain (and its subdomains) to contain private addresses. + # local-data statements are allowed to contain private addresses too. + # private-domain: "example.com" + + # If nonzero, unwanted replies are not only reported in statistics, + # but also a running total is kept per thread. If it reaches the + # threshold, a warning is printed and a defensive action is taken, + # the cache is cleared to flush potential poison out of it. + # A suggested value is 10000000, the default is 0 (turned off). + # unwanted-reply-threshold: 0 + + # Do not query the following addresses. No DNS queries are sent there. + # List one address per entry. List classless netblocks with /size, + # do-not-query-address: 127.0.0.1/8 + # do-not-query-address: ::1 + + # if yes, the above default do-not-query-address entries are present. + # if no, localhost can be queried (for testing and debugging). + # do-not-query-localhost: yes + + # if yes, perform prefetching of almost expired message cache entries. + # prefetch: no + + # if yes, perform key lookups adjacent to normal lookups. + # prefetch-key: no + + # if yes, Unbound rotates RRSet order in response. + # rrset-roundrobin: no + + # if yes, Unbound doesn't insert authority/additional sections + # into response messages when those sections are not required. + # minimal-responses: no + + # module configuration of the server. A string with identifiers + # separated by spaces. Syntax: "[dns64] [validator] iterator" + # module-config: "validator iterator" + + # File with trusted keys, kept uptodate using RFC5011 probes, + # initial file like trust-anchor-file, then it stores metadata. + # Use several entries, one per domain name, to track multiple zones. + # + # If you want to perform DNSSEC validation, run unbound-anchor before + # you start unbound (i.e. in the system boot scripts). And enable: + # Please note usage of unbound-anchor root anchor is at your own risk + # and under the terms of our LICENSE (see that file in the source). + # auto-trust-anchor-file: "/var/unbound/root.key" + + # File with DLV trusted keys. Same format as trust-anchor-file. + # There can be only one DLV configured, it is trusted from root down. + # Download http://ftp.isc.org/www/dlv/dlv.isc.org.key + # dlv-anchor-file: "dlv.isc.org.key" + + # File with trusted keys for validation. Specify more than one file + # with several entries, one file per entry. + # Zone file format, with DS and DNSKEY entries. + # Note this gets out of date, use auto-trust-anchor-file please. + # trust-anchor-file: "" + + # Trusted key for validation. DS or DNSKEY. specify the RR on a + # single line, surrounded by "". TTL is ignored. class is IN default. + # Note this gets out of date, use auto-trust-anchor-file please. + # (These examples are from August 2007 and may not be valid anymore). + # trust-anchor: "nlnetlabs.nl. DNSKEY 257 3 5 AQPzzTWMz8qSWIQlfRnPckx2BiVmkVN6LPupO3mbz7FhLSnm26n6iG9N Lby97Ji453aWZY3M5/xJBSOS2vWtco2t8C0+xeO1bc/d6ZTy32DHchpW 6rDH1vp86Ll+ha0tmwyy9QP7y2bVw5zSbFCrefk8qCUBgfHm9bHzMG1U BYtEIQ==" + # trust-anchor: "jelte.nlnetlabs.nl. DS 42860 5 1 14D739EB566D2B1A5E216A0BA4D17FA9B038BE4A" + + # File with trusted keys for validation. Specify more than one file + # with several entries, one file per entry. Like trust-anchor-file + # but has a different file format. Format is BIND-9 style format, + # the trusted-keys { name flag proto algo "key"; }; clauses are read. + # you need external update procedures to track changes in keys. + # trusted-keys-file: "" + + # Ignore chain of trust. Domain is treated as insecure. + # domain-insecure: "example.com" + + # Override the date for validation with a specific fixed date. + # Do not set this unless you are debugging signature inception + # and expiration. "" or "0" turns the feature off. -1 ignores date. + # val-override-date: "" + + # The time to live for bogus data, rrsets and messages. This avoids + # some of the revalidation, until the time interval expires. in secs. + # val-bogus-ttl: 60 + + # The signature inception and expiration dates are allowed to be off + # by 10% of the signature lifetime (expir-incep) from our local clock. + # This leeway is capped with a minimum and a maximum. In seconds. + # val-sig-skew-min: 3600 + # val-sig-skew-max: 86400 + + # Should additional section of secure message also be kept clean of + # unsecure data. Useful to shield the users of this validator from + # potential bogus data in the additional section. All unsigned data + # in the additional section is removed from secure messages. + # val-clean-additional: yes + + # Turn permissive mode on to permit bogus messages. Thus, messages + # for which security checks failed will be returned to clients, + # instead of SERVFAIL. It still performs the security checks, which + # result in interesting log files and possibly the AD bit in + # replies if the message is found secure. The default is off. + # val-permissive-mode: no + + # Ignore the CD flag in incoming queries and refuse them bogus data. + # Enable it if the only clients of unbound are legacy servers (w2008) + # that set CD but cannot validate themselves. + # ignore-cd-flag: no + + # Have the validator log failed validations for your diagnosis. + # 0: off. 1: A line per failed user query. 2: With reason and bad IP. + # val-log-level: 0 + + # It is possible to configure NSEC3 maximum iteration counts per + # keysize. Keep this table very short, as linear search is done. + # A message with an NSEC3 with larger count is marked insecure. + # List in ascending order the keysize and count values. + # val-nsec3-keysize-iterations: "1024 150 2048 500 4096 2500" + + # instruct the auto-trust-anchor-file probing to add anchors after ttl. + # add-holddown: 2592000 # 30 days + + # instruct the auto-trust-anchor-file probing to del anchors after ttl. + # del-holddown: 2592000 # 30 days + + # auto-trust-anchor-file probing removes missing anchors after ttl. + # If the value 0 is given, missing anchors are not removed. + # keep-missing: 31622400 # 366 days + + # the amount of memory to use for the key cache. + # plain value in bytes or you can append k, m or G. default is "4Mb". + # key-cache-size: 4m + + # the number of slabs to use for the key cache. + # the number of slabs must be a power of 2. + # more slabs reduce lock contention, but fragment memory usage. + # key-cache-slabs: 4 + + # the amount of memory to use for the negative cache (used for DLV). + # plain value in bytes or you can append k, m or G. default is "1Mb". + # neg-cache-size: 1m + + # By default, for a number of zones a small default 'nothing here' + # reply is built-in. Query traffic is thus blocked. If you + # wish to serve such zone you can unblock them by uncommenting one + # of the nodefault statements below. + # You may also have to use domain-insecure: zone to make DNSSEC work, + # unless you have your own trust anchors for this zone. + # local-zone: "localhost." nodefault + # local-zone: "127.in-addr.arpa." nodefault + # local-zone: "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." nodefault + # local-zone: "10.in-addr.arpa." nodefault + # local-zone: "16.172.in-addr.arpa." nodefault + # local-zone: "17.172.in-addr.arpa." nodefault + # local-zone: "18.172.in-addr.arpa." nodefault + # local-zone: "19.172.in-addr.arpa." nodefault + # local-zone: "20.172.in-addr.arpa." nodefault + # local-zone: "21.172.in-addr.arpa." nodefault + # local-zone: "22.172.in-addr.arpa." nodefault + # local-zone: "23.172.in-addr.arpa." nodefault + # local-zone: "24.172.in-addr.arpa." nodefault + # local-zone: "25.172.in-addr.arpa." nodefault + # local-zone: "26.172.in-addr.arpa." nodefault + # local-zone: "27.172.in-addr.arpa." nodefault + # local-zone: "28.172.in-addr.arpa." nodefault + # local-zone: "29.172.in-addr.arpa." nodefault + # local-zone: "30.172.in-addr.arpa." nodefault + # local-zone: "31.172.in-addr.arpa." nodefault + # local-zone: "168.192.in-addr.arpa." nodefault + # local-zone: "0.in-addr.arpa." nodefault + # local-zone: "254.169.in-addr.arpa." nodefault + # local-zone: "2.0.192.in-addr.arpa." nodefault + # local-zone: "100.51.198.in-addr.arpa." nodefault + # local-zone: "113.0.203.in-addr.arpa." nodefault + # local-zone: "255.255.255.255.in-addr.arpa." nodefault + # local-zone: "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." nodefault + # local-zone: "d.f.ip6.arpa." nodefault + # local-zone: "8.e.f.ip6.arpa." nodefault + # local-zone: "9.e.f.ip6.arpa." nodefault + # local-zone: "a.e.f.ip6.arpa." nodefault + # local-zone: "b.e.f.ip6.arpa." nodefault + # local-zone: "8.b.d.0.1.0.0.2.ip6.arpa." nodefault + # And for 64.100.in-addr.arpa. to 127.100.in-addr.arpa. + + # if unbound is running service for the local host then it is useful + # to perform lan-wide lookups to the upstream, and unblock the + # long list of local-zones above. If this unbound is a dns server + # for a network of computers, disabled is better and stops information + # leakage of local lan information. + # unblock-lan-zones: no + + # a number of locally served zones can be configured. + # local-zone: + # local-data: "" + # o deny serves local data (if any), else, drops queries. + # o refuse serves local data (if any), else, replies with error. + # o static serves local data, else, nxdomain or nodata answer. + # o transparent gives local data, but resolves normally for other names + # o redirect serves the zone data for any subdomain in the zone. + # o nodefault can be used to normally resolve AS112 zones. + # o typetransparent resolves normally for other types and other names + # + # defaults are localhost address, reverse for 127.0.0.1 and ::1 + # and nxdomain for AS112 zones. If you configure one of these zones + # the default content is omitted, or you can omit it with 'nodefault'. + # + # If you configure local-data without specifying local-zone, by + # default a transparent local-zone is created for the data. + # + # You can add locally served data with + # local-zone: "local." static + # local-data: "mycomputer.local. IN A 192.0.2.51" + # local-data: 'mytext.local TXT "content of text record"' + # + # You can override certain queries with + # local-data: "adserver.example.com A 127.0.0.1" + # + # You can redirect a domain to a fixed address with + # (this makes example.com, www.example.com, etc, all go to 192.0.2.3) + # local-zone: "example.com" redirect + # local-data: "example.com A 192.0.2.3" + # + # Shorthand to make PTR records, "IPv4 name" or "IPv6 name". + # You can also add PTR records using local-data directly, but then + # you need to do the reverse notation yourself. + # local-data-ptr: "192.0.2.3 www.example.com" + + # service clients over SSL (on the TCP sockets), with plain DNS inside + # the SSL stream. Give the certificate to use and private key. + # default is "" (disabled). requires restart to take effect. + # ssl-service-key: "path/to/privatekeyfile.key" + # ssl-service-pem: "path/to/publiccertfile.pem" + # ssl-port: 443 + + # request upstream over SSL (with plain DNS inside the SSL stream). + # Default is no. Can be turned on and off with unbound-control. + # ssl-upstream: no + + # DNS64 prefix. Must be specified when DNS64 is use. + # Enable dns64 in module-config. Used to synthesize IPv6 from IPv4. + # dns64-prefix: 64:ff9b::0/96 + +# Python config section. To enable: +# o use --with-pythonmodule to configure before compiling. +# o list python in the module-config string (above) to enable. +# o and give a python-script to run. +python: + # Script file to load + # python-script: "/var/unbound/ubmodule-tst.py" + +# Remote control config section. +remote-control: + # Enable remote control with unbound-control(8) here. + # set up the keys and certificates with unbound-control-setup. + # control-enable: no + + # what interfaces are listened to for remote control. + # give 0.0.0.0 and ::0 to listen to all interfaces. + # control-interface: 127.0.0.1 + # control-interface: ::1 + + # port number for remote control operations. + # control-port: 8953 + + # unbound server key file. + # server-key-file: "/var/unbound/unbound_server.key" + + # unbound server certificate file. + # server-cert-file: "/var/unbound/unbound_server.pem" + + # unbound-control key file. + # control-key-file: "/var/unbound/unbound_control.key" + + # unbound-control certificate file. + # control-cert-file: "/var/unbound/unbound_control.pem" + +# Stub zones. +# Create entries like below, to make all queries for 'example.com' and +# 'example.org' go to the given list of nameservers. list zero or more +# nameservers by hostname or by ipaddress. If you set stub-prime to yes, +# the list is treated as priming hints (default is no). +# With stub-first yes, it attempts without the stub if it fails. +# stub-zone: +# name: "example.com" +# stub-addr: 192.0.2.68 +# stub-prime: no +# stub-first: no +# stub-zone: +# name: "example.org" +# stub-host: ns.example.com. + +# Forward zones +# Create entries like below, to make all queries for 'example.com' and +# 'example.org' go to the given list of servers. These servers have to handle +# recursion to other nameservers. List zero or more nameservers by hostname +# or by ipaddress. Use an entry with name "." to forward all queries. +# If you enable forward-first, it attempts without the forward if it fails. +# forward-zone: +# name: "example.com" +# forward-addr: 192.0.2.68 +# forward-addr: 192.0.2.73@5355 # forward to port 5355. +# forward-first: no +# forward-zone: +# name: "example.org" +# forward-host: fwd.example.com Added: head/contrib/unbound/doc/unbound-host.1 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/doc/unbound-host.1 Sat Jan 3 11:52:43 2015 (r276612) @@ -0,0 +1,116 @@ +.TH "unbound\-host" "1" "Dec 8, 2014" "NLnet Labs" "unbound 1.5.1" +.\" +.\" unbound-host.1 -- unbound DNS lookup utility +.\" +.\" Copyright (c) 2007, NLnet Labs. All rights reserved. +.\" +.\" See LICENSE for the license. +.\" +.\" +.SH "NAME" +.B unbound\-host +\- unbound DNS lookup utility +.SH "SYNOPSIS" +.B unbound\-host +.RB [ \-vdhr46D ] +.RB [ \-c +.IR class ] +.RB [ \-t +.IR type ] +.I hostname +.RB [ \-y +.IR key ] +.RB [ \-f +.IR keyfile ] +.RB [ \-F +.IR namedkeyfile ] +.RB [ \-C +.IR configfile ] +.SH "DESCRIPTION" +.B Unbound\-host +uses the unbound validating resolver to query for the hostname and display +results. With the \fB\-v\fR option it displays validation +status: secure, insecure, bogus (security failure). +.P +By default it reads no configuration file whatsoever. It attempts to reach +the internet root servers. With \fB\-C\fR an unbound config file and with +\fB\-r\fR resolv.conf can be read. +.P +The available options are: +.TP +.I hostname +This name is resolved (looked up in the DNS). +If a IPv4 or IPv6 address is given, a reverse lookup is performed. +.TP +.B \-h +Show the version and commandline option help. +.TP +.B \-v +Enable verbose output and it shows validation results, on every line. +Secure means that the NXDOMAIN (no such domain name), nodata (no such data) +or positive data response validated correctly with one of the keys. +Insecure means that that domain name has no security set up for it. +Bogus (security failure) means that the response failed one or more checks, +it is likely wrong, outdated, tampered with, or broken. +.TP +.B \-d +Enable debug output to stderr. One \-d shows what the resolver and validator +are doing and may tell you what is going on. More times, \-d \-d, gives a +lot of output, with every packet sent and received. +.TP +.B \-c \fIclass +Specify the class to lookup for, the default is IN the internet class. +.TP +.B \-t \fItype +Specify the type of data to lookup. The default looks for IPv4, IPv6 and +mail handler data, or domain name pointers for reverse queries. +.TP +.B \-y \fIkey +Specify a public key to use as trust anchor. This is the base for a chain +of trust that is built up from the trust anchor to the response, in order +to validate the response message. Can be given as a DS or DNSKEY record. +For example \-y "example.com DS 31560 5 1 1CFED84787E6E19CCF9372C1187325972FE546CD". +.TP +.B \-D +Enables DNSSEC validation. Reads the root anchor from the default configured +root anchor at the default location, \fI/var/unbound/root.key\fR. +.TP +.B \-f \fIkeyfile +Reads keys from a file. Every line has a DS or DNSKEY record, in the format +as for \-y. The zone file format, the same as dig and drill produce. +.TP +.B \-F \fInamedkeyfile +Reads keys from a BIND\-style named.conf file. Only the trusted\-key {}; entries +are read. +.TP +.B \-C \fIconfigfile +Uses the specified unbound.conf to prime +.IR libunbound (3). +.TP +.B \-r +Read /etc/resolv.conf, and use the forward DNS servers from there (those could +have been set by DHCP). More info in +.IR resolv.conf (5). +Breaks validation if those servers do not support DNSSEC. +.TP +.B \-4 +Use solely the IPv4 network for sending packets. +.TP +.B \-6 +Use solely the IPv6 network for sending packets. +.SH "EXAMPLES" +Some examples of use. The keys shown below are fakes, thus a security failure +is encountered. +.P +$ unbound\-host www.example.com +.P +$ unbound\-host \-v \-y "example.com DS 31560 5 1 1CFED84787E6E19CCF9372C1187325972FE546CD" www.example.com +.P +$ unbound\-host \-v \-y "example.com DS 31560 5 1 1CFED84787E6E19CCF9372C1187325972FE546CD" 192.0.2.153 +.SH "EXIT CODE" +The unbound\-host program exits with status code 1 on error, +0 on no error. The data may not be available on exit code 0, exit code 1 +means the lookup encountered a fatal error. +.SH "SEE ALSO" +\fIunbound.conf\fR(5), +\fIunbound\fR(8). From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 13:08:11 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 62012645; Sat, 3 Jan 2015 13:08:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4325966358; Sat, 3 Jan 2015 13:08:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03D8B5V037956; Sat, 3 Jan 2015 13:08:11 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03D89Zl037944; Sat, 3 Jan 2015 13:08:09 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201501031308.t03D89Zl037944@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 3 Jan 2015 13:08:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276613 - in stable/10: sys/cam/ctl sys/dev/iscsi usr.sbin/ctld usr.sbin/iscsid X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 13:08:11 -0000 Author: mav Date: Sat Jan 3 13:08:08 2015 New Revision: 276613 URL: https://svnweb.freebsd.org/changeset/base/276613 Log: MFC r275864: Make sequence numbers checks more strict. While we don't support MCS, hole in received sequence numbers may mean only PDU loss. While we don't support lost PDU recovery, terminate the connection to avoid stuck commands. While there, improve handling of sequence numbers wrap after 2^32 PDUs. Modified: stable/10/sys/cam/ctl/ctl_frontend_iscsi.c stable/10/sys/cam/ctl/ctl_frontend_iscsi.h stable/10/sys/dev/iscsi/iscsi.c stable/10/sys/dev/iscsi/iscsi_proto.h stable/10/usr.sbin/ctld/discovery.c stable/10/usr.sbin/ctld/login.c stable/10/usr.sbin/iscsid/discovery.c stable/10/usr.sbin/iscsid/login.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl_frontend_iscsi.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend_iscsi.c Sat Jan 3 11:52:43 2015 (r276612) +++ stable/10/sys/cam/ctl/ctl_frontend_iscsi.c Sat Jan 3 13:08:08 2015 (r276613) @@ -237,19 +237,34 @@ cfiscsi_pdu_update_cmdsn(const struct ic } #endif - /* - * The target MUST silently ignore any non-immediate command outside - * of this range. - */ - if (cmdsn < cs->cs_cmdsn || cmdsn > cs->cs_cmdsn + maxcmdsn_delta) { - CFISCSI_SESSION_UNLOCK(cs); - CFISCSI_SESSION_WARN(cs, "received PDU with CmdSN %d, " - "while expected CmdSN was %d", cmdsn, cs->cs_cmdsn); - return (true); - } + if ((request->ip_bhs->bhs_opcode & ISCSI_BHS_OPCODE_IMMEDIATE) == 0) { + /* + * The target MUST silently ignore any non-immediate command + * outside of this range. + */ + if (ISCSI_SNLT(cmdsn, cs->cs_cmdsn) || + ISCSI_SNGT(cmdsn, cs->cs_cmdsn + maxcmdsn_delta)) { + CFISCSI_SESSION_UNLOCK(cs); + CFISCSI_SESSION_WARN(cs, "received PDU with CmdSN %u, " + "while expected %u", cmdsn, cs->cs_cmdsn); + return (true); + } - if ((request->ip_bhs->bhs_opcode & ISCSI_BHS_OPCODE_IMMEDIATE) == 0) + /* + * We don't support multiple connections now, so any + * discontinuity in CmdSN means lost PDUs. Since we don't + * support PDU retransmission -- terminate the connection. + */ + if (cmdsn != cs->cs_cmdsn) { + CFISCSI_SESSION_UNLOCK(cs); + CFISCSI_SESSION_WARN(cs, "received PDU with CmdSN %u, " + "while expected %u; dropping connection", + cmdsn, cs->cs_cmdsn); + cfiscsi_session_terminate(cs); + return (true); + } cs->cs_cmdsn++; + } CFISCSI_SESSION_UNLOCK(cs); @@ -896,6 +911,16 @@ cfiscsi_pdu_handle_data_out(struct icl_p return; } + if (cdw->cdw_datasn != ntohl(bhsdo->bhsdo_datasn)) { + CFISCSI_SESSION_WARN(cs, "received Data-Out PDU with " + "DataSN %u, while expected %u; dropping connection", + ntohl(bhsdo->bhsdo_datasn), cdw->cdw_datasn); + icl_pdu_free(request); + cfiscsi_session_terminate(cs); + return; + } + cdw->cdw_datasn++; + io = cdw->cdw_ctl_io; KASSERT((io->io_hdr.flags & CTL_FLAG_DATA_MASK) != CTL_FLAG_DATA_IN, ("CTL_FLAG_DATA_IN")); @@ -2654,6 +2679,7 @@ cfiscsi_datamove_out(union ctl_io *io) cdw->cdw_target_transfer_tag = target_transfer_tag; cdw->cdw_initiator_task_tag = bhssc->bhssc_initiator_task_tag; cdw->cdw_r2t_end = io->scsiio.kern_data_len; + cdw->cdw_datasn = 0; /* Set initial data pointer for the CDW respecting ext_data_filled. */ if (io->scsiio.kern_sg_entries > 0) { Modified: stable/10/sys/cam/ctl/ctl_frontend_iscsi.h ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend_iscsi.h Sat Jan 3 11:52:43 2015 (r276612) +++ stable/10/sys/cam/ctl/ctl_frontend_iscsi.h Sat Jan 3 13:08:08 2015 (r276613) @@ -58,6 +58,7 @@ struct cfiscsi_data_wait { char *cdw_sg_addr; size_t cdw_sg_len; uint32_t cdw_r2t_end; + uint32_t cdw_datasn; }; #define CFISCSI_SESSION_STATE_INVALID 0 Modified: stable/10/sys/dev/iscsi/iscsi.c ============================================================================== --- stable/10/sys/dev/iscsi/iscsi.c Sat Jan 3 11:52:43 2015 (r276612) +++ stable/10/sys/dev/iscsi/iscsi.c Sat Jan 3 13:08:08 2015 (r276613) @@ -197,7 +197,7 @@ iscsi_pdu_prepare(struct icl_pdu *reques * Data-Out PDU does not contain CmdSN. */ if (bhssc->bhssc_opcode != ISCSI_BHS_OPCODE_SCSI_DATA_OUT) { - if (is->is_cmdsn > is->is_maxcmdsn && + if (ISCSI_SNGT(is->is_cmdsn, is->is_maxcmdsn) && (bhssc->bhssc_opcode & ISCSI_BHS_OPCODE_IMMEDIATE) == 0) { /* * Current MaxCmdSN prevents us from sending any more @@ -206,8 +206,10 @@ iscsi_pdu_prepare(struct icl_pdu *reques * or by maintenance thread. */ #if 0 - ISCSI_SESSION_DEBUG(is, "postponing send, CmdSN %d, ExpCmdSN %d, MaxCmdSN %d, opcode 0x%x", - is->is_cmdsn, is->is_expcmdsn, is->is_maxcmdsn, bhssc->bhssc_opcode); + ISCSI_SESSION_DEBUG(is, "postponing send, CmdSN %u, " + "ExpCmdSN %u, MaxCmdSN %u, opcode 0x%x", + is->is_cmdsn, is->is_expcmdsn, is->is_maxcmdsn, + bhssc->bhssc_opcode); #endif return (true); } @@ -616,7 +618,7 @@ iscsi_pdu_update_statsn(const struct icl { const struct iscsi_bhs_data_in *bhsdi; struct iscsi_session *is; - uint32_t expcmdsn, maxcmdsn; + uint32_t expcmdsn, maxcmdsn, statsn; is = PDU_SESSION(response); @@ -635,26 +637,27 @@ iscsi_pdu_update_statsn(const struct icl */ if (bhsdi->bhsdi_opcode != ISCSI_BHS_OPCODE_SCSI_DATA_IN || (bhsdi->bhsdi_flags & BHSDI_FLAGS_S) != 0) { - if (ntohl(bhsdi->bhsdi_statsn) < is->is_statsn) { - ISCSI_SESSION_WARN(is, - "PDU StatSN %d >= session StatSN %d, opcode 0x%x", - is->is_statsn, ntohl(bhsdi->bhsdi_statsn), - bhsdi->bhsdi_opcode); + statsn = ntohl(bhsdi->bhsdi_statsn); + if (statsn != is->is_statsn && statsn != (is->is_statsn + 1)) { + /* XXX: This is normal situation for MCS */ + ISCSI_SESSION_WARN(is, "PDU 0x%x StatSN %u != " + "session ExpStatSN %u (or + 1); reconnecting", + bhsdi->bhsdi_opcode, statsn, is->is_statsn); + iscsi_session_reconnect(is); } - is->is_statsn = ntohl(bhsdi->bhsdi_statsn); + if (ISCSI_SNGT(statsn, is->is_statsn)) + is->is_statsn = statsn; } expcmdsn = ntohl(bhsdi->bhsdi_expcmdsn); maxcmdsn = ntohl(bhsdi->bhsdi_maxcmdsn); - /* - * XXX: Compare using Serial Arithmetic Sense. - */ - if (maxcmdsn + 1 < expcmdsn) { - ISCSI_SESSION_DEBUG(is, "PDU MaxCmdSN %d + 1 < PDU ExpCmdSN %d; ignoring", + if (ISCSI_SNLT(maxcmdsn + 1, expcmdsn)) { + ISCSI_SESSION_DEBUG(is, + "PDU MaxCmdSN %u + 1 < PDU ExpCmdSN %u; ignoring", maxcmdsn, expcmdsn); } else { - if (maxcmdsn > is->is_maxcmdsn) { + if (ISCSI_SNGT(maxcmdsn, is->is_maxcmdsn)) { is->is_maxcmdsn = maxcmdsn; /* @@ -663,15 +666,19 @@ iscsi_pdu_update_statsn(const struct icl */ if (!STAILQ_EMPTY(&is->is_postponed)) cv_signal(&is->is_maintenance_cv); - } else if (maxcmdsn < is->is_maxcmdsn) { - ISCSI_SESSION_DEBUG(is, "PDU MaxCmdSN %d < session MaxCmdSN %d; ignoring", + } else if (ISCSI_SNLT(maxcmdsn, is->is_maxcmdsn)) { + /* XXX: This is normal situation for MCS */ + ISCSI_SESSION_DEBUG(is, + "PDU MaxCmdSN %u < session MaxCmdSN %u; ignoring", maxcmdsn, is->is_maxcmdsn); } - if (expcmdsn > is->is_expcmdsn) { + if (ISCSI_SNGT(expcmdsn, is->is_expcmdsn)) { is->is_expcmdsn = expcmdsn; - } else if (expcmdsn < is->is_expcmdsn) { - ISCSI_SESSION_DEBUG(is, "PDU ExpCmdSN %d < session ExpCmdSN %d; ignoring", + } else if (ISCSI_SNLT(expcmdsn, is->is_expcmdsn)) { + /* XXX: This is normal situation for MCS */ + ISCSI_SESSION_DEBUG(is, + "PDU ExpCmdSN %u < session ExpCmdSN %u; ignoring", expcmdsn, is->is_expcmdsn); } } Modified: stable/10/sys/dev/iscsi/iscsi_proto.h ============================================================================== --- stable/10/sys/dev/iscsi/iscsi_proto.h Sat Jan 3 11:52:43 2015 (r276612) +++ stable/10/sys/dev/iscsi/iscsi_proto.h Sat Jan 3 13:08:08 2015 (r276613) @@ -38,6 +38,9 @@ #define __CTASSERT(x, y) typedef char __assert_ ## y [(x) ? 1 : -1] #endif +#define ISCSI_SNGT(x, y) ((int32_t)(x) - (int32_t)(y) > 0) +#define ISCSI_SNLT(x, y) ((int32_t)(x) - (int32_t)(y) < 0) + #define ISCSI_BHS_SIZE 48 #define ISCSI_HEADER_DIGEST_SIZE 4 #define ISCSI_DATA_DIGEST_SIZE 4 Modified: stable/10/usr.sbin/ctld/discovery.c ============================================================================== --- stable/10/usr.sbin/ctld/discovery.c Sat Jan 3 11:52:43 2015 (r276612) +++ stable/10/usr.sbin/ctld/discovery.c Sat Jan 3 13:08:08 2015 (r276613) @@ -65,13 +65,13 @@ text_receive(struct connection *conn) */ if ((bhstr->bhstr_flags & BHSTR_FLAGS_CONTINUE) != 0) log_errx(1, "received Text PDU with unsupported \"C\" flag"); - if (ntohl(bhstr->bhstr_cmdsn) < conn->conn_cmdsn) { + if (ISCSI_SNLT(ntohl(bhstr->bhstr_cmdsn), conn->conn_cmdsn)) { log_errx(1, "received Text PDU with decreasing CmdSN: " - "was %d, is %d", conn->conn_cmdsn, ntohl(bhstr->bhstr_cmdsn)); + "was %u, is %u", conn->conn_cmdsn, ntohl(bhstr->bhstr_cmdsn)); } if (ntohl(bhstr->bhstr_expstatsn) != conn->conn_statsn) { log_errx(1, "received Text PDU with wrong StatSN: " - "is %d, should be %d", ntohl(bhstr->bhstr_expstatsn), + "is %u, should be %u", ntohl(bhstr->bhstr_expstatsn), conn->conn_statsn); } conn->conn_cmdsn = ntohl(bhstr->bhstr_cmdsn); @@ -120,14 +120,14 @@ logout_receive(struct connection *conn) if ((bhslr->bhslr_reason & 0x7f) != BHSLR_REASON_CLOSE_SESSION) log_debugx("received Logout PDU with invalid reason 0x%x; " "continuing anyway", bhslr->bhslr_reason & 0x7f); - if (ntohl(bhslr->bhslr_cmdsn) < conn->conn_cmdsn) { + if (ISCSI_SNLT(ntohl(bhslr->bhslr_cmdsn), conn->conn_cmdsn)) { log_errx(1, "received Logout PDU with decreasing CmdSN: " - "was %d, is %d", conn->conn_cmdsn, + "was %u, is %u", conn->conn_cmdsn, ntohl(bhslr->bhslr_cmdsn)); } if (ntohl(bhslr->bhslr_expstatsn) != conn->conn_statsn) { log_errx(1, "received Logout PDU with wrong StatSN: " - "is %d, should be %d", ntohl(bhslr->bhslr_expstatsn), + "is %u, should be %u", ntohl(bhslr->bhslr_expstatsn), conn->conn_statsn); } conn->conn_cmdsn = ntohl(bhslr->bhslr_cmdsn); Modified: stable/10/usr.sbin/ctld/login.c ============================================================================== --- stable/10/usr.sbin/ctld/login.c Sat Jan 3 11:52:43 2015 (r276612) +++ stable/10/usr.sbin/ctld/login.c Sat Jan 3 13:08:08 2015 (r276613) @@ -127,17 +127,17 @@ login_receive(struct connection *conn, b log_errx(1, "received Login PDU with unsupported " "Version-min 0x%x", bhslr->bhslr_version_min); } - if (ntohl(bhslr->bhslr_cmdsn) < conn->conn_cmdsn) { + if (ISCSI_SNLT(ntohl(bhslr->bhslr_cmdsn), conn->conn_cmdsn)) { login_send_error(request, 0x02, 0x05); log_errx(1, "received Login PDU with decreasing CmdSN: " - "was %d, is %d", conn->conn_cmdsn, + "was %u, is %u", conn->conn_cmdsn, ntohl(bhslr->bhslr_cmdsn)); } if (initial == false && ntohl(bhslr->bhslr_expstatsn) != conn->conn_statsn) { login_send_error(request, 0x02, 0x05); log_errx(1, "received Login PDU with wrong ExpStatSN: " - "is %d, should be %d", ntohl(bhslr->bhslr_expstatsn), + "is %u, should be %u", ntohl(bhslr->bhslr_expstatsn), conn->conn_statsn); } conn->conn_cmdsn = ntohl(bhslr->bhslr_cmdsn); Modified: stable/10/usr.sbin/iscsid/discovery.c ============================================================================== --- stable/10/usr.sbin/iscsid/discovery.c Sat Jan 3 11:52:43 2015 (r276612) +++ stable/10/usr.sbin/iscsid/discovery.c Sat Jan 3 13:08:08 2015 (r276613) @@ -66,7 +66,7 @@ text_receive(struct connection *conn) log_errx(1, "received Text PDU with unsupported \"C\" flag"); if (ntohl(bhstr->bhstr_statsn) != conn->conn_statsn + 1) { log_errx(1, "received Text PDU with wrong StatSN: " - "is %d, should be %d", ntohl(bhstr->bhstr_statsn), + "is %u, should be %u", ntohl(bhstr->bhstr_statsn), conn->conn_statsn + 1); } conn->conn_statsn = ntohl(bhstr->bhstr_statsn); @@ -112,7 +112,7 @@ logout_receive(struct connection *conn) ntohs(bhslr->bhslr_response)); if (ntohl(bhslr->bhslr_statsn) != conn->conn_statsn + 1) { log_errx(1, "received Logout PDU with wrong StatSN: " - "is %d, should be %d", ntohl(bhslr->bhslr_statsn), + "is %u, should be %u", ntohl(bhslr->bhslr_statsn), conn->conn_statsn + 1); } conn->conn_statsn = ntohl(bhslr->bhslr_statsn); Modified: stable/10/usr.sbin/iscsid/login.c ============================================================================== --- stable/10/usr.sbin/iscsid/login.c Sat Jan 3 11:52:43 2015 (r276612) +++ stable/10/usr.sbin/iscsid/login.c Sat Jan 3 13:08:08 2015 (r276613) @@ -257,7 +257,7 @@ login_receive(struct connection *conn) * to be bug in NetBSD iSCSI target. */ log_warnx("received Login PDU with wrong StatSN: " - "is %d, should be %d", ntohl(bhslr->bhslr_statsn), + "is %u, should be %u", ntohl(bhslr->bhslr_statsn), conn->conn_statsn + 1); } conn->conn_tsih = ntohs(bhslr->bhslr_tsih); From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 13:09:34 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0DC7A7AE; Sat, 3 Jan 2015 13:09:34 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ECD6F66373; Sat, 3 Jan 2015 13:09:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03D9XaA038192; Sat, 3 Jan 2015 13:09:33 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03D9XGW038190; Sat, 3 Jan 2015 13:09:33 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201501031309.t03D9XGW038190@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 3 Jan 2015 13:09:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276614 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 13:09:34 -0000 Author: mav Date: Sat Jan 3 13:09:32 2015 New Revision: 276614 URL: https://svnweb.freebsd.org/changeset/base/276614 Log: MFC r275942: Reduce number of places where global control_softc is used. At some point we may want to have several CTL instances, and that is not really impossible. Modified: stable/10/sys/cam/ctl/ctl.c stable/10/sys/cam/ctl/ctl_backend.c stable/10/sys/cam/ctl/ctl_frontend.c stable/10/sys/cam/ctl/ctl_tpc.c stable/10/sys/cam/ctl/ctl_tpc.h stable/10/sys/cam/ctl/ctl_tpc_local.c stable/10/sys/cam/ctl/scsi_ctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl.c ============================================================================== --- stable/10/sys/cam/ctl/ctl.c Sat Jan 3 13:08:08 2015 (r276613) +++ stable/10/sys/cam/ctl/ctl.c Sat Jan 3 13:09:32 2015 (r276614) @@ -400,8 +400,8 @@ static int ctl_ioctl_fill_ooa(struct ctl struct ctl_ooa_entry *kern_entries); static int ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td); -static uint32_t ctl_map_lun(int port_num, uint32_t lun); -static uint32_t ctl_map_lun_back(int port_num, uint32_t lun); +static uint32_t ctl_map_lun(struct ctl_softc *softc, int port_num, uint32_t lun); +static uint32_t ctl_map_lun_back(struct ctl_softc *softc, int port_num, uint32_t lun); static int ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *lun, struct ctl_be_lun *be_lun, struct ctl_id target_id); static int ctl_free_lun(struct ctl_lun *lun); @@ -443,8 +443,7 @@ static ctl_action ctl_check_for_blockage static ctl_action ctl_check_ooa(struct ctl_lun *lun, union ctl_io *pending_io, union ctl_io *starting_io); static int ctl_check_blocked(struct ctl_lun *lun); -static int ctl_scsiio_lun_check(struct ctl_softc *ctl_softc, - struct ctl_lun *lun, +static int ctl_scsiio_lun_check(struct ctl_lun *lun, const struct ctl_cmd_entry *entry, struct ctl_scsiio *ctsio); //static int ctl_check_rtr(union ctl_io *pending_io, struct ctl_softc *softc); @@ -611,12 +610,12 @@ ctl_isc_handler_finish_ser_only(struct c static void ctl_isc_event_handler(ctl_ha_channel channel, ctl_ha_event event, int param) { - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; union ctl_io *io; struct ctl_prio *presio; ctl_ha_status isc_status; - ctl_softc = control_softc; + softc = control_softc; io = NULL; @@ -642,7 +641,7 @@ ctl_isc_event_handler(ctl_ha_channel cha #if 0 printf("Serialize\n"); #endif - io = ctl_alloc_io_nowait(ctl_softc->othersc_pool); + io = ctl_alloc_io_nowait(softc->othersc_pool); if (io == NULL) { printf("ctl_isc_event_handler: can't allocate " "ctl_io!\n"); @@ -674,7 +673,7 @@ ctl_isc_event_handler(ctl_ha_channel cha * * XXX KDM add another flag that is more specific. */ - if (ctl_softc->ha_mode == CTL_HA_MODE_SER_ONLY) + if (softc->ha_mode == CTL_HA_MODE_SER_ONLY) io->io_hdr.flags |= CTL_FLAG_INT_COPY; io->io_hdr.nexus = msg_info.hdr.nexus; #if 0 @@ -688,7 +687,7 @@ ctl_isc_event_handler(ctl_ha_channel cha io->scsiio.tag_type = msg_info.scsi.tag_type; memcpy(io->scsiio.cdb, msg_info.scsi.cdb, CTL_MAX_CDBLEN); - if (ctl_softc->ha_mode == CTL_HA_MODE_XFER) { + if (softc->ha_mode == CTL_HA_MODE_XFER) { const struct ctl_cmd_entry *entry; entry = ctl_get_cmd_entry(&io->scsiio, NULL); @@ -854,11 +853,11 @@ ctl_isc_event_handler(ctl_ha_channel cha * mode */ case CTL_MSG_FINISH_IO: - if (ctl_softc->ha_mode == CTL_HA_MODE_XFER) - ctl_isc_handler_finish_xfer(ctl_softc, + if (softc->ha_mode == CTL_HA_MODE_XFER) + ctl_isc_handler_finish_xfer(softc, &msg_info); else - ctl_isc_handler_finish_ser_only(ctl_softc, + ctl_isc_handler_finish_ser_only(softc, &msg_info); break; @@ -888,7 +887,7 @@ ctl_isc_event_handler(ctl_ha_channel cha case CTL_MSG_MANAGE_TASKS: { struct ctl_taskio *taskio; taskio = (struct ctl_taskio *)ctl_alloc_io_nowait( - ctl_softc->othersc_pool); + softc->othersc_pool); if (taskio == NULL) { printf("ctl_isc_event_handler: can't allocate " "ctl_io!\n"); @@ -917,7 +916,7 @@ ctl_isc_event_handler(ctl_ha_channel cha /* Persistent Reserve action which needs attention */ case CTL_MSG_PERS_ACTION: presio = (struct ctl_prio *)ctl_alloc_io_nowait( - ctl_softc->othersc_pool); + softc->othersc_pool); if (presio == NULL) { printf("ctl_isc_event_handler: can't allocate " "ctl_io!\n"); @@ -1834,16 +1833,16 @@ bailout: static int ctl_serialize_other_sc_cmd(struct ctl_scsiio *ctsio) { - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; union ctl_ha_msg msg_info; struct ctl_lun *lun; int retval = 0; uint32_t targ_lun; - ctl_softc = control_softc; + softc = control_softc; targ_lun = ctsio->io_hdr.nexus.targ_mapped_lun; - lun = ctl_softc->ctl_luns[targ_lun]; + lun = softc->ctl_luns[targ_lun]; if (lun==NULL) { /* @@ -1888,7 +1887,7 @@ ctl_serialize_other_sc_cmd(struct ctl_sc break; case CTL_ACTION_PASS: case CTL_ACTION_SKIP: - if (ctl_softc->ha_mode == CTL_HA_MODE_XFER) { + if (softc->ha_mode == CTL_HA_MODE_XFER) { ctsio->io_hdr.flags |= CTL_FLAG_IS_WAS_ON_RTR; ctl_enqueue_rtr((union ctl_io *)ctsio); } else { @@ -3604,11 +3603,11 @@ ctl_port_idx(int port_num) } static uint32_t -ctl_map_lun(int port_num, uint32_t lun_id) +ctl_map_lun(struct ctl_softc *softc, int port_num, uint32_t lun_id) { struct ctl_port *port; - port = control_softc->ctl_ports[ctl_port_idx(port_num)]; + port = softc->ctl_ports[ctl_port_idx(port_num)]; if (port == NULL) return (UINT32_MAX); if (port->lun_map == NULL) @@ -3617,12 +3616,12 @@ ctl_map_lun(int port_num, uint32_t lun_i } static uint32_t -ctl_map_lun_back(int port_num, uint32_t lun_id) +ctl_map_lun_back(struct ctl_softc *softc, int port_num, uint32_t lun_id) { struct ctl_port *port; uint32_t i; - port = control_softc->ctl_ports[ctl_port_idx(port_num)]; + port = softc->ctl_ports[ctl_port_idx(port_num)]; if (port->lun_map == NULL) return (lun_id); for (i = 0; i < CTL_MAX_LUNS; i++) { @@ -4779,25 +4778,25 @@ ctl_free_lun(struct ctl_lun *lun) static void ctl_create_lun(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; - ctl_softc = control_softc; + softc = control_softc; /* * ctl_alloc_lun() should handle all potential failure cases. */ - ctl_alloc_lun(ctl_softc, NULL, be_lun, ctl_softc->target); + ctl_alloc_lun(softc, NULL, be_lun, softc->target); } int ctl_add_lun(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc = control_softc; + struct ctl_softc *softc = control_softc; - mtx_lock(&ctl_softc->ctl_lock); - STAILQ_INSERT_TAIL(&ctl_softc->pending_lun_queue, be_lun, links); - mtx_unlock(&ctl_softc->ctl_lock); - wakeup(&ctl_softc->pending_lun_queue); + mtx_lock(&softc->ctl_lock); + STAILQ_INSERT_TAIL(&softc->pending_lun_queue, be_lun, links); + mtx_unlock(&softc->ctl_lock); + wakeup(&softc->pending_lun_queue); return (0); } @@ -4805,16 +4804,15 @@ ctl_add_lun(struct ctl_be_lun *be_lun) int ctl_enable_lun(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; struct ctl_port *port, *nport; struct ctl_lun *lun; int retval; - ctl_softc = control_softc; - lun = (struct ctl_lun *)be_lun->ctl_lun; + softc = lun->ctl_softc; - mtx_lock(&ctl_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); mtx_lock(&lun->lun_lock); if ((lun->flags & CTL_LUN_DISABLED) == 0) { /* @@ -4822,13 +4820,13 @@ ctl_enable_lun(struct ctl_be_lun *be_lun * enabled? */ mtx_unlock(&lun->lun_lock); - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); return (0); } lun->flags &= ~CTL_LUN_DISABLED; mtx_unlock(&lun->lun_lock); - for (port = STAILQ_FIRST(&ctl_softc->port_list); port != NULL; port = nport) { + for (port = STAILQ_FIRST(&softc->port_list); port != NULL; port = nport) { nport = STAILQ_NEXT(port, links); /* @@ -4836,9 +4834,9 @@ ctl_enable_lun(struct ctl_be_lun *be_lun * This can lead to a callback into CTL (at least in the * case of the internal initiator frontend. */ - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); retval = port->lun_enable(port->targ_lun_arg, lun->target,lun->lun); - mtx_lock(&ctl_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); if (retval != 0) { printf("%s: FETD %s port %d returned error " "%d for lun_enable on target %ju lun %jd\n", @@ -4853,7 +4851,7 @@ ctl_enable_lun(struct ctl_be_lun *be_lun #endif } - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); return (0); } @@ -4861,27 +4859,26 @@ ctl_enable_lun(struct ctl_be_lun *be_lun int ctl_disable_lun(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; struct ctl_port *port; struct ctl_lun *lun; int retval; - ctl_softc = control_softc; - lun = (struct ctl_lun *)be_lun->ctl_lun; + softc = lun->ctl_softc; - mtx_lock(&ctl_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); mtx_lock(&lun->lun_lock); if (lun->flags & CTL_LUN_DISABLED) { mtx_unlock(&lun->lun_lock); - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); return (0); } lun->flags |= CTL_LUN_DISABLED; mtx_unlock(&lun->lun_lock); - STAILQ_FOREACH(port, &ctl_softc->port_list, links) { - mtx_unlock(&ctl_softc->ctl_lock); + STAILQ_FOREACH(port, &softc->port_list, links) { + mtx_unlock(&softc->ctl_lock); /* * Drop the lock before we call the frontend's disable * routine, to avoid lock order reversals. @@ -4891,7 +4888,7 @@ ctl_disable_lun(struct ctl_be_lun *be_lu */ retval = port->lun_disable(port->targ_lun_arg, lun->target, lun->lun); - mtx_lock(&ctl_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); if (retval != 0) { printf("ctl_alloc_lun: FETD %s port %d returned error " "%d for lun_disable on target %ju lun %jd\n", @@ -4900,7 +4897,7 @@ ctl_disable_lun(struct ctl_be_lun *be_lu } } - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); return (0); } @@ -4908,80 +4905,55 @@ ctl_disable_lun(struct ctl_be_lun *be_lu int ctl_start_lun(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; - struct ctl_lun *lun; - - ctl_softc = control_softc; - - lun = (struct ctl_lun *)be_lun->ctl_lun; + struct ctl_lun *lun = (struct ctl_lun *)be_lun->ctl_lun; mtx_lock(&lun->lun_lock); lun->flags &= ~CTL_LUN_STOPPED; mtx_unlock(&lun->lun_lock); - return (0); } int ctl_stop_lun(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; - struct ctl_lun *lun; - - ctl_softc = control_softc; - - lun = (struct ctl_lun *)be_lun->ctl_lun; + struct ctl_lun *lun = (struct ctl_lun *)be_lun->ctl_lun; mtx_lock(&lun->lun_lock); lun->flags |= CTL_LUN_STOPPED; mtx_unlock(&lun->lun_lock); - return (0); } int ctl_lun_offline(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; - struct ctl_lun *lun; - - ctl_softc = control_softc; - - lun = (struct ctl_lun *)be_lun->ctl_lun; + struct ctl_lun *lun = (struct ctl_lun *)be_lun->ctl_lun; mtx_lock(&lun->lun_lock); lun->flags |= CTL_LUN_OFFLINE; mtx_unlock(&lun->lun_lock); - return (0); } int ctl_lun_online(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; - struct ctl_lun *lun; - - ctl_softc = control_softc; - - lun = (struct ctl_lun *)be_lun->ctl_lun; + struct ctl_lun *lun = (struct ctl_lun *)be_lun->ctl_lun; mtx_lock(&lun->lun_lock); lun->flags &= ~CTL_LUN_OFFLINE; mtx_unlock(&lun->lun_lock); - return (0); } int ctl_invalidate_lun(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; struct ctl_lun *lun; - ctl_softc = control_softc; - lun = (struct ctl_lun *)be_lun->ctl_lun; + softc = lun->ctl_softc; mtx_lock(&lun->lun_lock); @@ -5004,9 +4976,9 @@ ctl_invalidate_lun(struct ctl_be_lun *be */ if (TAILQ_EMPTY(&lun->ooa_queue)) { mtx_unlock(&lun->lun_lock); - mtx_lock(&ctl_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); ctl_free_lun(lun); - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); } else mtx_unlock(&lun->lun_lock); @@ -5016,32 +4988,22 @@ ctl_invalidate_lun(struct ctl_be_lun *be int ctl_lun_inoperable(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; - struct ctl_lun *lun; - - ctl_softc = control_softc; - lun = (struct ctl_lun *)be_lun->ctl_lun; + struct ctl_lun *lun = (struct ctl_lun *)be_lun->ctl_lun; mtx_lock(&lun->lun_lock); lun->flags |= CTL_LUN_INOPERABLE; mtx_unlock(&lun->lun_lock); - return (0); } int ctl_lun_operable(struct ctl_be_lun *be_lun) { - struct ctl_softc *ctl_softc; - struct ctl_lun *lun; - - ctl_softc = control_softc; - lun = (struct ctl_lun *)be_lun->ctl_lun; + struct ctl_lun *lun = (struct ctl_lun *)be_lun->ctl_lun; mtx_lock(&lun->lun_lock); lun->flags &= ~CTL_LUN_INOPERABLE; mtx_unlock(&lun->lun_lock); - return (0); } @@ -5227,7 +5189,6 @@ int ctl_scsi_release(struct ctl_scsiio *ctsio) { int length, longid, thirdparty_id, resv_id; - struct ctl_softc *ctl_softc; struct ctl_lun *lun; uint32_t residx; @@ -5238,7 +5199,6 @@ ctl_scsi_release(struct ctl_scsiio *ctsi residx = ctl_get_resindex(&ctsio->io_hdr.nexus); lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - ctl_softc = control_softc; switch (ctsio->cdb[0]) { case RELEASE_10: { @@ -5315,7 +5275,6 @@ ctl_scsi_reserve(struct ctl_scsiio *ctsi int extent, thirdparty, longid; int resv_id, length; uint64_t thirdparty_id; - struct ctl_softc *ctl_softc; struct ctl_lun *lun; uint32_t residx; @@ -5330,7 +5289,6 @@ ctl_scsi_reserve(struct ctl_scsiio *ctsi residx = ctl_get_resindex(&ctsio->io_hdr.nexus); lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - ctl_softc = control_softc; switch (ctsio->cdb[0]) { case RESERVE_10: { @@ -5404,13 +5362,11 @@ ctl_start_stop(struct ctl_scsiio *ctsio) { struct scsi_start_stop_unit *cdb; struct ctl_lun *lun; - struct ctl_softc *ctl_softc; int retval; CTL_DEBUG_PRINT(("ctl_start_stop\n")); lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - ctl_softc = control_softc; retval = 0; cdb = (struct scsi_start_stop_unit *)ctsio->cdb; @@ -5531,7 +5487,7 @@ int ctl_sync_cache(struct ctl_scsiio *ctsio) { struct ctl_lun *lun; - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; uint64_t starting_lba; uint32_t block_count; int retval; @@ -5539,7 +5495,7 @@ ctl_sync_cache(struct ctl_scsiio *ctsio) CTL_DEBUG_PRINT(("ctl_sync_cache\n")); lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - ctl_softc = control_softc; + softc = lun->ctl_softc; retval = 0; switch (ctsio->cdb[0]) { @@ -5592,7 +5548,7 @@ ctl_sync_cache(struct ctl_scsiio *ctsio) * CACHE command directly to the back end. */ mtx_lock(&lun->lun_lock); - if ((ctl_softc->flags & CTL_FLAG_REAL_SYNC) + if ((softc->flags & CTL_FLAG_REAL_SYNC) && (++(lun->sync_count) >= lun->sync_interval)) { lun->sync_count = 0; mtx_unlock(&lun->lun_lock); @@ -5613,13 +5569,11 @@ ctl_format(struct ctl_scsiio *ctsio) { struct scsi_format *cdb; struct ctl_lun *lun; - struct ctl_softc *ctl_softc; int length, defect_list_len; CTL_DEBUG_PRINT(("ctl_format\n")); lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - ctl_softc = control_softc; cdb = (struct scsi_format *)ctsio->cdb; @@ -6077,7 +6031,6 @@ ctl_control_page_handler(struct ctl_scsi { struct scsi_control_page *current_cp, *saved_cp, *user_cp; struct ctl_lun *lun; - struct ctl_softc *softc; int set_ua; uint32_t initidx; @@ -6093,8 +6046,6 @@ ctl_control_page_handler(struct ctl_scsi (page_index->page_data + (page_index->page_len * CTL_PAGE_SAVED)); - softc = control_softc; - mtx_lock(&lun->lun_lock); if (((current_cp->rlec & SCP_DSENSE) == 0) && ((user_cp->rlec & SCP_DSENSE) != 0)) { @@ -7360,8 +7311,8 @@ ctl_report_tagret_port_groups(struct ctl CTL_DEBUG_PRINT(("ctl_report_tagret_port_groups\n")); cdb = (struct scsi_maintenance_in *)ctsio->cdb; - softc = control_softc; lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; + softc = lun->ctl_softc; retval = CTL_RETVAL_COMPLETE; @@ -7392,7 +7343,8 @@ ctl_report_tagret_port_groups(struct ctl STAILQ_FOREACH(port, &softc->port_list, links) { if ((port->status & CTL_PORT_STATUS_ONLINE) == 0) continue; - if (ctl_map_lun_back(port->targ_port, lun->lun) >= CTL_MAX_LUNS) + if (ctl_map_lun_back(softc, port->targ_port, lun->lun) >= + CTL_MAX_LUNS) continue; num_target_ports++; } @@ -7465,8 +7417,8 @@ ctl_report_tagret_port_groups(struct ctl STAILQ_FOREACH(port, &softc->port_list, links) { if ((port->status & CTL_PORT_STATUS_ONLINE) == 0) continue; - if (ctl_map_lun_back(port->targ_port, lun->lun) >= - CTL_MAX_LUNS) + if (ctl_map_lun_back(softc, port->targ_port, lun->lun) + >= CTL_MAX_LUNS) continue; p = port->targ_port % CTL_MAX_PORTS + g * CTL_MAX_PORTS; scsi_ulto2b(p, tpg_desc->descriptors[pc]. @@ -7758,13 +7710,12 @@ ctl_persistent_reserve_in(struct ctl_scs CTL_DEBUG_PRINT(("ctl_persistent_reserve_in\n")); - softc = control_softc; - cdb = (struct scsi_per_res_in *)ctsio->cdb; alloc_len = scsi_2btoul(cdb->length); lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; + softc = lun->ctl_softc; retry: mtx_lock(&lun->lun_lock); @@ -8387,10 +8338,9 @@ ctl_persistent_reserve_out(struct ctl_sc retval = CTL_RETVAL_COMPLETE; - softc = control_softc; - cdb = (struct scsi_per_res_out *)ctsio->cdb; lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; + softc = lun->ctl_softc; /* * We only support whole-LUN scope. The scope & type are ignored for @@ -9306,6 +9256,7 @@ ctl_verify(struct ctl_scsiio *ctsio) int ctl_report_luns(struct ctl_scsiio *ctsio) { + struct ctl_softc *softc = control_softc; struct scsi_report_luns *cdb; struct scsi_report_luns_data *lun_data; struct ctl_lun *lun, *request_lun; @@ -9321,9 +9272,9 @@ ctl_report_luns(struct ctl_scsiio *ctsio CTL_DEBUG_PRINT(("ctl_report_luns\n")); - mtx_lock(&control_softc->ctl_lock); - num_luns = control_softc->num_luns; - mtx_unlock(&control_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); + num_luns = softc->num_luns; + mtx_unlock(&softc->ctl_lock); switch (cdb->select_report) { case RPL_REPORT_DEFAULT: @@ -9375,12 +9326,13 @@ ctl_report_luns(struct ctl_scsiio *ctsio initidx = ctl_get_initindex(&ctsio->io_hdr.nexus); - mtx_lock(&control_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); for (targ_lun_id = 0, num_filled = 0; targ_lun_id < CTL_MAX_LUNS && num_filled < num_luns; targ_lun_id++) { - lun_id = ctl_map_lun(ctsio->io_hdr.nexus.targ_port, targ_lun_id); + lun_id = ctl_map_lun(softc, ctsio->io_hdr.nexus.targ_port, + targ_lun_id); if (lun_id >= CTL_MAX_LUNS) continue; - lun = control_softc->ctl_luns[lun_id]; + lun = softc->ctl_luns[lun_id]; if (lun == NULL) continue; @@ -9436,7 +9388,7 @@ ctl_report_luns(struct ctl_scsiio *ctsio mtx_unlock(&lun->lun_lock); } } - mtx_unlock(&control_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); /* * It's quite possible that we've returned fewer LUNs than we allocated @@ -9871,15 +9823,15 @@ ctl_inquiry_evpd_devid(struct ctl_scsiio { struct scsi_vpd_device_id *devid_ptr; struct scsi_vpd_id_descriptor *desc; - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; struct ctl_lun *lun; struct ctl_port *port; int data_len; uint8_t proto; - ctl_softc = control_softc; + softc = control_softc; - port = ctl_softc->ctl_ports[ctl_port_idx(ctsio->io_hdr.nexus.targ_port)]; + port = softc->ctl_ports[ctl_port_idx(ctsio->io_hdr.nexus.targ_port)]; lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; data_len = sizeof(struct scsi_vpd_device_id) + @@ -10013,7 +9965,7 @@ ctl_inquiry_evpd_scsi_ports(struct ctl_s if ((port->status & CTL_PORT_STATUS_ONLINE) == 0) continue; if (lun != NULL && - ctl_map_lun_back(port->targ_port, lun->lun) >= + ctl_map_lun_back(softc, port->targ_port, lun->lun) >= CTL_MAX_LUNS) continue; num_target_ports++; @@ -10067,8 +10019,8 @@ ctl_inquiry_evpd_scsi_ports(struct ctl_s if ((port->status & CTL_PORT_STATUS_ONLINE) == 0) continue; if (lun != NULL && - ctl_map_lun_back(port->targ_port, lun->lun) >= - CTL_MAX_LUNS) + ctl_map_lun_back(softc, port->targ_port, lun->lun) + >= CTL_MAX_LUNS) continue; p = port->targ_port % CTL_MAX_PORTS + g * CTL_MAX_PORTS; scsi_ulto2b(p, pd->relative_port_id); @@ -10344,20 +10296,20 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio { struct scsi_inquiry_data *inq_ptr; struct scsi_inquiry *cdb; - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; struct ctl_lun *lun; char *val; uint32_t alloc_len, data_len; ctl_port_type port_type; - ctl_softc = control_softc; + softc = control_softc; /* * Figure out whether we're talking to a Fibre Channel port or not. * We treat the ioctl front end, and any SCSI adapters, as packetized * SCSI front ends. */ - port_type = ctl_softc->ctl_ports[ + port_type = softc->ctl_ports[ ctl_port_idx(ctsio->io_hdr.nexus.targ_port)]->port_type; if (port_type == CTL_PORT_IOCTL || port_type == CTL_PORT_INTERNAL) port_type = CTL_PORT_SCSI; @@ -10434,7 +10386,7 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio if (lun != NULL) inq_ptr->device = (SID_QUAL_LU_CONNECTED << 5) | lun->be_lun->lun_type; - else if (ctl_softc->inquiry_pq_no_lun == 0) + else if (softc->inquiry_pq_no_lun == 0) inq_ptr->device = (SID_QUAL_LU_OFFLINE << 5) | T_DIRECT; else inq_ptr->device = (SID_QUAL_BAD_LU << 5) | T_NODEVICE; @@ -11067,7 +11019,6 @@ ctl_check_blocked(struct ctl_lun *lun) break; case CTL_ACTION_PASS: case CTL_ACTION_SKIP: { - struct ctl_softc *softc; const struct ctl_cmd_entry *entry; int isc_retval; @@ -11106,7 +11057,6 @@ ctl_check_blocked(struct ctl_lun *lun) break; } entry = ctl_get_cmd_entry(&cur_blocked->scsiio, NULL); - softc = control_softc; /* * Check this I/O for LUN state changes that may @@ -11116,7 +11066,7 @@ ctl_check_blocked(struct ctl_lun *lun) * for any states that can be caused by SCSI * commands. */ - if (ctl_scsiio_lun_check(softc, lun, entry, + if (ctl_scsiio_lun_check(lun, entry, &cur_blocked->scsiio) == 0) { cur_blocked->io_hdr.flags |= CTL_FLAG_IS_WAS_ON_RTR; @@ -11150,9 +11100,10 @@ ctl_check_blocked(struct ctl_lun *lun) * careful attention to the placement of any new checks. */ static int -ctl_scsiio_lun_check(struct ctl_softc *ctl_softc, struct ctl_lun *lun, +ctl_scsiio_lun_check(struct ctl_lun *lun, const struct ctl_cmd_entry *entry, struct ctl_scsiio *ctsio) { + struct ctl_softc *softc = lun->ctl_softc; int retval; uint32_t residx; @@ -11164,7 +11115,7 @@ ctl_scsiio_lun_check(struct ctl_softc *c * If this shelf is a secondary shelf controller, we have to reject * any media access commands. */ - if ((ctl_softc->flags & CTL_FLAG_ACTIVE_SHELF) == 0 && + if ((softc->flags & CTL_FLAG_ACTIVE_SHELF) == 0 && (entry->flags & CTL_CMD_FLAG_OK_ON_SECONDARY) == 0) { ctl_set_lun_standby(ctsio); retval = 1; @@ -11270,14 +11221,14 @@ static void ctl_failover(void) { struct ctl_lun *lun; - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; union ctl_io *next_io, *pending_io; union ctl_io *io; int lun_idx; - ctl_softc = control_softc; + softc = control_softc; - mtx_lock(&ctl_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); /* * Remove any cmds from the other SC from the rtr queue. These * will obviously only be for LUNs for which we're the primary. @@ -11287,19 +11238,19 @@ ctl_failover(void) * which HA mode we're in. */ #ifdef notyet - mtx_lock(&ctl_softc->queue_lock); - for (io = (union ctl_io *)STAILQ_FIRST(&ctl_softc->rtr_queue); + mtx_lock(&softc->queue_lock); + for (io = (union ctl_io *)STAILQ_FIRST(&softc->rtr_queue); io != NULL; io = next_io) { next_io = (union ctl_io *)STAILQ_NEXT(&io->io_hdr, links); if (io->io_hdr.flags & CTL_FLAG_FROM_OTHER_SC) - STAILQ_REMOVE(&ctl_softc->rtr_queue, &io->io_hdr, + STAILQ_REMOVE(&softc->rtr_queue, &io->io_hdr, ctl_io_hdr, links); } - mtx_unlock(&ctl_softc->queue_lock); + mtx_unlock(&softc->queue_lock); #endif - for (lun_idx=0; lun_idx < ctl_softc->num_luns; lun_idx++) { - lun = ctl_softc->ctl_luns[lun_idx]; + for (lun_idx=0; lun_idx < softc->num_luns; lun_idx++) { + lun = softc->ctl_luns[lun_idx]; if (lun==NULL) continue; @@ -11311,7 +11262,7 @@ ctl_failover(void) continue; if ((lun->flags & CTL_LUN_PRIMARY_SC) - && (ctl_softc->ha_mode == CTL_HA_MODE_SER_ONLY)) { + && (softc->ha_mode == CTL_HA_MODE_SER_ONLY)) { printf("FAILOVER: primary lun %d\n", lun_idx); /* * Remove all commands from the other SC. First from the @@ -11353,7 +11304,7 @@ ctl_failover(void) } ctl_check_blocked(lun); } else if ((lun->flags & CTL_LUN_PRIMARY_SC) - && (ctl_softc->ha_mode == CTL_HA_MODE_XFER)) { + && (softc->ha_mode == CTL_HA_MODE_XFER)) { printf("FAILOVER: primary lun %d\n", lun_idx); /* @@ -11371,7 +11322,7 @@ ctl_failover(void) io->io_hdr.flags |= CTL_FLAG_ABORT; } } else if (((lun->flags & CTL_LUN_PRIMARY_SC) == 0) - && (ctl_softc->ha_mode == CTL_HA_MODE_XFER)) { + && (softc->ha_mode == CTL_HA_MODE_XFER)) { printf("FAILOVER: secondary lun %d\n", lun_idx); @@ -11410,7 +11361,7 @@ ctl_failover(void) ctl_est_ua_all(lun, -1, CTL_UA_ASYM_ACC_CHANGE); } else if (((lun->flags & CTL_LUN_PRIMARY_SC) == 0) - && (ctl_softc->ha_mode == CTL_HA_MODE_SER_ONLY)) { + && (softc->ha_mode == CTL_HA_MODE_SER_ONLY)) { printf("FAILOVER: secondary lun %d\n", lun_idx); /* * if the first io on the OOA is not on the RtR queue @@ -11500,15 +11451,15 @@ ctl_failover(void) ctl_est_ua_all(lun, -1, CTL_UA_ASYM_ACC_CHANGE); } else { panic("Unhandled HA mode failover, LUN flags = %#x, " - "ha_mode = #%x", lun->flags, ctl_softc->ha_mode); + "ha_mode = #%x", lun->flags, softc->ha_mode); } } ctl_pause_rtr = 0; - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); } static int -ctl_scsiio_precheck(struct ctl_softc *ctl_softc, struct ctl_scsiio *ctsio) +ctl_scsiio_precheck(struct ctl_softc *softc, struct ctl_scsiio *ctsio) { struct ctl_lun *lun; const struct ctl_cmd_entry *entry; @@ -11521,7 +11472,7 @@ ctl_scsiio_precheck(struct ctl_softc *ct targ_lun = ctsio->io_hdr.nexus.targ_mapped_lun; if ((targ_lun < CTL_MAX_LUNS) - && ((lun = ctl_softc->ctl_luns[targ_lun]) != NULL)) { + && ((lun = softc->ctl_luns[targ_lun]) != NULL)) { /* * If the LUN is invalid, pretend that it doesn't exist. * It will go away as soon as all pending I/O has been @@ -11653,7 +11604,7 @@ ctl_scsiio_precheck(struct ctl_softc *ct } - if (ctl_scsiio_lun_check(ctl_softc, lun, entry, ctsio) != 0) { + if (ctl_scsiio_lun_check(lun, entry, ctsio) != 0) { mtx_unlock(&lun->lun_lock); ctl_done((union ctl_io *)ctsio); return (retval); @@ -11861,13 +11812,13 @@ bailout: * our single target. */ static int -ctl_bus_reset(struct ctl_softc *ctl_softc, union ctl_io *io) +ctl_bus_reset(struct ctl_softc *softc, union ctl_io *io) { - return(ctl_target_reset(ctl_softc, io, CTL_UA_BUS_RESET)); + return(ctl_target_reset(softc, io, CTL_UA_BUS_RESET)); } static int -ctl_target_reset(struct ctl_softc *ctl_softc, union ctl_io *io, +ctl_target_reset(struct ctl_softc *softc, union ctl_io *io, ctl_ua_type ua_type) { struct ctl_lun *lun; @@ -11891,10 +11842,10 @@ ctl_target_reset(struct ctl_softc *ctl_s } retval = 0; - mtx_lock(&ctl_softc->ctl_lock); - STAILQ_FOREACH(lun, &ctl_softc->lun_list, links) + mtx_lock(&softc->ctl_lock); + STAILQ_FOREACH(lun, &softc->lun_list, links) retval += ctl_lun_reset(lun, io, ua_type); - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); return (retval); } @@ -12080,7 +12031,7 @@ ctl_abort_task(union ctl_io *io) { union ctl_io *xio; struct ctl_lun *lun; - struct ctl_softc *ctl_softc; + struct ctl_softc *softc; #if 0 struct sbuf sb; char printbuf[128]; @@ -12088,19 +12039,19 @@ ctl_abort_task(union ctl_io *io) int found; uint32_t targ_lun; - ctl_softc = control_softc; + softc = control_softc; found = 0; /* * Look up the LUN. */ targ_lun = io->io_hdr.nexus.targ_mapped_lun; - mtx_lock(&ctl_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); if ((targ_lun < CTL_MAX_LUNS) - && (ctl_softc->ctl_luns[targ_lun] != NULL)) - lun = ctl_softc->ctl_luns[targ_lun]; + && (softc->ctl_luns[targ_lun] != NULL)) + lun = softc->ctl_luns[targ_lun]; else { - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); return (1); } @@ -12110,7 +12061,7 @@ ctl_abort_task(union ctl_io *io) #endif mtx_lock(&lun->lun_lock); - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); /* * Run through the OOA queue and attempt to find the given I/O. * The target port, initiator ID, tag type and tag number have to @@ -12226,7 +12177,7 @@ ctl_abort_task(union ctl_io *io) static void ctl_run_task(union ctl_io *io) { - struct ctl_softc *ctl_softc = control_softc; + struct ctl_softc *softc = control_softc; int retval = 1; const char *task_desc; @@ -12281,12 +12232,12 @@ ctl_run_task(union ctl_io *io) uint32_t targ_lun; targ_lun = io->io_hdr.nexus.targ_mapped_lun; - mtx_lock(&ctl_softc->ctl_lock); + mtx_lock(&softc->ctl_lock); if ((targ_lun < CTL_MAX_LUNS) - && (ctl_softc->ctl_luns[targ_lun] != NULL)) - lun = ctl_softc->ctl_luns[targ_lun]; + && (softc->ctl_luns[targ_lun] != NULL)) + lun = softc->ctl_luns[targ_lun]; else { - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); retval = 1; break; } @@ -12313,14 +12264,14 @@ ctl_run_task(union ctl_io *io) retval = ctl_lun_reset(lun, io, CTL_UA_LUN_RESET); - mtx_unlock(&ctl_softc->ctl_lock); + mtx_unlock(&softc->ctl_lock); break; } case CTL_TASK_TARGET_RESET: - retval = ctl_target_reset(ctl_softc, io, CTL_UA_TARG_RESET); + retval = ctl_target_reset(softc, io, CTL_UA_TARG_RESET); break; case CTL_TASK_BUS_RESET: - retval = ctl_bus_reset(ctl_softc, io); + retval = ctl_bus_reset(softc, io); break; case CTL_TASK_PORT_LOGIN: break; @@ -12347,13 +12298,13 @@ ctl_handle_isc(union ctl_io *io) { int free_io; struct ctl_lun *lun; - struct ctl_softc *ctl_softc; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 13:10:24 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CD8AB949; Sat, 3 Jan 2015 13:10:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B8C546644D; Sat, 3 Jan 2015 13:10:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03DAOc5038888; Sat, 3 Jan 2015 13:10:24 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03DAOxN038887; Sat, 3 Jan 2015 13:10:24 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201501031310.t03DAOxN038887@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 3 Jan 2015 13:10:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276615 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 13:10:24 -0000 Author: mav Date: Sat Jan 3 13:10:23 2015 New Revision: 276615 URL: https://svnweb.freebsd.org/changeset/base/276615 Log: MFC r275943: Constify some static data. Modified: stable/10/sys/cam/ctl/ctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl.c ============================================================================== --- stable/10/sys/cam/ctl/ctl.c Sat Jan 3 13:09:32 2015 (r276614) +++ stable/10/sys/cam/ctl/ctl.c Sat Jan 3 13:10:23 2015 (r276615) @@ -111,7 +111,7 @@ struct ctl_softc *control_softc = NULL; * Note that these are default values only. The actual values will be * filled in when the user does a mode sense. */ -static struct copan_debugconf_subpage debugconf_page_default = { +const static struct copan_debugconf_subpage debugconf_page_default = { DBGCNF_PAGE_CODE | SMPH_SPF, /* page_code */ DBGCNF_SUBPAGE_CODE, /* subpage */ {(sizeof(struct copan_debugconf_subpage) - 4) >> 8, @@ -121,7 +121,7 @@ static struct copan_debugconf_subpage de CTL_TIME_IO_DEFAULT_SECS>>0}, /* ctl_time_io_secs */ }; -static struct copan_debugconf_subpage debugconf_page_changeable = { +const static struct copan_debugconf_subpage debugconf_page_changeable = { DBGCNF_PAGE_CODE | SMPH_SPF, /* page_code */ DBGCNF_SUBPAGE_CODE, /* subpage */ {(sizeof(struct copan_debugconf_subpage) - 4) >> 8, @@ -130,7 +130,7 @@ static struct copan_debugconf_subpage de {0xff,0xff}, /* ctl_time_io_secs */ }; -static struct scsi_da_rw_recovery_page rw_er_page_default = { +const static struct scsi_da_rw_recovery_page rw_er_page_default = { /*page_code*/SMS_RW_ERROR_RECOVERY_PAGE, /*page_length*/sizeof(struct scsi_da_rw_recovery_page) - 2, /*byte3*/SMS_RWER_AWRE|SMS_RWER_ARRE, @@ -144,7 +144,7 @@ static struct scsi_da_rw_recovery_page r /*recovery_time_limit*/{0, 0}, }; -static struct scsi_da_rw_recovery_page rw_er_page_changeable = { +const static struct scsi_da_rw_recovery_page rw_er_page_changeable = { /*page_code*/SMS_RW_ERROR_RECOVERY_PAGE, /*page_length*/sizeof(struct scsi_da_rw_recovery_page) - 2, /*byte3*/0, @@ -158,7 +158,7 @@ static struct scsi_da_rw_recovery_page r /*recovery_time_limit*/{0, 0}, }; -static struct scsi_format_page format_page_default = { +const static struct scsi_format_page format_page_default = { /*page_code*/SMS_FORMAT_DEVICE_PAGE, /*page_length*/sizeof(struct scsi_format_page) - 2, /*tracks_per_zone*/ {0, 0}, @@ -175,7 +175,7 @@ static struct scsi_format_page format_pa /*reserved*/ {0, 0, 0} }; -static struct scsi_format_page format_page_changeable = { +const static struct scsi_format_page format_page_changeable = { /*page_code*/SMS_FORMAT_DEVICE_PAGE, /*page_length*/sizeof(struct scsi_format_page) - 2, /*tracks_per_zone*/ {0, 0}, @@ -191,7 +191,7 @@ static struct scsi_format_page format_pa /*reserved*/ {0, 0, 0} }; -static struct scsi_rigid_disk_page rigid_disk_page_default = { +const static struct scsi_rigid_disk_page rigid_disk_page_default = { /*page_code*/SMS_RIGID_DISK_PAGE, /*page_length*/sizeof(struct scsi_rigid_disk_page) - 2, /*cylinders*/ {0, 0, 0}, @@ -208,7 +208,7 @@ static struct scsi_rigid_disk_page rigid /*reserved2*/ {0, 0} }; -static struct scsi_rigid_disk_page rigid_disk_page_changeable = { +const static struct scsi_rigid_disk_page rigid_disk_page_changeable = { /*page_code*/SMS_RIGID_DISK_PAGE, /*page_length*/sizeof(struct scsi_rigid_disk_page) - 2, /*cylinders*/ {0, 0, 0}, @@ -224,7 +224,7 @@ static struct scsi_rigid_disk_page rigid /*reserved2*/ {0, 0} }; -static struct scsi_caching_page caching_page_default = { +const static struct scsi_caching_page caching_page_default = { /*page_code*/SMS_CACHING_PAGE, /*page_length*/sizeof(struct scsi_caching_page) - 2, /*flags1*/ SCP_DISC | SCP_WCE, @@ -240,7 +240,7 @@ static struct scsi_caching_page caching_ /*non_cache_seg_size*/ {0, 0, 0} }; -static struct scsi_caching_page caching_page_changeable = { +const static struct scsi_caching_page caching_page_changeable = { /*page_code*/SMS_CACHING_PAGE, /*page_length*/sizeof(struct scsi_caching_page) - 2, /*flags1*/ SCP_WCE | SCP_RCD, @@ -256,7 +256,7 @@ static struct scsi_caching_page caching_ /*non_cache_seg_size*/ {0, 0, 0} }; -static struct scsi_control_page control_page_default = { +const static struct scsi_control_page control_page_default = { /*page_code*/SMS_CONTROL_MODE_PAGE, /*page_length*/sizeof(struct scsi_control_page) - 2, /*rlec*/0, @@ -268,7 +268,7 @@ static struct scsi_control_page control_ /*extended_selftest_completion_time*/{0, 0} }; -static struct scsi_control_page control_page_changeable = { +const static struct scsi_control_page control_page_changeable = { /*page_code*/SMS_CONTROL_MODE_PAGE, /*page_length*/sizeof(struct scsi_control_page) - 2, /*rlec*/SCP_DSENSE, @@ -280,7 +280,7 @@ static struct scsi_control_page control_ /*extended_selftest_completion_time*/{0, 0} }; -static struct scsi_info_exceptions_page ie_page_default = { +const static struct scsi_info_exceptions_page ie_page_default = { /*page_code*/SMS_INFO_EXCEPTIONS_PAGE, /*page_length*/sizeof(struct scsi_info_exceptions_page) - 2, /*info_flags*/SIEP_FLAGS_DEXCPT, @@ -289,7 +289,7 @@ static struct scsi_info_exceptions_page /*report_count*/{0, 0, 0, 0} }; -static struct scsi_info_exceptions_page ie_page_changeable = { +const static struct scsi_info_exceptions_page ie_page_changeable = { /*page_code*/SMS_INFO_EXCEPTIONS_PAGE, /*page_length*/sizeof(struct scsi_info_exceptions_page) - 2, /*info_flags*/0, @@ -300,7 +300,7 @@ static struct scsi_info_exceptions_page #define CTL_LBPM_LEN (sizeof(struct ctl_logical_block_provisioning_page) - 4) -static struct ctl_logical_block_provisioning_page lbp_page_default = {{ +const static struct ctl_logical_block_provisioning_page lbp_page_default = {{ /*page_code*/SMS_INFO_EXCEPTIONS_PAGE | SMPH_SPF, /*subpage_code*/0x02, /*page_length*/{CTL_LBPM_LEN >> 8, CTL_LBPM_LEN}, @@ -326,7 +326,7 @@ static struct ctl_logical_block_provisio } }; -static struct ctl_logical_block_provisioning_page lbp_page_changeable = {{ +const static struct ctl_logical_block_provisioning_page lbp_page_changeable = {{ /*page_code*/SMS_INFO_EXCEPTIONS_PAGE | SMPH_SPF, /*subpage_code*/0x02, /*page_length*/{CTL_LBPM_LEN >> 8, CTL_LBPM_LEN}, From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 13:11:41 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D17CBAB4; Sat, 3 Jan 2015 13:11:41 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC38A66482; Sat, 3 Jan 2015 13:11:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03DBfVi042050; Sat, 3 Jan 2015 13:11:41 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03DBexD042041; Sat, 3 Jan 2015 13:11:40 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201501031311.t03DBexD042041@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 3 Jan 2015 13:11:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276616 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 13:11:42 -0000 Author: mav Date: Sat Jan 3 13:11:39 2015 New Revision: 276616 URL: https://svnweb.freebsd.org/changeset/base/276616 Log: MFC r275953: Replace ctl_min() macro with MIN(). Modified: stable/10/sys/cam/ctl/ctl.c stable/10/sys/cam/ctl/ctl.h stable/10/sys/cam/ctl/ctl_backend_block.c stable/10/sys/cam/ctl/ctl_backend_ramdisk.c stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c stable/10/sys/cam/ctl/ctl_frontend_internal.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl.c ============================================================================== --- stable/10/sys/cam/ctl/ctl.c Sat Jan 3 13:10:23 2015 (r276615) +++ stable/10/sys/cam/ctl/ctl.c Sat Jan 3 13:11:39 2015 (r276616) @@ -1745,8 +1745,8 @@ ctl_ioctl_do_datamove(struct ctl_scsiio i < ext_sg_entries && j < kern_sg_entries;) { uint8_t *ext_ptr, *kern_ptr; - len_to_copy = ctl_min(ext_sglist[i].len - ext_watermark, - kern_sglist[j].len - kern_watermark); + len_to_copy = MIN(ext_sglist[i].len - ext_watermark, + kern_sglist[j].len - kern_watermark); ext_ptr = (uint8_t *)ext_sglist[i].addr; ext_ptr = ext_ptr + ext_watermark; @@ -2836,8 +2836,8 @@ ctl_ioctl(struct cdev *dev, u_long cmd, bbr_info->scsi_status = metatask->taskinfo.bbrread.scsi_status; memcpy(&bbr_info->sense_data, &metatask->taskinfo.bbrread.sense_data, - ctl_min(sizeof(bbr_info->sense_data), - sizeof(metatask->taskinfo.bbrread.sense_data))); + MIN(sizeof(bbr_info->sense_data), + sizeof(metatask->taskinfo.bbrread.sense_data))); cfi_free_metatask(metatask); @@ -3644,7 +3644,7 @@ ctl_ffz(uint32_t *mask, uint32_t size) num_chunks = (size >> 5); if (num_chunks == 0) num_chunks++; - num_pieces = ctl_min((sizeof(uint32_t) * 8), size); + num_pieces = MIN((sizeof(uint32_t) * 8), size); for (i = 0; i < num_chunks; i++) { for (j = 0; j < num_pieces; j++) { @@ -3891,7 +3891,7 @@ ctl_copy_io(union ctl_io *src, union ctl */ pool_ref = dest->io_hdr.pool; - memcpy(dest, src, ctl_min(sizeof(*src), sizeof(*dest))); + memcpy(dest, src, MIN(sizeof(*src), sizeof(*dest))); dest->io_hdr.pool = pool_ref; /* @@ -6754,7 +6754,7 @@ ctl_mode_sense(struct ctl_scsiio *ctsio) header = (struct scsi_mode_hdr_6 *)ctsio->kern_data_ptr; - header->datalen = ctl_min(total_len - 1, 254); + header->datalen = MIN(total_len - 1, 254); if (control_dev == 0) { header->dev_specific = 0x10; /* DPOFUA */ if ((lun->flags & CTL_LUN_READONLY) || @@ -6776,7 +6776,7 @@ ctl_mode_sense(struct ctl_scsiio *ctsio) header = (struct scsi_mode_hdr_10 *)ctsio->kern_data_ptr; - datalen = ctl_min(total_len - 2, 65533); + datalen = MIN(total_len - 2, 65533); scsi_ulto2b(datalen, header->datalen); if (control_dev == 0) { header->dev_specific = 0x10; /* DPOFUA */ @@ -9517,7 +9517,7 @@ ctl_request_sense(struct ctl_scsiio *cts (struct scsi_sense_data_fixed *)sense_ptr); else memcpy(sense_ptr, &lun->pending_sense[initidx], - ctl_min(sizeof(*sense_ptr), + MIN(sizeof(*sense_ptr), sizeof(lun->pending_sense[initidx]))); ctl_clear_mask(lun->have_ca, initidx); @@ -12476,8 +12476,8 @@ ctl_inject_error(struct ctl_lun *lun, un * checks. */ bcopy(&desc->custom_sense, &io->scsiio.sense_data, - ctl_min(sizeof(desc->custom_sense), - sizeof(io->scsiio.sense_data))); + MIN(sizeof(desc->custom_sense), + sizeof(io->scsiio.sense_data))); io->scsiio.scsi_status = SCSI_STATUS_CHECK_COND; io->scsiio.sense_len = SSD_FULL_SIZE; io->io_hdr.status = CTL_SCSI_ERROR | CTL_AUTOSENSE; @@ -12706,7 +12706,7 @@ ctl_datamove(union ctl_io *io) */ for (sg_entries_sent = 0; sg_entries_sent < msg.dt.kern_sg_entries; msg.dt.sg_sequence++) { - msg.dt.cur_sg_entries = ctl_min((sizeof(msg.dt.sg_list)/ + msg.dt.cur_sg_entries = MIN((sizeof(msg.dt.sg_list)/ sizeof(msg.dt.sg_list[0])), msg.dt.kern_sg_entries - sg_entries_sent); @@ -13069,7 +13069,7 @@ ctl_datamove_remote_sgl_setup(union ctl_ for (i = 0; (i < sizeof(io->io_hdr.remote_sglist) / sizeof(io->io_hdr.remote_sglist[0])) && (len_to_go > 0); i++) { - local_sglist[i].len = ctl_min(len_to_go, 131072); + local_sglist[i].len = MIN(len_to_go, 131072); CTL_SIZE_8B(local_dma_sglist[i].len, local_sglist[i].len); local_sglist[i].addr = @@ -13205,8 +13205,8 @@ ctl_datamove_remote_xfer(union ctl_io *i * also have enough slack left over at the end, though, * to round up to the next 8 byte boundary. */ - cur_len = ctl_min(local_sglist[i].len - local_used, - remote_sglist[j].len - remote_used); + cur_len = MIN(local_sglist[i].len - local_used, + remote_sglist[j].len - remote_used); /* * In this case, we have a size issue and need to decrease @@ -13705,7 +13705,7 @@ ctl_queue_sense(union ctl_io *io) } memcpy(&lun->pending_sense[initidx], &io->scsiio.sense_data, - ctl_min(sizeof(lun->pending_sense[initidx]), + MIN(sizeof(lun->pending_sense[initidx]), sizeof(io->scsiio.sense_data))); ctl_set_mask(lun->have_ca, initidx); mtx_unlock(&lun->lun_lock); Modified: stable/10/sys/cam/ctl/ctl.h ============================================================================== --- stable/10/sys/cam/ctl/ctl.h Sat Jan 3 13:10:23 2015 (r276615) +++ stable/10/sys/cam/ctl/ctl.h Sat Jan 3 13:11:39 2015 (r276616) @@ -40,7 +40,6 @@ #ifndef _CTL_H_ #define _CTL_H_ -#define ctl_min(x,y) (((x) < (y)) ? (x) : (y)) #define CTL_RETVAL_COMPLETE 0 #define CTL_RETVAL_QUEUED 1 #define CTL_RETVAL_ALLOCATED 2 Modified: stable/10/sys/cam/ctl/ctl_backend_block.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_backend_block.c Sat Jan 3 13:10:23 2015 (r276615) +++ stable/10/sys/cam/ctl/ctl_backend_block.c Sat Jan 3 13:11:39 2015 (r276616) @@ -2305,32 +2305,32 @@ ctl_be_block_create(struct ctl_be_block_ snprintf(tmpstr, sizeof(tmpstr), "MYSERIAL%4d", softc->num_luns); strncpy((char *)be_lun->ctl_be_lun.serial_num, tmpstr, - ctl_min(sizeof(be_lun->ctl_be_lun.serial_num), + MIN(sizeof(be_lun->ctl_be_lun.serial_num), sizeof(tmpstr))); /* Tell the user what we used for a serial number */ strncpy((char *)params->serial_num, tmpstr, - ctl_min(sizeof(params->serial_num), sizeof(tmpstr))); + MIN(sizeof(params->serial_num), sizeof(tmpstr))); } else { strncpy((char *)be_lun->ctl_be_lun.serial_num, params->serial_num, - ctl_min(sizeof(be_lun->ctl_be_lun.serial_num), + MIN(sizeof(be_lun->ctl_be_lun.serial_num), sizeof(params->serial_num))); } if ((params->flags & CTL_LUN_FLAG_DEVID) == 0) { snprintf(tmpstr, sizeof(tmpstr), "MYDEVID%4d", softc->num_luns); strncpy((char *)be_lun->ctl_be_lun.device_id, tmpstr, - ctl_min(sizeof(be_lun->ctl_be_lun.device_id), + MIN(sizeof(be_lun->ctl_be_lun.device_id), sizeof(tmpstr))); /* Tell the user what we used for a device ID */ strncpy((char *)params->device_id, tmpstr, - ctl_min(sizeof(params->device_id), sizeof(tmpstr))); + MIN(sizeof(params->device_id), sizeof(tmpstr))); } else { strncpy((char *)be_lun->ctl_be_lun.device_id, params->device_id, - ctl_min(sizeof(be_lun->ctl_be_lun.device_id), - sizeof(params->device_id))); + MIN(sizeof(be_lun->ctl_be_lun.device_id), + sizeof(params->device_id))); } TASK_INIT(&be_lun->io_task, /*priority*/0, ctl_be_block_worker, be_lun); Modified: stable/10/sys/cam/ctl/ctl_backend_ramdisk.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_backend_ramdisk.c Sat Jan 3 13:10:23 2015 (r276615) +++ stable/10/sys/cam/ctl/ctl_backend_ramdisk.c Sat Jan 3 13:11:39 2015 (r276616) @@ -313,8 +313,7 @@ ctl_backend_ramdisk_continue(union ctl_i sg_entries = (struct ctl_sg_entry *)io->scsiio.kern_data_ptr; for (i = 0, len_filled = 0; i < sg_filled; i++) { sg_entries[i].addr = softc->ramdisk_pages[i]; - sg_entries[i].len = ctl_min(PAGE_SIZE, - len - len_filled); + sg_entries[i].len = MIN(PAGE_SIZE, len - len_filled); len_filled += sg_entries[i].len; } io->io_hdr.flags |= CTL_FLAG_KDPTR_SGLIST; @@ -614,32 +613,32 @@ ctl_backend_ramdisk_create(struct ctl_be snprintf(tmpstr, sizeof(tmpstr), "MYSERIAL%4d", softc->num_luns); strncpy((char *)be_lun->ctl_be_lun.serial_num, tmpstr, - ctl_min(sizeof(be_lun->ctl_be_lun.serial_num), - sizeof(tmpstr))); + MIN(sizeof(be_lun->ctl_be_lun.serial_num), + sizeof(tmpstr))); /* Tell the user what we used for a serial number */ strncpy((char *)params->serial_num, tmpstr, - ctl_min(sizeof(params->serial_num), sizeof(tmpstr))); + MIN(sizeof(params->serial_num), sizeof(tmpstr))); } else { strncpy((char *)be_lun->ctl_be_lun.serial_num, params->serial_num, - ctl_min(sizeof(be_lun->ctl_be_lun.serial_num), - sizeof(params->serial_num))); + MIN(sizeof(be_lun->ctl_be_lun.serial_num), + sizeof(params->serial_num))); } if ((params->flags & CTL_LUN_FLAG_DEVID) == 0) { snprintf(tmpstr, sizeof(tmpstr), "MYDEVID%4d", softc->num_luns); strncpy((char *)be_lun->ctl_be_lun.device_id, tmpstr, - ctl_min(sizeof(be_lun->ctl_be_lun.device_id), - sizeof(tmpstr))); + MIN(sizeof(be_lun->ctl_be_lun.device_id), + sizeof(tmpstr))); /* Tell the user what we used for a device ID */ strncpy((char *)params->device_id, tmpstr, - ctl_min(sizeof(params->device_id), sizeof(tmpstr))); + MIN(sizeof(params->device_id), sizeof(tmpstr))); } else { strncpy((char *)be_lun->ctl_be_lun.device_id, params->device_id, - ctl_min(sizeof(be_lun->ctl_be_lun.device_id), - sizeof(params->device_id))); + MIN(sizeof(be_lun->ctl_be_lun.device_id), + sizeof(params->device_id))); } STAILQ_INIT(&be_lun->cont_queue); Modified: stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c Sat Jan 3 13:10:23 2015 (r276615) +++ stable/10/sys/cam/ctl/ctl_frontend_cam_sim.c Sat Jan 3 13:11:39 2015 (r276616) @@ -401,8 +401,8 @@ cfcs_datamove(union ctl_io *io) i < cam_sg_count && j < ctl_sg_count;) { uint8_t *cam_ptr, *ctl_ptr; - len_to_copy = ctl_min(cam_sglist[i].ds_len - cam_watermark, - ctl_sglist[j].len - ctl_watermark); + len_to_copy = MIN(cam_sglist[i].ds_len - cam_watermark, + ctl_sglist[j].len - ctl_watermark); cam_ptr = (uint8_t *)cam_sglist[i].ds_addr; cam_ptr = cam_ptr + cam_watermark; Modified: stable/10/sys/cam/ctl/ctl_frontend_internal.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend_internal.c Sat Jan 3 13:10:23 2015 (r276615) +++ stable/10/sys/cam/ctl/ctl_frontend_internal.c Sat Jan 3 13:11:39 2015 (r276616) @@ -499,8 +499,8 @@ cfi_datamove(union ctl_io *io) i < ext_sg_entries && j < kern_sg_entries;) { uint8_t *ext_ptr, *kern_ptr; - len_to_copy = ctl_min(ext_sglist[i].len - ext_watermark, - kern_sglist[j].len - kern_watermark); + len_to_copy = MIN(ext_sglist[i].len - ext_watermark, + kern_sglist[j].len - kern_watermark); ext_ptr = (uint8_t *)ext_sglist[i].addr; ext_ptr = ext_ptr + ext_watermark; @@ -1103,8 +1103,8 @@ cfi_metatask_bbr_errorparse(struct cfi_m metatask->taskinfo.bbrread.scsi_status = io->scsiio.scsi_status; memcpy(&metatask->taskinfo.bbrread.sense_data, &io->scsiio.sense_data, - ctl_min(sizeof(metatask->taskinfo.bbrread.sense_data), - sizeof(io->scsiio.sense_data))); + MIN(sizeof(metatask->taskinfo.bbrread.sense_data), + sizeof(io->scsiio.sense_data))); if (io->scsiio.scsi_status == SCSI_STATUS_RESERV_CONFLICT) { metatask->status = CFI_MT_ERROR; From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 13:12:49 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D6893C15; Sat, 3 Jan 2015 13:12:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C27D16649C; Sat, 3 Jan 2015 13:12:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03DCmnY042241; Sat, 3 Jan 2015 13:12:48 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03DCmFe042240; Sat, 3 Jan 2015 13:12:48 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201501031312.t03DCmFe042240@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 3 Jan 2015 13:12:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276617 - stable/10/sys/cam/ctl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 13:12:49 -0000 Author: mav Date: Sat Jan 3 13:12:47 2015 New Revision: 276617 URL: https://svnweb.freebsd.org/changeset/base/276617 Log: MFC r276141: Hide block device VPD pages for non-block devices. Modified: stable/10/sys/cam/ctl/ctl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl.c ============================================================================== --- stable/10/sys/cam/ctl/ctl.c Sat Jan 3 13:11:39 2015 (r276616) +++ stable/10/sys/cam/ctl/ctl.c Sat Jan 3 13:12:47 2015 (r276617) @@ -9601,6 +9601,7 @@ ctl_inquiry_evpd_supported(struct ctl_sc struct scsi_vpd_supported_pages *pages; int sup_page_size; struct ctl_lun *lun; + int p; lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; @@ -9634,27 +9635,30 @@ ctl_inquiry_evpd_supported(struct ctl_sc else pages->device = (SID_QUAL_LU_OFFLINE << 5) | T_DIRECT; - pages->length = SCSI_EVPD_NUM_SUPPORTED_PAGES; + p = 0; /* Supported VPD pages */ - pages->page_list[0] = SVPD_SUPPORTED_PAGES; + pages->page_list[p++] = SVPD_SUPPORTED_PAGES; /* Serial Number */ - pages->page_list[1] = SVPD_UNIT_SERIAL_NUMBER; + pages->page_list[p++] = SVPD_UNIT_SERIAL_NUMBER; /* Device Identification */ - pages->page_list[2] = SVPD_DEVICE_ID; + pages->page_list[p++] = SVPD_DEVICE_ID; /* Extended INQUIRY Data */ - pages->page_list[3] = SVPD_EXTENDED_INQUIRY_DATA; + pages->page_list[p++] = SVPD_EXTENDED_INQUIRY_DATA; /* Mode Page Policy */ - pages->page_list[4] = SVPD_MODE_PAGE_POLICY; + pages->page_list[p++] = SVPD_MODE_PAGE_POLICY; /* SCSI Ports */ - pages->page_list[5] = SVPD_SCSI_PORTS; + pages->page_list[p++] = SVPD_SCSI_PORTS; /* Third-party Copy */ - pages->page_list[6] = SVPD_SCSI_TPC; - /* Block limits */ - pages->page_list[7] = SVPD_BLOCK_LIMITS; - /* Block Device Characteristics */ - pages->page_list[8] = SVPD_BDC; - /* Logical Block Provisioning */ - pages->page_list[9] = SVPD_LBP; + pages->page_list[p++] = SVPD_SCSI_TPC; + if (lun != NULL && lun->be_lun->lun_type == T_DIRECT) { + /* Block limits */ + pages->page_list[p++] = SVPD_BLOCK_LIMITS; + /* Block Device Characteristics */ + pages->page_list[p++] = SVPD_BDC; + /* Logical Block Provisioning */ + pages->page_list[p++] = SVPD_LBP; + } + pages->length = p; ctl_set_success(ctsio); ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; @@ -10236,13 +10240,12 @@ ctl_inquiry_evpd_lbp(struct ctl_scsiio * static int ctl_inquiry_evpd(struct ctl_scsiio *ctsio) { + struct ctl_lun *lun; struct scsi_inquiry *cdb; int alloc_len, retval; + lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; cdb = (struct scsi_inquiry *)ctsio->cdb; - - retval = CTL_RETVAL_COMPLETE; - alloc_len = scsi_2btoul(cdb->length); switch (cdb->page_code) { @@ -10268,15 +10271,22 @@ ctl_inquiry_evpd(struct ctl_scsiio *ctsi retval = ctl_inquiry_evpd_tpc(ctsio, alloc_len); break; case SVPD_BLOCK_LIMITS: + if (lun == NULL || lun->be_lun->lun_type != T_DIRECT) + goto err; retval = ctl_inquiry_evpd_block_limits(ctsio, alloc_len); break; case SVPD_BDC: + if (lun == NULL || lun->be_lun->lun_type != T_DIRECT) + goto err; retval = ctl_inquiry_evpd_bdc(ctsio, alloc_len); break; case SVPD_LBP: + if (lun == NULL || lun->be_lun->lun_type != T_DIRECT) + goto err; retval = ctl_inquiry_evpd_lbp(ctsio, alloc_len); break; default: +err: ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 1, From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 13:36:59 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D705D431; Sat, 3 Jan 2015 13:36:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B95811780; Sat, 3 Jan 2015 13:36:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03DawIX051923; Sat, 3 Jan 2015 13:36:58 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03DavvF051919; Sat, 3 Jan 2015 13:36:57 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201501031336.t03DavvF051919@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 3 Jan 2015 13:36:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276618 - in stable/10/sys: cam/ctl dev/iscsi X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 13:36:59 -0000 Author: mav Date: Sat Jan 3 13:36:56 2015 New Revision: 276618 URL: https://svnweb.freebsd.org/changeset/base/276618 Log: MFC r274036 (by trasz): s/icl_pdu_new_bhs/icl_pdu_new/; no functional changes, just a little nicer code. Modified: stable/10/sys/cam/ctl/ctl_frontend_iscsi.c stable/10/sys/dev/iscsi/icl.c stable/10/sys/dev/iscsi/icl.h stable/10/sys/dev/iscsi/iscsi.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cam/ctl/ctl_frontend_iscsi.c ============================================================================== --- stable/10/sys/cam/ctl/ctl_frontend_iscsi.c Sat Jan 3 13:12:47 2015 (r276617) +++ stable/10/sys/cam/ctl/ctl_frontend_iscsi.c Sat Jan 3 13:36:56 2015 (r276618) @@ -191,7 +191,7 @@ static struct icl_pdu * cfiscsi_pdu_new_response(struct icl_pdu *request, int flags) { - return (icl_pdu_new_bhs(request->ip_conn, flags)); + return (icl_pdu_new(request->ip_conn, flags)); } static bool @@ -1057,7 +1057,7 @@ cfiscsi_callout(void *context) if (cs->cs_timeout < 2) return; - cp = icl_pdu_new_bhs(cs->cs_conn, M_NOWAIT); + cp = icl_pdu_new(cs->cs_conn, M_NOWAIT); if (cp == NULL) { CFISCSI_SESSION_WARN(cs, "failed to allocate memory"); return; @@ -1672,7 +1672,7 @@ cfiscsi_ioctl_terminate(struct ctl_iscsi strcmp(cs->cs_initiator_addr, citp->initiator_addr) != 0) continue; - response = icl_pdu_new_bhs(cs->cs_conn, M_NOWAIT); + response = icl_pdu_new(cs->cs_conn, M_NOWAIT); if (response == NULL) { /* * Oh well. Just terminate the connection. @@ -1722,7 +1722,7 @@ cfiscsi_ioctl_logout(struct ctl_iscsi *c strcmp(cs->cs_initiator_addr, cilp->initiator_addr) != 0) continue; - response = icl_pdu_new_bhs(cs->cs_conn, M_NOWAIT); + response = icl_pdu_new(cs->cs_conn, M_NOWAIT); if (response == NULL) { ci->status = CTL_ISCSI_ERROR; snprintf(ci->error_str, sizeof(ci->error_str), @@ -1892,7 +1892,7 @@ cfiscsi_ioctl_send(struct ctl_iscsi *ci) } } - ip = icl_pdu_new_bhs(cs->cs_conn, M_WAITOK); + ip = icl_pdu_new(cs->cs_conn, M_WAITOK); memcpy(ip->ip_bhs, cisp->bhs, sizeof(*ip->ip_bhs)); if (datalen > 0) { icl_pdu_append_data(ip, data, datalen, M_WAITOK); Modified: stable/10/sys/dev/iscsi/icl.c ============================================================================== --- stable/10/sys/dev/iscsi/icl.c Sat Jan 3 13:12:47 2015 (r276617) +++ stable/10/sys/dev/iscsi/icl.c Sat Jan 3 13:36:56 2015 (r276618) @@ -193,7 +193,7 @@ icl_pdu_free(struct icl_pdu *ip) * Allocate icl_pdu with empty BHS to fill up by the caller. */ struct icl_pdu * -icl_pdu_new_bhs(struct icl_conn *ic, int flags) +icl_pdu_new(struct icl_conn *ic, int flags) { struct icl_pdu *ip; Modified: stable/10/sys/dev/iscsi/icl.h ============================================================================== --- stable/10/sys/dev/iscsi/icl.h Sat Jan 3 13:12:47 2015 (r276617) +++ stable/10/sys/dev/iscsi/icl.h Sat Jan 3 13:36:56 2015 (r276618) @@ -57,7 +57,7 @@ struct icl_pdu { uint32_t ip_prv2; }; -struct icl_pdu *icl_pdu_new_bhs(struct icl_conn *ic, int flags); +struct icl_pdu *icl_pdu_new(struct icl_conn *ic, int flags); size_t icl_pdu_data_segment_length(const struct icl_pdu *ip); int icl_pdu_append_data(struct icl_pdu *ip, const void *addr, size_t len, int flags); void icl_pdu_get_data(struct icl_pdu *ip, size_t off, void *addr, size_t len); Modified: stable/10/sys/dev/iscsi/iscsi.c ============================================================================== --- stable/10/sys/dev/iscsi/iscsi.c Sat Jan 3 13:12:47 2015 (r276617) +++ stable/10/sys/dev/iscsi/iscsi.c Sat Jan 3 13:36:56 2015 (r276618) @@ -274,7 +274,7 @@ iscsi_session_logout(struct iscsi_sessio struct icl_pdu *request; struct iscsi_bhs_logout_request *bhslr; - request = icl_pdu_new_bhs(is->is_conn, M_NOWAIT); + request = icl_pdu_new(is->is_conn, M_NOWAIT); if (request == NULL) return; @@ -593,7 +593,7 @@ iscsi_callout(void *context) if (is->is_timeout < 2) return; - request = icl_pdu_new_bhs(is->is_conn, M_NOWAIT); + request = icl_pdu_new(is->is_conn, M_NOWAIT); if (request == NULL) { ISCSI_SESSION_WARN(is, "failed to allocate PDU"); return; @@ -811,7 +811,7 @@ iscsi_pdu_handle_nop_in(struct icl_pdu * icl_pdu_get_data(response, 0, data, datasize); } - request = icl_pdu_new_bhs(response->ip_conn, M_NOWAIT); + request = icl_pdu_new(response->ip_conn, M_NOWAIT); if (request == NULL) { ISCSI_SESSION_WARN(is, "failed to allocate memory; " "reconnecting"); @@ -1179,7 +1179,7 @@ iscsi_pdu_handle_r2t(struct icl_pdu *res return; } - request = icl_pdu_new_bhs(response->ip_conn, M_NOWAIT); + request = icl_pdu_new(response->ip_conn, M_NOWAIT); if (request == NULL) { icl_pdu_free(response); iscsi_session_reconnect(is); @@ -1583,7 +1583,7 @@ iscsi_ioctl_daemon_send(struct iscsi_sof } } - ip = icl_pdu_new_bhs(is->is_conn, M_WAITOK); + ip = icl_pdu_new(is->is_conn, M_WAITOK); memcpy(ip->ip_bhs, ids->ids_bhs, sizeof(*ip->ip_bhs)); if (datalen > 0) { error = icl_pdu_append_data(ip, data, datalen, M_WAITOK); @@ -2067,7 +2067,7 @@ iscsi_action_abort(struct iscsi_session return; } - request = icl_pdu_new_bhs(is->is_conn, M_NOWAIT); + request = icl_pdu_new(is->is_conn, M_NOWAIT); if (request == NULL) { ccb->ccb_h.status = CAM_RESRC_UNAVAIL; xpt_done(ccb); @@ -2121,7 +2121,7 @@ iscsi_action_scsiio(struct iscsi_session } #endif - request = icl_pdu_new_bhs(is->is_conn, M_NOWAIT); + request = icl_pdu_new(is->is_conn, M_NOWAIT); if (request == NULL) { if ((ccb->ccb_h.status & CAM_DEV_QFRZN) == 0) { xpt_freeze_devq(ccb->ccb_h.path, 1); From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 15:37:35 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5B72FDC3; Sat, 3 Jan 2015 15:37:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 472B02952; Sat, 3 Jan 2015 15:37:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03FbZo0008911; Sat, 3 Jan 2015 15:37:35 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03FbZ8t008910; Sat, 3 Jan 2015 15:37:35 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201501031537.t03FbZ8t008910@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sat, 3 Jan 2015 15:37:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276622 - stable/10/usr.sbin/pstat X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 15:37:35 -0000 Author: jilles Date: Sat Jan 3 15:37:34 2015 New Revision: 276622 URL: https://svnweb.freebsd.org/changeset/base/276622 Log: MFC r272963: pstat(8): Correct description of the SESS column in pstat -t. Modified: stable/10/usr.sbin/pstat/pstat.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/pstat/pstat.8 ============================================================================== --- stable/10/usr.sbin/pstat/pstat.8 Sat Jan 3 14:18:48 2015 (r276621) +++ stable/10/usr.sbin/pstat/pstat.8 Sat Jan 3 15:37:34 2015 (r276622) @@ -35,7 +35,7 @@ .\" @(#)pstat.8 8.5 (Berkeley) 5/13/94 .\" $FreeBSD$ .\" -.Dd August 20, 2008 +.Dd October 11, 2014 .Dt PSTAT 8 .Os .Sh NAME @@ -170,7 +170,7 @@ Low water mark for output. .It COL Calculated column position of terminal. .It SESS -Kernel address of the session structure. +Process ID of the session leader. .It PGID Process group for which this is the controlling terminal. .It STATE From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 15:39:05 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 98666FD6; Sat, 3 Jan 2015 15:39:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 84A232983; Sat, 3 Jan 2015 15:39:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03Fd5pc009145; Sat, 3 Jan 2015 15:39:05 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03Fd5vi009144; Sat, 3 Jan 2015 15:39:05 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201501031539.t03Fd5vi009144@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Sat, 3 Jan 2015 15:39:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r276623 - stable/9/usr.sbin/pstat X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 15:39:05 -0000 Author: jilles Date: Sat Jan 3 15:39:04 2015 New Revision: 276623 URL: https://svnweb.freebsd.org/changeset/base/276623 Log: MFC r272963: pstat(8): Correct description of the SESS column in pstat -t. Modified: stable/9/usr.sbin/pstat/pstat.8 Directory Properties: stable/9/usr.sbin/pstat/ (props changed) Modified: stable/9/usr.sbin/pstat/pstat.8 ============================================================================== --- stable/9/usr.sbin/pstat/pstat.8 Sat Jan 3 15:37:34 2015 (r276622) +++ stable/9/usr.sbin/pstat/pstat.8 Sat Jan 3 15:39:04 2015 (r276623) @@ -35,7 +35,7 @@ .\" @(#)pstat.8 8.5 (Berkeley) 5/13/94 .\" $FreeBSD$ .\" -.Dd August 20, 2008 +.Dd October 11, 2014 .Dt PSTAT 8 .Os .Sh NAME @@ -170,7 +170,7 @@ Low water mark for output. .It COL Calculated column position of terminal. .It SESS -Kernel address of the session structure. +Process ID of the session leader. .It PGID Process group for which this is the controlling terminal. .It STATE From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 16:24:28 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 716359FD; Sat, 3 Jan 2015 16:24:28 +0000 (UTC) Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4576D10CC; Sat, 3 Jan 2015 16:24:27 +0000 (UTC) Received: from [73.34.117.227] (helo=ilsoft.org) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Y7RUz-0009sY-7Q; Sat, 03 Jan 2015 16:24:21 +0000 Received: from revolution.hippie.lan (revolution.hippie.lan [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t03GOJft003931; Sat, 3 Jan 2015 09:24:19 -0700 (MST) (envelope-from ian@freebsd.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 73.34.117.227 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX19rrnfjYhw+XSrrWrkij7YE Message-ID: <1420302259.85983.26.camel@freebsd.org> Subject: Re: svn commit: r276596 - in head/sys/arm: arm include From: Ian Lepore To: Bruce Evans Date: Sat, 03 Jan 2015 09:24:19 -0700 In-Reply-To: <20150103184754.H1159@besplex.bde.org> References: <201501022346.t02NkRgd032775@svn.freebsd.org> <20150103184754.H1159@besplex.bde.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.8 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 16:24:28 -0000 On Sat, 2015-01-03 at 19:34 +1100, Bruce Evans wrote: > On Fri, 2 Jan 2015, Ian Lepore wrote: > > > Log: > > Fix alignment directives in arm asm code after clang 3.5 import. > > > > The ancient gas we've been using interprets .align 0 as align to the > > minimum required alignment for the current section. Clang's integrated > > assembler interprets it as align to a byte boundary. Fortunately both > > assemblers interpret a non-zero value as align to 2^N so just make sure > > we have appropriate non-zero values everywhere. > > > Modified: head/sys/arm/arm/bcopyinout.S > > ============================================================================== > > --- head/sys/arm/arm/bcopyinout.S Fri Jan 2 23:27:16 2015 (r276595) > > +++ head/sys/arm/arm/bcopyinout.S Fri Jan 2 23:46:26 2015 (r276596) > > @@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$"); > > #else > > > > .text > > - .align 0 > > + .align 2 > > This is still confusing. > > Doesn't clang on arm support .p2align? On x86, '.align N' means align to > boundary N, where N must be a power of 2. Alignment to boundary 2**N > can be done by expanding 2**N literally or using '.p2align N'. The latter > is better, and is always (?) used in FreeBSD sources. It was also > generated by gcc-3.3.3. gcc-4 broke this and generates .align, and clang > is bug for bug compatible with the newer gcc. > > .align used to mean power of 2 alignment on x86 too, but gas changed this > in 1995, or at least introduced .p2align then: When I was searching for info on this yesterday what I found was some old mail threads in various toolchain developer venues in which it was mentioned that x86 is the odd one for .align taking a byte count that must be a power of 2 and all other platforms have always had the 2**N interpretation. I also think arm was odd in its interpretation of .align 0; other platforms interpret it as byte-alignment. It leaves arm with no way to change from an alignment of >1 to 1, so this reinterpretation by the clang authors, while a bit inconvenient for old code, seems sensible. I was also thinking that maybe a good solution to this would be ALIGN_TEXT and ALIGN_DATA macros to consolidate the yuck into one place, but that's a project for another day, yesterday I just wanted to get the arm world working again. Before I start adding new macros I really want to investigate the possibilty of using real asm macros instead of CPP, if I can find a useful intersection of syntaxes between the various tools we have to use. -- Ian From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 16:48:09 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CFABDF0D; Sat, 3 Jan 2015 16:48:09 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC849144E; Sat, 3 Jan 2015 16:48:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03Gm9Mr042015; Sat, 3 Jan 2015 16:48:09 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03Gm9dX042014; Sat, 3 Jan 2015 16:48:09 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201501031648.t03Gm9dX042014@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sat, 3 Jan 2015 16:48:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276625 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 16:48:09 -0000 Author: imp Date: Sat Jan 3 16:48:08 2015 New Revision: 276625 URL: https://svnweb.freebsd.org/changeset/base/276625 Log: Always use -Wno-unknown-pragmas, not just for clang. Modified: head/sys/conf/kern.mk Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Sat Jan 3 16:04:28 2015 (r276624) +++ head/sys/conf/kern.mk Sat Jan 3 16:48:08 2015 (r276625) @@ -7,6 +7,7 @@ CWARNFLAGS?= -Wall -Wredundant-decls -Wn -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \ -Wundef -Wno-pointer-sign ${FORMAT_EXTENSIONS} \ -Wmissing-include-dirs -fdiagnostics-show-option \ + -Wno-unknown-pragmas \ ${CWARNEXTRA} # # The following flags are next up for working on: @@ -27,8 +28,7 @@ NO_WSOMETIMES_UNINITIALIZED= -Wno-error- # some incentive to fix them eventually. CWARNEXTRA?= -Wno-error-tautological-compare -Wno-error-empty-body \ -Wno-error-parentheses-equality -Wno-error-unused-function \ - -Wno-error-pointer-sign -Wno-error-format -Wno-error-parentheses \ - -Wno-unknown-pragmas + -Wno-error-pointer-sign -Wno-error-format -Wno-error-parentheses .endif .if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 40300 From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 17:21:20 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5E9CA5A4; Sat, 3 Jan 2015 17:21:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4AA2F64A76; Sat, 3 Jan 2015 17:21:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03HLKlt060965; Sat, 3 Jan 2015 17:21:20 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03HLKHp060964; Sat, 3 Jan 2015 17:21:20 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201501031721.t03HLKHp060964@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sat, 3 Jan 2015 17:21:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276626 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 17:21:20 -0000 Author: hselasky Date: Sat Jan 3 17:21:19 2015 New Revision: 276626 URL: https://svnweb.freebsd.org/changeset/base/276626 Log: Rework r276532 a bit. Always avoid recursing into the console drivers clients, hence they might not handle it very well. This change allows debugging mutex problems with kernel console drivers when "debug.witness.skipspin=0" is set in the boot environment. MFC after: 1 week Modified: head/sys/kern/kern_cons.c Modified: head/sys/kern/kern_cons.c ============================================================================== --- head/sys/kern/kern_cons.c Sat Jan 3 16:48:08 2015 (r276625) +++ head/sys/kern/kern_cons.c Sat Jan 3 17:21:19 2015 (r276626) @@ -512,6 +512,13 @@ cnputs(char *p) int unlock_reqd = 0; if (use_cnputs_mtx) { + /* + * NOTE: Debug prints and/or witness printouts in + * console driver clients can cause the "cnputs_mtx" + * mutex to recurse. Simply return if that happens. + */ + if (mtx_owned(&cnputs_mtx)) + return; mtx_lock_spin(&cnputs_mtx); unlock_reqd = 1; } @@ -601,13 +608,7 @@ static void cn_drvinit(void *unused) { - /* - * NOTE: Debug prints and/or witness printouts in console - * driver clients can cause the "cnputs_mtx" mutex to - * recurse. Make sure the "MTX_RECURSE" flags is set! - */ - mtx_init(&cnputs_mtx, "cnputs_mtx", NULL, MTX_SPIN | - MTX_NOWITNESS | MTX_RECURSE); + mtx_init(&cnputs_mtx, "cnputs_mtx", NULL, MTX_SPIN | MTX_NOWITNESS); use_cnputs_mtx = 1; } From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 18:09:55 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AD7A0940; Sat, 3 Jan 2015 18:09:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 99D2A220A; Sat, 3 Jan 2015 18:09:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03I9t0n083062; Sat, 3 Jan 2015 18:09:55 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03I9sZB083054; Sat, 3 Jan 2015 18:09:54 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201501031809.t03I9sZB083054@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 3 Jan 2015 18:09:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276627 - in head: lib/libc/gen libexec/rtld-elf sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 18:09:55 -0000 Author: kib Date: Sat Jan 3 18:09:53 2015 New Revision: 276627 URL: https://svnweb.freebsd.org/changeset/base/276627 Log: Add rtld private interface for dso to detect dynamic loading vs. static linking. Tested by: pho, antoine (exp-run) Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/lib/libc/gen/Symbol.map head/lib/libc/gen/dlfcn.c head/libexec/rtld-elf/Symbol.map head/libexec/rtld-elf/rtld.c head/libexec/rtld-elf/rtld.h head/sys/sys/link_elf.h Modified: head/lib/libc/gen/Symbol.map ============================================================================== --- head/lib/libc/gen/Symbol.map Sat Jan 3 17:21:19 2015 (r276626) +++ head/lib/libc/gen/Symbol.map Sat Jan 3 18:09:53 2015 (r276627) @@ -487,6 +487,7 @@ FBSDprivate_1.0 { _rtld_atfork_post; _rtld_error; /* for private use */ _rtld_get_stack_prot; + _rtld_is_dlopened; _rtld_thread_init; /* for private use */ __elf_phdr_match_addr; _err; Modified: head/lib/libc/gen/dlfcn.c ============================================================================== --- head/lib/libc/gen/dlfcn.c Sat Jan 3 17:21:19 2015 (r276626) +++ head/lib/libc/gen/dlfcn.c Sat Jan 3 18:09:53 2015 (r276627) @@ -233,3 +233,10 @@ _rtld_get_stack_prot(void) return (PROT_EXEC | PROT_READ | PROT_WRITE); } +#pragma weak _rtld_is_dlopened +int +_rtld_is_dlopened(void *arg) +{ + + return (0); +} Modified: head/libexec/rtld-elf/Symbol.map ============================================================================== --- head/libexec/rtld-elf/Symbol.map Sat Jan 3 17:21:19 2015 (r276626) +++ head/libexec/rtld-elf/Symbol.map Sat Jan 3 18:09:53 2015 (r276627) @@ -30,5 +30,6 @@ FBSDprivate_1.0 { _rtld_atfork_post; _rtld_addr_phdr; _rtld_get_stack_prot; + _rtld_is_dlopened; _r_debug_postinit; }; Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Sat Jan 3 17:21:19 2015 (r276626) +++ head/libexec/rtld-elf/rtld.c Sat Jan 3 18:09:53 2015 (r276627) @@ -2222,6 +2222,7 @@ do_load_object(int fd, const char *name, return (NULL); } + obj->dlopened = (flags & RTLD_LO_DLOPEN) != 0; *obj_tail = obj; obj_tail = &obj->next; obj_count++; @@ -4884,6 +4885,27 @@ _rtld_get_stack_prot(void) return (stack_prot); } +int +_rtld_is_dlopened(void *arg) +{ + Obj_Entry *obj; + RtldLockState lockstate; + int res; + + rlock_acquire(rtld_bind_lock, &lockstate); + obj = dlcheck(arg); + if (obj == NULL) + obj = obj_from_addr(arg); + if (obj == NULL) { + _rtld_error("No shared object contains address"); + lock_release(rtld_bind_lock, &lockstate); + return (-1); + } + res = obj->dlopened ? 1 : 0; + lock_release(rtld_bind_lock, &lockstate); + return (res); +} + static void map_stacks_exec(RtldLockState *lockstate) { Modified: head/libexec/rtld-elf/rtld.h ============================================================================== --- head/libexec/rtld-elf/rtld.h Sat Jan 3 17:21:19 2015 (r276626) +++ head/libexec/rtld-elf/rtld.h Sat Jan 3 18:09:53 2015 (r276627) @@ -275,6 +275,7 @@ typedef struct Struct_Obj_Entry { bool crt_no_init : 1; /* Object' crt does not call _init/_fini */ bool valid_hash_sysv : 1; /* A valid System V hash hash tag is available */ bool valid_hash_gnu : 1; /* A valid GNU hash tag is available */ + bool dlopened : 1; /* dlopen()-ed (vs. load statically) */ struct link_map linkmap; /* For GDB and dlinfo() */ Objlist dldags; /* Object belongs to these dlopened DAGs (%) */ Modified: head/sys/sys/link_elf.h ============================================================================== --- head/sys/sys/link_elf.h Sat Jan 3 17:21:19 2015 (r276626) +++ head/sys/sys/link_elf.h Sat Jan 3 18:09:53 2015 (r276627) @@ -94,6 +94,7 @@ typedef int (*__dl_iterate_hdr_callback) extern int dl_iterate_phdr(__dl_iterate_hdr_callback, void *); int _rtld_addr_phdr(const void *, struct dl_phdr_info *); int _rtld_get_stack_prot(void); +int _rtld_is_dlopened(void *); #ifdef __ARM_EABI__ void * dl_unwind_find_exidx(const void *, int *); From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 18:27:05 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 06347D7C; Sat, 3 Jan 2015 18:27:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E6B0C34CB; Sat, 3 Jan 2015 18:27:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03IR4wl092406; Sat, 3 Jan 2015 18:27:04 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03IR4fT092405; Sat, 3 Jan 2015 18:27:04 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201501031827.t03IR4fT092405@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 3 Jan 2015 18:27:04 +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: r276628 - stable/10/sys/dev/iscsi X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 18:27:05 -0000 Author: mav Date: Sat Jan 3 18:27:03 2015 New Revision: 276628 URL: https://svnweb.freebsd.org/changeset/base/276628 Log: MFC r274033 (by trasz): s/icl_pdu_new/icl_pdu_new_empty/g; no functional changes. Modified: stable/10/sys/dev/iscsi/icl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/iscsi/icl.c ============================================================================== --- stable/10/sys/dev/iscsi/icl.c Sat Jan 3 18:09:53 2015 (r276627) +++ stable/10/sys/dev/iscsi/icl.c Sat Jan 3 18:27:03 2015 (r276628) @@ -152,7 +152,7 @@ icl_conn_receive(struct icl_conn *ic, si } static struct icl_pdu * -icl_pdu_new(struct icl_conn *ic, int flags) +icl_pdu_new_empty(struct icl_conn *ic, int flags) { struct icl_pdu *ip; @@ -197,7 +197,7 @@ icl_pdu_new(struct icl_conn *ic, int fla { struct icl_pdu *ip; - ip = icl_pdu_new(ic, flags); + ip = icl_pdu_new_empty(ic, flags); if (ip == NULL) return (NULL); @@ -547,7 +547,7 @@ icl_conn_receive_pdu(struct icl_conn *ic if (ic->ic_receive_state == ICL_CONN_STATE_BHS) { KASSERT(ic->ic_receive_pdu == NULL, ("ic->ic_receive_pdu != NULL")); - request = icl_pdu_new(ic, M_NOWAIT); + request = icl_pdu_new_empty(ic, M_NOWAIT); if (request == NULL) { ICL_DEBUG("failed to allocate PDU; " "dropping connection"); From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 18:35:30 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D739F2C5; Sat, 3 Jan 2015 18:35:30 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C367E35E6; Sat, 3 Jan 2015 18:35:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03IZUmw097083; Sat, 3 Jan 2015 18:35:30 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03IZU2h097082; Sat, 3 Jan 2015 18:35:30 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201501031835.t03IZU2h097082@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 3 Jan 2015 18:35:30 +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: r276629 - stable/10/sys/dev/iscsi X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 18:35:31 -0000 Author: mav Date: Sat Jan 3 18:35:29 2015 New Revision: 276629 URL: https://svnweb.freebsd.org/changeset/base/276629 Log: MFC r272765: Remove one second wait for threads exit from icl_conn_close(). Switch it from polling with pause() to using cv_wait()/cv_signal(). Modified: stable/10/sys/dev/iscsi/icl.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/iscsi/icl.c ============================================================================== --- stable/10/sys/dev/iscsi/icl.c Sat Jan 3 18:27:03 2015 (r276628) +++ stable/10/sys/dev/iscsi/icl.c Sat Jan 3 18:35:29 2015 (r276629) @@ -776,6 +776,7 @@ icl_receive_thread(void *arg) ICL_CONN_LOCK(ic); ic->ic_receive_running = false; + cv_signal(&ic->ic_send_cv); ICL_CONN_UNLOCK(ic); kthread_exit(); } @@ -1026,6 +1027,7 @@ icl_send_thread(void *arg) STAILQ_CONCAT(&ic->ic_to_send, &queue); ic->ic_send_running = false; + cv_signal(&ic->ic_send_cv); ICL_CONN_UNLOCK(ic); kthread_exit(); } @@ -1330,15 +1332,11 @@ icl_conn_close(struct icl_conn *ic) /* * Wake up the threads, so they can properly terminate. */ - cv_signal(&ic->ic_receive_cv); - cv_signal(&ic->ic_send_cv); while (ic->ic_receive_running || ic->ic_send_running) { //ICL_DEBUG("waiting for send/receive threads to terminate"); - ICL_CONN_UNLOCK(ic); cv_signal(&ic->ic_receive_cv); cv_signal(&ic->ic_send_cv); - pause("icl_close", 1 * hz); - ICL_CONN_LOCK(ic); + cv_wait(&ic->ic_send_cv, ic->ic_lock); } //ICL_DEBUG("send/receive threads terminated"); From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 18:38:55 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 398E0513; Sat, 3 Jan 2015 18:38:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 228AA363B; Sat, 3 Jan 2015 18:38:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03Ictdw097664; Sat, 3 Jan 2015 18:38:55 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03Iclot097606; Sat, 3 Jan 2015 18:38:47 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201501031838.t03Iclot097606@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 3 Jan 2015 18:38:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276630 - in head: contrib/jemalloc/include/jemalloc/internal contrib/jemalloc/src lib/libc lib/libc/compat-43 lib/libc/gen lib/libc/include lib/libc/stdlib lib/libc/stdlib/jemalloc lib... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 18:38:55 -0000 Author: kib Date: Sat Jan 3 18:38:46 2015 New Revision: 276630 URL: https://svnweb.freebsd.org/changeset/base/276630 Log: Fix known issues which blow up the process after dlopen("libthr.so") (or loading a dso linked to libthr.so into process which was not linked against threading library). - Remove libthr interposers of the libc functions, including __error(). Instead, functions calls are indirected through the interposing table, similar to how pthread stubs in libc are already done. Libc by default points either to syscall trampolines or to existing libc implementations. On libthr load, libthr rewrites the pointers to the cancellable implementations already in libthr. The interposition table is separate from pthreads stubs indirection table to not pull pthreads stubs into static binaries. - Postpone the malloc(3) internal mutexes initialization until libthr is loaded. This avoids recursion between calloc(3) and static pthread_mutex_t initialization. - Reinstall signal handlers with wrapper on libthr load. The _rtld_is_dlopened(3) is used to avoid useless calls to sigaction(2) when libthr is statically referenced from the main binary. In the process, fix openat(2), swapcontext(2) and setcontext(2) interposing. The libc symbols were exported at different versions than libthr interposers. Export both libc and libthr versions from libc now, with default set to the higher version from libthr. Remove unused and disconnected swapcontext(3) userspace implementation from libc/gen. No objections from: deischen Tested by: pho, antoine (exp-run) (previous versions) Sponsored by: The FreeBSD Foundation MFC after: 1 week Added: head/lib/libc/gen/__pthread_mutex_init_calloc_cb_stub.c (contents, props changed) head/lib/libc/sys/accept.c (contents, props changed) head/lib/libc/sys/accept4.c (contents, props changed) head/lib/libc/sys/aio_suspend.c (contents, props changed) head/lib/libc/sys/close.c (contents, props changed) head/lib/libc/sys/connect.c (contents, props changed) head/lib/libc/sys/fork.c (contents, props changed) head/lib/libc/sys/fsync.c (contents, props changed) head/lib/libc/sys/interposing_table.c (contents, props changed) head/lib/libc/sys/msync.c (contents, props changed) head/lib/libc/sys/nanosleep.c (contents, props changed) head/lib/libc/sys/open.c (contents, props changed) head/lib/libc/sys/openat.c (contents, props changed) head/lib/libc/sys/poll.c (contents, props changed) head/lib/libc/sys/pselect.c (contents, props changed) head/lib/libc/sys/read.c (contents, props changed) head/lib/libc/sys/readv.c (contents, props changed) head/lib/libc/sys/recvfrom.c (contents, props changed) head/lib/libc/sys/recvmsg.c (contents, props changed) head/lib/libc/sys/select.c (contents, props changed) head/lib/libc/sys/sendmsg.c (contents, props changed) head/lib/libc/sys/sendto.c (contents, props changed) head/lib/libc/sys/setcontext.c (contents, props changed) head/lib/libc/sys/sigaction.c (contents, props changed) head/lib/libc/sys/sigprocmask.c (contents, props changed) head/lib/libc/sys/sigsuspend.c (contents, props changed) head/lib/libc/sys/sigtimedwait.c (contents, props changed) head/lib/libc/sys/sigwaitinfo.c (contents, props changed) head/lib/libc/sys/swapcontext.c - copied, changed from r276627, head/lib/libc/gen/swapcontext.c head/lib/libc/sys/wait4.c (contents, props changed) head/lib/libc/sys/write.c (contents, props changed) head/lib/libc/sys/writev.c (contents, props changed) Deleted: head/lib/libc/gen/swapcontext.c Modified: head/contrib/jemalloc/include/jemalloc/internal/mutex.h head/contrib/jemalloc/src/jemalloc.c head/contrib/jemalloc/src/mutex.c head/lib/libc/Makefile head/lib/libc/compat-43/Symbol.map head/lib/libc/compat-43/creat.c head/lib/libc/gen/Makefile.inc head/lib/libc/gen/Symbol.map head/lib/libc/gen/pause.c head/lib/libc/gen/raise.c head/lib/libc/gen/sleep.c head/lib/libc/gen/termios.c head/lib/libc/gen/usleep.c head/lib/libc/gen/wait.c head/lib/libc/gen/wait3.c head/lib/libc/gen/waitpid.c head/lib/libc/include/libc_private.h head/lib/libc/stdlib/Symbol.map head/lib/libc/stdlib/jemalloc/Symbol.map head/lib/libc/stdlib/system.c head/lib/libc/sys/Makefile.inc head/lib/libc/sys/Symbol.map head/lib/libc/sys/__error.c head/lib/libc/sys/fcntl.c head/lib/libc/sys/sigwait.c head/lib/libthr/Makefile head/lib/libthr/pthread.map head/lib/libthr/sys/thr_error.c head/lib/libthr/thread/thr_create.c head/lib/libthr/thread/thr_fork.c head/lib/libthr/thread/thr_init.c head/lib/libthr/thread/thr_printf.c head/lib/libthr/thread/thr_private.h head/lib/libthr/thread/thr_sig.c head/lib/libthr/thread/thr_syscalls.c Modified: head/contrib/jemalloc/include/jemalloc/internal/mutex.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/mutex.h Sat Jan 3 18:35:29 2015 (r276629) +++ head/contrib/jemalloc/include/jemalloc/internal/mutex.h Sat Jan 3 18:38:46 2015 (r276630) @@ -49,6 +49,7 @@ bool malloc_mutex_init(malloc_mutex_t *m void malloc_mutex_prefork(malloc_mutex_t *mutex); void malloc_mutex_postfork_parent(malloc_mutex_t *mutex); void malloc_mutex_postfork_child(malloc_mutex_t *mutex); +bool malloc_mutex_first_thread(void); bool mutex_boot(void); #endif /* JEMALLOC_H_EXTERNS */ Modified: head/contrib/jemalloc/src/jemalloc.c ============================================================================== --- head/contrib/jemalloc/src/jemalloc.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/contrib/jemalloc/src/jemalloc.c Sat Jan 3 18:38:46 2015 (r276630) @@ -2061,6 +2061,13 @@ jemalloc_postfork_child(void) ctl_postfork_child(); } +void +_malloc_first_thread(void) +{ + + (void)malloc_mutex_first_thread(); +} + /******************************************************************************/ /* * The following functions are used for TLS allocation/deallocation in static Modified: head/contrib/jemalloc/src/mutex.c ============================================================================== --- head/contrib/jemalloc/src/mutex.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/contrib/jemalloc/src/mutex.c Sat Jan 3 18:38:46 2015 (r276630) @@ -67,15 +67,15 @@ pthread_create(pthread_t *__restrict thr JEMALLOC_EXPORT int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, void *(calloc_cb)(size_t, size_t)); -__weak_reference(_pthread_mutex_init_calloc_cb_stub, - _pthread_mutex_init_calloc_cb); - +#pragma weak _pthread_mutex_init_calloc_cb int -_pthread_mutex_init_calloc_cb_stub(pthread_mutex_t *mutex, +_pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, void *(calloc_cb)(size_t, size_t)) { - return (0); + return (((int (*)(pthread_mutex_t *, void *(*)(size_t, size_t))) + __libc_interposing[INTERPOS__pthread_mutex_init_calloc_cb])( + mutex, calloc_cb)); } #endif @@ -144,7 +144,7 @@ malloc_mutex_postfork_child(malloc_mutex } bool -mutex_boot(void) +malloc_mutex_first_thread(void) { #ifdef JEMALLOC_MUTEX_INIT_CB @@ -158,3 +158,14 @@ mutex_boot(void) #endif return (false); } + +bool +mutex_boot(void) +{ + +#ifndef JEMALLOC_MUTEX_INIT_CB + return (malloc_mutex_first_thread()); +#else + return (false); +#endif +} Modified: head/lib/libc/Makefile ============================================================================== --- head/lib/libc/Makefile Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/Makefile Sat Jan 3 18:38:46 2015 (r276630) @@ -156,6 +156,10 @@ libkern.${LIBC_ARCH}:: ${KMSRCS} cp -fp ${.ALLSRC} ${DESTDIR}/sys/libkern/${LIBC_ARCH} .endif +.if ${MK_SYSCALL_COMPAT} != "no" +CFLAGS+=-DSYSCALL_COMPAT +.endif + .include .include Modified: head/lib/libc/compat-43/Symbol.map ============================================================================== --- head/lib/libc/compat-43/Symbol.map Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/compat-43/Symbol.map Sat Jan 3 18:38:46 2015 (r276630) @@ -28,4 +28,5 @@ FBSD_1.2 { FBSDprivate_1.0 { __creat; _creat; + __libc_creat; }; Modified: head/lib/libc/compat-43/creat.c ============================================================================== --- head/lib/libc/compat-43/creat.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/compat-43/creat.c Sat Jan 3 18:38:46 2015 (r276630) @@ -36,11 +36,23 @@ __FBSDID("$FreeBSD$"); #include "namespace.h" #include #include "un-namespace.h" +#include "libc_private.h" +__weak_reference(__libc_creat, __creat); +__weak_reference(__libc_creat, _creat); + +#pragma weak creat int -__creat(const char *path, mode_t mode) +creat(const char *path, mode_t mode) { - return(_open(path, O_WRONLY|O_CREAT|O_TRUNC, mode)); + + return (((int (*)(const char *, mode_t)) + __libc_interposing[INTERPOS_creat])(path, mode)); +} + +int +__libc_creat(const char *path, mode_t mode) +{ + + return(__sys_open(path, O_WRONLY | O_CREAT | O_TRUNC, mode)); } -__weak_reference(__creat, creat); -__weak_reference(__creat, _creat); Modified: head/lib/libc/gen/Makefile.inc ============================================================================== --- head/lib/libc/gen/Makefile.inc Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/Makefile.inc Sat Jan 3 18:38:46 2015 (r276630) @@ -5,6 +5,7 @@ .PATH: ${LIBC_SRCTOP}/${LIBC_ARCH}/gen ${LIBC_SRCTOP}/gen SRCS+= __getosreldate.c \ + __pthread_mutex_init_calloc_cb_stub.c \ __xuname.c \ _once_stub.c \ _pthread_stubs.c \ Modified: head/lib/libc/gen/Symbol.map ============================================================================== --- head/lib/libc/gen/Symbol.map Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/Symbol.map Sat Jan 3 18:38:46 2015 (r276630) @@ -533,6 +533,15 @@ FBSDprivate_1.0 { _libc_sem_post_compat; _libc_sem_getvalue_compat; + __libc_pause; + __libc_raise; + __libc_sleep; + __libc_tcdrain; + __libc_usleep; + __libc_wait; + __libc_wait3; + __libc_waitpid; + __elf_aux_vector; __pthread_map_stacks_exec; __fillcontextx; Added: head/lib/libc/gen/__pthread_mutex_init_calloc_cb_stub.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/gen/__pthread_mutex_init_calloc_cb_stub.c Sat Jan 3 18:38:46 2015 (r276630) @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2014 The FreeBSD Foundation. + * All rights reserved. + * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice(s), this list of conditions and the following disclaimer as + * the first lines of this file unmodified other than the possible + * addition of one or more copyright notices. + * 2. Redistributions in binary form must reproduce the above copyright + * notice(s), this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include "libc_private.h" + +int +_pthread_mutex_init_calloc_cb_stub(pthread_mutex_t *mutex, + void *(calloc_cb)(size_t, size_t)) +{ + + return (0); +} Modified: head/lib/libc/gen/pause.c ============================================================================== --- head/lib/libc/gen/pause.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/pause.c Sat Jan 3 18:38:46 2015 (r276630) @@ -38,11 +38,13 @@ __FBSDID("$FreeBSD$"); #include #include "un-namespace.h" +#include "libc_private.h" + /* * Backwards compatible pause. */ int -__pause(void) +__libc_pause(void) { sigset_t oset; @@ -50,5 +52,15 @@ __pause(void) return (-1); return (_sigsuspend(&oset)); } -__weak_reference(__pause, pause); -__weak_reference(__pause, _pause); + +#pragma weak pause +int +pause(void) +{ + + return (((int (*)(void)) + __libc_interposing[INTERPOS_pause])()); +} + +__weak_reference(__libc_pause, __pause); +__weak_reference(__libc_pause, _pause); Modified: head/lib/libc/gen/raise.c ============================================================================== --- head/lib/libc/gen/raise.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/raise.c Sat Jan 3 18:38:46 2015 (r276630) @@ -36,11 +36,23 @@ __FBSDID("$FreeBSD$"); #include #include -__weak_reference(__raise, raise); -__weak_reference(__raise, _raise); +#include "libc_private.h" +__weak_reference(__libc_raise, __raise); +__weak_reference(__libc_raise, _raise); + +#pragma weak raise int -__raise(int s) +raise(int s) { - return(kill(getpid(), s)); + + return (((int (*)(int)) + __libc_interposing[INTERPOS_raise])(s)); +} + +int +__libc_raise(int s) +{ + + return (kill(getpid(), s)); } Modified: head/lib/libc/gen/sleep.c ============================================================================== --- head/lib/libc/gen/sleep.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/sleep.c Sat Jan 3 18:38:46 2015 (r276630) @@ -40,8 +40,19 @@ __FBSDID("$FreeBSD$"); #include #include "un-namespace.h" +#include "libc_private.h" + +#pragma weak sleep +unsigned int +sleep(unsigned int seconds) +{ + + return (((unsigned int (*)(unsigned int)) + __libc_interposing[INTERPOS_sleep])(seconds)); +} + unsigned int -__sleep(unsigned int seconds) +__libc_sleep(unsigned int seconds) { struct timespec time_to_sleep; struct timespec time_remaining; @@ -51,7 +62,7 @@ __sleep(unsigned int seconds) * the maximum value for a time_t is >= INT_MAX. */ if (seconds > INT_MAX) - return (seconds - INT_MAX + __sleep(INT_MAX)); + return (seconds - INT_MAX + __libc_sleep(INT_MAX)); time_to_sleep.tv_sec = seconds; time_to_sleep.tv_nsec = 0; @@ -63,5 +74,5 @@ __sleep(unsigned int seconds) (time_remaining.tv_nsec != 0)); /* round up */ } -__weak_reference(__sleep, sleep); -__weak_reference(__sleep, _sleep); +__weak_reference(__libc_sleep, __sleep); +__weak_reference(__libc_sleep, _sleep); Modified: head/lib/libc/gen/termios.c ============================================================================== --- head/lib/libc/gen/termios.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/termios.c Sat Jan 3 18:38:46 2015 (r276630) @@ -46,6 +46,8 @@ __FBSDID("$FreeBSD$"); #include #include "un-namespace.h" +#include "libc_private.h" + int tcgetattr(int fd, struct termios *t) { @@ -208,13 +210,23 @@ tcsendbreak(int fd, int len __unused) } int -__tcdrain(int fd) +__libc_tcdrain(int fd) { + return (_ioctl(fd, TIOCDRAIN, 0)); } -__weak_reference(__tcdrain, tcdrain); -__weak_reference(__tcdrain, _tcdrain); +#pragma weak tcdrain +int +tcdrain(int fd) +{ + + return (((int (*)(int)) + __libc_interposing[INTERPOS_tcdrain])(fd)); +} + +__weak_reference(__libc_tcdrain, __tcdrain); +__weak_reference(__libc_tcdrain, _tcdrain); int tcflush(int fd, int which) Modified: head/lib/libc/gen/usleep.c ============================================================================== --- head/lib/libc/gen/usleep.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/usleep.c Sat Jan 3 18:38:46 2015 (r276630) @@ -38,8 +38,19 @@ __FBSDID("$FreeBSD$"); #include #include "un-namespace.h" +#include "libc_private.h" + +#pragma weak usleep +int +usleep(useconds_t useconds) +{ + + return (((int (*)(useconds_t)) + __libc_interposing[INTERPOS_usleep])(useconds)); +} + int -__usleep(useconds_t useconds) +__libc_usleep(useconds_t useconds) { struct timespec time_to_sleep; @@ -48,5 +59,5 @@ __usleep(useconds_t useconds) return (_nanosleep(&time_to_sleep, NULL)); } -__weak_reference(__usleep, usleep); -__weak_reference(__usleep, _usleep); +__weak_reference(__libc_usleep, __usleep); +__weak_reference(__libc_usleep, _usleep); Modified: head/lib/libc/gen/wait.c ============================================================================== --- head/lib/libc/gen/wait.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/wait.c Sat Jan 3 18:38:46 2015 (r276630) @@ -40,11 +40,23 @@ __FBSDID("$FreeBSD$"); #include #include "un-namespace.h" +#include "libc_private.h" + +#pragma weak wait pid_t -__wait(int *istat) +wait(int *istat) { - return (_wait4(WAIT_ANY, istat, 0, (struct rusage *)0)); + + return (((pid_t (*)(int *)) + __libc_interposing[INTERPOS_wait])(istat)); +} + +pid_t +__libc_wait(int *istat) +{ + + return (__sys_wait4(WAIT_ANY, istat, 0, NULL)); } -__weak_reference(__wait, wait); -__weak_reference(__wait, _wait); +__weak_reference(__libc_wait, __wait); +__weak_reference(__libc_wait, _wait); Modified: head/lib/libc/gen/wait3.c ============================================================================== --- head/lib/libc/gen/wait3.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/wait3.c Sat Jan 3 18:38:46 2015 (r276630) @@ -40,11 +40,22 @@ __FBSDID("$FreeBSD$"); #include #include "un-namespace.h" +#include "libc_private.h" + +#pragma weak wait3 +pid_t +wait3(int *istat, int options, struct rusage *rup) +{ + + return (((pid_t (*)(int *, int, struct rusage *)) + __libc_interposing[INTERPOS_wait3])(istat, options, rup)); +} + +__weak_reference(__libc_wait3, __wait3); + pid_t -wait3(istat, options, rup) - int *istat; - int options; - struct rusage *rup; +__libc_wait3(int *istat, int options, struct rusage *rup) { - return (_wait4(WAIT_ANY, istat, options, rup)); + + return (__sys_wait4(WAIT_ANY, istat, options, rup)); } Modified: head/lib/libc/gen/waitpid.c ============================================================================== --- head/lib/libc/gen/waitpid.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/gen/waitpid.c Sat Jan 3 18:38:46 2015 (r276630) @@ -40,11 +40,23 @@ __FBSDID("$FreeBSD$"); #include #include "un-namespace.h" +#include "libc_private.h" + +#pragma weak waitpid pid_t -__waitpid(pid_t pid, int *istat, int options) +waitpid(pid_t pid, int *istat, int options) { - return (_wait4(pid, istat, options, (struct rusage *)0)); + + return (((pid_t (*)(pid_t, int *, int)) + __libc_interposing[INTERPOS_waitpid])(pid, istat, options)); +} + +pid_t +__libc_waitpid(pid_t pid, int *istat, int options) +{ + + return (__sys_wait4(pid, istat, options, NULL)); } -__weak_reference(__waitpid, waitpid); -__weak_reference(__waitpid, _waitpid); +__weak_reference(__libc_waitpid, __waitpid); +__weak_reference(__libc_waitpid, _waitpid); Modified: head/lib/libc/include/libc_private.h ============================================================================== --- head/lib/libc/include/libc_private.h Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/include/libc_private.h Sat Jan 3 18:38:46 2015 (r276630) @@ -173,6 +173,61 @@ typedef pthread_func_t pthread_func_entr extern pthread_func_entry_t __thr_jtable[]; +extern int *(*__error_selector)(void); +int _pthread_mutex_init_calloc_cb_stub(pthread_mutex_t *mutex, + void *(calloc_cb)(__size_t, __size_t)); + +typedef int (*interpos_func_t)(void); +interpos_func_t *__libc_interposing_slot(int interposno); +extern interpos_func_t __libc_interposing[]; + +enum { + INTERPOS_accept, + INTERPOS_accept4, + INTERPOS_aio_suspend, + INTERPOS_close, + INTERPOS_connect, + INTERPOS_creat, + INTERPOS_fcntl, + INTERPOS_fsync, + INTERPOS_fork, + INTERPOS_msync, + INTERPOS_nanosleep, + INTERPOS_open, + INTERPOS_openat, + INTERPOS_poll, + INTERPOS_pselect, + INTERPOS_raise, + INTERPOS_recvfrom, + INTERPOS_recvmsg, + INTERPOS_select, + INTERPOS_sendmsg, + INTERPOS_sendto, + INTERPOS_setcontext, + INTERPOS_sigaction, + INTERPOS_sigprocmask, + INTERPOS_sigsuspend, + INTERPOS_sigwait, + INTERPOS_sigtimedwait, + INTERPOS_sigwaitinfo, + INTERPOS_swapcontext, + INTERPOS_system, + INTERPOS_sleep, + INTERPOS_tcdrain, + INTERPOS_usleep, + INTERPOS_pause, + INTERPOS_read, + INTERPOS_readv, + INTERPOS_wait, + INTERPOS_wait3, + INTERPOS_wait4, + INTERPOS_waitpid, + INTERPOS_write, + INTERPOS_writev, + INTERPOS__pthread_mutex_init_calloc_cb, + INTERPOS_MAX +}; + /* * yplib internal interfaces */ @@ -215,42 +270,107 @@ void _malloc_thread_cleanup(void); void _malloc_prefork(void); void _malloc_postfork(void); +void _malloc_first_thread(void); + /* * Function to clean up streams, called from abort() and exit(). */ -extern void (*__cleanup)(void) __hidden; +void (*__cleanup)(void) __hidden; /* * Get kern.osreldate to detect ABI revisions. Explicitly * ignores value of $OSVERSION and caches result. Prototypes * for the wrapped "new" pad-less syscalls are here for now. */ -extern int __getosreldate(void); +int __getosreldate(void); #include -/* Without pad */ -extern __off_t __sys_lseek(int, __off_t, int); -extern int __sys_ftruncate(int, __off_t); -extern int __sys_truncate(const char *, __off_t); -extern __ssize_t __sys_pread(int, void *, __size_t, __off_t); -extern __ssize_t __sys_pwrite(int, const void *, __size_t, __off_t); -extern void * __sys_mmap(void *, __size_t, int, int, int, __off_t); +#include /* With pad */ -extern __off_t __sys_freebsd6_lseek(int, int, __off_t, int); -extern int __sys_freebsd6_ftruncate(int, int, __off_t); -extern int __sys_freebsd6_truncate(const char *, int, __off_t); -extern __ssize_t __sys_freebsd6_pread(int, void *, __size_t, int, __off_t); -extern __ssize_t __sys_freebsd6_pwrite(int, const void *, __size_t, int, __off_t); -extern void * __sys_freebsd6_mmap(void *, __size_t, int, int, int, int, __off_t); - -/* Without back-compat translation */ -extern int __sys_fcntl(int, int, ...); - +__off_t __sys_freebsd6_lseek(int, int, __off_t, int); +int __sys_freebsd6_ftruncate(int, int, __off_t); +int __sys_freebsd6_truncate(const char *, int, __off_t); +__ssize_t __sys_freebsd6_pread(int, void *, __size_t, int, __off_t); +__ssize_t __sys_freebsd6_pwrite(int, const void *, __size_t, int, __off_t); +void * __sys_freebsd6_mmap(void *, __size_t, int, int, int, int, __off_t); + +struct aiocb; +struct fd_set; +struct iovec; +struct msghdr; +struct pollfd; +struct rusage; +struct sigaction; +struct sockaddr; struct timespec; struct timeval; struct timezone; -int __sys_gettimeofday(struct timeval *, struct timezone *); -int __sys_clock_gettime(__clockid_t, struct timespec *ts); +struct __siginfo; +struct __ucontext; +int __sys_aio_suspend(const struct aiocb * const[], int, + const struct timespec *); +int __sys_accept(int, struct sockaddr *, __socklen_t *); +int __sys_accept4(int, struct sockaddr *, __socklen_t *, int); +int __sys_clock_gettime(__clockid_t, struct timespec *ts); +int __sys_close(int); +int __sys_connect(int, const struct sockaddr *, __socklen_t); +int __sys_fcntl(int, int, ...); +int __sys_fsync(int); +__pid_t __sys_fork(void); +int __sys_ftruncate(int, __off_t); +int __sys_gettimeofday(struct timeval *, struct timezone *); +__off_t __sys_lseek(int, __off_t, int); +void *__sys_mmap(void *, __size_t, int, int, int, __off_t); +int __sys_msync(void *, __size_t, int); +int __sys_nanosleep(const struct timespec *, struct timespec *); +int __sys_open(const char *, int, ...); +int __sys_openat(int, const char *, int, ...); +int __sys_pselect(int, struct fd_set *, struct fd_set *, + struct fd_set *, const struct timespec *, + const __sigset_t *); +int __sys_poll(struct pollfd *, unsigned, int); +__ssize_t __sys_pread(int, void *, __size_t, __off_t); +__ssize_t __sys_pwrite(int, const void *, __size_t, __off_t); +__ssize_t __sys_read(int, void *, __size_t); +__ssize_t __sys_readv(int, const struct iovec *, int); +__ssize_t __sys_recv(int, void *, __size_t, int); +__ssize_t __sys_recvfrom(int, void *, __size_t, int, struct sockaddr *, + __socklen_t *); +__ssize_t __sys_recvmsg(int, struct msghdr *, int); +int __sys_select(int, struct fd_set *, struct fd_set *, + struct fd_set *, struct timeval *); +__ssize_t __sys_sendmsg(int, const struct msghdr *, int); +__ssize_t __sys_sendto(int, const void *, __size_t, int, + const struct sockaddr *, __socklen_t); +int __sys_setcontext(const struct __ucontext *); +int __sys_sigaction(int, const struct sigaction *, + struct sigaction *); +int __sys_sigprocmask(int, const __sigset_t *, __sigset_t *); +int __sys_sigsuspend(const __sigset_t *); +int __sys_sigtimedwait(const __sigset_t *, struct __siginfo *, + const struct timespec *); +int __sys_sigwait(const __sigset_t *, int *); +int __sys_sigwaitinfo(const __sigset_t *, struct __siginfo *); +int __sys_swapcontext(struct __ucontext *, + const struct __ucontext *); +int __sys_truncate(const char *, __off_t); +__pid_t __sys_wait4(__pid_t, int *, int, struct rusage *); +__ssize_t __sys_write(int, const void *, __size_t); +__ssize_t __sys_writev(int, const struct iovec *, int); + +int __libc_creat(const char *path, __mode_t mode); +int __libc_pause(void); +int __libc_raise(int); +int __libc_sigwait(const __sigset_t * __restrict, + int * restrict sig); +int __libc_system(const char *); +unsigned int __libc_sleep(unsigned int); +int __libc_tcdrain(int); +int __libc_usleep(__useconds_t); +__pid_t __libc_wait(int *); +__pid_t __libc_wait3(int *, int, struct rusage *); +__pid_t __libc_waitpid(__pid_t, int *, int); +int __fcntl_compat(int fd, int cmd, ...); /* execve() with PATH processing to implement posix_spawnp() */ int _execvpe(const char *, char * const *, char * const *); Modified: head/lib/libc/stdlib/Symbol.map ============================================================================== --- head/lib/libc/stdlib/Symbol.map Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/stdlib/Symbol.map Sat Jan 3 18:38:46 2015 (r276630) @@ -118,4 +118,5 @@ FBSD_1.4 { FBSDprivate_1.0 { __system; _system; + __libc_system; }; Modified: head/lib/libc/stdlib/jemalloc/Symbol.map ============================================================================== --- head/lib/libc/stdlib/jemalloc/Symbol.map Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/stdlib/jemalloc/Symbol.map Sat Jan 3 18:38:46 2015 (r276630) @@ -55,4 +55,5 @@ FBSDprivate_1.0 { _malloc_thread_cleanup; _malloc_prefork; _malloc_postfork; + _malloc_first_thread; }; Modified: head/lib/libc/stdlib/system.c ============================================================================== --- head/lib/libc/stdlib/system.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/stdlib/system.c Sat Jan 3 18:38:46 2015 (r276630) @@ -46,8 +46,17 @@ __FBSDID("$FreeBSD$"); #include "un-namespace.h" #include "libc_private.h" +#pragma weak system int -__system(const char *command) +system(const char *command) +{ + + return (((int (*)(const char *)) + __libc_interposing[INTERPOS_system])(command)); +} + +int +__libc_system(const char *command) { pid_t pid, savedpid; int pstat; @@ -95,5 +104,5 @@ __system(const char *command) return(pid == -1 ? -1 : pstat); } -__weak_reference(__system, system); -__weak_reference(__system, _system); +__weak_reference(__libc_system, __system); +__weak_reference(__libc_system, _system); Modified: head/lib/libc/sys/Makefile.inc ============================================================================== --- head/lib/libc/sys/Makefile.inc Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/sys/Makefile.inc Sat Jan 3 18:38:46 2015 (r276630) @@ -20,17 +20,61 @@ NOASM+= clock_gettime.o gettimeofday.o PSEUDO+= _clock_gettime.o _gettimeofday.o # Sources common to both syscall interfaces: -SRCS+= stack_protector.c stack_protector_compat.c __error.c +SRCS+= \ + stack_protector.c \ + stack_protector_compat.c \ + __error.c \ + interposing_table.c + .if ${MK_SYSCALL_COMPAT} != "no" -SYSCALL_COMPAT_SRCS= fcntl.c ftruncate.c lseek.c mmap.c pread.c \ - pwrite.c truncate.c +SYSCALL_COMPAT_SRCS= \ + ftruncate.c \ + lseek.c \ + mmap.c \ + pread.c \ + pwrite.c \ + truncate.c SRCS+= ${SYSCALL_COMPAT_SRCS} NOASM+= ${SYSCALL_COMPAT_SRCS:S/.c/.o/} -PSEUDO+= _fcntl.o .endif -SRCS+= sigwait.c -NOASM+= sigwait.o -PSEUDO+= _sigwait.o + +INTERPOSED = \ + accept \ + accept4 \ + aio_suspend \ + close \ + connect \ + fcntl \ + fsync \ + fork \ + msync \ + nanosleep \ + open \ + openat \ + poll \ + pselect \ + read \ + readv \ + recvfrom \ + recvmsg \ + select \ + sendmsg \ + sendto \ + setcontext \ + sigaction \ + sigprocmask \ + sigsuspend \ + sigtimedwait \ + sigwait \ + sigwaitinfo \ + swapcontext \ + wait4 \ + write \ + writev + +SRCS+= ${INTERPOSED:S/$/.c/} +NOASM+= ${INTERPOSED:S/$/.o/} +PSEUDO+= ${INTERPOSED:C/^.*$/_&.o/} # Add machine dependent asm sources: SRCS+=${MDASM} Modified: head/lib/libc/sys/Symbol.map ============================================================================== --- head/lib/libc/sys/Symbol.map Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/sys/Symbol.map Sat Jan 3 18:38:46 2015 (r276630) @@ -245,7 +245,6 @@ FBSD_1.0 { setaudit; setaudit_addr; setauid; - setcontext; setegid; seteuid; setgid; @@ -286,7 +285,6 @@ FBSD_1.0 { __stack_chk_guard; stat; statfs; - swapcontext; swapoff; swapon; symlink; @@ -351,7 +349,6 @@ FBSD_1.1 { mkfifoat; mknodat; msgctl; - openat; readlinkat; renameat; setfib; @@ -1049,6 +1046,9 @@ FBSDprivate_1.0 { _writev; __sys_writev; __error_unthreaded; + __error_selector; nlm_syscall; gssd_syscall; + __libc_interposing_slot; + __libc_sigwait; }; Modified: head/lib/libc/sys/__error.c ============================================================================== --- head/lib/libc/sys/__error.c Sat Jan 3 18:35:29 2015 (r276629) +++ head/lib/libc/sys/__error.c Sat Jan 3 18:38:46 2015 (r276630) @@ -32,14 +32,17 @@ __FBSDID("$FreeBSD$"); extern int errno; -/* - * Declare a weak reference in case the application is not linked - * with libpthread. - */ -__weak_reference(__error_unthreaded, __error); - int * __error_unthreaded(void) { return(&errno); } + +int *(*__error_selector)(void) = __error_unthreaded; + +int * +__error(void) +{ + + return (__error_selector()); +} Added: head/lib/libc/sys/accept.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/sys/accept.c Sat Jan 3 18:38:46 2015 (r276630) @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014 The FreeBSD Foundation. + * All rights reserved. + * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice(s), this list of conditions and the following disclaimer as + * the first lines of this file unmodified other than the possible + * addition of one or more copyright notices. + * 2. Redistributions in binary form must reproduce the above copyright + * notice(s), this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include "libc_private.h" + +__weak_reference(__sys_accept, __accept); + +#pragma weak accept +int +accept(int s, struct sockaddr *addr, socklen_t *addrlen) +{ + + return (((int (*)(int, struct sockaddr *, socklen_t *)) + __libc_interposing[INTERPOS_accept])(s, addr, addrlen)); +} Added: head/lib/libc/sys/accept4.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/sys/accept4.c Sat Jan 3 18:38:46 2015 (r276630) @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014 The FreeBSD Foundation. + * All rights reserved. + * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice(s), this list of conditions and the following disclaimer as + * the first lines of this file unmodified other than the possible + * addition of one or more copyright notices. + * 2. Redistributions in binary form must reproduce the above copyright + * notice(s), this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include "libc_private.h" + +__weak_reference(__sys_accept4, __accept4); + +#pragma weak accept4 +int +accept4(int s, struct sockaddr *addr, socklen_t *addrlen, int flags) +{ + + return (((int (*)(int, struct sockaddr *, socklen_t *, int)) + __libc_interposing[INTERPOS_accept4])(s, addr, addrlen, flags)); +} Added: head/lib/libc/sys/aio_suspend.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/sys/aio_suspend.c Sat Jan 3 18:38:46 2015 (r276630) @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2014 The FreeBSD Foundation. + * All rights reserved. + * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice(s), this list of conditions and the following disclaimer as + * the first lines of this file unmodified other than the possible + * addition of one or more copyright notices. + * 2. Redistributions in binary form must reproduce the above copyright + * notice(s), this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include "libc_private.h" + +__weak_reference(__sys_aio_suspend, __aio_suspend); + +#pragma weak aio_suspend +int +aio_suspend(const struct aiocb * const iocbs[], int niocb, + const struct timespec *timeout) +{ + + return (((int (*)(const struct aiocb * const[], int, + const struct timespec *)) + __libc_interposing[INTERPOS_aio_suspend])(iocbs, niocb, timeout)); +} Added: head/lib/libc/sys/close.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/sys/close.c Sat Jan 3 18:38:46 2015 (r276630) @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2014 The FreeBSD Foundation. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 19:38:38 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ADC7BEEE; Sat, 3 Jan 2015 19:38:38 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9A742104C; Sat, 3 Jan 2015 19:38:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03JcciR027719; Sat, 3 Jan 2015 19:38:38 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03JccY2027718; Sat, 3 Jan 2015 19:38:38 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501031938.t03JccY2027718@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 3 Jan 2015 19:38:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276632 - head/sys/boot/arm/uboot X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 19:38:38 -0000 Author: ian Date: Sat Jan 3 19:38:37 2015 New Revision: 276632 URL: https://svnweb.freebsd.org/changeset/base/276632 Log: Create a custom /boot/defaults/loader.conf for ARM. This differs from the standard file in the following ways: - modules_path includes /boot/dtb - It doesn't contain 533 lines, of which 500 are either commented out, empty, or something_which_doesnt_work_on_arm_anyway=NO The standard defaults file takes 40+ seconds to process on an arm beaglebone board. This one takes just a couple seconds. This gets installed instead of the original because of the .PATH magic in the makefile. Added: head/sys/boot/arm/uboot/loader.conf (contents, props changed) Added: head/sys/boot/arm/uboot/loader.conf ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/arm/uboot/loader.conf Sat Jan 3 19:38:37 2015 (r276632) @@ -0,0 +1,13 @@ +# This is defaults/loader.conf for ARM, containing defaults for loader(8). +# Do not modify the contents of this file, instead put your customizations +# into /boot/loader.conf or /boot/loader.conf.local +# $FreeBSD$ + +autoboot_delay=10 +bootfile="kernel" # Kernel name (possibly absolute path) +kernel="kernel" # /boot sub-directory containing kernel and modules +loader_conf_files="/boot/loader.conf /boot/loader.conf.local" +module_path="/boot/kernel;/boot/modules;/boot/dtb" +nextboot_conf="/boot/nextboot.conf" +nextboot_enable="NO" +verbose_loading="NO" From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 20:17:51 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E51669B0; Sat, 3 Jan 2015 20:17:50 +0000 (UTC) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id 90DF916FA; Sat, 3 Jan 2015 20:17:50 +0000 (UTC) Received: from c122-106-147-133.carlnfd1.nsw.optusnet.com.au (c122-106-147-133.carlnfd1.nsw.optusnet.com.au [122.106.147.133]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id 3C898D63E03; Sun, 4 Jan 2015 07:17:47 +1100 (AEDT) Date: Sun, 4 Jan 2015 07:17:45 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Hans Petter Selasky Subject: Re: svn commit: r276626 - head/sys/kern In-Reply-To: <201501031721.t03HLKHp060964@svn.freebsd.org> Message-ID: <20150104045338.V2929@besplex.bde.org> References: <201501031721.t03HLKHp060964@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=Qdxf4Krv c=1 sm=1 tr=0 a=7NqvjVvQucbO2RlWB8PEog==:117 a=PO7r1zJSAAAA:8 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=ytcfN_hfqfHuf3KFwfQA:9 a=CjuIK1q_8ugA:10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 20:17:51 -0000 On Sat, 3 Jan 2015, Hans Petter Selasky wrote: > Log: > Rework r276532 a bit. Always avoid recursing into the console drivers > clients, hence they might not handle it very well. This change allows > debugging mutex problems with kernel console drivers when > "debug.witness.skipspin=0" is set in the boot environment. This keeps getting worse. Console drivers are required to be reentrant so that console i/o works in any context, including reentering the console driver a couple of times. (One level of reentrancy always occurs when the console driver is stepped through using ddb -- then the debugger traps occur while the console driver is in any state, and the debugger proceeds to reenter the console driver to do its i/o. ddb doesn't support debugging itself, so the reentering is normally limited to 1 level. However, once the console driver supports one level of reentrancy it is easy to support any number, and another level or two is useful for reporting bugs in ddb. E.g., buggy locking in ddb or the console driver (almost any locking there is buggy, like the locking bugs moved in this commit) then witness might detect the bug and try to print a message about it.) No console driver is reentrant enough to work right (only sio is close; syscons is very broken, and I suspect vt and usb (keyboards) are worse. Full reentrancy is not possible; all that can be asked for is that new i/o is done, and the driver and device states are not corrupted; old and interrupted i/o must not be waited for without bound and it may be corrupted) but that is another bug suite. It cannot be fixed here. > Modified: head/sys/kern/kern_cons.c > ============================================================================== > --- head/sys/kern/kern_cons.c Sat Jan 3 16:48:08 2015 (r276625) > +++ head/sys/kern/kern_cons.c Sat Jan 3 17:21:19 2015 (r276626) > @@ -512,6 +512,13 @@ cnputs(char *p) > int unlock_reqd = 0; > > if (use_cnputs_mtx) { > + /* > + * NOTE: Debug prints and/or witness printouts in > + * console driver clients can cause the "cnputs_mtx" > + * mutex to recurse. Simply return if that happens. > + */ This comment is too verbose, but not verbose enough to mention as many as 1% of the bugs. It is somewhat misleading in saying "Debug prints" (sic). Printing by the debugger (ddb) doesn't go through here (except for the bug that debugger entry uses printf()). Debugging printf()s in console driver code (including code called by the console driver) might recurse here, but there shouldn't be any such printf()s unless you are debugging this deadlock bug. The deadlock bug for witness is a special case of this. Console code shouldn't have any LORs that would cause a witness warning (unless you put the LORs to debug its handling...). However, it is reasonable to recurse here for witness warnings from console non-clients: the console driver may be trapped or interrupted, and then the trap handler may try to acquire a lock, and if this lock is witnessed it may trigger a witness warning. (The main case of a trap is a debugger trap. Only non-maskable interrupts can occur, since spinlocks disable interrupts. The main case of an interrupt is a START or STOP IPI. When I debugged console i/o in syscons, I generated races and deadlocks mainly by sprinkling printfs() in trap() and IPI handlers. Production code shouldn't have such printfs, but they should work. In theory, a fatal trap can occur while in console code. Then panic() will call here. > + if (mtx_owned(&cnputs_mtx)) > + return; The largest obvious new bug here is losing all output from panic() (and possibly other critical output) for panics that occur while the mutex is held by the same CPU. The previous change made this case work (for reentrant console drivers) instead of deadlocking. > mtx_lock_spin(&cnputs_mtx); > unlock_reqd = 1; > } One reason the console driver bugs cannot be fixed here is that this lock only covers one entry point to the console driver. Only line-buffered i/o goes through here. ddb output never goes through here. Line buffering is only done if PRINTF_BUFR_SIZE is configured. PRINTF_BUFR_SIZE gives a very bad implementation of serialization of output. Old message buffer code used atomic ops to avoid deadlock. It was replaced by broken locking. The locking gives deadlock on recursion in the same way as here. However, the race window for it (mainly in msgbuf_addchar()) is much shorter than here and I wasn't able to demonstrate it deadlocking. > @@ -601,13 +608,7 @@ static void > cn_drvinit(void *unused) > { > > - /* > - * NOTE: Debug prints and/or witness printouts in console > - * driver clients can cause the "cnputs_mtx" mutex to > - * recurse. Make sure the "MTX_RECURSE" flags is set! > - */ > - mtx_init(&cnputs_mtx, "cnputs_mtx", NULL, MTX_SPIN | > - MTX_NOWITNESS | MTX_RECURSE); > + mtx_init(&cnputs_mtx, "cnputs_mtx", NULL, MTX_SPIN | MTX_NOWITNESS); > use_cnputs_mtx = 1; > } cnputs() and its lock are used mainly to support the serialization of output done under PRINTF_BUFR_SIZE. It is obviously broken since it gives deadlock. It should at least have used MTX_RECURSE. Your previous change to add this seems to be correct in the sense of not adding new bugs. Any locking here cannot fix driver bugs, but it can act as a serialization hint. The lock here prevents interference from other CPUs and thus improves serialization. Making it recursive changes deadlock to non-serialization in the unusual case of recursion. Note that the locking here (like any normal mutex locking) is still fundamentally broken. The most obviously broken case is when a panic occurs while another CPU holds the lock. Then that CPU will be stopped very early in panic() and never started again. If it is stopped before it can release the lock, then the CPU executing the panic() will deadlock on the lock. Returning would be little better since it would lose all the panic() output, as happens now when the lock is held by the same CPU. Bruce From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 20:29:49 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 11976D3C; Sat, 3 Jan 2015 20:29:49 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F159018AC; Sat, 3 Jan 2015 20:29:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03KTmIr051771; Sat, 3 Jan 2015 20:29:48 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03KTm3X051770; Sat, 3 Jan 2015 20:29:48 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501032029.t03KTm3X051770@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 3 Jan 2015 20:29:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r276633 - stable/10/sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 20:29:49 -0000 Author: ian Date: Sat Jan 3 20:29:47 2015 New Revision: 276633 URL: https://svnweb.freebsd.org/changeset/base/276633 Log: Bump version after r276312 brought in new ARM arch constants that some ports need to compile correctly. Modified: stable/10/sys/sys/param.h Modified: stable/10/sys/sys/param.h ============================================================================== --- stable/10/sys/sys/param.h Sat Jan 3 19:38:37 2015 (r276632) +++ stable/10/sys/sys/param.h Sat Jan 3 20:29:47 2015 (r276633) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1001504 /* Master, propagated to newvers */ +#define __FreeBSD_version 1001505 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 21:06:08 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D39685B3; Sat, 3 Jan 2015 21:06:08 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B4D8F2E7A; Sat, 3 Jan 2015 21:06:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03L6884070488; Sat, 3 Jan 2015 21:06:08 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03L67SG070483; Sat, 3 Jan 2015 21:06:07 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201501032106.t03L67SG070483@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 3 Jan 2015 21:06:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276634 - in head/sys/powerpc: include powerpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 21:06:09 -0000 Author: jhibbits Date: Sat Jan 3 21:06:06 2015 New Revision: 276634 URL: https://svnweb.freebsd.org/changeset/base/276634 Log: Dump VMX registers into the userland coredump. Reviewed by: nwhitehorn MFC after: 2 weeks Modified: head/sys/powerpc/include/altivec.h head/sys/powerpc/powerpc/altivec.c head/sys/powerpc/powerpc/elf32_machdep.c head/sys/powerpc/powerpc/elf64_machdep.c Modified: head/sys/powerpc/include/altivec.h ============================================================================== --- head/sys/powerpc/include/altivec.h Sat Jan 3 20:29:47 2015 (r276633) +++ head/sys/powerpc/include/altivec.h Sat Jan 3 21:06:06 2015 (r276634) @@ -34,6 +34,7 @@ void enable_vec(struct thread *); void save_vec(struct thread *); +void save_vec_nodrop(struct thread *); #endif /* _MACHINE_ALTIVEC_H_ */ Modified: head/sys/powerpc/powerpc/altivec.c ============================================================================== --- head/sys/powerpc/powerpc/altivec.c Sat Jan 3 20:29:47 2015 (r276633) +++ head/sys/powerpc/powerpc/altivec.c Sat Jan 3 21:06:06 2015 (r276634) @@ -43,6 +43,46 @@ __FBSDID("$FreeBSD$"); #include #include +static void +save_vec_int(struct thread *td) +{ + int msr; + struct pcb *pcb; + + pcb = td->td_pcb; + + /* + * Temporarily re-enable the vector unit during the save + */ + msr = mfmsr(); + mtmsr(msr | PSL_VEC); + isync(); + + /* + * Save the vector registers and VSCR to the PCB + */ +#define STVX(n) __asm ("stvx %1,0,%0" \ + :: "b"(pcb->pcb_vec.vr[n]), "n"(n)); + STVX(0); STVX(1); STVX(2); STVX(3); + STVX(4); STVX(5); STVX(6); STVX(7); + STVX(8); STVX(9); STVX(10); STVX(11); + STVX(12); STVX(13); STVX(14); STVX(15); + STVX(16); STVX(17); STVX(18); STVX(19); + STVX(20); STVX(21); STVX(22); STVX(23); + STVX(24); STVX(25); STVX(26); STVX(27); + STVX(28); STVX(29); STVX(30); STVX(31); +#undef STVX + + __asm __volatile("mfvscr 0; stvewx 0,0,%0" :: "b"(&pcb->pcb_vec.vscr)); + + /* + * Disable vector unit again + */ + isync(); + mtmsr(msr); + +} + void enable_vec(struct thread *td) { @@ -107,40 +147,11 @@ enable_vec(struct thread *td) void save_vec(struct thread *td) { - int msr; - struct pcb *pcb; + struct pcb *pcb; pcb = td->td_pcb; - /* - * Temporarily re-enable the vector unit during the save - */ - msr = mfmsr(); - mtmsr(msr | PSL_VEC); - isync(); - - /* - * Save the vector registers and VSCR to the PCB - */ -#define STVX(n) __asm ("stvx %1,0,%0" \ - :: "b"(pcb->pcb_vec.vr[n]), "n"(n)); - STVX(0); STVX(1); STVX(2); STVX(3); - STVX(4); STVX(5); STVX(6); STVX(7); - STVX(8); STVX(9); STVX(10); STVX(11); - STVX(12); STVX(13); STVX(14); STVX(15); - STVX(16); STVX(17); STVX(18); STVX(19); - STVX(20); STVX(21); STVX(22); STVX(23); - STVX(24); STVX(25); STVX(26); STVX(27); - STVX(28); STVX(29); STVX(30); STVX(31); -#undef STVX - - __asm __volatile("mfvscr 0; stvewx 0,0,%0" :: "b"(&pcb->pcb_vec.vscr)); - - /* - * Disable vector unit again - */ - isync(); - mtmsr(msr); + save_vec_int(td); /* * Clear the current vec thread and pcb's CPU id @@ -150,3 +161,19 @@ save_vec(struct thread *td) PCPU_SET(vecthread, NULL); } +/* + * Save altivec state without dropping ownership. This will only save state if + * the current vector-thread is `td'. + */ +void +save_vec_nodrop(struct thread *td) +{ + struct thread *vtd; + + vtd = PCPU_GET(vecthread); + if (td != vtd) { + return; + } + + save_vec_int(td); +} Modified: head/sys/powerpc/powerpc/elf32_machdep.c ============================================================================== --- head/sys/powerpc/powerpc/elf32_machdep.c Sat Jan 3 20:29:47 2015 (r276633) +++ head/sys/powerpc/powerpc/elf32_machdep.c Sat Jan 3 21:06:06 2015 (r276634) @@ -47,6 +47,7 @@ #include #include +#include #include #include #include @@ -147,9 +148,24 @@ SYSINIT(oelf32, SI_SUB_EXEC, SI_ORDER_AN &freebsd_brand_oinfo); void -elf32_dump_thread(struct thread *td __unused, void *dst __unused, - size_t *off __unused) +elf32_dump_thread(struct thread *td, void *dst, size_t *off) { + size_t len; + struct pcb *pcb; + + len = 0; + pcb = td->td_pcb; + if (pcb->pcb_flags & PCB_VEC) { + save_vec_nodrop(td); + if (dst != NULL) { + len += elf32_populate_note(NT_PPC_VMX, + &pcb->pcb_vec, dst, + sizeof(pcb->pcb_vec), NULL); + } else + len += elf32_populate_note(NT_PPC_VMX, NULL, NULL, + sizeof(pcb->pcb_vec), NULL); + } + *off = len; } #ifndef __powerpc64__ Modified: head/sys/powerpc/powerpc/elf64_machdep.c ============================================================================== --- head/sys/powerpc/powerpc/elf64_machdep.c Sat Jan 3 20:29:47 2015 (r276633) +++ head/sys/powerpc/powerpc/elf64_machdep.c Sat Jan 3 21:06:06 2015 (r276634) @@ -44,6 +44,7 @@ #include #include +#include #include #include #include @@ -119,9 +120,24 @@ SYSINIT(oelf64, SI_SUB_EXEC, SI_ORDER_AN &freebsd_brand_oinfo); void -elf64_dump_thread(struct thread *td __unused, void *dst __unused, - size_t *off __unused) +elf64_dump_thread(struct thread *td, void *dst, size_t *off) { + size_t len; + struct pcb *pcb; + + len = 0; + pcb = td->td_pcb; + if (pcb->pcb_flags & PCB_VEC) { + save_vec_nodrop(td); + if (dst != NULL) { + len += elf64_populate_note(NT_PPC_VMX, + &pcb->pcb_vec, dst, + sizeof(pcb->pcb_vec), NULL); + } else + len += elf64_populate_note(NT_PPC_VMX, NULL, NULL, + sizeof(pcb->pcb_vec), NULL); + } + *off = len; } From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 21:08:28 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AA3A5729; Sat, 3 Jan 2015 21:08:28 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95EEC2EAD; Sat, 3 Jan 2015 21:08:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03L8Si6070810; Sat, 3 Jan 2015 21:08:28 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03L8Sxi070809; Sat, 3 Jan 2015 21:08:28 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201501032108.t03L8Sxi070809@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 3 Jan 2015 21:08:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276635 - head/sys/powerpc/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 21:08:28 -0000 Author: jhibbits Date: Sat Jan 3 21:08:27 2015 New Revision: 276635 URL: https://svnweb.freebsd.org/changeset/base/276635 Log: Resort and resize the altivec registers in the pcb. vrsave and vscr are both 32-bit registers via the PowerPC spec. X-MFC-with: r276634 MFC after: 2 weeks Modified: head/sys/powerpc/include/pcb.h Modified: head/sys/powerpc/include/pcb.h ============================================================================== --- head/sys/powerpc/include/pcb.h Sat Jan 3 21:06:06 2015 (r276634) +++ head/sys/powerpc/include/pcb.h Sat Jan 3 21:08:27 2015 (r276635) @@ -58,9 +58,9 @@ struct pcb { stuff. */ struct vec { uint32_t vr[32][4]; - register_t vrsave; - register_t spare[2]; - register_t vscr; /* aligned at vector element 3 */ + uint32_t spare[2]; + uint32_t vrsave; + uint32_t vscr; /* aligned at vector element 3 */ } pcb_vec __aligned(16); /* Vector processor */ unsigned int pcb_veccpu; /* which CPU had our vector stuff. */ From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 21:44:48 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D6935C4C; Sat, 3 Jan 2015 21:44:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C2EDC642ED; Sat, 3 Jan 2015 21:44:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03LimGl088805; Sat, 3 Jan 2015 21:44:48 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03LimPk088804; Sat, 3 Jan 2015 21:44:48 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201501032144.t03LimPk088804@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 3 Jan 2015 21:44:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276636 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 21:44:48 -0000 Author: jhibbits Date: Sat Jan 3 21:44:47 2015 New Revision: 276636 URL: https://svnweb.freebsd.org/changeset/base/276636 Log: Missed the header for the note definition. X-MFC-with: r276634 MFC after: 2 weeks Modified: head/sys/sys/elf_common.h Modified: head/sys/sys/elf_common.h ============================================================================== --- head/sys/sys/elf_common.h Sat Jan 3 21:08:27 2015 (r276635) +++ head/sys/sys/elf_common.h Sat Jan 3 21:44:47 2015 (r276636) @@ -724,6 +724,7 @@ typedef struct { #define NT_PROCSTAT_OSREL 14 /* Procstat osreldate data. */ #define NT_PROCSTAT_PSSTRINGS 15 /* Procstat ps_strings data. */ #define NT_PROCSTAT_AUXV 16 /* Procstat auxv data. */ +#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ #define NT_X86_XSTATE 0x202 /* x86 XSAVE extended state. */ /* Symbol Binding - ELFNN_ST_BIND - st_info */ From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 21:47:33 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D7948E34; Sat, 3 Jan 2015 21:47:33 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C3A916433A; Sat, 3 Jan 2015 21:47:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03LlX5J089202; Sat, 3 Jan 2015 21:47:33 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03LlX30089201; Sat, 3 Jan 2015 21:47:33 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201501032147.t03LlX30089201@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 3 Jan 2015 21:47:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276637 - head/sys/modules/uart X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 21:47:34 -0000 Author: jhibbits Date: Sat Jan 3 21:47:32 2015 New Revision: 276637 URL: https://svnweb.freebsd.org/changeset/base/276637 Log: PowerPC also needs ofw_bus_if.h when using FDT. Modified: head/sys/modules/uart/Makefile Modified: head/sys/modules/uart/Makefile ============================================================================== --- head/sys/modules/uart/Makefile Sat Jan 3 21:44:47 2015 (r276636) +++ head/sys/modules/uart/Makefile Sat Jan 3 21:47:32 2015 (r276637) @@ -10,7 +10,8 @@ uart_bus_ebus= uart_bus_ebus.c uart_dev_lpc= uart_dev_lpc.c .endif -.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "sparc64" +.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "sparc64" || \ + ${MACHINE_CPUARCH} == "powerpc" ofw_bus_if= ofw_bus_if.h .endif From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 22:33:21 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EFA2552B; Sat, 3 Jan 2015 22:33:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D9B1164BA6; Sat, 3 Jan 2015 22:33:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03MXKmK012079; Sat, 3 Jan 2015 22:33:20 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03MXJDk012071; Sat, 3 Jan 2015 22:33:19 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501032233.t03MXJDk012071@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 3 Jan 2015 22:33:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276638 - in head/sys: arm/arm arm/include conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 22:33:21 -0000 Author: ian Date: Sat Jan 3 22:33:18 2015 New Revision: 276638 URL: https://svnweb.freebsd.org/changeset/base/276638 Log: Add a new trap-v6.c which has support for all armv7 exceptions. This mostly paves the way for the new pmap code, and shouldn't result in any noticible behavior differences. Submitted by: Svatopluk Kraus , Michal Meloun + * Copyright 2014 Svatopluk Kraus + * Copyright 2014 Michal Meloun + * Copyright 2014 Andrew Turner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "opt_ktrace.h" + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef KTRACE +#include +#include +#endif + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifdef KDB +#include +#include +#endif + +extern char fusubailout[]; + +struct ksig { + int sig; + u_long code; + vm_offset_t addr; +}; + +typedef int abort_func_t(struct trapframe *, u_int, u_int, u_int, u_int, + struct thread *, struct ksig *); + +static abort_func_t abort_fatal; +static abort_func_t abort_align; +static abort_func_t abort_icache; + +struct abort { + abort_func_t *func; + const char *desc; +}; + +/* + * How are the aborts handled? + * + * Undefined Code: + * - Always fatal as we do not know what does it mean. + * Imprecise External Abort: + * - Always fatal, but can be handled somehow in the future. + * Now, due to PCIe buggy harware, ignored. + * Precise External Abort: + * - Always fatal, but who knows in the future??? + * Debug Event: + * - Special handling. + * External Translation Abort (L1 & L2) + * - Always fatal as something is screwed up in page tables or harware. + * Domain Fault (L1 & L2): + * - Always fatal as we do not play game with domains. + * Alignment Fault: + * - Everything should be aligned in kernel including user to kernel and + * vice versa data copying, so we ignore pcb_onfault, and it's always fatal. + * We generate signal in case of abort from user mode. + * Instruction cache maintenance: + * - According to manual, this is translation fault during cache maintenance + * operation. So, it could be really complex in SMP case and fuzzy too + * for cache operations working on virtual addresses. For now, we will + * consider this abort as fatal. In fact, no cache maintenance on + * not mapped virtual addresses should be called. As cache maintenance + * operation (except DMB, DSB, and Flush Prefetch Buffer) are priviledged, + * the abort is fatal for user mode as well for now. (This is good place to + * note that cache maintenance on virtual address fill TLB.) + * Acces Bit (L1 & L2): + * - Fast hardware emulation for kernel and user mode. + * Translation Fault (L1 & L2): + * - Standard fault mechanism is held including vm_fault(). + * Permission Fault (L1 & L2): + * - Fast harware emulation of modify bits and in other cases, standard + * fault mechanism is held including vm_fault(). + */ + +static const struct abort aborts[] = { + {abort_fatal, "Undefined Code (0x000)"}, + {abort_align, "Alignment Fault"}, + {abort_fatal, "Debug Event"}, + {NULL, "Access Bit (L1)"}, + {abort_icache, "Instruction cache maintenance"}, + {NULL, "Translation Fault (L1)"}, + {NULL, "Access Bit (L2)"}, + {NULL, "Translation Fault (L2)"}, + + {abort_fatal, "External Abort"}, + {abort_fatal, "Domain Fault (L1)"}, + {abort_fatal, "Undefined Code (0x00A)"}, + {abort_fatal, "Domain Fault (L2)"}, + {abort_fatal, "External Translation Abort (L1)"}, + {NULL, "Permission Fault (L1)"}, + {abort_fatal, "External Translation Abort (L2)"}, + {NULL, "Permission Fault (L2)"}, + + {abort_fatal, "TLB Conflict Abort"}, + {abort_fatal, "Undefined Code (0x401)"}, + {abort_fatal, "Undefined Code (0x402)"}, + {abort_fatal, "Undefined Code (0x403)"}, + {abort_fatal, "Undefined Code (0x404)"}, + {abort_fatal, "Undefined Code (0x405)"}, + {abort_fatal, "Asynchronous External Abort"}, + {abort_fatal, "Undefined Code (0x407)"}, + + {abort_fatal, "Asynchronous Parity Error on Memory Access"}, + {abort_fatal, "Parity Error on Memory Access"}, + {abort_fatal, "Undefined Code (0x40A)"}, + {abort_fatal, "Undefined Code (0x40B)"}, + {abort_fatal, "Parity Error on Translation (L1)"}, + {abort_fatal, "Undefined Code (0x40D)"}, + {abort_fatal, "Parity Error on Translation (L2)"}, + {abort_fatal, "Undefined Code (0x40F)"} +}; + + +static __inline void +call_trapsignal(struct thread *td, int sig, int code, vm_offset_t addr) +{ + ksiginfo_t ksi; + + CTR4(KTR_TRAP, "%s: addr: %#x, sig: %d, code: %d", + __func__, addr, sig, code); + + /* + * TODO: some info would be nice to know + * if we are serving data or prefetch abort. + */ + + ksiginfo_init_trap(&ksi); + ksi.ksi_signo = sig; + ksi.ksi_code = code; + ksi.ksi_addr = (void *)addr; + trapsignal(td, &ksi); +} + +/* + * abort_imprecise() handles the following abort: + * + * FAULT_EA_IMPREC - Imprecise External Abort + * + * The imprecise means that we don't know where the abort happened, + * thus FAR is undefined. The abort should not never fire, but hot + * plugging or accidental harware failure can be the cause of it. + * If the abort happens, it can even be on different (thread) context. + * Without any additional support, the abort is fatal, as we do not + * know what really happened. + * + * QQQ: Some additional functionality, like pcb_onfault but global, + * can be implemented. Imprecise handlers could be registered + * which tell us if the abort is caused by something they know + * about. They should return one of three codes like: + * FAULT_IS_MINE, + * FAULT_CAN_BE_MINE, + * FAULT_IS_NOT_MINE. + * The handlers should be called until some of them returns + * FAULT_IS_MINE value or all was called. If all handlers return + * FAULT_IS_NOT_MINE value, then the abort is fatal. + */ +static __inline void +abort_imprecise(struct trapframe *tf, u_int fsr, u_int prefetch, u_int usermode) +{ + /* XXXX We can got imprecise abort as result of access + * to not-present PCI/PCIe configuration space. + */ +#if 0 + goto out; +#endif + abort_fatal(tf, FAULT_EA_IMPREC, fsr, 0, prefetch, curthread, NULL); + + /* + * Returning from this function means that we ignore + * the abort for good reason. Note that imprecise abort + * could fire any time even in user mode. + */ + +#if 0 +out: + if (usermode) + userret(curthread, tf); +#endif +} + +/* + * abort_debug() handles the following abort: + * + * FAULT_DEBUG - Debug Event + * + */ +static __inline void +abort_debug(struct trapframe *tf, u_int fsr, u_int prefetch, u_int usermode, + u_int far) +{ + if (usermode) { + struct thread *td; + + td = curthread; + call_trapsignal(td, SIGTRAP, TRAP_BRKPT, far); + userret(td, tf); + } else { +#ifdef KDB + kdb_trap(T_BREAKPOINT, 0, tf); +#else + printf("No debugger in kernel.\n"); +#endif + } +} + +/* + * Abort handler. + * + * FAR, FSR, and everything what can be lost after enabling + * interrupts must be grabbed before the interrupts will be + * enabled. Note that when interrupts will be enabled, we + * could even migrate to another CPU ... + * + * TODO: move quick cases to ASM + */ +void +abort_handler(struct trapframe *tf, int prefetch) +{ + struct thread *td; + vm_offset_t far, va; + int idx, usermode; + uint32_t fsr; + struct ksig ksig; + struct proc *p; + struct pcb *pcb; + struct vm_map *map; + struct vmspace *vm; + vm_prot_t ftype; + int rv; +#ifdef INVARIANTS + void *onfault; +#endif + td = curthread; + fsr = (prefetch) ? cp15_ifsr_get(): cp15_dfsr_get(); + far = (prefetch) ? TRAPF_PC(tf) : cp15_dfar_get(); + + idx = FSR_TO_FAULT(fsr); + usermode = TRAPF_USERMODE(tf); /* Abort came from user mode? */ + if (usermode) + td->td_frame = tf; + + CTR4(KTR_TRAP, "abort_handler: fsr %#x (idx %u) far %#x prefetch %u", + fsr, idx, far, prefetch); + + /* + * Firstly, handle aborts that are not directly related to mapping. + */ + if (__predict_false(idx == FAULT_EA_IMPREC)) { + abort_imprecise(tf, fsr, prefetch, usermode); + return; + } + + if (__predict_false(idx == FAULT_DEBUG)) { + abort_debug(tf, fsr, prefetch, usermode, far); + return; + } + +#ifdef ARM_NEW_PMAP + rv = pmap_fault(PCPU_GET(curpmap), far, fsr, idx, usermode); + if (rv == 0) { + return; + } else if (rv == EFAULT) { + + call_trapsignal(td, SIGSEGV, SEGV_MAPERR, far); + userret(td, tf); + return; + } +#endif + /* + * Now, when we handled imprecise and debug aborts, the rest of + * aborts should be really related to mapping. + * + */ + + PCPU_INC(cnt.v_trap); + +#ifdef KDB + if (kdb_active) { + kdb_reenter(); + goto out; + } +#endif + if (__predict_false((td->td_pflags & TDP_NOFAULTING) != 0)) { + /* + * Due to both processor errata and lazy TLB invalidation when + * access restrictions are removed from virtual pages, memory + * accesses that are allowed by the physical mapping layer may + * nonetheless cause one spurious page fault per virtual page. + * When the thread is executing a "no faulting" section that + * is bracketed by vm_fault_{disable,enable}_pagefaults(), + * every page fault is treated as a spurious page fault, + * unless it accesses the same virtual address as the most + * recent page fault within the same "no faulting" section. + */ + if (td->td_md.md_spurflt_addr != far || + (td->td_pflags & TDP_RESETSPUR) != 0) { + td->td_md.md_spurflt_addr = far; + td->td_pflags &= ~TDP_RESETSPUR; + + tlb_flush_local(far & ~PAGE_MASK); + return; + } + } else { + /* + * If we get a page fault while in a critical section, then + * it is most likely a fatal kernel page fault. The kernel + * is already going to panic trying to get a sleep lock to + * do the VM lookup, so just consider it a fatal trap so the + * kernel can print out a useful trap message and even get + * to the debugger. + * + * If we get a page fault while holding a non-sleepable + * lock, then it is most likely a fatal kernel page fault. + * If WITNESS is enabled, then it's going to whine about + * bogus LORs with various VM locks, so just skip to the + * fatal trap handling directly. + */ + if (td->td_critnest != 0 || + WITNESS_CHECK(WARN_SLEEPOK | WARN_GIANTOK, NULL, + "Kernel page fault") != 0) { + abort_fatal(tf, idx, fsr, far, prefetch, td, &ksig); + return; + } + } + + /* Re-enable interrupts if they were enabled previously. */ + if (td->td_md.md_spinlock_count == 0) { + if (__predict_true(tf->tf_spsr & PSR_I) == 0) + enable_interrupts(PSR_I); + if (__predict_true(tf->tf_spsr & PSR_F) == 0) + enable_interrupts(PSR_F); + } + + p = td->td_proc; + if (usermode) { + td->td_pticks = 0; + if (td->td_ucred != p->p_ucred) + cred_update_thread(td); + } + + /* Invoke the appropriate handler, if necessary. */ + if (__predict_false(aborts[idx].func != NULL)) { + if ((aborts[idx].func)(tf, idx, fsr, far, prefetch, td, &ksig)) + goto do_trapsignal; + goto out; + } + + /* + * At this point, we're dealing with one of the following aborts: + * + * FAULT_TRAN_xx - Translation + * FAULT_PERM_xx - Permission + * + * These are the main virtual memory-related faults signalled by + * the MMU. + */ + + /* fusubailout is used by [fs]uswintr to avoid page faulting */ + pcb = td->td_pcb; + if (__predict_false(pcb->pcb_onfault == fusubailout)) { + tf->tf_r0 = EFAULT; + tf->tf_pc = (register_t)pcb->pcb_onfault; + return; + } + + /* + * QQQ: ARM has a set of unprivileged load and store instructions + * (LDRT/LDRBT/STRT/STRBT ...) which are supposed to be used + * in other than user mode and OS should recognize their + * aborts and behaved appropriately. However, there is no way + * how to do that reasonably in general unless we restrict + * the handling somehow. One way is to limit the handling for + * aborts which come from undefined mode only. + * + * Anyhow, we do not use these instructions and do not implement + * any special handling for them. + */ + + va = trunc_page(far); + if (va >= KERNBASE) { + /* + * Don't allow user-mode faults in kernel address space. + */ + if (usermode) + goto nogo; + + map = kernel_map; + } else { + /* + * This is a fault on non-kernel virtual memory. If curproc + * is NULL or curproc->p_vmspace is NULL the fault is fatal. + */ + vm = (p != NULL) ? p->p_vmspace : NULL; + if (vm == NULL) + goto nogo; + + map = &vm->vm_map; + if (!usermode && (td->td_intr_nesting_level != 0 || + pcb->pcb_onfault == NULL)) { + abort_fatal(tf, idx, fsr, far, prefetch, td, &ksig); + return; + } + } + + ftype = (fsr & FSR_WNR) ? VM_PROT_WRITE : VM_PROT_READ; + if (prefetch) + ftype |= VM_PROT_EXECUTE; + +#ifndef ARM_NEW_PMAP + if (pmap_fault_fixup(vmspace_pmap(td->td_proc->p_vmspace), va, ftype, + usermode)) { + goto out; + } +#endif + +#ifdef INVARIANTS + onfault = pcb->pcb_onfault; + pcb->pcb_onfault = NULL; +#endif + if (map != kernel_map) { + /* + * Keep swapout from messing with us during this + * critical time. + */ + PROC_LOCK(p); + ++p->p_lock; + PROC_UNLOCK(p); + + /* Fault in the user page: */ + rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL); + + PROC_LOCK(p); + --p->p_lock; + PROC_UNLOCK(p); + } else { + /* + * Don't have to worry about process locking or stacks in the + * kernel. + */ + rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL); + } + +#ifdef INVARIANTS + pcb->pcb_onfault = onfault; +#endif + + if (__predict_true(rv == KERN_SUCCESS)) + goto out; +nogo: + if (!usermode) { + if (td->td_intr_nesting_level == 0 && + pcb->pcb_onfault != NULL) { + tf->tf_r0 = rv; + tf->tf_pc = (int)pcb->pcb_onfault; + return; + } + CTR2(KTR_TRAP, "%s: vm_fault() failed with %d", __func__, rv); + abort_fatal(tf, idx, fsr, far, prefetch, td, &ksig); + return; + } + + ksig.sig = (rv == KERN_PROTECTION_FAILURE) ? SIGBUS : SIGSEGV; + ksig.code = 0; + ksig.addr = far; + +do_trapsignal: + call_trapsignal(td, ksig.sig, ksig.code, ksig.addr); +out: + if (usermode) + userret(td, tf); +} + +/* + * abort_fatal() handles the following data aborts: + + * FAULT_DEBUG - Debug Event + * FAULT_ACCESS_xx - Acces Bit + * FAULT_EA_PREC - Precise External Abort + * FAULT_DOMAIN_xx - Domain Fault + * FAULT_EA_TRAN_xx - External Translation Abort + * FAULT_EA_IMPREC - Imprecise External Abort + * + all undefined codes for ABORT + * + * We should never see these on a properly functioning system. + * + * This function is also called by the other handlers if they + * detect a fatal problem. + * + * Note: If 'l' is NULL, we assume we're dealing with a prefetch abort. + */ +static int +abort_fatal(struct trapframe *tf, u_int idx, u_int fsr, u_int far, u_int prefetch, + struct thread *td, struct ksig *ksig) +{ + u_int usermode; + const char *mode; + const char *rw_mode; + + usermode = TRAPF_USERMODE(tf); + mode = usermode ? "user" : "kernel"; + rw_mode = fsr & FSR_WNR ? "write" : "read"; + disable_interrupts(PSR_I|PSR_F); + + if (td != NULL) { + printf("Fatal %s mode data abort: '%s' on %s\n", mode, + aborts[idx].desc, rw_mode); + printf("trapframe: %p\nFSR=%08x, FAR=", tf, fsr); + if (idx != FAULT_EA_IMPREC) + printf("%08x, ", far); + else + printf("Invalid, "); + printf("spsr=%08x\n", tf->tf_spsr); + } else { + printf("Fatal %s mode prefetch abort at 0x%08x\n", + mode, tf->tf_pc); + printf("trapframe: %p, spsr=%08x\n", tf, tf->tf_spsr); + } + + printf("r0 =%08x, r1 =%08x, r2 =%08x, r3 =%08x\n", + tf->tf_r0, tf->tf_r1, tf->tf_r2, tf->tf_r3); + printf("r4 =%08x, r5 =%08x, r6 =%08x, r7 =%08x\n", + tf->tf_r4, tf->tf_r5, tf->tf_r6, tf->tf_r7); + printf("r8 =%08x, r9 =%08x, r10=%08x, r11=%08x\n", + tf->tf_r8, tf->tf_r9, tf->tf_r10, tf->tf_r11); + printf("r12=%08x, ", tf->tf_r12); + + if (usermode) + printf("usp=%08x, ulr=%08x", + tf->tf_usr_sp, tf->tf_usr_lr); + else + printf("ssp=%08x, slr=%08x", + tf->tf_svc_sp, tf->tf_svc_lr); + printf(", pc =%08x\n\n", tf->tf_pc); + +#ifdef KDB + if (debugger_on_panic || kdb_active) + kdb_trap(fsr, 0, tf); +#endif + panic("Fatal abort"); + /*NOTREACHED*/ +} + +/* + * abort_align() handles the following data abort: + * + * FAULT_ALIGN - Alignment fault + * + * Every memory access should be correctly aligned in kernel including + * user to kernel and vice versa data copying, so we ignore pcb_onfault, + * and it's always fatal. We generate a signal in case of abort from user mode. + */ +static int +abort_align(struct trapframe *tf, u_int idx, u_int fsr, u_int far, u_int prefetch, + struct thread *td, struct ksig *ksig) +{ + u_int usermode; + + usermode = TRAPF_USERMODE(tf); + + /* + * Alignment faults are always fatal if they occur in any but user mode. + * + * XXX The old trap code handles pcb fault even for alignment traps. + * Unfortunately, we don't known why and if is this need. + */ + if (!usermode) { + if (td->td_intr_nesting_level == 0 && td != NULL && + td->td_pcb->pcb_onfault != NULL) { + printf("%s: Got alignment fault with pcb_onfault set" + ", please report this issue\n", __func__); + tf->tf_r0 = EFAULT;; + tf->tf_pc = (int)td->td_pcb->pcb_onfault; + return (0); + } + abort_fatal(tf, idx, fsr, far, prefetch, td, ksig); + } + /* Deliver a bus error signal to the process */ + ksig->code = 0; + ksig->sig = SIGBUS; + ksig->addr = far; + return (1); +} + +/* + * abort_icache() handles the following data abort: + * + * FAULT_ICACHE - Instruction cache maintenance + * + * According to manual, FAULT_ICACHE is translation fault during cache + * maintenance operation. In fact, no cache maintenance operation on + * not mapped virtual addresses should be called. As cache maintenance + * operation (except DMB, DSB, and Flush Prefetch Buffer) are priviledged, + * the abort is concider as fatal for now. However, all the matter with + * cache maintenance operation on virtual addresses could be really complex + * and fuzzy in SMP case, so maybe in future standard fault mechanism + * should be held here including vm_fault() calling. + */ +static int +abort_icache(struct trapframe *tf, u_int idx, u_int fsr, u_int far, u_int prefetch, + struct thread *td, struct ksig *ksig) +{ + abort_fatal(tf, idx, fsr, far, prefetch, td, ksig); + return(0); +} Modified: head/sys/arm/include/armreg.h ============================================================================== --- head/sys/arm/include/armreg.h Sat Jan 3 21:47:32 2015 (r276637) +++ head/sys/arm/include/armreg.h Sat Jan 3 22:33:18 2015 (r276638) @@ -41,6 +41,8 @@ #ifndef MACHINE_ARMREG_H #define MACHINE_ARMREG_H +#include + #define INSN_SIZE 4 #define INSN_COND_MASK 0xf0000000 /* Condition mask */ #define PSR_MODE 0x0000001f /* mode mask */ @@ -351,10 +353,10 @@ #define CACHE_UNI_CACHE 4 /* Fault status register definitions */ - -#define FAULT_TYPE_MASK 0x0f #define FAULT_USER 0x10 +#if __ARM_ARCH < 6 +#define FAULT_TYPE_MASK 0x0f #define FAULT_WRTBUF_0 0x00 /* Vector Exception */ #define FAULT_WRTBUF_1 0x02 /* Terminal Exception */ #define FAULT_BUSERR_0 0x04 /* External Abort on Linefetch -- Section */ @@ -377,14 +379,36 @@ #define FAULT_EXTERNAL 0x400 /* External abort (armv6+) */ #define FAULT_WNR 0x800 /* Write-not-Read access (armv6+) */ -/* Fault status register definitions - v6+ */ -#define FSR_STATUS_TO_IDX(fsr) (((fsr) & 0xF) | \ - (((fsr) & (1 << 10)>> (10 - 4)))) -#define FSR_LPAE (1 << 9) /* LPAE indicator */ -#define FSR_WNR (1 << 11) /* Write-not-Read access */ -#define FSR_EXT (1 << 12) /* DECERR/SLVERR for external*/ -#define FSR_CM (1 << 13) /* Cache maintenance fault */ +#else /* __ARM_ARCH < 6 */ +#define FAULT_ALIGN 0x001 /* Alignment Fault */ +#define FAULT_DEBUG 0x002 /* Debug Event */ +#define FAULT_ACCESS_L1 0x003 /* Access Bit (L1) */ +#define FAULT_ICACHE 0x004 /* Instruction cache maintenance */ +#define FAULT_TRAN_L1 0x005 /* Translation Fault (L1) */ +#define FAULT_ACCESS_L2 0x006 /* Access Bit (L2) */ +#define FAULT_TRAN_L2 0x007 /* Translation Fault (L2) */ +#define FAULT_EA_PREC 0x008 /* External Abort */ +#define FAULT_DOMAIN_L1 0x009 /* Domain Fault (L1) */ +#define FAULT_DOMAIN_L2 0x00B /* Domain Fault (L2) */ +#define FAULT_EA_TRAN_L1 0x00C /* External Translation Abort (L1) */ +#define FAULT_PERM_L1 0x00D /* Permission Fault (L1) */ +#define FAULT_EA_TRAN_L2 0x00E /* External Translation Abort (L2) */ +#define FAULT_PERM_L2 0x00F /* Permission Fault (L2) */ +#define FAULT_TLB_CONFLICT 0x010 /* Permission Fault (L2) */ +#define FAULT_EA_IMPREC 0x016 /* Asynchronous External Abort */ +#define FAULT_PE_IMPREC 0x018 /* Asynchronous Parity Error */ +#define FAULT_PARITY 0x019 /* Parity Error */ +#define FAULT_PE_TRAN_L1 0x01C /* Parity Error on Translation (L1) */ +#define FAULT_PE_TRAN_L2 0x01E /* Parity Error on Translation (L2) */ + +#define FSR_TO_FAULT(fsr) (((fsr) & 0xF) | \ + ((((fsr) & (1 << 10)) >> (10 - 4)))) +#define FSR_LPAE (1 << 9) /* LPAE indicator */ +#define FSR_WNR (1 << 11) /* Write-not-Read access */ +#define FSR_EXT (1 << 12) /* DECERR/SLVERR for external*/ +#define FSR_CM (1 << 13) /* Cache maintenance fault */ +#endif /* !__ARM_ARCH < 6 */ /* * Address of the vector page, low and high versions. Modified: head/sys/arm/include/proc.h ============================================================================== --- head/sys/arm/include/proc.h Sat Jan 3 21:47:32 2015 (r276637) +++ head/sys/arm/include/proc.h Sat Jan 3 22:33:18 2015 (r276638) @@ -48,6 +48,7 @@ struct md_utrap { struct mdthread { int md_spinlock_count; /* (k) */ register_t md_saved_cspr; /* (k) */ + register_t md_spurflt_addr; /* (k) Spurious page fault address. */ int md_ptrace_instr; int md_ptrace_addr; register_t md_tp; Modified: head/sys/conf/files.arm ============================================================================== --- head/sys/conf/files.arm Sat Jan 3 21:47:32 2015 (r276637) +++ head/sys/conf/files.arm Sat Jan 3 22:33:18 2015 (r276638) @@ -53,7 +53,8 @@ arm/arm/support.S standard arm/arm/swtch.S standard arm/arm/sys_machdep.c standard arm/arm/syscall.c standard -arm/arm/trap.c standard +arm/arm/trap.c optional !armv6 +arm/arm/trap-v6.c optional armv6 arm/arm/uio_machdep.c standard arm/arm/undefined.c standard arm/arm/vm_machdep.c standard From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 22:36:20 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2A2AE680; Sat, 3 Jan 2015 22:36:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 15D0764BCA; Sat, 3 Jan 2015 22:36:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03MaJif012508; Sat, 3 Jan 2015 22:36:19 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03MaJJY012507; Sat, 3 Jan 2015 22:36:19 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201501032236.t03MaJJY012507@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 3 Jan 2015 22:36:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276639 - head/sys/modules/drm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 22:36:20 -0000 Author: jhibbits Date: Sat Jan 3 22:36:18 2015 New Revision: 276639 URL: https://svnweb.freebsd.org/changeset/base/276639 Log: The radeon DRI module doesn't really work correctly on powerpc, so don't build it. Hopefully we'll get radeonkms eventually. Discussed with: nwhitehorn MFC after: 2 weeks Modified: head/sys/modules/drm/Makefile Modified: head/sys/modules/drm/Makefile ============================================================================== --- head/sys/modules/drm/Makefile Sat Jan 3 22:33:18 2015 (r276638) +++ head/sys/modules/drm/Makefile Sat Jan 3 22:36:18 2015 (r276639) @@ -21,7 +21,9 @@ SUBDIR = \ .if ${MK_SOURCELESS_UCODE} != "no" _mga= mga _r128= r128 +.if ${MACHINE_CPUARCH} != "powerpc" _radeon= radeon .endif +.endif .include From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 23:15:02 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A15B2BB3; Sat, 3 Jan 2015 23:15:02 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8D5F66613C; Sat, 3 Jan 2015 23:15:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03NF2Fx031779; Sat, 3 Jan 2015 23:15:02 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03NF27U031778; Sat, 3 Jan 2015 23:15:02 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501032315.t03NF27U031778@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 3 Jan 2015 23:15:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r276640 - vendor/NetBSD/vis/dist X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 23:15:02 -0000 Author: bapt Date: Sat Jan 3 23:15:01 2015 New Revision: 276640 URL: https://svnweb.freebsd.org/changeset/base/276640 Log: Import vis(1) manpage fixes from NetBSD Modified: vendor/NetBSD/vis/dist/vis.1 Modified: vendor/NetBSD/vis/dist/vis.1 ============================================================================== --- vendor/NetBSD/vis/dist/vis.1 Sat Jan 3 22:36:18 2015 (r276639) +++ vendor/NetBSD/vis/dist/vis.1 Sat Jan 3 23:15:01 2015 (r276640) @@ -1,4 +1,4 @@ -.\" $NetBSD: vis.1,v 1.17 2013/02/14 14:00:00 christos Exp $ +.\" $NetBSD: vis.1,v 1.19 2013/03/14 19:17:23 njoly Exp $ .\" .\" Copyright (c) 1989, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" @(#)vis.1 8.4 (Berkeley) 4/19/94 .\" -.Dd February 13, 2013 +.Dd February 19, 2013 .Dt VIS 1 .Os .Sh NAME @@ -154,6 +154,7 @@ instead. .It Ev LC_CTYPE Specify the locale of the input data. Set to C if the input data locale is unknown. +.El .Sh SEE ALSO .Xr unvis 1 , .Xr svis 3 , @@ -164,6 +165,6 @@ The command appears in .Bx 4.4 . Myltibyte character support was added in -.Nx 6.1 +.Nx 7.0 and .Fx 9.2 . From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 23:16:14 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3F233CDD; Sat, 3 Jan 2015 23:16:14 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2BB9E66151; Sat, 3 Jan 2015 23:16:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03NGE5S031974; Sat, 3 Jan 2015 23:16:14 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03NGELR031973; Sat, 3 Jan 2015 23:16:14 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501032316.t03NGELR031973@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 3 Jan 2015 23:16:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276641 - head/contrib/vis X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 23:16:14 -0000 Author: bapt Date: Sat Jan 3 23:16:13 2015 New Revision: 276641 URL: https://svnweb.freebsd.org/changeset/base/276641 Log: Import NetBSD vis(1) mandoc fixes Modified: head/contrib/vis/vis.1 Directory Properties: head/contrib/vis/ (props changed) Modified: head/contrib/vis/vis.1 ============================================================================== --- head/contrib/vis/vis.1 Sat Jan 3 23:15:01 2015 (r276640) +++ head/contrib/vis/vis.1 Sat Jan 3 23:16:13 2015 (r276641) @@ -1,4 +1,4 @@ -.\" $NetBSD: vis.1,v 1.17 2013/02/14 14:00:00 christos Exp $ +.\" $NetBSD: vis.1,v 1.19 2013/03/14 19:17:23 njoly Exp $ .\" .\" Copyright (c) 1989, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" @(#)vis.1 8.4 (Berkeley) 4/19/94 .\" -.Dd February 13, 2013 +.Dd February 19, 2013 .Dt VIS 1 .Os .Sh NAME @@ -154,6 +154,7 @@ instead. .It Ev LC_CTYPE Specify the locale of the input data. Set to C if the input data locale is unknown. +.El .Sh SEE ALSO .Xr unvis 1 , .Xr svis 3 , @@ -164,6 +165,6 @@ The command appears in .Bx 4.4 . Myltibyte character support was added in -.Nx 6.1 +.Nx 7.0 and .Fx 9.2 . From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 23:30:31 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 01348F72; Sat, 3 Jan 2015 23:30:30 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C7E1B6636F; Sat, 3 Jan 2015 23:30:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03NUUF4039002; Sat, 3 Jan 2015 23:30:30 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03NUU45038999; Sat, 3 Jan 2015 23:30:30 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501032330.t03NUU45038999@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 3 Jan 2015 23:30:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276642 - head/sys/arm/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 23:30:31 -0000 Author: ian Date: Sat Jan 3 23:30:29 2015 New Revision: 276642 URL: https://svnweb.freebsd.org/changeset/base/276642 Log: Remove commented-out options SMP and APIC_IO from old arm boards that will never be able to support smp. Modified: head/sys/arm/conf/CRB head/sys/arm/conf/EP80219 head/sys/arm/conf/IQ31244 Modified: head/sys/arm/conf/CRB ============================================================================== --- head/sys/arm/conf/CRB Sat Jan 3 23:16:13 2015 (r276641) +++ head/sys/arm/conf/CRB Sat Jan 3 23:30:29 2015 (r276642) @@ -101,9 +101,6 @@ options DDB # Enable the kernel debug #options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed #options DIAGNOSTIC -# To make an SMP kernel, the next two are needed -#options SMP # Symmetric MultiProcessor Kernel -#options APIC_IO # Symmetric (APIC) I/O options XSCALE_CACHE_READ_WRITE_ALLOCATE device md device random # Entropy device Modified: head/sys/arm/conf/EP80219 ============================================================================== --- head/sys/arm/conf/EP80219 Sat Jan 3 23:16:13 2015 (r276641) +++ head/sys/arm/conf/EP80219 Sat Jan 3 23:30:29 2015 (r276642) @@ -97,9 +97,6 @@ options DDB # Enable the kernel debug #options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed #options DIAGNOSTIC -# To make an SMP kernel, the next two are needed -#options SMP # Symmetric MultiProcessor Kernel -#options APIC_IO # Symmetric (APIC) I/O options XSCALE_CACHE_READ_WRITE_ALLOCATE device md device random # Entropy device Modified: head/sys/arm/conf/IQ31244 ============================================================================== --- head/sys/arm/conf/IQ31244 Sat Jan 3 23:16:13 2015 (r276641) +++ head/sys/arm/conf/IQ31244 Sat Jan 3 23:30:29 2015 (r276642) @@ -102,9 +102,6 @@ options DDB # Enable the kernel debug #options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed #options DIAGNOSTIC -# To make an SMP kernel, the next two are needed -#options SMP # Symmetric MultiProcessor Kernel -#options APIC_IO # Symmetric (APIC) I/O options XSCALE_CACHE_READ_WRITE_ALLOCATE device md device random # Entropy device From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 23:32:13 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 83BA7144; Sat, 3 Jan 2015 23:32:13 +0000 (UTC) Received: from mail.turbocat.net (mail.turbocat.net [IPv6:2a01:4f8:d16:4514::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2A54B663BA; Sat, 3 Jan 2015 23:32:13 +0000 (UTC) Received: from laptop015.home.selasky.org (cm-176.74.213.204.customer.telag.net [176.74.213.204]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 8E5171FE022; Sun, 4 Jan 2015 00:32:10 +0100 (CET) Message-ID: <54A87C28.2030304@selasky.org> Date: Sun, 04 Jan 2015 00:32:56 +0100 From: Hans Petter Selasky User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Bruce Evans Subject: Re: svn commit: r276626 - head/sys/kern References: <201501031721.t03HLKHp060964@svn.freebsd.org> <20150104045338.V2929@besplex.bde.org> In-Reply-To: <20150104045338.V2929@besplex.bde.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 23:32:13 -0000 On 01/03/15 21:17, Bruce Evans wrote: > On Sat, 3 Jan 2015, Hans Petter Selasky wrote: > >> Log: >> Rework r276532 a bit. Always avoid recursing into the console drivers >> clients, hence they might not handle it very well. This change allows >> debugging mutex problems with kernel console drivers when >> "debug.witness.skipspin=0" is set in the boot environment. > > This keeps getting worse. Console drivers are required to be reentrant > so that console i/o works in any context, including reentering the > console driver a couple of times. > (One level of reentrancy always occurs when the console driver is > stepped through using ddb -- then the debugger traps occur while > the console driver is in any state, and the debugger proceeds to > reenter the console driver to do its i/o. ddb doesn't support > debugging itself, so the reentering is normally limited to 1 level. > However, once the console driver supports one level of reentrancy > it is easy to support any number, and another level or two is useful > for reporting bugs in ddb. E.g., buggy locking in ddb or the console > driver > (almost any locking there is buggy, like the locking bugs moved in > this commit) > then witness might detect the bug and try to print a message about it.) > No console driver is reentrant enough to work right > (only sio is close; syscons is very broken, and I suspect vt and usb > (keyboards) are worse. Full reentrancy is not possible; all that > can be asked for is that new i/o is done, and the driver and device > states are not corrupted; old and interrupted i/o must not be waited > for without bound and it may be corrupted) > but that is another bug suite. It cannot be fixed here. > >> Modified: head/sys/kern/kern_cons.c >> ============================================================================== >> >> --- head/sys/kern/kern_cons.c Sat Jan 3 16:48:08 2015 (r276625) >> +++ head/sys/kern/kern_cons.c Sat Jan 3 17:21:19 2015 (r276626) >> @@ -512,6 +512,13 @@ cnputs(char *p) >> int unlock_reqd = 0; >> >> if (use_cnputs_mtx) { >> + /* >> + * NOTE: Debug prints and/or witness printouts in >> + * console driver clients can cause the "cnputs_mtx" >> + * mutex to recurse. Simply return if that happens. >> + */ > > This comment is too verbose, but not verbose enough to mention as many > as 1% of the bugs. > > It is somewhat misleading in saying "Debug prints" (sic). Printing by > the debugger (ddb) doesn't go through here (except for the bug that > debugger entry uses printf()). Debugging printf()s in console driver > code (including code called by the console driver) might recurse here, > but there shouldn't be any such printf()s unless you are debugging this > deadlock bug. The deadlock bug for witness is a special case of this. > Console code shouldn't have any LORs that would cause a witness warning > (unless you put the LORs to debug its handling...). However, it is > reasonable to recurse here for witness warnings from console non-clients: > the console driver may be trapped or interrupted, and then the trap > handler may try to acquire a lock, and if this lock is witnessed it > may trigger a witness warning. > (The main case of a trap is a debugger trap. Only non-maskable > interrupts can occur, since spinlocks disable interrupts. The main > case of an interrupt is a START or STOP IPI. When I debugged console > i/o in syscons, I generated races and deadlocks mainly by sprinkling > printfs() in trap() and IPI handlers. Production code shouldn't have > such printfs, but they should work. In theory, a fatal trap can occur > while in console code. Then panic() will call here. > >> + if (mtx_owned(&cnputs_mtx)) >> + return; > > The largest obvious new bug here is losing all output from panic() > (and possibly other critical output) for panics that occur while > the mutex is held by the same CPU. The previous change made this > case work (for reentrant console drivers) instead of deadlocking. > >> mtx_lock_spin(&cnputs_mtx); >> unlock_reqd = 1; >> } > > One reason the console driver bugs cannot be fixed here is that this > lock only covers one entry point to the console driver. Only line-buffered > i/o goes through here. ddb output never goes through here. Line > buffering is only done if PRINTF_BUFR_SIZE is configured. PRINTF_BUFR_SIZE > gives a very bad implementation of serialization of output. Old message > buffer code used atomic ops to avoid deadlock. It was replaced by broken > locking. The locking gives deadlock on recursion in the same way as here. > However, the race window for it (mainly in msgbuf_addchar()) is much > shorter than here and I wasn't able to demonstrate it deadlocking. > >> @@ -601,13 +608,7 @@ static void >> cn_drvinit(void *unused) >> { >> >> - /* >> - * NOTE: Debug prints and/or witness printouts in console >> - * driver clients can cause the "cnputs_mtx" mutex to >> - * recurse. Make sure the "MTX_RECURSE" flags is set! >> - */ >> - mtx_init(&cnputs_mtx, "cnputs_mtx", NULL, MTX_SPIN | >> - MTX_NOWITNESS | MTX_RECURSE); >> + mtx_init(&cnputs_mtx, "cnputs_mtx", NULL, MTX_SPIN | MTX_NOWITNESS); >> use_cnputs_mtx = 1; >> } > > cnputs() and its lock are used mainly to support the serialization of > output done under PRINTF_BUFR_SIZE. It is obviously broken since it gives > deadlock. Hi Bruce, Thanks for your analysis. I can get the the full backtrace if you like, but not right now. It is quite long! Quickly summarized, the problem is that printf recurses from inside a mtx_lock_spin() because of a LOR, due to some testing I'm doing, which is because witness calls directly to printf() again. In other words, we cannot use printf() to debug problems in the console drivers, and actually printf() should be disabled when we are inside certain code paths, simply. Instead of a nice LOR printout, I immediately hit a panic, because other mutexes marked as non-recursive suddenly got recursed inside the console drivers, in this case "dev/vt". For now, printouts are not allowed if inside "cnputc()". This at least got me on with the debugging. Previously "cnputs_mtx" was marked non-recursive, and I think that is correct. > It should at least have used MTX_RECURSE. Your previous > change to add this seems to be correct in the sense of not adding new > bugs. Any locking here cannot fix driver bugs, but it can act as a > serialization hint. The lock here prevents interference from other > CPUs and thus improves serialization. Making it recursive changes > deadlock to non-serialization in the unusual case of recursion. My patch is not about locking the whole of "printf()" statements. It is about preventing "printf()" from recursing. > > Note that the locking here (like any normal mutex locking) is still > fundamentally broken. The most obviously broken case is when a panic > occurs while another CPU holds the lock. Then that CPU will be stopped > very early in panic() and never started again. If it is stopped before > it can release the lock, then the CPU executing the panic() will > deadlock on the lock. Returning would be little better since it would > lose all the panic() output, as happens now when the lock is held by > the same CPU. mtx_owned() tells only if the current thread is holding the lock, unlike other implementations of locking. Not if anyone is holding the lock. Summed up: printf() should not debug itself. --HPS From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 23:36:33 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C5CDB3A8 for ; Sat, 3 Jan 2015 23:36:33 +0000 (UTC) Received: from mo6-p00-ob.smtp.rzone.de (mo6-p00-ob.smtp.rzone.de [IPv6:2a01:238:20a:202:5300::10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.smtp.rzone.de", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5D9FD66410 for ; Sat, 3 Jan 2015 23:36:32 +0000 (UTC) X-RZG-AUTH: :JiIXek6mfvEEUpFQdo7Fj1/zg48CFjWjQv0cW+St/nW/avgnry9rlecwrYs4sPY= X-RZG-CLASS-ID: mo00 Received: from britannica.bec.de (209.222.5.229.choopa.com [209.222.5.229]) by smtp.strato.de (RZmta 36.3 AUTH) with ESMTPSA id R0394br03Na9XPN (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) for ; Sun, 4 Jan 2015 00:36:09 +0100 (CET) Received: by britannica.bec.de (sSMTP sendmail emulation); Sun, 04 Jan 2015 00:36:01 +0100 Date: Sun, 4 Jan 2015 00:36:01 +0100 From: Joerg Sonnenberger To: svn-src-all@freebsd.org Subject: Re: svn commit: r276565 - in head/gnu: lib/libstdc++/doc usr.bin/diff usr.bin/diff/doc usr.bin/gdb usr.bin/gperf usr.bin/gperf/doc Message-ID: <20150103233601.GB26159@britannica.bec.de> References: <201501022034.t02KYu1I030453@svn.freebsd.org> <20150102204458.GA72199@troutmask.apl.washington.edu> <20150102213341.GA72376@troutmask.apl.washington.edu> <20150102213557.GE288@ivaldir.etoilebsd.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150102213557.GE288@ivaldir.etoilebsd.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 23:36:33 -0000 On Fri, Jan 02, 2015 at 10:35:57PM +0100, Baptiste Daroussin wrote: > The man pages remains, for binutils for examples, the manpages were generated > out of the texinfo files meaning the manpage contains the same amount of > informations Have you actually looked at them? as(1) for example doesn't contain the language description. Joerg From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 23:39:45 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E079A409; Sat, 3 Jan 2015 23:39:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CCBD76642B; Sat, 3 Jan 2015 23:39:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03Ndj12041769; Sat, 3 Jan 2015 23:39:45 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03NdjYf041768; Sat, 3 Jan 2015 23:39:45 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201501032339.t03NdjYf041768@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 3 Jan 2015 23:39:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276643 - head/usr.bin/man X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 23:39:46 -0000 Author: bapt Date: Sat Jan 3 23:39:44 2015 New Revision: 276643 URL: https://svnweb.freebsd.org/changeset/base/276643 Log: Only manpages with fatal errors should be rendered by groff(1) Modified: head/usr.bin/man/man.sh Modified: head/usr.bin/man/man.sh ============================================================================== --- head/usr.bin/man/man.sh Sat Jan 3 23:30:29 2015 (r276642) +++ head/usr.bin/man/man.sh Sat Jan 3 23:39:44 2015 (r276643) @@ -311,7 +311,7 @@ man_display_page() { return fi - testline="mandoc -Tlint -Werror 2>/dev/null" + testline="mandoc -Tlint -Wfatal 2>/dev/null" pipeline="mandoc | $MANPAGER" if ! eval "$cattool $manpage | $testline" ;then From owner-svn-src-all@FreeBSD.ORG Sat Jan 3 23:57:07 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 16329750; Sat, 3 Jan 2015 23:57:07 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EB6956667C; Sat, 3 Jan 2015 23:57:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t03Nv6gf050922; Sat, 3 Jan 2015 23:57:06 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t03Nv420050911; Sat, 3 Jan 2015 23:57:04 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201501032357.t03Nv420050911@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sat, 3 Jan 2015 23:57:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276644 - head/sys/arm/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2015 23:57:07 -0000 Author: ian Date: Sat Jan 3 23:57:03 2015 New Revision: 276644 URL: https://svnweb.freebsd.org/changeset/base/276644 Log: Switch all arm kernels with option SMP to use SCHED_ULE instead of 4BSD. Modified: head/sys/arm/conf/ARMADAXP head/sys/arm/conf/CUBIEBOARD2 head/sys/arm/conf/EXYNOS5.common head/sys/arm/conf/PANDABOARD head/sys/arm/conf/RK3188 head/sys/arm/conf/SOCKIT head/sys/arm/conf/SOCKIT-BERI head/sys/arm/conf/ZEDBOARD Modified: head/sys/arm/conf/ARMADAXP ============================================================================== --- head/sys/arm/conf/ARMADAXP Sat Jan 3 23:39:44 2015 (r276643) +++ head/sys/arm/conf/ARMADAXP Sat Jan 3 23:57:03 2015 (r276644) @@ -28,7 +28,7 @@ makeoptions WERROR="-Werror" options HZ=1000 #options SCHED_ULE # ULE scheduler -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols Modified: head/sys/arm/conf/CUBIEBOARD2 ============================================================================== --- head/sys/arm/conf/CUBIEBOARD2 Sat Jan 3 23:39:44 2015 (r276643) +++ head/sys/arm/conf/CUBIEBOARD2 Sat Jan 3 23:57:03 2015 (r276644) @@ -27,7 +27,7 @@ makeoptions MODULES_OVERRIDE="" makeoptions WITHOUT_MODULES="ahc" options HZ=100 -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols Modified: head/sys/arm/conf/EXYNOS5.common ============================================================================== --- head/sys/arm/conf/EXYNOS5.common Sat Jan 3 23:39:44 2015 (r276643) +++ head/sys/arm/conf/EXYNOS5.common Sat Jan 3 23:57:03 2015 (r276644) @@ -24,7 +24,7 @@ makeoptions WITHOUT_MODULES="ahc" makeoptions WERROR="-Werror" options HZ=100 -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols Modified: head/sys/arm/conf/PANDABOARD ============================================================================== --- head/sys/arm/conf/PANDABOARD Sat Jan 3 23:39:44 2015 (r276643) +++ head/sys/arm/conf/PANDABOARD Sat Jan 3 23:57:03 2015 (r276644) @@ -33,7 +33,7 @@ makeoptions MODULES_OVERRIDE="" makeoptions WITHOUT_MODULES="ahc" options HZ=100 -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols Modified: head/sys/arm/conf/RK3188 ============================================================================== --- head/sys/arm/conf/RK3188 Sat Jan 3 23:39:44 2015 (r276643) +++ head/sys/arm/conf/RK3188 Sat Jan 3 23:57:03 2015 (r276644) @@ -23,7 +23,7 @@ ident RK3188 include "../rockchip/std.rk30xx" options HZ=100 -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols Modified: head/sys/arm/conf/SOCKIT ============================================================================== --- head/sys/arm/conf/SOCKIT Sat Jan 3 23:39:44 2015 (r276643) +++ head/sys/arm/conf/SOCKIT Sat Jan 3 23:57:03 2015 (r276644) @@ -26,7 +26,7 @@ makeoptions MODULES_OVERRIDE="" makeoptions WERROR="-Werror" options HZ=100 -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols Modified: head/sys/arm/conf/SOCKIT-BERI ============================================================================== --- head/sys/arm/conf/SOCKIT-BERI Sat Jan 3 23:39:44 2015 (r276643) +++ head/sys/arm/conf/SOCKIT-BERI Sat Jan 3 23:57:03 2015 (r276644) @@ -26,7 +26,7 @@ makeoptions MODULES_OVERRIDE="" makeoptions WERROR="-Werror" options HZ=100 -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols Modified: head/sys/arm/conf/ZEDBOARD ============================================================================== --- head/sys/arm/conf/ZEDBOARD Sat Jan 3 23:39:44 2015 (r276643) +++ head/sys/arm/conf/ZEDBOARD Sat Jan 3 23:57:03 2015 (r276644) @@ -26,7 +26,7 @@ include "../xilinx/zedboard/std.zedboar makeoptions MODULES_OVERRIDE="" makeoptions WITHOUT_MODULES="ahc" -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols