From owner-svn-src-projects@freebsd.org Sun Aug 28 11:54:46 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4664B78E4A for ; Sun, 28 Aug 2016 11:54:46 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8DD59D8D; Sun, 28 Aug 2016 11:54:46 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7SBsjw0054526; Sun, 28 Aug 2016 11:54:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7SBsjwW054525; Sun, 28 Aug 2016 11:54:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608281154.u7SBsjwW054525@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 28 Aug 2016 11:54:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r304954 - projects/clang390-import/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Aug 2016 11:54:46 -0000 Author: dim Date: Sun Aug 28 11:54:45 2016 New Revision: 304954 URL: https://svnweb.freebsd.org/changeset/base/304954 Log: Squelch -Wconstant-conversion for WARNS <= 2. In clang 3.9.0, this warning has become more aggressive, and it usually turns up in decades old code, where fixing it is more trouble than it is worth. Modified: projects/clang390-import/share/mk/bsd.sys.mk Modified: projects/clang390-import/share/mk/bsd.sys.mk ============================================================================== --- projects/clang390-import/share/mk/bsd.sys.mk Sun Aug 28 11:51:46 2016 (r304953) +++ projects/clang390-import/share/mk/bsd.sys.mk Sun Aug 28 11:54:45 2016 (r304954) @@ -81,6 +81,9 @@ CWARNFLAGS.clang+= -Wno-unused-local-typ .endif # WARNS <= 3 .if ${WARNS} <= 2 CWARNFLAGS.clang+= -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter +.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30900 +CWARNFLAGS.clang+= -Wno-constant-conversion +.endif .endif # WARNS <= 2 .if ${WARNS} <= 1 CWARNFLAGS.clang+= -Wno-parentheses From owner-svn-src-projects@freebsd.org Sun Aug 28 11:58:17 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 096A2B78E89 for ; Sun, 28 Aug 2016 11:58:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BA0A0EAB; Sun, 28 Aug 2016 11:58:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7SBwGGt054729; Sun, 28 Aug 2016 11:58:16 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7SBwFaL054719; Sun, 28 Aug 2016 11:58:15 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608281158.u7SBwFaL054719@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 28 Aug 2016 11:58:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r304955 - in projects/clang390-import: contrib/ncurses/ncurses/tinfo lib/libc/amd64/sys lib/libc/i386/sys lib/libc/net lib/libc/sys lib/libnv lib/libnv/tests share/man/man9 sys/arm64/ar... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Aug 2016 11:58:17 -0000 Author: dim Date: Sun Aug 28 11:58:15 2016 New Revision: 304955 URL: https://svnweb.freebsd.org/changeset/base/304955 Log: Merge ^/head r304885 through r304954. Added: projects/clang390-import/lib/libnv/tests/cnv_tests.cc - copied unchanged from r304954, head/lib/libnv/tests/cnv_tests.cc projects/clang390-import/share/man/man9/cnv.9 - copied unchanged from r304954, head/share/man/man9/cnv.9 projects/clang390-import/sys/contrib/libnv/cnvlist.c - copied unchanged from r304954, head/sys/contrib/libnv/cnvlist.c projects/clang390-import/sys/mips/conf/std.AR91XX - copied unchanged from r304954, head/sys/mips/conf/std.AR91XX projects/clang390-import/sys/mips/conf/std.QCA955X - copied unchanged from r304954, head/sys/mips/conf/std.QCA955X projects/clang390-import/sys/sys/cnv.h - copied unchanged from r304954, head/sys/sys/cnv.h Deleted: projects/clang390-import/sys/mips/conf/AR91XX_BASE projects/clang390-import/sys/mips/conf/QCA955X_BASE Modified: projects/clang390-import/contrib/ncurses/ncurses/tinfo/lib_baudrate.c projects/clang390-import/lib/libc/amd64/sys/ptrace.S projects/clang390-import/lib/libc/i386/sys/ptrace.S projects/clang390-import/lib/libc/net/getaddrinfo.c projects/clang390-import/lib/libc/sys/ptrace.2 projects/clang390-import/lib/libnv/Makefile projects/clang390-import/lib/libnv/tests/Makefile projects/clang390-import/share/man/man9/Makefile projects/clang390-import/sys/arm64/arm64/machdep.c projects/clang390-import/sys/cam/ata/ata_all.c projects/clang390-import/sys/conf/files projects/clang390-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300phy.h projects/clang390-import/sys/contrib/ipfilter/netinet/ip_compat.h projects/clang390-import/sys/contrib/libnv/nvlist.c projects/clang390-import/sys/contrib/libnv/nvlist_impl.h projects/clang390-import/sys/dev/iwm/if_iwmreg.h projects/clang390-import/sys/dev/uart/uart_core.c projects/clang390-import/sys/kern/vfs_lookup.c projects/clang390-import/sys/kern/vnode_if.src projects/clang390-import/sys/mips/conf/AP135 projects/clang390-import/sys/mips/conf/CARAMBOLA2 projects/clang390-import/sys/mips/conf/DIR-655A1 projects/clang390-import/sys/mips/conf/TL-ARCHERC7V2 projects/clang390-import/sys/mips/conf/TL-WDR4300 projects/clang390-import/sys/mips/conf/TL-WR1043NDv2 projects/clang390-import/sys/mips/conf/TP-WN1043ND projects/clang390-import/sys/mips/conf/std.AR933X projects/clang390-import/sys/mips/conf/std.AR934X projects/clang390-import/sys/modules/Makefile projects/clang390-import/sys/modules/cloudabi32/Makefile projects/clang390-import/sys/modules/cloudabi64/Makefile projects/clang390-import/tools/tools/net80211/wlanwds/wlanwds.c projects/clang390-import/usr.bin/netstat/route.c Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/contrib/ncurses/ (props changed) projects/clang390-import/sys/contrib/ipfilter/ (props changed) Modified: projects/clang390-import/contrib/ncurses/ncurses/tinfo/lib_baudrate.c ============================================================================== --- projects/clang390-import/contrib/ncurses/ncurses/tinfo/lib_baudrate.c Sun Aug 28 11:54:45 2016 (r304954) +++ projects/clang390-import/contrib/ncurses/ncurses/tinfo/lib_baudrate.c Sun Aug 28 11:58:15 2016 (r304955) @@ -94,7 +94,7 @@ struct speed { int sp; /* the actual speed */ }; -#define DATA(number) { B##number, number } +#define DATA(number) { (NCURSES_OSPEED)B##number, number } static struct speed const speeds[] = { Modified: projects/clang390-import/lib/libc/amd64/sys/ptrace.S ============================================================================== --- projects/clang390-import/lib/libc/amd64/sys/ptrace.S Sun Aug 28 11:54:45 2016 (r304954) +++ projects/clang390-import/lib/libc/amd64/sys/ptrace.S Sun Aug 28 11:58:15 2016 (r304955) @@ -38,14 +38,26 @@ __FBSDID("$FreeBSD$"); #include "SYS.h" + .globl CNAME(__error) + .type CNAME(__error),@function + ENTRY(ptrace) - xorl %eax,%eax + pushq %rdi /* align stack */ + pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx #ifdef PIC - movq PIC_GOT(CNAME(errno)),%r8 - movl %eax,(%r8) + callq PIC_PLT(CNAME(__error)) #else - movl %eax,CNAME(errno)(%rip) + callq CNAME(__error) #endif + popq %rcx + popq %rdx + popq %rsi + popq %rdi + popq %rdi + movl $0,(%rax) mov $SYS_ptrace,%eax KERNCALL jb HIDENAME(cerror) Modified: projects/clang390-import/lib/libc/i386/sys/ptrace.S ============================================================================== --- projects/clang390-import/lib/libc/i386/sys/ptrace.S Sun Aug 28 11:54:45 2016 (r304954) +++ projects/clang390-import/lib/libc/i386/sys/ptrace.S Sun Aug 28 11:58:15 2016 (r304955) @@ -38,16 +38,18 @@ __FBSDID("$FreeBSD$"); #include "SYS.h" + .globl CNAME(__error) + .type CNAME(__error),@function + ENTRY(ptrace) - xorl %eax,%eax #ifdef PIC - PIC_PROLOGUE - movl PIC_GOT(CNAME(errno)),%edx - movl %eax,(%edx) - PIC_EPILOGUE + PIC_PROLOGUE + call PIC_PLT(CNAME(__error)) + PIC_EPILOGUE #else - movl %eax,CNAME(errno) + call CNAME(__error) #endif + movl $0,(%eax) mov $SYS_ptrace,%eax KERNCALL jb HIDENAME(cerror) Modified: projects/clang390-import/lib/libc/net/getaddrinfo.c ============================================================================== --- projects/clang390-import/lib/libc/net/getaddrinfo.c Sun Aug 28 11:54:45 2016 (r304954) +++ projects/clang390-import/lib/libc/net/getaddrinfo.c Sun Aug 28 11:58:15 2016 (r304955) @@ -224,6 +224,7 @@ struct ai_order { struct policyqueue *aio_dstpolicy; struct addrinfo *aio_ai; int aio_matchlen; + int aio_initial_sequence; }; static const ns_src default_dns_files[] = { @@ -708,6 +709,7 @@ reorder(struct addrinfo *sentinel) aio[i].aio_dstpolicy = match_addrselectpolicy(ai->ai_addr, &policyhead); set_source(&aio[i], &policyhead); + aio[i].aio_initial_sequence = i; } /* perform sorting. */ @@ -1066,6 +1068,23 @@ comp_dst(const void *arg1, const void *a } /* Rule 10: Otherwise, leave the order unchanged. */ + + /* + * Note that qsort is unstable; so, we can't return zero and + * expect the order to be unchanged. + * That also means we can't depend on the current position of + * dst2 being after dst1. We must enforce the initial order + * with an explicit compare on the original position. + * The qsort specification requires that "When the same objects + * (consisting of width bytes, irrespective of their current + * positions in the array) are passed more than once to the + * comparison function, the results shall be consistent with one + * another." + * In other words, If A < B, then we must also return B > A. + */ + if (dst2->aio_initial_sequence < dst1->aio_initial_sequence) + return(1); + return(-1); } Modified: projects/clang390-import/lib/libc/sys/ptrace.2 ============================================================================== --- projects/clang390-import/lib/libc/sys/ptrace.2 Sun Aug 28 11:54:45 2016 (r304954) +++ projects/clang390-import/lib/libc/sys/ptrace.2 Sun Aug 28 11:58:15 2016 (r304955) @@ -2,7 +2,7 @@ .\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. -.Dd July 28, 2016 +.Dd August 28, 2016 .Dt PTRACE 2 .Os .Sh NAME @@ -906,7 +906,13 @@ to return \-1 as a non-error value; to disambiguate, .Va errno -can be set to 0 before the call and checked afterwards. +is set to 0 in the libc wrapper for the +.Fn ptrace +system call and +.Fn ptrace +callers can reliably check +.Va errno +for non-zero value afterwards. .Sh ERRORS The .Fn ptrace Modified: projects/clang390-import/lib/libnv/Makefile ============================================================================== --- projects/clang390-import/lib/libnv/Makefile Sun Aug 28 11:54:45 2016 (r304954) +++ projects/clang390-import/lib/libnv/Makefile Sun Aug 28 11:58:15 2016 (r304955) @@ -11,7 +11,8 @@ SHLIB_MAJOR= 0 .PATH: ${.CURDIR}/../../sys/contrib/libnv ${.CURDIR}/../../sys/sys CFLAGS+=-I${.CURDIR}/../../sys -I${.CURDIR} -SRCS= dnvlist.c +SRCS= cnvlist.c +SRCS+= dnvlist.c SRCS+= msgio.c SRCS+= nvlist.c SRCS+= nvpair.c Modified: projects/clang390-import/lib/libnv/tests/Makefile ============================================================================== --- projects/clang390-import/lib/libnv/tests/Makefile Sun Aug 28 11:54:45 2016 (r304954) +++ projects/clang390-import/lib/libnv/tests/Makefile Sun Aug 28 11:58:15 2016 (r304955) @@ -1,6 +1,7 @@ # $FreeBSD$ ATF_TESTS_CXX= \ + cnv_tests \ dnv_tests \ nv_array_tests \ nv_tests \ Copied: projects/clang390-import/lib/libnv/tests/cnv_tests.cc (from r304954, head/lib/libnv/tests/cnv_tests.cc) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/lib/libnv/tests/cnv_tests.cc Sun Aug 28 11:58:15 2016 (r304955, copy of r304954, head/lib/libnv/tests/cnv_tests.cc) @@ -0,0 +1,1508 @@ +/*- + * Copyright (c) 2016 Adam Starak + * 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 AUTHORS 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 AUTHORS 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include + +#define fd_is_valid(fd) (fcntl((fd), F_GETFL) != -1 || errno != EBADF) + +/* ATF cnvlist_get tests. */ + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_bool); +ATF_TEST_CASE_BODY(cnvlist_get_bool) +{ + nvlist_t *nvl; + const char *key; + bool value; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = true; + + nvlist_add_bool(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_BOOL); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_bool(nvl, key)); + + ATF_REQUIRE_EQ(cnvlist_get_bool(cookie), value); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_number); +ATF_TEST_CASE_BODY(cnvlist_get_number) +{ + nvlist_t *nvl; + const char *key; + uint64_t value; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = 420; + + nvlist_add_number(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NUMBER); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_number(nvl, key)); + + ATF_REQUIRE_EQ(cnvlist_get_number(cookie), value); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_string); +ATF_TEST_CASE_BODY(cnvlist_get_string) +{ + nvlist_t *nvl; + const char *key; + const char *value; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = "text"; + + nvlist_add_string(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_STRING); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_string(nvl, key)); + + ATF_REQUIRE_EQ(strcmp(cnvlist_get_string(cookie), value), 0); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_nvlist); +ATF_TEST_CASE_BODY(cnvlist_get_nvlist) +{ + nvlist_t *nvl, *value; + const nvlist_t *result; + const char *key, *subkey; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + value = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + key = "name"; + subkey = "subname"; + cookie = NULL; + + /* Add null to 'value' nvlist. */ + nvlist_add_null(value, subkey); + ATF_REQUIRE_EQ(strcmp(subkey, nvlist_next(value, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(value), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NULL); + ATF_REQUIRE(!nvlist_empty(value)); + ATF_REQUIRE(nvlist_exists(value, subkey)); + ATF_REQUIRE(nvlist_exists_null(value, subkey)); + ATF_REQUIRE_EQ(nvlist_next(value, &type, &cookie), + static_cast(NULL)); + + /* Add 'value' nvlist. */ + cookie = NULL; + nvlist_add_nvlist(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NVLIST); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_nvlist(nvl, key)); + + /* + * Assuming nvlist_get_nvlist() is correct check if cnvlist returns + * the same pointer. + */ + result = cnvlist_get_nvlist(cookie); + ATF_REQUIRE_EQ(result, nvlist_get_nvlist(nvl, key)); + ATF_REQUIRE(result != value); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + /* Validate data inside nvlist. */ + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(subkey, nvlist_next(result, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(result), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NULL); + ATF_REQUIRE(!nvlist_empty(result)); + ATF_REQUIRE(nvlist_exists(result, subkey)); + ATF_REQUIRE(nvlist_exists_null(result, subkey)); + ATF_REQUIRE_EQ(nvlist_next(result, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); + nvlist_destroy(value); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_descriptor); +ATF_TEST_CASE_BODY(cnvlist_get_descriptor) +{ + nvlist_t *nvl; + const char *key; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_descriptor(nvl, key, STDERR_FILENO); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_DESCRIPTOR); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_descriptor(nvl, key)); + + ATF_REQUIRE_EQ(fd_is_valid(cnvlist_get_descriptor(cookie)), 1); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_binary); +ATF_TEST_CASE_BODY(cnvlist_get_binary) +{ + nvlist_t *nvl; + const char *key; + void *in_binary; + const void *out_binary; + void *cookie; + int type; + size_t in_size, out_size; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + in_size = 13; + + in_binary = malloc(in_size); + ATF_REQUIRE(in_binary != NULL); + memset(in_binary, 0xa5, in_size); + + nvlist_add_binary(nvl, key, in_binary, in_size); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_BINARY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_binary(nvl, key)); + + out_binary = cnvlist_get_binary(cookie, &out_size); + ATF_REQUIRE_EQ(out_size, in_size); + ATF_REQUIRE_EQ(memcmp(in_binary, out_binary, out_size), 0); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +/* ATF cnvlist_get array tests. */ + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_bool_array); +ATF_TEST_CASE_BODY(cnvlist_get_bool_array) +{ + nvlist_t *nvl; + bool in_array[16]; + const bool *out_array; + const char *key; + void *cookie; + int type, i; + size_t nitems; + + for (i = 0; i < 16; i++) + in_array[i] = (i % 2 == 0); + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_bool_array(nvl, key, in_array, 16); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_BOOL_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_bool_array(nvl, key)); + + out_array = cnvlist_get_bool_array(cookie, &nitems); + ATF_REQUIRE_EQ(nitems, 16); + ATF_REQUIRE(out_array != NULL); + for (i = 0; i < 16; i++) + ATF_REQUIRE_EQ(out_array[i], in_array[i]); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_number_array); +ATF_TEST_CASE_BODY(cnvlist_get_number_array) +{ + nvlist_t *nvl; + uint64_t in_array[16]; + const uint64_t *out_array; + const char *key; + void *cookie; + int type, i; + size_t nitems; + + for (i = 0; i < 16; i++) + in_array[i] = i; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_number_array(nvl, key, in_array, 16); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NUMBER_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_number_array(nvl, key)); + + out_array = cnvlist_get_number_array(cookie, &nitems); + ATF_REQUIRE(out_array != NULL); + ATF_REQUIRE_EQ(nitems, 16); + for (i = 0; i < 16; i++) + ATF_REQUIRE_EQ(out_array[i], in_array[i]); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_string_array); +ATF_TEST_CASE_BODY(cnvlist_get_string_array) +{ + nvlist_t *nvl; + const char *in_array[4] = {"inequality", "sucks", ".", ""}; + const char * const *out_array; + const char *key; + void *cookie; + int type, i; + size_t nitems; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_string_array(nvl, key, in_array, 4); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_STRING_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_string_array(nvl, key)); + + out_array = cnvlist_get_string_array(cookie, &nitems); + ATF_REQUIRE_EQ(nitems, 4); + ATF_REQUIRE(out_array != NULL); + for (i = 0; i < 4; i++) { + ATF_REQUIRE(out_array[i] != NULL); + ATF_REQUIRE_EQ(strcmp(out_array[i], in_array[i]), 0); + } + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_nvlist_array); +ATF_TEST_CASE_BODY(cnvlist_get_nvlist_array) +{ + nvlist_t *nvl; + nvlist_t *in_array[6]; + const nvlist_t * const *out_array; + const nvlist_t * const *out_result; + void *cookie; + const char *key; + const char *subkeys; + int type, i; + size_t nitems; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + subkeys = "123456"; + for (i = 0; i < 6; i++) { + in_array[i] = nvlist_create(0); + ATF_REQUIRE(in_array[i] != NULL); + ATF_REQUIRE_EQ(nvlist_error(in_array[i]), 0); + ATF_REQUIRE(nvlist_empty(in_array[i])); + + cookie = NULL; + + nvlist_add_null(in_array[i], subkeys+i); + ATF_REQUIRE_EQ(strcmp(subkeys+i, nvlist_next(in_array[i], + &type, &cookie)),0); + ATF_REQUIRE_EQ(nvlist_error(in_array[i]), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NULL); + ATF_REQUIRE(!nvlist_empty(in_array[i])); + ATF_REQUIRE(nvlist_exists(in_array[i], subkeys+i)); + ATF_REQUIRE(nvlist_exists_null(in_array[i], subkeys+i)); + ATF_REQUIRE_EQ(nvlist_next(in_array[i], &type, &cookie), + static_cast(NULL)); + } + + cookie = NULL; + key = "name"; + + nvlist_add_nvlist_array(nvl, key, in_array, 6); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NVLIST_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_nvlist_array(nvl, key)); + + /* Get nvlist array by cnvlist function. */ + out_array = cnvlist_get_nvlist_array(cookie, &nitems); + ATF_REQUIRE(out_array != NULL); + ATF_REQUIRE_EQ(nitems, 6); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + /* Get nvlist array by nvlist function. */ + out_result = nvlist_get_nvlist_array(nvl, key, &nitems); + ATF_REQUIRE(out_result != NULL); + ATF_REQUIRE_EQ(nitems, 6); + + /* Validate assuming that nvlist returned a proper pointer */ + for (i = 0; i < 6; i++) { + ATF_REQUIRE_EQ(out_result[i], out_array[i]); + ATF_REQUIRE(out_array[i] != in_array[i]); + + /* Validate data inside nvlist. */ + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(subkeys+i, nvlist_next(out_array[i], + &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(out_array[i]), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NULL); + ATF_REQUIRE(!nvlist_empty(out_array[i])); + ATF_REQUIRE(nvlist_exists(out_array[i], subkeys+i)); + ATF_REQUIRE(nvlist_exists_null(out_array[i], subkeys+i)); + ATF_REQUIRE_EQ(nvlist_next(out_array[i], &type, &cookie), + static_cast(NULL)); + } + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_descriptor_array); +ATF_TEST_CASE_BODY(cnvlist_get_descriptor_array) +{ + nvlist_t *nvl; + size_t count, i, nitems; + const int *out_array; + int *in_array, type; + const char *key; + void *cookie; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + count = 50; + + in_array = static_cast(malloc(sizeof(*in_array)*count)); + ATF_REQUIRE(in_array != NULL); + for (i = 0; i < count; i++) { + in_array[i] = dup(STDERR_FILENO); + ATF_REQUIRE(fd_is_valid(in_array[i])); + } + + nvlist_add_descriptor_array(nvl, key, in_array, count); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_DESCRIPTOR_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_descriptor_array(nvl, key)); + + out_array = cnvlist_get_descriptor_array(cookie, &nitems); + ATF_REQUIRE_EQ(nitems, count); + ATF_REQUIRE(out_array != NULL); + for (i = 0; i < count; i++) + ATF_REQUIRE_EQ(fd_is_valid(out_array[i]), 1); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +/* ATF cnvlist_take tests. */ + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_take_bool); +ATF_TEST_CASE_BODY(cnvlist_take_bool) +{ + nvlist_t *nvl; + const char *key; + bool value; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = true; + + nvlist_add_bool(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_BOOL); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_bool(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(cnvlist_take_bool(nvl, cookie), value); + + cookie = NULL; + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + ATF_REQUIRE(!nvlist_exists(nvl, key)); + ATF_REQUIRE(!nvlist_exists_bool(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_take_number); +ATF_TEST_CASE_BODY(cnvlist_take_number) +{ + nvlist_t *nvl; + const char *key; + uint64_t value; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = 69; + + nvlist_add_number(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NUMBER); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_number(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(cnvlist_take_number(nvl, cookie), value); + + cookie = NULL; + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + ATF_REQUIRE(!nvlist_exists(nvl, key)); + ATF_REQUIRE(!nvlist_exists_number(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_take_string); +ATF_TEST_CASE_BODY(cnvlist_take_string) +{ + nvlist_t *nvl; + const char *key; + const char *value; + char *out_string; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = "text"; + + nvlist_add_string(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_STRING); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_string(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + out_string = cnvlist_take_string(nvl, cookie); + ATF_REQUIRE(out_string != NULL); + ATF_REQUIRE_EQ(strcmp(out_string, value), 0); + + cookie = NULL; + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + ATF_REQUIRE(!nvlist_exists(nvl, key)); + ATF_REQUIRE(!nvlist_exists_string(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + free(out_string); + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_take_nvlist); +ATF_TEST_CASE_BODY(cnvlist_take_nvlist) +{ + nvlist_t *nvl, *value, *result; + const char *key, *subkey; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + value = nvlist_create(0); + ATF_REQUIRE(value != NULL); + ATF_REQUIRE_EQ(nvlist_error(value), 0); + ATF_REQUIRE(nvlist_empty(value)); + + key = "name"; + subkey = "subname"; + cookie = NULL; + + /* Add null to 'value' nvlist. */ + nvlist_add_null(value, subkey); + ATF_REQUIRE_EQ(strcmp(subkey, nvlist_next(value, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(value), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NULL); + ATF_REQUIRE(!nvlist_empty(value)); + ATF_REQUIRE(nvlist_exists(value, subkey)); + ATF_REQUIRE(nvlist_exists_null(value, subkey)); + ATF_REQUIRE_EQ(nvlist_next(value, &type, &cookie), + static_cast(NULL)); + + /* Add 'value' nvlist. */ + cookie = NULL; + nvlist_move_nvlist(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NVLIST); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_nvlist(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + result = cnvlist_take_nvlist(nvl, cookie); + ATF_REQUIRE(!nvlist_exists_nvlist(nvl, key)); + ATF_REQUIRE(result == value); + + /* Validate data inside nvlist. */ + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(subkey, nvlist_next(result, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(value), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NULL); + ATF_REQUIRE(!nvlist_empty(value)); + ATF_REQUIRE(nvlist_exists(value, subkey)); + ATF_REQUIRE(nvlist_exists_null(value, subkey)); + ATF_REQUIRE_EQ(nvlist_next(value, &type, &cookie), + static_cast(NULL)); + + cookie = NULL; + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); + nvlist_destroy(value); +} + +/* ATF cnvlist_take array tests */ + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_take_bool_array); +ATF_TEST_CASE_BODY(cnvlist_take_bool_array) +{ + nvlist_t *nvl; + bool in_array[16]; + const bool *out_array; + const char *key; + void *cookie; + int type, i; + size_t nitems; + + for (i = 0; i < 16; i++) + in_array[i] = (i % 2 == 0); + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_bool_array(nvl, key, in_array, 16); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_BOOL_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_bool_array(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + out_array = cnvlist_take_bool_array(nvl, cookie, &nitems); + ATF_REQUIRE_EQ(nitems, 16); + ATF_REQUIRE(out_array != NULL); + for (i = 0; i < 16; i++) + ATF_REQUIRE_EQ(out_array[i], in_array[i]); + + cookie = NULL; + ATF_REQUIRE(!nvlist_exists_bool_array(nvl, key)); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + ATF_REQUIRE(!nvlist_exists(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_take_number_array); +ATF_TEST_CASE_BODY(cnvlist_take_number_array) +{ + nvlist_t *nvl; + uint64_t in_array[16]; + const uint64_t *out_array; + const char *key; + void *cookie; + int type, i; + size_t nitems; + + for (i = 0; i < 16; i++) + in_array[i] = i; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_number_array(nvl, key, in_array, 16); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NUMBER_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_number_array(nvl, key)); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Aug 28 19:28:02 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4BEDFBC59A3 for ; Sun, 28 Aug 2016 19:28:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0364766B; Sun, 28 Aug 2016 19:28:01 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7SJS1Hq023989; Sun, 28 Aug 2016 19:28:01 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7SJS1dV023988; Sun, 28 Aug 2016 19:28:01 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608281928.u7SJS1dV023988@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 28 Aug 2016 19:28:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r304960 - projects/clang390-import/contrib/llvm/tools/clang/lib/Sema X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Aug 2016 19:28:02 -0000 Author: dim Date: Sun Aug 28 19:28:00 2016 New Revision: 304960 URL: https://svnweb.freebsd.org/changeset/base/304960 Log: Tentatively apply https://reviews.llvm.org/D23921, to get rid of false positive diagnostics from -Wvarargs about enum parameters, e.g.: cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c:388:15: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs] va_start(ap, which); ^ cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c:382:66: note: parameter of type 'enum nvlist_prtctl_fmt' is declared here nvlist_prtctl_dofmt(nvlist_prtctl_t pctl, enum nvlist_prtctl_fmt which, ...) ^ Modified: projects/clang390-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp Modified: projects/clang390-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp ============================================================================== --- projects/clang390-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp Sun Aug 28 18:10:29 2016 (r304959) +++ projects/clang390-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp Sun Aug 28 19:28:00 2016 (r304960) @@ -3189,8 +3189,17 @@ bool Sema::SemaBuiltinVAStartImpl(CallEx Diag(TheCall->getArg(1)->getLocStart(), diag::warn_second_arg_of_va_start_not_last_named_param); else if (IsCRegister || Type->isReferenceType() || - Type->isPromotableIntegerType() || - Type->isSpecificBuiltinType(BuiltinType::Float)) { + Type->isSpecificBuiltinType(BuiltinType::Float) || [=] { + // Promotable integers are UB, but enumerations need a bit of + // extra checking to see what their promotable type actually is. + if (!Type->isPromotableIntegerType()) + return false; + if (!Type->isEnumeralType()) + return true; + const EnumDecl *ED = Type->getAs()->getDecl(); + return !(ED && + Context.typesAreCompatible(ED->getPromotionType(), Type)); + }()) { unsigned Reason = 0; if (Type->isReferenceType()) Reason = 1; else if (IsCRegister) Reason = 2; From owner-svn-src-projects@freebsd.org Sun Aug 28 19:32:15 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF8CCBC5AE3 for ; Sun, 28 Aug 2016 19:32:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C2E3B9CE; Sun, 28 Aug 2016 19:32:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7SJWFaF026883; Sun, 28 Aug 2016 19:32:15 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7SJWFsa026882; Sun, 28 Aug 2016 19:32:15 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608281932.u7SJWFsa026882@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 28 Aug 2016 19:32:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r304961 - projects/clang390-import/cddl/lib/libnvpair X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Aug 2016 19:32:16 -0000 Author: dim Date: Sun Aug 28 19:32:14 2016 New Revision: 304961 URL: https://svnweb.freebsd.org/changeset/base/304961 Log: Revert r304547 now there is no more need for it. Modified: projects/clang390-import/cddl/lib/libnvpair/Makefile Modified: projects/clang390-import/cddl/lib/libnvpair/Makefile ============================================================================== --- projects/clang390-import/cddl/lib/libnvpair/Makefile Sun Aug 28 19:28:00 2016 (r304960) +++ projects/clang390-import/cddl/lib/libnvpair/Makefile Sun Aug 28 19:32:14 2016 (r304961) @@ -31,7 +31,4 @@ CFLAGS+= -I${.CURDIR}/../../../cddl/comp # ARENDER(pctl, nvlist_array, nvl, name, val, nelem); # CFLAGS+= -Wno-format-security -# For now, don't error out on warnings about undefined behavior calling -# va_start() on the 'which' parameter of nvlist_prtctl_dofmt(). -CWARNFLAGS.clang+= -Wno-error-varargs .include From owner-svn-src-projects@freebsd.org Sun Aug 28 19:48:11 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1DE4DBC5FBC for ; Sun, 28 Aug 2016 19:48:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DCDA17C0; Sun, 28 Aug 2016 19:48:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7SJmABa031799; Sun, 28 Aug 2016 19:48:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7SJm8to031785; Sun, 28 Aug 2016 19:48:08 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608281948.u7SJm8to031785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 28 Aug 2016 19:48:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r304965 - in projects/clang390-import: contrib/ipfilter sys/contrib/ipfilter/netinet sys/ddb sys/dev/bhnd sys/dev/bhnd/bcma sys/dev/bhnd/siba sys/i386/i386 sys/modules X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Aug 2016 19:48:11 -0000 Author: dim Date: Sun Aug 28 19:48:08 2016 New Revision: 304965 URL: https://svnweb.freebsd.org/changeset/base/304965 Log: Merge ^/head r304955 through r304964. Modified: projects/clang390-import/contrib/ipfilter/opts.h projects/clang390-import/sys/contrib/ipfilter/netinet/ip_compat.h projects/clang390-import/sys/contrib/ipfilter/netinet/ip_fil.h projects/clang390-import/sys/contrib/ipfilter/netinet/ip_log.c projects/clang390-import/sys/contrib/ipfilter/netinet/ip_nat.h projects/clang390-import/sys/contrib/ipfilter/netinet/ip_proxy.h projects/clang390-import/sys/ddb/db_expr.c projects/clang390-import/sys/dev/bhnd/bcma/bcma.c projects/clang390-import/sys/dev/bhnd/bhnd.h projects/clang390-import/sys/dev/bhnd/bhnd_bus_if.m projects/clang390-import/sys/dev/bhnd/siba/siba.c projects/clang390-import/sys/i386/i386/machdep.c projects/clang390-import/sys/modules/Makefile Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/contrib/ipfilter/ (props changed) projects/clang390-import/sys/contrib/ipfilter/ (props changed) Modified: projects/clang390-import/contrib/ipfilter/opts.h ============================================================================== --- projects/clang390-import/contrib/ipfilter/opts.h Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/contrib/ipfilter/opts.h Sun Aug 28 19:48:08 2016 (r304965) @@ -12,7 +12,11 @@ #define __OPTS_H__ #ifndef SOLARIS -#define SOLARIS (defined(sun) && (defined(__svr4__) || defined(__SVR4))) +# if defined(sun) && (defined(__svr4__) || defined(__SVR4)) +# define SOLARIS 1 +# else +# define SOLARIS 0 +# endif #endif #define OPT_REMOVE 0x000001 #define OPT_DEBUG 0x000002 Modified: projects/clang390-import/sys/contrib/ipfilter/netinet/ip_compat.h ============================================================================== --- projects/clang390-import/sys/contrib/ipfilter/netinet/ip_compat.h Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/contrib/ipfilter/netinet/ip_compat.h Sun Aug 28 19:48:08 2016 (r304965) @@ -32,10 +32,12 @@ # define __KERNEL__ #endif -#if defined(sun) && (defined(__svr4__) || defined(__SVR4)) -# define SOLARIS 1 -#else -# define SOLARIS 0 +#ifndef SOLARIS +# if defined(sun) && (defined(__svr4__) || defined(__SVR4)) +# define SOLARIS 1 +# else +# define SOLARIS 0 +# endif #endif Modified: projects/clang390-import/sys/contrib/ipfilter/netinet/ip_fil.h ============================================================================== --- projects/clang390-import/sys/contrib/ipfilter/netinet/ip_fil.h Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/contrib/ipfilter/netinet/ip_fil.h Sun Aug 28 19:48:08 2016 (r304965) @@ -29,7 +29,11 @@ #endif #ifndef SOLARIS -# define SOLARIS (defined(sun) && (defined(__svr4__) || defined(__SVR4))) +# if defined(sun) && (defined(__svr4__) || defined(__SVR4)) +# define SOLARIS 1 +# else +# define SOLARIS 0 +# endif #endif #ifndef __P Modified: projects/clang390-import/sys/contrib/ipfilter/netinet/ip_log.c ============================================================================== --- projects/clang390-import/sys/contrib/ipfilter/netinet/ip_log.c Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/contrib/ipfilter/netinet/ip_log.c Sun Aug 28 19:48:08 2016 (r304965) @@ -19,7 +19,11 @@ # include #endif #ifndef SOLARIS -# define SOLARIS (defined(sun) && (defined(__svr4__) || defined(__SVR4))) +# if defined(sun) && (defined(__svr4__) || defined(__SVR4)) +# define SOLARIS 1 +# else +# define SOLARIS 0 +# endif #endif #include #include Modified: projects/clang390-import/sys/contrib/ipfilter/netinet/ip_nat.h ============================================================================== --- projects/clang390-import/sys/contrib/ipfilter/netinet/ip_nat.h Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/contrib/ipfilter/netinet/ip_nat.h Sun Aug 28 19:48:08 2016 (r304965) @@ -13,8 +13,12 @@ #ifndef __IP_NAT_H__ #define __IP_NAT_H__ -#ifndef SOLARIS -#define SOLARIS (defined(sun) && (defined(__svr4__) || defined(__SVR4))) +#ifndef SOLARIS +# if defined(sun) && (defined(__svr4__) || defined(__SVR4)) +# define SOLARIS 1 +# else +# define SOLARIS 0 +# endif #endif #if defined(__STDC__) || defined(__GNUC__) || defined(_AIX51) Modified: projects/clang390-import/sys/contrib/ipfilter/netinet/ip_proxy.h ============================================================================== --- projects/clang390-import/sys/contrib/ipfilter/netinet/ip_proxy.h Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/contrib/ipfilter/netinet/ip_proxy.h Sun Aug 28 19:48:08 2016 (r304965) @@ -12,8 +12,12 @@ #ifndef __IP_PROXY_H__ #define __IP_PROXY_H__ -#ifndef SOLARIS -#define SOLARIS (defined(sun) && (defined(__svr4__) || defined(__SVR4))) +#ifndef SOLARIS +# if defined(sun) && (defined(__svr4__) || defined(__SVR4)) +# define SOLARIS 1 +# else +# define SOLARIS 0 +# endif #endif #if defined(__STDC__) || defined(__GNUC__) || defined(_AIX51) Modified: projects/clang390-import/sys/ddb/db_expr.c ============================================================================== --- projects/clang390-import/sys/ddb/db_expr.c Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/ddb/db_expr.c Sun Aug 28 19:48:08 2016 (r304965) @@ -57,7 +57,8 @@ db_term(db_expr_t *valuep) if (!db_value_of_name(db_tok_string, valuep) && !db_value_of_name_pcpu(db_tok_string, valuep) && !db_value_of_name_vnet(db_tok_string, valuep)) { - db_error("Symbol not found\n"); + db_printf("Symbol '%s' not found\n", db_tok_string); + db_error(NULL); /*NOTREACHED*/ } return (true); @@ -89,12 +90,14 @@ db_term(db_expr_t *valuep) } if (t == tLPAREN) { if (!db_expression(valuep)) { - db_error("Syntax error\n"); + db_printf("Expression syntax error after '%c'\n", '('); + db_error(NULL); /*NOTREACHED*/ } t = db_read_token(); if (t != tRPAREN) { - db_error("Syntax error\n"); + db_printf("Expression syntax error -- expected '%c'\n", ')'); + db_error(NULL); /*NOTREACHED*/ } return (true); @@ -164,7 +167,9 @@ db_mult_expr(db_expr_t *valuep) while (t == tSTAR || t == tSLASH || t == tPCT || t == tHASH || t == tBIT_AND ) { if (!db_term(&rhs)) { - db_printf("Expression syntax error after '%c'\n", '!'); + db_printf("Expression syntax error after '%c'\n", + t == tSTAR ? '*' : t == tSLASH ? '/' : t == tPCT ? '%' : + t == tHASH ? '#' : '&'); db_error(NULL); /*NOTREACHED*/ } @@ -177,7 +182,7 @@ db_mult_expr(db_expr_t *valuep) break; default: if (rhs == 0) { - db_error("Divide by 0\n"); + db_error("Division by 0\n"); /*NOTREACHED*/ } if (t == tSLASH) @@ -199,7 +204,6 @@ db_add_expr(db_expr_t *valuep) { db_expr_t lhs, rhs; int t; - char c; if (!db_mult_expr(&lhs)) return (false); @@ -207,8 +211,8 @@ db_add_expr(db_expr_t *valuep) t = db_read_token(); while (t == tPLUS || t == tMINUS || t == tBIT_OR) { if (!db_mult_expr(&rhs)) { - c = db_tok_string[0]; - db_printf("Expression syntax error after '%c'\n", c); + db_printf("Expression syntax error after '%c'\n", + t == tPLUS ? '+' : t == tMINUS ? '-' : '|'); db_error(NULL); /*NOTREACHED*/ } @@ -243,11 +247,14 @@ db_shift_expr(db_expr_t *valuep) t = db_read_token(); while (t == tSHIFT_L || t == tSHIFT_R) { if (!db_add_expr(&rhs)) { - db_error("Syntax error\n"); + db_printf("Expression syntax error after '%s'\n", + t == tSHIFT_L ? "<<" : ">>"); + db_error(NULL); /*NOTREACHED*/ } if (rhs < 0) { - db_error("Negative shift amount\n"); + db_printf("Negative shift amount %jd\n", (intmax_t)rhs); + db_error(NULL); /*NOTREACHED*/ } if (t == tSHIFT_L) @@ -269,7 +276,6 @@ db_logical_relation_expr( { db_expr_t lhs, rhs; int t; - char op[3]; if (!db_shift_expr(&lhs)) return (false); @@ -277,11 +283,11 @@ db_logical_relation_expr( t = db_read_token(); while (t == tLOG_EQ || t == tLOG_NOT_EQ || t == tGREATER || t == tGREATER_EQ || t == tLESS || t == tLESS_EQ) { - op[0] = db_tok_string[0]; - op[1] = db_tok_string[1]; - op[2] = 0; if (!db_shift_expr(&rhs)) { - db_printf("Expression syntax error after \"%s\"\n", op); + db_printf("Expression syntax error after '%s'\n", + t == tLOG_EQ ? "==" : t == tLOG_NOT_EQ ? "!=" : + t == tGREATER ? ">" : t == tGREATER_EQ ? ">=" : + t == tLESS ? "<" : "<="); db_error(NULL); /*NOTREACHED*/ } Modified: projects/clang390-import/sys/dev/bhnd/bcma/bcma.c ============================================================================== --- projects/clang390-import/sys/dev/bhnd/bcma/bcma.c Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/dev/bhnd/bcma/bcma.c Sun Aug 28 19:48:08 2016 (r304965) @@ -492,6 +492,42 @@ bcma_free_bhnd_dinfo(device_t dev, struc bcma_free_dinfo(dev, (struct bcma_devinfo *)dinfo); } + +static int +bcma_get_core_table(device_t dev, device_t child, struct bhnd_core_info **cores, + u_int *num_cores) +{ + struct bcma_softc *sc; + struct bcma_erom erom; + const struct bhnd_chipid *cid; + struct resource *r; + int error; + int rid; + + sc = device_get_softc(dev); + + /* Map the EROM table. */ + cid = BHND_BUS_GET_CHIPID(dev, dev); + rid = 0; + r = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, cid->enum_addr, + cid->enum_addr + BCMA_EROM_TABLE_SIZE, BCMA_EROM_TABLE_SIZE, + RF_ACTIVE); + if (r == NULL) { + device_printf(dev, "failed to allocate EROM resource\n"); + return (ENXIO); + } + + /* Enumerate all declared cores */ + if ((error = bcma_erom_open(&erom, r, BCMA_EROM_TABLE_START))) + goto cleanup; + + error = bcma_erom_get_core_info(&erom, cores, num_cores); + +cleanup: + bus_release_resource(dev, SYS_RES_MEMORY, rid, r); + return (error); +} + /** * Scan a device enumeration ROM table, adding all valid discovered cores to * the bus. @@ -577,6 +613,7 @@ static device_method_t bcma_methods[] = DEVMETHOD(bhnd_bus_find_hostb_device, bcma_find_hostb_device), DEVMETHOD(bhnd_bus_alloc_devinfo, bcma_alloc_bhnd_dinfo), DEVMETHOD(bhnd_bus_free_devinfo, bcma_free_bhnd_dinfo), + DEVMETHOD(bhnd_bus_get_core_table, bcma_get_core_table), DEVMETHOD(bhnd_bus_reset_core, bcma_reset_core), DEVMETHOD(bhnd_bus_suspend_core, bcma_suspend_core), DEVMETHOD(bhnd_bus_read_config, bcma_read_config), Modified: projects/clang390-import/sys/dev/bhnd/bhnd.h ============================================================================== --- projects/clang390-import/sys/dev/bhnd/bhnd.h Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/dev/bhnd/bhnd.h Sun Aug 28 19:48:08 2016 (r304965) @@ -425,6 +425,32 @@ bhnd_get_chipid(device_t dev) { }; /** + * Get a list of all cores discoverable on the bhnd bus. + * + * Enumerates all cores discoverable on @p dev, returning the list in + * @p cores and the count in @p num_cores. + * + * The memory allocated for the list should be freed using + * `free(*cores, M_BHND)`. @p cores and @p num_cores are not changed + * when an error is returned. + * + * @param dev A bhnd bus child device. + * @param[out] cores The table of core descriptors. + * @param[out] num_cores The number of core descriptors in @p cores. + * + * @retval 0 success + * @retval non-zero if an error occurs enumerating @p dev, a regular UNIX + * error code should be returned. + */ +static inline int +bhnd_get_core_table(device_t dev, struct bhnd_core_info **cores, + u_int *num_cores) +{ + return (BHND_BUS_GET_CORE_TABLE(device_get_parent(dev), dev, cores, + num_cores)); +} + +/** * If supported by the chipset, return the clock source for the given clock. * * This function is only supported on early PWRCTL-equipped chipsets Modified: projects/clang390-import/sys/dev/bhnd/bhnd_bus_if.m ============================================================================== --- projects/clang390-import/sys/dev/bhnd/bhnd_bus_if.m Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/dev/bhnd/bhnd_bus_if.m Sun Aug 28 19:48:08 2016 (r304965) @@ -56,6 +56,13 @@ CODE { panic("bhnd_bus_get_chipid unimplemented"); } + static int + bhnd_bus_null_get_core_table(device_t dev, device_t child, + struct bhnd_core_info **cores, u_int *num_cores) + { + panic("bhnd_bus_get_core_table unimplemented"); + } + static bhnd_attach_type bhnd_bus_null_get_attach_type(device_t dev, device_t child) { @@ -271,6 +278,32 @@ METHOD const struct bhnd_chipid * get_ch } DEFAULT bhnd_bus_null_get_chipid; /** + * Get a list of all cores discoverable on @p dev. + * + * Enumerates all cores discoverable on @p dev, returning the list in + * @p cores and the count in @p num_cores. + * + * The memory allocated for the list should be freed using + * `free(*cores, M_BHND)`. @p cores and @p num_cores are not changed + * when an error is returned. + * + * @param dev The bhnd bus device. + * @param child The requesting bhnd bus child. + * @param[out] cores The table of core descriptors. + * @param[out] num_cores The number of core descriptors in @p cores. + * + * @retval 0 success + * @retval non-zero if an error occurs enumerating @p dev, a regular UNIX + * error code should be returned. + */ +METHOD int get_core_table { + device_t dev; + device_t child; + struct bhnd_core_info **cores; + u_int *num_cores; +} DEFAULT bhnd_bus_null_get_core_table; + +/** * Return the BHND attachment type of the parent bus. * * @param dev The device whose child is being examined. Modified: projects/clang390-import/sys/dev/bhnd/siba/siba.c ============================================================================== --- projects/clang390-import/sys/dev/bhnd/siba/siba.c Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/dev/bhnd/siba/siba.c Sun Aug 28 19:48:08 2016 (r304965) @@ -504,6 +504,76 @@ siba_free_bhnd_dinfo(device_t dev, struc siba_free_dinfo(dev, (struct siba_devinfo *)dinfo); } + +static int +siba_get_core_table(device_t dev, device_t child, struct bhnd_core_info **cores, + u_int *num_cores) +{ + const struct bhnd_chipid *chipid; + struct bhnd_core_info *table; + struct bhnd_resource *r; + int error; + int rid; + + /* Fetch the core count from our chip identification */ + chipid = BHND_BUS_GET_CHIPID(dev, dev); + + /* Allocate our local core table */ + table = malloc(sizeof(*table) * chipid->ncores, M_BHND, M_NOWAIT); + if (table == NULL) + return (ENOMEM); + + /* Enumerate all cores. */ + for (u_int i = 0; i < chipid->ncores; i++) { + struct siba_core_id cid; + uint32_t idhigh, idlow; + + /* Map the core's register block */ + rid = 0; + r = bhnd_alloc_resource(dev, SYS_RES_MEMORY, &rid, + SIBA_CORE_ADDR(i), SIBA_CORE_ADDR(i) + SIBA_CORE_SIZE - 1, + SIBA_CORE_SIZE, RF_ACTIVE); + if (r == NULL) { + error = ENXIO; + goto failed; + } + + /* Read the core info */ + idhigh = bhnd_bus_read_4(r, SB0_REG_ABS(SIBA_CFG0_IDHIGH)); + idlow = bhnd_bus_read_4(r, SB0_REG_ABS(SIBA_CFG0_IDLOW)); + + cid = siba_parse_core_id(idhigh, idlow, i, 0); + table[i] = cid.core_info; + + /* Determine unit number */ + for (u_int j = 0; j < i; j++) { + if (table[j].vendor == table[i].vendor && + table[j].device == table[i].device) + table[i].unit++; + } + + /* Release our resource */ + bhnd_release_resource(dev, SYS_RES_MEMORY, rid, r); + r = NULL; + } + + /* Provide the result values (performed last to avoid modifying + * cores/num_cores if enumeration failed). */ + *cores = table; + *num_cores = chipid->ncores; + + return (0); + +failed: + if (table != NULL) + free(table, M_BHND); + + if (r != NULL) + bhnd_release_resource(dev, SYS_RES_MEMORY, rid, r); + + return (error); +} + /** * Scan the core table and add all valid discovered cores to * the bus. @@ -696,6 +766,7 @@ static device_method_t siba_methods[] = /* BHND interface */ DEVMETHOD(bhnd_bus_find_hostb_device, siba_find_hostb_device), + DEVMETHOD(bhnd_bus_get_core_table, siba_get_core_table), DEVMETHOD(bhnd_bus_alloc_devinfo, siba_alloc_bhnd_dinfo), DEVMETHOD(bhnd_bus_free_devinfo, siba_free_bhnd_dinfo), DEVMETHOD(bhnd_bus_reset_core, siba_reset_core), Modified: projects/clang390-import/sys/i386/i386/machdep.c ============================================================================== --- projects/clang390-import/sys/i386/i386/machdep.c Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/i386/i386/machdep.c Sun Aug 28 19:48:08 2016 (r304965) @@ -2636,20 +2636,17 @@ init386(first) dblfault_tss.tss_cs = GSEL(GCODE_SEL, SEL_KPL); dblfault_tss.tss_ldt = GSEL(GLDT_SEL, SEL_KPL); - vm86_initialize(); - getmemsize(first); - init_param2(physmem); - - /* now running on new page tables, configured,and u/iom is accessible */ - - /* - * Initialize the console before we print anything out. - */ - cninit(); - - if (metadata_missing) - printf("WARNING: loader(8) metadata is missing!\n"); + /* Initialize the tss (except for the final esp0) early for vm86. */ + PCPU_SET(common_tss.tss_esp0, thread0.td_kstack + + thread0.td_kstack_pages * PAGE_SIZE - 16); + PCPU_SET(common_tss.tss_ss0, GSEL(GDATA_SEL, SEL_KPL)); + gsel_tss = GSEL(GPROC0_SEL, SEL_KPL); + PCPU_SET(tss_gdt, &gdt[GPROC0_SEL].sd); + PCPU_SET(common_tssd, *PCPU_GET(tss_gdt)); + PCPU_SET(common_tss.tss_ioopt, (sizeof (struct i386tss)) << 16); + ltr(gsel_tss); + /* Initialize the PIC early for vm86 calls. */ #ifdef DEV_ISA #ifdef DEV_ATPIC #ifndef PC98 @@ -2671,6 +2668,20 @@ init386(first) #endif #endif + vm86_initialize(); + getmemsize(first); + init_param2(physmem); + + /* now running on new page tables, configured,and u/iom is accessible */ + + /* + * Initialize the console before we print anything out. + */ + cninit(); + + if (metadata_missing) + printf("WARNING: loader(8) metadata is missing!\n"); + #ifdef DDB db_fetch_ksymtab(bootinfo.bi_symtab, bootinfo.bi_esymtab); #endif @@ -2701,14 +2712,10 @@ init386(first) } #endif PCPU_SET(curpcb, thread0.td_pcb); - /* make an initial tss so cpu can get interrupt stack on syscall! */ + /* Move esp0 in the tss to its final place. */ /* Note: -16 is so we can grow the trapframe if we came from vm86 */ PCPU_SET(common_tss.tss_esp0, (vm_offset_t)thread0.td_pcb - 16); - PCPU_SET(common_tss.tss_ss0, GSEL(GDATA_SEL, SEL_KPL)); - gsel_tss = GSEL(GPROC0_SEL, SEL_KPL); - PCPU_SET(tss_gdt, &gdt[GPROC0_SEL].sd); - PCPU_SET(common_tssd, *PCPU_GET(tss_gdt)); - PCPU_SET(common_tss.tss_ioopt, (sizeof (struct i386tss)) << 16); + gdt[GPROC0_SEL].sd.sd_type = SDT_SYS386TSS; /* clear busy bit */ ltr(gsel_tss); /* make a call gate to reenter kernel with */ Modified: projects/clang390-import/sys/modules/Makefile ============================================================================== --- projects/clang390-import/sys/modules/Makefile Sun Aug 28 19:35:29 2016 (r304964) +++ projects/clang390-import/sys/modules/Makefile Sun Aug 28 19:48:08 2016 (r304965) @@ -766,7 +766,7 @@ _epic= epic _igb= igb .endif -.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE} == "i386" +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" _cloudabi32= cloudabi32 .endif .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" From owner-svn-src-projects@freebsd.org Mon Aug 29 18:53:41 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62350BC3731 for ; Mon, 29 Aug 2016 18:53:41 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0EAEC779; Mon, 29 Aug 2016 18:53:40 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7TIrecB060873; Mon, 29 Aug 2016 18:53:40 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7TIrb5w060840; Mon, 29 Aug 2016 18:53:37 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201608291853.u7TIrb5w060840@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 29 Aug 2016 18:53:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305014 - in projects/netbsd-tests-update-12: cddl/lib/libdtrace cddl/usr.sbin/zfsd contrib/ipfilter contrib/libarchive/libarchive contrib/libarchive/tar contrib/ncurses/ncurses/tinfo c... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Aug 2016 18:53:41 -0000 Author: ngie Date: Mon Aug 29 18:53:36 2016 New Revision: 305014 URL: https://svnweb.freebsd.org/changeset/base/305014 Log: MFhead @ r305013 Added: projects/netbsd-tests-update-12/lib/libc/sys/ptrace.c - copied unchanged from r305013, head/lib/libc/sys/ptrace.c projects/netbsd-tests-update-12/lib/libnv/tests/cnv_tests.cc - copied unchanged from r305013, head/lib/libnv/tests/cnv_tests.cc projects/netbsd-tests-update-12/share/man/man9/cnv.9 - copied unchanged from r305013, head/share/man/man9/cnv.9 projects/netbsd-tests-update-12/sys/contrib/libnv/cnvlist.c - copied unchanged from r305013, head/sys/contrib/libnv/cnvlist.c projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/bhnd_pmu_chipc.c - copied unchanged from r305013, head/sys/dev/bhnd/cores/chipc/bhnd_pmu_chipc.c projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/pwrctl/ - copied from r305013, head/sys/dev/bhnd/cores/chipc/pwrctl/ projects/netbsd-tests-update-12/sys/dev/bhnd/cores/pmu/ - copied from r305013, head/sys/dev/bhnd/cores/pmu/ projects/netbsd-tests-update-12/sys/dev/bhnd/pmu/ - copied from r305013, head/sys/dev/bhnd/pmu/ projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/ndis.h - copied unchanged from r305013, head/sys/dev/hyperv/netvsc/ndis.h projects/netbsd-tests-update-12/sys/mips/broadcom/bcm_bcma.c - copied unchanged from r305013, head/sys/mips/broadcom/bcm_bcma.c projects/netbsd-tests-update-12/sys/mips/broadcom/bcm_machdep.h - copied unchanged from r305013, head/sys/mips/broadcom/bcm_machdep.h projects/netbsd-tests-update-12/sys/mips/broadcom/bcm_mips_exts.h - copied unchanged from r305013, head/sys/mips/broadcom/bcm_mips_exts.h projects/netbsd-tests-update-12/sys/mips/broadcom/bcm_pmu.c - copied unchanged from r305013, head/sys/mips/broadcom/bcm_pmu.c projects/netbsd-tests-update-12/sys/mips/broadcom/bcm_siba.c - copied unchanged from r305013, head/sys/mips/broadcom/bcm_siba.c projects/netbsd-tests-update-12/sys/mips/conf/std.AR91XX - copied unchanged from r305013, head/sys/mips/conf/std.AR91XX projects/netbsd-tests-update-12/sys/mips/conf/std.QCA955X - copied unchanged from r305013, head/sys/mips/conf/std.QCA955X projects/netbsd-tests-update-12/sys/sys/cnv.h - copied unchanged from r305013, head/sys/sys/cnv.h Deleted: projects/netbsd-tests-update-12/lib/libc/amd64/sys/ptrace.S projects/netbsd-tests-update-12/lib/libc/arm/sys/ptrace.S projects/netbsd-tests-update-12/lib/libc/i386/sys/ptrace.S projects/netbsd-tests-update-12/lib/libc/mips/sys/ptrace.S projects/netbsd-tests-update-12/lib/libc/powerpc/sys/ptrace.S projects/netbsd-tests-update-12/lib/libc/powerpc64/sys/ptrace.S projects/netbsd-tests-update-12/lib/libc/sparc64/sys/ptrace.S projects/netbsd-tests-update-12/sys/mips/broadcom/bcm_socinfo.c projects/netbsd-tests-update-12/sys/mips/broadcom/bcm_socinfo.h projects/netbsd-tests-update-12/sys/mips/conf/AR91XX_BASE projects/netbsd-tests-update-12/sys/mips/conf/QCA955X_BASE projects/netbsd-tests-update-12/sys/modules/bhnd/cores/bhnd_chipc/ Modified: projects/netbsd-tests-update-12/cddl/lib/libdtrace/psinfo.d projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/vdev.h projects/netbsd-tests-update-12/contrib/ipfilter/opts.h projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_write_disk_acl.c projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_write_disk_posix.c projects/netbsd-tests-update-12/contrib/libarchive/tar/util.c projects/netbsd-tests-update-12/contrib/ncurses/ncurses/tinfo/lib_baudrate.c projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh projects/netbsd-tests-update-12/contrib/ofed/libcxgb4/src/qp.c projects/netbsd-tests-update-12/include/libgen.h projects/netbsd-tests-update-12/lib/libarchive/tests/Makefile projects/netbsd-tests-update-12/lib/libc/amd64/sys/Makefile.inc projects/netbsd-tests-update-12/lib/libc/arm/sys/Makefile.inc projects/netbsd-tests-update-12/lib/libc/gen/dirname.c projects/netbsd-tests-update-12/lib/libc/i386/sys/Makefile.inc projects/netbsd-tests-update-12/lib/libc/include/libc_private.h projects/netbsd-tests-update-12/lib/libc/mips/sys/Makefile.inc projects/netbsd-tests-update-12/lib/libc/net/getaddrinfo.c projects/netbsd-tests-update-12/lib/libc/powerpc/sys/Makefile.inc projects/netbsd-tests-update-12/lib/libc/powerpc64/sys/Makefile.inc projects/netbsd-tests-update-12/lib/libc/sparc64/sys/Makefile.inc projects/netbsd-tests-update-12/lib/libc/stdio/fgetln.c projects/netbsd-tests-update-12/lib/libc/stdio/fgetwln.c projects/netbsd-tests-update-12/lib/libc/sys/Makefile.inc projects/netbsd-tests-update-12/lib/libc/sys/ptrace.2 projects/netbsd-tests-update-12/lib/libnv/Makefile projects/netbsd-tests-update-12/lib/libnv/tests/Makefile projects/netbsd-tests-update-12/lib/libstand/dosfs.c projects/netbsd-tests-update-12/libexec/rtld-elf/mips/reloc.c projects/netbsd-tests-update-12/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/netbsd-tests-update-12/sbin/hastd/lzf.h projects/netbsd-tests-update-12/share/man/man9/Makefile projects/netbsd-tests-update-12/share/mk/bsd.dep.mk projects/netbsd-tests-update-12/share/mk/bsd.obj.mk projects/netbsd-tests-update-12/share/mk/bsd.sys.mk projects/netbsd-tests-update-12/share/mk/src.sys.env.mk projects/netbsd-tests-update-12/sys/amd64/amd64/pmap.c projects/netbsd-tests-update-12/sys/amd64/amd64/support.S projects/netbsd-tests-update-12/sys/amd64/include/md_var.h projects/netbsd-tests-update-12/sys/amd64/vmm/io/iommu.c projects/netbsd-tests-update-12/sys/amd64/vmm/io/iommu.h projects/netbsd-tests-update-12/sys/amd64/vmm/vmm.c projects/netbsd-tests-update-12/sys/arm64/arm64/machdep.c projects/netbsd-tests-update-12/sys/boot/i386/libi386/biosdisk.c projects/netbsd-tests-update-12/sys/cam/ata/ata_all.c projects/netbsd-tests-update-12/sys/conf/files projects/netbsd-tests-update-12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300phy.h projects/netbsd-tests-update-12/sys/contrib/ipfilter/netinet/ip_compat.h projects/netbsd-tests-update-12/sys/contrib/ipfilter/netinet/ip_fil.h projects/netbsd-tests-update-12/sys/contrib/ipfilter/netinet/ip_log.c projects/netbsd-tests-update-12/sys/contrib/ipfilter/netinet/ip_nat.h projects/netbsd-tests-update-12/sys/contrib/ipfilter/netinet/ip_proxy.h projects/netbsd-tests-update-12/sys/contrib/libnv/nvlist.c projects/netbsd-tests-update-12/sys/contrib/libnv/nvlist_impl.h projects/netbsd-tests-update-12/sys/ddb/db_command.c projects/netbsd-tests-update-12/sys/ddb/db_expr.c projects/netbsd-tests-update-12/sys/dev/bhnd/bcma/bcma.c projects/netbsd-tests-update-12/sys/dev/bhnd/bcma/bcma_bhndb.c projects/netbsd-tests-update-12/sys/dev/bhnd/bcma/bcma_dmp.h projects/netbsd-tests-update-12/sys/dev/bhnd/bcma/bcma_erom.c projects/netbsd-tests-update-12/sys/dev/bhnd/bcma/bcma_eromvar.h projects/netbsd-tests-update-12/sys/dev/bhnd/bcma/bcma_nexus.c projects/netbsd-tests-update-12/sys/dev/bhnd/bhnd.c projects/netbsd-tests-update-12/sys/dev/bhnd/bhnd.h projects/netbsd-tests-update-12/sys/dev/bhnd/bhnd_bus_if.m projects/netbsd-tests-update-12/sys/dev/bhnd/bhnd_core.h projects/netbsd-tests-update-12/sys/dev/bhnd/bhnd_ids.h projects/netbsd-tests-update-12/sys/dev/bhnd/bhnd_subr.c projects/netbsd-tests-update-12/sys/dev/bhnd/bhnd_types.h projects/netbsd-tests-update-12/sys/dev/bhnd/bhndb/bhnd_bhndb.c projects/netbsd-tests-update-12/sys/dev/bhnd/bhndb/bhndb.c projects/netbsd-tests-update-12/sys/dev/bhnd/bhndb/bhndb_pci.c projects/netbsd-tests-update-12/sys/dev/bhnd/bhndvar.h projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/bhnd_chipc_if.m projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/bhnd_sprom_chipc.c projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/chipc.c projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/chipc.h projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/chipc_subr.c projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/chipcreg.h projects/netbsd-tests-update-12/sys/dev/bhnd/cores/chipc/chipcvar.h projects/netbsd-tests-update-12/sys/dev/bhnd/nvram/nvram_map projects/netbsd-tests-update-12/sys/dev/bhnd/siba/siba.c projects/netbsd-tests-update-12/sys/dev/bhnd/siba/siba_bhndb.c projects/netbsd-tests-update-12/sys/dev/bhnd/siba/siba_nexus.c projects/netbsd-tests-update-12/sys/dev/cxgbe/adapter.h projects/netbsd-tests-update-12/sys/dev/cxgbe/common/common.h projects/netbsd-tests-update-12/sys/dev/cxgbe/common/t4_hw.c projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/cxgbei.c projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/cxgbei.h projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/icl_cxgbei.c projects/netbsd-tests-update-12/sys/dev/cxgbe/firmware/t4fw_interface.h projects/netbsd-tests-update-12/sys/dev/cxgbe/iw_cxgbe/cm.c projects/netbsd-tests-update-12/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h projects/netbsd-tests-update-12/sys/dev/cxgbe/iw_cxgbe/qp.c projects/netbsd-tests-update-12/sys/dev/cxgbe/iw_cxgbe/t4.h projects/netbsd-tests-update-12/sys/dev/cxgbe/t4_main.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_net_vsc.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_net_vsc.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_rndis.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_rndis_filter.c projects/netbsd-tests-update-12/sys/dev/iwm/if_iwm.c projects/netbsd-tests-update-12/sys/dev/iwm/if_iwmreg.h projects/netbsd-tests-update-12/sys/dev/mfi/mfi.c projects/netbsd-tests-update-12/sys/dev/ofw/ofw_bus_subr.c projects/netbsd-tests-update-12/sys/dev/ofw/ofw_bus_subr.h projects/netbsd-tests-update-12/sys/dev/syscons/syscons.c projects/netbsd-tests-update-12/sys/dev/uart/uart_core.c projects/netbsd-tests-update-12/sys/dev/uart/uart_cpu_powerpc.c projects/netbsd-tests-update-12/sys/i386/i386/machdep.c projects/netbsd-tests-update-12/sys/i386/i386/pmap.c projects/netbsd-tests-update-12/sys/i386/i386/support.s projects/netbsd-tests-update-12/sys/kern/vfs_lookup.c projects/netbsd-tests-update-12/sys/kern/vnode_if.src projects/netbsd-tests-update-12/sys/mips/broadcom/bcm_machdep.c projects/netbsd-tests-update-12/sys/mips/broadcom/files.broadcom projects/netbsd-tests-update-12/sys/mips/broadcom/uart_bus_chipc.c projects/netbsd-tests-update-12/sys/mips/broadcom/uart_cpu_chipc.c projects/netbsd-tests-update-12/sys/mips/conf/AP135 projects/netbsd-tests-update-12/sys/mips/conf/CARAMBOLA2 projects/netbsd-tests-update-12/sys/mips/conf/DIR-655A1 projects/netbsd-tests-update-12/sys/mips/conf/TL-ARCHERC7V2 projects/netbsd-tests-update-12/sys/mips/conf/TL-WDR4300 projects/netbsd-tests-update-12/sys/mips/conf/TL-WR1043NDv2 projects/netbsd-tests-update-12/sys/mips/conf/TP-WN1043ND projects/netbsd-tests-update-12/sys/mips/conf/std.AR933X projects/netbsd-tests-update-12/sys/mips/conf/std.AR934X projects/netbsd-tests-update-12/sys/modules/bhnd/Makefile projects/netbsd-tests-update-12/sys/modules/bhnd/cores/Makefile projects/netbsd-tests-update-12/sys/modules/cloudabi32/Makefile projects/netbsd-tests-update-12/sys/modules/cloudabi64/Makefile projects/netbsd-tests-update-12/sys/net/rndis.h projects/netbsd-tests-update-12/sys/netinet/sctp_input.c projects/netbsd-tests-update-12/sys/netinet/tcp_fsm.h projects/netbsd-tests-update-12/sys/netinet/tcp_stacks/fastpath.c projects/netbsd-tests-update-12/sys/ofed/drivers/infiniband/core/iwcm.c projects/netbsd-tests-update-12/sys/powerpc/powerpc/machdep.c projects/netbsd-tests-update-12/tools/tools/net80211/wlanwds/wlanwds.c projects/netbsd-tests-update-12/usr.bin/bsdiff/bspatch/bspatch.c projects/netbsd-tests-update-12/usr.bin/gzip/gzip.c projects/netbsd-tests-update-12/usr.bin/netstat/route.c projects/netbsd-tests-update-12/usr.sbin/newsyslog/tests/legacy_test.sh Directory Properties: projects/netbsd-tests-update-12/ (props changed) projects/netbsd-tests-update-12/cddl/ (props changed) projects/netbsd-tests-update-12/contrib/ipfilter/ (props changed) projects/netbsd-tests-update-12/contrib/libarchive/ (props changed) projects/netbsd-tests-update-12/contrib/libarchive/libarchive/ (props changed) projects/netbsd-tests-update-12/contrib/libarchive/tar/ (props changed) projects/netbsd-tests-update-12/contrib/ncurses/ (props changed) projects/netbsd-tests-update-12/contrib/netbsd-tests/ (props changed) projects/netbsd-tests-update-12/sys/contrib/ipfilter/ (props changed) Modified: projects/netbsd-tests-update-12/cddl/lib/libdtrace/psinfo.d ============================================================================== --- projects/netbsd-tests-update-12/cddl/lib/libdtrace/psinfo.d Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/cddl/lib/libdtrace/psinfo.d Mon Aug 29 18:53:36 2016 (r305014) @@ -59,7 +59,7 @@ translator psinfo_t < struct proc *T > { pr_gid = T->p_ucred->cr_rgid; pr_egid = T->p_ucred->cr_groups[0]; pr_addr = 0; - pr_psargs = (T->p_args->ar_args == 0) ? "" : + pr_psargs = (T->p_args == 0) ? "" : memstr(T->p_args->ar_args, ' ', T->p_args->ar_length); pr_arglen = T->p_args->ar_length; pr_jailid = T->p_ucred->cr_prison->pr_id; Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/vdev.h ============================================================================== --- projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/vdev.h Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/vdev.h Mon Aug 29 18:53:36 2016 (r305014) @@ -108,6 +108,12 @@ public: * \brief No-op copy constructor for nonexistent vdevs. */ Vdev(); + + /** + * \brief No-op virtual destructor, since this class has virtual + * functions. + */ + virtual ~Vdev(); bool DoesNotExist() const; /** @@ -145,6 +151,10 @@ private: extern Vdev NonexistentVdev; //- Vdev Inline Public Methods ------------------------------------------------ +inline Vdev::~Vdev() +{ +} + inline DevdCtl::Guid Vdev::PoolGUID() const { Modified: projects/netbsd-tests-update-12/contrib/ipfilter/opts.h ============================================================================== --- projects/netbsd-tests-update-12/contrib/ipfilter/opts.h Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/ipfilter/opts.h Mon Aug 29 18:53:36 2016 (r305014) @@ -12,7 +12,11 @@ #define __OPTS_H__ #ifndef SOLARIS -#define SOLARIS (defined(sun) && (defined(__svr4__) || defined(__SVR4))) +# if defined(sun) && (defined(__svr4__) || defined(__SVR4)) +# define SOLARIS 1 +# else +# define SOLARIS 0 +# endif #endif #define OPT_REMOVE 0x000001 #define OPT_DEBUG 0x000002 Modified: projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_read_support_format_tar.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_read_support_format_tar.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_read_support_format_tar.c Mon Aug 29 18:53:36 2016 (r305014) @@ -1128,8 +1128,15 @@ header_common(struct archive_read *a, st if (tar->entry_bytes_remaining < 0) { tar->entry_bytes_remaining = 0; archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "Tar entry has negative size?"); - err = ARCHIVE_WARN; + "Tar entry has negative size"); + return (ARCHIVE_FATAL); + } + if (tar->entry_bytes_remaining == INT64_MAX) { + /* Note: tar_atol returns INT64_MAX on overflow */ + tar->entry_bytes_remaining = 0; + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Tar entry size overflow"); + return (ARCHIVE_FATAL); } tar->realsize = tar->entry_bytes_remaining; archive_entry_set_size(entry, tar->entry_bytes_remaining); Modified: projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_read_support_format_zip.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_read_support_format_zip.c Mon Aug 29 18:53:36 2016 (r305014) @@ -418,18 +418,30 @@ zip_time(const char *p) * id1+size1+data1 + id2+size2+data2 ... * triplets. id and size are 2 bytes each. */ -static void -process_extra(const char *p, size_t extra_length, struct zip_entry* zip_entry) +static int +process_extra(struct archive_read *a, const char *p, size_t extra_length, struct zip_entry* zip_entry) { unsigned offset = 0; - while (offset < extra_length - 4) { + if (extra_length == 0) { + return ARCHIVE_OK; + } + + if (extra_length < 4) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Too-small extra data: Need at least 4 bytes, but only found %d bytes", (int)extra_length); + return ARCHIVE_FAILED; + } + while (offset <= extra_length - 4) { unsigned short headerid = archive_le16dec(p + offset); unsigned short datasize = archive_le16dec(p + offset + 2); offset += 4; if (offset + datasize > extra_length) { - break; + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Extra data overflow: Need %d bytes but only found %d bytes", + (int)datasize, (int)(extra_length - offset)); + return ARCHIVE_FAILED; } #ifdef DEBUG fprintf(stderr, "Header id 0x%04x, length %d\n", @@ -715,13 +727,13 @@ process_extra(const char *p, size_t extr } offset += datasize; } -#ifdef DEBUG - if (offset != extra_length) - { - fprintf(stderr, - "Extra data field contents do not match reported size!\n"); + if (offset != extra_length) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Malformed extra data: Consumed %d bytes of %d bytes", + (int)offset, (int)extra_length); + return ARCHIVE_FAILED; } -#endif + return ARCHIVE_OK; } /* @@ -840,7 +852,9 @@ zip_read_local_file_header(struct archiv return (ARCHIVE_FATAL); } - process_extra(h, extra_length, zip_entry); + if (ARCHIVE_OK != process_extra(a, h, extra_length, zip_entry)) { + return ARCHIVE_FATAL; + } __archive_read_consume(a, extra_length); /* Work around a bug in Info-Zip: When reading from a pipe, it @@ -1293,7 +1307,7 @@ zip_read_data_deflate(struct archive_rea && bytes_avail > zip->entry_bytes_remaining) { bytes_avail = (ssize_t)zip->entry_bytes_remaining; } - if (bytes_avail <= 0) { + if (bytes_avail < 0) { archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Truncated ZIP file body"); return (ARCHIVE_FATAL); @@ -2691,7 +2705,9 @@ slurp_central_directory(struct archive_r "Truncated ZIP file header"); return ARCHIVE_FATAL; } - process_extra(p + filename_length, extra_length, zip_entry); + if (ARCHIVE_OK != process_extra(a, p + filename_length, extra_length, zip_entry)) { + return ARCHIVE_FATAL; + } /* * Mac resource fork files are stored under the Modified: projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_write_disk_acl.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_write_disk_acl.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_write_disk_acl.c Mon Aug 29 18:53:36 2016 (r305014) @@ -138,6 +138,7 @@ set_acl(struct archive *a, int fd, const acl_permset_t acl_permset; #ifdef ACL_TYPE_NFS4 acl_flagset_t acl_flagset; + int r; #endif int ret; int ae_type, ae_permset, ae_tag, ae_id; @@ -145,7 +146,7 @@ set_acl(struct archive *a, int fd, const gid_t ae_gid; const char *ae_name; int entries; - int i, r; + int i; ret = ARCHIVE_OK; entries = archive_acl_reset(abstract_acl, ae_requested_type); Modified: projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_write_disk_posix.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_write_disk_posix.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/libarchive/libarchive/archive_write_disk_posix.c Mon Aug 29 18:53:36 2016 (r305014) @@ -2401,8 +2401,18 @@ check_symlinks(struct archive_write_disk r = lstat(a->name, &st); if (r != 0) { /* We've hit a dir that doesn't exist; stop now. */ - if (errno == ENOENT) + if (errno == ENOENT) { break; + } else { + /* Note: This effectively disables deep directory + * support when security checks are enabled. + * Otherwise, very long pathnames that trigger + * an error here could evade the sandbox. + * TODO: We could do better, but it would probably + * require merging the symlink checks with the + * deep-directory editing. */ + return (ARCHIVE_FAILED); + } } else if (S_ISLNK(st.st_mode)) { if (c == '\0') { /* Modified: projects/netbsd-tests-update-12/contrib/libarchive/tar/util.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/libarchive/tar/util.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/libarchive/tar/util.c Mon Aug 29 18:53:36 2016 (r305014) @@ -182,7 +182,7 @@ safe_fprintf(FILE *f, const char *fmt, . } /* If our output buffer is full, dump it and keep going. */ - if (i > (sizeof(outbuff) - 20)) { + if (i > (sizeof(outbuff) - 128)) { outbuff[i] = '\0'; fprintf(f, "%s", outbuff); i = 0; Modified: projects/netbsd-tests-update-12/contrib/ncurses/ncurses/tinfo/lib_baudrate.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/ncurses/ncurses/tinfo/lib_baudrate.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/ncurses/ncurses/tinfo/lib_baudrate.c Mon Aug 29 18:53:36 2016 (r305014) @@ -94,7 +94,7 @@ struct speed { int sp; /* the actual speed */ }; -#define DATA(number) { B##number, number } +#define DATA(number) { (NCURSES_OSPEED)B##number, number } static struct speed const speeds[] = { Modified: projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh ============================================================================== --- projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh Mon Aug 29 18:53:36 2016 (r305014) @@ -32,6 +32,9 @@ basic_head() } basic_body() { + # Begin FreeBSD + atf_tc_expect_fail "dirname //usr//bin doesn't return //usr like it used to; bug # 212193" + # End FreeBSD atf_check -o inline:"/\n" dirname / atf_check -o inline:"/\n" dirname // atf_check -o inline:"/usr\n" dirname /usr/bin/ Modified: projects/netbsd-tests-update-12/contrib/ofed/libcxgb4/src/qp.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/ofed/libcxgb4/src/qp.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/contrib/ofed/libcxgb4/src/qp.c Mon Aug 29 18:53:36 2016 (r305014) @@ -392,11 +392,9 @@ int c4iw_post_send(struct ibv_qp *ibqp, t4_sq_produce(&qhp->wq, len16); idx += DIV_ROUND_UP(len16*16, T4_EQ_ENTRY_SIZE); } - if (t4_wq_db_enabled(&qhp->wq)) { - t4_ring_sq_db(&qhp->wq, idx, dev_is_t5(qhp->rhp), - len16, wqe); - } else - ring_kernel_db(qhp, qhp->wq.sq.qid, idx); + + t4_ring_sq_db(&qhp->wq, idx, dev_is_t5(qhp->rhp), + len16, wqe); qhp->wq.sq.queue[qhp->wq.sq.size].status.host_wq_pidx = \ (qhp->wq.sq.wq_pidx); pthread_spin_unlock(&qhp->lock); @@ -458,11 +456,9 @@ int c4iw_post_receive(struct ibv_qp *ibq wr = wr->next; num_wrs--; } - if (t4_wq_db_enabled(&qhp->wq)) - t4_ring_rq_db(&qhp->wq, idx, dev_is_t5(qhp->rhp), - len16, wqe); - else - ring_kernel_db(qhp, qhp->wq.rq.qid, idx); + + t4_ring_rq_db(&qhp->wq, idx, dev_is_t5(qhp->rhp), + len16, wqe); qhp->wq.rq.queue[qhp->wq.rq.size].status.host_wq_pidx = \ (qhp->wq.rq.wq_pidx); pthread_spin_unlock(&qhp->lock); Modified: projects/netbsd-tests-update-12/include/libgen.h ============================================================================== --- projects/netbsd-tests-update-12/include/libgen.h Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/include/libgen.h Mon Aug 29 18:53:36 2016 (r305014) @@ -39,4 +39,23 @@ char *basename_r(const char *, char *); char *dirname(char *); __END_DECLS +/* + * In FreeBSD 12, the prototype of dirname() was modified to comply to + * POSIX. This function may now modify its input. Unfortunately, our + * copy of xinstall(8) shipped with previous versions of FreeBSD is + * built using the host headers and libc during the bootstrapping phase + * and depends on the old behavior. + * + * Apply a workaround where we explicitly link against dirname@FBSD_1.0 + * in case this function is called on constant strings, instead of + * making the build fail. + */ +#if defined(__generic) && !defined(__cplusplus) +__BEGIN_DECLS +char *__old_dirname(const char *); +__END_DECLS +__sym_compat(dirname, __old_dirname, FBSD_1.0); +#define dirname(x) __generic(x, const char *, __old_dirname, dirname)(x) +#endif + #endif /* !_LIBGEN_H_ */ Modified: projects/netbsd-tests-update-12/lib/libarchive/tests/Makefile ============================================================================== --- projects/netbsd-tests-update-12/lib/libarchive/tests/Makefile Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libarchive/tests/Makefile Mon Aug 29 18:53:36 2016 (r305014) @@ -211,8 +211,6 @@ TESTS_SRCS= \ test_write_disk_perms.c \ test_write_disk_secure.c \ test_write_disk_secure744.c \ - test_write_disk_secure745.c \ - test_write_disk_secure746.c \ test_write_disk_sparse.c \ test_write_disk_symlink.c \ test_write_disk_times.c \ Modified: projects/netbsd-tests-update-12/lib/libc/amd64/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/amd64/sys/Makefile.inc Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/amd64/sys/Makefile.inc Mon Aug 29 18:53:36 2016 (r305014) @@ -4,7 +4,7 @@ SRCS+= amd64_get_fsbase.c amd64_get_gsbase.c amd64_set_fsbase.c \ amd64_set_gsbase.c -MDASM= vfork.S brk.S cerror.S exect.S getcontext.S ptrace.S \ +MDASM= vfork.S brk.S cerror.S exect.S getcontext.S \ sbrk.S setlogin.S sigreturn.S # Don't generate default code for these syscalls: Modified: projects/netbsd-tests-update-12/lib/libc/arm/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/arm/sys/Makefile.inc Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/arm/sys/Makefile.inc Mon Aug 29 18:53:36 2016 (r305014) @@ -2,7 +2,7 @@ SRCS+= __vdso_gettc.c -MDASM= Ovfork.S brk.S cerror.S ptrace.S sbrk.S shmat.S sigreturn.S syscall.S +MDASM= Ovfork.S brk.S cerror.S sbrk.S shmat.S sigreturn.S syscall.S # Don't generate default code for these syscalls: NOASM= break.o exit.o getlogin.o sstk.o vfork.o yield.o Modified: projects/netbsd-tests-update-12/lib/libc/gen/dirname.c ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/gen/dirname.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/gen/dirname.c Mon Aug 29 18:53:36 2016 (r305014) @@ -31,7 +31,7 @@ __FBSDID("$FreeBSD$"); #include char * -dirname(char *path) +(dirname)(char *path) { const char *in, *prev, *begin, *end; char *out; Modified: projects/netbsd-tests-update-12/lib/libc/i386/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/i386/sys/Makefile.inc Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/i386/sys/Makefile.inc Mon Aug 29 18:53:36 2016 (r305014) @@ -7,7 +7,7 @@ SRCS+= i386_clr_watch.c i386_set_watch.c SRCS+= i386_get_fsbase.c i386_get_gsbase.c i386_get_ioperm.c i386_get_ldt.c \ i386_set_fsbase.c i386_set_gsbase.c i386_set_ioperm.c i386_set_ldt.c -MDASM= Ovfork.S brk.S cerror.S exect.S getcontext.S ptrace.S \ +MDASM= Ovfork.S brk.S cerror.S exect.S getcontext.S \ sbrk.S setlogin.S sigreturn.S syscall.S # Don't generate default code for these syscalls: Modified: projects/netbsd-tests-update-12/lib/libc/include/libc_private.h ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/include/libc_private.h Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/include/libc_private.h Mon Aug 29 18:53:36 2016 (r305014) @@ -335,6 +335,7 @@ 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_ptrace(int, __pid_t, char *, int); int __sys_poll(struct pollfd *, unsigned, int); int __sys_ppoll(struct pollfd *, unsigned, const struct timespec *, const __sigset_t *); Modified: projects/netbsd-tests-update-12/lib/libc/mips/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/mips/sys/Makefile.inc Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/mips/sys/Makefile.inc Mon Aug 29 18:53:36 2016 (r305014) @@ -3,7 +3,7 @@ SRCS+= trivial-vdso_tc.c MDASM= Ovfork.S brk.S cerror.S exect.S \ - ptrace.S sbrk.S syscall.S + sbrk.S syscall.S # Don't generate default code for these syscalls: NOASM= break.o exit.o getlogin.o sstk.o vfork.o yield.o Modified: projects/netbsd-tests-update-12/lib/libc/net/getaddrinfo.c ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/net/getaddrinfo.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/net/getaddrinfo.c Mon Aug 29 18:53:36 2016 (r305014) @@ -224,6 +224,7 @@ struct ai_order { struct policyqueue *aio_dstpolicy; struct addrinfo *aio_ai; int aio_matchlen; + int aio_initial_sequence; }; static const ns_src default_dns_files[] = { @@ -708,6 +709,7 @@ reorder(struct addrinfo *sentinel) aio[i].aio_dstpolicy = match_addrselectpolicy(ai->ai_addr, &policyhead); set_source(&aio[i], &policyhead); + aio[i].aio_initial_sequence = i; } /* perform sorting. */ @@ -1066,6 +1068,23 @@ comp_dst(const void *arg1, const void *a } /* Rule 10: Otherwise, leave the order unchanged. */ + + /* + * Note that qsort is unstable; so, we can't return zero and + * expect the order to be unchanged. + * That also means we can't depend on the current position of + * dst2 being after dst1. We must enforce the initial order + * with an explicit compare on the original position. + * The qsort specification requires that "When the same objects + * (consisting of width bytes, irrespective of their current + * positions in the array) are passed more than once to the + * comparison function, the results shall be consistent with one + * another." + * In other words, If A < B, then we must also return B > A. + */ + if (dst2->aio_initial_sequence < dst1->aio_initial_sequence) + return(1); + return(-1); } Modified: projects/netbsd-tests-update-12/lib/libc/powerpc/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/powerpc/sys/Makefile.inc Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/powerpc/sys/Makefile.inc Mon Aug 29 18:53:36 2016 (r305014) @@ -1,6 +1,6 @@ # $FreeBSD$ -MDASM+= brk.S cerror.S exect.S ptrace.S sbrk.S setlogin.S +MDASM+= brk.S cerror.S exect.S sbrk.S setlogin.S # Don't generate default code for these syscalls: NOASM= break.o exit.o getlogin.o sstk.o yield.o Modified: projects/netbsd-tests-update-12/lib/libc/powerpc64/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/powerpc64/sys/Makefile.inc Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/powerpc64/sys/Makefile.inc Mon Aug 29 18:53:36 2016 (r305014) @@ -1,6 +1,6 @@ # $FreeBSD$ -MDASM+= brk.S cerror.S exect.S ptrace.S sbrk.S setlogin.S +MDASM+= brk.S cerror.S exect.S sbrk.S setlogin.S # Don't generate default code for these syscalls: NOASM= break.o exit.o getlogin.o sstk.o yield.o Modified: projects/netbsd-tests-update-12/lib/libc/sparc64/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/sparc64/sys/Makefile.inc Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/sparc64/sys/Makefile.inc Mon Aug 29 18:53:36 2016 (r305014) @@ -12,7 +12,7 @@ SRCS+= __sparc_sigtramp_setup.c \ CFLAGS+= -I${LIBC_SRCTOP}/sparc64/fpu -MDASM+= brk.S cerror.S exect.S ptrace.S sbrk.S setlogin.S sigaction1.S +MDASM+= brk.S cerror.S exect.S sbrk.S setlogin.S sigaction1.S # Don't generate default code for these syscalls: NOASM= break.o exit.o getlogin.o sstk.o yield.o Modified: projects/netbsd-tests-update-12/lib/libc/stdio/fgetln.c ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/stdio/fgetln.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/stdio/fgetln.c Mon Aug 29 18:53:36 2016 (r305014) @@ -139,8 +139,11 @@ fgetln(FILE *fp, size_t *lenp) (void)memcpy((void *)(fp->_lb._base + off), (void *)fp->_p, len - off); off = len; - if (__srefill(fp)) - break; /* EOF or error: return partial line */ + if (__srefill(fp)) { + if (__sfeof(fp)) + break; + goto error; + } if ((p = memchr((void *)fp->_p, '\n', (size_t)fp->_r)) == NULL) continue; Modified: projects/netbsd-tests-update-12/lib/libc/stdio/fgetwln.c ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/stdio/fgetwln.c Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/stdio/fgetwln.c Mon Aug 29 18:53:36 2016 (r305014) @@ -53,7 +53,6 @@ fgetwln_l(FILE * __restrict fp, size_t * ORIENT(fp, 1); len = 0; - /* WEOF or error: return partial line, see fgetln(3). */ while ((wc = __fgetwc(fp, locale)) != WEOF) { #define GROW 512 if (len * sizeof(wchar_t) >= fp->_lb._size && @@ -65,7 +64,7 @@ fgetwln_l(FILE * __restrict fp, size_t * if (wc == L'\n') break; } - if (len == 0) + if (len == 0 || (wc == WEOF && !__sfeof(fp))) goto error; FUNLOCKFILE(fp); Modified: projects/netbsd-tests-update-12/lib/libc/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/sys/Makefile.inc Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/sys/Makefile.inc Mon Aug 29 18:53:36 2016 (r305014) @@ -48,6 +48,7 @@ INTERPOSED = \ poll \ ppoll \ pselect \ + ptrace \ read \ readv \ recvfrom \ Modified: projects/netbsd-tests-update-12/lib/libc/sys/ptrace.2 ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/sys/ptrace.2 Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libc/sys/ptrace.2 Mon Aug 29 18:53:36 2016 (r305014) @@ -2,7 +2,7 @@ .\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. -.Dd July 28, 2016 +.Dd August 28, 2016 .Dt PTRACE 2 .Os .Sh NAME @@ -906,7 +906,13 @@ to return \-1 as a non-error value; to disambiguate, .Va errno -can be set to 0 before the call and checked afterwards. +is set to 0 in the libc wrapper for the +.Fn ptrace +system call and +.Fn ptrace +callers can reliably check +.Va errno +for non-zero value afterwards. .Sh ERRORS The .Fn ptrace Copied: projects/netbsd-tests-update-12/lib/libc/sys/ptrace.c (from r305013, head/lib/libc/sys/ptrace.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/lib/libc/sys/ptrace.c Mon Aug 29 18:53:36 2016 (r305014, copy of r305013, head/lib/libc/sys/ptrace.c) @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2016 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(_ptrace, ptrace); + +int +_ptrace(int request, pid_t pid, caddr_t addr, int data) +{ + + errno = 0; + return (__sys_ptrace(request, pid, addr, data)); +} Modified: projects/netbsd-tests-update-12/lib/libnv/Makefile ============================================================================== --- projects/netbsd-tests-update-12/lib/libnv/Makefile Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libnv/Makefile Mon Aug 29 18:53:36 2016 (r305014) @@ -11,7 +11,8 @@ SHLIB_MAJOR= 0 .PATH: ${.CURDIR}/../../sys/contrib/libnv ${.CURDIR}/../../sys/sys CFLAGS+=-I${.CURDIR}/../../sys -I${.CURDIR} -SRCS= dnvlist.c +SRCS= cnvlist.c +SRCS+= dnvlist.c SRCS+= msgio.c SRCS+= nvlist.c SRCS+= nvpair.c Modified: projects/netbsd-tests-update-12/lib/libnv/tests/Makefile ============================================================================== --- projects/netbsd-tests-update-12/lib/libnv/tests/Makefile Mon Aug 29 18:51:49 2016 (r305013) +++ projects/netbsd-tests-update-12/lib/libnv/tests/Makefile Mon Aug 29 18:53:36 2016 (r305014) @@ -1,6 +1,7 @@ # $FreeBSD$ ATF_TESTS_CXX= \ + cnv_tests \ dnv_tests \ nv_array_tests \ nv_tests \ Copied: projects/netbsd-tests-update-12/lib/libnv/tests/cnv_tests.cc (from r305013, head/lib/libnv/tests/cnv_tests.cc) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/lib/libnv/tests/cnv_tests.cc Mon Aug 29 18:53:36 2016 (r305014, copy of r305013, head/lib/libnv/tests/cnv_tests.cc) @@ -0,0 +1,1508 @@ +/*- + * Copyright (c) 2016 Adam Starak + * 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 AUTHORS 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 AUTHORS 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include + +#define fd_is_valid(fd) (fcntl((fd), F_GETFL) != -1 || errno != EBADF) + +/* ATF cnvlist_get tests. */ + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_bool); +ATF_TEST_CASE_BODY(cnvlist_get_bool) +{ + nvlist_t *nvl; + const char *key; + bool value; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = true; + + nvlist_add_bool(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_BOOL); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_bool(nvl, key)); + + ATF_REQUIRE_EQ(cnvlist_get_bool(cookie), value); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_number); +ATF_TEST_CASE_BODY(cnvlist_get_number) +{ + nvlist_t *nvl; + const char *key; + uint64_t value; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = 420; + + nvlist_add_number(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NUMBER); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_number(nvl, key)); + + ATF_REQUIRE_EQ(cnvlist_get_number(cookie), value); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_string); +ATF_TEST_CASE_BODY(cnvlist_get_string) +{ + nvlist_t *nvl; + const char *key; + const char *value; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + value = "text"; + + nvlist_add_string(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_STRING); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_string(nvl, key)); + + ATF_REQUIRE_EQ(strcmp(cnvlist_get_string(cookie), value), 0); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_nvlist); +ATF_TEST_CASE_BODY(cnvlist_get_nvlist) +{ + nvlist_t *nvl, *value; + const nvlist_t *result; + const char *key, *subkey; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + value = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + key = "name"; + subkey = "subname"; + cookie = NULL; + + /* Add null to 'value' nvlist. */ + nvlist_add_null(value, subkey); + ATF_REQUIRE_EQ(strcmp(subkey, nvlist_next(value, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(value), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NULL); + ATF_REQUIRE(!nvlist_empty(value)); + ATF_REQUIRE(nvlist_exists(value, subkey)); + ATF_REQUIRE(nvlist_exists_null(value, subkey)); + ATF_REQUIRE_EQ(nvlist_next(value, &type, &cookie), + static_cast(NULL)); + + /* Add 'value' nvlist. */ + cookie = NULL; + nvlist_add_nvlist(nvl, key, value); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NVLIST); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_nvlist(nvl, key)); + + /* + * Assuming nvlist_get_nvlist() is correct check if cnvlist returns + * the same pointer. + */ + result = cnvlist_get_nvlist(cookie); + ATF_REQUIRE_EQ(result, nvlist_get_nvlist(nvl, key)); + ATF_REQUIRE(result != value); + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + /* Validate data inside nvlist. */ + cookie = NULL; + ATF_REQUIRE_EQ(strcmp(subkey, nvlist_next(result, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(result), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NULL); + ATF_REQUIRE(!nvlist_empty(result)); + ATF_REQUIRE(nvlist_exists(result, subkey)); + ATF_REQUIRE(nvlist_exists_null(result, subkey)); + ATF_REQUIRE_EQ(nvlist_next(result, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); + nvlist_destroy(value); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_descriptor); +ATF_TEST_CASE_BODY(cnvlist_get_descriptor) +{ + nvlist_t *nvl; + const char *key; + void *cookie; + int type; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_descriptor(nvl, key, STDERR_FILENO); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_DESCRIPTOR); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_descriptor(nvl, key)); + + ATF_REQUIRE_EQ(fd_is_valid(cnvlist_get_descriptor(cookie)), 1); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_binary); +ATF_TEST_CASE_BODY(cnvlist_get_binary) +{ + nvlist_t *nvl; + const char *key; + void *in_binary; + const void *out_binary; + void *cookie; + int type; + size_t in_size, out_size; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + in_size = 13; + + in_binary = malloc(in_size); + ATF_REQUIRE(in_binary != NULL); + memset(in_binary, 0xa5, in_size); + + nvlist_add_binary(nvl, key, in_binary, in_size); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_BINARY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_binary(nvl, key)); + + out_binary = cnvlist_get_binary(cookie, &out_size); + ATF_REQUIRE_EQ(out_size, in_size); + ATF_REQUIRE_EQ(memcmp(in_binary, out_binary, out_size), 0); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +/* ATF cnvlist_get array tests. */ + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_bool_array); +ATF_TEST_CASE_BODY(cnvlist_get_bool_array) +{ + nvlist_t *nvl; + bool in_array[16]; + const bool *out_array; + const char *key; + void *cookie; + int type, i; + size_t nitems; + + for (i = 0; i < 16; i++) + in_array[i] = (i % 2 == 0); + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_bool_array(nvl, key, in_array, 16); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_BOOL_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_bool_array(nvl, key)); + + out_array = cnvlist_get_bool_array(cookie, &nitems); + ATF_REQUIRE_EQ(nitems, 16); + ATF_REQUIRE(out_array != NULL); + for (i = 0; i < 16; i++) + ATF_REQUIRE_EQ(out_array[i], in_array[i]); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_number_array); +ATF_TEST_CASE_BODY(cnvlist_get_number_array) +{ + nvlist_t *nvl; + uint64_t in_array[16]; + const uint64_t *out_array; + const char *key; + void *cookie; + int type, i; + size_t nitems; + + for (i = 0; i < 16; i++) + in_array[i] = i; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_number_array(nvl, key, in_array, 16); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_NUMBER_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_number_array(nvl, key)); + + out_array = cnvlist_get_number_array(cookie, &nitems); + ATF_REQUIRE(out_array != NULL); + ATF_REQUIRE_EQ(nitems, 16); + for (i = 0; i < 16; i++) + ATF_REQUIRE_EQ(out_array[i], in_array[i]); + + ATF_REQUIRE_EQ(nvlist_next(nvl, &type, &cookie), + static_cast(NULL)); + + nvlist_destroy(nvl); +} + +ATF_TEST_CASE_WITHOUT_HEAD(cnvlist_get_string_array); +ATF_TEST_CASE_BODY(cnvlist_get_string_array) +{ + nvlist_t *nvl; + const char *in_array[4] = {"inequality", "sucks", ".", ""}; + const char * const *out_array; + const char *key; + void *cookie; + int type, i; + size_t nitems; + + nvl = nvlist_create(0); + ATF_REQUIRE(nvl != NULL); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE(nvlist_empty(nvl)); + + cookie = NULL; + key = "name"; + + nvlist_add_string_array(nvl, key, in_array, 4); + ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0); + ATF_REQUIRE_EQ(nvlist_error(nvl), 0); + ATF_REQUIRE_EQ(type, NV_TYPE_STRING_ARRAY); + ATF_REQUIRE(!nvlist_empty(nvl)); + ATF_REQUIRE(nvlist_exists(nvl, key)); + ATF_REQUIRE(nvlist_exists_string_array(nvl, key)); + + out_array = cnvlist_get_string_array(cookie, &nitems); + ATF_REQUIRE_EQ(nitems, 4); + ATF_REQUIRE(out_array != NULL); + for (i = 0; i < 4; i++) { + ATF_REQUIRE(out_array[i] != NULL); + ATF_REQUIRE_EQ(strcmp(out_array[i], in_array[i]), 0); + } + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Aug 29 18:59:45 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 788ABBC3A85 for ; Mon, 29 Aug 2016 18:59:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 41230F47; Mon, 29 Aug 2016 18:59:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7TIxi7T061338; Mon, 29 Aug 2016 18:59:44 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7TIxivi061333; Mon, 29 Aug 2016 18:59:44 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608291859.u7TIxivi061333@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 29 Aug 2016 18:59:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305017 - in projects/clang390-import: cddl/usr.sbin/zfsd cddl/usr.sbin/zfsd/tests contrib/libarchive/libarchive contrib/netbsd-tests/usr.bin/dirname lib/libc/aarch64/sys lib/libc/amd64... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Aug 2016 18:59:45 -0000 Author: dim Date: Mon Aug 29 18:59:43 2016 New Revision: 305017 URL: https://svnweb.freebsd.org/changeset/base/305017 Log: Merge ^/head r304965 through r305016. Added: projects/clang390-import/lib/libc/sys/ptrace.c - copied unchanged from r305016, head/lib/libc/sys/ptrace.c Deleted: projects/clang390-import/lib/libc/amd64/sys/ptrace.S projects/clang390-import/lib/libc/arm/sys/ptrace.S projects/clang390-import/lib/libc/i386/sys/ptrace.S projects/clang390-import/lib/libc/mips/sys/ptrace.S projects/clang390-import/lib/libc/powerpc/sys/ptrace.S projects/clang390-import/lib/libc/powerpc64/sys/ptrace.S projects/clang390-import/lib/libc/sparc64/sys/ptrace.S Modified: projects/clang390-import/cddl/usr.sbin/zfsd/tests/Makefile projects/clang390-import/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc projects/clang390-import/cddl/usr.sbin/zfsd/vdev.h projects/clang390-import/contrib/libarchive/libarchive/archive_acl.c projects/clang390-import/contrib/libarchive/libarchive/archive_entry.h projects/clang390-import/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c projects/clang390-import/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/clang390-import/contrib/libarchive/libarchive/archive_write_disk_acl.c projects/clang390-import/contrib/libarchive/libarchive/archive_write_set_format_pax.c projects/clang390-import/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh projects/clang390-import/lib/libc/aarch64/sys/Makefile.inc projects/clang390-import/lib/libc/amd64/sys/Makefile.inc projects/clang390-import/lib/libc/arm/sys/Makefile.inc projects/clang390-import/lib/libc/i386/sys/Makefile.inc projects/clang390-import/lib/libc/include/libc_private.h projects/clang390-import/lib/libc/mips/sys/Makefile.inc projects/clang390-import/lib/libc/powerpc/sys/Makefile.inc projects/clang390-import/lib/libc/powerpc64/sys/Makefile.inc projects/clang390-import/lib/libc/sparc64/sys/Makefile.inc projects/clang390-import/lib/libc/sys/Makefile.inc projects/clang390-import/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/clang390-import/sbin/hastd/lzf.h projects/clang390-import/share/mk/bsd.dep.mk projects/clang390-import/share/mk/bsd.obj.mk projects/clang390-import/sys/amd64/amd64/pmap.c projects/clang390-import/sys/amd64/amd64/support.S projects/clang390-import/sys/amd64/include/md_var.h projects/clang390-import/sys/boot/i386/libi386/biosdisk.c projects/clang390-import/sys/dev/bhnd/bhnd.h projects/clang390-import/sys/dev/bhnd/bhnd_subr.c projects/clang390-import/sys/dev/bhnd/siba/siba.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.h projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis.h projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.c projects/clang390-import/sys/dev/hyperv/netvsc/ndis.h projects/clang390-import/sys/dev/mfi/mfi.c projects/clang390-import/sys/dev/ofw/ofw_bus_subr.c projects/clang390-import/sys/dev/ofw/ofw_bus_subr.h projects/clang390-import/sys/dev/syscons/syscons.c projects/clang390-import/sys/dev/uart/uart_cpu_powerpc.c projects/clang390-import/sys/i386/i386/pmap.c projects/clang390-import/sys/i386/i386/support.s projects/clang390-import/sys/modules/cloudabi32/Makefile projects/clang390-import/sys/modules/cloudabi64/Makefile projects/clang390-import/usr.sbin/newsyslog/tests/legacy_test.sh Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/cddl/ (props changed) projects/clang390-import/contrib/libarchive/ (props changed) projects/clang390-import/contrib/libarchive/libarchive/ (props changed) Modified: projects/clang390-import/cddl/usr.sbin/zfsd/tests/Makefile ============================================================================== --- projects/clang390-import/cddl/usr.sbin/zfsd/tests/Makefile Mon Aug 29 18:55:06 2016 (r305016) +++ projects/clang390-import/cddl/usr.sbin/zfsd/tests/Makefile Mon Aug 29 18:59:43 2016 (r305017) @@ -4,7 +4,7 @@ SRCDIR=${.CURDIR}/../../../.. .include "${.CURDIR}/../Makefile.common" .PATH: ${.CURDIR}/.. -TESTSDIR?= ${TESTSBASE}/cddl/sbin/zfsd +TESTSDIR?= ${TESTSBASE}/cddl/usr.sbin/zfsd PLAIN_TESTS_CXX= zfsd_unittest SRCS.zfsd_unittest:= ${SRCS:Nzfsd_main.cc} Modified: projects/clang390-import/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc ============================================================================== --- projects/clang390-import/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc Mon Aug 29 18:55:06 2016 (r305016) +++ projects/clang390-import/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc Mon Aug 29 18:59:43 2016 (r305017) @@ -72,7 +72,6 @@ using std::string; using std::stringstream; using DevdCtl::Event; -using DevdCtl::EventBuffer; using DevdCtl::EventFactory; using DevdCtl::EventList; using DevdCtl::Guid; Modified: projects/clang390-import/cddl/usr.sbin/zfsd/vdev.h ============================================================================== --- projects/clang390-import/cddl/usr.sbin/zfsd/vdev.h Mon Aug 29 18:55:06 2016 (r305016) +++ projects/clang390-import/cddl/usr.sbin/zfsd/vdev.h Mon Aug 29 18:59:43 2016 (r305017) @@ -108,6 +108,12 @@ public: * \brief No-op copy constructor for nonexistent vdevs. */ Vdev(); + + /** + * \brief No-op virtual destructor, since this class has virtual + * functions. + */ + virtual ~Vdev(); bool DoesNotExist() const; /** @@ -145,6 +151,10 @@ private: extern Vdev NonexistentVdev; //- Vdev Inline Public Methods ------------------------------------------------ +inline Vdev::~Vdev() +{ +} + inline DevdCtl::Guid Vdev::PoolGUID() const { Modified: projects/clang390-import/contrib/libarchive/libarchive/archive_acl.c ============================================================================== --- projects/clang390-import/contrib/libarchive/libarchive/archive_acl.c Mon Aug 29 18:55:06 2016 (r305016) +++ projects/clang390-import/contrib/libarchive/libarchive/archive_acl.c Mon Aug 29 18:59:43 2016 (r305017) @@ -57,27 +57,21 @@ static int archive_acl_add_entry_len_l(s size_t len, struct archive_string_conv *sc); static int isint_w(const wchar_t *start, const wchar_t *end, int *result); static int ismode_w(const wchar_t *start, const wchar_t *end, int *result); -static int parse_nfs4_flags_w(const wchar_t *start, const wchar_t *end, - int *result); -static int parse_nfs4_perms_w(const wchar_t *start, const wchar_t *end, - int *result); static void next_field_w(const wchar_t **wp, const wchar_t **start, const wchar_t **end, wchar_t *sep); static int prefix_w(const wchar_t *start, const wchar_t *end, const wchar_t *test); -static void append_entry_w(wchar_t **wp, const wchar_t *prefix, int type, - int tag, const wchar_t *wname, int perm, int id); +static void append_entry_w(wchar_t **wp, const wchar_t *prefix, int tag, + const wchar_t *wname, int perm, int id); static void append_id_w(wchar_t **wp, int id); static int isint(const char *start, const char *end, int *result); static int ismode(const char *start, const char *end, int *result); -static int parse_nfs4_flags(const char *start, const char *end, int *result); -static int parse_nfs4_perms(const char *start, const char *end, int *result); static void next_field(const char **p, const char **start, const char **end, char *sep); static int prefix_c(const char *start, const char *end, const char *test); -static void append_entry(char **p, const char *prefix, int type, - int tag, const char *name, int perm, int id); +static void append_entry(char **p, const char *prefix, int tag, + const char *name, int perm, int id); static void append_id(char **p, int id); void @@ -453,16 +447,6 @@ archive_acl_text_w(struct archive *a, st int id, r; wchar_t *wp; - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) && - (flags & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT))) { - /* cannot convert NFSv4 ACLs and POSIX1e ACLs at the same time */ - return (NULL); - } - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) && (flags & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)) { - /* cannot have access and default at the same time */ - return (NULL); - } - if (acl->acl_text_w != NULL) { free (acl->acl_text_w); acl->acl_text_w = NULL; @@ -478,57 +462,17 @@ archive_acl_text_w(struct archive *a, st if ((flags & ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT) && (ap->type & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)) length += 8; /* "default:" */ - switch (ap->tag) { - case ARCHIVE_ENTRY_ACL_USER_OBJ: - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { - length += 6; /* "owner@" */ - break; - } - /* FALLTHROUGH */ - case ARCHIVE_ENTRY_ACL_USER: - length += 4; /* "user" */ - break; - case ARCHIVE_ENTRY_ACL_GROUP_OBJ: - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { - length += 6; /* "group@" */ - break; - } - /* FALLTHROUGH */ - case ARCHIVE_ENTRY_ACL_GROUP: - case ARCHIVE_ENTRY_ACL_OTHER: - length += 5; /* "group", "other" */ - break; - case ARCHIVE_ENTRY_ACL_EVERYONE: - length += 9; /* "everyone@" */ - break; - } + length += 5; /* tag name */ length += 1; /* colon */ - if (((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) || - ap->tag == ARCHIVE_ENTRY_ACL_USER || - ap->tag == ARCHIVE_ENTRY_ACL_GROUP) { - r = archive_mstring_get_wcs(a, &ap->name, &wname); - if (r == 0 && wname != NULL) - length += wcslen(wname); - else if (r < 0 && errno == ENOMEM) - return (NULL); - else - length += sizeof(uid_t) * 3 + 1; - length += 1; /* colon */ - } - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) - length += 14; /* rwxpdDaARWcCos */ + r = archive_mstring_get_wcs(a, &ap->name, &wname); + if (r == 0 && wname != NULL) + length += wcslen(wname); + else if (r < 0 && errno == ENOMEM) + return (NULL); else - length += 3; /* rwx */ - length += 1; /* colon */ - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { - length += 7; /* fdinSFI */ - length += 1; /* colon */ - if ((ap->type & ARCHIVE_ENTRY_ACL_TYPE_DENY) != 0) - length += 4; /* deny */ - else - length += 5; /* allow, alarm, audit */ - length += 1; /* colon */ - } + length += sizeof(uid_t) * 3 + 1; + length ++; /* colon */ + length += 3; /* rwx */ length += 1; /* colon */ length += max(sizeof(uid_t), sizeof(gid_t)) * 3 + 1; length ++; /* newline */ @@ -536,39 +480,34 @@ archive_acl_text_w(struct archive *a, st ap = ap->next; } - if (count == 0) - return (NULL); - - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { + if (count > 0 && ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0)) { length += 10; /* "user::rwx\n" */ length += 11; /* "group::rwx\n" */ length += 11; /* "other::rwx\n" */ } + if (count == 0) + return (NULL); + /* Now, allocate the string and actually populate it. */ wp = acl->acl_text_w = (wchar_t *)malloc(length * sizeof(wchar_t)); if (wp == NULL) return (NULL); count = 0; - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { - append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, - ARCHIVE_ENTRY_ACL_USER_OBJ, NULL, acl->mode & 0700, -1); + append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_USER_OBJ, NULL, + acl->mode & 0700, -1); *wp++ = ','; - append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, - ARCHIVE_ENTRY_ACL_GROUP_OBJ, NULL, acl->mode & 0070, -1); + append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_GROUP_OBJ, NULL, + acl->mode & 0070, -1); *wp++ = ','; - append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, - ARCHIVE_ENTRY_ACL_OTHER, NULL, acl->mode & 0007, -1); + append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_OTHER, NULL, + acl->mode & 0007, -1); count += 3; - } - if ((flags & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | - ARCHIVE_ENTRY_ACL_TYPE_NFS4)) != 0) { ap = acl->acl_head; while (ap != NULL) { - if ((ap->type & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | - ARCHIVE_ENTRY_ACL_TYPE_NFS4)) != 0) { + if ((ap->type & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { r = archive_mstring_get_wcs(a, &ap->name, &wname); if (r == 0) { *wp++ = separator; @@ -576,8 +515,8 @@ archive_acl_text_w(struct archive *a, st id = ap->id; else id = -1; - append_entry_w(&wp, NULL, ap->type, ap->tag, - wname, ap->permset, id); + append_entry_w(&wp, NULL, ap->tag, wname, + ap->permset, id); count++; } else if (r < 0 && errno == ENOMEM) return (NULL); @@ -586,6 +525,7 @@ archive_acl_text_w(struct archive *a, st } } + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT) != 0) { if (flags & ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT) prefix = L"default:"; @@ -603,8 +543,8 @@ archive_acl_text_w(struct archive *a, st id = ap->id; else id = -1; - append_entry_w(&wp, prefix, ap->type, - ap->tag, wname, ap->permset, id); + append_entry_w(&wp, prefix, ap->tag, + wname, ap->permset, id); count ++; } else if (r < 0 && errno == ENOMEM) return (NULL); @@ -628,8 +568,8 @@ append_id_w(wchar_t **wp, int id) } static void -append_entry_w(wchar_t **wp, const wchar_t *prefix, int type, - int tag, const wchar_t *wname, int perm, int id) +append_entry_w(wchar_t **wp, const wchar_t *prefix, int tag, + const wchar_t *wname, int perm, int id) { if (prefix != NULL) { wcscpy(*wp, prefix); @@ -639,11 +579,6 @@ append_entry_w(wchar_t **wp, const wchar case ARCHIVE_ENTRY_ACL_USER_OBJ: wname = NULL; id = -1; - if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { - wcscpy(*wp, L"owner@"); - break; - } - /* FALLTHROUGH */ /* FALLTHROUGH */ case ARCHIVE_ENTRY_ACL_USER: wcscpy(*wp, L"user"); @@ -668,57 +603,18 @@ append_entry_w(wchar_t **wp, const wchar } *wp += wcslen(*wp); *(*wp)++ = L':'; - if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0 || - tag == ARCHIVE_ENTRY_ACL_USER || - tag == ARCHIVE_ENTRY_ACL_GROUP) { - if (wname != NULL) { - wcscpy(*wp, wname); - *wp += wcslen(*wp); - } else if (tag == ARCHIVE_ENTRY_ACL_USER - || tag == ARCHIVE_ENTRY_ACL_GROUP) { - append_id_w(wp, id); - id = -1; - } - *(*wp)++ = L':'; - } - *(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_READ | - ARCHIVE_ENTRY_ACL_READ_DATA | - ARCHIVE_ENTRY_ACL_LIST_DIRECTORY)) ? L'r' : L'-'; - *(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_WRITE | - ARCHIVE_ENTRY_ACL_WRITE_DATA | - ARCHIVE_ENTRY_ACL_ADD_FILE)) ? L'w' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_EXECUTE) ? L'x' : L'-'; - if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { - *(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_APPEND_DATA | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY)) ? L'p' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE) ? L'd' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE_CHILD) ? L'D' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES) ? L'a' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES) ? L'A' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS) ? L'R' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS) ? L'W' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ACL) ? L'c' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ACL) ? L'C' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_OWNER) ? L'o' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_SYNCHRONIZE) ? L's' : L'-'; - *(*wp)++ = L':'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT) ? L'f' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT) ? L'd' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY) ? L'i' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT) ? L'n' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS) ? L'S' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS) ? L'F' : L'-'; - *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_INHERITED) ? L'I' : L'-'; - *(*wp)++ = L':'; - if (type & ARCHIVE_ENTRY_ACL_TYPE_ALLOW) - wcscpy(*wp, L"allow"); - else if (type & ARCHIVE_ENTRY_ACL_TYPE_DENY) - wcscpy(*wp, L"deny"); - else if (type & ARCHIVE_ENTRY_ACL_TYPE_AUDIT) - wcscpy(*wp, L"audit"); - else if (type & ARCHIVE_ENTRY_ACL_TYPE_ALARM) - wcscpy(*wp, L"alarm"); + if (wname != NULL) { + wcscpy(*wp, wname); *wp += wcslen(*wp); + } else if (tag == ARCHIVE_ENTRY_ACL_USER + || tag == ARCHIVE_ENTRY_ACL_GROUP) { + append_id_w(wp, id); + id = -1; } + *(*wp)++ = L':'; + *(*wp)++ = (perm & 0444) ? L'r' : L'-'; + *(*wp)++ = (perm & 0222) ? L'w' : L'-'; + *(*wp)++ = (perm & 0111) ? L'x' : L'-'; if (id != -1) { *(*wp)++ = L':'; append_id_w(wp, id); @@ -741,16 +637,6 @@ archive_acl_text_l(struct archive_acl *a int id, r; char *p; - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) && - (flags & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT))) { - /* cannot convert NFSv4 ACLs and POSIX1e ACLs at the same time */ - return (-1); - } - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) && (flags & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)) { - /* cannot have access and default at the same time */ - return (-1); - } - if (acl->acl_text != NULL) { free (acl->acl_text); acl->acl_text = NULL; @@ -769,109 +655,63 @@ archive_acl_text_l(struct archive_acl *a if ((flags & ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT) && (ap->type & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)) length += 8; /* "default:" */ - switch (ap->tag) { - case ARCHIVE_ENTRY_ACL_USER_OBJ: - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { - length += 6; /* "owner@" */ - break; - } - /* FALLTHROUGH */ - case ARCHIVE_ENTRY_ACL_USER: - length += 4; /* "user" */ - break; - case ARCHIVE_ENTRY_ACL_GROUP_OBJ: - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { - length += 6; /* "group@" */ - break; - } - /* FALLTHROUGH */ - case ARCHIVE_ENTRY_ACL_GROUP: - case ARCHIVE_ENTRY_ACL_OTHER: - length += 5; /* "group", "other" */ - break; - case ARCHIVE_ENTRY_ACL_EVERYONE: - length += 9; /* "everyone@" */ - break; - } - + length += 5; /* tag name */ length += 1; /* colon */ - if (((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) || - ap->tag == ARCHIVE_ENTRY_ACL_USER || - ap->tag == ARCHIVE_ENTRY_ACL_GROUP) { - r = archive_mstring_get_mbs_l( - &ap->name, &name, &len, sc); - if (r != 0) - return (-1); - if (len > 0 && name != NULL) - length += len; - else - length += sizeof(uid_t) * 3 + 1; - length += 1; /* colon */ - } - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) - length += 14; /* rwxpdDaARWcCos */ + r = archive_mstring_get_mbs_l( + &ap->name, &name, &len, sc); + if (r != 0) + return (-1); + if (len > 0 && name != NULL) + length += len; else - length += 3; /* rwx */ + length += sizeof(uid_t) * 3 + 1; + length ++; /* colon */ + length += 3; /* rwx */ length += 1; /* colon */ - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { - length += 7; /* fdinSFI */ - length += 1; /* colon */ - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_DENY) != 0) - length += 4; /* deny */ - else - length += 5; /* allow, alarm, audit */ - length += 1; /* colon */ - } - length += max(sizeof(uid_t), sizeof(gid_t)) * 3 + 1; length ++; /* newline */ } ap = ap->next; } - if (count == 0) - return (0); - - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { + if (count > 0 && ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0)) { length += 10; /* "user::rwx\n" */ length += 11; /* "group::rwx\n" */ length += 11; /* "other::rwx\n" */ } + if (count == 0) + return (0); + /* Now, allocate the string and actually populate it. */ p = acl->acl_text = (char *)malloc(length); if (p == NULL) return (-1); count = 0; if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { - append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, - ARCHIVE_ENTRY_ACL_USER_OBJ, NULL, acl->mode & 0700, -1); + append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_USER_OBJ, NULL, + acl->mode & 0700, -1); *p++ = ','; - append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, - ARCHIVE_ENTRY_ACL_GROUP_OBJ, NULL, acl->mode & 0070, -1); + append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_GROUP_OBJ, NULL, + acl->mode & 0070, -1); *p++ = ','; - append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, - ARCHIVE_ENTRY_ACL_OTHER, NULL, acl->mode & 0007, -1); + append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_OTHER, NULL, + acl->mode & 0007, -1); count += 3; - } - if ((flags & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | - ARCHIVE_ENTRY_ACL_TYPE_NFS4)) != 0) { for (ap = acl->acl_head; ap != NULL; ap = ap->next) { - if ((ap->type & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | - ARCHIVE_ENTRY_ACL_TYPE_NFS4)) == 0) + if ((ap->type & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) == 0) continue; r = archive_mstring_get_mbs_l( &ap->name, &name, &len, sc); if (r != 0) return (-1); - if (count > 0) - *p++ = separator; + *p++ = separator; if (flags & ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID) id = ap->id; else id = -1; - append_entry(&p, NULL, ap->type, ap->tag, name, + append_entry(&p, NULL, ap->tag, name, ap->permset, id); count++; } @@ -897,7 +737,7 @@ archive_acl_text_l(struct archive_acl *a id = ap->id; else id = -1; - append_entry(&p, prefix, ap->type, ap->tag, + append_entry(&p, prefix, ap->tag, name, ap->permset, id); count ++; } @@ -920,8 +760,8 @@ append_id(char **p, int id) } static void -append_entry(char **p, const char *prefix, int type, - int tag, const char *name, int perm, int id) +append_entry(char **p, const char *prefix, int tag, + const char *name, int perm, int id) { if (prefix != NULL) { strcpy(*p, prefix); @@ -931,10 +771,6 @@ append_entry(char **p, const char *prefi case ARCHIVE_ENTRY_ACL_USER_OBJ: name = NULL; id = -1; - if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { - strcpy(*p, "owner@"); - break; - } /* FALLTHROUGH */ case ARCHIVE_ENTRY_ACL_USER: strcpy(*p, "user"); @@ -942,10 +778,6 @@ append_entry(char **p, const char *prefi case ARCHIVE_ENTRY_ACL_GROUP_OBJ: name = NULL; id = -1; - if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { - strcpy(*p, "group@"); - break; - } /* FALLTHROUGH */ case ARCHIVE_ENTRY_ACL_GROUP: strcpy(*p, "group"); @@ -960,65 +792,21 @@ append_entry(char **p, const char *prefi name = NULL; id = -1; break; - case ARCHIVE_ENTRY_ACL_EVERYONE: - strcpy(*p, "everyone@"); - name = NULL; - id = -1; - break; } *p += strlen(*p); *(*p)++ = ':'; - if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0 || - tag == ARCHIVE_ENTRY_ACL_USER || - tag == ARCHIVE_ENTRY_ACL_GROUP) { - if (name != NULL) { - strcpy(*p, name); - *p += strlen(*p); - } else if (tag == ARCHIVE_ENTRY_ACL_USER - || tag == ARCHIVE_ENTRY_ACL_GROUP) { - append_id(p, id); - id = -1; - } - *(*p)++ = ':'; - } - *(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_READ | - ARCHIVE_ENTRY_ACL_READ_DATA | - ARCHIVE_ENTRY_ACL_LIST_DIRECTORY)) ? 'r' : '-'; - *(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_WRITE | - ARCHIVE_ENTRY_ACL_WRITE_DATA | - ARCHIVE_ENTRY_ACL_ADD_FILE)) ? 'w' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_EXECUTE) ? 'x' : '-'; - if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { - *(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_APPEND_DATA | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY)) ? 'p' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE) ? 'd' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE_CHILD) ? 'D' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES) ? 'a' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES) ? 'A' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS) ? 'R' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS) ? 'W' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ACL) ? 'c' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ACL) ? 'C' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_OWNER) ? 'o' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_SYNCHRONIZE) ? 's' : '-'; - *(*p)++ = ':'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT) ? 'f' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT) ? 'd' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY) ? 'i' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT) ? 'n' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS) ? 'S' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS) ? 'F' : '-'; - *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_INHERITED) ? 'I' : '-'; - *(*p)++ = ':'; - if (type & ARCHIVE_ENTRY_ACL_TYPE_ALLOW) - strcpy(*p, "allow"); - else if (type & ARCHIVE_ENTRY_ACL_TYPE_DENY) - strcpy(*p, "deny"); - else if (type & ARCHIVE_ENTRY_ACL_TYPE_AUDIT) - strcpy(*p, "audit"); - else if (type & ARCHIVE_ENTRY_ACL_TYPE_ALARM) - strcpy(*p, "alarm"); + if (name != NULL) { + strcpy(*p, name); *p += strlen(*p); + } else if (tag == ARCHIVE_ENTRY_ACL_USER + || tag == ARCHIVE_ENTRY_ACL_GROUP) { + append_id(p, id); + id = -1; } + *(*p)++ = ':'; + *(*p)++ = (perm & 0444) ? 'r' : '-'; + *(*p)++ = (perm & 0222) ? 'w' : '-'; + *(*p)++ = (perm & 0111) ? 'x' : '-'; if (id != -1) { *(*p)++ = ':'; append_id(p, id); @@ -1039,19 +827,12 @@ archive_acl_parse_w(struct archive_acl * struct { const wchar_t *start; const wchar_t *end; - } field[6], name; + } field[4], name; - int numfields, fields, n; + int fields, n; int type, tag, permset, id; - int offset; wchar_t sep; - if (default_type == ARCHIVE_ENTRY_ACL_TYPE_NFS4) - numfields = 6; - else - numfields = 4; - - while (text != NULL && *text != L'\0') { /* * Parse the fields out of the next entry, @@ -1061,7 +842,7 @@ archive_acl_parse_w(struct archive_acl * do { const wchar_t *start, *end; next_field_w(&text, &start, &end, &sep); - if (fields < numfields) { + if (fields < 4) { field[fields].start = start; field[fields].end = end; } @@ -1069,148 +850,72 @@ archive_acl_parse_w(struct archive_acl * } while (sep == L':'); /* Set remaining fields to blank. */ - for (n = fields; n < numfields; ++n) + for (n = fields; n < 4; ++n) field[n].start = field[n].end = NULL; - if (default_type != ARCHIVE_ENTRY_ACL_TYPE_NFS4) { - /* POSIX.1e ACLs */ - /* Check for a numeric ID in field 1 or 3. */ - id = -1; - isint_w(field[1].start, field[1].end, &id); - /* Field 3 is optional. */ - if (id == -1 && fields > 3) - isint_w(field[3].start, field[3].end, &id); - - /* - * Solaris extension: "defaultuser::rwx" is the - * default ACL corresponding to "user::rwx", etc. - */ - if (field[0].end - field[0].start > 7 - && wmemcmp(field[0].start, L"default", 7) == 0) { - type = ARCHIVE_ENTRY_ACL_TYPE_DEFAULT; - field[0].start += 7; - } else - type = default_type; + /* Check for a numeric ID in field 1 or 3. */ + id = -1; + isint_w(field[1].start, field[1].end, &id); + /* Field 3 is optional. */ + if (id == -1 && fields > 3) + isint_w(field[3].start, field[3].end, &id); - name.start = name.end = NULL; - if (prefix_w(field[0].start, field[0].end, L"user")) { - if (!ismode_w(field[2].start, field[2].end, - &permset)) - return (ARCHIVE_WARN); - if (id != -1 || field[1].start < field[1].end) { - tag = ARCHIVE_ENTRY_ACL_USER; - name = field[1]; - } else - tag = ARCHIVE_ENTRY_ACL_USER_OBJ; - } else if (prefix_w(field[0].start, field[0].end, - L"group")) { - if (!ismode_w(field[2].start, field[2].end, - &permset)) - return (ARCHIVE_WARN); - if (id != -1 || field[1].start < field[1].end) { - tag = ARCHIVE_ENTRY_ACL_GROUP; - name = field[1]; - } else - tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ; - } else if (prefix_w(field[0].start, field[0].end, - L"other")) { - if (fields == 2 - && field[1].start < field[1].end - && ismode_w(field[1].start, field[1].end, - &permset)) { - /* This is Solaris-style "other:rwx" */ - } else if (fields == 3 - && field[1].start == field[1].end - && field[2].start < field[2].end - && ismode_w(field[2].start, field[2].end, - &permset)) { - /* This is FreeBSD-style "other::rwx" */ - } else - return (ARCHIVE_WARN); - tag = ARCHIVE_ENTRY_ACL_OTHER; - } else if (prefix_w(field[0].start, field[0].end, - L"mask")) { - if (fields == 2 - && field[1].start < field[1].end - && ismode_w(field[1].start, field[1].end, - &permset)) { - /* This is Solaris-style "mask:rwx" */ - } else if (fields == 3 - && field[1].start == field[1].end - && field[2].start < field[2].end - && ismode_w(field[2].start, field[2].end, - &permset)) { - /* This is FreeBSD-style "mask::rwx" */ - } else - return (ARCHIVE_WARN); - tag = ARCHIVE_ENTRY_ACL_MASK; - } else + /* + * Solaris extension: "defaultuser::rwx" is the + * default ACL corresponding to "user::rwx", etc. + */ + if (field[0].end - field[0].start > 7 + && wmemcmp(field[0].start, L"default", 7) == 0) { + type = ARCHIVE_ENTRY_ACL_TYPE_DEFAULT; + field[0].start += 7; + } else + type = default_type; + + name.start = name.end = NULL; + if (prefix_w(field[0].start, field[0].end, L"user")) { + if (!ismode_w(field[2].start, field[2].end, &permset)) return (ARCHIVE_WARN); - } else { - /* NFSv4 ACLs */ - if (wcsncmp(field[0].start, L"user", - field[0].end - field[0].start) == 0) + if (id != -1 || field[1].start < field[1].end) { tag = ARCHIVE_ENTRY_ACL_USER; - else if (wcsncmp(field[0].start, L"group", - field[0].end - field[0].start) == 0) - tag = ARCHIVE_ENTRY_ACL_GROUP; - else if (wcsncmp(field[0].start, L"owner@", - field[0].end - field[0].start) == 0) + name = field[1]; + } else tag = ARCHIVE_ENTRY_ACL_USER_OBJ; - else if (wcsncmp(field[0].start, L"group@", - field[0].end - field[0].start) == 0) - tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ; - else if (wcsncmp(field[0].start, L"everyone@", - field[0].end - field[0].start) == 0) - tag = ARCHIVE_ENTRY_ACL_EVERYONE; - else { - /* Unknown entry */ + } else if (prefix_w(field[0].start, field[0].end, L"group")) { + if (!ismode_w(field[2].start, field[2].end, &permset)) return (ARCHIVE_WARN); - } - - permset = 0; - name.start = name.end = NULL; - - if (tag == ARCHIVE_ENTRY_ACL_USER || - tag == ARCHIVE_ENTRY_ACL_GROUP) { - offset = 1; + if (id != -1 || field[1].start < field[1].end) { + tag = ARCHIVE_ENTRY_ACL_GROUP; name = field[1]; } else - offset = 0; - - if (parse_nfs4_perms_w(field[1 + offset].start, - field[1 + offset].end, &permset) != 0) { - /* NFS4 perms are invalid */ - return (ARCHIVE_WARN); - } - if (parse_nfs4_flags_w(field[2 + offset].start, - field[2 + offset].end, &permset) != 0) { - /* NFS4 flags are invalid */ + tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ; + } else if (prefix_w(field[0].start, field[0].end, L"other")) { + if (fields == 2 + && field[1].start < field[1].end + && ismode_w(field[1].start, field[1].end, &permset)) { + /* This is Solaris-style "other:rwx" */ + } else if (fields == 3 + && field[1].start == field[1].end + && field[2].start < field[2].end + && ismode_w(field[2].start, field[2].end, &permset)) { + /* This is FreeBSD-style "other::rwx" */ + } else return (ARCHIVE_WARN); - } - if (wcsncmp(field[3 + offset].start, L"allow", - field[3 + offset].end - field[3 + offset].start) - == 0) - type = ARCHIVE_ENTRY_ACL_TYPE_ALLOW; - else if (wcsncmp(field[3 + offset].start, L"deny", - field[3 + offset].end - field[3 + offset].start) - == 0) - type = ARCHIVE_ENTRY_ACL_TYPE_DENY; - else if (wcsncmp(field[3 + offset].start, L"audit", - field[3 + offset].end - field[3 + offset].start) - == 0) - type = ARCHIVE_ENTRY_ACL_TYPE_AUDIT; - else if (wcsncmp(field[3 + offset].start, L"alarm", - field[3 + offset].end - field[3 + offset].start) - == 0) - type = ARCHIVE_ENTRY_ACL_TYPE_ALARM; - else { - /* Unknown type */ + tag = ARCHIVE_ENTRY_ACL_OTHER; + } else if (prefix_w(field[0].start, field[0].end, L"mask")) { + if (fields == 2 + && field[1].start < field[1].end + && ismode_w(field[1].start, field[1].end, &permset)) { + /* This is Solaris-style "mask:rwx" */ + } else if (fields == 3 + && field[1].start == field[1].end + && field[2].start < field[2].end + && ismode_w(field[2].start, field[2].end, &permset)) { + /* This is FreeBSD-style "mask::rwx" */ + } else return (ARCHIVE_WARN); - } - isint_w(field[4 + offset].start, field[4 + offset].end, - &id); - } + tag = ARCHIVE_ENTRY_ACL_MASK; + } else + return (ARCHIVE_WARN); /* Add entry to the internal list. */ archive_acl_add_entry_w_len(acl, type, permset, @@ -1280,78 +985,6 @@ ismode_w(const wchar_t *start, const wch return (1); } -/* Parse a wstring as a strict NFSv4 ACL permission field. */ -static int -parse_nfs4_perms_w(const wchar_t *start, const wchar_t *end, int *permset) -{ - const wchar_t *p; - int pos; - const wchar_t *letter = L"rwxpdDaARWcCos"; - const int perms[14] = { - ARCHIVE_ENTRY_ACL_READ_DATA, - ARCHIVE_ENTRY_ACL_WRITE_DATA, - ARCHIVE_ENTRY_ACL_EXECUTE, - ARCHIVE_ENTRY_ACL_APPEND_DATA, - ARCHIVE_ENTRY_ACL_DELETE, - ARCHIVE_ENTRY_ACL_DELETE_CHILD, - ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES, - ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES, - ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS, - ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS, - ARCHIVE_ENTRY_ACL_READ_ACL, - ARCHIVE_ENTRY_ACL_WRITE_ACL, - ARCHIVE_ENTRY_ACL_WRITE_OWNER, - ARCHIVE_ENTRY_ACL_SYNCHRONIZE - }; - - if (start >= end) - return (0); - p = start; - pos = 0; - while (p < end && pos < 14) { - if (*p == letter[pos]) - *permset |= perms[pos]; - else if (*p != '-') - return (-1); - p = p + sizeof(wchar_t); - pos++; - } - return (0); -} - -/* Parse a string as a strict NFSv4 ACL flags field. */ -static int -parse_nfs4_flags_w(const wchar_t *start, const wchar_t *end, int *permset) -{ - const wchar_t *p; - int pos; - const wchar_t *letter = L"fdinSFI"; - const int perms[7] = { - ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, - ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, - ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, - ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, - ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, - ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, - ARCHIVE_ENTRY_ACL_ENTRY_INHERITED - }; - - if (start >= end) - return (0); - p = start; - pos = 0; - while (p < end && pos < 7) { - if (*p == letter[pos]) - *permset |= perms[pos]; - else if (*p != '-') - return (-1); - p = p + sizeof(wchar_t); - pos++; - } - return (0); -} - - /* * Match "[:whitespace:]*(.*)[:whitespace:]*[:,\n]". *wp is updated * to point to just after the separator. *start points to the first @@ -1424,18 +1057,12 @@ archive_acl_parse_l(struct archive_acl * struct { const char *start; const char *end; - } field[6], name; + } field[4], name; - int numfields, fields, n, r, ret = ARCHIVE_OK; + int fields, n, r, ret = ARCHIVE_OK; int type, tag, permset, id; - int offset; char sep; - if (default_type == ARCHIVE_ENTRY_ACL_TYPE_NFS4) - numfields = 6; - else - numfields = 4; - while (text != NULL && *text != '\0') { /* * Parse the fields out of the next entry, @@ -1445,7 +1072,7 @@ archive_acl_parse_l(struct archive_acl * do { const char *start, *end; next_field(&text, &start, &end, &sep); - if (fields < numfields) { + if (fields < 4) { field[fields].start = start; field[fields].end = end; } @@ -1453,148 +1080,72 @@ archive_acl_parse_l(struct archive_acl * } while (sep == ':'); /* Set remaining fields to blank. */ - for (n = fields; n < numfields; ++n) + for (n = fields; n < 4; ++n) field[n].start = field[n].end = NULL; - if (default_type != ARCHIVE_ENTRY_ACL_TYPE_NFS4) { - /* POSIX.1e ACLs */ - /* Check for a numeric ID in field 1 or 3. */ - id = -1; - isint(field[1].start, field[1].end, &id); - /* Field 3 is optional. */ - if (id == -1 && fields > 3) - isint(field[3].start, field[3].end, &id); - - /* - * Solaris extension: "defaultuser::rwx" is the - * default ACL corresponding to "user::rwx", etc. - */ - if (field[0].end - field[0].start > 7 - && memcmp(field[0].start, "default", 7) == 0) { - type = ARCHIVE_ENTRY_ACL_TYPE_DEFAULT; - field[0].start += 7; - } else - type = default_type; + /* Check for a numeric ID in field 1 or 3. */ + id = -1; + isint(field[1].start, field[1].end, &id); + /* Field 3 is optional. */ + if (id == -1 && fields > 3) + isint(field[3].start, field[3].end, &id); - name.start = name.end = NULL; - if (prefix_c(field[0].start, field[0].end, "user")) { - if (!ismode(field[2].start, field[2].end, - &permset)) - return (ARCHIVE_WARN); - if (id != -1 || field[1].start < field[1].end) { - tag = ARCHIVE_ENTRY_ACL_USER; - name = field[1]; - } else - tag = ARCHIVE_ENTRY_ACL_USER_OBJ; - } else if (prefix_c(field[0].start, field[0].end, - "group")) { - if (!ismode(field[2].start, field[2].end, - &permset)) - return (ARCHIVE_WARN); - if (id != -1 || field[1].start < field[1].end) { - tag = ARCHIVE_ENTRY_ACL_GROUP; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Aug 29 19:14:53 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D17C9BC7228 for ; Mon, 29 Aug 2016 19:14:53 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 951B7362; Mon, 29 Aug 2016 19:14:53 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7TJEqLR069135; Mon, 29 Aug 2016 19:14:52 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7TJEqF1069129; Mon, 29 Aug 2016 19:14:52 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201608291914.u7TJEqF1069129@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 29 Aug 2016 19:14:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305021 - in projects/netbsd-tests-update-12: cddl/usr.sbin/zfsd cddl/usr.sbin/zfsd/tests lib/libc/aarch64/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Aug 2016 19:14:53 -0000 Author: ngie Date: Mon Aug 29 19:14:52 2016 New Revision: 305021 URL: https://svnweb.freebsd.org/changeset/base/305021 Log: MFhead @ r305020 Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile.common projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/Makefile projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc projects/netbsd-tests-update-12/lib/libc/aarch64/sys/Makefile.inc Directory Properties: projects/netbsd-tests-update-12/ (props changed) projects/netbsd-tests-update-12/cddl/ (props changed) Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile ============================================================================== --- projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile Mon Aug 29 19:10:58 2016 (r305020) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile Mon Aug 29 19:14:52 2016 (r305021) @@ -1,6 +1,5 @@ # $FreeBSD$ -SRCDIR=${.CURDIR}/../../.. .include "Makefile.common" PROG_CXX= zfsd Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile.common ============================================================================== --- projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile.common Mon Aug 29 19:10:58 2016 (r305020) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile.common Mon Aug 29 19:14:52 2016 (r305021) @@ -15,20 +15,20 @@ WARNS?= 3 # Ignore warnings about Solaris specific pragmas. IGNORE_PRAGMA= YES -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libzpool/common -INCFLAGS+= -I${SRCDIR}/cddl/compat/opensolaris/include -INCFLAGS+= -I${SRCDIR}/cddl/compat/opensolaris/lib/libumem -INCFLAGS+= -I${SRCDIR}/sys/cddl/compat/opensolaris -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/head -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libuutil/common -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libumem/common -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libzfs_core/common -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libzfs/common -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libnvpair -INCFLAGS+= -I${SRCDIR}/sys/cddl/contrib/opensolaris/common/zfs -INCFLAGS+= -I${SRCDIR}/sys/cddl/contrib/opensolaris/uts/common -INCFLAGS+= -I${SRCDIR}/sys/cddl/contrib/opensolaris/uts/common/fs/zfs -INCFLAGS+= -I${SRCDIR}/sys/cddl/contrib/opensolaris/uts/common/sys +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzpool/common +INCFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include +INCFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/lib/libumem +INCFLAGS+= -I${SRCTOP}/sys/cddl/compat/opensolaris +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/head +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libuutil/common +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libumem/common +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzfs_core/common +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzfs/common +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libnvpair +INCFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/common/zfs +INCFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/uts/common +INCFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/uts/common/fs/zfs +INCFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/uts/common/sys CFLAGS= -g -DNEED_SOLARIS_BOOLEAN ${INCFLAGS} Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/Makefile ============================================================================== --- projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/Makefile Mon Aug 29 19:10:58 2016 (r305020) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/Makefile Mon Aug 29 19:14:52 2016 (r305021) @@ -1,10 +1,7 @@ # $FreeBSD$ -SRCDIR=${.CURDIR}/../../../.. .include "${.CURDIR}/../Makefile.common" -.PATH: ${.CURDIR}/.. - -TESTSDIR?= ${TESTSBASE}/cddl/sbin/zfsd +.PATH: ${.CURDIR:H} PLAIN_TESTS_CXX= zfsd_unittest SRCS.zfsd_unittest:= ${SRCS:Nzfsd_main.cc} @@ -12,7 +9,7 @@ SRCS.zfsd_unittest+= libmocks.c zfsd_un SRCS= # Use #include in test programs. -INCFLAGS+= -I${.CURDIR}/../.. +INCFLAGS+= -I${.CURDIR:H:H} .if defined(DESTDIR) INCFLAGS+= -I${DESTDIR}/usr/include @@ -27,7 +24,6 @@ LIBRARY_PATH= .endif # Googletest options -LOCALBASE?= /usr/local INCFLAGS+= -I${LOCALBASE}/include -D_THREAD_SAFE -pthread LDFLAGS.zfsd_unittest+= -L${LOCALBASE}/lib -D_THREAD_SAFE -pthread LDADD.zfsd_unittest+= ${LOCALBASE}/lib/libgtest.a @@ -39,7 +35,4 @@ LDADD.zfsd_unittest+= ${LOCALBASE}/lib/l # https://groups.google.com/forum/#!msg/googletestframework/h8ixEPCFm0o/amwfu4xGJb0J CFLAGS.zfsd_unittest+= -DGTEST_HAS_PTHREAD -# Install the tests -TESTSBASE?= /usr/tests - .include Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc ============================================================================== --- projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc Mon Aug 29 19:10:58 2016 (r305020) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc Mon Aug 29 19:14:52 2016 (r305021) @@ -72,7 +72,6 @@ using std::string; using std::stringstream; using DevdCtl::Event; -using DevdCtl::EventBuffer; using DevdCtl::EventFactory; using DevdCtl::EventList; using DevdCtl::Guid; Modified: projects/netbsd-tests-update-12/lib/libc/aarch64/sys/Makefile.inc ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/aarch64/sys/Makefile.inc Mon Aug 29 19:10:58 2016 (r305020) +++ projects/netbsd-tests-update-12/lib/libc/aarch64/sys/Makefile.inc Mon Aug 29 19:14:52 2016 (r305021) @@ -4,7 +4,6 @@ MIASM:= ${MIASM:Nfreebsd[467]_*} SRCS+= __vdso_gettc.c -#MDASM= ptrace.S MDASM= cerror.S \ shmat.S \ sigreturn.S \ From owner-svn-src-projects@freebsd.org Mon Aug 29 20:57:11 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 236E7BC7362 for ; Mon, 29 Aug 2016 20:57:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E80A087A; Mon, 29 Aug 2016 20:57:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7TKvAdf007531; Mon, 29 Aug 2016 20:57:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7TKv9DF007523; Mon, 29 Aug 2016 20:57:09 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608292057.u7TKv9DF007523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 29 Aug 2016 20:57:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305029 - in projects/clang390-import: cddl/usr.sbin/zfsd cddl/usr.sbin/zfsd/tests lib/libc/sys sys/boot/efi/libefi sys/dev/ioat usr.sbin/bluetooth/btpand X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Aug 2016 20:57:11 -0000 Author: dim Date: Mon Aug 29 20:57:09 2016 New Revision: 305029 URL: https://svnweb.freebsd.org/changeset/base/305029 Log: Merge ^/head r305017 through r305028. Modified: projects/clang390-import/cddl/usr.sbin/zfsd/Makefile projects/clang390-import/cddl/usr.sbin/zfsd/Makefile.common projects/clang390-import/cddl/usr.sbin/zfsd/tests/Makefile projects/clang390-import/lib/libc/sys/ptrace.2 projects/clang390-import/sys/boot/efi/libefi/efi_console.c projects/clang390-import/sys/dev/ioat/ioat.c projects/clang390-import/usr.sbin/bluetooth/btpand/bnep.c projects/clang390-import/usr.sbin/bluetooth/btpand/btpand.h Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/cddl/ (props changed) Modified: projects/clang390-import/cddl/usr.sbin/zfsd/Makefile ============================================================================== --- projects/clang390-import/cddl/usr.sbin/zfsd/Makefile Mon Aug 29 20:51:34 2016 (r305028) +++ projects/clang390-import/cddl/usr.sbin/zfsd/Makefile Mon Aug 29 20:57:09 2016 (r305029) @@ -1,6 +1,5 @@ # $FreeBSD$ -SRCDIR=${.CURDIR}/../../.. .include "Makefile.common" PROG_CXX= zfsd Modified: projects/clang390-import/cddl/usr.sbin/zfsd/Makefile.common ============================================================================== --- projects/clang390-import/cddl/usr.sbin/zfsd/Makefile.common Mon Aug 29 20:51:34 2016 (r305028) +++ projects/clang390-import/cddl/usr.sbin/zfsd/Makefile.common Mon Aug 29 20:57:09 2016 (r305029) @@ -15,20 +15,20 @@ WARNS?= 3 # Ignore warnings about Solaris specific pragmas. IGNORE_PRAGMA= YES -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libzpool/common -INCFLAGS+= -I${SRCDIR}/cddl/compat/opensolaris/include -INCFLAGS+= -I${SRCDIR}/cddl/compat/opensolaris/lib/libumem -INCFLAGS+= -I${SRCDIR}/sys/cddl/compat/opensolaris -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/head -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libuutil/common -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libumem/common -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libzfs_core/common -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libzfs/common -INCFLAGS+= -I${SRCDIR}/cddl/contrib/opensolaris/lib/libnvpair -INCFLAGS+= -I${SRCDIR}/sys/cddl/contrib/opensolaris/common/zfs -INCFLAGS+= -I${SRCDIR}/sys/cddl/contrib/opensolaris/uts/common -INCFLAGS+= -I${SRCDIR}/sys/cddl/contrib/opensolaris/uts/common/fs/zfs -INCFLAGS+= -I${SRCDIR}/sys/cddl/contrib/opensolaris/uts/common/sys +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzpool/common +INCFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include +INCFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/lib/libumem +INCFLAGS+= -I${SRCTOP}/sys/cddl/compat/opensolaris +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/head +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libuutil/common +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libumem/common +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzfs_core/common +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libzfs/common +INCFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/lib/libnvpair +INCFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/common/zfs +INCFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/uts/common +INCFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/uts/common/fs/zfs +INCFLAGS+= -I${SRCTOP}/sys/cddl/contrib/opensolaris/uts/common/sys CFLAGS= -g -DNEED_SOLARIS_BOOLEAN ${INCFLAGS} Modified: projects/clang390-import/cddl/usr.sbin/zfsd/tests/Makefile ============================================================================== --- projects/clang390-import/cddl/usr.sbin/zfsd/tests/Makefile Mon Aug 29 20:51:34 2016 (r305028) +++ projects/clang390-import/cddl/usr.sbin/zfsd/tests/Makefile Mon Aug 29 20:57:09 2016 (r305029) @@ -1,10 +1,7 @@ # $FreeBSD$ -SRCDIR=${.CURDIR}/../../../.. .include "${.CURDIR}/../Makefile.common" -.PATH: ${.CURDIR}/.. - -TESTSDIR?= ${TESTSBASE}/cddl/usr.sbin/zfsd +.PATH: ${.CURDIR:H} PLAIN_TESTS_CXX= zfsd_unittest SRCS.zfsd_unittest:= ${SRCS:Nzfsd_main.cc} @@ -12,7 +9,7 @@ SRCS.zfsd_unittest+= libmocks.c zfsd_un SRCS= # Use #include in test programs. -INCFLAGS+= -I${.CURDIR}/../.. +INCFLAGS+= -I${.CURDIR:H:H} .if defined(DESTDIR) INCFLAGS+= -I${DESTDIR}/usr/include @@ -27,7 +24,6 @@ LIBRARY_PATH= .endif # Googletest options -LOCALBASE?= /usr/local INCFLAGS+= -I${LOCALBASE}/include -D_THREAD_SAFE -pthread LDFLAGS.zfsd_unittest+= -L${LOCALBASE}/lib -D_THREAD_SAFE -pthread LDADD.zfsd_unittest+= ${LOCALBASE}/lib/libgtest.a @@ -39,7 +35,4 @@ LDADD.zfsd_unittest+= ${LOCALBASE}/lib/l # https://groups.google.com/forum/#!msg/googletestframework/h8ixEPCFm0o/amwfu4xGJb0J CFLAGS.zfsd_unittest+= -DGTEST_HAS_PTHREAD -# Install the tests -TESTSBASE?= /usr/tests - .include Modified: projects/clang390-import/lib/libc/sys/ptrace.2 ============================================================================== --- projects/clang390-import/lib/libc/sys/ptrace.2 Mon Aug 29 20:51:34 2016 (r305028) +++ projects/clang390-import/lib/libc/sys/ptrace.2 Mon Aug 29 20:57:09 2016 (r305029) @@ -2,7 +2,7 @@ .\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. -.Dd August 28, 2016 +.Dd August 29, 2016 .Dt PTRACE 2 .Os .Sh NAME @@ -104,7 +104,7 @@ Each traced process has a tracing event An event in the traced process only reports a signal stop if the corresponding flag is set in the tracing event mask. The current set of tracing event flags include: -.Bl -tag -width ".Dv PTRACE_SYSCALL" +.Bl -tag -width "Dv PTRACE_SYSCALL" .It Dv PTRACE_EXEC Report a stop for a successful invocation of .Xr execve 2 . @@ -231,7 +231,7 @@ The .Fa request argument can be: -.Bl -tag -width 12n +.Bl -tag -width "Dv PT_GET_EVENT_MASK" .It Dv PT_TRACE_ME This request is the only one used by the traced process; it declares that the process expects to be traced by its parent. @@ -469,31 +469,31 @@ The fields in the .Vt "struct ptrace_lwpinfo" have the following meaning: .Bl -tag -width indent -compact -.It pl_lwpid +.It Va pl_lwpid LWP id of the thread -.It pl_event +.It Va pl_event Event that caused the stop. -Currently defined events are -.Bl -tag -width indent -compact -.It PL_EVENT_NONE +Currently defined events are: +.Bl -tag -width "Dv PL_EVENT_SIGNAL" -compact +.It Dv PL_EVENT_NONE No reason given -.It PL_EVENT_SIGNAL +.It Dv PL_EVENT_SIGNAL Thread stopped due to the pending signal .El -.It pl_flags +.It Va pl_flags Flags that specify additional details about observed stop. Currently defined flags are: .Bl -tag -width indent -compact -.It PL_FLAG_SCE +.It Dv PL_FLAG_SCE The thread stopped due to system call entry, right after the kernel is entered. The debugger may examine syscall arguments that are stored in memory and registers according to the ABI of the current process, and modify them, if needed. -.It PL_FLAG_SCX +.It Dv PL_FLAG_SCX The thread is stopped immediately before syscall is returning to the usermode. The debugger may examine system call return values in the ABI-defined registers and/or memory. -.It PL_FLAG_EXEC +.It Dv PL_FLAG_EXEC When .Dv PL_FLAG_SCX is set, this flag may be additionally specified to inform that the @@ -501,13 +501,13 @@ program being executed by debuggee proce execution of a system call from the .Fn execve 2 family. -.It PL_FLAG_SI +.It Dv PL_FLAG_SI Indicates that .Va pl_siginfo member of .Vt "struct ptrace_lwpinfo" contains valid information. -.It PL_FLAG_FORKED +.It Dv PL_FLAG_FORKED Indicates that the process is returning from a call to .Fn fork 2 that created a new child process. @@ -515,42 +515,42 @@ The process identifier of the new proces .Va pl_child_pid member of .Vt "struct ptrace_lwpinfo" . -.It PL_FLAG_CHILD +.It Dv PL_FLAG_CHILD The flag is set for first event reported from a new child which is automatically attached when .Dv PTRACE_FORK is enabled. -.It PL_FLAG_BORN +.It Dv PL_FLAG_BORN This flag is set for the first event reported from a new LWP when .Dv PTRACE_LWP is enabled. It is reported along with .Dv PL_FLAG_SCX . -.It PL_FLAG_EXITED +.It Dv PL_FLAG_EXITED This flag is set for the last event reported by an exiting LWP when .Dv PTRACE_LWP is enabled. Note that this event is not reported when the last LWP in a process exits. The termination of the last thread is reported via a normal process exit event. -.It PL_FLAG_VFORKED +.It Dv PL_FLAG_VFORKED Indicates that the thread is returning from a call to .Xr vfork 2 that created a new child process. This flag is set in addition to .Dv PL_FLAG_FORKED . -.It PL_FLAG_VFORK_DONE +.It Dv PL_FLAG_VFORK_DONE Indicates that the thread has resumed after a child process created via .Xr vfork 2 has stopped sharing its address space with the traced process. .El -.It pl_sigmask +.It Va pl_sigmask The current signal mask of the LWP -.It pl_siglist +.It Va pl_siglist The current pending set of signals for the LWP. Note that signals that are delivered to the process would not appear on an LWP siglist until the thread is selected for delivery. -.It pl_siginfo +.It Va pl_siginfo The siginfo that accompanies the signal pending. Only valid for .Dv PL_EVENT_SIGNAL @@ -558,9 +558,9 @@ stop when .Dv PL_FLAG_SI is set in .Va pl_flags . -.It pl_tdname +.It Va pl_tdname The name of the thread. -.It pl_child_pid +.It Va pl_child_pid The process identifier of the new child process. Only valid for a .Dv PL_EVENT_SIGNAL @@ -568,7 +568,7 @@ stop when .Dv PL_FLAG_FORKED is set in .Va pl_flags . -.It pl_syscall_code +.It Va pl_syscall_code The ABI-specific identifier of the current system call. Note that for indirect system calls this field reports the indirected system call. @@ -578,7 +578,7 @@ or .Dv PL_FLAG_SCX is set in .Va pl_flags. -.It pl_syscall_narg +.It Va pl_syscall_narg The number of arguments passed to the current system call not counting the system call identifier. Note that for indirect system calls this field reports the arguments @@ -590,10 +590,10 @@ or is set in .Va pl_flags. .El -.It PT_GETNUMLWPS +.It Dv PT_GETNUMLWPS This request returns the number of kernel threads associated with the traced process. -.It PT_GETLWPLIST +.It Dv PT_GETLWPLIST This request can be used to get the current thread list. A pointer to an array of type .Vt lwpid_t @@ -604,15 +604,15 @@ with the array size specified by The return value from .Fn ptrace is the count of array entries filled in. -.It PT_SETSTEP +.It Dv PT_SETSTEP This request will turn on single stepping of the specified process. -.It PT_CLEARSTEP +.It Dv PT_CLEARSTEP This request will turn off single stepping of the specified process. -.It PT_SUSPEND +.It Dv PT_SUSPEND This request will suspend the specified thread. -.It PT_RESUME +.It Dv PT_RESUME This request will resume the specified thread. -.It PT_TO_SCE +.It Dv PT_TO_SCE This request will set the .Dv PTRACE_SCE event flag to trace all future system call entries and continue the process. @@ -622,7 +622,7 @@ and .Fa data arguments are used the same as for .Dv PT_CONTINUE. -.It PT_TO_SCX +.It Dv PT_TO_SCX This request will set the .Dv PTRACE_SCX event flag to trace all future system call exits and continue the process. @@ -632,7 +632,7 @@ and .Fa data arguments are used the same as for .Dv PT_CONTINUE. -.It PT_SYSCALL +.It Dv PT_SYSCALL This request will set the .Dv PTRACE_SYSCALL event flag to trace all future system call entries and exits and continue @@ -643,7 +643,7 @@ and .Fa data arguments are used the same as for .Dv PT_CONTINUE. -.It PT_FOLLOW_FORK +.It Dv PT_FOLLOW_FORK This request controls tracing for new child processes of a traced process. If .Fa data @@ -655,7 +655,7 @@ If is zero, .Dv PTRACE_FORK is cleared from the traced process's event tracing mask. -.It PT_LWP_EVENTS +.It Dv PT_LWP_EVENTS This request controls tracing of LWP creation and destruction. If .Fa data @@ -667,25 +667,25 @@ If is zero, .Dv PTRACE_LWP is cleared from the traced process's event tracing mask. -.It PT_GET_EVENT_MASK +.It Dv PT_GET_EVENT_MASK This request reads the traced process's event tracing mask into the integer pointed to by .Fa addr . The size of the integer must be passed in .Fa data . -.It PT_SET_EVENT_MASK +.It Dv PT_SET_EVENT_MASK This request sets the traced process's event tracing mask from the integer pointed to by .Fa addr . The size of the integer must be passed in .Fa data . -.It PT_VM_TIMESTAMP +.It Dv PT_VM_TIMESTAMP This request returns the generation number or timestamp of the memory map of the traced process as the return value from .Fn ptrace . This provides a low-cost way for the tracing process to determine if the VM map changed since the last time this request was made. -.It PT_VM_ENTRY +.It Dv PT_VM_ENTRY This request is used to iterate over the entries of the VM map of the traced process. The @@ -900,19 +900,29 @@ argument is ignored. .Pp Additionally, other machine-specific requests can exist. .Sh RETURN VALUES +Most requests return 0 on success and \-1 on error. Some requests can cause .Fn ptrace to return \-1 -as a non-error value; to disambiguate, +as a non-error value, among them are +.Dv PT_READ_I +and +.Dv PT_READ_D , +which return the value read from the process memory on success. +To disambiguate, .Va errno -is set to 0 in the libc wrapper for the -.Fn ptrace -system call and +can be set to 0 before the call and checked afterwards. +.Pp +The current .Fn ptrace -callers can reliably check +implementation always sets +.Va errno +to 0 before calling into the kernel, both for historic reasons and for +consistency with other operating systems. +It is recommended to assign zero to .Va errno -for non-zero value afterwards. +explicitly for forward compatibility. .Sh ERRORS The .Fn ptrace Modified: projects/clang390-import/sys/boot/efi/libefi/efi_console.c ============================================================================== --- projects/clang390-import/sys/boot/efi/libefi/efi_console.c Mon Aug 29 20:51:34 2016 (r305028) +++ projects/clang390-import/sys/boot/efi/libefi/efi_console.c Mon Aug 29 20:57:09 2016 (r305029) @@ -51,6 +51,9 @@ void HO(void); void end_term(void); #endif +static EFI_INPUT_KEY key_cur; +static int key_pending; + static void efi_cons_probe(struct console *); static int efi_cons_init(int); void efi_cons_putchar(int); @@ -436,14 +439,20 @@ efi_cons_getchar() EFI_STATUS status; UINTN junk; - /* Try to read a key stroke. We wait for one if none is pending. */ - status = conin->ReadKeyStroke(conin, &key); - while (status == EFI_NOT_READY) { - /* Some EFI implementation (u-boot for example) do not support WaitForKey */ - if (conin->WaitForKey != NULL) - BS->WaitForEvent(1, &conin->WaitForKey, &junk); + if (key_pending) { + key = key_cur; + key_pending = 0; + } else { + /* Try to read a key stroke. We wait for one if none is pending. */ status = conin->ReadKeyStroke(conin, &key); + while (status == EFI_NOT_READY) { + /* Some EFI implementation (u-boot for example) do not support WaitForKey */ + if (conin->WaitForKey != NULL) + BS->WaitForEvent(1, &conin->WaitForKey, &junk); + status = conin->ReadKeyStroke(conin, &key); + } } + switch (key.ScanCode) { case 0x17: /* ESC */ return (0x1b); /* esc */ @@ -456,9 +465,20 @@ efi_cons_getchar() int efi_cons_poll() { + EFI_INPUT_KEY key; + EFI_STATUS status; + + if (conin->WaitForKey == NULL) { + if (key_pending) + return (1); + status = conin->ReadKeyStroke(conin, &key); + if (status == EFI_SUCCESS) { + key_cur = key; + key_pending = 1; + } + return (key_pending); + } - if (conin->WaitForKey == NULL) - return (1); /* This can clear the signaled state. */ return (BS->CheckEvent(conin->WaitForKey) == EFI_SUCCESS); } Modified: projects/clang390-import/sys/dev/ioat/ioat.c ============================================================================== --- projects/clang390-import/sys/dev/ioat/ioat.c Mon Aug 29 20:51:34 2016 (r305028) +++ projects/clang390-import/sys/dev/ioat/ioat.c Mon Aug 29 20:57:09 2016 (r305029) @@ -683,7 +683,16 @@ ioat_process_events(struct ioat_softc *i __func__, ioat->chan_idx, comp_update, ioat->last_seen); status = comp_update & IOAT_CHANSTS_COMPLETED_DESCRIPTOR_MASK; - while (ioat_get_active(ioat) > 0) { + if (status == ioat->last_seen) { + /* + * If we landed in process_events and nothing has been + * completed, check for a timeout due to channel halt. + */ + goto out; + } + + desc = ioat_get_ring_entry(ioat, ioat->tail - 1); + while (desc->hw_desc_bus_addr != status && ioat_get_active(ioat) > 0) { desc = ioat_get_ring_entry(ioat, ioat->tail); dmadesc = &desc->bus_dmadesc; CTR4(KTR_IOAT, "channel=%u completing desc %u ok cb %p(%p)", @@ -695,8 +704,6 @@ ioat_process_events(struct ioat_softc *i completed++; ioat->tail++; - if (desc->hw_desc_bus_addr == status) - break; } if (completed != 0) { @@ -704,6 +711,7 @@ ioat_process_events(struct ioat_softc *i ioat->stats.descriptors_processed += completed; } +out: ioat_write_chanctrl(ioat, IOAT_CHANCTRL_RUN); /* Perform a racy check first; only take the locks if it passes. */ @@ -1823,6 +1831,9 @@ ioat_reset_hw(struct ioat_softc *ioat) ioat->resetting_cleanup = TRUE; mtx_unlock(&ioat->cleanup_lock); + CTR2(KTR_IOAT, "%s channel=%u quiesced and drained", __func__, + ioat->chan_idx); + status = ioat_get_chansts(ioat); if (is_ioat_active(status) || is_ioat_idle(status)) ioat_suspend(ioat); @@ -1843,6 +1854,9 @@ ioat_reset_hw(struct ioat_softc *ioat) chanerr = ioat_read_4(ioat, IOAT_CHANERR_OFFSET); ioat_write_4(ioat, IOAT_CHANERR_OFFSET, chanerr); + CTR2(KTR_IOAT, "%s channel=%u hardware suspended", __func__, + ioat->chan_idx); + /* * IOAT v3 workaround - CHANERRMSK_INT with 3E07h to masks out errors * that can cause stability issues for IOAT v3. @@ -1862,6 +1876,8 @@ ioat_reset_hw(struct ioat_softc *ioat) } ioat_reset(ioat); + CTR2(KTR_IOAT, "%s channel=%u hardware reset", __func__, + ioat->chan_idx); /* Wait at most 20 ms */ for (timeout = 0; ioat_reset_pending(ioat) && timeout < 20; timeout++) @@ -1911,21 +1927,24 @@ ioat_reset_hw(struct ioat_softc *ioat) ioat_write_chancmp(ioat, ioat->comp_update_bus_addr); ioat_write_chainaddr(ioat, ioat->ring[0]->hw_desc_bus_addr); error = 0; + CTR2(KTR_IOAT, "%s channel=%u configured channel", __func__, + ioat->chan_idx); out: + /* Enqueues a null operation and ensures it completes. */ + if (error == 0) { + error = ioat_start_channel(ioat); + CTR2(KTR_IOAT, "%s channel=%u started channel", __func__, + ioat->chan_idx); + } + /* * Resume completions now that ring state is consistent. - * ioat_start_channel will add a pending completion and if we are still - * blocking completions, we may livelock. */ mtx_lock(&ioat->cleanup_lock); ioat->resetting_cleanup = FALSE; mtx_unlock(&ioat->cleanup_lock); - /* Enqueues a null operation and ensures it completes. */ - if (error == 0) - error = ioat_start_channel(ioat); - /* Unblock submission of new work */ mtx_lock(IOAT_REFLK); ioat->quiescing = FALSE; @@ -1933,6 +1952,11 @@ out: ioat->resetting = FALSE; wakeup(&ioat->resetting); + + if (ioat->is_completion_pending) + callout_reset(&ioat->poll_timer, 1, ioat_poll_timer_callback, + ioat); + CTR2(KTR_IOAT, "%s channel=%u reset done", __func__, ioat->chan_idx); mtx_unlock(IOAT_REFLK); return (error); Modified: projects/clang390-import/usr.sbin/bluetooth/btpand/bnep.c ============================================================================== --- projects/clang390-import/usr.sbin/bluetooth/btpand/bnep.c Mon Aug 29 20:51:34 2016 (r305028) +++ projects/clang390-import/usr.sbin/bluetooth/btpand/bnep.c Mon Aug 29 20:57:09 2016 (r305029) @@ -574,7 +574,7 @@ bnep_recv_filter_multi_addr_rsp(channel_ } void -bnep_send_control(channel_t *chan, uint8_t type, ...) +bnep_send_control(channel_t *chan, unsigned type, ...) { packet_t *pkt; uint8_t *p; @@ -590,7 +590,7 @@ bnep_send_control(channel_t *chan, uint8 va_start(ap, type); *p++ = BNEP_CONTROL; - *p++ = type; + *p++ = (uint8_t)type; switch(type) { case BNEP_CONTROL_COMMAND_NOT_UNDERSTOOD: Modified: projects/clang390-import/usr.sbin/bluetooth/btpand/btpand.h ============================================================================== --- projects/clang390-import/usr.sbin/bluetooth/btpand/btpand.h Mon Aug 29 20:51:34 2016 (r305028) +++ projects/clang390-import/usr.sbin/bluetooth/btpand/btpand.h Mon Aug 29 20:57:09 2016 (r305029) @@ -183,7 +183,7 @@ b2eaddr(void *dst, bdaddr_t *src) /* bnep.c */ bool bnep_send(channel_t *, packet_t *); bool bnep_recv(packet_t *); -void bnep_send_control(channel_t *, uint8_t, ...); +void bnep_send_control(channel_t *, unsigned, ...); /* channel.c */ void channel_init(void); From owner-svn-src-projects@freebsd.org Mon Aug 29 22:34:32 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFAD2B798BD for ; Mon, 29 Aug 2016 22:34:32 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 82945983; Mon, 29 Aug 2016 22:34:32 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7TMYVqa045912; Mon, 29 Aug 2016 22:34:31 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7TMYVmB045911; Mon, 29 Aug 2016 22:34:31 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201608292234.u7TMYVmB045911@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 29 Aug 2016 22:34:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305030 - projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Aug 2016 22:34:32 -0000 Author: ngie Date: Mon Aug 29 22:34:31 2016 New Revision: 305030 URL: https://svnweb.freebsd.org/changeset/base/305030 Log: Fix typo atf_tc_expect_fail should have been atf_expect_fail per atf-sh-api(3) PR: 212193 Pointyhat to: ngie Sponsored by: EMC / Isilon Storage Division Modified: projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh Modified: projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh ============================================================================== --- projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh Mon Aug 29 20:57:09 2016 (r305029) +++ projects/netbsd-tests-update-12/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh Mon Aug 29 22:34:31 2016 (r305030) @@ -33,7 +33,7 @@ basic_head() basic_body() { # Begin FreeBSD - atf_tc_expect_fail "dirname //usr//bin doesn't return //usr like it used to; bug # 212193" + atf_expect_fail "dirname //usr//bin doesn't return //usr like it used to; bug # 212193" # End FreeBSD atf_check -o inline:"/\n" dirname / atf_check -o inline:"/\n" dirname // From owner-svn-src-projects@freebsd.org Tue Aug 30 02:07:19 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CA1DBC8A90 for ; Tue, 30 Aug 2016 02:07:19 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9EA2BB6B; Tue, 30 Aug 2016 02:07:18 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7U27HT8025958; Tue, 30 Aug 2016 02:07:17 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7U27Ge0025939; Tue, 30 Aug 2016 02:07:16 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201608300207.u7U27Ge0025939@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Tue, 30 Aug 2016 02:07:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305042 - in projects/netbsd-tests-update-12: lib/atf/libatf-c lib/atf/libatf-c++ lib/libc/sys lib/libdevctl sys/arm/ti sys/boot/efi/libefi sys/boot/powerpc/boot1.chrp sys/dev/cxgbe sys... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 02:07:19 -0000 Author: ngie Date: Tue Aug 30 02:07:15 2016 New Revision: 305042 URL: https://svnweb.freebsd.org/changeset/base/305042 Log: MFhead @ r305041 Modified: projects/netbsd-tests-update-12/lib/atf/libatf-c++/Makefile projects/netbsd-tests-update-12/lib/atf/libatf-c/Makefile projects/netbsd-tests-update-12/lib/libc/sys/ptrace.2 projects/netbsd-tests-update-12/lib/libdevctl/devctl.3 projects/netbsd-tests-update-12/lib/libdevctl/devctl.c projects/netbsd-tests-update-12/lib/libdevctl/devctl.h projects/netbsd-tests-update-12/sys/arm/ti/ti_pruss.c projects/netbsd-tests-update-12/sys/boot/efi/libefi/efi_console.c projects/netbsd-tests-update-12/sys/boot/powerpc/boot1.chrp/boot1.c projects/netbsd-tests-update-12/sys/dev/cxgbe/t4_iov.c projects/netbsd-tests-update-12/sys/dev/ioat/ioat.c projects/netbsd-tests-update-12/sys/dev/tsec/if_tsec.h projects/netbsd-tests-update-12/sys/dev/tsec/if_tsec_fdt.c projects/netbsd-tests-update-12/sys/kern/subr_bus.c projects/netbsd-tests-update-12/sys/sys/bus.h projects/netbsd-tests-update-12/usr.sbin/bluetooth/btpand/bnep.c projects/netbsd-tests-update-12/usr.sbin/bluetooth/btpand/btpand.h projects/netbsd-tests-update-12/usr.sbin/devctl/devctl.8 projects/netbsd-tests-update-12/usr.sbin/devctl/devctl.c Directory Properties: projects/netbsd-tests-update-12/ (props changed) Modified: projects/netbsd-tests-update-12/lib/atf/libatf-c++/Makefile ============================================================================== --- projects/netbsd-tests-update-12/lib/atf/libatf-c++/Makefile Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/lib/atf/libatf-c++/Makefile Tue Aug 30 02:07:15 2016 (r305042) @@ -35,15 +35,15 @@ SHLIB_MAJOR= 2 # libatf-c++ depends on the C version of the ATF library to build. LIBADD+= atf_c -LDFLAGS+= -L${.OBJDIR}/../libatf-c +LDFLAGS+= -L${.OBJDIR:H}/libatf-c -ATF= ${.CURDIR:H:H:H}/contrib/atf +ATF= ${SRCTOP}/contrib/atf .PATH: ${ATF} .PATH: ${ATF}/atf-c++ .PATH: ${ATF}/atf-c++/detail CFLAGS+= -I${ATF} -CFLAGS+= -I${.CURDIR}/../libatf-c +CFLAGS+= -I${.CURDIR:H}/libatf-c CFLAGS+= -I. CFLAGS+= -DHAVE_CONFIG_H Modified: projects/netbsd-tests-update-12/lib/atf/libatf-c/Makefile ============================================================================== --- projects/netbsd-tests-update-12/lib/atf/libatf-c/Makefile Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/lib/atf/libatf-c/Makefile Tue Aug 30 02:07:15 2016 (r305042) @@ -28,25 +28,25 @@ .include .include -_CFLAGS:= ${CFLAGS} -_CPPFLAGS:= ${CPPFLAGS} -_CXXFLAGS:= ${CXXFLAGS} +ATF_BUILD_CFLAGS:= ${CFLAGS:M-[DILOWf]*} +ATF_BUILD_CPPFLAGS:= ${CPPFLAGS:M-[DILOWf]*} +ATF_BUILD_CXXFLAGS:= ${CXXFLAGS:M-[DILOWf]*} LIB= atf-c PRIVATELIB= true SHLIB_MAJOR= 1 -ATF= ${.CURDIR:H:H:H}/contrib/atf +ATF= ${SRCTOP}/contrib/atf .PATH: ${ATF} .PATH: ${ATF}/atf-c .PATH: ${ATF}/atf-c/detail CFLAGS+= -DATF_BUILD_CC='"${CC}"' -CFLAGS+= -DATF_BUILD_CFLAGS='"${_CFLAGS}"' +CFLAGS+= -DATF_BUILD_CFLAGS='"${ATF_BUILD_CFLAGS}"' CFLAGS+= -DATF_BUILD_CPP='"${CPP}"' -CFLAGS+= -DATF_BUILD_CPPFLAGS='"${_CPPFLAGS}"' +CFLAGS+= -DATF_BUILD_CPPFLAGS='"${ATF_BUILD_CPPFLAGS}"' CFLAGS+= -DATF_BUILD_CXX='"${CXX}"' -CFLAGS+= -DATF_BUILD_CXXFLAGS='"${_CXXFLAGS}"' +CFLAGS+= -DATF_BUILD_CXXFLAGS='"${ATF_BUILD_CXXFLAGS}"' CFLAGS+= -I${ATF} CFLAGS+= -I${.CURDIR} CFLAGS+= -I. Modified: projects/netbsd-tests-update-12/lib/libc/sys/ptrace.2 ============================================================================== --- projects/netbsd-tests-update-12/lib/libc/sys/ptrace.2 Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/lib/libc/sys/ptrace.2 Tue Aug 30 02:07:15 2016 (r305042) @@ -2,7 +2,7 @@ .\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. -.Dd August 28, 2016 +.Dd August 29, 2016 .Dt PTRACE 2 .Os .Sh NAME @@ -104,7 +104,7 @@ Each traced process has a tracing event An event in the traced process only reports a signal stop if the corresponding flag is set in the tracing event mask. The current set of tracing event flags include: -.Bl -tag -width ".Dv PTRACE_SYSCALL" +.Bl -tag -width "Dv PTRACE_SYSCALL" .It Dv PTRACE_EXEC Report a stop for a successful invocation of .Xr execve 2 . @@ -231,7 +231,7 @@ The .Fa request argument can be: -.Bl -tag -width 12n +.Bl -tag -width "Dv PT_GET_EVENT_MASK" .It Dv PT_TRACE_ME This request is the only one used by the traced process; it declares that the process expects to be traced by its parent. @@ -469,31 +469,31 @@ The fields in the .Vt "struct ptrace_lwpinfo" have the following meaning: .Bl -tag -width indent -compact -.It pl_lwpid +.It Va pl_lwpid LWP id of the thread -.It pl_event +.It Va pl_event Event that caused the stop. -Currently defined events are -.Bl -tag -width indent -compact -.It PL_EVENT_NONE +Currently defined events are: +.Bl -tag -width "Dv PL_EVENT_SIGNAL" -compact +.It Dv PL_EVENT_NONE No reason given -.It PL_EVENT_SIGNAL +.It Dv PL_EVENT_SIGNAL Thread stopped due to the pending signal .El -.It pl_flags +.It Va pl_flags Flags that specify additional details about observed stop. Currently defined flags are: .Bl -tag -width indent -compact -.It PL_FLAG_SCE +.It Dv PL_FLAG_SCE The thread stopped due to system call entry, right after the kernel is entered. The debugger may examine syscall arguments that are stored in memory and registers according to the ABI of the current process, and modify them, if needed. -.It PL_FLAG_SCX +.It Dv PL_FLAG_SCX The thread is stopped immediately before syscall is returning to the usermode. The debugger may examine system call return values in the ABI-defined registers and/or memory. -.It PL_FLAG_EXEC +.It Dv PL_FLAG_EXEC When .Dv PL_FLAG_SCX is set, this flag may be additionally specified to inform that the @@ -501,13 +501,13 @@ program being executed by debuggee proce execution of a system call from the .Fn execve 2 family. -.It PL_FLAG_SI +.It Dv PL_FLAG_SI Indicates that .Va pl_siginfo member of .Vt "struct ptrace_lwpinfo" contains valid information. -.It PL_FLAG_FORKED +.It Dv PL_FLAG_FORKED Indicates that the process is returning from a call to .Fn fork 2 that created a new child process. @@ -515,42 +515,42 @@ The process identifier of the new proces .Va pl_child_pid member of .Vt "struct ptrace_lwpinfo" . -.It PL_FLAG_CHILD +.It Dv PL_FLAG_CHILD The flag is set for first event reported from a new child which is automatically attached when .Dv PTRACE_FORK is enabled. -.It PL_FLAG_BORN +.It Dv PL_FLAG_BORN This flag is set for the first event reported from a new LWP when .Dv PTRACE_LWP is enabled. It is reported along with .Dv PL_FLAG_SCX . -.It PL_FLAG_EXITED +.It Dv PL_FLAG_EXITED This flag is set for the last event reported by an exiting LWP when .Dv PTRACE_LWP is enabled. Note that this event is not reported when the last LWP in a process exits. The termination of the last thread is reported via a normal process exit event. -.It PL_FLAG_VFORKED +.It Dv PL_FLAG_VFORKED Indicates that the thread is returning from a call to .Xr vfork 2 that created a new child process. This flag is set in addition to .Dv PL_FLAG_FORKED . -.It PL_FLAG_VFORK_DONE +.It Dv PL_FLAG_VFORK_DONE Indicates that the thread has resumed after a child process created via .Xr vfork 2 has stopped sharing its address space with the traced process. .El -.It pl_sigmask +.It Va pl_sigmask The current signal mask of the LWP -.It pl_siglist +.It Va pl_siglist The current pending set of signals for the LWP. Note that signals that are delivered to the process would not appear on an LWP siglist until the thread is selected for delivery. -.It pl_siginfo +.It Va pl_siginfo The siginfo that accompanies the signal pending. Only valid for .Dv PL_EVENT_SIGNAL @@ -558,9 +558,9 @@ stop when .Dv PL_FLAG_SI is set in .Va pl_flags . -.It pl_tdname +.It Va pl_tdname The name of the thread. -.It pl_child_pid +.It Va pl_child_pid The process identifier of the new child process. Only valid for a .Dv PL_EVENT_SIGNAL @@ -568,7 +568,7 @@ stop when .Dv PL_FLAG_FORKED is set in .Va pl_flags . -.It pl_syscall_code +.It Va pl_syscall_code The ABI-specific identifier of the current system call. Note that for indirect system calls this field reports the indirected system call. @@ -578,7 +578,7 @@ or .Dv PL_FLAG_SCX is set in .Va pl_flags. -.It pl_syscall_narg +.It Va pl_syscall_narg The number of arguments passed to the current system call not counting the system call identifier. Note that for indirect system calls this field reports the arguments @@ -590,10 +590,10 @@ or is set in .Va pl_flags. .El -.It PT_GETNUMLWPS +.It Dv PT_GETNUMLWPS This request returns the number of kernel threads associated with the traced process. -.It PT_GETLWPLIST +.It Dv PT_GETLWPLIST This request can be used to get the current thread list. A pointer to an array of type .Vt lwpid_t @@ -604,15 +604,15 @@ with the array size specified by The return value from .Fn ptrace is the count of array entries filled in. -.It PT_SETSTEP +.It Dv PT_SETSTEP This request will turn on single stepping of the specified process. -.It PT_CLEARSTEP +.It Dv PT_CLEARSTEP This request will turn off single stepping of the specified process. -.It PT_SUSPEND +.It Dv PT_SUSPEND This request will suspend the specified thread. -.It PT_RESUME +.It Dv PT_RESUME This request will resume the specified thread. -.It PT_TO_SCE +.It Dv PT_TO_SCE This request will set the .Dv PTRACE_SCE event flag to trace all future system call entries and continue the process. @@ -622,7 +622,7 @@ and .Fa data arguments are used the same as for .Dv PT_CONTINUE. -.It PT_TO_SCX +.It Dv PT_TO_SCX This request will set the .Dv PTRACE_SCX event flag to trace all future system call exits and continue the process. @@ -632,7 +632,7 @@ and .Fa data arguments are used the same as for .Dv PT_CONTINUE. -.It PT_SYSCALL +.It Dv PT_SYSCALL This request will set the .Dv PTRACE_SYSCALL event flag to trace all future system call entries and exits and continue @@ -643,7 +643,7 @@ and .Fa data arguments are used the same as for .Dv PT_CONTINUE. -.It PT_FOLLOW_FORK +.It Dv PT_FOLLOW_FORK This request controls tracing for new child processes of a traced process. If .Fa data @@ -655,7 +655,7 @@ If is zero, .Dv PTRACE_FORK is cleared from the traced process's event tracing mask. -.It PT_LWP_EVENTS +.It Dv PT_LWP_EVENTS This request controls tracing of LWP creation and destruction. If .Fa data @@ -667,25 +667,25 @@ If is zero, .Dv PTRACE_LWP is cleared from the traced process's event tracing mask. -.It PT_GET_EVENT_MASK +.It Dv PT_GET_EVENT_MASK This request reads the traced process's event tracing mask into the integer pointed to by .Fa addr . The size of the integer must be passed in .Fa data . -.It PT_SET_EVENT_MASK +.It Dv PT_SET_EVENT_MASK This request sets the traced process's event tracing mask from the integer pointed to by .Fa addr . The size of the integer must be passed in .Fa data . -.It PT_VM_TIMESTAMP +.It Dv PT_VM_TIMESTAMP This request returns the generation number or timestamp of the memory map of the traced process as the return value from .Fn ptrace . This provides a low-cost way for the tracing process to determine if the VM map changed since the last time this request was made. -.It PT_VM_ENTRY +.It Dv PT_VM_ENTRY This request is used to iterate over the entries of the VM map of the traced process. The @@ -900,19 +900,29 @@ argument is ignored. .Pp Additionally, other machine-specific requests can exist. .Sh RETURN VALUES +Most requests return 0 on success and \-1 on error. Some requests can cause .Fn ptrace to return \-1 -as a non-error value; to disambiguate, +as a non-error value, among them are +.Dv PT_READ_I +and +.Dv PT_READ_D , +which return the value read from the process memory on success. +To disambiguate, .Va errno -is set to 0 in the libc wrapper for the -.Fn ptrace -system call and +can be set to 0 before the call and checked afterwards. +.Pp +The current .Fn ptrace -callers can reliably check +implementation always sets +.Va errno +to 0 before calling into the kernel, both for historic reasons and for +consistency with other operating systems. +It is recommended to assign zero to .Va errno -for non-zero value afterwards. +explicitly for forward compatibility. .Sh ERRORS The .Fn ptrace Modified: projects/netbsd-tests-update-12/lib/libdevctl/devctl.3 ============================================================================== --- projects/netbsd-tests-update-12/lib/libdevctl/devctl.3 Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/lib/libdevctl/devctl.3 Tue Aug 30 02:07:15 2016 (r305042) @@ -25,12 +25,13 @@ .\" .\" $FreeBSD$ .\" -.Dd April 27, 2016 +.Dd August 29, 2016 .Dt DEVCTL 3 .Os .Sh NAME .Nm devctl , .Nm devctl_attach , +.Nm devctl_clear_driver , .Nm devctl_delete , .Nm devctl_detach , .Nm devctl_disable , @@ -47,6 +48,8 @@ .Ft int .Fn devctl_attach "const char *device" .Ft int +.Fn devctl_clear_driver "const char *device" "bool force" +.Ft int .Fn devctl_delete "const char *device" "bool force" .Ft int .Fn devctl_detach "const char *device" "bool force" @@ -166,12 +169,30 @@ the device will be detached from its cur attached to the new device driver. .Pp The +.Fn devctl_clear_driver +function resets a device so that it can be attached to any valid device +driver rather than only drivers with a previously specified name. +This function is used to undo a previous call to +.Fn devctl_set_driver . +If the device is already attached and +.Fa force +is false, +the request will fail. +If the device is already attached and +.Fa force +is true, +the device will be detached from its current device driver. +After the device's name is reset, +it is reprobed and attached to a suitable device driver if one is found. +.Pp +The .Fn devctl_rescan function rescans a bus device checking for devices that have been added or removed. .Sh RETURN VALUES -.Rv -std devctl_attach devctl_delete devctl_detach devctl_disable \ -devctl_enable devctl_suspend devctl_rescan devctl_resume devctl_set_driver +.Rv -std devctl_attach devctl_clear_driver devctl_delete devctl_detach \ +devctl_disable devctl_enable devctl_suspend devctl_rescan devctl_resume \ +devctl_set_driver .Sh ERRORS In addition to specific errors noted below, all of the @@ -302,6 +323,24 @@ The new device driver failed to attach. .El .Pp The +.Fn devctl_clear_driver +function may fail if: +.Bl -tag -width Er +.It Bq Er EBUSY +The device is currently attached to a device driver and +.Fa force +is false. +.It Bq Er EBUSY +The current device driver for +.Fa device +is busy and cannot detach at this time. +.It Bq Er EINVAL +The device is not configured for a specific device driver name. +.It Bq Er ENXIO +The device driver chosen after reprobing failed to attach. +.El +.Pp +The .Fn devctl_rescan function may fail if: .Bl -tag -width Er Modified: projects/netbsd-tests-update-12/lib/libdevctl/devctl.c ============================================================================== --- projects/netbsd-tests-update-12/lib/libdevctl/devctl.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/lib/libdevctl/devctl.c Tue Aug 30 02:07:15 2016 (r305042) @@ -124,6 +124,14 @@ devctl_set_driver(const char *device, co } int +devctl_clear_driver(const char *device, bool force) +{ + + return (devctl_simple_request(DEV_CLEAR_DRIVER, device, force ? + DEVF_CLEAR_DRIVER_DETACH : 0)); +} + +int devctl_rescan(const char *device) { Modified: projects/netbsd-tests-update-12/lib/libdevctl/devctl.h ============================================================================== --- projects/netbsd-tests-update-12/lib/libdevctl/devctl.h Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/lib/libdevctl/devctl.h Tue Aug 30 02:07:15 2016 (r305042) @@ -38,6 +38,7 @@ int devctl_disable(const char *device, b int devctl_suspend(const char *device); int devctl_resume(const char *device); int devctl_set_driver(const char *device, const char *driver, bool force); +int devctl_clear_driver(const char *device, bool force); int devctl_rescan(const char *device); int devctl_delete(const char *device, bool force); Modified: projects/netbsd-tests-update-12/sys/arm/ti/ti_pruss.c ============================================================================== --- projects/netbsd-tests-update-12/sys/arm/ti/ti_pruss.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/arm/ti/ti_pruss.c Tue Aug 30 02:07:15 2016 (r305042) @@ -310,7 +310,9 @@ ti_pruss_kqfilter(struct cdev *cdev, str case EVFILT_READ: kn->kn_hook = sc; kn->kn_fop = &ti_pruss_kq_read; + mtx_lock(&sc->sc_mtx); knlist_add(&sc->sc_selinfo.si_note, kn, 1); + mtx_unlock(&sc->sc_mtx); break; default: return (EINVAL); Modified: projects/netbsd-tests-update-12/sys/boot/efi/libefi/efi_console.c ============================================================================== --- projects/netbsd-tests-update-12/sys/boot/efi/libefi/efi_console.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/boot/efi/libefi/efi_console.c Tue Aug 30 02:07:15 2016 (r305042) @@ -51,6 +51,9 @@ void HO(void); void end_term(void); #endif +static EFI_INPUT_KEY key_cur; +static int key_pending; + static void efi_cons_probe(struct console *); static int efi_cons_init(int); void efi_cons_putchar(int); @@ -436,14 +439,20 @@ efi_cons_getchar() EFI_STATUS status; UINTN junk; - /* Try to read a key stroke. We wait for one if none is pending. */ - status = conin->ReadKeyStroke(conin, &key); - while (status == EFI_NOT_READY) { - /* Some EFI implementation (u-boot for example) do not support WaitForKey */ - if (conin->WaitForKey != NULL) - BS->WaitForEvent(1, &conin->WaitForKey, &junk); + if (key_pending) { + key = key_cur; + key_pending = 0; + } else { + /* Try to read a key stroke. We wait for one if none is pending. */ status = conin->ReadKeyStroke(conin, &key); + while (status == EFI_NOT_READY) { + /* Some EFI implementation (u-boot for example) do not support WaitForKey */ + if (conin->WaitForKey != NULL) + BS->WaitForEvent(1, &conin->WaitForKey, &junk); + status = conin->ReadKeyStroke(conin, &key); + } } + switch (key.ScanCode) { case 0x17: /* ESC */ return (0x1b); /* esc */ @@ -456,9 +465,20 @@ efi_cons_getchar() int efi_cons_poll() { + EFI_INPUT_KEY key; + EFI_STATUS status; + + if (conin->WaitForKey == NULL) { + if (key_pending) + return (1); + status = conin->ReadKeyStroke(conin, &key); + if (status == EFI_SUCCESS) { + key_cur = key; + key_pending = 1; + } + return (key_pending); + } - if (conin->WaitForKey == NULL) - return (1); /* This can clear the signaled state. */ return (BS->CheckEvent(conin->WaitForKey) == EFI_SUCCESS); } Modified: projects/netbsd-tests-update-12/sys/boot/powerpc/boot1.chrp/boot1.c ============================================================================== --- projects/netbsd-tests-update-12/sys/boot/powerpc/boot1.chrp/boot1.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/boot/powerpc/boot1.chrp/boot1.c Tue Aug 30 02:07:15 2016 (r305042) @@ -137,7 +137,9 @@ ofw_init(void *vpd, int res, int (*openf p = bootpath; while (*p != '\0') { + /* Truncate partition ID */ if (*p == ':') { + ofw_close(bootdev); *(++p) = '\0'; break; } @@ -419,31 +421,40 @@ main(int ac, char **av) memcpy(bootpath_full,bootpath,len+1); - if (bootpath_full[len-1] == ':') { - for (i = 0; i < 16; i++) { - if (i < 10) { - bootpath_full[len] = i + '0'; - bootpath_full[len+1] = '\0'; - } else { - bootpath_full[len] = '1'; - bootpath_full[len+1] = i - 10 + '0'; - bootpath_full[len+2] = '\0'; - } - - if (domount(bootpath_full,1) >= 0) - break; - - if (bootdev > 0) - ofw_close(bootdev); + if (bootpath_full[len-1] != ':') { + /* First try full volume */ + if (domount(bootpath_full,1) == 0) + goto out; + + /* Add a : so that we try partitions if that fails */ + if (bootdev > 0) + ofw_close(bootdev); + bootpath_full[len] = ':'; + len += 1; + } + + /* Loop through first 16 partitions to find a UFS one */ + for (i = 0; i < 16; i++) { + if (i < 10) { + bootpath_full[len] = i + '0'; + bootpath_full[len+1] = '\0'; + } else { + bootpath_full[len] = '1'; + bootpath_full[len+1] = i - 10 + '0'; + bootpath_full[len+2] = '\0'; } + + if (domount(bootpath_full,1) >= 0) + break; - if (i >= 16) - panic("domount"); - } else { - if (domount(bootpath_full,0) == -1) - panic("domount"); + if (bootdev > 0) + ofw_close(bootdev); } + if (i >= 16) + panic("domount"); + +out: printf(" Boot volume: %s\n",bootpath_full); ofw_setprop(chosenh, "bootargs", bootpath_full, len+2); load(path); Modified: projects/netbsd-tests-update-12/sys/dev/cxgbe/t4_iov.c ============================================================================== --- projects/netbsd-tests-update-12/sys/dev/cxgbe/t4_iov.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/dev/cxgbe/t4_iov.c Tue Aug 30 02:07:15 2016 (r305042) @@ -209,10 +209,15 @@ static int t4iov_detach(device_t dev) { struct t4iov_softc *sc; + int error; sc = device_get_softc(dev); - if (sc->sc_attached) - return (t4iov_detach_child(dev)); + if (sc->sc_attached) { + error = t4iov_detach_child(dev); + if (error) + return (error); + } + device_verbose(dev); return (0); } Modified: projects/netbsd-tests-update-12/sys/dev/ioat/ioat.c ============================================================================== --- projects/netbsd-tests-update-12/sys/dev/ioat/ioat.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/dev/ioat/ioat.c Tue Aug 30 02:07:15 2016 (r305042) @@ -683,7 +683,16 @@ ioat_process_events(struct ioat_softc *i __func__, ioat->chan_idx, comp_update, ioat->last_seen); status = comp_update & IOAT_CHANSTS_COMPLETED_DESCRIPTOR_MASK; - while (ioat_get_active(ioat) > 0) { + if (status == ioat->last_seen) { + /* + * If we landed in process_events and nothing has been + * completed, check for a timeout due to channel halt. + */ + goto out; + } + + desc = ioat_get_ring_entry(ioat, ioat->tail - 1); + while (desc->hw_desc_bus_addr != status && ioat_get_active(ioat) > 0) { desc = ioat_get_ring_entry(ioat, ioat->tail); dmadesc = &desc->bus_dmadesc; CTR4(KTR_IOAT, "channel=%u completing desc %u ok cb %p(%p)", @@ -695,8 +704,6 @@ ioat_process_events(struct ioat_softc *i completed++; ioat->tail++; - if (desc->hw_desc_bus_addr == status) - break; } if (completed != 0) { @@ -704,6 +711,7 @@ ioat_process_events(struct ioat_softc *i ioat->stats.descriptors_processed += completed; } +out: ioat_write_chanctrl(ioat, IOAT_CHANCTRL_RUN); /* Perform a racy check first; only take the locks if it passes. */ @@ -1823,6 +1831,9 @@ ioat_reset_hw(struct ioat_softc *ioat) ioat->resetting_cleanup = TRUE; mtx_unlock(&ioat->cleanup_lock); + CTR2(KTR_IOAT, "%s channel=%u quiesced and drained", __func__, + ioat->chan_idx); + status = ioat_get_chansts(ioat); if (is_ioat_active(status) || is_ioat_idle(status)) ioat_suspend(ioat); @@ -1843,6 +1854,9 @@ ioat_reset_hw(struct ioat_softc *ioat) chanerr = ioat_read_4(ioat, IOAT_CHANERR_OFFSET); ioat_write_4(ioat, IOAT_CHANERR_OFFSET, chanerr); + CTR2(KTR_IOAT, "%s channel=%u hardware suspended", __func__, + ioat->chan_idx); + /* * IOAT v3 workaround - CHANERRMSK_INT with 3E07h to masks out errors * that can cause stability issues for IOAT v3. @@ -1862,6 +1876,8 @@ ioat_reset_hw(struct ioat_softc *ioat) } ioat_reset(ioat); + CTR2(KTR_IOAT, "%s channel=%u hardware reset", __func__, + ioat->chan_idx); /* Wait at most 20 ms */ for (timeout = 0; ioat_reset_pending(ioat) && timeout < 20; timeout++) @@ -1911,21 +1927,24 @@ ioat_reset_hw(struct ioat_softc *ioat) ioat_write_chancmp(ioat, ioat->comp_update_bus_addr); ioat_write_chainaddr(ioat, ioat->ring[0]->hw_desc_bus_addr); error = 0; + CTR2(KTR_IOAT, "%s channel=%u configured channel", __func__, + ioat->chan_idx); out: + /* Enqueues a null operation and ensures it completes. */ + if (error == 0) { + error = ioat_start_channel(ioat); + CTR2(KTR_IOAT, "%s channel=%u started channel", __func__, + ioat->chan_idx); + } + /* * Resume completions now that ring state is consistent. - * ioat_start_channel will add a pending completion and if we are still - * blocking completions, we may livelock. */ mtx_lock(&ioat->cleanup_lock); ioat->resetting_cleanup = FALSE; mtx_unlock(&ioat->cleanup_lock); - /* Enqueues a null operation and ensures it completes. */ - if (error == 0) - error = ioat_start_channel(ioat); - /* Unblock submission of new work */ mtx_lock(IOAT_REFLK); ioat->quiescing = FALSE; @@ -1933,6 +1952,11 @@ out: ioat->resetting = FALSE; wakeup(&ioat->resetting); + + if (ioat->is_completion_pending) + callout_reset(&ioat->poll_timer, 1, ioat_poll_timer_callback, + ioat); + CTR2(KTR_IOAT, "%s channel=%u reset done", __func__, ioat->chan_idx); mtx_unlock(IOAT_REFLK); return (error); Modified: projects/netbsd-tests-update-12/sys/dev/tsec/if_tsec.h ============================================================================== --- projects/netbsd-tests-update-12/sys/dev/tsec/if_tsec.h Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/dev/tsec/if_tsec.h Tue Aug 30 02:07:15 2016 (r305042) @@ -135,6 +135,7 @@ struct tsec_softc { int phyaddr; bus_space_tag_t phy_bst; bus_space_handle_t phy_bsh; + int phy_regoff; }; /* interface to get/put generic objects */ @@ -258,9 +259,11 @@ extern struct mtx tsec_phy_mtx; #define TSEC_PHY_LOCK(sc) mtx_lock(&tsec_phy_mtx) #define TSEC_PHY_UNLOCK(sc) mtx_unlock(&tsec_phy_mtx) #define TSEC_PHY_READ(sc, reg) \ - bus_space_read_4((sc)->phy_bst, (sc)->phy_bsh, (reg)) + bus_space_read_4((sc)->phy_bst, (sc)->phy_bsh, \ + (reg) + (sc)->phy_regoff) #define TSEC_PHY_WRITE(sc, reg, val) \ - bus_space_write_4((sc)->phy_bst, (sc)->phy_bsh, (reg), (val)) + bus_space_write_4((sc)->phy_bst, (sc)->phy_bsh, \ + (reg) + (sc)->phy_regoff, (val)) /* Lock for transmitter */ #define TSEC_TRANSMIT_LOCK(sc) do { \ Modified: projects/netbsd-tests-update-12/sys/dev/tsec/if_tsec_fdt.c ============================================================================== --- projects/netbsd-tests-update-12/sys/dev/tsec/if_tsec_fdt.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/dev/tsec/if_tsec_fdt.c Tue Aug 30 02:07:15 2016 (r305042) @@ -121,25 +121,33 @@ tsec_fdt_probe(device_t dev) sc = device_get_softc(dev); - sc->sc_rrid = 0; - sc->sc_rres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->sc_rrid, - RF_ACTIVE); - if (sc->sc_rres == NULL) - return (ENXIO); - - sc->sc_bas.bsh = rman_get_bushandle(sc->sc_rres); - sc->sc_bas.bst = rman_get_bustag(sc->sc_rres); - - /* Check if we are eTSEC (enhanced TSEC) */ - id = TSEC_READ(sc, TSEC_REG_ID); - sc->is_etsec = ((id >> 16) == TSEC_ETSEC_ID) ? 1 : 0; - id |= TSEC_READ(sc, TSEC_REG_ID2); - - bus_release_resource(dev, SYS_RES_MEMORY, sc->sc_rrid, sc->sc_rres); - - if (id == 0) { - device_printf(dev, "could not identify TSEC type\n"); - return (ENXIO); + /* + * Device trees with "fsl,etsec2" compatible nodes don't have a reg + * property, as it's been relegated to the queue-group children. + */ + if (ofw_bus_is_compatible(dev, "fsl,etsec2")) + sc->is_etsec = 1; + else { + sc->sc_rrid = 0; + sc->sc_rres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->sc_rrid, + RF_ACTIVE); + if (sc->sc_rres == NULL) + return (ENXIO); + + sc->sc_bas.bsh = rman_get_bushandle(sc->sc_rres); + sc->sc_bas.bst = rman_get_bustag(sc->sc_rres); + + /* Check if we are eTSEC (enhanced TSEC) */ + id = TSEC_READ(sc, TSEC_REG_ID); + sc->is_etsec = ((id >> 16) == TSEC_ETSEC_ID) ? 1 : 0; + id |= TSEC_READ(sc, TSEC_REG_ID2); + + bus_release_resource(dev, SYS_RES_MEMORY, sc->sc_rrid, sc->sc_rres); + + if (id == 0) { + device_printf(dev, "could not identify TSEC type\n"); + return (ENXIO); + } } if (sc->is_etsec) @@ -154,13 +162,31 @@ static int tsec_fdt_attach(device_t dev) { struct tsec_softc *sc; - phandle_t phy; + struct resource_list *rl; + phandle_t child, mdio, phy; + int acells, scells; int error = 0; sc = device_get_softc(dev); sc->dev = dev; sc->node = ofw_bus_get_node(dev); + if (fdt_addrsize_cells(sc->node, &acells, &scells) != 0) { + acells = 1; + scells = 1; + } + if (ofw_bus_is_compatible(dev, "fsl,etsec2")) { + rl = BUS_GET_RESOURCE_LIST(device_get_parent(dev), dev); + + /* + * TODO: Add all children resources to the list. Will be + * required to support multigroup mode. + */ + child = OF_child(sc->node); + ofw_bus_reg_to_rl(dev, child, acells, scells, rl); + ofw_bus_intr_to_rl(dev, child, rl, NULL); + } + /* Get phy address from fdt */ if (OF_getencprop(sc->node, "phy-handle", &phy, sizeof(phy)) <= 0) { device_printf(dev, "PHY not found in device tree"); @@ -168,9 +194,17 @@ tsec_fdt_attach(device_t dev) } phy = OF_node_from_xref(phy); - OF_decode_addr(OF_parent(phy), 0, &sc->phy_bst, &sc->phy_bsh, NULL); + mdio = OF_parent(phy); + OF_decode_addr(mdio, 0, &sc->phy_bst, &sc->phy_bsh, NULL); OF_getencprop(phy, "reg", &sc->phyaddr, sizeof(sc->phyaddr)); + /* + * etsec2 MDIO nodes are given the MDIO module base address, so we need + * to add the MII offset to get the PHY registers. + */ + if (ofw_bus_node_is_compatible(mdio, "fsl,etsec2-mdio")) + sc->phy_regoff = TSEC_REG_MIIBASE; + /* Init timer */ callout_init(&sc->tsec_callout, 1); Modified: projects/netbsd-tests-update-12/sys/kern/subr_bus.c ============================================================================== --- projects/netbsd-tests-update-12/sys/kern/subr_bus.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/kern/subr_bus.c Tue Aug 30 02:07:15 2016 (r305042) @@ -5349,6 +5349,7 @@ devctl2_ioctl(struct cdev *cdev, u_long case DEV_SUSPEND: case DEV_RESUME: case DEV_SET_DRIVER: + case DEV_CLEAR_DRIVER: case DEV_RESCAN: case DEV_DELETE: error = priv_check(td, PRIV_DRIVER); @@ -5514,6 +5515,25 @@ devctl2_ioctl(struct cdev *cdev, u_long error = device_probe_and_attach(dev); break; } + case DEV_CLEAR_DRIVER: + if (!(dev->flags & DF_FIXEDCLASS)) { + error = 0; + break; + } + if (device_is_attached(dev)) { + if (req->dr_flags & DEVF_CLEAR_DRIVER_DETACH) + error = device_detach(dev); + else + error = EBUSY; + if (error) + break; + } + + dev->flags &= ~DF_FIXEDCLASS; + dev->flags |= DF_WILDCARD; + devclass_delete_device(dev->devclass, dev); + error = device_probe_and_attach(dev); + break; case DEV_RESCAN: if (!device_is_attached(dev)) { error = ENXIO; Modified: projects/netbsd-tests-update-12/sys/sys/bus.h ============================================================================== --- projects/netbsd-tests-update-12/sys/sys/bus.h Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/sys/sys/bus.h Tue Aug 30 02:07:15 2016 (r305042) @@ -117,6 +117,7 @@ struct devreq { #define DEV_SUSPEND _IOW('D', 5, struct devreq) #define DEV_RESUME _IOW('D', 6, struct devreq) #define DEV_SET_DRIVER _IOW('D', 7, struct devreq) +#define DEV_CLEAR_DRIVER _IOW('D', 8, struct devreq) #define DEV_RESCAN _IOW('D', 9, struct devreq) #define DEV_DELETE _IOW('D', 10, struct devreq) @@ -126,6 +127,9 @@ struct devreq { /* Flags for DEV_SET_DRIVER. */ #define DEVF_SET_DRIVER_DETACH 0x0000001 /* Detach existing driver. */ +/* Flags for DEV_CLEAR_DRIVER. */ +#define DEVF_CLEAR_DRIVER_DETACH 0x0000001 /* Detach existing driver. */ + /* Flags for DEV_DELETE. */ #define DEVF_FORCE_DELETE 0x0000001 Modified: projects/netbsd-tests-update-12/usr.sbin/bluetooth/btpand/bnep.c ============================================================================== --- projects/netbsd-tests-update-12/usr.sbin/bluetooth/btpand/bnep.c Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/usr.sbin/bluetooth/btpand/bnep.c Tue Aug 30 02:07:15 2016 (r305042) @@ -574,7 +574,7 @@ bnep_recv_filter_multi_addr_rsp(channel_ } void -bnep_send_control(channel_t *chan, uint8_t type, ...) +bnep_send_control(channel_t *chan, unsigned type, ...) { packet_t *pkt; uint8_t *p; @@ -590,7 +590,7 @@ bnep_send_control(channel_t *chan, uint8 va_start(ap, type); *p++ = BNEP_CONTROL; - *p++ = type; + *p++ = (uint8_t)type; switch(type) { case BNEP_CONTROL_COMMAND_NOT_UNDERSTOOD: Modified: projects/netbsd-tests-update-12/usr.sbin/bluetooth/btpand/btpand.h ============================================================================== --- projects/netbsd-tests-update-12/usr.sbin/bluetooth/btpand/btpand.h Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/usr.sbin/bluetooth/btpand/btpand.h Tue Aug 30 02:07:15 2016 (r305042) @@ -183,7 +183,7 @@ b2eaddr(void *dst, bdaddr_t *src) /* bnep.c */ bool bnep_send(channel_t *, packet_t *); bool bnep_recv(packet_t *); -void bnep_send_control(channel_t *, uint8_t, ...); +void bnep_send_control(channel_t *, unsigned, ...); /* channel.c */ void channel_init(void); Modified: projects/netbsd-tests-update-12/usr.sbin/devctl/devctl.8 ============================================================================== --- projects/netbsd-tests-update-12/usr.sbin/devctl/devctl.8 Tue Aug 30 02:04:55 2016 (r305041) +++ projects/netbsd-tests-update-12/usr.sbin/devctl/devctl.8 Tue Aug 30 02:07:15 2016 (r305042) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 27, 2016 +.Dd August 29, 2016 .Dt DEVCTL 8 .Os .Sh NAME @@ -36,6 +36,10 @@ .Cm attach .Ar device .Nm +.Cm clear driver +.Op Fl f +.Ar device +.Nm .Cm detach .Op Fl f .Ar device @@ -133,6 +137,21 @@ If the device is already attached to a d .Fl f flag is not specified, the device will not be changed. +.It Xo Cm clear driver +.Op Fl f +.Ar device +.Xc +Clear a previously-forced driver name so that the device is able to use any +valid device driver. +After the previous name has been cleared, +the device is reprobed so that other device drivers may attach to it. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Tue Aug 30 04:49:41 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB00CBC8613 for ; Tue, 30 Aug 2016 04:49:41 +0000 (UTC) (envelope-from waldomiro@riemma.com.br) Received: from mail200190.plesksa11.revendedordesite.com (mail200190.plesksa11.revendedordesite.com [200.234.200.190]) by mx1.freebsd.org (Postfix) with ESMTP id 80DAC37C for ; Tue, 30 Aug 2016 04:49:40 +0000 (UTC) (envelope-from waldomiro@riemma.com.br) Received: from plesksa11.revendedordesite.com (127.0.0.1) by mail200168.plesksa11.revendedordesite.com id hok86a267qoo for ; Tue, 30 Aug 2016 01:49:31 -0300 (envelope-from ) x-locaweb-id: W6IeIILhGLdvnMocw8sBWeufZhuOQpPzMgDwi-O_aUpRM7TYCJq8C3qdf5oRoy-kVO17f-iq2j5peIOUGFtoXLuquY3QNJCp-0c8NOkND8f1Ds2laFRbZ7Kteb21-5WbcTsLghGfYoxoWcM9vo97X3fj2Hx0SSdq76_udwAVsM-RJMJ55mTPIZqFFdlsxwN7mk5PPl_rmWjLB4ZNI4_J7Q== Nzc2MTZjNjQ2ZjZkNjk3MjZmNDA3MjY5NjU2ZDZkNjEyZTYzNmY2ZDJlNjI3Mg== x-locaweb-id: W6IeIILhGLdvnMocw8sBWeufZhuOQpPzMgDwi-O_aUpRM7TYCJq8C3qdf5oRoy-kVO17f-iq2j5peIOUGFtoXLuquY3QNJCp-0c8NOkND8f1Ds2laFRbZ7Kteb21-5WbcTsLghGfYoxoWcM9vo97X3fj2Hx0SSdq76_udwAVsM-RJMJ55mTPIZqFFdlsxwN7mk5PPl_rmWjLB4ZNI4_J7Q== Nzc2MTZjNjQ2ZjZkNjk3MjZmNDA3MjY5NjU2ZDZkNjEyZTYzNmY2ZDJlNjI3Mg== x-locaweb-id: W6IeIILhGLdvnMocw8sBWeufZhuOQpPzMgDwi-O_aUpRM7TYCJq8C3qdf5oRoy-kVO17f-iq2j5peIOUGFtoXLuquY3QNJCp-0c8NOkND8f1Ds2laFRbZ7Kteb21-5WbcTsLghGfYoxoWcM9vo97X3fj2Hx0SSdq76_udwAVsM-RJMJ55mTPIZqFFdlsxwN7mk5PPl_rmWjLB4ZNI4_J7Q== Nzc2MTZjNjQ2ZjZkNjk3MjZmNDA3MjY5NjU2ZDZkNjEyZTYzNmY2ZDJlNjI3Mg== x-locaweb-id: W6IeIILhGLdvnMocw8sBWeufZhuOQpPzMgDwi-O_aUpRM7TYCJq8C3qdf5oRoy-kVO17f-iq2j5peIOUGFtoXLuquY3QNJCp-0c8NOkND8f1Ds2laFRbZ7Kteb21-5WbcTsLghGfYoxoWcM9vo97X3fj2Hx0SSdq76_udwAVsM-RJMJ55mTPIZqFFdlsxwN7mk5PPl_rmWjLB4ZNI4_J7Q== Nzc2MTZjNjQ2ZjZkNjk3MjZmNDA3MjY5NjU2ZDZkNjEyZTYzNmY2ZDJlNjI3Mg== x-locaweb-id: W6IeIILhGLdvnMocw8sBWeufZhuOQpPzMgDwi-O_aUpRM7TYCJq8C3qdf5oRoy-kVO17f-iq2j5peIOUGFtoXLuquY3QNJCp-0c8NOkND8f1Ds2laFRbZ7Kteb21-5WbcTsLghGfYoxoWcM9vo97X3fj2Hx0SSdq76_udwAVsM-RJMJ55mTPIZqFFdlsxwN7mk5PPl_rmWjLB4ZNI4_J7Q== Nzc2MTZjNjQ2ZjZkNjk3MjZmNDA3MjY5NjU2ZDZkNjEyZTYzNmY2ZDJlNjI3Mg== x-locaweb-id: W6IeIILhGLdvnMocw8sBWeufZhuOQpPzMgDwi-O_aUpRM7TYCJq8C3qdf5oRoy-kVO17f-iq2j5peIOUGFtoXLuquY3QNJCp-0c8NOkND8f1Ds2laFRbZ7Kteb21-5WbcTsLghGfYoxoWcM9vo97X3fj2Hx0SSdq76_udwAVsM-RJMJ55mTPIZqFFdlsxwN7mk5PPl_rmWjLB4ZNI4_J7Q== Nzc2MTZjNjQ2ZjZkNjk3MjZmNDA3MjY5NjU2ZDZkNjEyZTYzNmY2ZDJlNjI3Mg== Received: from cpanel0103.hospedagemdesites.ws (cpanel0103.hospedagemdesites.ws [186.202.127.228]) by plesksa11.revendedordesite.com (Postfix) with ESMTP id 48770E05DA; Tue, 30 Aug 2016 01:49:31 -0300 (BRT) Received: from [125.150.163.231] (port=35266 helo=outlook.com) by cpanel0103.hospedagemdesites.ws with esmtpsa (TLSv1:ECDHE-RSA-AES256-SHA:256) (Exim 4.87) (envelope-from ) id 1beazJ-0002tI-45; Tue, 30 Aug 2016 01:49:30 -0300 Message-ID: From: "SAVE US" To: , , , , , Subject: They kill with wars, alcohol and abortions. Save us!!! Date: Tue, 30 Aug 2016 07:36:52 +0400 MIME-Version: 1.0 X-AuthUser: waldomiro@riemma.com.br X-Cpanel: yes Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 04:49:41 -0000 They kill with wars, alcohol and abortions. Save us!!! From owner-svn-src-projects@freebsd.org Tue Aug 30 16:15:20 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC740BC8944 for ; Tue, 30 Aug 2016 16:15:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF2A52F19; Tue, 30 Aug 2016 16:15:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UGFKYs047610; Tue, 30 Aug 2016 16:15:20 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UGFKi9047609; Tue, 30 Aug 2016 16:15:20 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201608301615.u7UGFKi9047609@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Aug 2016 16:15:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305067 - in projects/clang390-import/contrib/llvm/tools/lld: . cmake docs test unittests X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 16:15:21 -0000 Author: emaste Date: Tue Aug 30 16:15:19 2016 New Revision: 305067 URL: https://svnweb.freebsd.org/changeset/base/305067 Log: Bring lld (release_39 branch, r279477) to contrib Added: projects/clang390-import/contrib/llvm/tools/lld/ - copied from r305066, vendor/lld/dist/ Deleted: projects/clang390-import/contrib/llvm/tools/lld/cmake/ projects/clang390-import/contrib/llvm/tools/lld/docs/ projects/clang390-import/contrib/llvm/tools/lld/test/ projects/clang390-import/contrib/llvm/tools/lld/unittests/ From owner-svn-src-projects@freebsd.org Tue Aug 30 16:17:10 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9FC9FBC8A0D for ; Tue, 30 Aug 2016 16:17:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 72F2DEF; Tue, 30 Aug 2016 16:17:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UGH9u6047710; Tue, 30 Aug 2016 16:17:09 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UGH9PW047709; Tue, 30 Aug 2016 16:17:09 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201608301617.u7UGH9PW047709@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Aug 2016 16:17:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305068 - projects/clang390-import/contrib/llvm/tools/lld X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 16:17:10 -0000 Author: emaste Date: Tue Aug 30 16:17:09 2016 New Revision: 305068 URL: https://svnweb.freebsd.org/changeset/base/305068 Log: Add lld FREEBSD-Xlist corresponding to directories removed in r305067 Added: projects/clang390-import/contrib/llvm/tools/lld/FREEBSD-Xlist Added: projects/clang390-import/contrib/llvm/tools/lld/FREEBSD-Xlist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/contrib/llvm/tools/lld/FREEBSD-Xlist Tue Aug 30 16:17:09 2016 (r305068) @@ -0,0 +1,5 @@ +# $FreeBSD$ +cmake/ +docs/ +test/ +unittests/ From owner-svn-src-projects@freebsd.org Tue Aug 30 16:18:57 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86A13BC8A94 for ; Tue, 30 Aug 2016 16:18:57 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3E942238; Tue, 30 Aug 2016 16:18:57 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UGIuV4047822; Tue, 30 Aug 2016 16:18:56 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UGIuJQ047821; Tue, 30 Aug 2016 16:18:56 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201608301618.u7UGIuJQ047821@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Aug 2016 16:18:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305069 - projects/clang390-import/contrib/llvm/tools/lld X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 16:18:57 -0000 Author: emaste Date: Tue Aug 30 16:18:56 2016 New Revision: 305069 URL: https://svnweb.freebsd.org/changeset/base/305069 Log: Add svn:keywords property to FREEBSD-Xlist Modified: Directory Properties: projects/clang390-import/contrib/llvm/tools/lld/FREEBSD-Xlist (props changed) From owner-svn-src-projects@freebsd.org Tue Aug 30 16:43:26 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26F81BC8302 for ; Tue, 30 Aug 2016 16:43:26 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EC11D6E1; Tue, 30 Aug 2016 16:43:25 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UGhPkn059093; Tue, 30 Aug 2016 16:43:25 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UGhPbA059092; Tue, 30 Aug 2016 16:43:25 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201608301643.u7UGhPbA059092@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Aug 2016 16:43:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305070 - projects/clang390-import/contrib/llvm/tools/lld/tools/lld X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 16:43:26 -0000 Author: emaste Date: Tue Aug 30 16:43:24 2016 New Revision: 305070 URL: https://svnweb.freebsd.org/changeset/base/305070 Log: lld: only include GNU ld emulation We don't need Windows link.exe and Darwin Mach-O linker emulation now. Modified: projects/clang390-import/contrib/llvm/tools/lld/tools/lld/lld.cpp Modified: projects/clang390-import/contrib/llvm/tools/lld/tools/lld/lld.cpp ============================================================================== --- projects/clang390-import/contrib/llvm/tools/lld/tools/lld/lld.cpp Tue Aug 30 16:18:56 2016 (r305069) +++ projects/clang390-import/contrib/llvm/tools/lld/tools/lld/lld.cpp Tue Aug 30 16:43:24 2016 (r305070) @@ -101,15 +101,5 @@ int main(int Argc, const char **Argv) { llvm_shutdown_obj Shutdown; std::vector Args(Argv, Argv + Argc); - switch (parseFlavor(Args)) { - case Gnu: - return !elf::link(Args); - case WinLink: - return !coff::link(Args); - case Darwin: - return !mach_o::link(Args); - default: - die("lld is a generic driver.\n" - "Invoke ld.lld (Unix), ld (Mac) or lld-link (Windows) instead."); - } + return !elf::link(Args); } From owner-svn-src-projects@freebsd.org Tue Aug 30 16:49:11 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09893BC8451 for ; Tue, 30 Aug 2016 16:49:11 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B3486C60; Tue, 30 Aug 2016 16:49:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UGn9AE059406; Tue, 30 Aug 2016 16:49:09 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UGn9H1059404; Tue, 30 Aug 2016 16:49:09 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201608301649.u7UGn9H1059404@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Aug 2016 16:49:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305072 - projects/clang390-import/contrib/llvm/tools/lld/ELF X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 16:49:11 -0000 Author: emaste Date: Tue Aug 30 16:49:09 2016 New Revision: 305072 URL: https://svnweb.freebsd.org/changeset/base/305072 Log: Include Options.inc using path from lld src top Otherwise we will encoutner conflicts with libllvm's Options.inc in the bmake lld build. Modified: projects/clang390-import/contrib/llvm/tools/lld/ELF/Driver.h projects/clang390-import/contrib/llvm/tools/lld/ELF/DriverUtils.cpp Modified: projects/clang390-import/contrib/llvm/tools/lld/ELF/Driver.h ============================================================================== --- projects/clang390-import/contrib/llvm/tools/lld/ELF/Driver.h Tue Aug 30 16:45:15 2016 (r305071) +++ projects/clang390-import/contrib/llvm/tools/lld/ELF/Driver.h Tue Aug 30 16:49:09 2016 (r305072) @@ -65,7 +65,7 @@ private: enum { OPT_INVALID = 0, #define OPTION(_1, _2, ID, _4, _5, _6, _7, _8, _9, _10, _11) OPT_##ID, -#include "Options.inc" +#include "ELF/Options.inc" #undef OPTION }; Modified: projects/clang390-import/contrib/llvm/tools/lld/ELF/DriverUtils.cpp ============================================================================== --- projects/clang390-import/contrib/llvm/tools/lld/ELF/DriverUtils.cpp Tue Aug 30 16:45:15 2016 (r305071) +++ projects/clang390-import/contrib/llvm/tools/lld/ELF/DriverUtils.cpp Tue Aug 30 16:49:09 2016 (r305072) @@ -34,7 +34,7 @@ using namespace lld::elf; // Create prefix string literals used in Options.td #define PREFIX(NAME, VALUE) const char *const NAME[] = VALUE; -#include "Options.inc" +#include "ELF/Options.inc" #undef PREFIX // Create table mapping all options defined in Options.td @@ -44,7 +44,7 @@ static const opt::OptTable::Info OptInfo X1, X2, X9, X10, OPT_##ID, opt::Option::KIND##Class, X8, X7, OPT_##GROUP, \ OPT_##ALIAS, X6 \ }, -#include "Options.inc" +#include "ELF/Options.inc" #undef OPTION }; From owner-svn-src-projects@freebsd.org Tue Aug 30 17:18:36 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E0D86BC902F for ; Tue, 30 Aug 2016 17:18:36 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BECF0EB1; Tue, 30 Aug 2016 17:18:36 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UHIaet071114; Tue, 30 Aug 2016 17:18:36 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UHIZ5B071109; Tue, 30 Aug 2016 17:18:35 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201608301718.u7UHIZ5B071109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Tue, 30 Aug 2016 17:18:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305073 - in projects/zfsd/head/tests/sys/cddl/zfs: include tests/cli_root/zfs_set tests/snapshot X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 17:18:37 -0000 Author: asomers Date: Tue Aug 30 17:18:35 2016 New Revision: 305073 URL: https://svnweb.freebsd.org/changeset/base/305073 Log: Remove references to a vendor-specific feature. Sponsored by: Spectra Logic Corp Modified: projects/zfsd/head/tests/sys/cddl/zfs/include/libtest.kshlib projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_root/zfs_set/snapdir_001_pos.ksh projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_015_pos.ksh projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_017_pos.ksh projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_018_pos.ksh Modified: projects/zfsd/head/tests/sys/cddl/zfs/include/libtest.kshlib ============================================================================== --- projects/zfsd/head/tests/sys/cddl/zfs/include/libtest.kshlib Tue Aug 30 16:49:09 2016 (r305072) +++ projects/zfsd/head/tests/sys/cddl/zfs/include/libtest.kshlib Tue Aug 30 17:18:35 2016 (r305073) @@ -3096,11 +3096,7 @@ function bsddevmap # function get_snapdir_name { - if [[ `sysctl -n vfs.zfs.abbreviated_snapdir` = "1" ]]; then - echo ".snapshot" - else - echo ".zfs/snapshot" - fi + echo ".zfs/snapshot" } # Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_root/zfs_set/snapdir_001_pos.ksh ============================================================================== --- projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_root/zfs_set/snapdir_001_pos.ksh Tue Aug 30 16:49:09 2016 (r305072) +++ projects/zfsd/head/tests/sys/cddl/zfs/tests/cli_root/zfs_set/snapdir_001_pos.ksh Tue Aug 30 17:18:35 2016 (r305073) @@ -72,11 +72,7 @@ function verify_snapdir_visible # $1 dat typeset mtpt=$(get_prop mountpoint $dataset) typeset name - if [[ `sysctl -n vfs.zfs.abbreviated_snapdir` = 1 ]]; then - CTLDIR=".snapshot" - else - CTLDIR=".zfs" - fi + CTLDIR=".zfs" for name in `$LS -a $mtpt`; do if [[ $name == $CTLDIR ]]; then Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_015_pos.ksh ============================================================================== --- projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_015_pos.ksh Tue Aug 30 16:49:09 2016 (r305072) +++ projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_015_pos.ksh Tue Aug 30 17:18:35 2016 (r305073) @@ -82,12 +82,8 @@ log_onexit cleanup fs=$TESTPOOL/$TESTFS # Verify all the other directories are readonly. mntpnt=$(get_prop mountpoint $fs) -if [[ `sysctl -n vfs.zfs.abbreviated_snapdir` = "1" ]]; then - set -A ro_dirs -else - snapdir=$mntpnt/.zfs - set -A ro_dirs "$snapdir" "$snapdir/snap" "$snapdir/snapshot" -fi +snapdir=$mntpnt/.zfs +set -A ro_dirs "$snapdir" "$snapdir/snap" "$snapdir/snapshot" for dir in ${ro_dirs[@]}; do if [[ -d $dir ]]; then log_mustnot $RM -rf $dir Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_017_pos.ksh ============================================================================== --- projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_017_pos.ksh Tue Aug 30 16:49:09 2016 (r305072) +++ projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_017_pos.ksh Tue Aug 30 17:18:35 2016 (r305073) @@ -184,7 +184,7 @@ cd dir2 log_must $MV file6 file99 # verify the top level snapshot directories -[[ `sysctl -n vfs.zfs.abbreviated_snapdir` = 1 ]] || verify_dir $TESTDIR/.zfs +verify_dir $TESTDIR/$(get_snapdir_name) verify_dir $TESTDIR/$(get_snapdir_name) verify_dir $TESTDIR/$(get_snapdir_name)/snap_a verify_dir $TESTDIR/$(get_snapdir_name)/snap_b Modified: projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_018_pos.ksh ============================================================================== --- projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_018_pos.ksh Tue Aug 30 16:49:09 2016 (r305072) +++ projects/zfsd/head/tests/sys/cddl/zfs/tests/snapshot/snapshot_018_pos.ksh Tue Aug 30 17:18:35 2016 (r305073) @@ -77,13 +77,8 @@ function verify_dir # directory } typeset -a dirlist -if [[ `sysctl -n vfs.zfs.abbreviated_snapdir` = 1 ]]; then - dirlist=( "$TESTDIR/.snapshot" ) - ctldir=".snapshot" -else - dirlist=( "$TESTDIR/.zfs" "$TESTDIR/.zfs/snapshot" "$TESTDIR/.zfs/shares" ) - ctldir=".zfs" -fi +dirlist=( "$TESTDIR/.zfs" "$TESTDIR/.zfs/snapshot" "$TESTDIR/.zfs/shares" ) +ctldir=".zfs" for d in ${dirlist[@]}; do verify_dir $d done From owner-svn-src-projects@freebsd.org Tue Aug 30 18:27:33 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 964CFBC92C6 for ; Tue, 30 Aug 2016 18:27:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3CE86CED; Tue, 30 Aug 2016 18:27:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UIRWFh097999; Tue, 30 Aug 2016 18:27:32 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UIRV2V097991; Tue, 30 Aug 2016 18:27:31 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608301827.u7UIRV2V097991@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 30 Aug 2016 18:27:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305076 - in projects/clang390-import: contrib/libc++ contrib/libc++/include contrib/libc++/include/experimental contrib/libc++/include/ext contrib/libc++/src contrib/libc++/src/experim... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 18:27:33 -0000 Author: dim Date: Tue Aug 30 18:27:31 2016 New Revision: 305076 URL: https://svnweb.freebsd.org/changeset/base/305076 Log: Update libc++ to release_39 branch r279689. Added: projects/clang390-import/contrib/libc++/include/__bsd_locale_defaults.h - copied unchanged from r305029, vendor/libc++/dist/include/__bsd_locale_defaults.h projects/clang390-import/contrib/libc++/include/__bsd_locale_fallbacks.h - copied unchanged from r305029, vendor/libc++/dist/include/__bsd_locale_fallbacks.h projects/clang390-import/contrib/libc++/include/__threading_support - copied unchanged from r305029, vendor/libc++/dist/include/__threading_support projects/clang390-import/contrib/libc++/include/experimental/__memory - copied unchanged from r305029, vendor/libc++/dist/include/experimental/__memory projects/clang390-import/contrib/libc++/include/experimental/deque - copied unchanged from r305029, vendor/libc++/dist/include/experimental/deque projects/clang390-import/contrib/libc++/include/experimental/filesystem - copied unchanged from r305029, vendor/libc++/dist/include/experimental/filesystem projects/clang390-import/contrib/libc++/include/experimental/forward_list - copied unchanged from r305029, vendor/libc++/dist/include/experimental/forward_list projects/clang390-import/contrib/libc++/include/experimental/iterator - copied unchanged from r305029, vendor/libc++/dist/include/experimental/iterator projects/clang390-import/contrib/libc++/include/experimental/list - copied unchanged from r305029, vendor/libc++/dist/include/experimental/list projects/clang390-import/contrib/libc++/include/experimental/map - copied unchanged from r305029, vendor/libc++/dist/include/experimental/map projects/clang390-import/contrib/libc++/include/experimental/memory_resource - copied unchanged from r305029, vendor/libc++/dist/include/experimental/memory_resource projects/clang390-import/contrib/libc++/include/experimental/propagate_const - copied unchanged from r305029, vendor/libc++/dist/include/experimental/propagate_const projects/clang390-import/contrib/libc++/include/experimental/regex - copied unchanged from r305029, vendor/libc++/dist/include/experimental/regex projects/clang390-import/contrib/libc++/include/experimental/set - copied unchanged from r305029, vendor/libc++/dist/include/experimental/set projects/clang390-import/contrib/libc++/include/experimental/string - copied unchanged from r305029, vendor/libc++/dist/include/experimental/string projects/clang390-import/contrib/libc++/include/experimental/unordered_map - copied unchanged from r305029, vendor/libc++/dist/include/experimental/unordered_map projects/clang390-import/contrib/libc++/include/experimental/unordered_set - copied unchanged from r305029, vendor/libc++/dist/include/experimental/unordered_set projects/clang390-import/contrib/libc++/include/experimental/vector - copied unchanged from r305029, vendor/libc++/dist/include/experimental/vector projects/clang390-import/contrib/libc++/include/stdbool.h - copied unchanged from r305029, vendor/libc++/dist/include/stdbool.h projects/clang390-import/contrib/libc++/include/string.h - copied unchanged from r305029, vendor/libc++/dist/include/string.h projects/clang390-import/contrib/libc++/src/experimental/ - copied from r305029, vendor/libc++/dist/src/experimental/ Modified: projects/clang390-import/contrib/libc++/CREDITS.TXT projects/clang390-import/contrib/libc++/LICENSE.TXT projects/clang390-import/contrib/libc++/include/__config projects/clang390-import/contrib/libc++/include/__functional_base projects/clang390-import/contrib/libc++/include/__hash_table projects/clang390-import/contrib/libc++/include/__mutex_base projects/clang390-import/contrib/libc++/include/__tree projects/clang390-import/contrib/libc++/include/__tuple projects/clang390-import/contrib/libc++/include/__undef___deallocate projects/clang390-import/contrib/libc++/include/__undef_min_max projects/clang390-import/contrib/libc++/include/algorithm projects/clang390-import/contrib/libc++/include/array projects/clang390-import/contrib/libc++/include/atomic projects/clang390-import/contrib/libc++/include/bitset projects/clang390-import/contrib/libc++/include/cctype projects/clang390-import/contrib/libc++/include/cmath projects/clang390-import/contrib/libc++/include/complex projects/clang390-import/contrib/libc++/include/cstring projects/clang390-import/contrib/libc++/include/cwchar projects/clang390-import/contrib/libc++/include/deque projects/clang390-import/contrib/libc++/include/exception projects/clang390-import/contrib/libc++/include/experimental/__config projects/clang390-import/contrib/libc++/include/experimental/algorithm projects/clang390-import/contrib/libc++/include/experimental/any projects/clang390-import/contrib/libc++/include/experimental/dynarray projects/clang390-import/contrib/libc++/include/experimental/functional projects/clang390-import/contrib/libc++/include/experimental/optional projects/clang390-import/contrib/libc++/include/experimental/string_view projects/clang390-import/contrib/libc++/include/experimental/tuple projects/clang390-import/contrib/libc++/include/ext/hash_map projects/clang390-import/contrib/libc++/include/ext/hash_set projects/clang390-import/contrib/libc++/include/forward_list projects/clang390-import/contrib/libc++/include/fstream projects/clang390-import/contrib/libc++/include/functional projects/clang390-import/contrib/libc++/include/future projects/clang390-import/contrib/libc++/include/iomanip projects/clang390-import/contrib/libc++/include/ios projects/clang390-import/contrib/libc++/include/iosfwd projects/clang390-import/contrib/libc++/include/istream projects/clang390-import/contrib/libc++/include/iterator projects/clang390-import/contrib/libc++/include/list projects/clang390-import/contrib/libc++/include/locale projects/clang390-import/contrib/libc++/include/map projects/clang390-import/contrib/libc++/include/memory projects/clang390-import/contrib/libc++/include/mutex projects/clang390-import/contrib/libc++/include/queue projects/clang390-import/contrib/libc++/include/shared_mutex projects/clang390-import/contrib/libc++/include/stack projects/clang390-import/contrib/libc++/include/stdexcept projects/clang390-import/contrib/libc++/include/streambuf projects/clang390-import/contrib/libc++/include/string projects/clang390-import/contrib/libc++/include/thread projects/clang390-import/contrib/libc++/include/tuple projects/clang390-import/contrib/libc++/include/type_traits projects/clang390-import/contrib/libc++/include/unordered_map projects/clang390-import/contrib/libc++/include/unordered_set projects/clang390-import/contrib/libc++/include/utility projects/clang390-import/contrib/libc++/include/vector projects/clang390-import/contrib/libc++/include/wchar.h projects/clang390-import/contrib/libc++/src/algorithm.cpp projects/clang390-import/contrib/libc++/src/bind.cpp projects/clang390-import/contrib/libc++/src/condition_variable.cpp projects/clang390-import/contrib/libc++/src/locale.cpp projects/clang390-import/contrib/libc++/src/memory.cpp projects/clang390-import/contrib/libc++/src/mutex.cpp projects/clang390-import/contrib/libc++/src/regex.cpp projects/clang390-import/contrib/libc++/src/strstream.cpp projects/clang390-import/contrib/libc++/src/system_error.cpp projects/clang390-import/contrib/libc++/src/thread.cpp projects/clang390-import/lib/libc++/Makefile Directory Properties: projects/clang390-import/contrib/libc++/ (props changed) Modified: projects/clang390-import/contrib/libc++/CREDITS.TXT ============================================================================== --- projects/clang390-import/contrib/libc++/CREDITS.TXT Tue Aug 30 18:01:26 2016 (r305075) +++ projects/clang390-import/contrib/libc++/CREDITS.TXT Tue Aug 30 18:27:31 2016 (r305076) @@ -37,6 +37,10 @@ E: mclow.lists@gmail.com E: marshall@idio.com D: C++14 support, patches and bug fixes. +N: Jonathan B Coe +E: jbcoe@me.com +D: Implementation of propagate_const. + N: Eric Fiselier E: eric@efcs.ca D: LFTS support, patches and bug fixes. Modified: projects/clang390-import/contrib/libc++/LICENSE.TXT ============================================================================== --- projects/clang390-import/contrib/libc++/LICENSE.TXT Tue Aug 30 18:01:26 2016 (r305075) +++ projects/clang390-import/contrib/libc++/LICENSE.TXT Tue Aug 30 18:27:31 2016 (r305076) @@ -14,7 +14,7 @@ Full text of the relevant licenses is in University of Illinois/NCSA Open Source License -Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2016 by the contributors listed in CREDITS.TXT All rights reserved. Copied: projects/clang390-import/contrib/libc++/include/__bsd_locale_defaults.h (from r305029, vendor/libc++/dist/include/__bsd_locale_defaults.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/contrib/libc++/include/__bsd_locale_defaults.h Tue Aug 30 18:27:31 2016 (r305076, copy of r305029, vendor/libc++/dist/include/__bsd_locale_defaults.h) @@ -0,0 +1,33 @@ +// -*- C++ -*- +//===---------------------- __bsd_locale_defaults.h -----------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// The BSDs have lots of *_l functions. We don't want to define those symbols +// on other platforms though, for fear of conflicts with user code. So here, +// we will define the mapping from an internal macro to the real BSD symbol. +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_BSD_LOCALE_DEFAULTS_H +#define _LIBCPP_BSD_LOCALE_DEFAULTS_H + +#define __libcpp_mb_cur_max_l(loc) MB_CUR_MAX_L(loc) +#define __libcpp_btowc_l(ch, loc) btowc_l(ch, loc) +#define __libcpp_wctob_l(wch, loc) wctob_l(wch, loc) +#define __libcpp_wcsnrtombs_l(dst, src, nwc, len, ps, loc) wcsnrtombs_l(dst, src, nwc, len, ps, loc) +#define __libcpp_wcrtomb_l(src, wc, ps, loc) wcrtomb_l(src, wc, ps, loc) +#define __libcpp_mbsnrtowcs_l(dst, src, nms, len, ps, loc) mbsnrtowcs_l(dst, src, nms, len, ps, loc) +#define __libcpp_mbrtowc_l(pwc, s, n, ps, l) mbrtowc_l(pwc, s, n, ps, l) +#define __libcpp_mbtowc_l(pwc, pmb, max, l) mbtowc_l(pwc, pmb, max, l) +#define __libcpp_mbrlen_l(s, n, ps, l) mbrlen_l(s, n, ps, l) +#define __libcpp_localeconv_l(l) localeconv_l(l) +#define __libcpp_mbsrtowcs_l(dest, src, len, ps, l) mbsrtowcs_l(dest, src, len, ps, l) +#define __libcpp_snprintf_l(...) snprintf_l(__VA_ARGS__) +#define __libcpp_asprintf_l(...) asprintf_l(__VA_ARGS__) +#define __libcpp_sscanf_l(...) sscanf_l(__VA_ARGS__) + +#endif // _LIBCPP_BSD_LOCALE_DEFAULTS_H Copied: projects/clang390-import/contrib/libc++/include/__bsd_locale_fallbacks.h (from r305029, vendor/libc++/dist/include/__bsd_locale_fallbacks.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/contrib/libc++/include/__bsd_locale_fallbacks.h Tue Aug 30 18:27:31 2016 (r305076, copy of r305029, vendor/libc++/dist/include/__bsd_locale_fallbacks.h) @@ -0,0 +1,138 @@ +// -*- C++ -*- +//===---------------------- __bsd_locale_fallbacks.h ----------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// The BSDs have lots of *_l functions. This file provides reimplementations +// of those functions for non-BSD platforms. +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H +#define _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H + +#include +#include + +_LIBCPP_BEGIN_NAMESPACE_STD + +typedef _VSTD::remove_pointer::type __use_locale_struct; +typedef _VSTD::unique_ptr<__use_locale_struct, decltype(&uselocale)> __locale_raii; + +inline _LIBCPP_ALWAYS_INLINE +decltype(MB_CUR_MAX) __libcpp_mb_cur_max_l(locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return MB_CUR_MAX; +} + +inline _LIBCPP_ALWAYS_INLINE +wint_t __libcpp_btowc_l(int __c, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return btowc(__c); +} + +inline _LIBCPP_ALWAYS_INLINE +int __libcpp_wctob_l(wint_t __c, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return wctob(__c); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_wcsnrtombs_l(char *__dest, const wchar_t **__src, size_t __nwc, + size_t __len, mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return wcsnrtombs(__dest, __src, __nwc, __len, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_wcrtomb_l(char *__s, wchar_t __wc, mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return wcrtomb(__s, __wc, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_mbsnrtowcs_l(wchar_t * __dest, const char **__src, size_t __nms, + size_t __len, mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbsnrtowcs(__dest, __src, __nms, __len, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_mbrtowc_l(wchar_t *__pwc, const char *__s, size_t __n, + mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbrtowc(__pwc, __s, __n, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +int __libcpp_mbtowc_l(wchar_t *__pwc, const char *__pmb, size_t __max, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbtowc(__pwc, __pmb, __max); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_mbrlen_l(const char *__s, size_t __n, mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbrlen(__s, __n, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +lconv *__libcpp_localeconv_l(locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return localeconv(); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_mbsrtowcs_l(wchar_t *__dest, const char **__src, size_t __len, + mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbsrtowcs(__dest, __src, __len, __ps); +} + +inline +int __libcpp_snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __locale_raii __current( uselocale(__l), uselocale ); + int __res = vsnprintf(__s, __n, __format, __va); + va_end(__va); + return __res; +} + +inline +int __libcpp_asprintf_l(char **__s, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __locale_raii __current( uselocale(__l), uselocale ); + int __res = vasprintf(__s, __format, __va); + va_end(__va); + return __res; +} + +inline +int __libcpp_sscanf_l(const char *__s, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __locale_raii __current( uselocale(__l), uselocale ); + int __res = vsscanf(__s, __format, __va); + va_end(__va); + return __res; +} + +_LIBCPP_END_NAMESPACE_STD + +#endif // _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H Modified: projects/clang390-import/contrib/libc++/include/__config ============================================================================== --- projects/clang390-import/contrib/libc++/include/__config Tue Aug 30 18:01:26 2016 (r305075) +++ projects/clang390-import/contrib/libc++/include/__config Tue Aug 30 18:27:31 2016 (r305076) @@ -27,7 +27,7 @@ #define _GNUC_VER 0 #endif -#define _LIBCPP_VERSION 3800 +#define _LIBCPP_VERSION 3900 #ifndef _LIBCPP_ABI_VERSION #define _LIBCPP_ABI_VERSION 1 @@ -41,6 +41,22 @@ #define _LIBCPP_ABI_INCOMPLETE_TYPES_IN_DEQUE // Fix undefined behavior in how std::list stores it's linked nodes. #define _LIBCPP_ABI_LIST_REMOVE_NODE_POINTER_UB +// Fix undefined behavior in how __tree stores its end and parent nodes. +#define _LIBCPP_ABI_TREE_REMOVE_NODE_POINTER_UB +#define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB +#define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE +#define _LIBCPP_ABI_VARIADIC_LOCK_GUARD +#elif _LIBCPP_ABI_VERSION == 1 +// Feature macros for disabling pre ABI v1 features. All of these options +// are deprecated. +#if defined(__FreeBSD__) +#define _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR +#endif +#endif + +#ifdef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR +#error "_LIBCPP_TRIVIAL_PAIR_COPY_CTOR" is no longer supported. \ + use _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR instead #endif #define _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_X##_LIBCPP_Y @@ -178,6 +194,12 @@ # endif #endif // !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN) +#if __has_attribute(__no_sanitize__) +#define _LIBCPP_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +#define _LIBCPP_NO_CFI +#endif + #ifdef _WIN32 // only really useful for a DLL @@ -236,6 +258,12 @@ # endif #endif +#ifndef _LIBCPP_PREFERRED_OVERLOAD +# if __has_attribute(__enable_if__) +# define _LIBCPP_PREFERRED_OVERLOAD __attribute__ ((__enable_if__(true, ""))) +# endif +#endif + #ifndef _LIBCPP_TYPE_VIS_ONLY # define _LIBCPP_TYPE_VIS_ONLY _LIBCPP_TYPE_VIS #endif @@ -283,7 +311,7 @@ typedef __char16_t char16_t; typedef __char32_t char32_t; #endif -#if !(__has_feature(cxx_exceptions)) +#if !(__has_feature(cxx_exceptions)) && !defined(_LIBCPP_NO_EXCEPTIONS) #define _LIBCPP_NO_EXCEPTIONS #endif @@ -305,8 +333,6 @@ typedef __char32_t char32_t; # define _LIBCPP_NORETURN __attribute__ ((noreturn)) #endif -#define _LIBCPP_UNUSED __attribute__((__unused__)) - #if !(__has_feature(cxx_default_function_template_args)) #define _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS #endif @@ -434,8 +460,8 @@ namespace std { #endif // Allow for build-time disabling of unsigned integer sanitization -#ifndef _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK -#define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute((no_sanitize("unsigned-integer-overflow"))) +#if !defined(_LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK) && __has_attribute(no_sanitize) +#define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute__((__no_sanitize__("unsigned-integer-overflow"))) #endif #elif defined(__GNUC__) @@ -445,8 +471,6 @@ namespace std { #define _LIBCPP_NORETURN __attribute__((noreturn)) -#define _LIBCPP_UNUSED __attribute__((__unused__)) - #if _GNUC_VER >= 407 #define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T) #define _LIBCPP_IS_LITERAL(T) __is_literal_type(T) @@ -461,8 +485,6 @@ namespace std { #define _LIBCPP_NO_EXCEPTIONS #endif -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES - // constexpr was added to GCC in 4.6. #if _GNUC_VER < 406 #define _LIBCPP_HAS_NO_CONSTEXPR @@ -494,6 +516,7 @@ namespace std { #define _LIBCPP_HAS_NO_VARIADICS #define _LIBCPP_HAS_NO_RVALUE_REFERENCES #define _LIBCPP_HAS_NO_STRONG_ENUMS +#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES #define _LIBCPP_HAS_NO_NOEXCEPT #else // __GXX_EXPERIMENTAL_CXX0X__ @@ -517,6 +540,7 @@ namespace std { #if _GNUC_VER < 406 #define _LIBCPP_HAS_NO_NOEXCEPT #define _LIBCPP_HAS_NO_NULLPTR +#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES #endif #if _GNUC_VER < 407 @@ -552,7 +576,6 @@ using namespace _LIBCPP_NAMESPACE __attr #define _LIBCPP_HAS_NO_NOEXCEPT #define __alignof__ __alignof #define _LIBCPP_NORETURN __declspec(noreturn) -#define _LIBCPP_UNUSED #define _ALIGNAS(x) __declspec(align(x)) #define _LIBCPP_HAS_NO_VARIADICS @@ -574,7 +597,6 @@ namespace std { #define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) #define _ATTRIBUTE(x) __attribute__((x)) #define _LIBCPP_NORETURN __attribute__((noreturn)) -#define _LIBCPP_UNUSED #define _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS #define _LIBCPP_HAS_NO_TEMPLATE_ALIASES @@ -655,6 +677,12 @@ template struct __static_asse #define _LIBCPP_DEFAULT = default; #endif +#ifdef _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#define _LIBCPP_EQUAL_DELETE +#else +#define _LIBCPP_EQUAL_DELETE = delete +#endif + #ifdef __GNUC__ #define _NOALIAS __attribute__((__malloc__)) #else @@ -712,10 +740,12 @@ template struct __static_asse #define _LIBCPP_LOCALE__L_EXTENSIONS 1 #endif -#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(_NEWLIB_VERSION) && \ - !defined(__CloudABI__) +#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) +// Most unix variants have catopen. These are the specific ones that don't. +#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(_NEWLIB_VERSION) #define _LIBCPP_HAS_CATOPEN 1 #endif +#endif #ifdef __FreeBSD__ #define _DECLARE_C99_LDBL_MATH 1 @@ -729,24 +759,13 @@ template struct __static_asse #define _LIBCPP_WCTYPE_IS_MASK #endif -#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR -# if defined(__FreeBSD__) -// Making the std::pair copy constructor trivial breaks ABI compatibility with -// earlier versions of libc++ shipped by FreeBSD, so turn it off by default. -// See also http://svnweb.freebsd.org/changeset/base/261801 -# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 0 -# else -# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 1 -# endif -#endif - #ifndef _LIBCPP_STD_VER # if __cplusplus <= 201103L # define _LIBCPP_STD_VER 11 # elif __cplusplus <= 201402L # define _LIBCPP_STD_VER 14 # else -# define _LIBCPP_STD_VER 15 // current year, or date of c++17 ratification +# define _LIBCPP_STD_VER 16 // current year, or date of c++17 ratification # endif #endif // _LIBCPP_STD_VER @@ -770,6 +789,12 @@ template struct __static_asse #define _LIBCPP_CONSTEXPR_AFTER_CXX11 #endif +#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_CXX14_CONSTEXPR) +#define _LIBCPP_CONSTEXPR_AFTER_CXX14 constexpr +#else +#define _LIBCPP_CONSTEXPR_AFTER_CXX14 +#endif + #ifdef _LIBCPP_HAS_NO_RVALUE_REFERENCES # define _LIBCPP_EXPLICIT_MOVE(x) _VSTD::move(x) #else @@ -797,6 +822,25 @@ extern "C" void __sanitizer_annotate_con # define _LIBCPP_WEAK __attribute__((__weak__)) #endif +// Thread API +#if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_HAS_THREAD_API_PTHREAD) +# if defined(__FreeBSD__) || \ + defined(__NetBSD__) || \ + defined(__linux__) || \ + defined(__APPLE__) || \ + defined(__CloudABI__) || \ + defined(__sun__) +# define _LIBCPP_HAS_THREAD_API_PTHREAD +# else +# error "No thread API" +# endif // _LIBCPP_HAS_THREAD_API +#endif // _LIBCPP_HAS_NO_THREADS + +#if defined(_LIBCPP_HAS_NO_THREADS) && defined(_LIBCPP_HAS_THREAD_API_PTHREAD) +# error _LIBCPP_HAS_THREAD_API_PTHREAD may only be defined when \ + _LIBCPP_HAS_NO_THREADS is not defined. +#endif + #if defined(_LIBCPP_HAS_NO_MONOTONIC_CLOCK) && !defined(_LIBCPP_HAS_NO_THREADS) # error _LIBCPP_HAS_NO_MONOTONIC_CLOCK may only be defined when \ _LIBCPP_HAS_NO_THREADS is defined. @@ -840,7 +884,20 @@ extern "C" void __sanitizer_annotate_con #ifndef _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK #define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK -#endif +#endif + +#if __cplusplus < 201103L +#define _LIBCPP_CXX03_LANG +#else +#if defined(_LIBCPP_HAS_NO_VARIADIC_TEMPLATES) || defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) +#error Libc++ requires a feature complete C++11 compiler in C++11 or greater. +#endif +#endif + +#if (defined(_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS) && defined(__clang__) \ + && __has_attribute(acquire_capability)) +#define _LIBCPP_HAS_THREAD_SAFETY_ANNOTATIONS +#endif #endif // __cplusplus Modified: projects/clang390-import/contrib/libc++/include/__functional_base ============================================================================== --- projects/clang390-import/contrib/libc++/include/__functional_base Tue Aug 30 18:01:26 2016 (r305075) +++ projects/clang390-import/contrib/libc++/include/__functional_base Tue Aug 30 18:27:31 2016 (r305076) @@ -38,8 +38,6 @@ struct _LIBCPP_TYPE_VIS_ONLY binary_func typedef _Result result_type; }; -template struct _LIBCPP_TYPE_VIS_ONLY hash; - template struct __has_result_type { @@ -306,75 +304,19 @@ struct __weak_result_type<_Rp (_Cp::*)(_ #endif // _LIBCPP_HAS_NO_VARIADICS -// __invoke - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -// bullets 1 and 2 - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) - -> decltype((_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...)) -{ - return (_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) - -> decltype(((*_VSTD::forward<_A0>(__a0)).*__f)(_VSTD::forward<_Args>(__args)...)) -{ - return ((*_VSTD::forward<_A0>(__a0)).*__f)(_VSTD::forward<_Args>(__args)...); -} - -// bullets 3 and 4 +#ifndef _LIBCPP_CXX03_LANG -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _A0&& __a0) - -> decltype(_VSTD::forward<_A0>(__a0).*__f) -{ - return _VSTD::forward<_A0>(__a0).*__f; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _A0&& __a0) - -> decltype((*_VSTD::forward<_A0>(__a0)).*__f) -{ - return (*_VSTD::forward<_A0>(__a0)).*__f; -} - -// bullet 5 - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _Args&& ...__args) - -> decltype(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...)) -{ - return _VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...); -} template struct __invoke_return { typedef decltype(__invoke(_VSTD::declval<_Tp>(), _VSTD::declval<_Args>()...)) type; }; -#else // _LIBCPP_HAS_NO_VARIADICS +#else // defined(_LIBCPP_CXX03_LANG) #include <__functional_base_03> -#endif // _LIBCPP_HAS_NO_VARIADICS +#endif // !defined(_LIBCPP_CXX03_LANG) template @@ -577,10 +519,6 @@ public: #endif // _LIBCPP_HAS_NO_VARIADICS }; -template struct __is_reference_wrapper_impl : public false_type {}; -template struct __is_reference_wrapper_impl > : public true_type {}; -template struct __is_reference_wrapper - : public __is_reference_wrapper_impl::type> {}; template inline _LIBCPP_INLINE_VISIBILITY Modified: projects/clang390-import/contrib/libc++/include/__hash_table ============================================================================== --- projects/clang390-import/contrib/libc++/include/__hash_table Tue Aug 30 18:01:26 2016 (r305075) +++ projects/clang390-import/contrib/libc++/include/__hash_table Tue Aug 30 18:27:31 2016 (r305076) @@ -17,6 +17,7 @@ #include #include #include +#include #include <__undef_min_max> #include <__undef___deallocate> @@ -29,6 +30,29 @@ _LIBCPP_BEGIN_NAMESPACE_STD + +#ifndef _LIBCPP_CXX03_LANG +template +union __hash_value_type; +#else +template +struct __hash_value_type; +#endif + +#ifndef _LIBCPP_CXX03_LANG +template +struct __is_hash_value_type_imp : false_type {}; + +template +struct __is_hash_value_type_imp<__hash_value_type<_Key, _Value>> : true_type {}; + +template +struct __is_hash_value_type : false_type {}; + +template +struct __is_hash_value_type<_One> : __is_hash_value_type_imp::type> {}; +#endif + _LIBCPP_FUNC_VIS size_t __next_prime(size_t __n); @@ -49,10 +73,10 @@ struct __hash_node typename __rebind_pointer<_VoidPtr, __hash_node<_Tp, _VoidPtr> >::type > { - typedef _Tp value_type; + typedef _Tp __node_value_type; size_t __hash_; - value_type __value_; + __node_value_type __value_; }; inline _LIBCPP_INLINE_VISIBILITY @@ -66,7 +90,8 @@ inline _LIBCPP_INLINE_VISIBILITY size_t __constrain_hash(size_t __h, size_t __bc) { - return !(__bc & (__bc - 1)) ? __h & (__bc - 1) : __h % __bc; + return !(__bc & (__bc - 1)) ? __h & (__bc - 1) : + (__h < __bc ? __h : __h % __bc); } inline _LIBCPP_INLINE_VISIBILITY @@ -76,24 +101,173 @@ __next_hash_pow2(size_t __n) return size_t(1) << (std::numeric_limits::digits - __clz(__n-1)); } + template class __hash_table; + +template class _LIBCPP_TYPE_VIS_ONLY __hash_iterator; template class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator; +template class _LIBCPP_TYPE_VIS_ONLY __hash_local_iterator; +template class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator; template class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator; template class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator; +template +struct __hash_key_value_types { + static_assert(!is_reference<_Tp>::value && !is_const<_Tp>::value, ""); + typedef _Tp key_type; + typedef _Tp __node_value_type; + typedef _Tp __container_value_type; + static const bool __is_map = false; + + _LIBCPP_INLINE_VISIBILITY + static key_type const& __get_key(_Tp const& __v) { + return __v; + } + _LIBCPP_INLINE_VISIBILITY + static __container_value_type const& __get_value(__node_value_type const& __v) { + return __v; + } + _LIBCPP_INLINE_VISIBILITY + static __container_value_type* __get_ptr(__node_value_type& __n) { + return _VSTD::addressof(__n); + } +#ifndef _LIBCPP_CXX03_LANG + _LIBCPP_INLINE_VISIBILITY + static __container_value_type&& __move(__node_value_type& __v) { + return _VSTD::move(__v); + } +#endif +}; + +template +struct __hash_key_value_types<__hash_value_type<_Key, _Tp> > { + typedef _Key key_type; + typedef _Tp mapped_type; + typedef __hash_value_type<_Key, _Tp> __node_value_type; + typedef pair __container_value_type; + typedef pair<_Key, _Tp> __nc_value_type; + typedef __container_value_type __map_value_type; + static const bool __is_map = true; + + _LIBCPP_INLINE_VISIBILITY + static key_type const& __get_key(__container_value_type const& __v) { + return __v.first; + } + + template + _LIBCPP_INLINE_VISIBILITY + static typename enable_if<__is_same_uncvref<_Up, __node_value_type>::value, + __container_value_type const&>::type + __get_value(_Up& __t) { + return __t.__cc; + } + + template + _LIBCPP_INLINE_VISIBILITY + static typename enable_if<__is_same_uncvref<_Up, __container_value_type>::value, + __container_value_type const&>::type + __get_value(_Up& __t) { + return __t; + } + + _LIBCPP_INLINE_VISIBILITY + static __container_value_type* __get_ptr(__node_value_type& __n) { + return _VSTD::addressof(__n.__cc); + } +#ifndef _LIBCPP_CXX03_LANG + _LIBCPP_INLINE_VISIBILITY + static __nc_value_type&& __move(__node_value_type& __v) { + return _VSTD::move(__v.__nc); + } +#endif + +}; + +template , + bool = _KVTypes::__is_map> +struct __hash_map_pointer_types {}; + +template +struct __hash_map_pointer_types<_Tp, _AllocPtr, _KVTypes, true> { + typedef typename _KVTypes::__map_value_type _Mv; + typedef typename __rebind_pointer<_AllocPtr, _Mv>::type + __map_value_type_pointer; + typedef typename __rebind_pointer<_AllocPtr, const _Mv>::type + __const_map_value_type_pointer; +}; + +template ::element_type> +struct __hash_node_types; + +template +struct __hash_node_types<_NodePtr, __hash_node<_Tp, _VoidPtr> > + : public __hash_key_value_types<_Tp>, __hash_map_pointer_types<_Tp, _VoidPtr> + +{ + typedef __hash_key_value_types<_Tp> __base; + +public: + typedef ptrdiff_t difference_type; + typedef size_t size_type; + + typedef typename __rebind_pointer<_NodePtr, void>::type __void_pointer; + + typedef typename pointer_traits<_NodePtr>::element_type __node_type; + typedef _NodePtr __node_pointer; + + typedef __hash_node_base<__node_pointer> __node_base_type; + typedef typename __rebind_pointer<_NodePtr, __node_base_type>::type + __node_base_pointer; + + typedef _Tp __node_value_type; + typedef typename __rebind_pointer<_VoidPtr, __node_value_type>::type + __node_value_type_pointer; + typedef typename __rebind_pointer<_VoidPtr, const __node_value_type>::type + __const_node_value_type_pointer; +private: + static_assert(!is_const<__node_type>::value, + "_NodePtr should never be a pointer to const"); + static_assert((is_same::element_type, void>::value), + "_VoidPtr does not point to unqualified void type"); + static_assert((is_same::type, + _NodePtr>::value), "_VoidPtr does not rebind to _NodePtr."); +}; + + + +template +struct __hash_node_types_from_iterator; +template +struct __hash_node_types_from_iterator<__hash_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {}; +template +struct __hash_node_types_from_iterator<__hash_const_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {}; +template +struct __hash_node_types_from_iterator<__hash_local_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {}; +template +struct __hash_node_types_from_iterator<__hash_const_local_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {}; + + +template +struct __make_hash_node_types { + typedef __hash_node<_NodeValueTp, _VoidPtr> _NodeTp; + typedef typename __rebind_pointer<_VoidPtr, _NodeTp>::type _NodePtr; + typedef __hash_node_types<_NodePtr> type; +}; + template class _LIBCPP_TYPE_VIS_ONLY __hash_iterator { - typedef _NodePtr __node_pointer; + typedef __hash_node_types<_NodePtr> _NodeTypes; + typedef _NodePtr __node_pointer; __node_pointer __node_; public: - typedef forward_iterator_tag iterator_category; - typedef typename pointer_traits<__node_pointer>::element_type::value_type value_type; - typedef typename pointer_traits<__node_pointer>::difference_type difference_type; - typedef value_type& reference; - typedef typename __rebind_pointer<__node_pointer, value_type>::type pointer; + typedef forward_iterator_tag iterator_category; + typedef typename _NodeTypes::__node_value_type value_type; + typedef typename _NodeTypes::difference_type difference_type; + typedef value_type& reference; + typedef typename _NodeTypes::__node_value_type_pointer pointer; _LIBCPP_INLINE_VISIBILITY __hash_iterator() _NOEXCEPT #if _LIBCPP_STD_VER > 11 @@ -202,25 +376,24 @@ private: template friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap; }; -template +template class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator { - typedef _ConstNodePtr __node_pointer; - - __node_pointer __node_; + static_assert(!is_const::element_type>::value, ""); + typedef __hash_node_types<_NodePtr> _NodeTypes; + typedef _NodePtr __node_pointer; - typedef typename remove_const< - typename pointer_traits<__node_pointer>::element_type - >::type __node; + __node_pointer __node_; public: - typedef forward_iterator_tag iterator_category; - typedef typename __node::value_type value_type; - typedef typename pointer_traits<__node_pointer>::difference_type difference_type; - typedef const value_type& reference; - typedef typename __rebind_pointer<__node_pointer, const value_type>::type pointer; - typedef typename __rebind_pointer<__node_pointer, __node>::type __non_const_node_pointer; - typedef __hash_iterator<__non_const_node_pointer> __non_const_iterator; + typedef __hash_iterator<_NodePtr> __non_const_iterator; + + typedef forward_iterator_tag iterator_category; + typedef typename _NodeTypes::__node_value_type value_type; + typedef typename _NodeTypes::difference_type difference_type; + typedef const value_type& reference; + typedef typename _NodeTypes::__const_node_value_type_pointer pointer; + _LIBCPP_INLINE_VISIBILITY __hash_const_iterator() _NOEXCEPT #if _LIBCPP_STD_VER > 11 @@ -336,24 +509,22 @@ private: template friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap; }; -template class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator; - template class _LIBCPP_TYPE_VIS_ONLY __hash_local_iterator { - typedef _NodePtr __node_pointer; + typedef __hash_node_types<_NodePtr> _NodeTypes; + typedef _NodePtr __node_pointer; __node_pointer __node_; size_t __bucket_; size_t __bucket_count_; - typedef pointer_traits<__node_pointer> __pointer_traits; public: typedef forward_iterator_tag iterator_category; - typedef typename __pointer_traits::element_type::value_type value_type; - typedef typename __pointer_traits::difference_type difference_type; + typedef typename _NodeTypes::__node_value_type value_type; + typedef typename _NodeTypes::difference_type difference_type; typedef value_type& reference; - typedef typename __rebind_pointer<__node_pointer, value_type>::type pointer; + typedef typename _NodeTypes::__node_value_type_pointer pointer; _LIBCPP_INLINE_VISIBILITY __hash_local_iterator() _NOEXCEPT { @@ -476,7 +647,8 @@ private: template class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator { - typedef _ConstNodePtr __node_pointer; + typedef __hash_node_types<_ConstNodePtr> _NodeTypes; + typedef _ConstNodePtr __node_pointer; __node_pointer __node_; size_t __bucket_; @@ -487,18 +659,15 @@ class _LIBCPP_TYPE_VIS_ONLY __hash_const typedef typename remove_const<__node>::type __non_const_node; typedef typename __rebind_pointer<__node_pointer, __non_const_node>::type __non_const_node_pointer; - +public: typedef __hash_local_iterator<__non_const_node_pointer> __non_const_iterator; -public: - typedef forward_iterator_tag iterator_category; - typedef typename remove_const< - typename __pointer_traits::element_type::value_type - >::type value_type; - typedef typename __pointer_traits::difference_type difference_type; - typedef const value_type& reference; - typedef typename __rebind_pointer<__node_pointer, const value_type>::type - pointer; + + typedef forward_iterator_tag iterator_category; + typedef typename _NodeTypes::__node_value_type value_type; + typedef typename _NodeTypes::difference_type difference_type; + typedef const value_type& reference; + typedef typename _NodeTypes::__const_node_value_type_pointer pointer; _LIBCPP_INLINE_VISIBILITY __hash_const_local_iterator() _NOEXCEPT @@ -686,10 +855,11 @@ class __hash_node_destructor { typedef _Alloc allocator_type; typedef allocator_traits __alloc_traits; - typedef typename __alloc_traits::value_type::value_type value_type; + public: typedef typename __alloc_traits::pointer pointer; private: + typedef __hash_node_types _NodeTypes; allocator_type& __na_; @@ -709,7 +879,7 @@ public: void operator()(pointer __p) _NOEXCEPT { if (__value_constructed) - __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_)); + __alloc_traits::destroy(__na_, _NodeTypes::__get_ptr(__p->__value_)); if (__p) __alloc_traits::deallocate(__na_, __p, 1); } @@ -728,23 +898,47 @@ public: private: typedef allocator_traits __alloc_traits; + typedef typename + __make_hash_node_types::type + _NodeTypes; public: + + typedef typename _NodeTypes::__node_value_type __node_value_type; + typedef typename _NodeTypes::__container_value_type __container_value_type; + typedef typename _NodeTypes::key_type key_type; typedef value_type& reference; typedef const value_type& const_reference; typedef typename __alloc_traits::pointer pointer; typedef typename __alloc_traits::const_pointer const_pointer; +#ifndef _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; +#else + typedef typename _NodeTypes::size_type size_type; +#endif + typedef typename _NodeTypes::difference_type difference_type; public: // Create __node - typedef __hash_node __node; + + typedef typename _NodeTypes::__node_type __node; typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator; typedef allocator_traits<__node_allocator> __node_traits; - typedef typename __node_traits::pointer __node_pointer; - typedef typename __node_traits::pointer __node_const_pointer; - typedef __hash_node_base<__node_pointer> __first_node; - typedef typename __rebind_pointer<__node_pointer, __first_node>::type - __node_base_pointer; + typedef typename _NodeTypes::__void_pointer __void_pointer; + typedef typename _NodeTypes::__node_pointer __node_pointer; + typedef typename _NodeTypes::__node_pointer __node_const_pointer; + typedef typename _NodeTypes::__node_base_type __first_node; + typedef typename _NodeTypes::__node_base_pointer __node_base_pointer; + +private: + // check for sane allocator pointer rebinding semantics. Rebinding the + // allocator for a new pointer type should be exactly the same as rebinding + // the pointer using 'pointer_traits'. + static_assert((is_same<__node_pointer, typename __node_traits::pointer>::value), + "Allocator does not rebind pointers in a sane manner."); + typedef typename __rebind_alloc_helper<__node_traits, __first_node>::type + __node_base_allocator; + typedef allocator_traits<__node_base_allocator> __node_base_traits; + static_assert((is_same<__node_base_pointer, typename __node_base_traits::pointer>::value), + "Allocator does not rebind pointers in a sane manner."); private: @@ -755,10 +949,10 @@ private: typedef typename __bucket_list_deleter::pointer __node_pointer_pointer; // --- Member data begin --- - __bucket_list __bucket_list_; - __compressed_pair<__first_node, __node_allocator> __p1_; - __compressed_pair __p2_; - __compressed_pair __p3_; + __bucket_list __bucket_list_; + __compressed_pair<__first_node, __node_allocator> __p1_; + __compressed_pair __p2_; + __compressed_pair __p3_; // --- Member data end --- _LIBCPP_INLINE_VISIBILITY @@ -809,7 +1003,7 @@ public: explicit __hash_table(const allocator_type& __a); __hash_table(const __hash_table& __u); __hash_table(const __hash_table& __u, const allocator_type& __a); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Tue Aug 30 19:29:05 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1FA26BC9158 for ; Tue, 30 Aug 2016 19:29:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B6D50384; Tue, 30 Aug 2016 19:29:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UJT4aG020892; Tue, 30 Aug 2016 19:29:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UJT03h020859; Tue, 30 Aug 2016 19:29:00 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608301929.u7UJT03h020859@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 30 Aug 2016 19:29:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305081 - in projects/clang390-import: cddl/contrib/opensolaris/common/ctf contrib/netbsd-tests/usr.bin/dirname contrib/telnet/libtelnet crypto/openssh lib/atf/libatf-c lib/atf/libatf-c... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 19:29:05 -0000 Author: dim Date: Tue Aug 30 19:29:00 2016 New Revision: 305081 URL: https://svnweb.freebsd.org/changeset/base/305081 Log: Merge ^/head r305029 through r305080. Added: projects/clang390-import/crypto/openssh/blacklist.c - copied unchanged from r305080, head/crypto/openssh/blacklist.c projects/clang390-import/crypto/openssh/blacklist_client.h - copied unchanged from r305080, head/crypto/openssh/blacklist_client.h Modified: projects/clang390-import/cddl/contrib/opensolaris/common/ctf/ctf_types.c projects/clang390-import/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh projects/clang390-import/contrib/telnet/libtelnet/pk.c projects/clang390-import/crypto/openssh/auth-pam.c projects/clang390-import/crypto/openssh/auth.c projects/clang390-import/crypto/openssh/auth1.c projects/clang390-import/crypto/openssh/auth2.c projects/clang390-import/crypto/openssh/packet.c projects/clang390-import/crypto/openssh/servconf.c projects/clang390-import/crypto/openssh/servconf.h projects/clang390-import/crypto/openssh/sshd.c projects/clang390-import/crypto/openssh/sshd_config projects/clang390-import/crypto/openssh/sshd_config.5 projects/clang390-import/lib/atf/libatf-c++/Makefile projects/clang390-import/lib/atf/libatf-c/Makefile projects/clang390-import/lib/libdevctl/devctl.3 projects/clang390-import/lib/libdevctl/devctl.c projects/clang390-import/lib/libdevctl/devctl.h projects/clang390-import/sbin/newfs_msdos/mkfs_msdos.c projects/clang390-import/secure/usr.sbin/sshd/Makefile projects/clang390-import/secure/usr.sbin/sshd/Makefile.depend projects/clang390-import/share/man/man9/mbuf.9 projects/clang390-import/sys/arm/allwinner/aw_wdog.c projects/clang390-import/sys/arm/ti/ti_pruss.c projects/clang390-import/sys/arm64/arm64/pmap.c projects/clang390-import/sys/boot/powerpc/boot1.chrp/boot1.c projects/clang390-import/sys/dev/cxgbe/t4_iov.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.h projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis.h projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.h projects/clang390-import/sys/dev/hyperv/netvsc/if_hnvar.h projects/clang390-import/sys/dev/hyperv/netvsc/ndis.h projects/clang390-import/sys/dev/iscsi_initiator/iscsi.h projects/clang390-import/sys/dev/kbdmux/kbdmux.c projects/clang390-import/sys/dev/syscons/syscons.c projects/clang390-import/sys/dev/tsec/if_tsec.h projects/clang390-import/sys/dev/tsec/if_tsec_fdt.c projects/clang390-import/sys/dev/usb/net/if_urndis.c projects/clang390-import/sys/kern/subr_bus.c projects/clang390-import/sys/kern/subr_smp.c projects/clang390-import/sys/net/rndis.h projects/clang390-import/sys/powerpc/mpc85xx/platform_mpc85xx.c projects/clang390-import/sys/sys/bus.h projects/clang390-import/sys/sys/mbuf.h projects/clang390-import/sys/vm/swap_pager.c projects/clang390-import/sys/vm/vm_page.c projects/clang390-import/tools/tools/crypto/cryptotest.c projects/clang390-import/usr.bin/newkey/generic.c projects/clang390-import/usr.sbin/bhyve/pci_e82545.c projects/clang390-import/usr.sbin/devctl/devctl.8 projects/clang390-import/usr.sbin/devctl/devctl.c Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/cddl/ (props changed) projects/clang390-import/cddl/contrib/opensolaris/ (props changed) projects/clang390-import/crypto/openssh/ (props changed) Modified: projects/clang390-import/cddl/contrib/opensolaris/common/ctf/ctf_types.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/common/ctf/ctf_types.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/cddl/contrib/opensolaris/common/ctf/ctf_types.c Tue Aug 30 19:29:00 2016 (r305081) @@ -644,11 +644,8 @@ ctf_type_compat(ctf_file_t *lfp, ctf_id_ } } -/* - * Return the type and offset for a given member of a STRUCT or UNION. - */ -int -ctf_member_info(ctf_file_t *fp, ctf_id_t type, const char *name, +static int +_ctf_member_info(ctf_file_t *fp, ctf_id_t type, const char *name, ulong_t off, ctf_membinfo_t *mip) { ctf_file_t *ofp = fp; @@ -673,9 +670,13 @@ ctf_member_info(ctf_file_t *fp, ctf_id_t ((uintptr_t)tp + increment); for (n = LCTF_INFO_VLEN(fp, tp->ctt_info); n != 0; n--, mp++) { + if (mp->ctm_name == 0 && + _ctf_member_info(fp, mp->ctm_type, name, + mp->ctm_offset + off, mip) == 0) + return (0); if (strcmp(ctf_strptr(fp, mp->ctm_name), name) == 0) { mip->ctm_type = mp->ctm_type; - mip->ctm_offset = mp->ctm_offset; + mip->ctm_offset = mp->ctm_offset + off; return (0); } } @@ -684,9 +685,14 @@ ctf_member_info(ctf_file_t *fp, ctf_id_t ((uintptr_t)tp + increment); for (n = LCTF_INFO_VLEN(fp, tp->ctt_info); n != 0; n--, lmp++) { + if (lmp->ctlm_name == 0 && + _ctf_member_info(fp, lmp->ctlm_name, name, + (ulong_t)CTF_LMEM_OFFSET(lmp) + off, mip) == 0) + return (0); if (strcmp(ctf_strptr(fp, lmp->ctlm_name), name) == 0) { mip->ctm_type = lmp->ctlm_type; - mip->ctm_offset = (ulong_t)CTF_LMEM_OFFSET(lmp); + mip->ctm_offset = + (ulong_t)CTF_LMEM_OFFSET(lmp) + off; return (0); } } @@ -696,6 +702,17 @@ ctf_member_info(ctf_file_t *fp, ctf_id_t } /* + * Return the type and offset for a given member of a STRUCT or UNION. + */ +int +ctf_member_info(ctf_file_t *fp, ctf_id_t type, const char *name, + ctf_membinfo_t *mip) +{ + + return (_ctf_member_info(fp, type, name, 0, mip)); +} + +/* * Return the array type, index, and size information for the specified ARRAY. */ int Modified: projects/clang390-import/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh ============================================================================== --- projects/clang390-import/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/contrib/netbsd-tests/usr.bin/dirname/t_dirname.sh Tue Aug 30 19:29:00 2016 (r305081) @@ -33,7 +33,7 @@ basic_head() basic_body() { # Begin FreeBSD - atf_tc_expect_fail "dirname //usr//bin doesn't return //usr like it used to; bug # 212193" + atf_expect_fail "dirname //usr//bin doesn't return //usr like it used to; bug # 212193" # End FreeBSD atf_check -o inline:"/\n" dirname / atf_check -o inline:"/\n" dirname // Modified: projects/clang390-import/contrib/telnet/libtelnet/pk.c ============================================================================== --- projects/clang390-import/contrib/telnet/libtelnet/pk.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/contrib/telnet/libtelnet/pk.c Tue Aug 30 19:29:00 2016 (r305081) @@ -164,7 +164,7 @@ genkeys(char *public, char *secret) MINT *pk = mp_itom(0); MINT *sk = mp_itom(0); MINT *tmp; - MINT *base = mp_itom(BASE); + MINT *base = mp_itom((short)BASE); MINT *root = mp_itom(PROOT); MINT *modulus = mp_xtom(HEXMODULUS); short r; Modified: projects/clang390-import/crypto/openssh/auth-pam.c ============================================================================== --- projects/clang390-import/crypto/openssh/auth-pam.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/auth-pam.c Tue Aug 30 19:29:00 2016 (r305081) @@ -98,6 +98,7 @@ #include "ssh-gss.h" #endif #include "monitor_wrap.h" +#include "blacklist_client.h" extern ServerOptions options; extern Buffer loginmsg; @@ -794,6 +795,7 @@ sshpam_query(void *ctx, char **name, cha free(msg); return (0); } + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL); error("PAM: %s for %s%.100s from %.100s", msg, sshpam_authctxt->valid ? "" : "illegal user ", sshpam_authctxt->user, Modified: projects/clang390-import/crypto/openssh/auth.c ============================================================================== --- projects/clang390-import/crypto/openssh/auth.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/auth.c Tue Aug 30 19:29:00 2016 (r305081) @@ -75,6 +75,7 @@ __RCSID("$FreeBSD$"); #include "authfile.h" #include "ssherr.h" #include "compat.h" +#include "blacklist_client.h" /* import */ extern ServerOptions options; @@ -292,8 +293,11 @@ auth_log(Authctxt *authctxt, int authent authmsg = "Postponed"; else if (partial) authmsg = "Partial"; - else + else { authmsg = authenticated ? "Accepted" : "Failed"; + BLACKLIST_NOTIFY(authenticated ? + BLACKLIST_AUTH_OK : BLACKLIST_AUTH_FAIL); + } authlog("%s %s%s%s for %s%.100s from %.200s port %d %s%s%s", authmsg, @@ -640,6 +644,7 @@ getpwnamallow(const char *user) } #endif if (pw == NULL) { + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL); logit("Invalid user %.100s from %.100s", user, get_remote_ipaddr()); #ifdef CUSTOM_FAILED_LOGIN Modified: projects/clang390-import/crypto/openssh/auth1.c ============================================================================== --- projects/clang390-import/crypto/openssh/auth1.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/auth1.c Tue Aug 30 19:29:00 2016 (r305081) @@ -43,6 +43,7 @@ #endif #include "monitor_wrap.h" #include "buffer.h" +#include "blacklist_client.h" /* import */ extern ServerOptions options; @@ -337,6 +338,7 @@ do_authloop(Authctxt *authctxt) char *msg; size_t len; + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL); error("Access denied for user %s by PAM account " "configuration", authctxt->user); len = buffer_len(&loginmsg); @@ -404,6 +406,7 @@ do_authentication(Authctxt *authctxt) else { debug("do_authentication: invalid user %s", user); authctxt->pw = fakepw(); + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL); } /* Configuration may have changed as a result of Match */ Modified: projects/clang390-import/crypto/openssh/auth2.c ============================================================================== --- projects/clang390-import/crypto/openssh/auth2.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/auth2.c Tue Aug 30 19:29:00 2016 (r305081) @@ -52,6 +52,7 @@ __RCSID("$FreeBSD$"); #include "pathnames.h" #include "buffer.h" #include "canohost.h" +#include "blacklist_client.h" #ifdef GSSAPI #include "ssh-gss.h" @@ -248,6 +249,7 @@ input_userauth_request(int type, u_int32 } else { logit("input_userauth_request: invalid user %s", user); authctxt->pw = fakepw(); + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL); #ifdef SSH_AUDIT_EVENTS PRIVSEP(audit_event(SSH_INVALID_USER)); #endif Copied: projects/clang390-import/crypto/openssh/blacklist.c (from r305080, head/crypto/openssh/blacklist.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/crypto/openssh/blacklist.c Tue Aug 30 19:29:00 2016 (r305081, copy of r305080, head/crypto/openssh/blacklist.c) @@ -0,0 +1,97 @@ +/*- + * Copyright (c) 2015 The NetBSD Foundation, Inc. + * Copyright (c) 2016 The FreeBSD Foundation, Inc. + * All rights reserved. + * + * Portions of this software were developed by Kurt Lidl + * under sponsorship from the FreeBSD Foundation. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "includes.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "ssh.h" +#include "packet.h" +#include "log.h" +#include "misc.h" +#include "servconf.h" +#include "blacklist_client.h" +#include + +static struct blacklist *blstate = NULL; + +/* import */ +extern ServerOptions options; + +/* internal definition from bl.h */ +struct blacklist *bl_create(bool, char *, void (*)(int, const char *, va_list)); + +/* impedence match vsyslog() to sshd's internal logging levels */ +void +im_log(int priority, const char *message, va_list args) +{ + LogLevel imlevel; + + switch (priority) { + case LOG_ERR: + imlevel = SYSLOG_LEVEL_ERROR; + break; + case LOG_DEBUG: + imlevel = SYSLOG_LEVEL_DEBUG1; + break; + case LOG_INFO: + imlevel = SYSLOG_LEVEL_INFO; + break; + default: + imlevel = SYSLOG_LEVEL_DEBUG2; + } + do_log(imlevel, message, args); +} + +void +blacklist_init(void) +{ + + if (options.use_blacklist) + blstate = bl_create(false, NULL, im_log); +} + +void +blacklist_notify(int action) +{ + + if (blstate != NULL && packet_connection_is_on_socket()) + (void)blacklist_r(blstate, action, + packet_get_connection_in(), "ssh"); +} Copied: projects/clang390-import/crypto/openssh/blacklist_client.h (from r305080, head/crypto/openssh/blacklist_client.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/crypto/openssh/blacklist_client.h Tue Aug 30 19:29:00 2016 (r305081, copy of r305080, head/crypto/openssh/blacklist_client.h) @@ -0,0 +1,57 @@ +/*- + * Copyright (c) 2015 The NetBSD Foundation, Inc. + * Copyright (c) 2016 The FreeBSD Foundation, Inc. + * All rights reserved. + * + * Portions of this software were developed by Kurt Lidl + * under sponsorship from the FreeBSD Foundation. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef BLACKLIST_CLIENT_H +#define BLACKLIST_CLIENT_H + +enum { + BLACKLIST_AUTH_OK = 0, + BLACKLIST_AUTH_FAIL +}; + +#ifdef USE_BLACKLIST +void blacklist_init(void); +void blacklist_notify(int); + +#define BLACKLIST_INIT() blacklist_init() +#define BLACKLIST_NOTIFY(x) blacklist_notify(x) + +#else + +#define BLACKLIST_INIT() +#define BLACKLIST_NOTIFY(x) + +#endif + + +#endif /* BLACKLIST_CLIENT_H */ Modified: projects/clang390-import/crypto/openssh/packet.c ============================================================================== --- projects/clang390-import/crypto/openssh/packet.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/packet.c Tue Aug 30 19:29:00 2016 (r305081) @@ -86,6 +86,7 @@ __RCSID("$FreeBSD$"); #include "packet.h" #include "ssherr.h" #include "sshbuf.h" +#include "blacklist_client.h" #ifdef PACKET_DEBUG #define DBG(x) x @@ -2071,6 +2072,7 @@ sshpkt_fatal(struct ssh *ssh, const char case SSH_ERR_NO_KEX_ALG_MATCH: case SSH_ERR_NO_HOSTKEY_ALG_MATCH: if (ssh && ssh->kex && ssh->kex->failed_choice) { + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL); fatal("Unable to negotiate with %.200s port %d: %s. " "Their offer: %s", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), ssh_err(r), Modified: projects/clang390-import/crypto/openssh/servconf.c ============================================================================== --- projects/clang390-import/crypto/openssh/servconf.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/servconf.c Tue Aug 30 19:29:00 2016 (r305081) @@ -172,6 +172,7 @@ initialize_server_options(ServerOptions options->ip_qos_bulk = -1; options->version_addendum = NULL; options->fingerprint_hash = -1; + options->use_blacklist = -1; } /* Returns 1 if a string option is unset or set to "none" or 0 otherwise. */ @@ -360,6 +361,8 @@ fill_default_server_options(ServerOption options->fwd_opts.streamlocal_bind_unlink = 0; if (options->fingerprint_hash == -1) options->fingerprint_hash = SSH_FP_HASH_DEFAULT; + if (options->use_blacklist == -1) + options->use_blacklist = 0; assemble_algorithms(options); @@ -437,6 +440,7 @@ typedef enum { sAuthenticationMethods, sHostKeyAgent, sPermitUserRC, sStreamLocalBindMask, sStreamLocalBindUnlink, sAllowStreamLocalForwarding, sFingerprintHash, + sUseBlacklist, sDeprecated, sUnsupported } ServerOpCodes; @@ -579,6 +583,7 @@ static struct { { "streamlocalbindunlink", sStreamLocalBindUnlink, SSHCFG_ALL }, { "allowstreamlocalforwarding", sAllowStreamLocalForwarding, SSHCFG_ALL }, { "fingerprinthash", sFingerprintHash, SSHCFG_GLOBAL }, + { "useblacklist", sUseBlacklist, SSHCFG_GLOBAL }, { "noneenabled", sUnsupported, SSHCFG_ALL }, { "hpndisabled", sDeprecated, SSHCFG_ALL }, { "hpnbuffersize", sDeprecated, SSHCFG_ALL }, @@ -1861,6 +1866,10 @@ process_server_config_line(ServerOptions options->fingerprint_hash = value; break; + case sUseBlacklist: + intptr = &options->use_blacklist; + goto parse_flag; + case sDeprecated: logit("%s line %d: Deprecated option %s", filename, linenum, arg); @@ -2304,6 +2313,7 @@ dump_config(ServerOptions *o) dump_cfg_fmtint(sAllowStreamLocalForwarding, o->allow_streamlocal_forwarding); dump_cfg_fmtint(sUsePrivilegeSeparation, use_privsep); dump_cfg_fmtint(sFingerprintHash, o->fingerprint_hash); + dump_cfg_fmtint(sUseBlacklist, o->use_blacklist); /* string arguments */ dump_cfg_string(sPidFile, o->pid_file); Modified: projects/clang390-import/crypto/openssh/servconf.h ============================================================================== --- projects/clang390-import/crypto/openssh/servconf.h Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/servconf.h Tue Aug 30 19:29:00 2016 (r305081) @@ -195,6 +195,7 @@ typedef struct { char *auth_methods[MAX_AUTH_METHODS]; int fingerprint_hash; + int use_blacklist; } ServerOptions; /* Information about the incoming connection as used by Match */ Modified: projects/clang390-import/crypto/openssh/sshd.c ============================================================================== --- projects/clang390-import/crypto/openssh/sshd.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/sshd.c Tue Aug 30 19:29:00 2016 (r305081) @@ -135,6 +135,7 @@ __RCSID("$FreeBSD$"); #include "ssh-sandbox.h" #include "version.h" #include "ssherr.h" +#include "blacklist_client.h" #ifdef LIBWRAP #include @@ -388,6 +389,8 @@ grace_alarm_handler(int sig) kill(0, SIGTERM); } + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL); + /* Log error and exit. */ sigdie("Timeout before authentication for %s", get_remote_ipaddr()); } @@ -2251,6 +2254,8 @@ main(int ac, char **av) buffer_init(&loginmsg); auth_debug_reset(); + BLACKLIST_INIT(); + if (use_privsep) { if (privsep_preauth(authctxt) == 1) goto authenticated; Modified: projects/clang390-import/crypto/openssh/sshd_config ============================================================================== --- projects/clang390-import/crypto/openssh/sshd_config Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/sshd_config Tue Aug 30 19:29:00 2016 (r305081) @@ -120,6 +120,7 @@ #MaxStartups 10:30:100 #PermitTunnel no #ChrootDirectory none +#UseBlacklist no #VersionAddendum FreeBSD-20160310 # no default banner path Modified: projects/clang390-import/crypto/openssh/sshd_config.5 ============================================================================== --- projects/clang390-import/crypto/openssh/sshd_config.5 Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/crypto/openssh/sshd_config.5 Tue Aug 30 19:29:00 2016 (r305081) @@ -1537,6 +1537,15 @@ for authentication using .Cm TrustedUserCAKeys . For more details on certificates, see the CERTIFICATES section in .Xr ssh-keygen 1 . +.It Cm UseBlacklist +Specifies whether +.Xr sshd 8 +attempts to send authentication success and failure messages +to the +.Xr blacklistd 8 +daemon. +The default is +.Dq no . .It Cm UseDNS Specifies whether .Xr sshd 8 Modified: projects/clang390-import/lib/atf/libatf-c++/Makefile ============================================================================== --- projects/clang390-import/lib/atf/libatf-c++/Makefile Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/lib/atf/libatf-c++/Makefile Tue Aug 30 19:29:00 2016 (r305081) @@ -35,15 +35,15 @@ SHLIB_MAJOR= 2 # libatf-c++ depends on the C version of the ATF library to build. LIBADD+= atf_c -LDFLAGS+= -L${.OBJDIR}/../libatf-c +LDFLAGS+= -L${.OBJDIR:H}/libatf-c -ATF= ${.CURDIR:H:H:H}/contrib/atf +ATF= ${SRCTOP}/contrib/atf .PATH: ${ATF} .PATH: ${ATF}/atf-c++ .PATH: ${ATF}/atf-c++/detail CFLAGS+= -I${ATF} -CFLAGS+= -I${.CURDIR}/../libatf-c +CFLAGS+= -I${.CURDIR:H}/libatf-c CFLAGS+= -I. CFLAGS+= -DHAVE_CONFIG_H Modified: projects/clang390-import/lib/atf/libatf-c/Makefile ============================================================================== --- projects/clang390-import/lib/atf/libatf-c/Makefile Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/lib/atf/libatf-c/Makefile Tue Aug 30 19:29:00 2016 (r305081) @@ -28,25 +28,25 @@ .include .include -_CFLAGS:= ${CFLAGS} -_CPPFLAGS:= ${CPPFLAGS} -_CXXFLAGS:= ${CXXFLAGS} +ATF_BUILD_CFLAGS:= ${CFLAGS:M-[DILOWf]*} +ATF_BUILD_CPPFLAGS:= ${CPPFLAGS:M-[DILOWf]*} +ATF_BUILD_CXXFLAGS:= ${CXXFLAGS:M-[DILOWf]*} LIB= atf-c PRIVATELIB= true SHLIB_MAJOR= 1 -ATF= ${.CURDIR:H:H:H}/contrib/atf +ATF= ${SRCTOP}/contrib/atf .PATH: ${ATF} .PATH: ${ATF}/atf-c .PATH: ${ATF}/atf-c/detail CFLAGS+= -DATF_BUILD_CC='"${CC}"' -CFLAGS+= -DATF_BUILD_CFLAGS='"${_CFLAGS}"' +CFLAGS+= -DATF_BUILD_CFLAGS='"${ATF_BUILD_CFLAGS}"' CFLAGS+= -DATF_BUILD_CPP='"${CPP}"' -CFLAGS+= -DATF_BUILD_CPPFLAGS='"${_CPPFLAGS}"' +CFLAGS+= -DATF_BUILD_CPPFLAGS='"${ATF_BUILD_CPPFLAGS}"' CFLAGS+= -DATF_BUILD_CXX='"${CXX}"' -CFLAGS+= -DATF_BUILD_CXXFLAGS='"${_CXXFLAGS}"' +CFLAGS+= -DATF_BUILD_CXXFLAGS='"${ATF_BUILD_CXXFLAGS}"' CFLAGS+= -I${ATF} CFLAGS+= -I${.CURDIR} CFLAGS+= -I. Modified: projects/clang390-import/lib/libdevctl/devctl.3 ============================================================================== --- projects/clang390-import/lib/libdevctl/devctl.3 Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/lib/libdevctl/devctl.3 Tue Aug 30 19:29:00 2016 (r305081) @@ -25,12 +25,13 @@ .\" .\" $FreeBSD$ .\" -.Dd April 27, 2016 +.Dd August 29, 2016 .Dt DEVCTL 3 .Os .Sh NAME .Nm devctl , .Nm devctl_attach , +.Nm devctl_clear_driver , .Nm devctl_delete , .Nm devctl_detach , .Nm devctl_disable , @@ -47,6 +48,8 @@ .Ft int .Fn devctl_attach "const char *device" .Ft int +.Fn devctl_clear_driver "const char *device" "bool force" +.Ft int .Fn devctl_delete "const char *device" "bool force" .Ft int .Fn devctl_detach "const char *device" "bool force" @@ -166,12 +169,30 @@ the device will be detached from its cur attached to the new device driver. .Pp The +.Fn devctl_clear_driver +function resets a device so that it can be attached to any valid device +driver rather than only drivers with a previously specified name. +This function is used to undo a previous call to +.Fn devctl_set_driver . +If the device is already attached and +.Fa force +is false, +the request will fail. +If the device is already attached and +.Fa force +is true, +the device will be detached from its current device driver. +After the device's name is reset, +it is reprobed and attached to a suitable device driver if one is found. +.Pp +The .Fn devctl_rescan function rescans a bus device checking for devices that have been added or removed. .Sh RETURN VALUES -.Rv -std devctl_attach devctl_delete devctl_detach devctl_disable \ -devctl_enable devctl_suspend devctl_rescan devctl_resume devctl_set_driver +.Rv -std devctl_attach devctl_clear_driver devctl_delete devctl_detach \ +devctl_disable devctl_enable devctl_suspend devctl_rescan devctl_resume \ +devctl_set_driver .Sh ERRORS In addition to specific errors noted below, all of the @@ -302,6 +323,24 @@ The new device driver failed to attach. .El .Pp The +.Fn devctl_clear_driver +function may fail if: +.Bl -tag -width Er +.It Bq Er EBUSY +The device is currently attached to a device driver and +.Fa force +is false. +.It Bq Er EBUSY +The current device driver for +.Fa device +is busy and cannot detach at this time. +.It Bq Er EINVAL +The device is not configured for a specific device driver name. +.It Bq Er ENXIO +The device driver chosen after reprobing failed to attach. +.El +.Pp +The .Fn devctl_rescan function may fail if: .Bl -tag -width Er Modified: projects/clang390-import/lib/libdevctl/devctl.c ============================================================================== --- projects/clang390-import/lib/libdevctl/devctl.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/lib/libdevctl/devctl.c Tue Aug 30 19:29:00 2016 (r305081) @@ -124,6 +124,14 @@ devctl_set_driver(const char *device, co } int +devctl_clear_driver(const char *device, bool force) +{ + + return (devctl_simple_request(DEV_CLEAR_DRIVER, device, force ? + DEVF_CLEAR_DRIVER_DETACH : 0)); +} + +int devctl_rescan(const char *device) { Modified: projects/clang390-import/lib/libdevctl/devctl.h ============================================================================== --- projects/clang390-import/lib/libdevctl/devctl.h Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/lib/libdevctl/devctl.h Tue Aug 30 19:29:00 2016 (r305081) @@ -38,6 +38,7 @@ int devctl_disable(const char *device, b int devctl_suspend(const char *device); int devctl_resume(const char *device); int devctl_set_driver(const char *device, const char *driver, bool force); +int devctl_clear_driver(const char *device, bool force); int devctl_rescan(const char *device); int devctl_delete(const char *device, bool force); Modified: projects/clang390-import/sbin/newfs_msdos/mkfs_msdos.c ============================================================================== --- projects/clang390-import/sbin/newfs_msdos/mkfs_msdos.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/sbin/newfs_msdos/mkfs_msdos.c Tue Aug 30 19:29:00 2016 (r305081) @@ -313,15 +313,8 @@ mkfs_msdos(const char *fname, const char bpb.bpbHiddenSecs = o.hidden_sectors; if (!(o.floppy || (o.drive_heads && o.sectors_per_track && o.bytes_per_sector && o.size && o.hidden_sectors_set))) { - off_t delta; getdiskinfo(fd, fname, dtype, o.hidden_sectors_set, &bpb); bpb.bpbHugeSectors -= (o.offset / bpb.bpbBytesPerSec); - delta = bpb.bpbHugeSectors % bpb.bpbSecPerTrack; - if (delta != 0) { - warnx("trim %d sectors to adjust to a multiple of %d", - (int)delta, bpb.bpbSecPerTrack); - bpb.bpbHugeSectors -= delta; - } if (bpb.bpbSecPerClust == 0) { /* set defaults */ if (bpb.bpbHugeSectors <= 6000) /* about 3MB -> 512 bytes */ bpb.bpbSecPerClust = 1; @@ -563,7 +556,7 @@ mkfs_msdos(const char *fname, const char bpb.bpbMedia = !bpb.bpbHiddenSecs ? 0xf0 : 0xf8; if (fat == 32) bpb.bpbRootClust = RESFTE; - if (bpb.bpbHiddenSecs + bpb.bpbHugeSectors <= MAXU16) { + if (bpb.bpbHugeSectors <= MAXU16) { bpb.bpbSectors = bpb.bpbHugeSectors; bpb.bpbHugeSectors = 0; } Modified: projects/clang390-import/secure/usr.sbin/sshd/Makefile ============================================================================== --- projects/clang390-import/secure/usr.sbin/sshd/Makefile Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/secure/usr.sbin/sshd/Makefile Tue Aug 30 19:29:00 2016 (r305081) @@ -40,6 +40,13 @@ CFLAGS+= -DUSE_BSM_AUDIT -DHAVE_GETAUDIT LIBADD+= bsm .endif +.if ${MK_BLACKLIST_SUPPORT} != "no" +CFLAGS+= -DUSE_BLACKLIST -I${SRCTOP}/contrib/blacklist/include +SRCS+= blacklist.c +LIBADD+= blacklist +LDFLAGS+=-L${LIBBLACKLISTDIR} +.endif + .if ${MK_KERBEROS_SUPPORT} != "no" CFLAGS+= -include krb5_config.h SRCS+= krb5_config.h Modified: projects/clang390-import/secure/usr.sbin/sshd/Makefile.depend ============================================================================== --- projects/clang390-import/secure/usr.sbin/sshd/Makefile.depend Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/secure/usr.sbin/sshd/Makefile.depend Tue Aug 30 19:29:00 2016 (r305081) @@ -17,6 +17,7 @@ DIRDEPS = \ kerberos5/lib/libroken \ kerberos5/lib/libwind \ lib/${CSU_DIR} \ + lib/libblacklist \ lib/libbsm \ lib/libc \ lib/libcom_err \ Modified: projects/clang390-import/share/man/man9/mbuf.9 ============================================================================== --- projects/clang390-import/share/man/man9/mbuf.9 Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/share/man/man9/mbuf.9 Tue Aug 30 19:29:00 2016 (r305081) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 29, 2016 +.Dd August 30, 2016 .Dt MBUF 9 .Os .\" @@ -255,7 +255,7 @@ The available external buffer types are #define EXT_JUMBO9 4 /* jumbo cluster 9216 bytes */ #define EXT_JUMBO16 5 /* jumbo cluster 16184 bytes */ #define EXT_PACKET 6 /* mbuf+cluster from packet zone */ -#define EXT_MBUF 7 /* external mbuf reference (M_IOVEC) */ +#define EXT_MBUF 7 /* external mbuf reference */ #define EXT_NET_DRV 252 /* custom ext_buf provided by net driver(s) */ #define EXT_MOD_TYPE 253 /* custom module's ext_buf type */ #define EXT_DISPOSABLE 254 /* can throw this buffer away w/page flipping */ Modified: projects/clang390-import/sys/arm/allwinner/aw_wdog.c ============================================================================== --- projects/clang390-import/sys/arm/allwinner/aw_wdog.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/sys/arm/allwinner/aw_wdog.c Tue Aug 30 19:29:00 2016 (r305081) @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -54,6 +55,7 @@ __FBSDID("$FreeBSD$"); #define A10_WDOG_CTRL 0x00 #define A31_WDOG_CTRL 0x10 #define WDOG_CTRL_RESTART (1 << 0) +#define A31_WDOG_CTRL_KEY (0xa57 << 1) #define A10_WDOG_MODE 0x04 #define A31_WDOG_MODE 0x18 #define A10_WDOG_MODE_INTVL_SHIFT 3 @@ -92,6 +94,7 @@ struct aw_wdog_softc { struct resource * res; struct mtx mtx; uint8_t wdog_ctrl; + uint32_t wdog_ctrl_key; uint8_t wdog_mode; uint8_t wdog_mode_intvl_shift; uint8_t wdog_mode_en; @@ -108,7 +111,8 @@ static struct ofw_compat_data compat_dat {NULL, 0} }; -static void aw_wdog_watchdog_fn(void *private, u_int cmd, int *error); +static void aw_wdog_watchdog_fn(void *, u_int, int *); +static void aw_wdog_shutdown_fn(void *, int); static int aw_wdog_probe(device_t dev) @@ -160,6 +164,7 @@ aw_wdog_attach(device_t dev) break; case A31_WATCHDOG: sc->wdog_ctrl = A31_WDOG_CTRL; + sc->wdog_ctrl_key = A31_WDOG_CTRL_KEY; sc->wdog_mode = A31_WDOG_MODE; sc->wdog_mode_intvl_shift = A31_WDOG_MODE_INTVL_SHIFT; sc->wdog_mode_en = WDOG_MODE_EN; @@ -173,6 +178,9 @@ aw_wdog_attach(device_t dev) mtx_init(&sc->mtx, "AW Watchdog", "aw_wdog", MTX_DEF); EVENTHANDLER_REGISTER(watchdog_list, aw_wdog_watchdog_fn, sc, 0); + EVENTHANDLER_REGISTER(shutdown_final, aw_wdog_shutdown_fn, sc, + SHUTDOWN_PRI_LAST - 1); + return (0); } @@ -198,7 +206,8 @@ aw_wdog_watchdog_fn(void *private, u_int WRITE(sc, sc->wdog_mode, (wd_intervals[i].value << sc->wdog_mode_intvl_shift) | sc->wdog_mode_en); - WRITE(sc, sc->wdog_ctrl, WDOG_CTRL_RESTART); + WRITE(sc, sc->wdog_ctrl, + WDOG_CTRL_RESTART | sc->wdog_ctrl_key); if (sc->wdog_config) WRITE(sc, sc->wdog_config, sc->wdog_config_value); @@ -222,6 +231,13 @@ aw_wdog_watchdog_fn(void *private, u_int mtx_unlock(&sc->mtx); } +static void +aw_wdog_shutdown_fn(void *private, int howto) +{ + if ((howto & (RB_POWEROFF|RB_HALT)) == 0) + aw_wdog_watchdog_reset(); +} + void aw_wdog_watchdog_reset() { @@ -237,6 +253,8 @@ aw_wdog_watchdog_reset() if (aw_wdog_sc->wdog_config) WRITE(aw_wdog_sc, aw_wdog_sc->wdog_config, aw_wdog_sc->wdog_config_value); + WRITE(aw_wdog_sc, aw_wdog_sc->wdog_ctrl, + WDOG_CTRL_RESTART | aw_wdog_sc->wdog_ctrl_key); while(1) ; Modified: projects/clang390-import/sys/arm/ti/ti_pruss.c ============================================================================== --- projects/clang390-import/sys/arm/ti/ti_pruss.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/sys/arm/ti/ti_pruss.c Tue Aug 30 19:29:00 2016 (r305081) @@ -310,7 +310,9 @@ ti_pruss_kqfilter(struct cdev *cdev, str case EVFILT_READ: kn->kn_hook = sc; kn->kn_fop = &ti_pruss_kq_read; + mtx_lock(&sc->sc_mtx); knlist_add(&sc->sc_selinfo.si_note, kn, 1); + mtx_unlock(&sc->sc_mtx); break; default: return (EINVAL); Modified: projects/clang390-import/sys/arm64/arm64/pmap.c ============================================================================== --- projects/clang390-import/sys/arm64/arm64/pmap.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/sys/arm64/arm64/pmap.c Tue Aug 30 19:29:00 2016 (r305081) @@ -2936,14 +2936,17 @@ validate: PTE_SYNC(l3); pmap_invalidate_page(pmap, va); - if ((pmap != pmap_kernel()) && (pmap == &curproc->p_vmspace->vm_pmap)) - cpu_icache_sync_range(va, PAGE_SIZE); - - if ((mpte == NULL || mpte->wire_count == NL3PG) && - pmap_superpages_enabled() && (m->flags & PG_FICTITIOUS) == 0 && - vm_reserv_level_iffullpop(m) == 0) { - KASSERT(lvl == 2, ("Invalid pde level %d", lvl)); - pmap_promote_l2(pmap, pde, va, &lock); + if (pmap != pmap_kernel()) { + if (pmap == &curproc->p_vmspace->vm_pmap) + cpu_icache_sync_range(va, PAGE_SIZE); + + if ((mpte == NULL || mpte->wire_count == NL3PG) && + pmap_superpages_enabled() && + (m->flags & PG_FICTITIOUS) == 0 && + vm_reserv_level_iffullpop(m) == 0) { + KASSERT(lvl == 2, ("Invalid pde level %d", lvl)); + pmap_promote_l2(pmap, pde, va, &lock); + } } if (lock != NULL) Modified: projects/clang390-import/sys/boot/powerpc/boot1.chrp/boot1.c ============================================================================== --- projects/clang390-import/sys/boot/powerpc/boot1.chrp/boot1.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/sys/boot/powerpc/boot1.chrp/boot1.c Tue Aug 30 19:29:00 2016 (r305081) @@ -137,7 +137,9 @@ ofw_init(void *vpd, int res, int (*openf p = bootpath; while (*p != '\0') { + /* Truncate partition ID */ if (*p == ':') { + ofw_close(bootdev); *(++p) = '\0'; break; } @@ -419,31 +421,40 @@ main(int ac, char **av) memcpy(bootpath_full,bootpath,len+1); - if (bootpath_full[len-1] == ':') { - for (i = 0; i < 16; i++) { - if (i < 10) { - bootpath_full[len] = i + '0'; - bootpath_full[len+1] = '\0'; - } else { - bootpath_full[len] = '1'; - bootpath_full[len+1] = i - 10 + '0'; - bootpath_full[len+2] = '\0'; - } - - if (domount(bootpath_full,1) >= 0) - break; - - if (bootdev > 0) - ofw_close(bootdev); + if (bootpath_full[len-1] != ':') { + /* First try full volume */ + if (domount(bootpath_full,1) == 0) + goto out; + + /* Add a : so that we try partitions if that fails */ + if (bootdev > 0) + ofw_close(bootdev); + bootpath_full[len] = ':'; + len += 1; + } + + /* Loop through first 16 partitions to find a UFS one */ + for (i = 0; i < 16; i++) { + if (i < 10) { + bootpath_full[len] = i + '0'; + bootpath_full[len+1] = '\0'; + } else { + bootpath_full[len] = '1'; + bootpath_full[len+1] = i - 10 + '0'; + bootpath_full[len+2] = '\0'; } + + if (domount(bootpath_full,1) >= 0) + break; - if (i >= 16) - panic("domount"); - } else { - if (domount(bootpath_full,0) == -1) - panic("domount"); + if (bootdev > 0) + ofw_close(bootdev); } + if (i >= 16) + panic("domount"); + +out: printf(" Boot volume: %s\n",bootpath_full); ofw_setprop(chosenh, "bootargs", bootpath_full, len+2); load(path); Modified: projects/clang390-import/sys/dev/cxgbe/t4_iov.c ============================================================================== --- projects/clang390-import/sys/dev/cxgbe/t4_iov.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/sys/dev/cxgbe/t4_iov.c Tue Aug 30 19:29:00 2016 (r305081) @@ -209,10 +209,15 @@ static int t4iov_detach(device_t dev) { struct t4iov_softc *sc; + int error; sc = device_get_softc(dev); - if (sc->sc_attached) - return (t4iov_detach_child(dev)); + if (sc->sc_attached) { + error = t4iov_detach_child(dev); + if (error) + return (error); + } + device_verbose(dev); return (0); } Modified: projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.c Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.c Tue Aug 30 19:29:00 2016 (r305081) @@ -74,8 +74,6 @@ static void hv_nv_on_receive(struct hn_s static void hn_nvs_sent_none(struct hn_send_ctx *sndc, struct hn_softc *, struct vmbus_channel *chan, const void *, int); -static void hn_nvs_sent_xact(struct hn_send_ctx *, struct hn_softc *sc, - struct vmbus_channel *, const void *, int); struct hn_send_ctx hn_send_ctx_none = HN_SEND_CTX_INITIALIZER(hn_nvs_sent_none, NULL); @@ -643,7 +641,7 @@ cleanup: * Net VSC on device remove */ int -hv_nv_on_device_remove(struct hn_softc *sc, boolean_t destroy_channel) +hv_nv_on_device_remove(struct hn_softc *sc) { hv_nv_disconnect_from_vsp(sc); @@ -655,7 +653,7 @@ hv_nv_on_device_remove(struct hn_softc * return (0); } -static void +void hn_nvs_sent_xact(struct hn_send_ctx *sndc, struct hn_softc *sc __unused, struct vmbus_channel *chan __unused, const void *data, int dlen) Modified: projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.h Tue Aug 30 19:27:27 2016 (r305080) +++ projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.h Tue Aug 30 19:29:00 2016 (r305081) @@ -237,8 +237,8 @@ typedef void (*pfn_on_send_rx_completion #define TRANSPORT_TYPE_IPV6_UDP ((TYPE_IPV6 << 16) | TYPE_UDP) typedef struct { - uint8_t mac_addr[6]; /* Assumption unsigned long */ - uint8_t link_state; + uint8_t mac_addr[ETHER_ADDR_LEN]; + uint32_t link_state; } netvsc_device_info; #define HN_XACT_REQ_PGCNT 2 @@ -351,7 +351,6 @@ typedef struct hn_softc { int hn_initdone; /* See hv_netvsc_drv_freebsd.c for rules on how to use */ int temp_unusable; - struct rndis_device_ *rndis_dev; struct vmbus_channel *hn_prichan; int hn_rx_ring_cnt; @@ -400,8 +399,7 @@ struct hn_send_ctx; void netvsc_linkstatus_callback(struct hn_softc *sc, uint32_t status); int hv_nv_on_device_add(struct hn_softc *sc, struct hn_rx_ring *rxr); -int hv_nv_on_device_remove(struct hn_softc *sc, - boolean_t destroy_channel); +int hv_nv_on_device_remove(struct hn_softc *sc); int hv_nv_on_send(struct vmbus_channel *chan, uint32_t rndis_mtype, struct hn_send_ctx *sndc, struct vmbus_gpa *gpa, int gpa_cnt); void hv_nv_subchan_attach(struct vmbus_channel *chan, Modified: projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Tue Aug 30 19:27:27 2016 (r305080) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Tue Aug 30 19:31:13 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED483BC9262 for ; Tue, 30 Aug 2016 19:31:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C09B179A; Tue, 30 Aug 2016 19:31:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UJVDGR022292; Tue, 30 Aug 2016 19:31:13 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UJVDtj022291; Tue, 30 Aug 2016 19:31:13 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608301931.u7UJVDtj022291@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 30 Aug 2016 19:31:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305082 - projects/clang390-import/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 19:31:14 -0000 Author: dim Date: Tue Aug 30 19:31:12 2016 New Revision: 305082 URL: https://svnweb.freebsd.org/changeset/base/305082 Log: Revert r304954, which is no longer needed. Modified: projects/clang390-import/share/mk/bsd.sys.mk Modified: projects/clang390-import/share/mk/bsd.sys.mk ============================================================================== --- projects/clang390-import/share/mk/bsd.sys.mk Tue Aug 30 19:29:00 2016 (r305081) +++ projects/clang390-import/share/mk/bsd.sys.mk Tue Aug 30 19:31:12 2016 (r305082) @@ -81,9 +81,6 @@ CWARNFLAGS.clang+= -Wno-unused-local-typ .endif # WARNS <= 3 .if ${WARNS} <= 2 CWARNFLAGS.clang+= -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30900 -CWARNFLAGS.clang+= -Wno-constant-conversion -.endif .endif # WARNS <= 2 .if ${WARNS} <= 1 CWARNFLAGS.clang+= -Wno-parentheses From owner-svn-src-projects@freebsd.org Tue Aug 30 20:30:31 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9066EBC74AB for ; Tue, 30 Aug 2016 20:30:31 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 566CE334; Tue, 30 Aug 2016 20:30:31 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UKUUGc044119; Tue, 30 Aug 2016 20:30:30 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UKUTUX044110; Tue, 30 Aug 2016 20:30:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201608302030.u7UKUTUX044110@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 30 Aug 2016 20:30:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305087 - in projects/clang390-import: contrib/gcc/doc contrib/gcclibs/libcpp contrib/telnet/telnet contrib/tnftp/src tools/regression/capsicum/syscalls X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 20:30:31 -0000 Author: dim Date: Tue Aug 30 20:30:29 2016 New Revision: 305087 URL: https://svnweb.freebsd.org/changeset/base/305087 Log: Merge ^/head r305081 through r305086. Modified: projects/clang390-import/contrib/gcc/doc/cpp.texi projects/clang390-import/contrib/gcclibs/libcpp/ChangeLog.gcc43 projects/clang390-import/contrib/gcclibs/libcpp/internal.h projects/clang390-import/contrib/gcclibs/libcpp/macro.c projects/clang390-import/contrib/gcclibs/libcpp/pch.c projects/clang390-import/contrib/telnet/telnet/commands.c projects/clang390-import/contrib/tnftp/src/ftp.c projects/clang390-import/tools/regression/capsicum/syscalls/cap_fcntls_limit.c projects/clang390-import/tools/regression/capsicum/syscalls/cap_ioctls_limit.c Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/contrib/gcc/ (props changed) projects/clang390-import/contrib/tnftp/ (props changed) Modified: projects/clang390-import/contrib/gcc/doc/cpp.texi ============================================================================== --- projects/clang390-import/contrib/gcc/doc/cpp.texi Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/contrib/gcc/doc/cpp.texi Tue Aug 30 20:30:29 2016 (r305087) @@ -1912,6 +1912,13 @@ underscores. @table @code +@item __COUNTER__ +This macro expands to sequential integral values starting from 0. In +conjuction with the @code{##} operator, this provides a convenient means to +generate unique identifiers. Care must be taken to ensure that +@code{__COUNTER__} is not expanded prior to inclusion of precompiled headers +which use it. Otherwise, the precompiled headers will not be used. + @item __GNUC__ @itemx __GNUC_MINOR__ @itemx __GNUC_PATCHLEVEL__ Modified: projects/clang390-import/contrib/gcclibs/libcpp/ChangeLog.gcc43 ============================================================================== --- projects/clang390-import/contrib/gcclibs/libcpp/ChangeLog.gcc43 Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/contrib/gcclibs/libcpp/ChangeLog.gcc43 Tue Aug 30 20:30:29 2016 (r305087) @@ -12,6 +12,17 @@ PR preprocessor/14331 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF. +2007-05-24 Ollie Wild (r125041) + + * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER. + * pch.c (cpp_write_pch_deps): Save __COUNTER__ state. + (cpp_write_pch_state): Save __COUNTER__ state. + (cpp_valid_state): Check valid __COUNTER__ state. + (cpp_read_state): Read new __COUNTER__ state. + * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator. + * init.c (builtin_array): Add __COUNTER__/BT_COUNTER. + * internal.h (struct cpp_reader): Add counter member. + 2007-05-21 Ian Lance Taylor (r124929) * internal.h (struct cpp_reader): Add new fields: Modified: projects/clang390-import/contrib/gcclibs/libcpp/internal.h ============================================================================== --- projects/clang390-import/contrib/gcclibs/libcpp/internal.h Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/contrib/gcclibs/libcpp/internal.h Tue Aug 30 20:30:29 2016 (r305087) @@ -458,7 +458,8 @@ struct cpp_reader of precompiled headers. */ struct cpp_savedstate *savedstate; - unsigned int nextcounter; + /* Next value of __COUNTER__ macro. */ + unsigned int counter; }; /* Character classes. Based on the more primitive macros in safe-ctype.h. Modified: projects/clang390-import/contrib/gcclibs/libcpp/macro.c ============================================================================== --- projects/clang390-import/contrib/gcclibs/libcpp/macro.c Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/contrib/gcclibs/libcpp/macro.c Tue Aug 30 20:30:29 2016 (r305087) @@ -268,7 +268,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi if (CPP_OPTION (pfile, directives_only) && pfile->state.in_directive) cpp_error (pfile, CPP_DL_ERROR, "__COUNTER__ expanded inside directive with -fdirectives-only"); - number = pfile->nextcounter++; + number = pfile->counter++; break; } Modified: projects/clang390-import/contrib/gcclibs/libcpp/pch.c ============================================================================== --- projects/clang390-import/contrib/gcclibs/libcpp/pch.c Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/contrib/gcclibs/libcpp/pch.c Tue Aug 30 20:30:29 2016 (r305087) @@ -337,6 +337,14 @@ cpp_write_pch_deps (cpp_reader *r, FILE /* Free the saved state. */ free (ss); r->savedstate = NULL; + + /* Save the next value of __COUNTER__. */ + if (fwrite (&r->counter, sizeof (r->counter), 1, f) != 1) + { + cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header"); + return -1; + } + return 0; } @@ -361,6 +369,15 @@ cpp_write_pch_state (cpp_reader *r, FILE return -1; } + /* Save the next __COUNTER__ value. When we include a precompiled header, + we need to start at the offset we would have if the header had been + included normally. */ + if (fwrite (&r->counter, sizeof (r->counter), 1, f) != 1) + { + cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header"); + return -1; + } + return 0; } @@ -423,6 +440,7 @@ cpp_valid_state (cpp_reader *r, const ch struct ht_node_list nl = { 0, 0, 0 }; unsigned char *first, *last; unsigned int i; + unsigned int counter; /* Read in the list of identifiers that must be defined Check that they are defined in the same way. */ @@ -524,7 +542,23 @@ cpp_valid_state (cpp_reader *r, const ch } free(nl.defs); + nl.defs = NULL; free (undeftab); + undeftab = NULL; + + /* Read in the next value of __COUNTER__. + Check that (a) __COUNTER__ was not used in the pch or (b) __COUNTER__ + has not been used in this translation unit. */ + if (read (fd, &counter, sizeof (counter)) != sizeof (counter)) + goto error; + if (counter && r->counter) + { + if (CPP_OPTION (r, warn_invalid_pch)) + cpp_error (r, CPP_DL_WARNING_SYSHDR, + "%s: not used because `__COUNTER__' is invalid", + name); + goto fail; + } /* We win! */ return 0; @@ -631,6 +665,7 @@ cpp_read_state (cpp_reader *r, const cha { size_t i; struct lexer_state old_state; + unsigned int counter; /* Restore spec_nodes, which will be full of references to the old hashtable entries and so will now be invalid. */ @@ -690,6 +725,12 @@ cpp_read_state (cpp_reader *r, const cha if (! _cpp_read_file_entries (r, f)) goto error; + if (fread (&counter, sizeof (counter), 1, f) != 1) + goto error; + + if (!r->counter) + r->counter = counter; + return 0; error: Modified: projects/clang390-import/contrib/telnet/telnet/commands.c ============================================================================== --- projects/clang390-import/contrib/telnet/telnet/commands.c Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/contrib/telnet/telnet/commands.c Tue Aug 30 20:30:29 2016 (r305087) @@ -112,7 +112,7 @@ static int send_tncmd(void (*)(int, int) static int setmod(int); static int clearmode(int); static int modehelp(void); -static int sourceroute(struct addrinfo *, char *, char **, int *, int *, int *); +static int sourceroute(struct addrinfo *, char *, unsigned char **, int *, int *, int *); typedef struct { const char *name; /* command name */ @@ -2171,7 +2171,7 @@ switch_af(struct addrinfo **aip) int tn(int argc, char *argv[]) { - char *srp = 0; + unsigned char *srp = 0; int proto, opt; int srlen; int srcroute = 0, result; @@ -2844,10 +2844,10 @@ cmdrc(char *m1, char *m2) * setsockopt, as socket protocol family. */ static int -sourceroute(struct addrinfo *ai, char *arg, char **cpp, int *lenp, int *protop, int *optp) +sourceroute(struct addrinfo *ai, char *arg, unsigned char **cpp, int *lenp, int *protop, int *optp) { static char buf[1024 + ALIGNBYTES]; /*XXX*/ - char *cp, *cp2, *lsrp, *ep; + unsigned char *cp, *cp2, *lsrp, *ep; struct sockaddr_in *_sin; #ifdef INET6 struct sockaddr_in6 *sin6; Modified: projects/clang390-import/contrib/tnftp/src/ftp.c ============================================================================== --- projects/clang390-import/contrib/tnftp/src/ftp.c Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/contrib/tnftp/src/ftp.c Tue Aug 30 20:30:29 2016 (r305087) @@ -2050,7 +2050,7 @@ abort_squared(int dummy) void abort_remote(FILE *din) { - char buf[BUFSIZ]; + unsigned char buf[BUFSIZ]; int nfnd; if (cout == NULL) { Modified: projects/clang390-import/tools/regression/capsicum/syscalls/cap_fcntls_limit.c ============================================================================== --- projects/clang390-import/tools/regression/capsicum/syscalls/cap_fcntls_limit.c Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/tools/regression/capsicum/syscalls/cap_fcntls_limit.c Tue Aug 30 20:30:29 2016 (r305087) @@ -157,13 +157,16 @@ static void fcntl_tests_1(int fd) { uint32_t fcntlrights; + cap_rights_t rights; CHECK(cap_fcntls_limit(fd, CAP_FCNTL_GETFL) == 0); fcntlrights = 0; CHECK(cap_fcntls_get(fd, &fcntlrights) == 0); CHECK(fcntlrights == CAP_FCNTL_GETFL); - CHECK(cap_rights_limit(fd, CAP_ALL & ~CAP_FCNTL) == 0); + CAP_ALL(&rights); + cap_rights_clear(&rights, CAP_FCNTL); + CHECK(cap_rights_limit(fd, &rights) == 0); fcntlrights = CAP_FCNTL_ALL; CHECK(cap_fcntls_get(fd, &fcntlrights) == 0); @@ -206,8 +209,11 @@ static void fcntl_tests_2(int fd) { uint32_t fcntlrights; + cap_rights_t rights; - CHECK(cap_rights_limit(fd, CAP_ALL & ~CAP_FCNTL) == 0); + CAP_ALL(&rights); + cap_rights_clear(&rights, CAP_FCNTL); + CHECK(cap_rights_limit(fd, &rights) == 0); fcntlrights = CAP_FCNTL_ALL; CHECK(cap_fcntls_get(fd, &fcntlrights) == 0); Modified: projects/clang390-import/tools/regression/capsicum/syscalls/cap_ioctls_limit.c ============================================================================== --- projects/clang390-import/tools/regression/capsicum/syscalls/cap_ioctls_limit.c Tue Aug 30 20:27:22 2016 (r305086) +++ projects/clang390-import/tools/regression/capsicum/syscalls/cap_ioctls_limit.c Tue Aug 30 20:30:29 2016 (r305087) @@ -131,6 +131,7 @@ static void ioctl_tests_1(int fd) { unsigned long cmds[2]; + cap_rights_t rights; cmds[0] = FIOCLEX; CHECK(cap_ioctls_limit(fd, cmds, 1) == 0); @@ -139,7 +140,10 @@ ioctl_tests_1(int fd) CHECK(cmds[0] == FIOCLEX); CHECK(cmds[1] == 0); - CHECK(cap_rights_limit(fd, CAP_ALL & ~CAP_IOCTL) == 0); + CAP_ALL(&rights); + cap_rights_clear(&rights, CAP_IOCTL); + + CHECK(cap_rights_limit(fd, &rights) == 0); CHECK(cap_ioctls_get(fd, cmds, nitems(cmds)) == 0); cmds[0] = FIOCLEX; @@ -173,8 +177,12 @@ static void ioctl_tests_2(int fd) { unsigned long cmds[2]; + cap_rights_t rights; + + CAP_ALL(&rights); + cap_rights_clear(&rights, CAP_IOCTL); - CHECK(cap_rights_limit(fd, CAP_ALL & ~CAP_IOCTL) == 0); + CHECK(cap_rights_limit(fd, &rights) == 0); CHECK(cap_ioctls_get(fd, cmds, nitems(cmds)) == 0); cmds[0] = FIOCLEX; From owner-svn-src-projects@freebsd.org Tue Aug 30 21:06:20 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8804BBC7FCE for ; Tue, 30 Aug 2016 21:06:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 558AE895; Tue, 30 Aug 2016 21:06:20 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UL6JLr058743; Tue, 30 Aug 2016 21:06:19 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UL6JwP058742; Tue, 30 Aug 2016 21:06:19 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201608302106.u7UL6JwP058742@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Aug 2016 21:06:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305088 - in projects/clang390-import/lib/clang/include/lld: . Config X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 21:06:20 -0000 Author: emaste Date: Tue Aug 30 21:06:19 2016 New Revision: 305088 URL: https://svnweb.freebsd.org/changeset/base/305088 Log: Add Version.inc to set lld's version information We might want to generate this file at build time, but for now just provide a static copy as done with other version files. Sponsored by: The FreeBSD Foundation Added: projects/clang390-import/lib/clang/include/lld/ projects/clang390-import/lib/clang/include/lld/Config/ projects/clang390-import/lib/clang/include/lld/Config/Version.inc (contents, props changed) Added: projects/clang390-import/lib/clang/include/lld/Config/Version.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/lib/clang/include/lld/Config/Version.inc Tue Aug 30 21:06:19 2016 (r305088) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +#define LLD_VERSION 3.9 +#define LLD_VERSION_MAJOR 3 +#define LLD_VERSION_MINOR 9 +#define LLD_REVISION_STRING "3.9" +#define LLD_REPOSITORY_STRING "FreeBSD" + From owner-svn-src-projects@freebsd.org Tue Aug 30 21:08:46 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B27F4BC8064 for ; Tue, 30 Aug 2016 21:08:46 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6922F9F5; Tue, 30 Aug 2016 21:08:46 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7UL8jgE058879; Tue, 30 Aug 2016 21:08:45 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7UL8jL6058878; Tue, 30 Aug 2016 21:08:45 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201608302108.u7UL8jL6058878@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 30 Aug 2016 21:08:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305089 - projects/clang390-import/usr.bin/clang/lld X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 21:08:46 -0000 Author: emaste Date: Tue Aug 30 21:08:45 2016 New Revision: 305089 URL: https://svnweb.freebsd.org/changeset/base/305089 Log: Add lld Makefile Sponsored by: The FreeBSD Foundation Added: projects/clang390-import/usr.bin/clang/lld/ projects/clang390-import/usr.bin/clang/lld/Makefile (contents, props changed) Added: projects/clang390-import/usr.bin/clang/lld/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/lld/Makefile Tue Aug 30 21:08:45 2016 (r305089) @@ -0,0 +1,69 @@ +# $FreeBSD$ + +LLVM_SRCS= ${.CURDIR}/../../../contrib/llvm +LLD_SRCS= ${LLVM_SRCS}/tools/lld + +PROG_CXX= ld.lld +MAN= + +CFLAGS+= -I${LLD_SRCS}/include +CFLAGS+= -I${.OBJDIR} +CFLAGS+= -I${.OBJDIR}/../../../lib/clang/libllvm + +SRCDIR= tools/lld +SRCS+= ELF/Driver.cpp +SRCS+= ELF/DriverUtils.cpp +SRCS+= ELF/EhFrame.cpp +SRCS+= ELF/Error.cpp +SRCS+= ELF/ICF.cpp +SRCS+= ELF/InputFiles.cpp +SRCS+= ELF/InputSection.cpp +SRCS+= ELF/LinkerScript.cpp +SRCS+= ELF/LTO.cpp +SRCS+= ELF/MarkLive.cpp +SRCS+= ELF/OutputSections.cpp +SRCS+= ELF/Relocations.cpp +SRCS+= ELF/ScriptParser.cpp +SRCS+= ELF/Strings.cpp +SRCS+= ELF/SymbolListFile.cpp +SRCS+= ELF/SymbolTable.cpp +SRCS+= ELF/Symbols.cpp +SRCS+= ELF/Target.cpp +SRCS+= ELF/Thunks.cpp +SRCS+= ELF/Writer.cpp +SRCS+= lib/Config/Version.cpp +SRCS+= lib/Core/DefinedAtom.cpp +SRCS+= lib/Core/Error.cpp +SRCS+= lib/Core/File.cpp +SRCS+= lib/Core/LinkingContext.cpp +SRCS+= lib/Core/Reader.cpp +SRCS+= lib/Core/Resolver.cpp +SRCS+= lib/Core/SymbolTable.cpp +SRCS+= lib/Core/Writer.cpp +SRCS+= tools/lld/lld.cpp + +.include "${.CURDIR}/../../../lib/clang/llvm.build.mk" + +LIBDEPS+= llvm + +.for lib in ${LIBDEPS} +DPADD+= ${OBJOP}/lib/clang/lib${lib}/lib${lib}.a +LDADD+= ${OBJTOP}/lib/clang/lib${lib}/lib${lib}.a +.endfor + +LLVM_TBLGEN?= llvm-tblgen +ELF/Options.inc: ${LLD_SRCS}/ELF/Options.td + ${LLVM_TBLGEN} -gen-opt-parser-defs \ + -I ${LLVM_SRCS}/include \ + -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ + ${LLVM_SRCS}/tools/lld/ELF/Options.td +TGHDRS+= ELF/Options.inc + +DPSRCS+= ${TGHDRS} +CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} + +LIBADD+= ncursesw +LIBADD+= pthread +LIBADD+= z + +.include From owner-svn-src-projects@freebsd.org Wed Aug 31 21:18:40 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50DE6BCA2B7 for ; Wed, 31 Aug 2016 21:18:40 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1636BE9E; Wed, 31 Aug 2016 21:18:40 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7VLId4D014456; Wed, 31 Aug 2016 21:18:39 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7VLIcg7014451; Wed, 31 Aug 2016 21:18:38 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201608312118.u7VLIcg7014451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 31 Aug 2016 21:18:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305158 - in projects/clang390-import: lib/clang/libllvm share/mk tools/build/options usr.bin/clang X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Aug 2016 21:18:40 -0000 Author: emaste Date: Wed Aug 31 21:18:38 2016 New Revision: 305158 URL: https://svnweb.freebsd.org/changeset/base/305158 Log: Add WITH_/WITHOUT_LLD knobs to enable the lld linker Use this to control inclusion of the libllvm functionality required by lld. Enable by default on arm64 and amd64, the two platforms where lld is most usable for testing. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D7713 Added: projects/clang390-import/tools/build/options/WITHOUT_LLD (contents, props changed) projects/clang390-import/tools/build/options/WITH_LLD (contents, props changed) Modified: projects/clang390-import/lib/clang/libllvm/Makefile projects/clang390-import/share/mk/src.opts.mk projects/clang390-import/usr.bin/clang/Makefile Modified: projects/clang390-import/lib/clang/libllvm/Makefile ============================================================================== --- projects/clang390-import/lib/clang/libllvm/Makefile Wed Aug 31 21:14:16 2016 (r305157) +++ projects/clang390-import/lib/clang/libllvm/Makefile Wed Aug 31 21:18:38 2016 (r305158) @@ -468,12 +468,12 @@ SRCS_MIN+= IR/ValueSymbolTable.cpp SRCS_MIN+= IR/ValueTypes.cpp SRCS_MIN+= IR/Verifier.cpp SRCS_MIN+= IRReader/IRReader.cpp -SRCS_EXT+= LTO/LTO.cpp -SRCS_EXT+= LTO/LTOCodeGenerator.cpp -SRCS_EXT+= LTO/LTOModule.cpp -SRCS_EXT+= LTO/ThinLTOCodeGenerator.cpp -SRCS_EXT+= LTO/UpdateCompilerUsed.cpp -SRCS_EXT+= LibDriver/LibDriver.cpp +SRCS_EXL+= LTO/LTO.cpp +SRCS_EXL+= LTO/LTOCodeGenerator.cpp +SRCS_EXL+= LTO/LTOModule.cpp +SRCS_EXL+= LTO/ThinLTOCodeGenerator.cpp +SRCS_EXL+= LTO/UpdateCompilerUsed.cpp +SRCS_EXL+= LibDriver/LibDriver.cpp SRCS_MIN+= LineEditor/LineEditor.cpp SRCS_MIN+= Linker/IRMover.cpp SRCS_MIN+= Linker/LinkModules.cpp @@ -489,11 +489,11 @@ SRCS_MIN+= MC/MCAssembler.cpp SRCS_MIN+= MC/MCCodeEmitter.cpp SRCS_MIN+= MC/MCCodeView.cpp SRCS_MIN+= MC/MCContext.cpp -SRCS_XDB+= MC/MCDisassembler/Disassembler.cpp -SRCS_XDB+= MC/MCDisassembler/MCDisassembler.cpp -SRCS_XDB+= MC/MCDisassembler/MCExternalSymbolizer.cpp +SRCS_XDL+= MC/MCDisassembler/Disassembler.cpp +SRCS_XDL+= MC/MCDisassembler/MCDisassembler.cpp +SRCS_XDL+= MC/MCDisassembler/MCExternalSymbolizer.cpp SRCS_MIN+= MC/MCDisassembler/MCRelocationInfo.cpp -SRCS_XDB+= MC/MCDisassembler/MCSymbolizer.cpp +SRCS_XDL+= MC/MCDisassembler/MCSymbolizer.cpp SRCS_MIN+= MC/MCDwarf.cpp SRCS_MIN+= MC/MCELFObjectTargetWriter.cpp SRCS_MIN+= MC/MCELFStreamer.cpp @@ -564,7 +564,7 @@ SRCS_MIN+= Option/Arg.cpp SRCS_MIN+= Option/ArgList.cpp SRCS_MIN+= Option/OptTable.cpp SRCS_MIN+= Option/Option.cpp -SRCS_EXT+= Passes/PassBuilder.cpp +SRCS_EXL+= Passes/PassBuilder.cpp SRCS_MIN+= ProfileData/Coverage/CoverageMapping.cpp SRCS_MIN+= ProfileData/Coverage/CoverageMappingReader.cpp SRCS_MIN+= ProfileData/Coverage/CoverageMappingWriter.cpp @@ -601,7 +601,7 @@ SRCS_MIN+= Support/DynamicLibrary.cpp SRCS_MIN+= Support/Errno.cpp SRCS_MIN+= Support/Error.cpp SRCS_MIN+= Support/ErrorHandling.cpp -SRCS_EXT+= Support/FileOutputBuffer.cpp +SRCS_EXL+= Support/FileOutputBuffer.cpp SRCS_EXT+= Support/FileUtilities.cpp SRCS_MIN+= Support/FoldingSet.cpp SRCS_MIN+= Support/FormattedStream.cpp @@ -651,7 +651,7 @@ SRCS_EXT+= Support/SystemUtils.cpp SRCS_MIN+= Support/TargetParser.cpp SRCS_MIN+= Support/TargetRegistry.cpp SRCS_MIN+= Support/ThreadLocal.cpp -SRCS_EXT+= Support/ThreadPool.cpp +SRCS_EXL+= Support/ThreadPool.cpp SRCS_MIN+= Support/Threading.cpp SRCS_MIN+= Support/TimeValue.cpp SRCS_MIN+= Support/Timer.cpp @@ -709,7 +709,7 @@ SRCS_MIN+= Target/AArch64/AArch64TargetM SRCS_MIN+= Target/AArch64/AArch64TargetObjectFile.cpp SRCS_MIN+= Target/AArch64/AArch64TargetTransformInfo.cpp SRCS_MIN+= Target/AArch64/AsmParser/AArch64AsmParser.cpp -SRCS_XDB+= Target/AArch64/Disassembler/AArch64Disassembler.cpp +SRCS_XDL+= Target/AArch64/Disassembler/AArch64Disassembler.cpp SRCS_MIN+= Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp SRCS_MIN+= Target/AArch64/InstPrinter/AArch64InstPrinter.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp @@ -771,7 +771,7 @@ SRCS_MIN+= Target/ARM/Thumb2InstrInfo.cp SRCS_MIN+= Target/ARM/Thumb2SizeReduction.cpp SRCS_MIN+= Target/ARM/ThumbRegisterInfo.cpp SRCS_MIN+= Target/Mips/AsmParser/MipsAsmParser.cpp -SRCS_XDB+= Target/Mips/Disassembler/MipsDisassembler.cpp +SRCS_XDL+= Target/Mips/Disassembler/MipsDisassembler.cpp SRCS_MIN+= Target/Mips/InstPrinter/MipsInstPrinter.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsABIInfo.cpp @@ -860,7 +860,7 @@ SRCS_MIN+= Target/PowerPC/PPCVSXSwapRemo SRCS_MIN+= Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp SRCS_MIN+= Target/Sparc/AsmParser/SparcAsmParser.cpp SRCS_MIN+= Target/Sparc/DelaySlotFiller.cpp -SRCS_XDB+= Target/Sparc/Disassembler/SparcDisassembler.cpp +SRCS_XDL+= Target/Sparc/Disassembler/SparcDisassembler.cpp SRCS_MIN+= Target/Sparc/InstPrinter/SparcInstPrinter.cpp SRCS_MIN+= Target/Sparc/LeonPasses.cpp SRCS_MIN+= Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp @@ -891,8 +891,8 @@ SRCS_MIN+= Target/TargetRecip.cpp SRCS_MIN+= Target/TargetSubtargetInfo.cpp SRCS_MIN+= Target/X86/AsmParser/X86AsmInstrumentation.cpp SRCS_MIN+= Target/X86/AsmParser/X86AsmParser.cpp -SRCS_XDB+= Target/X86/Disassembler/X86Disassembler.cpp -SRCS_XDB+= Target/X86/Disassembler/X86DisassemblerDecoder.cpp +SRCS_XDL+= Target/X86/Disassembler/X86Disassembler.cpp +SRCS_XDL+= Target/X86/Disassembler/X86DisassemblerDecoder.cpp SRCS_MIN+= Target/X86/InstPrinter/X86ATTInstPrinter.cpp SRCS_MIN+= Target/X86/InstPrinter/X86InstComments.cpp SRCS_MIN+= Target/X86/InstPrinter/X86IntelInstPrinter.cpp @@ -1018,7 +1018,7 @@ SRCS_MIN+= Transforms/Scalar/LoopDataPre SRCS_MIN+= Transforms/Scalar/LoopDeletion.cpp SRCS_MIN+= Transforms/Scalar/LoopDistribute.cpp SRCS_MIN+= Transforms/Scalar/LoopIdiomRecognize.cpp -SRCS_EXT+= Transforms/Scalar/LoopInstSimplify.cpp +SRCS_EXL+= Transforms/Scalar/LoopInstSimplify.cpp SRCS_MIN+= Transforms/Scalar/LoopInterchange.cpp SRCS_MIN+= Transforms/Scalar/LoopLoadElimination.cpp SRCS_MIN+= Transforms/Scalar/LoopRerollPass.cpp @@ -1108,9 +1108,15 @@ SRCS_ALL+= ${SRCS_EXT} .if ${MK_CLANG_FULL} != "no" SRCS_ALL+= ${SRCS_FUL} .endif +.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLD} != "no" +SRCS_ALL+= ${SRCS_EXL} +.endif .if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" SRCS_ALL+= ${SRCS_XDB} .endif +.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" || ${MK_LLD} != "no" +SRCS_ALL+= ${SRCS_XDL} +.endif SRCS+= ${SRCS_ALL:O} llvm/IR/Attributes.inc: ${LLVM_SRCS}/include/llvm/IR/Attributes.td Modified: projects/clang390-import/share/mk/src.opts.mk ============================================================================== --- projects/clang390-import/share/mk/src.opts.mk Wed Aug 31 21:14:16 2016 (r305157) +++ projects/clang390-import/share/mk/src.opts.mk Wed Aug 31 21:18:38 2016 (r305158) @@ -184,6 +184,7 @@ __DEFAULT_NO_OPTIONS = \ EISA \ HESIOD \ LIBSOFT \ + LLD \ NAND \ OFED \ OPENLDAP \ Added: projects/clang390-import/tools/build/options/WITHOUT_LLD ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/tools/build/options/WITHOUT_LLD Wed Aug 31 21:18:38 2016 (r305158) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to not build LLVM's lld linker. Added: projects/clang390-import/tools/build/options/WITH_LLD ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/tools/build/options/WITH_LLD Wed Aug 31 21:18:38 2016 (r305158) @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to build LLVM's lld linker. Modified: projects/clang390-import/usr.bin/clang/Makefile ============================================================================== --- projects/clang390-import/usr.bin/clang/Makefile Wed Aug 31 21:14:16 2016 (r305157) +++ projects/clang390-import/usr.bin/clang/Makefile Wed Aug 31 21:18:38 2016 (r305158) @@ -33,6 +33,9 @@ SUBDIR+= llvm-symbolizer SUBDIR+= opt .endif +.if ${MK_LLD} != "no" +SUBDIR+= lld +.endif .if ${MK_LLDB} != "no" SUBDIR+= lldb .endif # MK_LLDB From owner-svn-src-projects@freebsd.org Wed Aug 31 21:24:30 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 69EACBCA4E3 for ; Wed, 31 Aug 2016 21:24:30 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-it0-x229.google.com (mail-it0-x229.google.com [IPv6:2607:f8b0:4001:c0b::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3EBC47C0; Wed, 31 Aug 2016 21:24:30 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-it0-x229.google.com with SMTP id i184so33464242itf.1; Wed, 31 Aug 2016 14:24:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=hwRayJgPb71N9wiGC7177+S/hEnToMlSdDT3kZF8x3w=; b=WhmtVoRDYzp+5rgtALrb7DNaYy8D6Tf9SZ+kVsBQ2UnDrc+4tDfdhejGyKNbfcvAmo cLFIphQeV+2f/kPh36YypJ6kMm4wYz3gO8ouIcRjzam5LXaYRHHQu4ds+PIlzyg9KWi2 HVh9nj2YU+ci8cJ6VAz1LGigI0Oo7Nojt7HvaXbmHL7WClA+HOAE8VOr/qzBieR6kGt8 ijaRPm2GVu3tdnilEueyB5gEOXt4YLddKIXjIxC47YdFS5lwfUXkK9xaOvmx9HMTpnAq oS8t1Yxfcbsa19U3CDDQ4joWzwgytXWOMN1Wtvwg/3ky+wt9TCp9IgGXjlEkfGCb18Fs 1D+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=hwRayJgPb71N9wiGC7177+S/hEnToMlSdDT3kZF8x3w=; b=HGw4vbgAOVRp7Nf6gl9cIL2FfPYijJisLjRM9OjmhnUtwy+0h8at5aTcGykIf8MtmM C2hxiHzdoerw01OJjqK98EyiCtboY5eZy5Fk1T2Ueiw5wSeYIogExn26z1nobtjuaClT SGR3i4u9go1z6XfSBPNez3vuYQ9HLWlCL65ruuz/bNjACIT9Gza8t49HnVMWNsGZU9/Y 7V5nJaQzhzJYof0ZM20Inqsk6AyU+eeymlQByVKoXVSQrij6daEdn1hjgHcMncFgO/hn H7IvptkvmMk1Du+AFxWpl2sWAG0lSte02OdwXse9IQDlTFES0EDPwjee6LqdsIA7+80V 8fTQ== X-Gm-Message-State: AE9vXwOKtYPWXQtPPu5htjDmKd+2/fw+8JsnI1AIzdM8Zayc3tHeTmKjMFe9vTkcifyoJU6sKsUfIZNepzvgBw== X-Received: by 10.36.46.203 with SMTP id i194mr32683178ita.69.1472678669451; Wed, 31 Aug 2016 14:24:29 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.138.28 with HTTP; Wed, 31 Aug 2016 14:24:09 -0700 (PDT) In-Reply-To: <201608312118.u7VLIcg7014451@repo.freebsd.org> References: <201608312118.u7VLIcg7014451@repo.freebsd.org> From: Ed Maste Date: Wed, 31 Aug 2016 17:24:09 -0400 X-Google-Sender-Auth: qlCcsnOul4Bpa0eOq2gDz6aJHpo Message-ID: Subject: Re: svn commit: r305158 - in projects/clang390-import: lib/clang/libllvm share/mk tools/build/options usr.bin/clang To: "src-committers@freebsd.org" , svn-src-projects@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Aug 2016 21:24:30 -0000 On 31 August 2016 at 17:18, Ed Maste wrote: > Author: emaste > Date: Wed Aug 31 21:18:38 2016 > New Revision: 305158 > URL: https://svnweb.freebsd.org/changeset/base/305158 > > Log: > Add WITH_/WITHOUT_LLD knobs to enable the lld linker ... > Enable by default on arm64 and amd64, the two platforms where > lld is most usable for testing. Actually this is a mistake: it's currently disabled by default on all platforms and can be enabled by setting WITH_LLD=yes in src.conf. I intend to enable it by default on amd64 and arm64 once the clang390-import branch is merged to HEAD. From owner-svn-src-projects@freebsd.org Thu Sep 1 00:53:08 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C6974BC8170 for ; Thu, 1 Sep 2016 00:53:08 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qk0-x230.google.com (mail-qk0-x230.google.com [IPv6:2607:f8b0:400d:c09::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7A0B1B11 for ; Thu, 1 Sep 2016 00:53:08 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qk0-x230.google.com with SMTP id z190so69875208qkc.0 for ; Wed, 31 Aug 2016 17:53:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=S/W1Md/bECcs9Fs6021+xVnz404byvxzxmPp7uiC0H4=; b=eGpND7d/kfppcLa7w2H1dc9BeLmCXwrbIeY8Wqgpnwas2zjqhGVXyV3UwFn71RK7ps yL/FFJySf2fMhs/j6HavmqBm7NQh+KuRCtKTaJZdb9nIcovPWWnndksTk0hVVLOWm3dZ SuI1UP8r5dRynhhzz+tQjR17/or/ddfW3QCMkeQ/394UetPEuHvACvMtCo+qjZmogQLS cKAs42kKbBiBPrAXVf+rAZPOHn3IUDEPCEb5JW+B5M5fVgkALRZY0ZnqtbmtLAilhjag nz6UVwo4yQYtZIDweIuYLOA/Asv55SZhm5rFyjuMj1UOO6nrcLDmBueEldwxeXPDrAH3 XQIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=S/W1Md/bECcs9Fs6021+xVnz404byvxzxmPp7uiC0H4=; b=nIVZgWqAWvKntVap7fPQyf85kJS1O11vZtm65+AZPn8m2/LAaVocjkv03iweXzKJqp UeJiNKrlYsc4j9lQW8u3m9QYO8eFPZM6HRzlH+A+JX4IGuxh7POseeLt6oHmPf5mSOQ4 usucM6Nlpwm6C4Trt6z0WeXb9FKe+X/0v79dcMNXV+sqGKH6xuqsLrukq8mreIvUAFdR 72vScXW30J2GuTZjCsZAXYFdjGEsHbB9tIqALvhI3qBG/JhiS0AizuQHanU53CgBjveG BK6z38lKgNjddaLwcWgLeRnPyDfOAtlhkI42GMSGC0idFvsfOewn2YNFhZbapNhkQ6vM 74yw== X-Gm-Message-State: AE9vXwOh4qy5B+/Bbs/d8x0yHft6osEDi+Y8VwFXoH9dyf8+QU+vppv8fpWqyXh58w93Sdpf X-Received: by 10.55.165.65 with SMTP id o62mr15452555qke.282.1472691187459; Wed, 31 Aug 2016 17:53:07 -0700 (PDT) Received: from mutt-hardenedbsd (pool-100-16-219-226.bltmmd.fios.verizon.net. [100.16.219.226]) by smtp.gmail.com with ESMTPSA id 62sm1436964qtg.14.2016.08.31.17.53.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 31 Aug 2016 17:53:06 -0700 (PDT) Date: Wed, 31 Aug 2016 20:53:04 -0400 From: Shawn Webb To: Ed Maste Cc: "src-committers@freebsd.org" , svn-src-projects@freebsd.org Subject: Re: svn commit: r305158 - in projects/clang390-import: lib/clang/libllvm share/mk tools/build/options usr.bin/clang Message-ID: <20160901005304.GA44266@mutt-hardenedbsd> References: <201608312118.u7VLIcg7014451@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ReaqsoxgOBHFXBhH" Content-Disposition: inline In-Reply-To: X-Operating-System: FreeBSD mutt-hardenedbsd 12.0-CURRENT-HBSD FreeBSD 12.0-CURRENT-HBSD X-PGP-Key: http://pgp.mit.edu/pks/lookup?op=vindex&search=0x6A84658F52456EEE User-Agent: Mutt/1.6.1 (2016-04-27) X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 00:53:08 -0000 --ReaqsoxgOBHFXBhH Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 31, 2016 at 05:24:09PM -0400, Ed Maste wrote: > On 31 August 2016 at 17:18, Ed Maste wrote: > > Author: emaste > > Date: Wed Aug 31 21:18:38 2016 > > New Revision: 305158 > > URL: https://svnweb.freebsd.org/changeset/base/305158 > > > > Log: > > Add WITH_/WITHOUT_LLD knobs to enable the lld linker > ... > > Enable by default on arm64 and amd64, the two platforms where > > lld is most usable for testing. >=20 > Actually this is a mistake: it's currently disabled by default on all > platforms and can be enabled by setting WITH_LLD=3Dyes in src.conf. I > intend to enable it by default on amd64 and arm64 once the > clang390-import branch is merged to HEAD. How soon do you expect to merge into HEAD? If it's still sometime down the road, I'd be happy to do some additional testing in the hardened/current/drm-next-4.7 branch in HardenedBSD's playground repo. Thanks, --=20 Shawn Webb Cofounder and Security Engineer HardenedBSD GPG Key ID: 0x6A84658F52456EEE GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89 3D9E 6A84 658F 5245 6EEE --ReaqsoxgOBHFXBhH Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXx3vuAAoJEGqEZY9SRW7us4EP/RK1zSHWXnPxj1RefMg6EXOX WDQbbEWLghCSgbhVe/yFzWW11X4d24K/fcxljpEpgH2Yv/zOECXWl/5lpoTA+Syd 9+kggqq6jK9dF/agPXvp1e6Gn4rAiut/W+wfiSOCHGqsRooRkw+1LAa4dP8L/7cJ uVMtJ4VUTUcgttW2SGMIKU5W9YSly4whB6lajnNB0chMLCfN/Ee4XzVJnxtSYuqf AM+T3aUrJ9NCTG45i+adAjfClAWx8FyTzJoOUh8WfUMSReNQQ0eiAouw7R/13TgG 1uy1k7hNRWRkWk9aeqe8GjONK00fMVhjVUlhGWLwxht987jEiinbwW8FEX2YiB2L Z/uNpz8qoEpY0T8JLBIlVmPekoEzqWtImMefYtP2m1qy08UPjXL8ZglMEXm9MimY G89mL93sfjmppSVKTP9CAQe2FNXnD+LP/LN/h9lJcMBwTDRaTk0YRTeUaSQQd3e+ zFOWM6RWfW3A20leY2D0mROzU1NKHib9w6bv3ykALOO13mLGXU45HrN+n6IHUOCN yjMhhHeNIyPGwif6Ct9Z9C8FdF7FQMPIgkUBzCO/4+g0f6Mq0Qc5B7dbRzWMkNCl PI/kVkSMW9DD4v+DftZzlpCcTzbM9eUjZ4NRtA7t801xcgLGGSiGN7SmX12bHhFx YAEQfC+RIl9RfSr7lNhZ =TaDM -----END PGP SIGNATURE----- --ReaqsoxgOBHFXBhH-- From owner-svn-src-projects@freebsd.org Thu Sep 1 02:57:20 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8AF2EBC725C for ; Thu, 1 Sep 2016 02:57:20 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 427408CD; Thu, 1 Sep 2016 02:57:20 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u812vJYD041609; Thu, 1 Sep 2016 02:57:19 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u812vGoE041578; Thu, 1 Sep 2016 02:57:16 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201609010257.u812vGoE041578@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Thu, 1 Sep 2016 02:57:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305172 - in projects/netbsd-tests-update-12: . bin/df cddl/contrib/opensolaris/common/ctf cddl/usr.sbin/dtrace cddl/usr.sbin/lockstat cddl/usr.sbin/plockstat cddl/usr.sbin/zfsd contrib... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 02:57:20 -0000 Author: ngie Date: Thu Sep 1 02:57:15 2016 New Revision: 305172 URL: https://svnweb.freebsd.org/changeset/base/305172 Log: MFhead @ r305170 Added: projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile.depend - copied unchanged from r305170, head/cddl/usr.sbin/zfsd/Makefile.depend projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_timestamp.3 - copied unchanged from r305170, head/contrib/elftoolchain/libelftc/elftc_timestamp.3 projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_timestamp.c - copied unchanged from r305170, head/contrib/elftoolchain/libelftc/elftc_timestamp.c projects/netbsd-tests-update-12/contrib/gcc/config/i386/cpuid.h - copied unchanged from r305170, head/contrib/gcc/config/i386/cpuid.h projects/netbsd-tests-update-12/crypto/openssh/blacklist.c - copied unchanged from r305170, head/crypto/openssh/blacklist.c projects/netbsd-tests-update-12/crypto/openssh/blacklist_client.h - copied unchanged from r305170, head/crypto/openssh/blacklist_client.h projects/netbsd-tests-update-12/libexec/rtld-elf/tests/libpythagoras/Makefile.depend - copied unchanged from r305170, head/libexec/rtld-elf/tests/libpythagoras/Makefile.depend projects/netbsd-tests-update-12/libexec/rtld-elf/tests/target/Makefile.depend - copied unchanged from r305170, head/libexec/rtld-elf/tests/target/Makefile.depend projects/netbsd-tests-update-12/sys/arm/ti/am335x/am335x_scm.c - copied unchanged from r305170, head/sys/arm/ti/am335x/am335x_scm.c projects/netbsd-tests-update-12/sys/boot/fdt/dts/arm64/ - copied from r305170, head/sys/boot/fdt/dts/arm64/ projects/netbsd-tests-update-12/tests/sys/pjdfstest/pjdfstest/Makefile.depend - copied unchanged from r305170, head/tests/sys/pjdfstest/pjdfstest/Makefile.depend projects/netbsd-tests-update-12/tests/sys/sys/Makefile.depend - copied unchanged from r305170, head/tests/sys/sys/Makefile.depend projects/netbsd-tests-update-12/usr.bin/bsdcat/tests/Makefile.depend - copied unchanged from r305170, head/usr.bin/bsdcat/tests/Makefile.depend projects/netbsd-tests-update-12/usr.bin/sdiff/tests/Makefile.depend - copied unchanged from r305170, head/usr.bin/sdiff/tests/Makefile.depend projects/netbsd-tests-update-12/usr.bin/xinstall/tests/Makefile.depend - copied unchanged from r305170, head/usr.bin/xinstall/tests/Makefile.depend projects/netbsd-tests-update-12/usr.sbin/extattr/tests/Makefile.depend - copied unchanged from r305170, head/usr.sbin/extattr/tests/Makefile.depend projects/netbsd-tests-update-12/usr.sbin/pmcstudy/Makefile.depend - copied unchanged from r305170, head/usr.sbin/pmcstudy/Makefile.depend projects/netbsd-tests-update-12/usr.sbin/ypldap/Makefile.depend - copied unchanged from r305170, head/usr.sbin/ypldap/Makefile.depend Modified: projects/netbsd-tests-update-12/Makefile projects/netbsd-tests-update-12/bin/df/df.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/common/ctf/ctf_types.c projects/netbsd-tests-update-12/cddl/usr.sbin/dtrace/Makefile.depend projects/netbsd-tests-update-12/cddl/usr.sbin/lockstat/Makefile.depend projects/netbsd-tests-update-12/cddl/usr.sbin/plockstat/Makefile.depend projects/netbsd-tests-update-12/contrib/elftoolchain/common/elfdefinitions.h projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/archive.c projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/ascii.c projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/pe.c projects/netbsd-tests-update-12/contrib/elftoolchain/elfdump/elfdump.c projects/netbsd-tests-update-12/contrib/elftoolchain/libelf/elf_flagdata.3 projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/Makefile projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc.h projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c projects/netbsd-tests-update-12/contrib/elftoolchain/readelf/readelf.1 projects/netbsd-tests-update-12/contrib/elftoolchain/readelf/readelf.c projects/netbsd-tests-update-12/contrib/gcc/doc/cpp.texi projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/ChangeLog.gcc43 projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/internal.h projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/macro.c projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/pch.c projects/netbsd-tests-update-12/contrib/telnet/libtelnet/pk.c projects/netbsd-tests-update-12/contrib/telnet/telnet/commands.c projects/netbsd-tests-update-12/contrib/tnftp/src/ftp.c projects/netbsd-tests-update-12/crypto/openssh/auth-pam.c projects/netbsd-tests-update-12/crypto/openssh/auth.c projects/netbsd-tests-update-12/crypto/openssh/auth1.c projects/netbsd-tests-update-12/crypto/openssh/auth2.c projects/netbsd-tests-update-12/crypto/openssh/packet.c projects/netbsd-tests-update-12/crypto/openssh/servconf.c projects/netbsd-tests-update-12/crypto/openssh/servconf.h projects/netbsd-tests-update-12/crypto/openssh/sshd.c projects/netbsd-tests-update-12/crypto/openssh/sshd_config projects/netbsd-tests-update-12/crypto/openssh/sshd_config.5 projects/netbsd-tests-update-12/gnu/lib/libgcc/Makefile projects/netbsd-tests-update-12/lib/atf/libatf-c/Makefile projects/netbsd-tests-update-12/lib/clang/libclangformat/Makefile.depend projects/netbsd-tests-update-12/lib/clang/libclangtoolingcore/Makefile.depend projects/netbsd-tests-update-12/lib/libc/gen/directory.3 projects/netbsd-tests-update-12/lib/libc/gen/getvfsbyname.3 projects/netbsd-tests-update-12/lib/libc/net/getaddrinfo.c projects/netbsd-tests-update-12/lib/libc/net/name6.c projects/netbsd-tests-update-12/lib/libc/tests/stdlib/Makefile.depend projects/netbsd-tests-update-12/lib/libelftc/Makefile projects/netbsd-tests-update-12/lib/libelftc/elftc_version.c projects/netbsd-tests-update-12/lib/libproc/Makefile.depend projects/netbsd-tests-update-12/lib/libproc/tests/Makefile.depend projects/netbsd-tests-update-12/lib/librtld_db/Makefile.depend projects/netbsd-tests-update-12/lib/libstand/bootp.c projects/netbsd-tests-update-12/lib/libstand/bootp.h projects/netbsd-tests-update-12/lib/libstand/globals.c projects/netbsd-tests-update-12/lib/libstand/net.h projects/netbsd-tests-update-12/lib/libstand/nfs.c projects/netbsd-tests-update-12/lib/libstand/tftp.c projects/netbsd-tests-update-12/sbin/newfs_msdos/mkfs_msdos.c projects/netbsd-tests-update-12/secure/usr.bin/ssh/Makefile.depend projects/netbsd-tests-update-12/secure/usr.sbin/sshd/Makefile projects/netbsd-tests-update-12/secure/usr.sbin/sshd/Makefile.depend projects/netbsd-tests-update-12/share/man/man9/mbuf.9 projects/netbsd-tests-update-12/share/mk/bsd.dep.mk projects/netbsd-tests-update-12/share/mk/bsd.init.mk projects/netbsd-tests-update-12/share/mk/bsd.obj.mk projects/netbsd-tests-update-12/share/mk/bsd.subdir.mk projects/netbsd-tests-update-12/share/mk/local.meta.sys.mk projects/netbsd-tests-update-12/share/mk/sys.mk projects/netbsd-tests-update-12/sys/arm/allwinner/aw_usbphy.c projects/netbsd-tests-update-12/sys/arm/allwinner/aw_wdog.c projects/netbsd-tests-update-12/sys/arm/arm/cpufunc_asm_xscale_c3.S projects/netbsd-tests-update-12/sys/arm/arm/locore-v4.S projects/netbsd-tests-update-12/sys/arm/ti/am335x/am335x_prcm.c projects/netbsd-tests-update-12/sys/arm/ti/am335x/am335x_scm.h projects/netbsd-tests-update-12/sys/arm/ti/am335x/files.am335x projects/netbsd-tests-update-12/sys/arm/ti/cpsw/if_cpsw.c projects/netbsd-tests-update-12/sys/arm/ti/cpsw/if_cpswreg.h projects/netbsd-tests-update-12/sys/arm/ti/ti_scm.c projects/netbsd-tests-update-12/sys/arm/xscale/i8134x/crb_machdep.c projects/netbsd-tests-update-12/sys/arm/xscale/i8134x/obio.c projects/netbsd-tests-update-12/sys/arm/xscale/i8134x/obiovar.h projects/netbsd-tests-update-12/sys/arm/xscale/i8134x/uart_cpu_i81342.c projects/netbsd-tests-update-12/sys/arm64/arm64/pmap.c projects/netbsd-tests-update-12/sys/arm64/arm64/trap.c projects/netbsd-tests-update-12/sys/boot/common/dev_net.c projects/netbsd-tests-update-12/sys/boot/efi/boot1/Makefile projects/netbsd-tests-update-12/sys/boot/efi/libefi/Makefile projects/netbsd-tests-update-12/sys/boot/efi/loader/Makefile projects/netbsd-tests-update-12/sys/boot/efi/loader/conf.c projects/netbsd-tests-update-12/sys/boot/fdt/dts/Makefile projects/netbsd-tests-update-12/sys/boot/forth/loader.4th projects/netbsd-tests-update-12/sys/boot/i386/libi386/pxe.c projects/netbsd-tests-update-12/sys/boot/i386/loader/conf.c projects/netbsd-tests-update-12/sys/boot/pc98/loader/conf.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c projects/netbsd-tests-update-12/sys/contrib/vchiq/interface/vchiq_arm/vchiq_arm.c projects/netbsd-tests-update-12/sys/contrib/vchiq/interface/vchiq_arm/vchiq_core.c projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/cxgbei.c projects/netbsd-tests-update-12/sys/dev/cxgbe/tom/t4_ddp.c projects/netbsd-tests-update-12/sys/dev/cxgbe/tom/t4_tom.c projects/netbsd-tests-update-12/sys/dev/cxgbe/tom/t4_tom.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_net_vsc.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_net_vsc.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_rndis.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_rndis_filter.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_rndis_filter.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/if_hnvar.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/ndis.h projects/netbsd-tests-update-12/sys/dev/hyperv/utilities/hv_timesync.c projects/netbsd-tests-update-12/sys/dev/iscsi_initiator/iscsi.h projects/netbsd-tests-update-12/sys/dev/ixl/if_ixlv.c projects/netbsd-tests-update-12/sys/dev/ixl/ixl_txrx.c projects/netbsd-tests-update-12/sys/dev/kbdmux/kbdmux.c projects/netbsd-tests-update-12/sys/dev/netmap/if_ixl_netmap.h projects/netbsd-tests-update-12/sys/dev/syscons/syscons.c projects/netbsd-tests-update-12/sys/dev/syscons/syscons.h projects/netbsd-tests-update-12/sys/dev/usb/net/if_urndis.c projects/netbsd-tests-update-12/sys/kern/capabilities.conf projects/netbsd-tests-update-12/sys/kern/init_sysent.c projects/netbsd-tests-update-12/sys/kern/kern_descrip.c projects/netbsd-tests-update-12/sys/kern/subr_gtaskqueue.c projects/netbsd-tests-update-12/sys/kern/subr_smp.c projects/netbsd-tests-update-12/sys/kern/subr_taskqueue.c projects/netbsd-tests-update-12/sys/kern/sys_capability.c projects/netbsd-tests-update-12/sys/kern/uipc_usrreq.c projects/netbsd-tests-update-12/sys/net/rndis.h projects/netbsd-tests-update-12/sys/netipsec/ipsec_input.c projects/netbsd-tests-update-12/sys/powerpc/mpc85xx/platform_mpc85xx.c projects/netbsd-tests-update-12/sys/sys/filedesc.h projects/netbsd-tests-update-12/sys/sys/mbuf.h projects/netbsd-tests-update-12/sys/vm/swap_pager.c projects/netbsd-tests-update-12/sys/vm/vm_page.c projects/netbsd-tests-update-12/targets/pseudo/tests/Makefile.depend projects/netbsd-tests-update-12/targets/pseudo/userland/Makefile.depend projects/netbsd-tests-update-12/targets/pseudo/userland/cddl/Makefile.depend projects/netbsd-tests-update-12/targets/pseudo/userland/libexec/Makefile.depend projects/netbsd-tests-update-12/tools/regression/capsicum/syscalls/cap_fcntls_limit.c projects/netbsd-tests-update-12/tools/regression/capsicum/syscalls/cap_ioctls_limit.c projects/netbsd-tests-update-12/tools/tools/crypto/cryptotest.c projects/netbsd-tests-update-12/usr.bin/Makefile projects/netbsd-tests-update-12/usr.bin/newkey/generic.c projects/netbsd-tests-update-12/usr.bin/nfsstat/Makefile.depend projects/netbsd-tests-update-12/usr.bin/tar/tests/Makefile.depend projects/netbsd-tests-update-12/usr.sbin/bhyve/Makefile.depend projects/netbsd-tests-update-12/usr.sbin/bhyve/pci_e82545.c projects/netbsd-tests-update-12/usr.sbin/pw/tests/Makefile.depend Directory Properties: projects/netbsd-tests-update-12/ (props changed) projects/netbsd-tests-update-12/cddl/ (props changed) projects/netbsd-tests-update-12/cddl/contrib/opensolaris/ (props changed) projects/netbsd-tests-update-12/contrib/elftoolchain/ (props changed) projects/netbsd-tests-update-12/contrib/elftoolchain/elfdump/ (props changed) projects/netbsd-tests-update-12/contrib/gcc/ (props changed) projects/netbsd-tests-update-12/contrib/tnftp/ (props changed) projects/netbsd-tests-update-12/crypto/openssh/ (props changed) projects/netbsd-tests-update-12/gnu/lib/ (props changed) projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/netbsd-tests-update-12/Makefile ============================================================================== --- projects/netbsd-tests-update-12/Makefile Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/Makefile Thu Sep 1 02:57:15 2016 (r305172) @@ -109,7 +109,8 @@ # Note: we use this awkward construct to be compatible with FreeBSD's # old make used in 10.0 and 9.2 and earlier. -.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && !make(showconfig) +.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && \ + !make(showconfig) && !make(print-dir) # targets/Makefile plays the role of top-level .include "targets/Makefile" .else @@ -132,7 +133,7 @@ TGTS= all all-man buildenv buildenvvars xdev-links native-xtools stageworld stagekernel stage-packages \ create-world-packages create-kernel-packages create-packages \ packages installconfig real-packages sign-packages package-pkg \ - test-system-compiler + print-dir test-system-compiler # XXX: r156740: This can't work since bsd.subdir.mk is not included ever. # It will only work for SUBDIR_TARGETS in make.conf. @@ -257,6 +258,10 @@ _TARGET_ARCH= ${XDEV_ARCH} _TARGET?= ${MACHINE} _TARGET_ARCH?= ${MACHINE_ARCH} +.if make(print-dir) +.SILENT: +.endif + # # Make sure we have an up-to-date make(1). Only world and buildworld # should do this as those are the initial targets used for upgrades. Modified: projects/netbsd-tests-update-12/bin/df/df.c ============================================================================== --- projects/netbsd-tests-update-12/bin/df/df.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/bin/df/df.c Thu Sep 1 02:57:15 2016 (r305172) @@ -166,6 +166,9 @@ main(int argc, char *argv[]) hflag = 0; break; case 'l': + /* Ignore duplicate -l */ + if (lflag) + break; if (vfslist != NULL) xo_errx(1, "-l and -t are mutually exclusive."); vfslist = makevfslist(makenetvfslist()); Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/common/ctf/ctf_types.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/common/ctf/ctf_types.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/common/ctf/ctf_types.c Thu Sep 1 02:57:15 2016 (r305172) @@ -644,11 +644,8 @@ ctf_type_compat(ctf_file_t *lfp, ctf_id_ } } -/* - * Return the type and offset for a given member of a STRUCT or UNION. - */ -int -ctf_member_info(ctf_file_t *fp, ctf_id_t type, const char *name, +static int +_ctf_member_info(ctf_file_t *fp, ctf_id_t type, const char *name, ulong_t off, ctf_membinfo_t *mip) { ctf_file_t *ofp = fp; @@ -673,9 +670,13 @@ ctf_member_info(ctf_file_t *fp, ctf_id_t ((uintptr_t)tp + increment); for (n = LCTF_INFO_VLEN(fp, tp->ctt_info); n != 0; n--, mp++) { + if (mp->ctm_name == 0 && + _ctf_member_info(fp, mp->ctm_type, name, + mp->ctm_offset + off, mip) == 0) + return (0); if (strcmp(ctf_strptr(fp, mp->ctm_name), name) == 0) { mip->ctm_type = mp->ctm_type; - mip->ctm_offset = mp->ctm_offset; + mip->ctm_offset = mp->ctm_offset + off; return (0); } } @@ -684,9 +685,14 @@ ctf_member_info(ctf_file_t *fp, ctf_id_t ((uintptr_t)tp + increment); for (n = LCTF_INFO_VLEN(fp, tp->ctt_info); n != 0; n--, lmp++) { + if (lmp->ctlm_name == 0 && + _ctf_member_info(fp, lmp->ctlm_name, name, + (ulong_t)CTF_LMEM_OFFSET(lmp) + off, mip) == 0) + return (0); if (strcmp(ctf_strptr(fp, lmp->ctlm_name), name) == 0) { mip->ctm_type = lmp->ctlm_type; - mip->ctm_offset = (ulong_t)CTF_LMEM_OFFSET(lmp); + mip->ctm_offset = + (ulong_t)CTF_LMEM_OFFSET(lmp) + off; return (0); } } @@ -696,6 +702,17 @@ ctf_member_info(ctf_file_t *fp, ctf_id_t } /* + * Return the type and offset for a given member of a STRUCT or UNION. + */ +int +ctf_member_info(ctf_file_t *fp, ctf_id_t type, const char *name, + ctf_membinfo_t *mip) +{ + + return (_ctf_member_info(fp, type, name, 0, mip)); +} + +/* * Return the array type, index, and size information for the specified ARRAY. */ int Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/dtrace/Makefile.depend ============================================================================== --- projects/netbsd-tests-update-12/cddl/usr.sbin/dtrace/Makefile.depend Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/dtrace/Makefile.depend Thu Sep 1 02:57:15 2016 (r305172) @@ -13,7 +13,9 @@ DIRDEPS = \ lib/libcompiler_rt \ lib/libcxxrt \ lib/libelf \ + lib/libkvm \ lib/libproc \ + lib/libprocstat \ lib/librtld_db \ lib/libthr \ lib/libutil \ Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/lockstat/Makefile.depend ============================================================================== --- projects/netbsd-tests-update-12/cddl/usr.sbin/lockstat/Makefile.depend Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/lockstat/Makefile.depend Thu Sep 1 02:57:15 2016 (r305172) @@ -13,7 +13,9 @@ DIRDEPS = \ lib/libcompiler_rt \ lib/libcxxrt \ lib/libelf \ + lib/libkvm \ lib/libproc \ + lib/libprocstat \ lib/librt \ lib/librtld_db \ lib/libthr \ Modified: projects/netbsd-tests-update-12/cddl/usr.sbin/plockstat/Makefile.depend ============================================================================== --- projects/netbsd-tests-update-12/cddl/usr.sbin/plockstat/Makefile.depend Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/plockstat/Makefile.depend Thu Sep 1 02:57:15 2016 (r305172) @@ -13,7 +13,9 @@ DIRDEPS = \ lib/libcompiler_rt \ lib/libcxxrt \ lib/libelf \ + lib/libkvm \ lib/libproc \ + lib/libprocstat \ lib/librtld_db \ lib/libthr \ lib/libutil \ Copied: projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile.depend (from r305170, head/cddl/usr.sbin/zfsd/Makefile.depend) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/Makefile.depend Thu Sep 1 02:57:15 2016 (r305172, copy of r305170, head/cddl/usr.sbin/zfsd/Makefile.depend) @@ -0,0 +1,35 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + cddl/lib/libavl \ + cddl/lib/libnvpair \ + cddl/lib/libumem \ + cddl/lib/libuutil \ + cddl/lib/libzfs \ + cddl/lib/libzfs_core \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libdevdctl \ + lib/libexpat \ + lib/libgeom \ + lib/libmd \ + lib/libsbuf \ + lib/libthr \ + lib/libutil \ + lib/libz \ + lib/msun \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/common/elfdefinitions.h ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/common/elfdefinitions.h Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/common/elfdefinitions.h Thu Sep 1 02:57:15 2016 (r305172) @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: elfdefinitions.h 3455 2016-05-09 13:47:29Z emaste $ + * $Id: elfdefinitions.h 3485 2016-08-18 13:38:52Z emaste $ */ /* @@ -2091,7 +2091,10 @@ _ELF_DEFINE_RELOC(R_RISCV_GNU_VTINHERIT, _ELF_DEFINE_RELOC(R_RISCV_GNU_VTENTRY, 42) \ _ELF_DEFINE_RELOC(R_RISCV_ALIGN, 43) \ _ELF_DEFINE_RELOC(R_RISCV_RVC_BRANCH, 44) \ -_ELF_DEFINE_RELOC(R_RISCV_RVC_JUMP, 45) +_ELF_DEFINE_RELOC(R_RISCV_RVC_JUMP, 45) \ +_ELF_DEFINE_RELOC(R_RISCV_RVC_LUI, 46) \ +_ELF_DEFINE_RELOC(R_RISCV_GPREL_I, 47) \ +_ELF_DEFINE_RELOC(R_RISCV_GPREL_S, 48) #define _ELF_DEFINE_SPARC_RELOCATIONS() \ _ELF_DEFINE_RELOC(R_SPARC_NONE, 0) \ Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/archive.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/archive.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/archive.c Thu Sep 1 02:57:15 2016 (r305172) @@ -38,7 +38,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: archive.c 3287 2015-12-31 16:58:48Z emaste $"); +ELFTC_VCSID("$Id: archive.c 3490 2016-08-31 00:12:22Z emaste $"); #define _ARMAG_LEN 8 /* length of ar magic string */ #define _ARHDR_LEN 60 /* length of ar header */ @@ -440,6 +440,7 @@ ac_write_objs(struct elfcopy *ecp, int o struct archive *a; struct archive_entry *entry; struct ar_obj *obj; + time_t timestamp; int nr; if ((a = archive_write_new()) == NULL) @@ -450,7 +451,9 @@ ac_write_objs(struct elfcopy *ecp, int o /* Write the archive symbol table, even if it's empty. */ entry = archive_entry_new(); archive_entry_copy_pathname(entry, "/"); - archive_entry_set_mtime(entry, time(NULL), 0); + if (elftc_timestamp(×tamp) != 0) + err(EXIT_FAILURE, "elftc_timestamp"); + archive_entry_set_mtime(entry, timestamp, 0); archive_entry_set_size(entry, (ecp->s_cnt + 1) * sizeof(uint32_t) + ecp->s_sn_sz); AC(archive_write_header(a, entry)); Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/ascii.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/ascii.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/ascii.c Thu Sep 1 02:57:15 2016 (r305172) @@ -36,7 +36,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: ascii.c 3446 2016-05-03 01:31:17Z emaste $"); +ELFTC_VCSID("$Id: ascii.c 3487 2016-08-24 18:12:08Z emaste $"); static void append_data(struct section *s, const void *buf, size_t sz); static char hex_digit(uint8_t n); @@ -251,7 +251,7 @@ create_elf_from_srec(struct elfcopy *ecp sec_index = 1; sec_addr = entry = 0; while (fgets(line, _LINE_BUFSZ, ifp) != NULL) { - sz = 0; /* Silence GCC 5.3 uninitialized variable warning */ + sz = 0; if (line[0] == '\r' || line[0] == '\n') continue; if (line[0] == '$' && line[1] == '$') { Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/pe.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/pe.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/elfcopy/pe.c Thu Sep 1 02:57:15 2016 (r305172) @@ -34,7 +34,7 @@ #include "elfcopy.h" -ELFTC_VCSID("$Id: pe.c 3477 2016-05-25 20:00:42Z kaiwang27 $"); +ELFTC_VCSID("$Id: pe.c 3490 2016-08-31 00:12:22Z emaste $"); /* Convert ELF object to Portable Executable (PE). */ void @@ -54,6 +54,7 @@ create_pe(struct elfcopy *ecp, int ifd, PE_Buffer *pb; const char *name; size_t indx; + time_t timestamp; int elferr; if (ecp->otf == ETF_EFI || ecp->oem == EM_X86_64) @@ -89,7 +90,9 @@ create_pe(struct elfcopy *ecp, int ifd, pch.ch_machine = IMAGE_FILE_MACHINE_UNKNOWN; break; } - pch.ch_timestamp = (uint32_t) time(NULL); + if (elftc_timestamp(×tamp) != 0) + err(EXIT_FAILURE, "elftc_timestamp"); + pch.ch_timestamp = (uint32_t) timestamp; if (pe_update_coff_header(pe, &pch) < 0) err(EXIT_FAILURE, "pe_update_coff_header() failed"); Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/elfdump/elfdump.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/elfdump/elfdump.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/elfdump/elfdump.c Thu Sep 1 02:57:15 2016 (r305172) @@ -50,7 +50,7 @@ #include "_elftc.h" -ELFTC_VCSID("$Id: elfdump.c 3474 2016-05-17 20:44:53Z emaste $"); +ELFTC_VCSID("$Id: elfdump.c 3482 2016-08-02 18:47:00Z emaste $"); #if defined(ELFTC_NEED_ELF_NOTE_DEFINITION) #include "native-elf-format.h" @@ -332,6 +332,8 @@ static const char *ei_abis[256] = { "ELFOSABI_IRIX", "ELFOSABI_FREEBSD", "ELFOSABI_TRU64", "ELFOSABI_MODESTO", "ELFOSABI_OPENBSD", [17] = "ELFOSABI_CLOUDABI", + [64] = "ELFOSABI_ARM_AEABI", + [97] = "ELFOSABI_ARM", [255] = "ELFOSABI_STANDALONE" }; Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/libelf/elf_flagdata.3 ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/libelf/elf_flagdata.3 Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelf/elf_flagdata.3 Thu Sep 1 02:57:15 2016 (r305172) @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: elf_flagdata.3 2884 2013-01-11 02:03:46Z jkoshy $ +.\" $Id: elf_flagdata.3 3479 2016-06-25 20:44:33Z jkoshy $ .\" .Dd December 3, 2011 .Os @@ -208,16 +208,13 @@ was called without a program header bein .Xr elf 3 , .Xr elf32_newehdr 3 , .Xr elf32_newphdr 3 , -.Xr elf32_newshdr 3 , .Xr elf64_newehdr 3 , .Xr elf64_newphdr 3 , -.Xr elf64_newshdr 3 , .Xr elf_newdata 3 , .Xr elf_update 3 , .Xr gelf 3 , .Xr gelf_newehdr 3 , .Xr gelf_newphdr 3 , -.Xr gelf_newshdr 3 , .Xr gelf_update_dyn 3 , .Xr gelf_update_move 3 , .Xr gelf_update_rel 3 , Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/Makefile ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/Makefile Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/Makefile Thu Sep 1 02:57:15 2016 (r305172) @@ -1,4 +1,4 @@ -# $Id: Makefile 3418 2016-02-19 20:04:42Z emaste $ +# $Id: Makefile 3489 2016-08-31 00:12:15Z emaste $ TOP= ${.CURDIR}/.. @@ -10,6 +10,7 @@ SRCS= elftc_bfdtarget.c \ elftc_reloc_type_str.c \ elftc_set_timestamps.c \ elftc_string_table.c \ + elftc_timestamp.c \ elftc_version.c \ libelftc_bfdtarget.c \ libelftc_dem_arm.c \ Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 Thu Sep 1 02:57:15 2016 (r305172) @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $Id: elftc_bfd_find_target.3 3348 2016-01-18 14:18:50Z emaste $ +.\" $Id: elftc_bfd_find_target.3 3488 2016-08-24 18:15:57Z emaste $ .\" .Dd November 30, 2011 .Os Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c Thu Sep 1 02:57:15 2016 (r305172) @@ -545,6 +545,9 @@ elftc_reloc_type_str(unsigned int mach, case 43: return "R_RISCV_ALIGN"; case 44: return "R_RISCV_RVC_BRANCH"; case 45: return "R_RISCV_RVC_JUMP"; + case 46: return "R_RISCV_RVC_LUI"; + case 47: return "R_RISCV_GPREL_I"; + case 48: return "R_RISCV_GPREL_S"; } break; case EM_SPARC: Copied: projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_timestamp.3 (from r305170, head/contrib/elftoolchain/libelftc/elftc_timestamp.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_timestamp.3 Thu Sep 1 02:57:15 2016 (r305172, copy of r305170, head/contrib/elftoolchain/libelftc/elftc_timestamp.3) @@ -0,0 +1,79 @@ +.\" Copyright (c) 2016 The FreeBSD Foundation. All rights reserved. +.\" +.\" This documentation was written by Ed Maste under sponsorship of +.\" the FreeBSD Foundation. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" This software is provided by the 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$ +.\" +.Dd August 24, 2016 +.Os +.Dt ELFTC_TIMESTAMP 3 +.Sh NAME +.Nm elftc_timestamp +.Nd return the current or environment-provided timestamp +.Sh LIBRARY +.Lb libelftc +.Sh SYNOPSIS +.In libelftc.h +.Ft int +.Fo elftc_timestamp +.Fa "time_t *timestamp" +.Fc +.Sh DESCRIPTION +The +.Fn elftc_timestamp +function returns a timestamp supplied by the +.Ev SOURCE_DATE_EPOCH +environment variable, or the current time provided by +.Xr time 3 +if the environment variable is not set. +.Pp +The +.Ar timestamp +argument specifies a pointer to the location where the timestamp will be +stored. +.Sh RETURN VALUE +Function +.Fn elftc_timestamp +returns 0 on success, and -1 in the event of an error. +.Sh ERRORS +The +.Fn elftc_timestamp +function may fail with the following errors: +.Bl -tag -width ".Bq Er ERANGE" +.It Bq Er EINVAL +.Ev SOURCE_DATE_EPOCH +contains invalid characters. +.It Bq Er ERANGE +.Ev SOURCE_DATE_EPOCH +specifies a negative value or a value that cannot be stored in a +time_t. +.El +The +.Fn elftc_timestamp +function may also fail for any of the reasons described in +.Xr strtoll 3 . +.Sh SEE ALSO +.Xr strtoll 3 , +.Xr time 3 Copied: projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_timestamp.c (from r305170, head/contrib/elftoolchain/libelftc/elftc_timestamp.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/elftc_timestamp.c Thu Sep 1 02:57:15 2016 (r305172, copy of r305170, head/contrib/elftoolchain/libelftc/elftc_timestamp.c) @@ -0,0 +1,55 @@ +/*- + * Copyright (c) 2016 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Ed Maste under sponsorship + * of the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE 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 +#include +#include +#include + +int +elftc_timestamp(time_t *timestamp) +{ + long long source_date_epoch; + char *env, *eptr; + + if ((env = getenv("SOURCE_DATE_EPOCH")) != NULL) { + errno = 0; + source_date_epoch = strtoll(env, &eptr, 10); + if (*eptr != '\0') + errno = EINVAL; + if (source_date_epoch < 0) + errno = ERANGE; + if (errno != 0) + return (-1); + *timestamp = source_date_epoch; + return (0); + } + *timestamp = time(NULL); + return (0); +} Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc.h ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc.h Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc.h Thu Sep 1 02:57:15 2016 (r305172) @@ -24,7 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: users/kaiwang27/elftc/libelftc.h 392 2009-05-31 19:17:46Z kaiwang27 $ - * $Id: libelftc.h 3418 2016-02-19 20:04:42Z emaste $ + * $Id: libelftc.h 3489 2016-08-31 00:12:15Z emaste $ */ #ifndef _LIBELFTC_H_ @@ -91,6 +91,7 @@ int elftc_string_table_remove(Elftc_Str const char *_string); const char *elftc_string_table_to_string(Elftc_String_Table *_table, size_t offset); +int elftc_timestamp(time_t *_timestamp); const char *elftc_version(void); #ifdef __cplusplus } Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c Thu Sep 1 02:57:15 2016 (r305172) @@ -30,7 +30,7 @@ #include "_libelftc.h" -ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3309 2016-01-10 09:10:51Z kaiwang27 $"); +ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3488 2016-08-24 18:15:57Z emaste $"); struct _Elftc_Bfd_Target _libelftc_targets[] = { Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c Thu Sep 1 02:57:15 2016 (r305172) @@ -36,7 +36,7 @@ #include "_libelftc.h" -ELFTC_VCSID("$Id: libelftc_dem_gnu3.c 3447 2016-05-03 13:32:23Z emaste $"); +ELFTC_VCSID("$Id: libelftc_dem_gnu3.c 3480 2016-07-24 23:38:41Z emaste $"); /** * @file cpp_demangle.c Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/readelf/readelf.1 ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/readelf/readelf.1 Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/readelf/readelf.1 Thu Sep 1 02:57:15 2016 (r305172) @@ -22,7 +22,7 @@ .\" (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: readelf.1 3219 2015-05-24 23:42:34Z kaiwang27 $ +.\" $Id: readelf.1 3486 2016-08-22 14:10:05Z emaste $ .\" .Dd September 13, 2012 .Os @@ -43,12 +43,12 @@ .Op Fl p Ar section | Fl -string-dump Ns = Ns Ar section .Op Fl r | Fl -relocs .Op Fl t | Fl -section-details -.Op Fl x Ar section | Fl -hex-dump Ns = Ns Ar section .Op Fl v | Fl -version .Oo .Fl w Ns Oo Ns Ar afilmoprsFLR Ns Oc | .Fl -debug-dump Ns Op Ns = Ns Ar long-option-name , Ns ... .Oc +.Op Fl x Ar section | Fl -hex-dump Ns = Ns Ar section .Op Fl A | Fl -arch-specific .Op Fl D | Fl -use-dynamic .Op Fl H | Fl -help Modified: projects/netbsd-tests-update-12/contrib/elftoolchain/readelf/readelf.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/elftoolchain/readelf/readelf.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/elftoolchain/readelf/readelf.c Thu Sep 1 02:57:15 2016 (r305172) @@ -47,7 +47,7 @@ #include "_elftc.h" -ELFTC_VCSID("$Id: readelf.c 3469 2016-05-15 23:16:09Z emaste $"); +ELFTC_VCSID("$Id: readelf.c 3484 2016-08-03 13:36:49Z emaste $"); /* Backwards compatability for older FreeBSD releases. */ #ifndef STB_GNU_UNIQUE @@ -440,6 +440,7 @@ elf_osabi(unsigned int abi) case ELFOSABI_OPENVMS: return "OpenVMS"; case ELFOSABI_NSK: return "NSK"; case ELFOSABI_CLOUDABI: return "CloudABI"; + case ELFOSABI_ARM_AEABI: return "ARM EABI"; case ELFOSABI_ARM: return "ARM"; case ELFOSABI_STANDALONE: return "StandAlone"; default: @@ -2787,6 +2788,8 @@ dump_rel(struct readelf *re, struct sect const char *symname; uint64_t symval; int i, len; + uint32_t type; + uint8_t type2, type3; if (s->link >= re->shnum) return; @@ -2796,8 +2799,8 @@ dump_rel(struct readelf *re, struct sect elftc_reloc_type_str(re->ehdr.e_machine, \ ELF32_R_TYPE(r.r_info)), (uintmax_t)symval, symname #define REL_CT64 (uintmax_t)r.r_offset, (uintmax_t)r.r_info, \ - elftc_reloc_type_str(re->ehdr.e_machine, \ - ELF64_R_TYPE(r.r_info)), (uintmax_t)symval, symname + elftc_reloc_type_str(re->ehdr.e_machine, type), \ + (uintmax_t)symval, symname printf("\nRelocation section (%s):\n", s->name); if (re->ec == ELFCLASS32) @@ -2823,12 +2826,37 @@ dump_rel(struct readelf *re, struct sect ELF64_R_TYPE(r.r_info)); printf("%8.8jx %8.8jx %-19.19s %8.8jx %s\n", REL_CT32); } else { + type = ELF64_R_TYPE(r.r_info); + if (re->ehdr.e_machine == EM_MIPS) { + type2 = (type >> 8) & 0xFF; + type3 = (type >> 16) & 0xFF; + type = type & 0xFF; + } else { + type2 = type3 = 0; + } if (re->options & RE_WW) printf("%16.16jx %16.16jx %-24.24s" " %16.16jx %s\n", REL_CT64); else printf("%12.12jx %12.12jx %-19.19s" " %16.16jx %s\n", REL_CT64); + if (re->ehdr.e_machine == EM_MIPS) { + if (re->options & RE_WW) { + printf("%32s: %s\n", "Type2", + elftc_reloc_type_str(EM_MIPS, + type2)); + printf("%32s: %s\n", "Type3", + elftc_reloc_type_str(EM_MIPS, + type3)); + } else { + printf("%24s: %s\n", "Type2", + elftc_reloc_type_str(EM_MIPS, + type2)); + printf("%24s: %s\n", "Type3", + elftc_reloc_type_str(EM_MIPS, + type3)); + } + } } } @@ -2843,6 +2871,8 @@ dump_rela(struct readelf *re, struct sec const char *symname; uint64_t symval; int i, len; + uint32_t type; + uint8_t type2, type3; if (s->link >= re->shnum) return; @@ -2853,8 +2883,8 @@ dump_rela(struct readelf *re, struct sec elftc_reloc_type_str(re->ehdr.e_machine, \ ELF32_R_TYPE(r.r_info)), (uintmax_t)symval, symname #define RELA_CT64 (uintmax_t)r.r_offset, (uintmax_t)r.r_info, \ - elftc_reloc_type_str(re->ehdr.e_machine, \ - ELF64_R_TYPE(r.r_info)), (uintmax_t)symval, symname + elftc_reloc_type_str(re->ehdr.e_machine, type), \ + (uintmax_t)symval, symname printf("\nRelocation section with addend (%s):\n", s->name); if (re->ec == ELFCLASS32) @@ -2881,6 +2911,14 @@ dump_rela(struct readelf *re, struct sec printf("%8.8jx %8.8jx %-19.19s %8.8jx %s", RELA_CT32); printf(" + %x\n", (uint32_t) r.r_addend); } else { + type = ELF64_R_TYPE(r.r_info); + if (re->ehdr.e_machine == EM_MIPS) { + type2 = (type >> 8) & 0xFF; + type3 = (type >> 16) & 0xFF; + type = type & 0xFF; + } else { + type2 = type3 = 0; + } if (re->options & RE_WW) printf("%16.16jx %16.16jx %-24.24s" " %16.16jx %s", RELA_CT64); @@ -2888,6 +2926,23 @@ dump_rela(struct readelf *re, struct sec printf("%12.12jx %12.12jx %-19.19s" " %16.16jx %s", RELA_CT64); printf(" + %jx\n", (uintmax_t) r.r_addend); + if (re->ehdr.e_machine == EM_MIPS) { + if (re->options & RE_WW) { + printf("%32s: %s\n", "Type2", + elftc_reloc_type_str(EM_MIPS, + type2)); + printf("%32s: %s\n", "Type3", + elftc_reloc_type_str(EM_MIPS, + type3)); + } else { + printf("%24s: %s\n", "Type2", + elftc_reloc_type_str(EM_MIPS, + type2)); + printf("%24s: %s\n", "Type3", + elftc_reloc_type_str(EM_MIPS, + type3)); + } + } } } Copied: projects/netbsd-tests-update-12/contrib/gcc/config/i386/cpuid.h (from r305170, head/contrib/gcc/config/i386/cpuid.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/contrib/gcc/config/i386/cpuid.h Thu Sep 1 02:57:15 2016 (r305172, copy of r305170, head/contrib/gcc/config/i386/cpuid.h) @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2007 Free Software Foundation, Inc. + * + * This file 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, or (at your option) any + * later version. + * + * In addition to the permissions in the GNU General Public License, the + * Free Software Foundation gives you unlimited permission to link the + * compiled version of this file with other programs, and to distribute + * those programs without any restriction coming from the use of this + * file. (The General Public License restrictions do apply in other + * respects; for example, they cover modification of the file, and + * distribution when not linked into another program.) + * + * This file 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 this program; see the file COPYING. If not, write to + * the Free Software Foundation, 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * As a special exception, if you link this library with files + * compiled with GCC to produce an executable, this does not cause + * the resulting executable to be covered by the GNU General Public License. + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + */ + +/* %ecx */ +#define bit_SSE3 (1 << 0) +#define bit_SSSE3 (1 << 9) +#define bit_CMPXCHG16B (1 << 13) +#define bit_SSE4_1 (1 << 19) +#define bit_SSE4_2 (1 << 20) +#define bit_POPCNT (1 << 23) + +/* %edx */ +#define bit_CMPXCHG8B (1 << 8) +#define bit_CMOV (1 << 15) +#define bit_MMX (1 << 23) +#define bit_FXSAVE (1 << 24) +#define bit_SSE (1 << 25) +#define bit_SSE2 (1 << 26) + +/* Extended Features */ +/* %ecx */ +#define bit_LAHF_LM (1 << 0) +#define bit_SSE4a (1 << 6) +#define bit_SSE5 (1 << 11) + +/* %edx */ +#define bit_LM (1 << 29) +#define bit_3DNOWP (1 << 30) +#define bit_3DNOW (1 << 31) + + +#if defined(__i386__) && defined(__PIC__) +/* %ebx may be the PIC register. */ +#define __cpuid(level, a, b, c, d) \ + __asm__ ("xchg{l}\t{%%}ebx, %1\n\t" \ + "cpuid\n\t" \ + "xchg{l}\t{%%}ebx, %1\n\t" \ + : "=a" (a), "=r" (b), "=c" (c), "=d" (d) \ + : "0" (level)) +#else +#define __cpuid(level, a, b, c, d) \ + __asm__ ("cpuid\n\t" \ + : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \ + : "0" (level)) +#endif + +/* Return highest supported input value for cpuid instruction. ext can + be either 0x0 or 0x8000000 to return highest supported value for + basic or extended cpuid information. Function returns 0 if cpuid + is not supported or whatever cpuid returns in eax register. If sig + pointer is non-null, then first four bytes of the signature + (as found in ebx register) are returned in location pointed by sig. */ + +static __inline unsigned int +__get_cpuid_max (unsigned int __ext, unsigned int *__sig) +{ + unsigned int __eax, __ebx, __ecx, __edx; + +#ifndef __x86_64__ + /* See if we can use cpuid. On AMD64 we always can. */ + __asm__ ("pushf{l|d}\n\t" + "pushf{l|d}\n\t" + "pop{l}\t%0\n\t" + "mov{l}\t{%0, %1|%1, %0}\n\t" + "xor{l}\t{%2, %0|%0, %2}\n\t" + "push{l}\t%0\n\t" + "popf{l|d}\n\t" + "pushf{l|d}\n\t" + "pop{l}\t%0\n\t" + "popf{l|d}\n\t" + : "=&r" (__eax), "=&r" (__ebx) + : "i" (0x00200000)); + + if (!((__eax ^ __ebx) & 0x00200000)) + return 0; +#endif + + /* Host supports cpuid. Return highest supported cpuid input value. */ + __cpuid (__ext, __eax, __ebx, __ecx, __edx); + + if (__sig) + *__sig = __ebx; + + return __eax; +} + +/* Return cpuid data for requested cpuid level, as found in returned + eax, ebx, ecx and edx registers. The function checks if cpuid is + supported and returns 1 for valid cpuid information or 0 for + unsupported cpuid level. All pointers are required to be non-null. */ + +static __inline int +__get_cpuid (unsigned int __level, + unsigned int *__eax, unsigned int *__ebx, + unsigned int *__ecx, unsigned int *__edx) +{ + unsigned int __ext = __level & 0x80000000; + + if (__get_cpuid_max (__ext, 0) < __level) + return 0; + + __cpuid (__level, *__eax, *__ebx, *__ecx, *__edx); + return 1; +} Modified: projects/netbsd-tests-update-12/contrib/gcc/doc/cpp.texi ============================================================================== --- projects/netbsd-tests-update-12/contrib/gcc/doc/cpp.texi Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/gcc/doc/cpp.texi Thu Sep 1 02:57:15 2016 (r305172) @@ -1912,6 +1912,13 @@ underscores. @table @code +@item __COUNTER__ +This macro expands to sequential integral values starting from 0. In +conjuction with the @code{##} operator, this provides a convenient means to +generate unique identifiers. Care must be taken to ensure that +@code{__COUNTER__} is not expanded prior to inclusion of precompiled headers +which use it. Otherwise, the precompiled headers will not be used. + @item __GNUC__ @itemx __GNUC_MINOR__ @itemx __GNUC_PATCHLEVEL__ Modified: projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/ChangeLog.gcc43 ============================================================================== --- projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/ChangeLog.gcc43 Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/ChangeLog.gcc43 Thu Sep 1 02:57:15 2016 (r305172) @@ -12,6 +12,17 @@ PR preprocessor/14331 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF. +2007-05-24 Ollie Wild (r125041) + + * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER. + * pch.c (cpp_write_pch_deps): Save __COUNTER__ state. + (cpp_write_pch_state): Save __COUNTER__ state. + (cpp_valid_state): Check valid __COUNTER__ state. + (cpp_read_state): Read new __COUNTER__ state. + * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator. + * init.c (builtin_array): Add __COUNTER__/BT_COUNTER. + * internal.h (struct cpp_reader): Add counter member. + 2007-05-21 Ian Lance Taylor (r124929) * internal.h (struct cpp_reader): Add new fields: Modified: projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/internal.h ============================================================================== --- projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/internal.h Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/internal.h Thu Sep 1 02:57:15 2016 (r305172) @@ -458,7 +458,8 @@ struct cpp_reader of precompiled headers. */ struct cpp_savedstate *savedstate; - unsigned int nextcounter; + /* Next value of __COUNTER__ macro. */ + unsigned int counter; }; /* Character classes. Based on the more primitive macros in safe-ctype.h. Modified: projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/macro.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/macro.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/macro.c Thu Sep 1 02:57:15 2016 (r305172) @@ -268,7 +268,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi if (CPP_OPTION (pfile, directives_only) && pfile->state.in_directive) cpp_error (pfile, CPP_DL_ERROR, "__COUNTER__ expanded inside directive with -fdirectives-only"); - number = pfile->nextcounter++; + number = pfile->counter++; break; } Modified: projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/pch.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/pch.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/gcclibs/libcpp/pch.c Thu Sep 1 02:57:15 2016 (r305172) @@ -337,6 +337,14 @@ cpp_write_pch_deps (cpp_reader *r, FILE /* Free the saved state. */ free (ss); r->savedstate = NULL; + + /* Save the next value of __COUNTER__. */ + if (fwrite (&r->counter, sizeof (r->counter), 1, f) != 1) + { + cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header"); + return -1; + } + return 0; } @@ -361,6 +369,15 @@ cpp_write_pch_state (cpp_reader *r, FILE return -1; } + /* Save the next __COUNTER__ value. When we include a precompiled header, + we need to start at the offset we would have if the header had been + included normally. */ + if (fwrite (&r->counter, sizeof (r->counter), 1, f) != 1) + { + cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header"); + return -1; + } + return 0; } @@ -423,6 +440,7 @@ cpp_valid_state (cpp_reader *r, const ch struct ht_node_list nl = { 0, 0, 0 }; unsigned char *first, *last; unsigned int i; + unsigned int counter; /* Read in the list of identifiers that must be defined Check that they are defined in the same way. */ @@ -524,7 +542,23 @@ cpp_valid_state (cpp_reader *r, const ch } free(nl.defs); + nl.defs = NULL; free (undeftab); + undeftab = NULL; + + /* Read in the next value of __COUNTER__. + Check that (a) __COUNTER__ was not used in the pch or (b) __COUNTER__ + has not been used in this translation unit. */ + if (read (fd, &counter, sizeof (counter)) != sizeof (counter)) + goto error; + if (counter && r->counter) + { + if (CPP_OPTION (r, warn_invalid_pch)) + cpp_error (r, CPP_DL_WARNING_SYSHDR, + "%s: not used because `__COUNTER__' is invalid", + name); + goto fail; + } /* We win! */ return 0; @@ -631,6 +665,7 @@ cpp_read_state (cpp_reader *r, const cha { size_t i; struct lexer_state old_state; + unsigned int counter; /* Restore spec_nodes, which will be full of references to the old hashtable entries and so will now be invalid. */ @@ -690,6 +725,12 @@ cpp_read_state (cpp_reader *r, const cha if (! _cpp_read_file_entries (r, f)) goto error; + if (fread (&counter, sizeof (counter), 1, f) != 1) + goto error; + + if (!r->counter) + r->counter = counter; + return 0; error: Modified: projects/netbsd-tests-update-12/contrib/telnet/libtelnet/pk.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/telnet/libtelnet/pk.c Thu Sep 1 02:51:50 2016 (r305171) +++ projects/netbsd-tests-update-12/contrib/telnet/libtelnet/pk.c Thu Sep 1 02:57:15 2016 (r305172) @@ -164,7 +164,7 @@ genkeys(char *public, char *secret) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Thu Sep 1 03:41:09 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26556BCA11F for ; Thu, 1 Sep 2016 03:41:09 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-it0-x22b.google.com (mail-it0-x22b.google.com [IPv6:2607:f8b0:4001:c0b::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E41A0222; Thu, 1 Sep 2016 03:41:08 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-it0-x22b.google.com with SMTP id c198so21923356ith.1; Wed, 31 Aug 2016 20:41:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=lnECbgqmZJ4myLebVx18z/EDU5EMfK7lVPqijM71E9M=; b=ToiY8zqt2kt6YwkGfEmaf29xiKcG3AK+cUSw7QPhEdsWUGm/1VQa32GFLCAuAMPViR XVjd40ObJd/FxmAoAXFuG82GzV08O8k7K5AvNTsJTQWApSuAlbTDqvsWfU2xD4f4enHA CCPrvkYckA12VSWZRLX2BBtIt95FvEO1kw4TRJjD1yOZsVdpF4qVUvEwFuRYEVbAEqEO M8Xv1QXb415T0u0kRaY+qBPXoQwoqUTWH18L9XYCeFmWpKBwMt2vQ3AqtKlKGIjz71J+ pnGSX24xf6wS9BmM0syOqBEHgq57fCD3GGwe1paoK1yFnQoIPbUB0NlZK6iguQObofiG 5+0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=lnECbgqmZJ4myLebVx18z/EDU5EMfK7lVPqijM71E9M=; b=MYipo6yaR3gM5gqxEx2U7G+eH84RKhO6JAljdI07gF4+hW7INBcCMCMrh0B3m/d2sW mSiGy0bKah+AMEn5m1EXfzTO5DZkL0VYQV6MT3k1FsLEfoW8vom1AHEKbd26dSuGvSLS sJbsSmkXfkmL1fz1FlV7RL1MX9/ZKXmuOQE/DVBGm9y0zw6CJxeM3IkuUOSFwtw8TIjj FPL5PCu99Joaca9SovuFZqbGKAXLMthJHfB2Rp2tuOqlboLPlAfU4gySA43qzUUuwi14 4o/D8EtrTTPK3NFQGV2SsBMn2YZaXfmqwrqPdro1am2W5bafJefEFt4xqoagbZ2gQOTY ZGQQ== X-Gm-Message-State: AE9vXwOnBh4hgpocW0PVFWIm/wQiCpvgFrI+hP3v5Vo5zGuY0pxl+z0eDDcSM+1ZTBKDomf9TU1uW8YHVNLg1A== X-Received: by 10.36.111.209 with SMTP id x200mr34604277itb.59.1472701268381; Wed, 31 Aug 2016 20:41:08 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.138.28 with HTTP; Wed, 31 Aug 2016 20:40:48 -0700 (PDT) In-Reply-To: <20160901005304.GA44266@mutt-hardenedbsd> References: <201608312118.u7VLIcg7014451@repo.freebsd.org> <20160901005304.GA44266@mutt-hardenedbsd> From: Ed Maste Date: Thu, 1 Sep 2016 03:40:48 +0000 X-Google-Sender-Auth: inLLZOBPnaKbjY0UOo2sQRQiMEs Message-ID: Subject: Re: svn commit: r305158 - in projects/clang390-import: lib/clang/libllvm share/mk tools/build/options usr.bin/clang To: Shawn Webb Cc: "src-committers@freebsd.org" , svn-src-projects@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 03:41:09 -0000 On 1 September 2016 at 00:53, Shawn Webb wrote: > > How soon do you expect to merge into HEAD? If it's still sometime down > the road, I'd be happy to do some additional testing in the > hardened/current/drm-next-4.7 branch in HardenedBSD's playground repo. It'll be a little while still, since it comes along with the Clang 3.9.0 update. dim@ is looking at issues building the kernel with the new Clang, and will be requesting a ports exp-run. From owner-svn-src-projects@freebsd.org Thu Sep 1 18:16:48 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AD6DBCB631 for ; Thu, 1 Sep 2016 18:16:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 22C8323F; Thu, 1 Sep 2016 18:16:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81IGlRJ094155; Thu, 1 Sep 2016 18:16:47 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81IGjVo094139; Thu, 1 Sep 2016 18:16:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609011816.u81IGjVo094139@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 1 Sep 2016 18:16:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305220 - in projects/clang390-import: . bin/df cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zhack cddl/contrib/opensolaris/cmd/zpool c... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 18:16:48 -0000 Author: dim Date: Thu Sep 1 18:16:45 2016 New Revision: 305220 URL: https://svnweb.freebsd.org/changeset/base/305220 Log: Merge ^/head r305087 through r305219. Added: projects/clang390-import/cddl/usr.sbin/zfsd/Makefile.depend - copied unchanged from r305219, head/cddl/usr.sbin/zfsd/Makefile.depend projects/clang390-import/contrib/elftoolchain/libelftc/elftc_timestamp.3 - copied unchanged from r305219, head/contrib/elftoolchain/libelftc/elftc_timestamp.3 projects/clang390-import/contrib/elftoolchain/libelftc/elftc_timestamp.c - copied unchanged from r305219, head/contrib/elftoolchain/libelftc/elftc_timestamp.c projects/clang390-import/contrib/gcc/config/i386/cpuid.h - copied unchanged from r305219, head/contrib/gcc/config/i386/cpuid.h projects/clang390-import/libexec/rtld-elf/tests/libpythagoras/Makefile.depend - copied unchanged from r305219, head/libexec/rtld-elf/tests/libpythagoras/Makefile.depend projects/clang390-import/libexec/rtld-elf/tests/target/Makefile.depend - copied unchanged from r305219, head/libexec/rtld-elf/tests/target/Makefile.depend projects/clang390-import/sys/arm/ti/am335x/am335x_scm.c - copied unchanged from r305219, head/sys/arm/ti/am335x/am335x_scm.c projects/clang390-import/sys/boot/fdt/dts/arm64/ - copied from r305219, head/sys/boot/fdt/dts/arm64/ projects/clang390-import/tests/sys/pjdfstest/pjdfstest/Makefile.depend - copied unchanged from r305219, head/tests/sys/pjdfstest/pjdfstest/Makefile.depend projects/clang390-import/tests/sys/sys/Makefile.depend - copied unchanged from r305219, head/tests/sys/sys/Makefile.depend projects/clang390-import/usr.bin/bsdcat/tests/Makefile.depend - copied unchanged from r305219, head/usr.bin/bsdcat/tests/Makefile.depend projects/clang390-import/usr.bin/sdiff/tests/Makefile.depend - copied unchanged from r305219, head/usr.bin/sdiff/tests/Makefile.depend projects/clang390-import/usr.bin/xinstall/tests/Makefile.depend - copied unchanged from r305219, head/usr.bin/xinstall/tests/Makefile.depend projects/clang390-import/usr.sbin/extattr/tests/Makefile.depend - copied unchanged from r305219, head/usr.sbin/extattr/tests/Makefile.depend projects/clang390-import/usr.sbin/pmcstudy/Makefile.depend - copied unchanged from r305219, head/usr.sbin/pmcstudy/Makefile.depend projects/clang390-import/usr.sbin/ypldap/Makefile.depend - copied unchanged from r305219, head/usr.sbin/ypldap/Makefile.depend Modified: projects/clang390-import/Makefile projects/clang390-import/bin/df/df.c projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c projects/clang390-import/cddl/contrib/opensolaris/cmd/zhack/zhack.c projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c projects/clang390-import/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c projects/clang390-import/cddl/usr.sbin/dtrace/Makefile.depend projects/clang390-import/cddl/usr.sbin/lockstat/Makefile.depend projects/clang390-import/cddl/usr.sbin/plockstat/Makefile.depend projects/clang390-import/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc projects/clang390-import/contrib/elftoolchain/common/elfdefinitions.h projects/clang390-import/contrib/elftoolchain/elfcopy/archive.c projects/clang390-import/contrib/elftoolchain/elfcopy/ascii.c projects/clang390-import/contrib/elftoolchain/elfcopy/pe.c projects/clang390-import/contrib/elftoolchain/elfdump/elfdump.c projects/clang390-import/contrib/elftoolchain/libelf/elf_flagdata.3 projects/clang390-import/contrib/elftoolchain/libelftc/Makefile projects/clang390-import/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 projects/clang390-import/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c projects/clang390-import/contrib/elftoolchain/libelftc/libelftc.h projects/clang390-import/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c projects/clang390-import/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c projects/clang390-import/contrib/elftoolchain/readelf/readelf.1 projects/clang390-import/contrib/elftoolchain/readelf/readelf.c projects/clang390-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp projects/clang390-import/gnu/lib/libgcc/Makefile projects/clang390-import/lib/atf/libatf-c/Makefile projects/clang390-import/lib/libc/gen/directory.3 projects/clang390-import/lib/libc/gen/getvfsbyname.3 projects/clang390-import/lib/libc/net/getaddrinfo.c projects/clang390-import/lib/libc/net/name6.c projects/clang390-import/lib/libc/stdio/fgetwc.c projects/clang390-import/lib/libc/tests/stdlib/Makefile.depend projects/clang390-import/lib/libelftc/Makefile projects/clang390-import/lib/libelftc/elftc_version.c projects/clang390-import/lib/libproc/Makefile.depend projects/clang390-import/lib/libproc/tests/Makefile.depend projects/clang390-import/lib/librtld_db/Makefile.depend projects/clang390-import/lib/libstand/bootp.c projects/clang390-import/lib/libstand/bootp.h projects/clang390-import/lib/libstand/globals.c projects/clang390-import/lib/libstand/net.h projects/clang390-import/lib/libstand/nfs.c projects/clang390-import/lib/libstand/tftp.c projects/clang390-import/secure/usr.bin/ssh/Makefile.depend projects/clang390-import/share/misc/bsd-family-tree projects/clang390-import/share/mk/bsd.dep.mk projects/clang390-import/share/mk/bsd.init.mk projects/clang390-import/share/mk/bsd.obj.mk projects/clang390-import/share/mk/bsd.subdir.mk projects/clang390-import/share/mk/local.meta.sys.mk projects/clang390-import/share/mk/sys.mk projects/clang390-import/sys/amd64/amd64/pmap.c projects/clang390-import/sys/arm/allwinner/aw_usbphy.c projects/clang390-import/sys/arm/arm/cpufunc_asm_xscale_c3.S projects/clang390-import/sys/arm/arm/locore-v4.S projects/clang390-import/sys/arm/ti/am335x/am335x_prcm.c projects/clang390-import/sys/arm/ti/am335x/am335x_scm.h projects/clang390-import/sys/arm/ti/am335x/files.am335x projects/clang390-import/sys/arm/ti/cpsw/if_cpsw.c projects/clang390-import/sys/arm/ti/cpsw/if_cpswreg.h projects/clang390-import/sys/arm/ti/ti_scm.c projects/clang390-import/sys/arm/xscale/i8134x/crb_machdep.c projects/clang390-import/sys/arm/xscale/i8134x/obio.c projects/clang390-import/sys/arm/xscale/i8134x/obiovar.h projects/clang390-import/sys/arm/xscale/i8134x/uart_cpu_i81342.c projects/clang390-import/sys/arm64/arm64/pmap.c projects/clang390-import/sys/arm64/arm64/trap.c projects/clang390-import/sys/boot/common/dev_net.c projects/clang390-import/sys/boot/efi/boot1/Makefile projects/clang390-import/sys/boot/efi/libefi/Makefile projects/clang390-import/sys/boot/efi/loader/Makefile projects/clang390-import/sys/boot/efi/loader/conf.c projects/clang390-import/sys/boot/fdt/dts/Makefile projects/clang390-import/sys/boot/fdt/dts/riscv/rocket.dts projects/clang390-import/sys/boot/fdt/dts/riscv/spike.dts projects/clang390-import/sys/boot/forth/loader.4th projects/clang390-import/sys/boot/i386/libi386/biosdisk.c projects/clang390-import/sys/boot/i386/libi386/pxe.c projects/clang390-import/sys/boot/i386/loader/conf.c projects/clang390-import/sys/boot/pc98/loader/conf.c projects/clang390-import/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c projects/clang390-import/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c projects/clang390-import/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c projects/clang390-import/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.h projects/clang390-import/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/sys/sysevent/eventdefs.h projects/clang390-import/sys/contrib/vchiq/interface/vchiq_arm/vchiq_arm.c projects/clang390-import/sys/contrib/vchiq/interface/vchiq_arm/vchiq_core.c projects/clang390-import/sys/dev/bhnd/cores/pmu/bhnd_pmureg.h projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei.c projects/clang390-import/sys/dev/cxgbe/tom/t4_ddp.c projects/clang390-import/sys/dev/cxgbe/tom/t4_tom.c projects/clang390-import/sys/dev/cxgbe/tom/t4_tom.h projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis.h projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.c projects/clang390-import/sys/dev/hyperv/netvsc/if_hnvar.h projects/clang390-import/sys/dev/hyperv/netvsc/ndis.h projects/clang390-import/sys/dev/hyperv/utilities/hv_timesync.c projects/clang390-import/sys/dev/ixl/if_ixlv.c projects/clang390-import/sys/dev/ixl/ixl_txrx.c projects/clang390-import/sys/dev/netmap/if_ixl_netmap.h projects/clang390-import/sys/dev/syscons/syscons.c projects/clang390-import/sys/dev/syscons/syscons.h projects/clang390-import/sys/i386/i386/pmap.c projects/clang390-import/sys/kern/capabilities.conf projects/clang390-import/sys/kern/init_sysent.c projects/clang390-import/sys/kern/kern_descrip.c projects/clang390-import/sys/kern/subr_gtaskqueue.c projects/clang390-import/sys/kern/subr_taskqueue.c projects/clang390-import/sys/kern/sys_capability.c projects/clang390-import/sys/kern/uipc_usrreq.c projects/clang390-import/sys/net/ethernet.h projects/clang390-import/sys/net/rndis.h projects/clang390-import/sys/netipsec/ipsec_input.c projects/clang390-import/sys/riscv/riscv/timer.c projects/clang390-import/sys/sys/filedesc.h projects/clang390-import/sys/vm/swap_pager.c projects/clang390-import/targets/pseudo/tests/Makefile.depend projects/clang390-import/targets/pseudo/userland/Makefile.depend projects/clang390-import/targets/pseudo/userland/cddl/Makefile.depend projects/clang390-import/targets/pseudo/userland/libexec/Makefile.depend projects/clang390-import/usr.bin/Makefile projects/clang390-import/usr.bin/localedef/collate.c projects/clang390-import/usr.bin/nfsstat/Makefile.depend projects/clang390-import/usr.bin/tar/tests/Makefile.depend projects/clang390-import/usr.sbin/bhyve/Makefile.depend projects/clang390-import/usr.sbin/pw/tests/Makefile.depend Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/cddl/ (props changed) projects/clang390-import/cddl/contrib/opensolaris/ (props changed) projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/ (props changed) projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/ (props changed) projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/clang390-import/contrib/elftoolchain/ (props changed) projects/clang390-import/contrib/elftoolchain/elfdump/ (props changed) projects/clang390-import/contrib/gcc/ (props changed) projects/clang390-import/contrib/llvm/ (props changed) projects/clang390-import/gnu/lib/ (props changed) projects/clang390-import/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/clang390-import/Makefile ============================================================================== --- projects/clang390-import/Makefile Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/Makefile Thu Sep 1 18:16:45 2016 (r305220) @@ -109,7 +109,8 @@ # Note: we use this awkward construct to be compatible with FreeBSD's # old make used in 10.0 and 9.2 and earlier. -.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && !make(showconfig) +.if defined(MK_DIRDEPS_BUILD) && ${MK_DIRDEPS_BUILD} == "yes" && \ + !make(showconfig) && !make(print-dir) # targets/Makefile plays the role of top-level .include "targets/Makefile" .else @@ -132,7 +133,7 @@ TGTS= all all-man buildenv buildenvvars xdev-links native-xtools stageworld stagekernel stage-packages \ create-world-packages create-kernel-packages create-packages \ packages installconfig real-packages sign-packages package-pkg \ - test-system-compiler + print-dir test-system-compiler # XXX: r156740: This can't work since bsd.subdir.mk is not included ever. # It will only work for SUBDIR_TARGETS in make.conf. @@ -257,6 +258,10 @@ _TARGET_ARCH= ${XDEV_ARCH} _TARGET?= ${MACHINE} _TARGET_ARCH?= ${MACHINE_ARCH} +.if make(print-dir) +.SILENT: +.endif + # # Make sure we have an up-to-date make(1). Only world and buildworld # should do this as those are the initial targets used for upgrades. Modified: projects/clang390-import/bin/df/df.c ============================================================================== --- projects/clang390-import/bin/df/df.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/bin/df/df.c Thu Sep 1 18:16:45 2016 (r305220) @@ -166,6 +166,9 @@ main(int argc, char *argv[]) hflag = 0; break; case 'l': + /* Ignore duplicate -l */ + if (lflag) + break; if (vfslist != NULL) xo_errx(1, "-l and -t are mutually exclusive."); vfslist = makevfslist(makenetvfslist()); Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu Sep 1 18:16:45 2016 (r305220) @@ -60,7 +60,6 @@ #include #include #include -#undef ZFS_MAXNAMELEN #undef verify #include @@ -1945,7 +1944,7 @@ dump_dir(objset_t *os) uint64_t refdbytes, usedobjs, scratch; char numbuf[32]; char blkbuf[BP_SPRINTF_LEN + 20]; - char osname[MAXNAMELEN]; + char osname[ZFS_MAX_DATASET_NAME_LEN]; char *type = "UNKNOWN"; int verbosity = dump_opt['d']; int print_header = 1; @@ -3482,7 +3481,7 @@ find_zpool(char **target, nvlist_t **con nvlist_t *match = NULL; char *name = NULL; char *sepp = NULL; - char sep; + char sep = '\0'; int count = 0; importargs_t args = { 0 }; Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Thu Sep 1 18:16:45 2016 (r305220) @@ -21,8 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012 Pawel Jakub Dawidek . - * All rights reserved. + * Copyright (c) 2012 Pawel Jakub Dawidek. All rights reserved. * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2013 by Delphix. All rights reserved. */ @@ -320,8 +319,8 @@ zfs_sort(const void *larg, const void *r } else if (psc->sc_prop == ZFS_PROP_NAME) { lvalid = rvalid = B_TRUE; - (void) strlcpy(lbuf, zfs_get_name(l), sizeof(lbuf)); - (void) strlcpy(rbuf, zfs_get_name(r), sizeof(rbuf)); + (void) strlcpy(lbuf, zfs_get_name(l), sizeof (lbuf)); + (void) strlcpy(rbuf, zfs_get_name(r), sizeof (rbuf)); lstr = lbuf; rstr = rbuf; Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h Thu Sep 1 18:16:45 2016 (r305220) @@ -22,6 +22,7 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved. * Copyright 2013 Nexenta Systems, Inc. All rights reserved. */ Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Thu Sep 1 18:16:45 2016 (r305220) @@ -24,13 +24,12 @@ * Copyright (c) 2011, 2015 by Delphix. All rights reserved. * Copyright 2012 Milan Jurik. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. - * Copyright (c) 2011-2012 Pawel Jakub Dawidek . - * All rights reserved. + * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved. * Copyright (c) 2012 Martin Matuska . All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. - * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] * Copyright 2016 Igor Kozhukhov . + * Copyright 2016 Nexenta Systems, Inc. */ #include @@ -1511,7 +1510,7 @@ get_callback(zfs_handle_t *zhp, void *da char buf[ZFS_MAXPROPLEN]; char rbuf[ZFS_MAXPROPLEN]; zprop_source_t sourcetype; - char source[ZFS_MAXNAMELEN]; + char source[ZFS_MAX_DATASET_NAME_LEN]; zprop_get_cbdata_t *cbp = data; nvlist_t *user_props = zfs_get_user_props(zhp); zprop_list_t *pl = cbp->cb_proplist; @@ -1991,7 +1990,7 @@ typedef struct upgrade_cbdata { uint64_t cb_version; boolean_t cb_newer; boolean_t cb_foundone; - char cb_lastfs[ZFS_MAXNAMELEN]; + char cb_lastfs[ZFS_MAX_DATASET_NAME_LEN]; } upgrade_cbdata_t; static int @@ -2437,7 +2436,7 @@ userspace_cb(void *arg, const char *doma if (domain != NULL && domain[0] != '\0') { /* SMB */ - char sid[ZFS_MAXNAMELEN + 32]; + char sid[MAXNAMELEN + 32]; uid_t id; #ifdef illumos int err; @@ -2574,7 +2573,7 @@ print_us_node(boolean_t scripted, boolea size_t *width, us_node_t *node) { nvlist_t *nvl = node->usn_nvl; - char valstr[ZFS_MAXNAMELEN]; + char valstr[MAXNAMELEN]; boolean_t first = B_TRUE; int cfield = 0; int field; @@ -3009,7 +3008,7 @@ print_dataset(zfs_handle_t *zhp, list_cb if (pl->pl_prop == ZFS_PROP_NAME) { (void) strlcpy(property, zfs_get_name(zhp), - sizeof(property)); + sizeof (property)); propstr = property; right_justify = zfs_prop_align_right(pl->pl_prop); } else if (pl->pl_prop != ZPROP_INVAL) { @@ -3473,7 +3472,7 @@ zfs_do_rollback(int argc, char **argv) boolean_t force = B_FALSE; rollback_cbdata_t cb = { 0 }; zfs_handle_t *zhp, *snap; - char parentname[ZFS_MAXNAMELEN]; + char parentname[ZFS_MAX_DATASET_NAME_LEN]; char *delim; /* check options */ @@ -3873,7 +3872,7 @@ zfs_do_send(int argc, char **argv) */ if (strchr(argv[0], '@') == NULL || (fromname && strchr(fromname, '#') != NULL)) { - char frombuf[ZFS_MAXNAMELEN]; + char frombuf[ZFS_MAX_DATASET_NAME_LEN]; enum lzc_send_flags lzc_flags = 0; if (flags.replicate || flags.doall || flags.props || @@ -3925,7 +3924,7 @@ zfs_do_send(int argc, char **argv) * case if they specify the origin. */ if (fromname && (cp = strchr(fromname, '@')) != NULL) { - char origin[ZFS_MAXNAMELEN]; + char origin[ZFS_MAX_DATASET_NAME_LEN]; zprop_source_t src; (void) zfs_prop_get(zhp, ZFS_PROP_ORIGIN, @@ -4059,7 +4058,7 @@ zfs_do_receive(int argc, char **argv) usage(B_FALSE); } - char namebuf[ZFS_MAXNAMELEN]; + char namebuf[ZFS_MAX_DATASET_NAME_LEN]; (void) snprintf(namebuf, sizeof (namebuf), "%s/%%recv", argv[0]); @@ -4917,7 +4916,7 @@ store_allow_perm(zfs_deleg_who_type_t ty { int i; char ld[2] = { '\0', '\0' }; - char who_buf[ZFS_MAXNAMELEN+32]; + char who_buf[MAXNAMELEN + 32]; char base_type = '\0'; char set_type = '\0'; nvlist_t *base_nvl = NULL; @@ -5285,7 +5284,7 @@ static void print_fs_perms(fs_perm_set_t *fspset) { fs_perm_node_t *node = NULL; - char buf[ZFS_MAXNAMELEN+32]; + char buf[MAXNAMELEN + 32]; const char *dsname = buf; for (node = uu_list_first(fspset->fsps_list); node != NULL; @@ -5294,7 +5293,7 @@ print_fs_perms(fs_perm_set_t *fspset) uu_avl_t *uge_avl = node->fspn_fsperm.fsp_uge_avl; int left = 0; - (void) snprintf(buf, ZFS_MAXNAMELEN+32, + (void) snprintf(buf, sizeof (buf), gettext("---- Permissions on %s "), node->fspn_fsperm.fsp_name); (void) printf(dsname); @@ -5491,7 +5490,7 @@ zfs_do_hold_rele_impl(int argc, char **a for (i = 0; i < argc; ++i) { zfs_handle_t *zhp; - char parent[ZFS_MAXNAMELEN]; + char parent[ZFS_MAX_DATASET_NAME_LEN]; const char *delim; char *path = argv[i]; @@ -5624,7 +5623,7 @@ holds_callback(zfs_handle_t *zhp, void * nvlist_t *nvl = NULL; nvpair_t *nvp = NULL; const char *zname = zfs_get_name(zhp); - size_t znamelen = strnlen(zname, ZFS_MAXNAMELEN); + size_t znamelen = strlen(zname); if (cbp->cb_recursive && cbp->cb_snapname != NULL) { const char *snapname; @@ -5645,7 +5644,7 @@ holds_callback(zfs_handle_t *zhp, void * while ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL) { const char *tag = nvpair_name(nvp); - size_t taglen = strnlen(tag, MAXNAMELEN); + size_t taglen = strlen(tag); if (taglen > cbp->cb_max_taglen) cbp->cb_max_taglen = taglen; } @@ -6484,6 +6483,15 @@ unshare_unmount(int op, int argc, char * continue; } + /* + * Ignore datasets that are excluded/restricted by + * parent pool name. + */ + if (zpool_skip_pool(zfs_get_pool_name(zhp))) { + zfs_close(zhp); + continue; + } + switch (op) { case OP_SHARE: verify(zfs_prop_get(zhp, ZFS_PROP_SHARENFS, @@ -6973,7 +6981,7 @@ zfs_do_diff(int argc, char **argv) static int zfs_do_bookmark(int argc, char **argv) { - char snapname[ZFS_MAXNAMELEN]; + char snapname[ZFS_MAX_DATASET_NAME_LEN]; zfs_handle_t *zhp; nvlist_t *nvl; int ret = 0; Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zhack/zhack.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/zhack/zhack.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zhack/zhack.c Thu Sep 1 18:16:45 2016 (r305220) @@ -48,7 +48,6 @@ #include #include #include -#undef ZFS_MAXNAMELEN #undef verify #include Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Sep 1 18:16:45 2016 (r305220) @@ -4540,7 +4540,7 @@ zpool_do_status(int argc, char **argv) typedef struct upgrade_cbdata { boolean_t cb_first; boolean_t cb_unavail; - char cb_poolname[ZPOOL_MAXNAMELEN]; + char cb_poolname[ZFS_MAX_DATASET_NAME_LEN]; int cb_argc; uint64_t cb_version; char **cb_argv; Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c Thu Sep 1 18:16:45 2016 (r305220) @@ -21,7 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright (c) 2013, 2015 by Delphix. All rights reserved. * Copyright 2016 Igor Kozhukhov . */ @@ -597,7 +597,6 @@ get_replication(nvlist_t *nvroot, boolea verify(nvlist_lookup_nvlist_array(nvroot, ZPOOL_CONFIG_CHILDREN, &top, &toplevels) == 0); - lastrep.zprl_type = NULL; for (t = 0; t < toplevels; t++) { uint64_t is_log = B_FALSE; Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c Thu Sep 1 18:16:45 2016 (r305220) @@ -141,8 +141,8 @@ typedef struct ztest_shared_hdr { static ztest_shared_hdr_t *ztest_shared_hdr; typedef struct ztest_shared_opts { - char zo_pool[MAXNAMELEN]; - char zo_dir[MAXNAMELEN]; + char zo_pool[ZFS_MAX_DATASET_NAME_LEN]; + char zo_dir[ZFS_MAX_DATASET_NAME_LEN]; char zo_alt_ztest[MAXNAMELEN]; char zo_alt_libpath[MAXNAMELEN]; uint64_t zo_vdevs; @@ -268,7 +268,7 @@ typedef struct ztest_od { uint64_t od_crblocksize; uint64_t od_gen; uint64_t od_crgen; - char od_name[MAXNAMELEN]; + char od_name[ZFS_MAX_DATASET_NAME_LEN]; } ztest_od_t; /* @@ -280,7 +280,7 @@ typedef struct ztest_ds { rwlock_t zd_zilog_lock; zilog_t *zd_zilog; ztest_od_t *zd_od; /* debugging aid */ - char zd_name[MAXNAMELEN]; + char zd_name[ZFS_MAX_DATASET_NAME_LEN]; mutex_t zd_dirobj_lock; rll_t zd_object_lock[ZTEST_OBJECT_LOCKS]; rll_t zd_range_lock[ZTEST_RANGE_LOCKS]; @@ -3227,7 +3227,7 @@ ztest_objset_destroy_cb(const char *name static boolean_t ztest_snapshot_create(char *osname, uint64_t id) { - char snapname[MAXNAMELEN]; + char snapname[ZFS_MAX_DATASET_NAME_LEN]; int error; (void) snprintf(snapname, sizeof (snapname), "%llu", (u_longlong_t)id); @@ -3247,10 +3247,10 @@ ztest_snapshot_create(char *osname, uint static boolean_t ztest_snapshot_destroy(char *osname, uint64_t id) { - char snapname[MAXNAMELEN]; + char snapname[ZFS_MAX_DATASET_NAME_LEN]; int error; - (void) snprintf(snapname, MAXNAMELEN, "%s@%llu", osname, + (void) snprintf(snapname, sizeof (snapname), "%s@%llu", osname, (u_longlong_t)id); error = dsl_destroy_snapshot(snapname, B_FALSE); @@ -3267,12 +3267,12 @@ ztest_dmu_objset_create_destroy(ztest_ds int iters; int error; objset_t *os, *os2; - char name[MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; zilog_t *zilog; (void) rw_rdlock(&ztest_name_lock); - (void) snprintf(name, MAXNAMELEN, "%s/temp_%llu", + (void) snprintf(name, sizeof (name), "%s/temp_%llu", ztest_opts.zo_pool, (u_longlong_t)id); /* @@ -3378,18 +3378,23 @@ ztest_dmu_snapshot_create_destroy(ztest_ void ztest_dsl_dataset_cleanup(char *osname, uint64_t id) { - char snap1name[MAXNAMELEN]; - char clone1name[MAXNAMELEN]; - char snap2name[MAXNAMELEN]; - char clone2name[MAXNAMELEN]; - char snap3name[MAXNAMELEN]; + char snap1name[ZFS_MAX_DATASET_NAME_LEN]; + char clone1name[ZFS_MAX_DATASET_NAME_LEN]; + char snap2name[ZFS_MAX_DATASET_NAME_LEN]; + char clone2name[ZFS_MAX_DATASET_NAME_LEN]; + char snap3name[ZFS_MAX_DATASET_NAME_LEN]; int error; - (void) snprintf(snap1name, MAXNAMELEN, "%s@s1_%llu", osname, id); - (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id); - (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu", clone1name, id); - (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id); - (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu", clone1name, id); + (void) snprintf(snap1name, sizeof (snap1name), + "%s@s1_%llu", osname, id); + (void) snprintf(clone1name, sizeof (clone1name), + "%s/c1_%llu", osname, id); + (void) snprintf(snap2name, sizeof (snap2name), + "%s@s2_%llu", clone1name, id); + (void) snprintf(clone2name, sizeof (clone2name), + "%s/c2_%llu", osname, id); + (void) snprintf(snap3name, sizeof (snap3name), + "%s@s3_%llu", clone1name, id); error = dsl_destroy_head(clone2name); if (error && error != ENOENT) @@ -3415,11 +3420,11 @@ void ztest_dsl_dataset_promote_busy(ztest_ds_t *zd, uint64_t id) { objset_t *os; - char snap1name[MAXNAMELEN]; - char clone1name[MAXNAMELEN]; - char snap2name[MAXNAMELEN]; - char clone2name[MAXNAMELEN]; - char snap3name[MAXNAMELEN]; + char snap1name[ZFS_MAX_DATASET_NAME_LEN]; + char clone1name[ZFS_MAX_DATASET_NAME_LEN]; + char snap2name[ZFS_MAX_DATASET_NAME_LEN]; + char clone2name[ZFS_MAX_DATASET_NAME_LEN]; + char snap3name[ZFS_MAX_DATASET_NAME_LEN]; char *osname = zd->zd_name; int error; @@ -3427,11 +3432,16 @@ ztest_dsl_dataset_promote_busy(ztest_ds_ ztest_dsl_dataset_cleanup(osname, id); - (void) snprintf(snap1name, MAXNAMELEN, "%s@s1_%llu", osname, id); - (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id); - (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu", clone1name, id); - (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id); - (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu", clone1name, id); + (void) snprintf(snap1name, sizeof (snap1name), + "%s@s1_%llu", osname, id); + (void) snprintf(clone1name, sizeof (clone1name), + "%s/c1_%llu", osname, id); + (void) snprintf(snap2name, sizeof (snap2name), + "%s@s2_%llu", clone1name, id); + (void) snprintf(clone2name, sizeof (clone2name), + "%s/c2_%llu", osname, id); + (void) snprintf(snap3name, sizeof (snap3name), + "%s@s3_%llu", clone1name, id); error = dmu_objset_snapshot_one(osname, strchr(snap1name, '@') + 1); if (error && error != EEXIST) { @@ -4249,7 +4259,7 @@ ztest_fzap(ztest_ds_t *zd, uint64_t id) * 2050 entries we should see ptrtbl growth and leaf-block split. */ for (int i = 0; i < 2050; i++) { - char name[MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; uint64_t value = i; dmu_tx_t *tx; int error; @@ -4654,7 +4664,7 @@ ztest_dmu_snapshot_hold(ztest_ds_t *zd, char fullname[100]; char clonename[100]; char tag[100]; - char osname[MAXNAMELEN]; + char osname[ZFS_MAX_DATASET_NAME_LEN]; nvlist_t *holds; (void) rw_rdlock(&ztest_name_lock); @@ -5450,13 +5460,13 @@ ztest_thread(void *arg) static void ztest_dataset_name(char *dsname, char *pool, int d) { - (void) snprintf(dsname, MAXNAMELEN, "%s/ds_%d", pool, d); + (void) snprintf(dsname, ZFS_MAX_DATASET_NAME_LEN, "%s/ds_%d", pool, d); } static void ztest_dataset_destroy(int d) { - char name[MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; ztest_dataset_name(name, ztest_opts.zo_pool, d); @@ -5505,7 +5515,7 @@ ztest_dataset_open(int d) uint64_t committed_seq = ZTEST_GET_SHARED_DS(d)->zd_seq; objset_t *os; zilog_t *zilog; - char name[MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; int error; ztest_dataset_name(name, ztest_opts.zo_pool, d); @@ -5728,8 +5738,8 @@ ztest_run(ztest_shared_t *zs) * different name. */ if (ztest_random(2) == 0) { - char name[MAXNAMELEN]; - (void) snprintf(name, MAXNAMELEN, "%s_import", + char name[ZFS_MAX_DATASET_NAME_LEN]; + (void) snprintf(name, sizeof (name), "%s_import", ztest_opts.zo_pool); ztest_spa_import_export(ztest_opts.zo_pool, name); ztest_spa_import_export(name, ztest_opts.zo_pool); @@ -6297,7 +6307,7 @@ main(int argc, char **argv) if (spa_open(ztest_opts.zo_pool, &spa, FTAG) == 0) { spa_close(spa, FTAG); } else { - char tmpname[MAXNAMELEN]; + char tmpname[ZFS_MAX_DATASET_NAME_LEN]; kernel_fini(); kernel_init(FREAD | FWRITE); (void) snprintf(tmpname, sizeof (tmpname), "%s_tmp", Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c Thu Sep 1 18:16:45 2016 (r305220) @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include "libnvpair.h" @@ -1228,7 +1228,8 @@ nvpair_value_match_regex(nvpair_t *nvp, break; } case DATA_TYPE_BOOLEAN_VALUE: { - boolean_t val, val_arg; + int32_t val_arg; + boolean_t val; /* scanf boolean_t from value and check for match */ sr = sscanf(value, "%"SCNi32, &val_arg); @@ -1239,7 +1240,8 @@ nvpair_value_match_regex(nvpair_t *nvp, break; } case DATA_TYPE_BOOLEAN_ARRAY: { - boolean_t *val_array, val_arg; + boolean_t *val_array; + int32_t val_arg; /* check indexed value of array for match */ sr = sscanf(value, "%"SCNi32, &val_arg); Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Thu Sep 1 18:16:45 2016 (r305220) @@ -21,14 +21,13 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 Pawel Jakub Dawidek . - * All rights reserved. + * Copyright (c) 2011 Pawel Jakub Dawidek. All rights reserved. * Copyright (c) 2011, 2015 by Delphix. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. * Copyright (c) 2012 Martin Matuska . All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. - * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] + * Copyright 2016 Nexenta Systems, Inc. */ #ifndef _LIBZFS_H @@ -52,8 +51,6 @@ extern "C" { /* * Miscellaneous ZFS constants */ -#define ZFS_MAXNAMELEN MAXNAMELEN -#define ZPOOL_MAXNAMELEN MAXNAMELEN #define ZFS_MAXPROPLEN MAXPATHLEN #define ZPOOL_MAXPROPLEN MAXPATHLEN @@ -222,6 +219,7 @@ extern void zpool_free_handles(libzfs_ha */ typedef int (*zpool_iter_f)(zpool_handle_t *, void *); extern int zpool_iter(libzfs_handle_t *, zpool_iter_f, void *); +extern boolean_t zpool_skip_pool(const char *); /* * Functions to create and destroy pools @@ -412,6 +410,7 @@ extern void zfs_close(zfs_handle_t *); extern zfs_type_t zfs_get_type(const zfs_handle_t *); extern const char *zfs_get_name(const zfs_handle_t *); extern zpool_handle_t *zfs_get_pool_handle(const zfs_handle_t *); +extern const char *zfs_get_pool_name(const zfs_handle_t *); /* * Property management functions. Some functions are shared with the kernel, Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c Thu Sep 1 18:16:45 2016 (r305220) @@ -24,9 +24,10 @@ * Use is subject to license terms. * * Portions Copyright 2007 Ramprakash Jelari - * * Copyright (c) 2011 Pawel Jakub Dawidek . * All rights reserved. + * Copyright (c) 2014, 2015 by Delphix. All rights reserved. + * Copyright 2016 Igor Kozhukhov */ #include @@ -136,6 +137,9 @@ changelist_prefix(prop_changelist_t *clp case ZFS_PROP_SHARESMB: (void) zfs_unshare_smb(cn->cn_handle, NULL); break; + + default: + break; } } } @@ -293,7 +297,7 @@ void changelist_rename(prop_changelist_t *clp, const char *src, const char *dst) { prop_changenode_t *cn; - char newname[ZFS_MAXNAMELEN]; + char newname[ZFS_MAX_DATASET_NAME_LEN]; for (cn = uu_list_first(clp->cl_list); cn != NULL; cn = uu_list_next(clp->cl_list, cn)) { Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c Thu Sep 1 18:16:45 2016 (r305220) @@ -27,6 +27,7 @@ /* * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright (c) 2015 by Syneto S.R.L. All rights reserved. + * Copyright 2016 Nexenta Systems, Inc. */ /* @@ -338,33 +339,47 @@ zpool_refresh_stats(zpool_handle_t *zhp, } /* - * If the __ZFS_POOL_RESTRICT environment variable is set we only iterate over - * pools it lists. + * The following environment variables are undocumented + * and should be used for testing purposes only: * - * This is an undocumented feature for use during testing only. + * __ZFS_POOL_EXCLUDE - don't iterate over the pools it lists + * __ZFS_POOL_RESTRICT - iterate only over the pools it lists * * This function returns B_TRUE if the pool should be skipped * during iteration. */ -static boolean_t -check_restricted(const char *poolname) +boolean_t +zpool_skip_pool(const char *poolname) { static boolean_t initialized = B_FALSE; - static char *restricted = NULL; + static const char *exclude = NULL; + static const char *restricted = NULL; const char *cur, *end; - int len, namelen; + int len; + int namelen = strlen(poolname); if (!initialized) { initialized = B_TRUE; + exclude = getenv("__ZFS_POOL_EXCLUDE"); restricted = getenv("__ZFS_POOL_RESTRICT"); } + if (exclude != NULL) { + cur = exclude; + do { + end = strchr(cur, ' '); + len = (NULL == end) ? strlen(cur) : (end - cur); + if (len == namelen && 0 == strncmp(cur, poolname, len)) + return (B_TRUE); + cur += (len + 1); + } while (NULL != end); + } + if (NULL == restricted) return (B_FALSE); cur = restricted; - namelen = strlen(poolname); do { end = strchr(cur, ' '); len = (NULL == end) ? strlen(cur) : (end - cur); @@ -402,7 +417,7 @@ zpool_iter(libzfs_handle_t *hdl, zpool_i for (cn = uu_avl_first(hdl->libzfs_ns_avl); cn != NULL; cn = uu_avl_next(hdl->libzfs_ns_avl, cn)) { - if (check_restricted(cn->cn_name)) + if (zpool_skip_pool(cn->cn_name)) continue; if (zpool_open_silent(hdl, cn->cn_name, &zhp) != 0) { @@ -440,7 +455,7 @@ zfs_iter_root(libzfs_handle_t *hdl, zfs_ for (cn = uu_avl_first(hdl->libzfs_ns_avl); cn != NULL; cn = uu_avl_next(hdl->libzfs_ns_avl, cn)) { - if (check_restricted(cn->cn_name)) + if (zpool_skip_pool(cn->cn_name)) continue; if ((zhp = make_dataset_handle(hdl, cn->cn_name)) == NULL) Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Thu Sep 1 18:12:53 2016 (r305219) +++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Thu Sep 1 18:16:45 2016 (r305220) @@ -24,12 +24,12 @@ * Copyright (c) 2013, Joyent, Inc. All rights reserved. * Copyright (c) 2011, 2015 by Delphix. All rights reserved. * Copyright (c) 2012 DEY Storage Systems, Inc. All rights reserved. - * Copyright (c) 2011-2012 Pawel Jakub Dawidek . - * All rights reserved. - * Copyright (c) 2012 Martin Matuska . All rights reserved. + * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved. + * Copyright (c) 2013 Martin Matuska. All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. - * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] + * Copyright 2016 Nexenta Systems, Inc. + * Copyright 2016 Igor Kozhukhov */ #include @@ -79,55 +79,18 @@ zfs_type_to_name(zfs_type_t type) return (dgettext(TEXT_DOMAIN, "snapshot")); case ZFS_TYPE_VOLUME: return (dgettext(TEXT_DOMAIN, "volume")); + case ZFS_TYPE_POOL: + return (dgettext(TEXT_DOMAIN, "pool")); + case ZFS_TYPE_BOOKMARK: + return (dgettext(TEXT_DOMAIN, "bookmark")); + default: + assert(!"unhandled zfs_type_t"); } return (NULL); } /* - * Given a path and mask of ZFS types, return a string describing this dataset. - * This is used when we fail to open a dataset and we cannot get an exact type. - * We guess what the type would have been based on the path and the mask of - * acceptable types. - */ -static const char * -path_to_str(const char *path, int types) -{ - /* - * When given a single type, always report the exact type. - */ - if (types == ZFS_TYPE_SNAPSHOT) - return (dgettext(TEXT_DOMAIN, "snapshot")); - if (types == ZFS_TYPE_FILESYSTEM) - return (dgettext(TEXT_DOMAIN, "filesystem")); - if (types == ZFS_TYPE_VOLUME) - return (dgettext(TEXT_DOMAIN, "volume")); - - /* - * The user is requesting more than one type of dataset. If this is the - * case, consult the path itself. If we're looking for a snapshot, and - * a '@' is found, then report it as "snapshot". Otherwise, remove the - * snapshot attribute and try again. - */ - if (types & ZFS_TYPE_SNAPSHOT) { - if (strchr(path, '@') != NULL) - return (dgettext(TEXT_DOMAIN, "snapshot")); - return (path_to_str(path, types & ~ZFS_TYPE_SNAPSHOT)); - } - - /* - * The user has requested either filesystems or volumes. - * We have no way of knowing a priori what type this would be, so always - * report it as "filesystem" or "volume", our two primitive types. - */ - if (types & ZFS_TYPE_FILESYSTEM) - return (dgettext(TEXT_DOMAIN, "filesystem")); - - assert(types & ZFS_TYPE_VOLUME); - return (dgettext(TEXT_DOMAIN, "volume")); -} - -/* * Validate a ZFS path. This is used even before trying to open the dataset, to * provide a more meaningful error message. We call zfs_error_aux() to * explain exactly why the name was not valid. @@ -188,6 +151,11 @@ zfs_validate_name(libzfs_handle_t *hdl, zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "reserved disk name")); break; + + default: + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "(%d) not defined"), why); + break; } } @@ -586,7 +554,7 @@ zfs_bookmark_exists(const char *path) { nvlist_t *bmarks; nvlist_t *props; - char fsname[ZFS_MAXNAMELEN]; + char fsname[ZFS_MAX_DATASET_NAME_LEN]; char *bmark_name; char *pound; int err; @@ -770,7 +738,8 @@ libzfs_mnttab_fini(libzfs_handle_t *hdl) void *cookie = NULL; mnttab_node_t *mtn; - while (mtn = avl_destroy_nodes(&hdl->libzfs_mnttab_cache, &cookie)) { + while ((mtn = avl_destroy_nodes(&hdl->libzfs_mnttab_cache, &cookie)) + != NULL) { free(mtn->mtn_mt.mnt_special); free(mtn->mtn_mt.mnt_mountp); free(mtn->mtn_mt.mnt_fstype); @@ -842,7 +811,8 @@ libzfs_mnttab_remove(libzfs_handle_t *hd mnttab_node_t *ret; find.mtn_mt.mnt_special = (char *)fsname; - if (ret = avl_find(&hdl->libzfs_mnttab_cache, (void *)&find, NULL)) { + if ((ret = avl_find(&hdl->libzfs_mnttab_cache, (void *)&find, NULL)) + != NULL) { avl_remove(&hdl->libzfs_mnttab_cache, ret); free(ret->mtn_mt.mnt_special); free(ret->mtn_mt.mnt_mountp); @@ -1194,6 +1164,13 @@ badlabel: "component of '%s' is too long"), propname); break; + + default: + zfs_error_aux(hdl, + dgettext(TEXT_DOMAIN, + "(%d) not defined"), + why); + break; } (void) zfs_error(hdl, EZFS_BADPROP, errbuf); goto error; @@ -1312,12 +1289,17 @@ badlabel: } break; + case ZFS_PROP_UTF8ONLY: chosen_utf = (int)intval; break; + case ZFS_PROP_NORMALIZE: chosen_normal = (int)intval; break; + + default: + break; } /* @@ -1366,6 +1348,9 @@ badlabel: goto error; } break; + + default: + break; } } } @@ -1585,7 +1570,7 @@ zfs_prop_set_list(zfs_handle_t *zhp, nvl libzfs_handle_t *hdl = zhp->zfs_hdl; nvlist_t *nvl; int nvl_len; - int added_resv; + int added_resv = 0; (void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN, "cannot set property for '%s'"), @@ -1975,6 +1960,9 @@ get_numeric_property(zfs_handle_t *zhp, mntopt_on = MNTOPT_NBMAND; mntopt_off = MNTOPT_NONBMAND; break; + + default: + break; } /* @@ -2193,7 +2181,7 @@ struct get_clones_arg { uint64_t numclones; nvlist_t *value; const char *origin; - char buf[ZFS_MAXNAMELEN]; + char buf[ZFS_MAX_DATASET_NAME_LEN]; }; int @@ -2248,7 +2236,7 @@ zfs_get_clones_nvl(zfs_handle_t *zhp) if (gca.numclones != 0) { zfs_handle_t *root; - char pool[ZFS_MAXNAMELEN]; + char pool[ZFS_MAX_DATASET_NAME_LEN]; char *cp = pool; /* get the pool name */ @@ -2963,6 +2951,15 @@ zfs_get_name(const zfs_handle_t *zhp) } /* + * Returns the name of the parent pool for the given zfs handle. + */ +const char * +zfs_get_pool_name(const zfs_handle_t *zhp) +{ + return (zhp->zpool_hdl->zpool_name); +} + +/* * Returns the type of the given zfs handle. */ zfs_type_t @@ -3024,7 +3021,7 @@ check_parents(libzfs_handle_t *hdl, cons boolean_t accept_ancestor, int *prefixlen) { zfs_cmd_t zc = { 0 }; - char parent[ZFS_MAXNAMELEN]; + char parent[ZFS_MAX_DATASET_NAME_LEN]; char *slash; zfs_handle_t *zhp; char errbuf[1024]; @@ -3152,7 +3149,7 @@ create_parents(libzfs_handle_t *hdl, cha * up to the prefixlen-long one. */ for (cp = target + prefixlen + 1; - cp = strchr(cp, '/'); *cp = '/', cp++) { + (cp = strchr(cp, '/')) != NULL; *cp = '/', cp++) { *cp = '\0'; @@ -3204,7 +3201,7 @@ zfs_create_ancestors(libzfs_handle_t *hd { int prefix; char *path_copy; - int rc; + int rc = 0; if (check_parents(hdl, path, NULL, B_TRUE, &prefix) != 0) return (-1); @@ -3263,7 +3260,7 @@ zfs_create(libzfs_handle_t *hdl, const c ost = LZC_DATSET_TYPE_ZFS; /* open zpool handle for prop validation */ - char pool_path[MAXNAMELEN]; + char pool_path[ZFS_MAX_DATASET_NAME_LEN]; (void) strlcpy(pool_path, path, sizeof (pool_path)); /* truncate pool_path at first slash */ @@ -3332,7 +3329,7 @@ zfs_create(libzfs_handle_t *hdl, const c /* check for failure */ if (ret != 0) { - char parent[ZFS_MAXNAMELEN]; + char parent[ZFS_MAX_DATASET_NAME_LEN]; (void) parent_name(path, parent, sizeof (parent)); switch (errno) { @@ -3422,7 +3419,7 @@ static int zfs_check_snap_cb(zfs_handle_t *zhp, void *arg) { struct destroydata *dd = arg; - char name[ZFS_MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; int rv = 0; (void) snprintf(name, sizeof (name), @@ -3467,12 +3464,14 @@ int zfs_destroy_snaps_nvl(libzfs_handle_t *hdl, nvlist_t *snaps, boolean_t defer) { int ret; - nvlist_t *errlist; + nvlist_t *errlist = NULL; ret = lzc_destroy_snaps(snaps, defer, &errlist); - if (ret == 0) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Thu Sep 1 18:35:38 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75F3CBCBC16 for ; Thu, 1 Sep 2016 18:35:38 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48D62104; Thu, 1 Sep 2016 18:35:38 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81IZbc7001772; Thu, 1 Sep 2016 18:35:37 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81IZbrj001771; Thu, 1 Sep 2016 18:35:37 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201609011835.u81IZbrj001771@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 1 Sep 2016 18:35:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305223 - projects/clang390-import/usr.bin/clang X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 18:35:38 -0000 Author: bdrewery Date: Thu Sep 1 18:35:37 2016 New Revision: 305223 URL: https://svnweb.freebsd.org/changeset/base/305223 Log: DIRDEPS_BUILD: Use libllvmminimal for tblgen for the host build. The host tools are only ever built for the same reason as TOOLS_PREFIX, for running during the build. Sponsored by: EMC / Isilon Storage Division Modified: projects/clang390-import/usr.bin/clang/llvm.prog.mk Modified: projects/clang390-import/usr.bin/clang/llvm.prog.mk ============================================================================== --- projects/clang390-import/usr.bin/clang/llvm.prog.mk Thu Sep 1 18:33:39 2016 (r305222) +++ projects/clang390-import/usr.bin/clang/llvm.prog.mk Thu Sep 1 18:35:37 2016 (r305223) @@ -7,7 +7,7 @@ CFLAGS+= -I${OBJTOP}/lib/clang/libllvm .include "${SRCTOP}/lib/clang/llvm.build.mk" # Special case for the bootstrap-tools phase. -.if defined(TOOLS_PREFIX) && \ +.if (defined(TOOLS_PREFIX) || ${MACHINE} == "host") && \ (${PROG_CXX} == "clang-tblgen" || ${PROG_CXX} == "llvm-tblgen") LIBDEPS+= llvmminimal .else From owner-svn-src-projects@freebsd.org Thu Sep 1 20:23:50 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E3E6EBCC1E8 for ; Thu, 1 Sep 2016 20:23:50 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B4183BEC; Thu, 1 Sep 2016 20:23:50 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81KNnmv044117; Thu, 1 Sep 2016 20:23:49 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81KNnXH044116; Thu, 1 Sep 2016 20:23:49 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201609012023.u81KNnXH044116@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 1 Sep 2016 20:23:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305237 - projects/clang390-import/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 20:23:51 -0000 Author: bdrewery Date: Thu Sep 1 20:23:49 2016 New Revision: 305237 URL: https://svnweb.freebsd.org/changeset/base/305237 Log: DIRDEPS_BUILD: Clang libraries now have nested directories/objects in OBJDIR. These nested directories are not build targets. They just map back to lib/clang/lib{clang,llvm,llvmminimal,lldb}. Avoid adding these nested directories into Makefile.depend. Sponsored by: EMC / Isilon Storage Division Modified: projects/clang390-import/share/mk/local.gendirdeps.mk Modified: projects/clang390-import/share/mk/local.gendirdeps.mk ============================================================================== --- projects/clang390-import/share/mk/local.gendirdeps.mk Thu Sep 1 20:01:38 2016 (r305236) +++ projects/clang390-import/share/mk/local.gendirdeps.mk Thu Sep 1 20:23:49 2016 (r305237) @@ -13,6 +13,9 @@ GENDIRDEPS_FILTER+= \ Ntargets/pseudo/stage* \ Ntools/* +# Clang has nested directories in its OBJDIR. +GENDIRDEPS_FILTER+= C,(lib/clang/lib[^/]*)/.*,\1, + # Exclude toolchain which is handled special. .if ${RELDIR:Mtargets*} == "" .if ${RELDIR:Nusr.bin/clang/*:Ngnu/usr.bin/cc/*:Nlib/clang*} != "" From owner-svn-src-projects@freebsd.org Thu Sep 1 20:36:11 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8E732BCC595 for ; Thu, 1 Sep 2016 20:36:11 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5F146235; Thu, 1 Sep 2016 20:36:11 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81KaAJ5047962; Thu, 1 Sep 2016 20:36:10 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81KaAGT047961; Thu, 1 Sep 2016 20:36:10 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201609012036.u81KaAGT047961@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 1 Sep 2016 20:36:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305238 - projects/clang390-import/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 20:36:11 -0000 Author: emaste Date: Thu Sep 1 20:36:10 2016 New Revision: 305238 URL: https://svnweb.freebsd.org/changeset/base/305238 Log: Build lld by default on amd64 and arm64 Modified: projects/clang390-import/share/mk/src.opts.mk Modified: projects/clang390-import/share/mk/src.opts.mk ============================================================================== --- projects/clang390-import/share/mk/src.opts.mk Thu Sep 1 20:23:49 2016 (r305237) +++ projects/clang390-import/share/mk/src.opts.mk Thu Sep 1 20:36:10 2016 (r305238) @@ -184,7 +184,6 @@ __DEFAULT_NO_OPTIONS = \ EISA \ HESIOD \ LIBSOFT \ - LLD \ NAND \ OFED \ OPENLDAP \ @@ -249,9 +248,9 @@ __DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND .endif .if ${__T} == "aarch64" || ${__T} == "amd64" -__DEFAULT_YES_OPTIONS+=LLDB +__DEFAULT_YES_OPTIONS+=LLD LLDB .else -__DEFAULT_NO_OPTIONS+=LLDB +__DEFAULT_NO_OPTIONS+=LLD LLDB .endif # LLVM lacks support for FreeBSD 64-bit atomic operations for ARMv4/ARMv5 .if ${__T} == "arm" || ${__T} == "armeb" From owner-svn-src-projects@freebsd.org Thu Sep 1 20:39:04 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8F9CCBCC602 for ; Thu, 1 Sep 2016 20:39:04 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3F7183B1; Thu, 1 Sep 2016 20:39:04 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81Kd36K048121; Thu, 1 Sep 2016 20:39:03 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81Kd0g8048083; Thu, 1 Sep 2016 20:39:00 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201609012039.u81Kd0g8048083@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 1 Sep 2016 20:39:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305239 - in projects/clang390-import: lib/clang/headers lib/clang/libclang lib/clang/liblldb lib/clang/libllvm lib/clang/libllvmminimal usr.bin/clang/bugpoint usr.bin/clang/clang usr.b... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 20:39:04 -0000 Author: bdrewery Date: Thu Sep 1 20:38:59 2016 New Revision: 305239 URL: https://svnweb.freebsd.org/changeset/base/305239 Log: DIRDEPS_BUILD: Connect the new clang build. Sponsored by: EMC / Isilon Storage Division Added: projects/clang390-import/lib/clang/headers/Makefile.depend (contents, props changed) projects/clang390-import/lib/clang/libclang/Makefile.depend (contents, props changed) projects/clang390-import/lib/clang/liblldb/Makefile.depend (contents, props changed) projects/clang390-import/lib/clang/libllvm/Makefile.depend (contents, props changed) projects/clang390-import/lib/clang/libllvmminimal/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/bugpoint/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/clang-format/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/clang-tblgen/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/clang-tblgen/Makefile.depend.host (contents, props changed) projects/clang390-import/usr.bin/clang/clang/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llc/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/lldb/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/lli/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-ar/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-as/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-bcanalyzer/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-cov/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-cxxdump/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-diff/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-dis/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-dwarfdump/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-extract/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-link/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-lto/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-mc/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-nm/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-objdump/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-pdbdump/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-profdata/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-rtdyld/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-symbolizer/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-tblgen/Makefile.depend (contents, props changed) projects/clang390-import/usr.bin/clang/llvm-tblgen/Makefile.depend.host (contents, props changed) projects/clang390-import/usr.bin/clang/opt/Makefile.depend (contents, props changed) Added: projects/clang390-import/lib/clang/headers/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/lib/clang/headers/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,12 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + usr.bin/clang/clang-tblgen.host \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/lib/clang/libclang/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/lib/clang/libclang/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,18 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + include \ + include/xlocale \ + lib/clang/libllvm \ + lib/libc++ \ + lib/msun \ + usr.bin/clang/clang-tblgen.host \ + usr.bin/clang/llvm-tblgen.host \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/lib/clang/liblldb/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/lib/clang/liblldb/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,22 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + include \ + include/arpa \ + include/xlocale \ + lib/clang/libclang \ + lib/clang/libllvm \ + lib/libc++ \ + lib/libedit \ + lib/libexecinfo \ + lib/msun \ + lib/ncurses/ncursesw \ + lib/ncurses/panelw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/lib/clang/libllvm/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/lib/clang/libllvm/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,19 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + include \ + include/xlocale \ + lib/libc++ \ + lib/libedit \ + lib/libexecinfo \ + lib/libz \ + lib/msun \ + usr.bin/clang/llvm-tblgen.host \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/lib/clang/libllvmminimal/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/lib/clang/libllvmminimal/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,16 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + include \ + include/xlocale \ + lib/libc++ \ + lib/libexecinfo \ + lib/msun \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/bugpoint/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/bugpoint/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/clang-format/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/clang-format/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libclang \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/clang-tblgen/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/clang-tblgen/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,24 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/clang-tblgen/Makefile.depend.host ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/clang-tblgen/Makefile.depend.host Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,12 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + lib/clang/libllvmminimal \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/clang/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/clang/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libclang \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llc/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llc/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/lldb/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/lldb/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,30 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libclang \ + lib/clang/liblldb \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libedit \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncurses \ + lib/ncurses/ncursesw \ + lib/ncurses/panel \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/lli/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/lli/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-ar/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-ar/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-as/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-as/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-bcanalyzer/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-bcanalyzer/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-cov/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-cov/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-cxxdump/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-cxxdump/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-diff/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-diff/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-dis/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-dis/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,24 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-dwarfdump/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-dwarfdump/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-extract/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-extract/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-link/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-link/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-lto/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-lto/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-mc/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-mc/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-nm/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-nm/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-objdump/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-objdump/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-pdbdump/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-pdbdump/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,24 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-profdata/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-profdata/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-rtdyld/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-rtdyld/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-symbolizer/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-symbolizer/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-tblgen/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-tblgen/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,24 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/llvm-tblgen/Makefile.depend.host ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/llvm-tblgen/Makefile.depend.host Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,12 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + lib/clang/libllvmminimal \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: projects/clang390-import/usr.bin/clang/opt/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/opt/Makefile.depend Thu Sep 1 20:38:59 2016 (r305239) @@ -0,0 +1,25 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif From owner-svn-src-projects@freebsd.org Thu Sep 1 21:02:03 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B129BCCC94 for ; Thu, 1 Sep 2016 21:02:03 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 35000816; Thu, 1 Sep 2016 21:02:03 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81L22jC058532; Thu, 1 Sep 2016 21:02:02 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81L22mG058531; Thu, 1 Sep 2016 21:02:02 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201609012102.u81L22mG058531@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 1 Sep 2016 21:02:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305242 - projects/clang390-import/lib/clang/include/lld/Config X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 21:02:03 -0000 Author: bdrewery Date: Thu Sep 1 21:02:02 2016 New Revision: 305242 URL: https://svnweb.freebsd.org/changeset/base/305242 Log: Use a proper comment. Submitted by: emaste Modified: projects/clang390-import/lib/clang/include/lld/Config/Version.inc Modified: projects/clang390-import/lib/clang/include/lld/Config/Version.inc ============================================================================== --- projects/clang390-import/lib/clang/include/lld/Config/Version.inc Thu Sep 1 20:45:04 2016 (r305241) +++ projects/clang390-import/lib/clang/include/lld/Config/Version.inc Thu Sep 1 21:02:02 2016 (r305242) @@ -1,4 +1,4 @@ -# $FreeBSD$ +// $FreeBSD$ #define LLD_VERSION 3.9 #define LLD_VERSION_MAJOR 3 From owner-svn-src-projects@freebsd.org Thu Sep 1 21:03:29 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2011EBCCCB0 for ; Thu, 1 Sep 2016 21:03:29 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E4281A3E; Thu, 1 Sep 2016 21:03:28 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81L3SZl059284; Thu, 1 Sep 2016 21:03:28 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81L3SRR059282; Thu, 1 Sep 2016 21:03:28 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201609012103.u81L3SRR059282@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 1 Sep 2016 21:03:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305243 - in projects/clang390-import: targets/pseudo/clang usr.bin/clang/lld X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 21:03:29 -0000 Author: bdrewery Date: Thu Sep 1 21:03:27 2016 New Revision: 305243 URL: https://svnweb.freebsd.org/changeset/base/305243 Log: DIRDEPS_BUILD: Connect lld. Sponsored by: EMC / Isilon Storage Division Added: projects/clang390-import/usr.bin/clang/lld/Makefile.depend (contents, props changed) Modified: projects/clang390-import/targets/pseudo/clang/Makefile.depend Modified: projects/clang390-import/targets/pseudo/clang/Makefile.depend ============================================================================== --- projects/clang390-import/targets/pseudo/clang/Makefile.depend Thu Sep 1 21:02:02 2016 (r305242) +++ projects/clang390-import/targets/pseudo/clang/Makefile.depend Thu Sep 1 21:03:27 2016 (r305243) @@ -46,4 +46,8 @@ DIRDEPS+= \ .endif +.if ${MK_LLD} == "yes" +DIRDEPS+= usr.bin/clang/lld +.endif + .include Added: projects/clang390-import/usr.bin/clang/lld/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/usr.bin/clang/lld/Makefile.depend Thu Sep 1 21:03:27 2016 (r305243) @@ -0,0 +1,26 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/clang/libllvm \ + lib/libc \ + lib/libc++ \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/libthr \ + lib/libz \ + lib/msun \ + lib/ncurses/ncursesw \ + usr.bin/clang/llvm-tblgen.host \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif From owner-svn-src-projects@freebsd.org Thu Sep 1 22:58:54 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 396E2BCC2C4 for ; Thu, 1 Sep 2016 22:58:54 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 09A8C6CF; Thu, 1 Sep 2016 22:58:53 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u81MwrEq000971; Thu, 1 Sep 2016 22:58:53 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u81MwrQ4000970; Thu, 1 Sep 2016 22:58:53 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201609012258.u81MwrQ4000970@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 1 Sep 2016 22:58:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305252 - projects/clang390-import/targets/pseudo/clang X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2016 22:58:54 -0000 Author: bdrewery Date: Thu Sep 1 22:58:53 2016 New Revision: 305252 URL: https://svnweb.freebsd.org/changeset/base/305252 Log: DIRDEPS_BUILD: Don't conditionally include src.opts.mk. This was preventing having MK_LLD a value set in 'make bootstrap-tools' since MK_LLDB was forced to no in that context. Sponsored by: EMC / Isilon Storage Division Modified: projects/clang390-import/targets/pseudo/clang/Makefile.depend Modified: projects/clang390-import/targets/pseudo/clang/Makefile.depend ============================================================================== --- projects/clang390-import/targets/pseudo/clang/Makefile.depend Thu Sep 1 22:40:55 2016 (r305251) +++ projects/clang390-import/targets/pseudo/clang/Makefile.depend Thu Sep 1 22:58:53 2016 (r305252) @@ -2,9 +2,7 @@ # This file is not autogenerated - take care! -.if !defined(MK_LLDB) .include -.endif DIRDEPS = \ lib/clang/include \ From owner-svn-src-projects@freebsd.org Fri Sep 2 06:55:33 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 42505BCC554 for ; Fri, 2 Sep 2016 06:55:33 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 151CF6A2; Fri, 2 Sep 2016 06:55:33 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u826tWBF082299; Fri, 2 Sep 2016 06:55:32 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u826tWo0082298; Fri, 2 Sep 2016 06:55:32 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201609020655.u826tWo0082298@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Fri, 2 Sep 2016 06:55:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305282 - projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libm X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Sep 2016 06:55:33 -0000 Author: ngie Date: Fri Sep 2 06:55:32 2016 New Revision: 305282 URL: https://svnweb.freebsd.org/changeset/base/305282 Log: Don't expect :fmod to fail on FreeBSD Sponsored by: EMC / Isilon Storage Division Modified: projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libm/t_fmod.c Modified: projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libm/t_fmod.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libm/t_fmod.c Fri Sep 2 06:23:28 2016 (r305281) +++ projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libm/t_fmod.c Fri Sep 2 06:55:32 2016 (r305282) @@ -43,8 +43,10 @@ ATF_TC_HEAD(fmod, tc) ATF_TC_BODY(fmod, tc) { +#ifdef __NetBSD__ if (isQEMU()) atf_tc_expect_fail("PR misc/44767"); +#endif ATF_CHECK(fmodf(2.0, 1.0) == 0); ATF_CHECK(fmod(2.0, 1.0) == 0); From owner-svn-src-projects@freebsd.org Fri Sep 2 19:20:28 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8CD7BCD805 for ; Fri, 2 Sep 2016 19:20:28 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7EFBC6AD; Fri, 2 Sep 2016 19:20:28 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u82JKRod062415; Fri, 2 Sep 2016 19:20:27 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u82JKROw062413; Fri, 2 Sep 2016 19:20:27 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609021920.u82JKROw062413@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 2 Sep 2016 19:20:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305298 - in projects/clang390-import: contrib/llvm/tools/clang/lib/Basic lib/clang/include/clang/Basic X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Sep 2016 19:20:28 -0000 Author: dim Date: Fri Sep 2 19:20:27 2016 New Revision: 305298 URL: https://svnweb.freebsd.org/changeset/base/305298 Log: Update clang to the final 3.9.0 release. There were no more code changes since the last release candidate. Modified: projects/clang390-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp projects/clang390-import/lib/clang/include/clang/Basic/Version.inc Directory Properties: projects/clang390-import/contrib/llvm/tools/clang/ (props changed) Modified: projects/clang390-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp ============================================================================== --- projects/clang390-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp Fri Sep 2 19:07:45 2016 (r305297) +++ projects/clang390-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp Fri Sep 2 19:20:27 2016 (r305298) @@ -36,7 +36,7 @@ std::string getClangRepositoryPath() { // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/branches/release_39/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_390/final/lib/Basic/Version.cpp $"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); Modified: projects/clang390-import/lib/clang/include/clang/Basic/Version.inc ============================================================================== --- projects/clang390-import/lib/clang/include/clang/Basic/Version.inc Fri Sep 2 19:07:45 2016 (r305297) +++ projects/clang390-import/lib/clang/include/clang/Basic/Version.inc Fri Sep 2 19:20:27 2016 (r305298) @@ -7,4 +7,4 @@ #define CLANG_VENDOR "FreeBSD " -#define SVN_REVISION "279689" +#define SVN_REVISION "280324" From owner-svn-src-projects@freebsd.org Fri Sep 2 19:26:40 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67E83BCDB9A for ; Fri, 2 Sep 2016 19:26:40 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 21418C95; Fri, 2 Sep 2016 19:26:40 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u82JQdvO065946; Fri, 2 Sep 2016 19:26:39 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u82JQdmM065945; Fri, 2 Sep 2016 19:26:39 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609021926.u82JQdmM065945@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 2 Sep 2016 19:26:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305299 - projects/clang390-import/usr.bin/clang X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Sep 2016 19:26:40 -0000 Author: dim Date: Fri Sep 2 19:26:39 2016 New Revision: 305299 URL: https://svnweb.freebsd.org/changeset/base/305299 Log: For now, undo the WARNS=3 setting for the clang and llvm tools. More work needs to be done first to get everything compiling without warnings. Deleted: projects/clang390-import/usr.bin/clang/Makefile.inc From owner-svn-src-projects@freebsd.org Fri Sep 2 19:28:26 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04542BCDC35 for ; Fri, 2 Sep 2016 19:28:26 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C8A8DDCB; Fri, 2 Sep 2016 19:28:25 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u82JSP8g066069; Fri, 2 Sep 2016 19:28:25 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u82JSOBe066067; Fri, 2 Sep 2016 19:28:24 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201609021928.u82JSOBe066067@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 2 Sep 2016 19:28:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305300 - in projects/clang390-import: share/mk targets/pseudo/clang X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Sep 2016 19:28:26 -0000 Author: bdrewery Date: Fri Sep 2 19:28:24 2016 New Revision: 305300 URL: https://svnweb.freebsd.org/changeset/base/305300 Log: DIRDEPS_BUILD: Clang headers are now in lib/clang/headers Sponsored by: EMC / Isilon Storage Division Modified: projects/clang390-import/share/mk/local.gendirdeps.mk projects/clang390-import/targets/pseudo/clang/Makefile.depend Modified: projects/clang390-import/share/mk/local.gendirdeps.mk ============================================================================== --- projects/clang390-import/share/mk/local.gendirdeps.mk Fri Sep 2 19:26:39 2016 (r305299) +++ projects/clang390-import/share/mk/local.gendirdeps.mk Fri Sep 2 19:28:24 2016 (r305300) @@ -25,7 +25,7 @@ GENDIRDEPS_FILTER.host+= \ .endif GENDIRDEPS_FILTER_HOST_TOOLS+= \ - Nlib/clang/include \ + Nlib/clang/headers \ Nusr.bin/addr2line \ Nusr.bin/ar \ Nusr.bin/clang/clang \ Modified: projects/clang390-import/targets/pseudo/clang/Makefile.depend ============================================================================== --- projects/clang390-import/targets/pseudo/clang/Makefile.depend Fri Sep 2 19:26:39 2016 (r305299) +++ projects/clang390-import/targets/pseudo/clang/Makefile.depend Fri Sep 2 19:28:24 2016 (r305300) @@ -5,7 +5,7 @@ .include DIRDEPS = \ - lib/clang/include \ + lib/clang/headers \ share/doc/llvm/clang \ usr.bin/clang/clang \ usr.bin/clang/clang-tblgen \ From owner-svn-src-projects@freebsd.org Fri Sep 2 19:44:27 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC994BCDFF8 for ; Fri, 2 Sep 2016 19:44:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5061986A; Fri, 2 Sep 2016 19:44:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u82JiQBP073304; Fri, 2 Sep 2016 19:44:26 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u82JiOsk073275; Fri, 2 Sep 2016 19:44:24 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609021944.u82JiOsk073275@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 2 Sep 2016 19:44:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305301 - in projects/clang390-import: . lib lib/libc/gen lib/libc/stdio lib/libifc lib/libifconfig lib/libusb lib/msun/tests release/doc/en_US.ISO8859-1/hardware rescue/rescue share/ex... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Sep 2016 19:44:27 -0000 Author: dim Date: Fri Sep 2 19:44:23 2016 New Revision: 305301 URL: https://svnweb.freebsd.org/changeset/base/305301 Log: Merge ^/head r305220 through r305300. Added: projects/clang390-import/lib/libifconfig/ - copied from r305300, head/lib/libifconfig/ projects/clang390-import/share/examples/libifconfig/ - copied from r305300, head/share/examples/libifconfig/ Deleted: projects/clang390-import/lib/libifc/ projects/clang390-import/share/examples/libifc/ projects/clang390-import/share/man/man4/digi.4 projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei_ulp2_ddp.c projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei_ulp2_ddp.h projects/clang390-import/sys/modules/digi/ Modified: projects/clang390-import/Makefile.inc1 projects/clang390-import/ObsoleteFiles.inc projects/clang390-import/lib/Makefile projects/clang390-import/lib/libc/gen/siglist.c projects/clang390-import/lib/libc/stdio/fgetwln.c projects/clang390-import/lib/libusb/libusb20.c projects/clang390-import/lib/msun/tests/ctrig_test.c projects/clang390-import/release/doc/en_US.ISO8859-1/hardware/article.xml projects/clang390-import/rescue/rescue/Makefile.depend projects/clang390-import/share/man/man4/Makefile projects/clang390-import/share/man/man9/pci.9 projects/clang390-import/share/mk/bsd.crunchgen.mk projects/clang390-import/share/mk/bsd.libnames.mk projects/clang390-import/share/mk/src.libnames.mk projects/clang390-import/share/timedef/zh_CN.GB2312.src projects/clang390-import/share/timedef/zh_CN.GBK.src projects/clang390-import/share/timedef/zh_CN.UTF-8.src projects/clang390-import/share/timedef/zh_CN.eucCN.src projects/clang390-import/share/timedef/zh_TW.Big5.src projects/clang390-import/share/timedef/zh_TW.UTF-8.src projects/clang390-import/sys/arm/allwinner/axp81x.c projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c projects/clang390-import/sys/arm64/arm64/machdep.c projects/clang390-import/sys/arm64/include/pcpu.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/clang390-import/sys/conf/files projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei.c projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei.h projects/clang390-import/sys/dev/cxgbe/cxgbei/icl_cxgbei.c projects/clang390-import/sys/dev/cxgbe/offload.h projects/clang390-import/sys/dev/cxgbe/t4_main.c projects/clang390-import/sys/dev/cxgbe/t4_sge.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.c projects/clang390-import/sys/dev/hyperv/netvsc/if_hnreg.h projects/clang390-import/sys/dev/hyperv/netvsc/if_hnvar.h projects/clang390-import/sys/dev/hyperv/netvsc/ndis.h projects/clang390-import/sys/dev/hyperv/utilities/hv_heartbeat.c projects/clang390-import/sys/dev/hyperv/utilities/hv_shutdown.c projects/clang390-import/sys/dev/hyperv/utilities/hv_timesync.c projects/clang390-import/sys/dev/hyperv/utilities/vmbus_icreg.h projects/clang390-import/sys/dev/ioat/ioat.c projects/clang390-import/sys/dev/syscons/syscons.c projects/clang390-import/sys/dev/syscons/syscons.h projects/clang390-import/sys/kern/kern_sig.c projects/clang390-import/sys/modules/cxgbe/cxgbei/Makefile projects/clang390-import/sys/net/rndis.h projects/clang390-import/sys/sys/param.h projects/clang390-import/targets/pseudo/bootstrap-tools/Makefile projects/clang390-import/targets/pseudo/hosttools/Makefile.depend.host projects/clang390-import/tools/bsdbox/Makefile.depend projects/clang390-import/tools/tools/locale/tools/cldr2def.pl projects/clang390-import/usr.bin/w/w.1 projects/clang390-import/usr.bin/w/w.c projects/clang390-import/usr.sbin/cron/cron/cron.h projects/clang390-import/usr.sbin/cron/crontab/crontab.c projects/clang390-import/usr.sbin/crunch/crunchgen/crunchgen.c Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/clang390-import/Makefile.inc1 ============================================================================== --- projects/clang390-import/Makefile.inc1 Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/Makefile.inc1 Fri Sep 2 19:44:23 2016 (r305301) @@ -1628,8 +1628,10 @@ _crunchide= usr.sbin/crunch/crunchide # r285986 crunchen: use STRIPBIN rather than STRIP # 1100113: Support MK_AUTO_OBJ +# 1200006: META_MODE fixes .if ${BOOTSTRAPPING} < 1100078 || \ - (${MK_AUTO_OBJ} == "yes" && ${BOOTSTRAPPING} < 1100114) + (${MK_AUTO_OBJ} == "yes" && ${BOOTSTRAPPING} < 1100114) || \ + (${MK_META_MODE} == "yes" && ${BOOTSTRAPPING} < 1200006) _crunchgen= usr.sbin/crunch/crunchgen .endif Modified: projects/clang390-import/ObsoleteFiles.inc ============================================================================== --- projects/clang390-import/ObsoleteFiles.inc Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/ObsoleteFiles.inc Fri Sep 2 19:44:23 2016 (r305301) @@ -38,6 +38,8 @@ # xargs -n1 | sort | uniq -d; # done +# 20160901: Remove digi(4) +OLD_FILES+=usr/share/man/man4/digi.4.gz # 20160819: Remove ie(4) OLD_FILES+=usr/share/man/man4/i386/ie.4.gz # 20160819: Remove spic(4) Modified: projects/clang390-import/lib/Makefile ============================================================================== --- projects/clang390-import/lib/Makefile Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/lib/Makefile Fri Sep 2 19:44:23 2016 (r305301) @@ -60,7 +60,7 @@ SUBDIR= ${SUBDIR_BOOTSTRAP} \ ${_libgssapi} \ ${_librpcsec_gss} \ ${_libiconv_modules} \ - libifc \ + libifconfig \ libipsec \ libjail \ libkiconv \ Modified: projects/clang390-import/lib/libc/gen/siglist.c ============================================================================== --- projects/clang390-import/lib/libc/gen/siglist.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/lib/libc/gen/siglist.c Fri Sep 2 19:44:23 2016 (r305301) @@ -36,72 +36,72 @@ __FBSDID("$FreeBSD$"); #include const char *const sys_signame[NSIG] = { - "Signal 0", - "HUP", /* SIGHUP */ - "INT", /* SIGINT */ - "QUIT", /* SIGQUIT */ - "ILL", /* SIGILL */ - "TRAP", /* SIGTRAP */ - "ABRT", /* SIGABRT */ - "EMT", /* SIGEMT */ - "FPE", /* SIGFPE */ - "KILL", /* SIGKILL */ - "BUS", /* SIGBUS */ - "SEGV", /* SIGSEGV */ - "SYS", /* SIGSYS */ - "PIPE", /* SIGPIPE */ - "ALRM", /* SIGALRM */ - "TERM", /* SIGTERM */ - "URG", /* SIGURG */ - "STOP", /* SIGSTOP */ - "TSTP", /* SIGTSTP */ - "CONT", /* SIGCONT */ - "CHLD", /* SIGCHLD */ - "TTIN", /* SIGTTIN */ - "TTOU", /* SIGTTOU */ - "IO", /* SIGIO */ - "XCPU", /* SIGXCPU */ - "XFSZ", /* SIGXFSZ */ - "VTALRM", /* SIGVTALRM */ - "PROF", /* SIGPROF */ - "WINCH", /* SIGWINCH */ - "INFO", /* SIGINFO */ - "USR1", /* SIGUSR1 */ - "USR2" /* SIGUSR2 */ + [0] = "Signal 0", + [SIGHUP] = "HUP", + [SIGINT] = "INT", + [SIGQUIT] = "QUIT", + [SIGILL] = "ILL", + [SIGTRAP] = "TRAP", + [SIGABRT] = "ABRT", + [SIGEMT] = "EMT", + [SIGFPE] = "FPE", + [SIGKILL] = "KILL", + [SIGBUS] = "BUS", + [SIGSEGV] = "SEGV", + [SIGSYS] = "SYS", + [SIGPIPE] = "PIPE", + [SIGALRM] = "ALRM", + [SIGTERM] = "TERM", + [SIGURG] = "URG", + [SIGSTOP] = "STOP", + [SIGTSTP] = "TSTP", + [SIGCONT] = "CONT", + [SIGCHLD] = "CHLD", + [SIGTTIN] = "TTIN", + [SIGTTOU] = "TTOU", + [SIGIO] = "IO", + [SIGXCPU] = "XCPU", + [SIGXFSZ] = "XFSZ", + [SIGVTALRM] = "VTALRM", + [SIGPROF] = "PROF", + [SIGWINCH] = "WINCH", + [SIGINFO] = "INFO", + [SIGUSR1] = "USR1", + [SIGUSR2] = "USR2", }; const char *const sys_siglist[NSIG] = { - "Signal 0", - "Hangup", /* SIGHUP */ - "Interrupt", /* SIGINT */ - "Quit", /* SIGQUIT */ - "Illegal instruction", /* SIGILL */ - "Trace/BPT trap", /* SIGTRAP */ - "Abort trap", /* SIGABRT */ - "EMT trap", /* SIGEMT */ - "Floating point exception", /* SIGFPE */ - "Killed", /* SIGKILL */ - "Bus error", /* SIGBUS */ - "Segmentation fault", /* SIGSEGV */ - "Bad system call", /* SIGSYS */ - "Broken pipe", /* SIGPIPE */ - "Alarm clock", /* SIGALRM */ - "Terminated", /* SIGTERM */ - "Urgent I/O condition", /* SIGURG */ - "Suspended (signal)", /* SIGSTOP */ - "Suspended", /* SIGTSTP */ - "Continued", /* SIGCONT */ - "Child exited", /* SIGCHLD */ - "Stopped (tty input)", /* SIGTTIN */ - "Stopped (tty output)", /* SIGTTOU */ - "I/O possible", /* SIGIO */ - "Cputime limit exceeded", /* SIGXCPU */ - "Filesize limit exceeded", /* SIGXFSZ */ - "Virtual timer expired", /* SIGVTALRM */ - "Profiling timer expired", /* SIGPROF */ - "Window size changes", /* SIGWINCH */ - "Information request", /* SIGINFO */ - "User defined signal 1", /* SIGUSR1 */ - "User defined signal 2" /* SIGUSR2 */ + [0] = "Signal 0", + [SIGHUP] = "Hangup", + [SIGINT] = "Interrupt", + [SIGQUIT] = "Quit", + [SIGILL] = "Illegal instruction", + [SIGTRAP] = "Trace/BPT trap", + [SIGABRT] = "Abort trap", + [SIGEMT] = "EMT trap", + [SIGFPE] = "Floating point exception", + [SIGKILL] = "Killed", + [SIGBUS] = "Bus error", + [SIGSEGV] = "Segmentation fault", + [SIGSYS] = "Bad system call", + [SIGPIPE] = "Broken pipe", + [SIGALRM] = "Alarm clock", + [SIGTERM] = "Terminated", + [SIGURG] = "Urgent I/O condition", + [SIGSTOP] = "Suspended (signal)", + [SIGTSTP] = "Suspended", + [SIGCONT] = "Continued", + [SIGCHLD] = "Child exited", + [SIGTTIN] = "Stopped (tty input)", + [SIGTTOU] = "Stopped (tty output)", + [SIGIO] = "I/O possible", + [SIGXCPU] = "Cputime limit exceeded", + [SIGXFSZ] = "Filesize limit exceeded", + [SIGVTALRM] = "Virtual timer expired", + [SIGPROF] = "Profiling timer expired", + [SIGWINCH] = "Window size changes", + [SIGINFO] = "Information request", + [SIGUSR1] = "User defined signal 1", + [SIGUSR2] = "User defined signal 2", }; const int sys_nsig = sizeof(sys_siglist) / sizeof(sys_siglist[0]); Modified: projects/clang390-import/lib/libc/stdio/fgetwln.c ============================================================================== --- projects/clang390-import/lib/libc/stdio/fgetwln.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/lib/libc/stdio/fgetwln.c Fri Sep 2 19:44:23 2016 (r305301) @@ -47,11 +47,16 @@ fgetwln_l(FILE * __restrict fp, size_t * { wint_t wc; size_t len; + int savserr; + FIX_LOCALE(locale); FLOCKFILE(fp); ORIENT(fp, 1); + savserr = fp->_flags & __SERR; + fp->_flags &= ~__SERR; + len = 0; while ((wc = __fgetwc(fp, locale)) != WEOF) { #define GROW 512 @@ -64,7 +69,12 @@ fgetwln_l(FILE * __restrict fp, size_t * if (wc == L'\n') break; } - if (len == 0 || (wc == WEOF && !__sfeof(fp))) + /* fgetwc(3) may set both __SEOF and __SERR at once. */ + if (__sferror(fp)) + goto error; + + fp->_flags |= savserr; + if (len == 0) goto error; FUNLOCKFILE(fp); Modified: projects/clang390-import/lib/libusb/libusb20.c ============================================================================== --- projects/clang390-import/lib/libusb/libusb20.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/lib/libusb/libusb20.c Fri Sep 2 19:44:23 2016 (r305301) @@ -176,6 +176,12 @@ libusb20_tr_open_stream(struct libusb20_ return (LIBUSB20_ERROR_BUSY); if (MaxFrameCount & LIBUSB20_MAX_FRAME_PRE_SCALE) { MaxFrameCount &= ~LIBUSB20_MAX_FRAME_PRE_SCALE; + /* + * The kernel can setup 8 times more frames when + * pre-scaling ISOCHRONOUS transfers. Make sure the + * length and pointer buffers are big enough: + */ + MaxFrameCount *= 8; pre_scale = 1; } else { pre_scale = 0; @@ -200,8 +206,13 @@ libusb20_tr_open_stream(struct libusb20_ } memset(xfer->ppBuffer, 0, size); - error = xfer->pdev->methods->tr_open(xfer, MaxBufSize, - MaxFrameCount, ep_no, stream_id, pre_scale); + if (pre_scale) { + error = xfer->pdev->methods->tr_open(xfer, MaxBufSize, + MaxFrameCount / 8, ep_no, stream_id, 1); + } else { + error = xfer->pdev->methods->tr_open(xfer, MaxBufSize, + MaxFrameCount, ep_no, stream_id, 0); + } if (error) { free(xfer->ppBuffer); Modified: projects/clang390-import/lib/msun/tests/ctrig_test.c ============================================================================== --- projects/clang390-import/lib/msun/tests/ctrig_test.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/lib/msun/tests/ctrig_test.c Fri Sep 2 19:44:23 2016 (r305301) @@ -427,7 +427,6 @@ test_large(void) test_odd_tol(ctanh, z, CMPLXL(1.0, 8.95257245135025991216632140458264468e-309L), DBL_ULP()); -#if !defined(__i386__) z = CMPLXL(30, 0x1p1023L); test_odd_tol(ctanh, z, CMPLXL(1.0, -1.62994325413993477997492170229268382e-26L), @@ -437,7 +436,6 @@ test_large(void) CMPLXL(0.878606311888306869546254022621986509L, -0.225462792499754505792678258169527424L), DBL_ULP()); -#endif z = CMPLXL(710.6, 0.78539816339744830961566084581987572L); test_odd_tol(csinh, z, @@ -475,8 +473,12 @@ main(int argc, char *argv[]) test_small(); printf("ok 5 - ctrig small\n"); +#if defined(__i386__) + printf("ok 6 # SKIP ctrig large # fails on i386 because of bug 205446\n"); +#else test_large(); printf("ok 6 - ctrig large\n"); +#endif return (0); } Modified: projects/clang390-import/release/doc/en_US.ISO8859-1/hardware/article.xml ============================================================================== --- projects/clang390-import/release/doc/en_US.ISO8859-1/hardware/article.xml Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/release/doc/en_US.ISO8859-1/hardware/article.xml Fri Sep 2 19:44:23 2016 (r305301) @@ -1098,9 +1098,6 @@ [&arch.i386;] STB 4 port card using shared IRQ - [&arch.i386;] DigiBoard intelligent serial cards (digi - driver) - [&arch.amd64;, &arch.i386;] PCI-Based multi-port serial boards (&man.puc.4; driver) Modified: projects/clang390-import/rescue/rescue/Makefile.depend ============================================================================== --- projects/clang390-import/rescue/rescue/Makefile.depend Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/rescue/rescue/Makefile.depend Fri Sep 2 19:44:23 2016 (r305301) @@ -52,6 +52,7 @@ DIRDEPS = \ usr.bin/lex/lib \ usr.bin/yacc.host \ usr.sbin/crunch/crunchgen.host \ + usr.sbin/crunch/crunchide.host \ .include Modified: projects/clang390-import/share/man/man4/Makefile ============================================================================== --- projects/clang390-import/share/man/man4/Makefile Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/man/man4/Makefile Fri Sep 2 19:44:23 2016 (r305301) @@ -122,7 +122,6 @@ MAN= aac.4 \ ddb.4 \ de.4 \ devctl.4 \ - digi.4 \ disc.4 \ divert.4 \ ${_dpms.4} \ Modified: projects/clang390-import/share/man/man9/pci.9 ============================================================================== --- projects/clang390-import/share/man/man9/pci.9 Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/man/man9/pci.9 Fri Sep 2 19:44:23 2016 (r305301) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 3, 2016 +.Dd September 1, 2016 .Dt PCI 9 .Os .Sh NAME @@ -910,11 +910,6 @@ with one in the new distribution. The .Fn pci_remap_msix function will fail if this condition is not met. -.Sh IMPLEMENTATION NOTES -The -.Vt pci_addr_t -type varies according to the size of the PCI bus address -space on the target architecture. .Sh SEE ALSO .Xr pci 4 , .Xr pciconf 8 , Modified: projects/clang390-import/share/mk/bsd.crunchgen.mk ============================================================================== --- projects/clang390-import/share/mk/bsd.crunchgen.mk Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/mk/bsd.crunchgen.mk Fri Sep 2 19:44:23 2016 (r305301) @@ -112,6 +112,7 @@ CRUNCHENV+= MK_TESTS=no \ _RECURSING_CRUNCH=1 .ORDER: ${OUTPUTS} objs ${OUTPUTS:[1]}: .META +${OUTPUTS:[2..-1]}: .NOMETA ${OUTPUTS}: ${CONF} MAKE=${MAKE} ${CRUNCHENV:NMK_AUTO_OBJ=*} MAKEOBJDIRPREFIX=${CRUNCHOBJS} \ MK_AUTO_OBJ=${MK_AUTO_OBJ} \ @@ -122,11 +123,13 @@ ${OUTPUTS}: ${CONF} # These 2 targets cannot use .MAKE since they depend on the generated # ${OUTMK} above. -${PROG}: ${OUTPUTS} objs .META +${PROG}: ${OUTPUTS} objs .NOMETA .PHONY ${CRUNCHENV} \ CC="${CC} ${CFLAGS} ${LDFLAGS}" \ CXX="${CXX} ${CXXFLAGS} ${LDFLAGS}" \ - ${MAKE} .MAKE.MODE=normal -f ${OUTMK} exe + ${MAKE} .MAKE.MODE="${.MAKE.MODE} curdirOk=yes" \ + .MAKE.META.IGNORE_PATHS="${.MAKE.META.IGNORE_PATHS}" \ + -f ${OUTMK} exe objs: ${OUTMK} .META ${CRUNCHENV} MAKEOBJDIRPREFIX=${CRUNCHOBJS} \ @@ -166,3 +169,5 @@ clean: fi META_XTRAS+= ${find ${CRUNCHOBJS}${SRCTOP} -name '*.meta' 2>/dev/null || true:L:sh} +META_XTRAS+= ${echo ${CRUNCHOBJS}/*.lo.meta 2>/dev/null || true:L:sh} +META_XTRAS+= ${PROG}.meta Modified: projects/clang390-import/share/mk/bsd.libnames.mk ============================================================================== --- projects/clang390-import/share/mk/bsd.libnames.mk Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/mk/bsd.libnames.mk Fri Sep 2 19:44:23 2016 (r305301) @@ -82,7 +82,7 @@ LIBIBMAD?= ${DESTDIR}${LIBDIR}/libibmad. LIBIBSDP?= ${DESTDIR}${LIBDIR}/libibsdp.a LIBIBUMAD?= ${DESTDIR}${LIBDIR}/libibumad.a LIBIBVERBS?= ${DESTDIR}${LIBDIR}/libibverbs.a -LIBIFC?= ${DESTDIR}${LIBDIR}/libifc.a +LIBIFCONFIG?= ${DESTDIR}${LIBDIR}/libifconfig.a LIBIPSEC?= ${DESTDIR}${LIBDIR}/libipsec.a LIBJAIL?= ${DESTDIR}${LIBDIR}/libjail.a LIBKADM5CLNT?= ${DESTDIR}${LIBDIR}/libkadm5clnt.a Modified: projects/clang390-import/share/mk/src.libnames.mk ============================================================================== --- projects/clang390-import/share/mk/src.libnames.mk Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/mk/src.libnames.mk Fri Sep 2 19:44:23 2016 (r305301) @@ -105,7 +105,7 @@ _LIBRARIES= \ heimntlm \ heimsqlite \ hx509 \ - ifc \ + ifconfig \ ipsec \ jail \ kadm5clnt \ Modified: projects/clang390-import/share/timedef/zh_CN.GB2312.src ============================================================================== --- projects/clang390-import/share/timedef/zh_CN.GB2312.src Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/timedef/zh_CN.GB2312.src Fri Sep 2 19:44:23 2016 (r305301) @@ -4,18 +4,18 @@ # ----------------------------------------------------------------------------- # # Short month names - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 +!!#1TB +!!#2TB +!!#3TB +!!#4TB +!!#5TB +!!#6TB +!!#7TB +!!#8TB +!!#9TB +#1#0TB +#1#1TB +#1#2TB # # Long month names (as in a date) Ò»Ô @@ -63,7 +63,7 @@ ÏÂÎç # # date_fmt -%YÄê%bÔÂ%eÈÕ %A %X %Z +%YÄê%_mÔÂ%eÈÕ %A %X %Z # # Long month names (without case ending) Ò»Ô Modified: projects/clang390-import/share/timedef/zh_CN.GBK.src ============================================================================== --- projects/clang390-import/share/timedef/zh_CN.GBK.src Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/timedef/zh_CN.GBK.src Fri Sep 2 19:44:23 2016 (r305301) @@ -4,18 +4,18 @@ # ----------------------------------------------------------------------------- # # Short month names - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 + 1Ô + 2Ô + 3Ô + 4Ô + 5Ô + 6Ô + 7Ô + 8Ô + 9Ô +10Ô +11Ô +12Ô # # Long month names (as in a date) Ò»Ô @@ -63,7 +63,7 @@ ÏÂÎç # # date_fmt -%YÄê%bÔÂ%eÈÕ %A %X %Z +%YÄê%_mÔÂ%eÈÕ %A %X %Z # # Long month names (without case ending) Ò»Ô Modified: projects/clang390-import/share/timedef/zh_CN.UTF-8.src ============================================================================== Binary file (source and/or target). No diff available. Modified: projects/clang390-import/share/timedef/zh_CN.eucCN.src ============================================================================== --- projects/clang390-import/share/timedef/zh_CN.eucCN.src Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/timedef/zh_CN.eucCN.src Fri Sep 2 19:44:23 2016 (r305301) @@ -4,18 +4,18 @@ # ----------------------------------------------------------------------------- # # Short month names - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 +¡¡£±Ô +¡¡£²Ô +¡¡£³Ô +¡¡£´Ô +¡¡£µÔ +¡¡£¶Ô +¡¡£·Ô +¡¡£¸Ô +¡¡£¹Ô +£±£°Ô +£±£±Ô +£±£²Ô # # Long month names (as in a date) Ò»Ô @@ -63,7 +63,7 @@ ÏÂÎç # # date_fmt -%YÄê%bÔÂ%eÈÕ %A %X %Z +%YÄê%_mÔÂ%eÈÕ %A %X %Z # # Long month names (without case ending) Ò»Ô Modified: projects/clang390-import/share/timedef/zh_TW.Big5.src ============================================================================== --- projects/clang390-import/share/timedef/zh_TW.Big5.src Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/timedef/zh_TW.Big5.src Fri Sep 2 19:44:23 2016 (r305301) @@ -4,18 +4,18 @@ # ----------------------------------------------------------------------------- # # Short month names - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 +¡@¢°¤ë +¡@¢±¤ë +¡@¢²¤ë +¡@¢³¤ë +¡@¢´¤ë +¡@¢µ¤ë +¡@¢¶¤ë +¡@¢·¤ë +¡@¢¸¤ë +¢°¢¯¤ë +¢°¢°¤ë +¢°¢±¤ë # # Long month names (as in a date) 1¤ë @@ -63,7 +63,7 @@ ¤U¤È # # date_fmt -%Y¦~%b¤ë%e¤é %A %X %Z +%Y¦~%_m¤ë%e¤é %A %X %Z # # Long month names (without case ending) 1¤ë Modified: projects/clang390-import/share/timedef/zh_TW.UTF-8.src ============================================================================== --- projects/clang390-import/share/timedef/zh_TW.UTF-8.src Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/share/timedef/zh_TW.UTF-8.src Fri Sep 2 19:44:23 2016 (r305301) @@ -4,18 +4,18 @@ # ----------------------------------------------------------------------------- # # Short month names - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 -11 -12 + 1月 + 2月 + 3月 + 4月 + 5月 + 6月 + 7月 + 8月 + 9月 +10月 +11月 +12月 # # Long month names (as in a date) 1月 @@ -63,7 +63,7 @@ ä¸‹åˆ # # date_fmt -%Yå¹´%b月%eæ—¥ %A %X %Z +%Yå¹´%_m月%eæ—¥ %A %X %Z # # Long month names (without case ending) 1月 Modified: projects/clang390-import/sys/arm/allwinner/axp81x.c ============================================================================== --- projects/clang390-import/sys/arm/allwinner/axp81x.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/sys/arm/allwinner/axp81x.c Fri Sep 2 19:44:23 2016 (r305301) @@ -61,8 +61,13 @@ __FBSDID("$FreeBSD$"); MALLOC_DEFINE(M_AXP81X_REG, "AXP81x regulator", "AXP81x power regulator"); #define AXP_ICTYPE 0x03 +#define AXP_POWERCTL1 0x10 +#define AXP_POWERCTL1_DCDC2 (1 << 1) #define AXP_POWERCTL2 0x12 #define AXP_POWERCTL2_DC1SW (1 << 7) +#define AXP_VOLTCTL_DCDC2 0x21 +#define AXP_VOLTCTL_STATUS (1 << 7) +#define AXP_VOLTCTL_MASK 0x7f #define AXP_POWERBAT 0x32 #define AXP_POWERBAT_SHUTDOWN (1 << 7) #define AXP_IRQEN1 0x40 @@ -109,10 +114,18 @@ struct axp81x_regdef { char *supply_name; uint8_t enable_reg; uint8_t enable_mask; + uint8_t voltage_reg; + int voltage_min; + int voltage_max; + int voltage_step1; + int voltage_nstep1; + int voltage_step2; + int voltage_nstep2; }; enum axp81x_reg_id { - AXP81X_REG_ID_DC1SW + AXP81X_REG_ID_DC1SW, + AXP81X_REG_ID_DCDC2, }; static struct axp81x_regdef axp81x_regdefs[] = { @@ -122,6 +135,19 @@ static struct axp81x_regdef axp81x_regde .enable_reg = AXP_POWERCTL2, .enable_mask = AXP_POWERCTL2_DC1SW, }, + { + .id = AXP81X_REG_ID_DCDC2, + .name = "dcdc2", + .enable_reg = AXP_POWERCTL1, + .enable_mask = AXP_POWERCTL1_DCDC2, + .voltage_reg = AXP_VOLTCTL_DCDC2, + .voltage_min = 500, + .voltage_max = 1300, + .voltage_step1 = 10, + .voltage_nstep1 = 70, + .voltage_step2 = 20, + .voltage_nstep2 = 5, + }, }; struct axp81x_softc; @@ -218,17 +244,82 @@ axp81x_regnode_enable(struct regnode *re return (0); } +static void +axp81x_regnode_reg_to_voltage(struct axp81x_reg_sc *sc, uint8_t val, int *uv) +{ + if (val < sc->def->voltage_nstep1) + *uv = sc->def->voltage_min + val * sc->def->voltage_step1; + else + *uv = sc->def->voltage_min + + (sc->def->voltage_nstep1 * sc->def->voltage_step1) + + ((val - sc->def->voltage_nstep1) * sc->def->voltage_step2); + *uv *= 1000; +} + +static int +axp81x_regnode_voltage_to_reg(struct axp81x_reg_sc *sc, int min_uvolt, + int max_uvolt, uint8_t *val) +{ + uint8_t nval; + int nstep, uvolt; + + nval = 0; + uvolt = sc->def->voltage_min * 1000; + + for (nstep = 0; nstep < sc->def->voltage_nstep1 && uvolt < min_uvolt; + nstep++) { + ++nval; + uvolt += (sc->def->voltage_step1 * 1000); + } + for (nstep = 0; nstep < sc->def->voltage_nstep2 && uvolt < min_uvolt; + nstep++) { + ++nval; + uvolt += (sc->def->voltage_step2 * 1000); + } + if (uvolt > max_uvolt) + return (EINVAL); + + *val = nval; + return (0); +} + static int axp81x_regnode_set_voltage(struct regnode *regnode, int min_uvolt, int max_uvolt, int *udelay) { - return (ENXIO); + struct axp81x_reg_sc *sc; + uint8_t val; + + sc = regnode_get_softc(regnode); + + if (!sc->def->voltage_step1 || !sc->def->voltage_step2) + return (ENXIO); + + if (axp81x_regnode_voltage_to_reg(sc, min_uvolt, max_uvolt, &val) != 0) + return (ERANGE); + + axp81x_write(sc->base_dev, sc->def->voltage_reg, val); + + *udelay = 0; + + return (0); } static int axp81x_regnode_get_voltage(struct regnode *regnode, int *uvolt) { - return (ENXIO); + struct axp81x_reg_sc *sc; + uint8_t val; + + sc = regnode_get_softc(regnode); + + if (!sc->def->voltage_step1 || !sc->def->voltage_step2) + return (ENXIO); + + axp81x_read(sc->base_dev, sc->def->voltage_reg, &val, 1); + axp81x_regnode_reg_to_voltage(sc, val & AXP_VOLTCTL_MASK, uvolt); + + return (0); } static regnode_method_t axp81x_regnode_methods[] = { @@ -519,6 +610,10 @@ axp81x_reg_attach(device_t dev, phandle_ memset(&initdef, 0, sizeof(initdef)); regulator_parse_ofw_stdparam(dev, node, &initdef); + if (initdef.std_param.min_uvolt == 0) + initdef.std_param.min_uvolt = def->voltage_min * 1000; + if (initdef.std_param.max_uvolt == 0) + initdef.std_param.max_uvolt = def->voltage_max * 1000; initdef.id = def->id; initdef.ofw_node = node; regnode = regnode_create(dev, &axp81x_regnode_class, &initdef); Modified: projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c ============================================================================== --- projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c Fri Sep 2 19:44:23 2016 (r305301) @@ -110,14 +110,14 @@ __FBSDID("$FreeBSD$"); #define A13_PLL2_PRE_DIV (0x1f << 0) #define A13_PLL2_PRE_DIV_SHIFT 0 +#define A23_PLL1_FACTOR_P (0x3 << 16) +#define A23_PLL1_FACTOR_P_SHIFT 16 #define A23_PLL1_FACTOR_N (0x1f << 8) #define A23_PLL1_FACTOR_N_SHIFT 8 #define A23_PLL1_FACTOR_K (0x3 << 4) #define A23_PLL1_FACTOR_K_SHIFT 4 #define A23_PLL1_FACTOR_M (0x3 << 0) #define A23_PLL1_FACTOR_M_SHIFT 0 -#define A23_PLL1_FACTOR_P (0x3 << 16) -#define A23_PLL1_FACTOR_P_SHIFT 16 #define A31_PLL1_LOCK (1 << 28) #define A31_PLL1_CPU_SIGMA_DELTA_EN (1 << 24) @@ -171,6 +171,24 @@ __FBSDID("$FreeBSD$"); #define CLKID_A31_PLL6 0 #define CLKID_A31_PLL6_X2 1 +struct aw_pll_factor { + unsigned int n; + unsigned int k; + unsigned int m; + unsigned int p; + uint64_t freq; +}; +#define PLLFACTOR(_n, _k, _m, _p, _freq) \ + { .n = (_n), .k = (_k), .m = (_m), .p = (_p), .freq = (_freq) } + +static struct aw_pll_factor aw_a23_pll1_factors[] = { + PLLFACTOR(16, 0, 0, 0, 408000000), + PLLFACTOR(26, 0, 0, 0, 648000000), + PLLFACTOR(16, 1, 0, 0, 816000000), + PLLFACTOR(20, 1, 0, 0, 1008000000), + PLLFACTOR(24, 1, 0, 0, 1200000000), +}; + enum aw_pll_type { AWPLL_A10_PLL1 = 1, AWPLL_A10_PLL2, @@ -557,6 +575,39 @@ a13_pll2_set_freq(struct aw_pll_sc *sc, } static int +a23_pll1_set_freq(struct aw_pll_sc *sc, uint64_t fin, uint64_t *fout, + int flags) +{ + struct aw_pll_factor *f; + uint32_t val; + int n; + + f = NULL; + for (n = 0; n < nitems(aw_a23_pll1_factors); n++) { + if (aw_a23_pll1_factors[n].freq == *fout) { + f = &aw_a23_pll1_factors[n]; + break; + } + } + if (f == NULL) + return (EINVAL); + + DEVICE_LOCK(sc); + PLL_READ(sc, &val); + val &= ~(A23_PLL1_FACTOR_N|A23_PLL1_FACTOR_K|A23_PLL1_FACTOR_M| + A23_PLL1_FACTOR_P); + val |= (f->n << A23_PLL1_FACTOR_N_SHIFT); + val |= (f->k << A23_PLL1_FACTOR_K_SHIFT); + val |= (f->m << A23_PLL1_FACTOR_M_SHIFT); + val |= (f->p << A23_PLL1_FACTOR_P_SHIFT); + PLL_WRITE(sc, val); + DEVICE_UNLOCK(sc); + + return (0); + +} + +static int a23_pll1_recalc(struct aw_pll_sc *sc, uint64_t *freq) { uint32_t val, m, n, k, p; @@ -719,7 +770,7 @@ static struct aw_pll_funcs aw_pll_func[] PLL(AWPLL_A10_PLL5, a10_pll5_recalc, NULL, NULL), PLL(AWPLL_A10_PLL6, a10_pll6_recalc, a10_pll6_set_freq, a10_pll6_init), PLL(AWPLL_A13_PLL2, a13_pll2_recalc, a13_pll2_set_freq, NULL), - PLL(AWPLL_A23_PLL1, a23_pll1_recalc, NULL, NULL), + PLL(AWPLL_A23_PLL1, a23_pll1_recalc, a23_pll1_set_freq, NULL), PLL(AWPLL_A31_PLL1, a31_pll1_recalc, NULL, NULL), PLL(AWPLL_A31_PLL6, a31_pll6_recalc, NULL, a31_pll6_init), PLL(AWPLL_A80_PLL4, a80_pll4_recalc, NULL, NULL), Modified: projects/clang390-import/sys/arm64/arm64/machdep.c ============================================================================== --- projects/clang390-import/sys/arm64/arm64/machdep.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/sys/arm64/arm64/machdep.c Fri Sep 2 19:44:23 2016 (r305301) @@ -416,8 +416,17 @@ cpu_flush_dcache(void *ptr, size_t len) int cpu_est_clockrate(int cpu_id, uint64_t *rate) { + struct pcpu *pc; - panic("ARM64TODO: cpu_est_clockrate"); + pc = pcpu_find(cpu_id); + if (pc == NULL || rate == NULL) + return (EINVAL); + + if (pc->pc_clock == 0) + return (EOPNOTSUPP); + + *rate = pc->pc_clock; + return (0); } void Modified: projects/clang390-import/sys/arm64/include/pcpu.h ============================================================================== --- projects/clang390-import/sys/arm64/include/pcpu.h Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/sys/arm64/include/pcpu.h Fri Sep 2 19:44:23 2016 (r305301) @@ -38,7 +38,8 @@ #define PCPU_MD_FIELDS \ u_int pc_acpi_id; /* ACPI CPU id */ \ u_int pc_midr; /* stored MIDR value */ \ - char __pad[121] + uint64_t pc_clock; \ + char __pad[113] #ifdef _KERNEL Modified: projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Fri Sep 2 19:44:23 2016 (r305301) @@ -791,11 +791,17 @@ dmu_objset_create_impl(spa_t *spa, dsl_d /* * Determine the number of levels necessary for the meta-dnode - * to contain DN_MAX_OBJECT dnodes. + * to contain DN_MAX_OBJECT dnodes. Note that in order to + * ensure that we do not overflow 64 bits, there has to be + * a nlevels that gives us a number of blocks > DN_MAX_OBJECT + * but < 2^64. Therefore, + * (mdn->dn_indblkshift - SPA_BLKPTRSHIFT) (10) must be + * less than (64 - log2(DN_MAX_OBJECT)) (16). */ - while ((uint64_t)mdn->dn_nblkptr << (mdn->dn_datablkshift + + while ((uint64_t)mdn->dn_nblkptr << + (mdn->dn_datablkshift - DNODE_SHIFT + (levels - 1) * (mdn->dn_indblkshift - SPA_BLKPTRSHIFT)) < - DN_MAX_OBJECT * sizeof (dnode_phys_t)) + DN_MAX_OBJECT) levels++; mdn->dn_next_nlevels[tx->tx_txg & TXG_MASK] = Modified: projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c ============================================================================== --- projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Fri Sep 2 19:28:24 2016 (r305300) +++ projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Fri Sep 2 19:44:23 2016 (r305301) @@ -151,6 +151,8 @@ const zio_taskq_info_t zio_taskqs[ZIO_TY { ZTI_ONE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, /* IOCTL */ }; +static sysevent_t *spa_event_create(spa_t *spa, vdev_t *vd, const char *name); +static void spa_event_post(sysevent_t *ev); static void spa_sync_version(void *arg, dmu_tx_t *tx); static void spa_sync_props(void *arg, dmu_tx_t *tx); static boolean_t spa_has_active_shared_spare(spa_t *spa); @@ -5738,6 +5740,7 @@ int spa_vdev_remove(spa_t *spa, uint64_t guid, boolean_t unspare) { vdev_t *vd; + sysevent_t *ev = NULL; metaslab_group_t *mg; nvlist_t **spares, **l2cache, *nv; uint64_t txg = 0; @@ -5761,6 +5764,9 @@ spa_vdev_remove(spa_t *spa, uint64_t gui * in this pool. */ if (vd == NULL || unspare) { + if (vd == NULL) + vd = spa_lookup_by_guid(spa, guid, B_TRUE); + ev = spa_event_create(spa, vd, ESC_ZFS_VDEV_REMOVE_AUX); spa_vdev_remove_aux(spa->spa_spares.sav_config, ZPOOL_CONFIG_SPARES, spares, nspares, nv); spa_load_spares(spa); @@ -5768,7 +5774,6 @@ spa_vdev_remove(spa_t *spa, uint64_t gui } else { error = SET_ERROR(EBUSY); } - spa_event_notify(spa, vd, ESC_ZFS_VDEV_REMOVE_AUX); } else if (spa->spa_l2cache.sav_vdevs != NULL && nvlist_lookup_nvlist_array(spa->spa_l2cache.sav_config, ZPOOL_CONFIG_L2CACHE, &l2cache, &nl2cache) == 0 && @@ -5776,11 +5781,12 @@ spa_vdev_remove(spa_t *spa, uint64_t gui /* * Cache devices can always be removed. */ + vd = spa_lookup_by_guid(spa, guid, B_TRUE); + ev = spa_event_create(spa, vd, ESC_ZFS_VDEV_REMOVE_AUX); spa_vdev_remove_aux(spa->spa_l2cache.sav_config, ZPOOL_CONFIG_L2CACHE, l2cache, nl2cache, nv); spa_load_l2cache(spa); spa->spa_l2cache.sav_sync = B_TRUE; - spa_event_notify(spa, vd, ESC_ZFS_VDEV_REMOVE_AUX); } else if (vd != NULL && vd->vdev_islog) { ASSERT(!locked); ASSERT(vd == vd->vdev_top); @@ -5817,9 +5823,9 @@ spa_vdev_remove(spa_t *spa, uint64_t gui /* * Clean up the vdev namespace. */ + ev = spa_event_create(spa, vd, ESC_ZFS_VDEV_REMOVE_DEV); spa_vdev_remove_from_namespace(spa, vd); - spa_event_notify(spa, vd, ESC_ZFS_VDEV_REMOVE_DEV); } else if (vd != NULL) { /* * Normal vdevs cannot be removed (yet). @@ -5835,6 +5841,9 @@ spa_vdev_remove(spa_t *spa, uint64_t gui if (!locked) error = spa_vdev_exit(spa, NULL, txg, error); + if (ev) + spa_event_post(ev); + return (error); } @@ -7229,24 +7238,17 @@ spa_has_active_shared_spare(spa_t *spa) return (B_FALSE); } -/* - * Post a sysevent corresponding to the given event. The 'name' must be one of - * the event definitions in sys/sysevent/eventdefs.h. The payload will be - * filled in from the spa and (optionally) the vdev. This doesn't do anything - * in the userland libzpool, as we don't want consumers to misinterpret ztest - * or zdb as real changes. - */ -void -spa_event_notify(spa_t *spa, vdev_t *vd, const char *name) +static sysevent_t * +spa_event_create(spa_t *spa, vdev_t *vd, const char *name) { + sysevent_t *ev = NULL; #ifdef _KERNEL - sysevent_t *ev; sysevent_attr_list_t *attr = NULL; sysevent_value_t value; - sysevent_id_t eid; ev = sysevent_alloc(EC_ZFS, (char *)name, SUNW_KERN_PUB "zfs", SE_SLEEP); + ASSERT(ev != NULL); value.value_type = SE_DATA_TYPE_STRING; value.value.sv_string = spa_name(spa); @@ -7278,11 +7280,34 @@ spa_event_notify(spa_t *spa, vdev_t *vd, goto done; attr = NULL; - (void) log_sysevent(ev, SE_SLEEP, &eid); - done: if (attr) sysevent_free_attr(attr); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Sep 2 20:07:07 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28547BCD356 for ; Fri, 2 Sep 2016 20:07:07 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EA74DF94; Fri, 2 Sep 2016 20:07:06 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u82K76V0081072; Fri, 2 Sep 2016 20:07:06 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u82K76Bv081071; Fri, 2 Sep 2016 20:07:06 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609022007.u82K76Bv081071@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 2 Sep 2016 20:07:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305302 - projects/clang390-import/usr.bin/clang X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Sep 2016 20:07:07 -0000 Author: dim Date: Fri Sep 2 20:07:05 2016 New Revision: 305302 URL: https://svnweb.freebsd.org/changeset/base/305302 Log: Undo r305299, since it also sets up BINDIR, via usr.bin/Makefile.inc. Just set WARNS to zero instead. Added: projects/clang390-import/usr.bin/clang/Makefile.inc - copied, changed from r305298, projects/clang390-import/usr.bin/clang/Makefile.inc Copied and modified: projects/clang390-import/usr.bin/clang/Makefile.inc (from r305298, projects/clang390-import/usr.bin/clang/Makefile.inc) ============================================================================== --- projects/clang390-import/usr.bin/clang/Makefile.inc Fri Sep 2 19:20:27 2016 (r305298, copy source) +++ projects/clang390-import/usr.bin/clang/Makefile.inc Fri Sep 2 20:07:05 2016 (r305302) @@ -1,5 +1,5 @@ # $FreeBSD$ -WARNS?= 3 +WARNS?= 0 .include "../Makefile.inc" From owner-svn-src-projects@freebsd.org Fri Sep 2 22:21:29 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4F04BCC782 for ; Fri, 2 Sep 2016 22:21:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 94BDCD44; Fri, 2 Sep 2016 22:21:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u82MLSSQ030743; Fri, 2 Sep 2016 22:21:28 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u82MLS9D030741; Fri, 2 Sep 2016 22:21:28 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609022221.u82MLS9D030741@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 2 Sep 2016 22:21:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305310 - in projects/clang390-import: . tools/build/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Sep 2016 22:21:29 -0000 Author: dim Date: Fri Sep 2 22:21:28 2016 New Revision: 305310 URL: https://svnweb.freebsd.org/changeset/base/305310 Log: Update ObsoleteFiles.inc and OptionalObsoleteFiles.inc. Modified: projects/clang390-import/ObsoleteFiles.inc projects/clang390-import/tools/build/mk/OptionalObsoleteFiles.inc Modified: projects/clang390-import/ObsoleteFiles.inc ============================================================================== --- projects/clang390-import/ObsoleteFiles.inc Fri Sep 2 22:13:19 2016 (r305309) +++ projects/clang390-import/ObsoleteFiles.inc Fri Sep 2 22:21:28 2016 (r305310) @@ -38,6 +38,98 @@ # xargs -n1 | sort | uniq -d; # done +# 2016mmdd: new clang import which bumps version from 3.8.0 to 3.9.0. +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/3.8.0/include/sanitizer +OLD_FILES+=usr/lib/clang/3.8.0/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/3.8.0/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/3.8.0/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/3.8.0/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/3.8.0/include/adxintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/altivec.h +OLD_FILES+=usr/lib/clang/3.8.0/include/ammintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/arm_acle.h +OLD_FILES+=usr/lib/clang/3.8.0/include/arm_neon.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/avxintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/cpuid.h +OLD_FILES+=usr/lib/clang/3.8.0/include/cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/3.8.0/include/emmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/htmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/immintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/3.8.0/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/3.8.0/include/mmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/module.modulemap +OLD_FILES+=usr/lib/clang/3.8.0/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/s390intrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/shaintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/smmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/vadefs.h +OLD_FILES+=usr/lib/clang/3.8.0/include/vecintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/x86intrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/xopintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/3.8.0/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/3.8.0/include +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/3.8.0/lib/freebsd +OLD_DIRS+=usr/lib/clang/3.8.0/lib +OLD_DIRS+=usr/lib/clang/3.8.0 # 20160901: Remove digi(4) OLD_FILES+=usr/share/man/man4/digi.4.gz # 20160819: Remove ie(4) Modified: projects/clang390-import/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- projects/clang390-import/tools/build/mk/OptionalObsoleteFiles.inc Fri Sep 2 22:13:19 2016 (r305309) +++ projects/clang390-import/tools/build/mk/OptionalObsoleteFiles.inc Fri Sep 2 22:21:28 2016 (r305310) @@ -1141,88 +1141,109 @@ OLD_FILES+=usr/bin/clang++ OLD_FILES+=usr/bin/clang-cpp OLD_FILES+=usr/bin/clang-tblgen OLD_FILES+=usr/bin/llvm-tblgen -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/allocator_interface.h -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/asan_interface.h -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/common_interface_defs.h -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/coverage_interface.h -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/dfsan_interface.h -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/linux_syscall_hooks.h -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/lsan_interface.h -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/msan_interface.h -OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/tsan_interface_atomic.h -OLD_DIRS+=usr/lib/clang/3.8.0/include/sanitizer -OLD_FILES+=usr/lib/clang/3.8.0/include/__stddef_max_align_t.h -OLD_FILES+=usr/lib/clang/3.8.0/include/__wmmintrin_aes.h -OLD_FILES+=usr/lib/clang/3.8.0/include/__wmmintrin_pclmul.h -OLD_FILES+=usr/lib/clang/3.8.0/include/adxintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/altivec.h -OLD_FILES+=usr/lib/clang/3.8.0/include/ammintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/arm_acle.h -OLD_FILES+=usr/lib/clang/3.8.0/include/arm_neon.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx2intrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx512bwintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx512cdintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx512dqintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx512erintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx512fintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vlbwintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vldqintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vlintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/avxintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/bmi2intrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/bmiintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/cpuid.h -OLD_FILES+=usr/lib/clang/3.8.0/include/cuda_builtin_vars.h -OLD_FILES+=usr/lib/clang/3.8.0/include/emmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/f16cintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/fma4intrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/fmaintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/fxsrintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/htmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/htmxlintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/ia32intrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/immintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/lzcntintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/mm3dnow.h -OLD_FILES+=usr/lib/clang/3.8.0/include/mm_malloc.h -OLD_FILES+=usr/lib/clang/3.8.0/include/mmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/module.modulemap -OLD_FILES+=usr/lib/clang/3.8.0/include/nmmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/pkuintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/pmmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/popcntintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/prfchwintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/rdseedintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/rtmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/s390intrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/shaintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/smmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/tbmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/tmmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/vadefs.h -OLD_FILES+=usr/lib/clang/3.8.0/include/vecintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/wmmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/x86intrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/xmmintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/xopintrin.h -OLD_FILES+=usr/lib/clang/3.8.0/include/xtestintrin.h -OLD_DIRS+=usr/lib/clang/3.8.0/include -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-i386.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-x86_64.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan_cxx-i386.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-arm.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-i386.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-x86_64.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.safestack-i386.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.safestack-x86_64.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a -OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a -OLD_DIRS+=usr/lib/clang/3.8.0/lib/freebsd -OLD_DIRS+=usr/lib/clang/3.8.0/lib -OLD_DIRS+=usr/lib/clang/3.8.0 +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/3.9.0/include/sanitizer +OLD_FILES+=usr/lib/clang/3.9.0/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/3.9.0/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/3.9.0/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/3.9.0/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/3.9.0/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/3.9.0/include/adxintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/altivec.h +OLD_FILES+=usr/lib/clang/3.9.0/include/ammintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/arm_acle.h +OLD_FILES+=usr/lib/clang/3.9.0/include/arm_neon.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/avxintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/cpuid.h +OLD_FILES+=usr/lib/clang/3.9.0/include/cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/3.9.0/include/emmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/htmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/immintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/3.9.0/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/3.9.0/include/mmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/module.modulemap +OLD_FILES+=usr/lib/clang/3.9.0/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/opencl-c.h +OLD_FILES+=usr/lib/clang/3.9.0/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/s390intrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/shaintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/smmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/vadefs.h +OLD_FILES+=usr/lib/clang/3.9.0/include/vecintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/x86intrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/xopintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/3.9.0/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/3.9.0/include +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/3.9.0/lib/freebsd +OLD_DIRS+=usr/lib/clang/3.9.0/lib +OLD_DIRS+=usr/lib/clang/3.9.0 OLD_DIRS+=usr/lib/clang OLD_FILES+=usr/share/doc/llvm/clang/LICENSE.TXT OLD_DIRS+=usr/share/doc/llvm/clang @@ -1256,7 +1277,6 @@ OLD_FILES+=usr/bin/llvm-objdump OLD_FILES+=usr/bin/llvm-pdbdump OLD_FILES+=usr/bin/llvm-rtdyld OLD_FILES+=usr/bin/llvm-symbolizer -OLD_FILES+=usr/bin/macho-dump OLD_FILES+=usr/bin/opt OLD_FILES+=usr/share/man/man1/bugpoint.1.gz OLD_FILES+=usr/share/man/man1/llc.1.gz From owner-svn-src-projects@freebsd.org Sat Sep 3 00:47:56 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E185BCE6C7 for ; Sat, 3 Sep 2016 00:47:56 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E25AC12B; Sat, 3 Sep 2016 00:47:55 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u830ltnY086000; Sat, 3 Sep 2016 00:47:55 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u830lt4T085999; Sat, 3 Sep 2016 00:47:55 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201609030047.u830lt4T085999@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 3 Sep 2016 00:47:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305314 - projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2016 00:47:56 -0000 Author: ngie Date: Sat Sep 3 00:47:54 2016 New Revision: 305314 URL: https://svnweb.freebsd.org/changeset/base/305314 Log: Don't dedupe signals less than SIGRTMIN FreeBSD always delivers all signals sent with sigqueue, except when dealing with low memory conditions according to kib (see bug # 212173 comment # 5). In collaboration with: kib PR: 212173 Sponsored by: EMC / Isilon Storage Division Modified: projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c Modified: projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c ============================================================================== --- projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c Sat Sep 3 00:27:41 2016 (r305313) +++ projects/netbsd-tests-update-12/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c Sat Sep 3 00:47:54 2016 (r305314) @@ -151,6 +151,23 @@ sigorder(int *ordered, const int *tosend if (len == 1) return len; +#ifdef __FreeBSD__ + /* + * Don't dedupe signal numbers (bug 212173) + * + * Per kib's comment.. + * + * " + * OTOH, FreeBSD behaviour is to treat all signals as realtime while + * there is no mem shortage and siginfo can be allocated. In + * particular, signals < SIGRTMIN are not collapsed when queued more + * than once. + * " + */ + + return len; +#else + size_t i, j; for (i = 0, j = 0; i < len - 1; i++) { if (ordered[i] >= SIGRTMIN) @@ -164,6 +181,7 @@ sigorder(int *ordered, const int *tosend ordered[i + 1] = ordered[j]; } return i + 1; +#endif } ATF_TC(sigqueue_rt); From owner-svn-src-projects@freebsd.org Sat Sep 3 00:50:22 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C8D5BCE7C4 for ; Sat, 3 Sep 2016 00:50:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 24E4B5E2; Sat, 3 Sep 2016 00:50:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u830oLWI086192; Sat, 3 Sep 2016 00:50:21 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u830oJqG086172; Sat, 3 Sep 2016 00:50:19 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201609030050.u830oJqG086172@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 3 Sep 2016 00:50:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305315 - in projects/netbsd-tests-update-12: . bin/sh/tests/builtins cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zhack cddl/contrib/o... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2016 00:50:22 -0000 Author: ngie Date: Sat Sep 3 00:50:18 2016 New Revision: 305315 URL: https://svnweb.freebsd.org/changeset/base/305315 Log: MFhead @ r305314 Added: projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo1.0 - copied unchanged from r305314, head/bin/sh/tests/builtins/echo1.0 projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo2.0 - copied unchanged from r305314, head/bin/sh/tests/builtins/echo2.0 projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo3.0 - copied unchanged from r305314, head/bin/sh/tests/builtins/echo3.0 projects/netbsd-tests-update-12/lib/libifconfig/ - copied from r305314, head/lib/libifconfig/ projects/netbsd-tests-update-12/share/examples/libifconfig/ - copied from r305314, head/share/examples/libifconfig/ projects/netbsd-tests-update-12/tools/tools/crypto/cryptorun.sh - copied unchanged from r305314, head/tools/tools/crypto/cryptorun.sh Deleted: projects/netbsd-tests-update-12/lib/libifc/ projects/netbsd-tests-update-12/share/examples/libifc/ projects/netbsd-tests-update-12/share/man/man4/digi.4 projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/cxgbei_ulp2_ddp.c projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/cxgbei_ulp2_ddp.h projects/netbsd-tests-update-12/sys/modules/digi/ Modified: projects/netbsd-tests-update-12/Makefile.inc1 projects/netbsd-tests-update-12/ObsoleteFiles.inc projects/netbsd-tests-update-12/bin/sh/tests/builtins/Makefile projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zdb/zdb.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zhack/zhack.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/ztest/ztest.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c projects/netbsd-tests-update-12/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc projects/netbsd-tests-update-12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp projects/netbsd-tests-update-12/lib/Makefile projects/netbsd-tests-update-12/lib/libc/gen/siglist.c projects/netbsd-tests-update-12/lib/libc/stdio/fgetwc.c projects/netbsd-tests-update-12/lib/libc/stdio/fgetwln.c projects/netbsd-tests-update-12/lib/libusb/libusb20.c projects/netbsd-tests-update-12/lib/msun/tests/ctrig_test.c projects/netbsd-tests-update-12/release/doc/en_US.ISO8859-1/hardware/article.xml projects/netbsd-tests-update-12/rescue/rescue/Makefile.depend projects/netbsd-tests-update-12/sbin/dhclient/clparse.c projects/netbsd-tests-update-12/sbin/dhclient/dhclient.c projects/netbsd-tests-update-12/sbin/dhclient/dhcpd.h projects/netbsd-tests-update-12/sbin/dhclient/dispatch.c projects/netbsd-tests-update-12/sbin/dhclient/privsep.c projects/netbsd-tests-update-12/sbin/dhclient/privsep.h projects/netbsd-tests-update-12/share/man/man4/Makefile projects/netbsd-tests-update-12/share/man/man9/pci.9 projects/netbsd-tests-update-12/share/misc/bsd-family-tree projects/netbsd-tests-update-12/share/mk/bsd.crunchgen.mk projects/netbsd-tests-update-12/share/mk/bsd.dep.mk projects/netbsd-tests-update-12/share/mk/bsd.libnames.mk projects/netbsd-tests-update-12/share/mk/src.libnames.mk projects/netbsd-tests-update-12/share/timedef/zh_CN.GB2312.src projects/netbsd-tests-update-12/share/timedef/zh_CN.GBK.src projects/netbsd-tests-update-12/share/timedef/zh_CN.UTF-8.src projects/netbsd-tests-update-12/share/timedef/zh_CN.eucCN.src projects/netbsd-tests-update-12/share/timedef/zh_TW.Big5.src projects/netbsd-tests-update-12/share/timedef/zh_TW.UTF-8.src projects/netbsd-tests-update-12/sys/amd64/amd64/pmap.c projects/netbsd-tests-update-12/sys/arm/allwinner/axp81x.c projects/netbsd-tests-update-12/sys/arm/allwinner/clk/aw_pll.c projects/netbsd-tests-update-12/sys/arm64/arm64/machdep.c projects/netbsd-tests-update-12/sys/arm64/arm64/pmap.c projects/netbsd-tests-update-12/sys/arm64/include/pcpu.h projects/netbsd-tests-update-12/sys/boot/fdt/dts/riscv/rocket.dts projects/netbsd-tests-update-12/sys/boot/fdt/dts/riscv/spike.dts projects/netbsd-tests-update-12/sys/boot/i386/libi386/biosdisk.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/uts/common/sys/sysevent/eventdefs.h projects/netbsd-tests-update-12/sys/conf/files projects/netbsd-tests-update-12/sys/dev/bhnd/cores/pmu/bhnd_pmureg.h projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/cxgbei.c projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/cxgbei.h projects/netbsd-tests-update-12/sys/dev/cxgbe/cxgbei/icl_cxgbei.c projects/netbsd-tests-update-12/sys/dev/cxgbe/offload.h projects/netbsd-tests-update-12/sys/dev/cxgbe/t4_main.c projects/netbsd-tests-update-12/sys/dev/cxgbe/t4_sge.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_rndis.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/hv_rndis_filter.c projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/if_hnreg.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/if_hnvar.h projects/netbsd-tests-update-12/sys/dev/hyperv/netvsc/ndis.h projects/netbsd-tests-update-12/sys/dev/hyperv/utilities/hv_heartbeat.c projects/netbsd-tests-update-12/sys/dev/hyperv/utilities/hv_shutdown.c projects/netbsd-tests-update-12/sys/dev/hyperv/utilities/hv_timesync.c projects/netbsd-tests-update-12/sys/dev/hyperv/utilities/vmbus_icreg.h projects/netbsd-tests-update-12/sys/dev/ioat/ioat.c projects/netbsd-tests-update-12/sys/dev/syscons/syscons.c projects/netbsd-tests-update-12/sys/dev/syscons/syscons.h projects/netbsd-tests-update-12/sys/i386/i386/pmap.c projects/netbsd-tests-update-12/sys/kern/kern_descrip.c projects/netbsd-tests-update-12/sys/kern/kern_sig.c projects/netbsd-tests-update-12/sys/modules/cxgbe/cxgbei/Makefile projects/netbsd-tests-update-12/sys/net/ethernet.h projects/netbsd-tests-update-12/sys/net/rndis.h projects/netbsd-tests-update-12/sys/riscv/riscv/timer.c projects/netbsd-tests-update-12/sys/sys/param.h projects/netbsd-tests-update-12/targets/pseudo/bootstrap-tools/Makefile projects/netbsd-tests-update-12/targets/pseudo/hosttools/Makefile.depend.host projects/netbsd-tests-update-12/tools/bsdbox/Makefile.depend projects/netbsd-tests-update-12/tools/tools/crypto/cryptotest.c projects/netbsd-tests-update-12/tools/tools/locale/tools/cldr2def.pl projects/netbsd-tests-update-12/usr.bin/localedef/collate.c projects/netbsd-tests-update-12/usr.bin/w/w.1 projects/netbsd-tests-update-12/usr.bin/w/w.c projects/netbsd-tests-update-12/usr.sbin/cron/cron/cron.h projects/netbsd-tests-update-12/usr.sbin/cron/crontab/crontab.c projects/netbsd-tests-update-12/usr.sbin/crunch/crunchgen/crunchgen.c projects/netbsd-tests-update-12/usr.sbin/ypldap/Makefile.depend Directory Properties: projects/netbsd-tests-update-12/ (props changed) projects/netbsd-tests-update-12/cddl/ (props changed) projects/netbsd-tests-update-12/cddl/contrib/opensolaris/ (props changed) projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zdb/ (props changed) projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/ (props changed) projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/netbsd-tests-update-12/contrib/llvm/ (props changed) projects/netbsd-tests-update-12/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/netbsd-tests-update-12/Makefile.inc1 ============================================================================== --- projects/netbsd-tests-update-12/Makefile.inc1 Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/Makefile.inc1 Sat Sep 3 00:50:18 2016 (r305315) @@ -1628,8 +1628,10 @@ _crunchide= usr.sbin/crunch/crunchide # r285986 crunchen: use STRIPBIN rather than STRIP # 1100113: Support MK_AUTO_OBJ +# 1200006: META_MODE fixes .if ${BOOTSTRAPPING} < 1100078 || \ - (${MK_AUTO_OBJ} == "yes" && ${BOOTSTRAPPING} < 1100114) + (${MK_AUTO_OBJ} == "yes" && ${BOOTSTRAPPING} < 1100114) || \ + (${MK_META_MODE} == "yes" && ${BOOTSTRAPPING} < 1200006) _crunchgen= usr.sbin/crunch/crunchgen .endif Modified: projects/netbsd-tests-update-12/ObsoleteFiles.inc ============================================================================== --- projects/netbsd-tests-update-12/ObsoleteFiles.inc Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/ObsoleteFiles.inc Sat Sep 3 00:50:18 2016 (r305315) @@ -38,6 +38,8 @@ # xargs -n1 | sort | uniq -d; # done +# 20160901: Remove digi(4) +OLD_FILES+=usr/share/man/man4/digi.4.gz # 20160819: Remove ie(4) OLD_FILES+=usr/share/man/man4/i386/ie.4.gz # 20160819: Remove spic(4) Modified: projects/netbsd-tests-update-12/bin/sh/tests/builtins/Makefile ============================================================================== --- projects/netbsd-tests-update-12/bin/sh/tests/builtins/Makefile Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/bin/sh/tests/builtins/Makefile Sat Sep 3 00:50:18 2016 (r305315) @@ -68,6 +68,9 @@ ${PACKAGE}FILES+= dot1.0 ${PACKAGE}FILES+= dot2.0 ${PACKAGE}FILES+= dot3.0 ${PACKAGE}FILES+= dot4.0 +${PACKAGE}FILES+= echo1.0 +${PACKAGE}FILES+= echo2.0 +${PACKAGE}FILES+= echo3.0 ${PACKAGE}FILES+= eval1.0 ${PACKAGE}FILES+= eval2.0 ${PACKAGE}FILES+= eval3.0 Copied: projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo1.0 (from r305314, head/bin/sh/tests/builtins/echo1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo1.0 Sat Sep 3 00:50:18 2016 (r305315, copy of r305314, head/bin/sh/tests/builtins/echo1.0) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +# Not specified by POSIX. + +[ "`echo -n a b; echo c d; echo e f`" = "a bc d +e f" ] Copied: projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo2.0 (from r305314, head/bin/sh/tests/builtins/echo2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo2.0 Sat Sep 3 00:50:18 2016 (r305315, copy of r305314, head/bin/sh/tests/builtins/echo2.0) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +# Not specified by POSIX. + +a=`echo -e '\a\b\e\f\n\r\t\v\\\\\0041\c'; echo .` +b=`printf '\a\b\033\f\n\r\t\v\\\\!.'` +[ "$a" = "$b" ] Copied: projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo3.0 (from r305314, head/bin/sh/tests/builtins/echo3.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-update-12/bin/sh/tests/builtins/echo3.0 Sat Sep 3 00:50:18 2016 (r305315, copy of r305314, head/bin/sh/tests/builtins/echo3.0) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +# Not specified by POSIX. + +[ "`echo -e 'a\cb' c; echo d`" = "ad" ] Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sat Sep 3 00:50:18 2016 (r305315) @@ -60,7 +60,6 @@ #include #include #include -#undef ZFS_MAXNAMELEN #undef verify #include @@ -1945,7 +1944,7 @@ dump_dir(objset_t *os) uint64_t refdbytes, usedobjs, scratch; char numbuf[32]; char blkbuf[BP_SPRINTF_LEN + 20]; - char osname[MAXNAMELEN]; + char osname[ZFS_MAX_DATASET_NAME_LEN]; char *type = "UNKNOWN"; int verbosity = dump_opt['d']; int print_header = 1; @@ -3482,7 +3481,7 @@ find_zpool(char **target, nvlist_t **con nvlist_t *match = NULL; char *name = NULL; char *sepp = NULL; - char sep; + char sep = '\0'; int count = 0; importargs_t args = { 0 }; Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c Sat Sep 3 00:50:18 2016 (r305315) @@ -21,8 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012 Pawel Jakub Dawidek . - * All rights reserved. + * Copyright (c) 2012 Pawel Jakub Dawidek. All rights reserved. * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2013 by Delphix. All rights reserved. */ @@ -320,8 +319,8 @@ zfs_sort(const void *larg, const void *r } else if (psc->sc_prop == ZFS_PROP_NAME) { lvalid = rvalid = B_TRUE; - (void) strlcpy(lbuf, zfs_get_name(l), sizeof(lbuf)); - (void) strlcpy(rbuf, zfs_get_name(r), sizeof(rbuf)); + (void) strlcpy(lbuf, zfs_get_name(l), sizeof (lbuf)); + (void) strlcpy(rbuf, zfs_get_name(r), sizeof (rbuf)); lstr = lbuf; rstr = rbuf; Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h Sat Sep 3 00:50:18 2016 (r305315) @@ -22,6 +22,7 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved. * Copyright 2013 Nexenta Systems, Inc. All rights reserved. */ Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Sat Sep 3 00:50:18 2016 (r305315) @@ -24,13 +24,12 @@ * Copyright (c) 2011, 2015 by Delphix. All rights reserved. * Copyright 2012 Milan Jurik. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. - * Copyright (c) 2011-2012 Pawel Jakub Dawidek . - * All rights reserved. + * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved. * Copyright (c) 2012 Martin Matuska . All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. - * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] * Copyright 2016 Igor Kozhukhov . + * Copyright 2016 Nexenta Systems, Inc. */ #include @@ -1511,7 +1510,7 @@ get_callback(zfs_handle_t *zhp, void *da char buf[ZFS_MAXPROPLEN]; char rbuf[ZFS_MAXPROPLEN]; zprop_source_t sourcetype; - char source[ZFS_MAXNAMELEN]; + char source[ZFS_MAX_DATASET_NAME_LEN]; zprop_get_cbdata_t *cbp = data; nvlist_t *user_props = zfs_get_user_props(zhp); zprop_list_t *pl = cbp->cb_proplist; @@ -1991,7 +1990,7 @@ typedef struct upgrade_cbdata { uint64_t cb_version; boolean_t cb_newer; boolean_t cb_foundone; - char cb_lastfs[ZFS_MAXNAMELEN]; + char cb_lastfs[ZFS_MAX_DATASET_NAME_LEN]; } upgrade_cbdata_t; static int @@ -2437,7 +2436,7 @@ userspace_cb(void *arg, const char *doma if (domain != NULL && domain[0] != '\0') { /* SMB */ - char sid[ZFS_MAXNAMELEN + 32]; + char sid[MAXNAMELEN + 32]; uid_t id; #ifdef illumos int err; @@ -2574,7 +2573,7 @@ print_us_node(boolean_t scripted, boolea size_t *width, us_node_t *node) { nvlist_t *nvl = node->usn_nvl; - char valstr[ZFS_MAXNAMELEN]; + char valstr[MAXNAMELEN]; boolean_t first = B_TRUE; int cfield = 0; int field; @@ -3009,7 +3008,7 @@ print_dataset(zfs_handle_t *zhp, list_cb if (pl->pl_prop == ZFS_PROP_NAME) { (void) strlcpy(property, zfs_get_name(zhp), - sizeof(property)); + sizeof (property)); propstr = property; right_justify = zfs_prop_align_right(pl->pl_prop); } else if (pl->pl_prop != ZPROP_INVAL) { @@ -3473,7 +3472,7 @@ zfs_do_rollback(int argc, char **argv) boolean_t force = B_FALSE; rollback_cbdata_t cb = { 0 }; zfs_handle_t *zhp, *snap; - char parentname[ZFS_MAXNAMELEN]; + char parentname[ZFS_MAX_DATASET_NAME_LEN]; char *delim; /* check options */ @@ -3873,7 +3872,7 @@ zfs_do_send(int argc, char **argv) */ if (strchr(argv[0], '@') == NULL || (fromname && strchr(fromname, '#') != NULL)) { - char frombuf[ZFS_MAXNAMELEN]; + char frombuf[ZFS_MAX_DATASET_NAME_LEN]; enum lzc_send_flags lzc_flags = 0; if (flags.replicate || flags.doall || flags.props || @@ -3925,7 +3924,7 @@ zfs_do_send(int argc, char **argv) * case if they specify the origin. */ if (fromname && (cp = strchr(fromname, '@')) != NULL) { - char origin[ZFS_MAXNAMELEN]; + char origin[ZFS_MAX_DATASET_NAME_LEN]; zprop_source_t src; (void) zfs_prop_get(zhp, ZFS_PROP_ORIGIN, @@ -4059,7 +4058,7 @@ zfs_do_receive(int argc, char **argv) usage(B_FALSE); } - char namebuf[ZFS_MAXNAMELEN]; + char namebuf[ZFS_MAX_DATASET_NAME_LEN]; (void) snprintf(namebuf, sizeof (namebuf), "%s/%%recv", argv[0]); @@ -4917,7 +4916,7 @@ store_allow_perm(zfs_deleg_who_type_t ty { int i; char ld[2] = { '\0', '\0' }; - char who_buf[ZFS_MAXNAMELEN+32]; + char who_buf[MAXNAMELEN + 32]; char base_type = '\0'; char set_type = '\0'; nvlist_t *base_nvl = NULL; @@ -5285,7 +5284,7 @@ static void print_fs_perms(fs_perm_set_t *fspset) { fs_perm_node_t *node = NULL; - char buf[ZFS_MAXNAMELEN+32]; + char buf[MAXNAMELEN + 32]; const char *dsname = buf; for (node = uu_list_first(fspset->fsps_list); node != NULL; @@ -5294,7 +5293,7 @@ print_fs_perms(fs_perm_set_t *fspset) uu_avl_t *uge_avl = node->fspn_fsperm.fsp_uge_avl; int left = 0; - (void) snprintf(buf, ZFS_MAXNAMELEN+32, + (void) snprintf(buf, sizeof (buf), gettext("---- Permissions on %s "), node->fspn_fsperm.fsp_name); (void) printf(dsname); @@ -5491,7 +5490,7 @@ zfs_do_hold_rele_impl(int argc, char **a for (i = 0; i < argc; ++i) { zfs_handle_t *zhp; - char parent[ZFS_MAXNAMELEN]; + char parent[ZFS_MAX_DATASET_NAME_LEN]; const char *delim; char *path = argv[i]; @@ -5624,7 +5623,7 @@ holds_callback(zfs_handle_t *zhp, void * nvlist_t *nvl = NULL; nvpair_t *nvp = NULL; const char *zname = zfs_get_name(zhp); - size_t znamelen = strnlen(zname, ZFS_MAXNAMELEN); + size_t znamelen = strlen(zname); if (cbp->cb_recursive && cbp->cb_snapname != NULL) { const char *snapname; @@ -5645,7 +5644,7 @@ holds_callback(zfs_handle_t *zhp, void * while ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL) { const char *tag = nvpair_name(nvp); - size_t taglen = strnlen(tag, MAXNAMELEN); + size_t taglen = strlen(tag); if (taglen > cbp->cb_max_taglen) cbp->cb_max_taglen = taglen; } @@ -6484,6 +6483,15 @@ unshare_unmount(int op, int argc, char * continue; } + /* + * Ignore datasets that are excluded/restricted by + * parent pool name. + */ + if (zpool_skip_pool(zfs_get_pool_name(zhp))) { + zfs_close(zhp); + continue; + } + switch (op) { case OP_SHARE: verify(zfs_prop_get(zhp, ZFS_PROP_SHARENFS, @@ -6973,7 +6981,7 @@ zfs_do_diff(int argc, char **argv) static int zfs_do_bookmark(int argc, char **argv) { - char snapname[ZFS_MAXNAMELEN]; + char snapname[ZFS_MAX_DATASET_NAME_LEN]; zfs_handle_t *zhp; nvlist_t *nvl; int ret = 0; Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zhack/zhack.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zhack/zhack.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zhack/zhack.c Sat Sep 3 00:50:18 2016 (r305315) @@ -48,7 +48,6 @@ #include #include #include -#undef ZFS_MAXNAMELEN #undef verify #include Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sat Sep 3 00:50:18 2016 (r305315) @@ -4540,7 +4540,7 @@ zpool_do_status(int argc, char **argv) typedef struct upgrade_cbdata { boolean_t cb_first; boolean_t cb_unavail; - char cb_poolname[ZPOOL_MAXNAMELEN]; + char cb_poolname[ZFS_MAX_DATASET_NAME_LEN]; int cb_argc; uint64_t cb_version; char **cb_argv; Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c Sat Sep 3 00:50:18 2016 (r305315) @@ -21,7 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright (c) 2013, 2015 by Delphix. All rights reserved. * Copyright 2016 Igor Kozhukhov . */ @@ -597,7 +597,6 @@ get_replication(nvlist_t *nvroot, boolea verify(nvlist_lookup_nvlist_array(nvroot, ZPOOL_CONFIG_CHILDREN, &top, &toplevels) == 0); - lastrep.zprl_type = NULL; for (t = 0; t < toplevels; t++) { uint64_t is_log = B_FALSE; Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/ztest/ztest.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/ztest/ztest.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/ztest/ztest.c Sat Sep 3 00:50:18 2016 (r305315) @@ -141,8 +141,8 @@ typedef struct ztest_shared_hdr { static ztest_shared_hdr_t *ztest_shared_hdr; typedef struct ztest_shared_opts { - char zo_pool[MAXNAMELEN]; - char zo_dir[MAXNAMELEN]; + char zo_pool[ZFS_MAX_DATASET_NAME_LEN]; + char zo_dir[ZFS_MAX_DATASET_NAME_LEN]; char zo_alt_ztest[MAXNAMELEN]; char zo_alt_libpath[MAXNAMELEN]; uint64_t zo_vdevs; @@ -268,7 +268,7 @@ typedef struct ztest_od { uint64_t od_crblocksize; uint64_t od_gen; uint64_t od_crgen; - char od_name[MAXNAMELEN]; + char od_name[ZFS_MAX_DATASET_NAME_LEN]; } ztest_od_t; /* @@ -280,7 +280,7 @@ typedef struct ztest_ds { rwlock_t zd_zilog_lock; zilog_t *zd_zilog; ztest_od_t *zd_od; /* debugging aid */ - char zd_name[MAXNAMELEN]; + char zd_name[ZFS_MAX_DATASET_NAME_LEN]; mutex_t zd_dirobj_lock; rll_t zd_object_lock[ZTEST_OBJECT_LOCKS]; rll_t zd_range_lock[ZTEST_RANGE_LOCKS]; @@ -3227,7 +3227,7 @@ ztest_objset_destroy_cb(const char *name static boolean_t ztest_snapshot_create(char *osname, uint64_t id) { - char snapname[MAXNAMELEN]; + char snapname[ZFS_MAX_DATASET_NAME_LEN]; int error; (void) snprintf(snapname, sizeof (snapname), "%llu", (u_longlong_t)id); @@ -3247,10 +3247,10 @@ ztest_snapshot_create(char *osname, uint static boolean_t ztest_snapshot_destroy(char *osname, uint64_t id) { - char snapname[MAXNAMELEN]; + char snapname[ZFS_MAX_DATASET_NAME_LEN]; int error; - (void) snprintf(snapname, MAXNAMELEN, "%s@%llu", osname, + (void) snprintf(snapname, sizeof (snapname), "%s@%llu", osname, (u_longlong_t)id); error = dsl_destroy_snapshot(snapname, B_FALSE); @@ -3267,12 +3267,12 @@ ztest_dmu_objset_create_destroy(ztest_ds int iters; int error; objset_t *os, *os2; - char name[MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; zilog_t *zilog; (void) rw_rdlock(&ztest_name_lock); - (void) snprintf(name, MAXNAMELEN, "%s/temp_%llu", + (void) snprintf(name, sizeof (name), "%s/temp_%llu", ztest_opts.zo_pool, (u_longlong_t)id); /* @@ -3378,18 +3378,23 @@ ztest_dmu_snapshot_create_destroy(ztest_ void ztest_dsl_dataset_cleanup(char *osname, uint64_t id) { - char snap1name[MAXNAMELEN]; - char clone1name[MAXNAMELEN]; - char snap2name[MAXNAMELEN]; - char clone2name[MAXNAMELEN]; - char snap3name[MAXNAMELEN]; + char snap1name[ZFS_MAX_DATASET_NAME_LEN]; + char clone1name[ZFS_MAX_DATASET_NAME_LEN]; + char snap2name[ZFS_MAX_DATASET_NAME_LEN]; + char clone2name[ZFS_MAX_DATASET_NAME_LEN]; + char snap3name[ZFS_MAX_DATASET_NAME_LEN]; int error; - (void) snprintf(snap1name, MAXNAMELEN, "%s@s1_%llu", osname, id); - (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id); - (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu", clone1name, id); - (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id); - (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu", clone1name, id); + (void) snprintf(snap1name, sizeof (snap1name), + "%s@s1_%llu", osname, id); + (void) snprintf(clone1name, sizeof (clone1name), + "%s/c1_%llu", osname, id); + (void) snprintf(snap2name, sizeof (snap2name), + "%s@s2_%llu", clone1name, id); + (void) snprintf(clone2name, sizeof (clone2name), + "%s/c2_%llu", osname, id); + (void) snprintf(snap3name, sizeof (snap3name), + "%s@s3_%llu", clone1name, id); error = dsl_destroy_head(clone2name); if (error && error != ENOENT) @@ -3415,11 +3420,11 @@ void ztest_dsl_dataset_promote_busy(ztest_ds_t *zd, uint64_t id) { objset_t *os; - char snap1name[MAXNAMELEN]; - char clone1name[MAXNAMELEN]; - char snap2name[MAXNAMELEN]; - char clone2name[MAXNAMELEN]; - char snap3name[MAXNAMELEN]; + char snap1name[ZFS_MAX_DATASET_NAME_LEN]; + char clone1name[ZFS_MAX_DATASET_NAME_LEN]; + char snap2name[ZFS_MAX_DATASET_NAME_LEN]; + char clone2name[ZFS_MAX_DATASET_NAME_LEN]; + char snap3name[ZFS_MAX_DATASET_NAME_LEN]; char *osname = zd->zd_name; int error; @@ -3427,11 +3432,16 @@ ztest_dsl_dataset_promote_busy(ztest_ds_ ztest_dsl_dataset_cleanup(osname, id); - (void) snprintf(snap1name, MAXNAMELEN, "%s@s1_%llu", osname, id); - (void) snprintf(clone1name, MAXNAMELEN, "%s/c1_%llu", osname, id); - (void) snprintf(snap2name, MAXNAMELEN, "%s@s2_%llu", clone1name, id); - (void) snprintf(clone2name, MAXNAMELEN, "%s/c2_%llu", osname, id); - (void) snprintf(snap3name, MAXNAMELEN, "%s@s3_%llu", clone1name, id); + (void) snprintf(snap1name, sizeof (snap1name), + "%s@s1_%llu", osname, id); + (void) snprintf(clone1name, sizeof (clone1name), + "%s/c1_%llu", osname, id); + (void) snprintf(snap2name, sizeof (snap2name), + "%s@s2_%llu", clone1name, id); + (void) snprintf(clone2name, sizeof (clone2name), + "%s/c2_%llu", osname, id); + (void) snprintf(snap3name, sizeof (snap3name), + "%s@s3_%llu", clone1name, id); error = dmu_objset_snapshot_one(osname, strchr(snap1name, '@') + 1); if (error && error != EEXIST) { @@ -4249,7 +4259,7 @@ ztest_fzap(ztest_ds_t *zd, uint64_t id) * 2050 entries we should see ptrtbl growth and leaf-block split. */ for (int i = 0; i < 2050; i++) { - char name[MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; uint64_t value = i; dmu_tx_t *tx; int error; @@ -4654,7 +4664,7 @@ ztest_dmu_snapshot_hold(ztest_ds_t *zd, char fullname[100]; char clonename[100]; char tag[100]; - char osname[MAXNAMELEN]; + char osname[ZFS_MAX_DATASET_NAME_LEN]; nvlist_t *holds; (void) rw_rdlock(&ztest_name_lock); @@ -5450,13 +5460,13 @@ ztest_thread(void *arg) static void ztest_dataset_name(char *dsname, char *pool, int d) { - (void) snprintf(dsname, MAXNAMELEN, "%s/ds_%d", pool, d); + (void) snprintf(dsname, ZFS_MAX_DATASET_NAME_LEN, "%s/ds_%d", pool, d); } static void ztest_dataset_destroy(int d) { - char name[MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; ztest_dataset_name(name, ztest_opts.zo_pool, d); @@ -5505,7 +5515,7 @@ ztest_dataset_open(int d) uint64_t committed_seq = ZTEST_GET_SHARED_DS(d)->zd_seq; objset_t *os; zilog_t *zilog; - char name[MAXNAMELEN]; + char name[ZFS_MAX_DATASET_NAME_LEN]; int error; ztest_dataset_name(name, ztest_opts.zo_pool, d); @@ -5728,8 +5738,8 @@ ztest_run(ztest_shared_t *zs) * different name. */ if (ztest_random(2) == 0) { - char name[MAXNAMELEN]; - (void) snprintf(name, MAXNAMELEN, "%s_import", + char name[ZFS_MAX_DATASET_NAME_LEN]; + (void) snprintf(name, sizeof (name), "%s_import", ztest_opts.zo_pool); ztest_spa_import_export(ztest_opts.zo_pool, name); ztest_spa_import_export(name, ztest_opts.zo_pool); @@ -6297,7 +6307,7 @@ main(int argc, char **argv) if (spa_open(ztest_opts.zo_pool, &spa, FTAG) == 0) { spa_close(spa, FTAG); } else { - char tmpname[MAXNAMELEN]; + char tmpname[ZFS_MAX_DATASET_NAME_LEN]; kernel_fini(); kernel_init(FREAD | FWRITE); (void) snprintf(tmpname, sizeof (tmpname), "%s_tmp", Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c Sat Sep 3 00:50:18 2016 (r305315) @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include "libnvpair.h" @@ -1228,7 +1228,8 @@ nvpair_value_match_regex(nvpair_t *nvp, break; } case DATA_TYPE_BOOLEAN_VALUE: { - boolean_t val, val_arg; + int32_t val_arg; + boolean_t val; /* scanf boolean_t from value and check for match */ sr = sscanf(value, "%"SCNi32, &val_arg); @@ -1239,7 +1240,8 @@ nvpair_value_match_regex(nvpair_t *nvp, break; } case DATA_TYPE_BOOLEAN_ARRAY: { - boolean_t *val_array, val_arg; + boolean_t *val_array; + int32_t val_arg; /* check indexed value of array for match */ sr = sscanf(value, "%"SCNi32, &val_arg); Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Sat Sep 3 00:50:18 2016 (r305315) @@ -21,14 +21,13 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 Pawel Jakub Dawidek . - * All rights reserved. + * Copyright (c) 2011 Pawel Jakub Dawidek. All rights reserved. * Copyright (c) 2011, 2015 by Delphix. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. * Copyright (c) 2012 Martin Matuska . All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. - * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] + * Copyright 2016 Nexenta Systems, Inc. */ #ifndef _LIBZFS_H @@ -52,8 +51,6 @@ extern "C" { /* * Miscellaneous ZFS constants */ -#define ZFS_MAXNAMELEN MAXNAMELEN -#define ZPOOL_MAXNAMELEN MAXNAMELEN #define ZFS_MAXPROPLEN MAXPATHLEN #define ZPOOL_MAXPROPLEN MAXPATHLEN @@ -222,6 +219,7 @@ extern void zpool_free_handles(libzfs_ha */ typedef int (*zpool_iter_f)(zpool_handle_t *, void *); extern int zpool_iter(libzfs_handle_t *, zpool_iter_f, void *); +extern boolean_t zpool_skip_pool(const char *); /* * Functions to create and destroy pools @@ -412,6 +410,7 @@ extern void zfs_close(zfs_handle_t *); extern zfs_type_t zfs_get_type(const zfs_handle_t *); extern const char *zfs_get_name(const zfs_handle_t *); extern zpool_handle_t *zfs_get_pool_handle(const zfs_handle_t *); +extern const char *zfs_get_pool_name(const zfs_handle_t *); /* * Property management functions. Some functions are shared with the kernel, Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c Sat Sep 3 00:50:18 2016 (r305315) @@ -24,9 +24,10 @@ * Use is subject to license terms. * * Portions Copyright 2007 Ramprakash Jelari - * * Copyright (c) 2011 Pawel Jakub Dawidek . * All rights reserved. + * Copyright (c) 2014, 2015 by Delphix. All rights reserved. + * Copyright 2016 Igor Kozhukhov */ #include @@ -136,6 +137,9 @@ changelist_prefix(prop_changelist_t *clp case ZFS_PROP_SHARESMB: (void) zfs_unshare_smb(cn->cn_handle, NULL); break; + + default: + break; } } } @@ -293,7 +297,7 @@ void changelist_rename(prop_changelist_t *clp, const char *src, const char *dst) { prop_changenode_t *cn; - char newname[ZFS_MAXNAMELEN]; + char newname[ZFS_MAX_DATASET_NAME_LEN]; for (cn = uu_list_first(clp->cl_list); cn != NULL; cn = uu_list_next(clp->cl_list, cn)) { Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c Sat Sep 3 00:50:18 2016 (r305315) @@ -27,6 +27,7 @@ /* * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright (c) 2015 by Syneto S.R.L. All rights reserved. + * Copyright 2016 Nexenta Systems, Inc. */ /* @@ -338,33 +339,47 @@ zpool_refresh_stats(zpool_handle_t *zhp, } /* - * If the __ZFS_POOL_RESTRICT environment variable is set we only iterate over - * pools it lists. + * The following environment variables are undocumented + * and should be used for testing purposes only: * - * This is an undocumented feature for use during testing only. + * __ZFS_POOL_EXCLUDE - don't iterate over the pools it lists + * __ZFS_POOL_RESTRICT - iterate only over the pools it lists * * This function returns B_TRUE if the pool should be skipped * during iteration. */ -static boolean_t -check_restricted(const char *poolname) +boolean_t +zpool_skip_pool(const char *poolname) { static boolean_t initialized = B_FALSE; - static char *restricted = NULL; + static const char *exclude = NULL; + static const char *restricted = NULL; const char *cur, *end; - int len, namelen; + int len; + int namelen = strlen(poolname); if (!initialized) { initialized = B_TRUE; + exclude = getenv("__ZFS_POOL_EXCLUDE"); restricted = getenv("__ZFS_POOL_RESTRICT"); } + if (exclude != NULL) { + cur = exclude; + do { + end = strchr(cur, ' '); + len = (NULL == end) ? strlen(cur) : (end - cur); + if (len == namelen && 0 == strncmp(cur, poolname, len)) + return (B_TRUE); + cur += (len + 1); + } while (NULL != end); + } + if (NULL == restricted) return (B_FALSE); cur = restricted; - namelen = strlen(poolname); do { end = strchr(cur, ' '); len = (NULL == end) ? strlen(cur) : (end - cur); @@ -402,7 +417,7 @@ zpool_iter(libzfs_handle_t *hdl, zpool_i for (cn = uu_avl_first(hdl->libzfs_ns_avl); cn != NULL; cn = uu_avl_next(hdl->libzfs_ns_avl, cn)) { - if (check_restricted(cn->cn_name)) + if (zpool_skip_pool(cn->cn_name)) continue; if (zpool_open_silent(hdl, cn->cn_name, &zhp) != 0) { @@ -440,7 +455,7 @@ zfs_iter_root(libzfs_handle_t *hdl, zfs_ for (cn = uu_avl_first(hdl->libzfs_ns_avl); cn != NULL; cn = uu_avl_next(hdl->libzfs_ns_avl, cn)) { - if (check_restricted(cn->cn_name)) + if (zpool_skip_pool(cn->cn_name)) continue; if ((zhp = make_dataset_handle(hdl, cn->cn_name)) == NULL) Modified: projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Sat Sep 3 00:47:54 2016 (r305314) +++ projects/netbsd-tests-update-12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Sat Sep 3 00:50:18 2016 (r305315) @@ -24,12 +24,12 @@ * Copyright (c) 2013, Joyent, Inc. All rights reserved. * Copyright (c) 2011, 2015 by Delphix. All rights reserved. * Copyright (c) 2012 DEY Storage Systems, Inc. All rights reserved. - * Copyright (c) 2011-2012 Pawel Jakub Dawidek . - * All rights reserved. - * Copyright (c) 2012 Martin Matuska . All rights reserved. + * Copyright (c) 2011-2012 Pawel Jakub Dawidek. All rights reserved. + * Copyright (c) 2013 Martin Matuska. All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. - * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2014 Integros [integros.com] + * Copyright 2016 Nexenta Systems, Inc. + * Copyright 2016 Igor Kozhukhov */ #include @@ -79,55 +79,18 @@ zfs_type_to_name(zfs_type_t type) return (dgettext(TEXT_DOMAIN, "snapshot")); case ZFS_TYPE_VOLUME: return (dgettext(TEXT_DOMAIN, "volume")); + case ZFS_TYPE_POOL: + return (dgettext(TEXT_DOMAIN, "pool")); + case ZFS_TYPE_BOOKMARK: + return (dgettext(TEXT_DOMAIN, "bookmark")); + default: + assert(!"unhandled zfs_type_t"); } return (NULL); } /* - * Given a path and mask of ZFS types, return a string describing this dataset. - * This is used when we fail to open a dataset and we cannot get an exact type. - * We guess what the type would have been based on the path and the mask of - * acceptable types. - */ -static const char * -path_to_str(const char *path, int types) -{ - /* - * When given a single type, always report the exact type. - */ - if (types == ZFS_TYPE_SNAPSHOT) - return (dgettext(TEXT_DOMAIN, "snapshot")); - if (types == ZFS_TYPE_FILESYSTEM) - return (dgettext(TEXT_DOMAIN, "filesystem")); - if (types == ZFS_TYPE_VOLUME) - return (dgettext(TEXT_DOMAIN, "volume")); - - /* - * The user is requesting more than one type of dataset. If this is the - * case, consult the path itself. If we're looking for a snapshot, and - * a '@' is found, then report it as "snapshot". Otherwise, remove the - * snapshot attribute and try again. - */ - if (types & ZFS_TYPE_SNAPSHOT) { - if (strchr(path, '@') != NULL) - return (dgettext(TEXT_DOMAIN, "snapshot")); - return (path_to_str(path, types & ~ZFS_TYPE_SNAPSHOT)); - } - - /* - * The user has requested either filesystems or volumes. - * We have no way of knowing a priori what type this would be, so always - * report it as "filesystem" or "volume", our two primitive types. - */ - if (types & ZFS_TYPE_FILESYSTEM) - return (dgettext(TEXT_DOMAIN, "filesystem")); - - assert(types & ZFS_TYPE_VOLUME); - return (dgettext(TEXT_DOMAIN, "volume")); -} - -/* * Validate a ZFS path. This is used even before trying to open the dataset, to * provide a more meaningful error message. We call zfs_error_aux() to * explain exactly why the name was not valid. @@ -188,6 +151,11 @@ zfs_validate_name(libzfs_handle_t *hdl, zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "reserved disk name")); break; + + default: + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "(%d) not defined"), why); + break; } } @@ -586,7 +554,7 @@ zfs_bookmark_exists(const char *path) { nvlist_t *bmarks; nvlist_t *props; - char fsname[ZFS_MAXNAMELEN]; + char fsname[ZFS_MAX_DATASET_NAME_LEN]; char *bmark_name; char *pound; int err; @@ -770,7 +738,8 @@ libzfs_mnttab_fini(libzfs_handle_t *hdl) void *cookie = NULL; mnttab_node_t *mtn; - while (mtn = avl_destroy_nodes(&hdl->libzfs_mnttab_cache, &cookie)) { + while ((mtn = avl_destroy_nodes(&hdl->libzfs_mnttab_cache, &cookie)) + != NULL) { free(mtn->mtn_mt.mnt_special); free(mtn->mtn_mt.mnt_mountp); free(mtn->mtn_mt.mnt_fstype); @@ -842,7 +811,8 @@ libzfs_mnttab_remove(libzfs_handle_t *hd mnttab_node_t *ret; find.mtn_mt.mnt_special = (char *)fsname; - if (ret = avl_find(&hdl->libzfs_mnttab_cache, (void *)&find, NULL)) { + if ((ret = avl_find(&hdl->libzfs_mnttab_cache, (void *)&find, NULL)) + != NULL) { avl_remove(&hdl->libzfs_mnttab_cache, ret); free(ret->mtn_mt.mnt_special); free(ret->mtn_mt.mnt_mountp); @@ -1194,6 +1164,13 @@ badlabel: "component of '%s' is too long"), propname); break; + + default: + zfs_error_aux(hdl, + dgettext(TEXT_DOMAIN, + "(%d) not defined"), + why); + break; } (void) zfs_error(hdl, EZFS_BADPROP, errbuf); goto error; @@ -1312,12 +1289,17 @@ badlabel: } break; + case ZFS_PROP_UTF8ONLY: chosen_utf = (int)intval; break; + case ZFS_PROP_NORMALIZE: chosen_normal = (int)intval; break; + + default: + break; } /* @@ -1366,6 +1348,9 @@ badlabel: goto error; } break; + + default: + break; } } } @@ -1585,7 +1570,7 @@ zfs_prop_set_list(zfs_handle_t *zhp, nvl libzfs_handle_t *hdl = zhp->zfs_hdl; nvlist_t *nvl; int nvl_len; - int added_resv; + int added_resv = 0; (void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN, "cannot set property for '%s'"), @@ -1975,6 +1960,9 @@ get_numeric_property(zfs_handle_t *zhp, mntopt_on = MNTOPT_NBMAND; mntopt_off = MNTOPT_NONBMAND; break; + + default: + break; } /* @@ -2193,7 +2181,7 @@ struct get_clones_arg { uint64_t numclones; nvlist_t *value; const char *origin; - char buf[ZFS_MAXNAMELEN]; + char buf[ZFS_MAX_DATASET_NAME_LEN]; }; int @@ -2248,7 +2236,7 @@ zfs_get_clones_nvl(zfs_handle_t *zhp) if (gca.numclones != 0) { zfs_handle_t *root; - char pool[ZFS_MAXNAMELEN]; + char pool[ZFS_MAX_DATASET_NAME_LEN]; char *cp = pool; /* get the pool name */ @@ -2963,6 +2951,15 @@ zfs_get_name(const zfs_handle_t *zhp) } /* + * Returns the name of the parent pool for the given zfs handle. + */ +const char * +zfs_get_pool_name(const zfs_handle_t *zhp) +{ + return (zhp->zpool_hdl->zpool_name); +} + +/* * Returns the type of the given zfs handle. */ zfs_type_t @@ -3024,7 +3021,7 @@ check_parents(libzfs_handle_t *hdl, cons boolean_t accept_ancestor, int *prefixlen) { zfs_cmd_t zc = { 0 }; - char parent[ZFS_MAXNAMELEN]; + char parent[ZFS_MAX_DATASET_NAME_LEN]; char *slash; zfs_handle_t *zhp; char errbuf[1024]; @@ -3152,7 +3149,7 @@ create_parents(libzfs_handle_t *hdl, cha * up to the prefixlen-long one. */ for (cp = target + prefixlen + 1; - cp = strchr(cp, '/'); *cp = '/', cp++) { + (cp = strchr(cp, '/')) != NULL; *cp = '/', cp++) { *cp = '\0'; @@ -3204,7 +3201,7 @@ zfs_create_ancestors(libzfs_handle_t *hd { int prefix; char *path_copy; - int rc; + int rc = 0; if (check_parents(hdl, path, NULL, B_TRUE, &prefix) != 0) return (-1); @@ -3263,7 +3260,7 @@ zfs_create(libzfs_handle_t *hdl, const c ost = LZC_DATSET_TYPE_ZFS; /* open zpool handle for prop validation */ - char pool_path[MAXNAMELEN]; + char pool_path[ZFS_MAX_DATASET_NAME_LEN]; (void) strlcpy(pool_path, path, sizeof (pool_path)); /* truncate pool_path at first slash */ @@ -3332,7 +3329,7 @@ zfs_create(libzfs_handle_t *hdl, const c /* check for failure */ if (ret != 0) { - char parent[ZFS_MAXNAMELEN]; + char parent[ZFS_MAX_DATASET_NAME_LEN]; (void) parent_name(path, parent, sizeof (parent)); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sat Sep 3 02:51:47 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7B62BCC0B7 for ; Sat, 3 Sep 2016 02:51:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8931D7BB; Sat, 3 Sep 2016 02:51:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u832pk9U033630; Sat, 3 Sep 2016 02:51:46 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u832pkvV033629; Sat, 3 Sep 2016 02:51:46 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201609030251.u832pkvV033629@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 3 Sep 2016 02:51:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305318 - in projects/netbsd-tests-update-12: . contrib/top lib/libc/locale usr.sbin/bhyve X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2016 02:51:47 -0000 Author: ngie Date: Sat Sep 3 02:51:46 2016 New Revision: 305318 URL: https://svnweb.freebsd.org/changeset/base/305318 Log: Handle missed mergeinfo by merging r305031 (the missing revision according to svn merge) Modified: Directory Properties: projects/netbsd-tests-update-12/MAINTAINERS (props changed) projects/netbsd-tests-update-12/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/ (props changed) projects/netbsd-tests-update-12/contrib/amd/ (props changed) projects/netbsd-tests-update-12/contrib/apr/ (props changed) projects/netbsd-tests-update-12/contrib/apr-util/ (props changed) projects/netbsd-tests-update-12/contrib/atf/ (props changed) projects/netbsd-tests-update-12/contrib/binutils/ (props changed) projects/netbsd-tests-update-12/contrib/bmake/ (props changed) projects/netbsd-tests-update-12/contrib/byacc/ (props changed) projects/netbsd-tests-update-12/contrib/bzip2/ (props changed) projects/netbsd-tests-update-12/contrib/com_err/ (props changed) projects/netbsd-tests-update-12/contrib/compiler-rt/ (props changed) projects/netbsd-tests-update-12/contrib/dialog/ (props changed) projects/netbsd-tests-update-12/contrib/dma/ (props changed) projects/netbsd-tests-update-12/contrib/dtc/ (props changed) projects/netbsd-tests-update-12/contrib/ee/ (props changed) projects/netbsd-tests-update-12/contrib/elftoolchain/ar/ (props changed) projects/netbsd-tests-update-12/contrib/elftoolchain/brandelf/ (props changed) projects/netbsd-tests-update-12/contrib/expat/ (props changed) projects/netbsd-tests-update-12/contrib/file/ (props changed) projects/netbsd-tests-update-12/contrib/gcclibs/libgomp/ (props changed) projects/netbsd-tests-update-12/contrib/gdb/ (props changed) projects/netbsd-tests-update-12/contrib/gdtoa/ (props changed) projects/netbsd-tests-update-12/contrib/groff/ (props changed) projects/netbsd-tests-update-12/contrib/ipfilter/ (props changed) projects/netbsd-tests-update-12/contrib/ldns/ (props changed) projects/netbsd-tests-update-12/contrib/ldns-host/ (props changed) projects/netbsd-tests-update-12/contrib/less/ (props changed) projects/netbsd-tests-update-12/contrib/libarchive/ (props changed) projects/netbsd-tests-update-12/contrib/libarchive/cpio/ (props changed) projects/netbsd-tests-update-12/contrib/libarchive/libarchive/ (props changed) projects/netbsd-tests-update-12/contrib/libarchive/libarchive_fe/ (props changed) projects/netbsd-tests-update-12/contrib/libarchive/tar/ (props changed) projects/netbsd-tests-update-12/contrib/libc++/ (props changed) projects/netbsd-tests-update-12/contrib/libc-vis/ (props changed) projects/netbsd-tests-update-12/contrib/libcxxrt/ (props changed) projects/netbsd-tests-update-12/contrib/libexecinfo/ (props changed) projects/netbsd-tests-update-12/contrib/libpcap/ (props changed) projects/netbsd-tests-update-12/contrib/libstdc++/ (props changed) projects/netbsd-tests-update-12/contrib/libucl/ (props changed) projects/netbsd-tests-update-12/contrib/libxo/ (props changed) projects/netbsd-tests-update-12/contrib/llvm/projects/libunwind/ (props changed) projects/netbsd-tests-update-12/contrib/llvm/tools/clang/ (props changed) projects/netbsd-tests-update-12/contrib/llvm/tools/lldb/ (props changed) projects/netbsd-tests-update-12/contrib/llvm/tools/llvm-dwarfdump/ (props changed) projects/netbsd-tests-update-12/contrib/llvm/tools/llvm-lto/ (props changed) projects/netbsd-tests-update-12/contrib/mdocml/ (props changed) projects/netbsd-tests-update-12/contrib/mtree/ (props changed) projects/netbsd-tests-update-12/contrib/ncurses/ (props changed) projects/netbsd-tests-update-12/contrib/netbsd-tests/ (props changed) projects/netbsd-tests-update-12/contrib/netcat/ (props changed) projects/netbsd-tests-update-12/contrib/ntp/ (props changed) projects/netbsd-tests-update-12/contrib/nvi/ (props changed) projects/netbsd-tests-update-12/contrib/one-true-awk/ (props changed) projects/netbsd-tests-update-12/contrib/openbsm/ (props changed) projects/netbsd-tests-update-12/contrib/openpam/ (props changed) projects/netbsd-tests-update-12/contrib/openresolv/ (props changed) projects/netbsd-tests-update-12/contrib/pf/ (props changed) projects/netbsd-tests-update-12/contrib/sendmail/ (props changed) projects/netbsd-tests-update-12/contrib/serf/ (props changed) projects/netbsd-tests-update-12/contrib/sqlite3/ (props changed) projects/netbsd-tests-update-12/contrib/subversion/ (props changed) projects/netbsd-tests-update-12/contrib/tcpdump/ (props changed) projects/netbsd-tests-update-12/contrib/tcsh/ (props changed) projects/netbsd-tests-update-12/contrib/top/ (props changed) projects/netbsd-tests-update-12/contrib/top/install-sh (props changed) projects/netbsd-tests-update-12/contrib/tzcode/stdtime/ (props changed) projects/netbsd-tests-update-12/contrib/tzcode/zic/ (props changed) projects/netbsd-tests-update-12/contrib/tzdata/ (props changed) projects/netbsd-tests-update-12/contrib/unbound/ (props changed) projects/netbsd-tests-update-12/contrib/vis/ (props changed) projects/netbsd-tests-update-12/contrib/wpa/ (props changed) projects/netbsd-tests-update-12/contrib/xz/ (props changed) projects/netbsd-tests-update-12/crypto/heimdal/ (props changed) projects/netbsd-tests-update-12/crypto/openssl/ (props changed) projects/netbsd-tests-update-12/gnu/usr.bin/binutils/ (props changed) projects/netbsd-tests-update-12/gnu/usr.bin/cc/cc_tools/ (props changed) projects/netbsd-tests-update-12/gnu/usr.bin/gdb/ (props changed) projects/netbsd-tests-update-12/lib/libc/locale/ascii.c (props changed) projects/netbsd-tests-update-12/sys/contrib/dev/acpica/ (props changed) projects/netbsd-tests-update-12/sys/contrib/ipfilter/ (props changed) projects/netbsd-tests-update-12/sys/contrib/libfdt/ (props changed) projects/netbsd-tests-update-12/sys/contrib/octeon-sdk/ (props changed) projects/netbsd-tests-update-12/sys/contrib/x86emu/ (props changed) projects/netbsd-tests-update-12/sys/contrib/xz-embedded/ (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/atkbdc.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/bhyvegc.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/bhyvegc.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/console.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/console.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/pci_fbuf.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/pci_xhci.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/pci_xhci.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/ps2kbd.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/ps2kbd.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/ps2mouse.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/ps2mouse.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/rfb.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/rfb.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/sockstream.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/sockstream.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/usb_emul.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/usb_emul.h (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/usb_mouse.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/vga.c (props changed) projects/netbsd-tests-update-12/usr.sbin/bhyve/vga.h (props changed) From owner-svn-src-projects@freebsd.org Sat Sep 3 13:57:50 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5283BCD061 for ; Sat, 3 Sep 2016 13:57:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5AF951B7; Sat, 3 Sep 2016 13:57:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u83Dvn1p083559; Sat, 3 Sep 2016 13:57:49 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u83Dvmtg083543; Sat, 3 Sep 2016 13:57:48 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609031357.u83Dvmtg083543@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 3 Sep 2016 13:57:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305346 - in projects/clang390-import: bin/sh/tests/builtins cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/ztest sbin/dhclient sys/arm/arm sys/boot/mips/uboot sys/cddl/c... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2016 13:57:50 -0000 Author: dim Date: Sat Sep 3 13:57:47 2016 New Revision: 305346 URL: https://svnweb.freebsd.org/changeset/base/305346 Log: Merge ^/head r305301 through r305345. Added: projects/clang390-import/bin/sh/tests/builtins/echo1.0 - copied unchanged from r305345, head/bin/sh/tests/builtins/echo1.0 projects/clang390-import/bin/sh/tests/builtins/echo2.0 - copied unchanged from r305345, head/bin/sh/tests/builtins/echo2.0 projects/clang390-import/bin/sh/tests/builtins/echo3.0 - copied unchanged from r305345, head/bin/sh/tests/builtins/echo3.0 projects/clang390-import/tools/tools/crypto/cryptorun.sh - copied unchanged from r305345, head/tools/tools/crypto/cryptorun.sh Modified: projects/clang390-import/bin/sh/tests/builtins/Makefile projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c projects/clang390-import/sbin/dhclient/clparse.c projects/clang390-import/sbin/dhclient/dhclient.c projects/clang390-import/sbin/dhclient/dhcpd.h projects/clang390-import/sbin/dhclient/dispatch.c projects/clang390-import/sbin/dhclient/privsep.c projects/clang390-import/sbin/dhclient/privsep.h projects/clang390-import/sys/arm/arm/pmap-v6.c projects/clang390-import/sys/boot/mips/uboot/ldscript.mips projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/clang390-import/sys/dev/drm2/drmP.h projects/clang390-import/sys/dev/ppbus/ppb_1284.c projects/clang390-import/sys/dev/ppbus/ppb_base.c projects/clang390-import/sys/dev/ppbus/ppbconf.h projects/clang390-import/sys/powerpc/mpc85xx/mpc85xx.c projects/clang390-import/sys/powerpc/powerpc/cpu.c projects/clang390-import/tools/tools/crypto/cryptotest.c projects/clang390-import/usr.sbin/ypldap/Makefile.depend Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/cddl/ (props changed) projects/clang390-import/cddl/contrib/opensolaris/ (props changed) projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/ (props changed) projects/clang390-import/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/clang390-import/bin/sh/tests/builtins/Makefile ============================================================================== --- projects/clang390-import/bin/sh/tests/builtins/Makefile Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/bin/sh/tests/builtins/Makefile Sat Sep 3 13:57:47 2016 (r305346) @@ -68,6 +68,9 @@ ${PACKAGE}FILES+= dot1.0 ${PACKAGE}FILES+= dot2.0 ${PACKAGE}FILES+= dot3.0 ${PACKAGE}FILES+= dot4.0 +${PACKAGE}FILES+= echo1.0 +${PACKAGE}FILES+= echo2.0 +${PACKAGE}FILES+= echo3.0 ${PACKAGE}FILES+= eval1.0 ${PACKAGE}FILES+= eval2.0 ${PACKAGE}FILES+= eval3.0 Copied: projects/clang390-import/bin/sh/tests/builtins/echo1.0 (from r305345, head/bin/sh/tests/builtins/echo1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/bin/sh/tests/builtins/echo1.0 Sat Sep 3 13:57:47 2016 (r305346, copy of r305345, head/bin/sh/tests/builtins/echo1.0) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +# Not specified by POSIX. + +[ "`echo -n a b; echo c d; echo e f`" = "a bc d +e f" ] Copied: projects/clang390-import/bin/sh/tests/builtins/echo2.0 (from r305345, head/bin/sh/tests/builtins/echo2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/bin/sh/tests/builtins/echo2.0 Sat Sep 3 13:57:47 2016 (r305346, copy of r305345, head/bin/sh/tests/builtins/echo2.0) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +# Not specified by POSIX. + +a=`echo -e '\a\b\e\f\n\r\t\v\\\\\0041\c'; echo .` +b=`printf '\a\b\033\f\n\r\t\v\\\\!.'` +[ "$a" = "$b" ] Copied: projects/clang390-import/bin/sh/tests/builtins/echo3.0 (from r305345, head/bin/sh/tests/builtins/echo3.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/bin/sh/tests/builtins/echo3.0 Sat Sep 3 13:57:47 2016 (r305346, copy of r305345, head/bin/sh/tests/builtins/echo3.0) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +# Not specified by POSIX. + +[ "`echo -e 'a\cb' c; echo d`" = "ad" ] Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sat Sep 3 13:57:47 2016 (r305346) @@ -21,7 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, 2015 by Delphix. All rights reserved. + * Copyright (c) 2011, 2016 by Delphix. All rights reserved. * Copyright (c) 2014 Integros [integros.com] */ @@ -117,7 +117,7 @@ static void usage(void) { (void) fprintf(stderr, - "Usage: %s [-CumMdibcsDvhLXFPA] [-t txg] [-e [-p path...]] " + "Usage: %s [-CumMdibcsDvhLXFPAG] [-t txg] [-e [-p path...]] " "[-U config] [-I inflight I/Os] [-x dumpdir] poolname [object...]\n" " %s [-divPA] [-e -p path...] [-U config] dataset " "[object...]\n" @@ -178,12 +178,23 @@ usage(void) (void) fprintf(stderr, " -I -- " "specify the maximum number of " "checksumming I/Os [default is 200]\n"); + (void) fprintf(stderr, " -G dump zfs_dbgmsg buffer before " + "exiting\n"); (void) fprintf(stderr, "Specify an option more than once (e.g. -bb) " "to make only that option verbose\n"); (void) fprintf(stderr, "Default is to dump everything non-verbosely\n"); exit(1); } +static void +dump_debug_buffer() +{ + if (dump_opt['G']) { + (void) printf("\n"); + zfs_dbgmsg_print("zdb"); + } +} + /* * Called for usage errors that are discovered after a call to spa_open(), * dmu_bonus_hold(), or pool_match(). abort() is called for other errors. @@ -200,6 +211,8 @@ fatal(const char *fmt, ...) va_end(ap); (void) fprintf(stderr, "\n"); + dump_debug_buffer(); + exit(1); } @@ -1289,7 +1302,7 @@ visit_indirect(spa_t *spa, const dnode_p } if (!err) ASSERT3U(fill, ==, BP_GET_FILL(bp)); - (void) arc_buf_remove_ref(buf, &buf); + arc_buf_destroy(buf, &buf); } return (err); @@ -3103,8 +3116,10 @@ dump_zpool(spa_t *spa) if (dump_opt['h']) dump_history(spa); - if (rc != 0) + if (rc != 0) { + dump_debug_buffer(); exit(rc); + } } #define ZDB_FLAG_CHECKSUM 0x0001 @@ -3575,7 +3590,7 @@ main(int argc, char **argv) spa_config_path = spa_config_path_env; while ((c = getopt(argc, argv, - "bcdhilmMI:suCDRSAFLXx:evp:t:U:P")) != -1) { + "bcdhilmMI:suCDRSAFLXx:evp:t:U:PG")) != -1) { switch (c) { case 'b': case 'c': @@ -3591,6 +3606,7 @@ main(int argc, char **argv) case 'M': case 'R': case 'S': + case 'G': dump_opt[c]++; dump_all = 0; break; @@ -3826,6 +3842,8 @@ main(int argc, char **argv) fuid_table_destroy(); sa_loaded = B_FALSE; + dump_debug_buffer(); + libzfs_fini(g_zfs); kernel_fini(); Modified: projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c ============================================================================== --- projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/cddl/contrib/opensolaris/cmd/ztest/ztest.c Sat Sep 3 13:57:47 2016 (r305346) @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, 2015 by Delphix. All rights reserved. + * Copyright (c) 2011, 2016 by Delphix. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2012 Martin Matuska . All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. @@ -189,6 +189,7 @@ extern uint64_t metaslab_gang_bang; extern uint64_t metaslab_df_alloc_threshold; extern uint64_t zfs_deadman_synctime_ms; extern int metaslab_preload_limit; +extern boolean_t zfs_compressed_arc_enabled; static ztest_shared_opts_t *ztest_shared_opts; static ztest_shared_opts_t ztest_opts; @@ -4792,7 +4793,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint6 char path0[MAXPATHLEN]; char pathrand[MAXPATHLEN]; size_t fsize; - int bshift = SPA_OLD_MAXBLOCKSHIFT + 2; /* don't scrog all labels */ + int bshift = SPA_MAXBLOCKSHIFT + 2; int iters = 1000; int maxfaults; int mirror_save; @@ -4953,11 +4954,58 @@ ztest_fault_inject(ztest_ds_t *zd, uint6 fsize = lseek(fd, 0, SEEK_END); while (--iters != 0) { + /* + * The offset must be chosen carefully to ensure that + * we do not inject a given logical block with errors + * on two different leaf devices, because ZFS can not + * tolerate that (if maxfaults==1). + * + * We divide each leaf into chunks of size + * (# leaves * SPA_MAXBLOCKSIZE * 4). Within each chunk + * there is a series of ranges to which we can inject errors. + * Each range can accept errors on only a single leaf vdev. + * The error injection ranges are separated by ranges + * which we will not inject errors on any device (DMZs). + * Each DMZ must be large enough such that a single block + * can not straddle it, so that a single block can not be + * a target in two different injection ranges (on different + * leaf vdevs). + * + * For example, with 3 leaves, each chunk looks like: + * 0 to 32M: injection range for leaf 0 + * 32M to 64M: DMZ - no injection allowed + * 64M to 96M: injection range for leaf 1 + * 96M to 128M: DMZ - no injection allowed + * 128M to 160M: injection range for leaf 2 + * 160M to 192M: DMZ - no injection allowed + */ offset = ztest_random(fsize / (leaves << bshift)) * (leaves << bshift) + (leaf << bshift) + (ztest_random(1ULL << (bshift - 1)) & -8ULL); - if (offset >= fsize) + /* + * Only allow damage to the labels at one end of the vdev. + * + * If all labels are damaged, the device will be totally + * inaccessible, which will result in loss of data, + * because we also damage (parts of) the other side of + * the mirror/raidz. + * + * Additionally, we will always have both an even and an + * odd label, so that we can handle crashes in the + * middle of vdev_config_sync(). + */ + if ((leaf & 1) == 0 && offset < VDEV_LABEL_START_SIZE) + continue; + + /* + * The two end labels are stored at the "end" of the disk, but + * the end of the disk (vdev_psize) is aligned to + * sizeof (vdev_label_t). + */ + uint64_t psize = P2ALIGN(fsize, sizeof (vdev_label_t)); + if ((leaf & 1) == 1 && + offset + sizeof (bad) > psize - VDEV_LABEL_END_SIZE) continue; VERIFY(mutex_lock(&ztest_vdev_lock) == 0); @@ -5021,9 +5069,14 @@ ztest_ddt_repair(ztest_ds_t *zd, uint64_ return; } + dmu_objset_stats_t dds; + dsl_pool_config_enter(dmu_objset_pool(os), FTAG); + dmu_objset_fast_stat(os, &dds); + dsl_pool_config_exit(dmu_objset_pool(os), FTAG); + object = od[0].od_object; blocksize = od[0].od_blocksize; - pattern = zs->zs_guid ^ dmu_objset_fsid_guid(os); + pattern = zs->zs_guid ^ dds.dds_guid; ASSERT(object != 0); @@ -5355,6 +5408,12 @@ ztest_resume_thread(void *arg) if (spa_suspended(spa)) ztest_resume(spa); (void) poll(NULL, 0, 100); + + /* + * Periodically change the zfs_compressed_arc_enabled setting. + */ + if (ztest_random(10) == 0) + zfs_compressed_arc_enabled = ztest_random(2); } return (NULL); } @@ -5620,9 +5679,13 @@ ztest_run(ztest_shared_t *zs) metaslab_preload_limit = ztest_random(20) + 1; ztest_spa = spa; + dmu_objset_stats_t dds; VERIFY0(dmu_objset_own(ztest_opts.zo_pool, DMU_OST_ANY, B_TRUE, FTAG, &os)); - zs->zs_guid = dmu_objset_fsid_guid(os); + dsl_pool_config_enter(dmu_objset_pool(os), FTAG); + dmu_objset_fast_stat(os, &dds); + dsl_pool_config_exit(dmu_objset_pool(os), FTAG); + zs->zs_guid = dds.dds_guid; dmu_objset_disown(os, FTAG); spa->spa_dedup_ditto = 2 * ZIO_DEDUPDITTO_MIN; Modified: projects/clang390-import/sbin/dhclient/clparse.c ============================================================================== --- projects/clang390-import/sbin/dhclient/clparse.c Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sbin/dhclient/clparse.c Sat Sep 3 13:57:47 2016 (r305346) @@ -102,6 +102,8 @@ read_client_conf(void) [top_level_config.requested_option_count++] = DHO_HOST_NAME; top_level_config.requested_options [top_level_config.requested_option_count++] = DHO_DOMAIN_SEARCH; + top_level_config.requested_options + [top_level_config.requested_option_count++] = DHO_INTERFACE_MTU; if ((cfile = fopen(path_dhclient_conf, "r")) != NULL) { do { Modified: projects/clang390-import/sbin/dhclient/dhclient.c ============================================================================== --- projects/clang390-import/sbin/dhclient/dhclient.c Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sbin/dhclient/dhclient.c Sat Sep 3 13:57:47 2016 (r305346) @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include "privsep.h" #include +#include #include @@ -132,6 +133,9 @@ int fork_privchld(int, int); ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) #define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) +/* Minimum MTU is 68 as per RFC791, p. 24 */ +#define MIN_MTU 68 + static time_t scripttime; int @@ -798,9 +802,20 @@ dhcpack(struct packet *packet) void bind_lease(struct interface_info *ip) { + struct option_data *opt; + /* Remember the medium. */ ip->client->new->medium = ip->client->medium; + opt = &ip->client->new->options[DHO_INTERFACE_MTU]; + if (opt->len == sizeof(u_int16_t)) { + u_int16_t mtu = be16dec(opt->data); + if (mtu < MIN_MTU) + warning("mtu size %u < %d: ignored", (unsigned)mtu, MIN_MTU); + else + interface_set_mtu_unpriv(privfd, mtu); + } + /* Write out the new lease. */ write_client_lease(ip, ip->client->new, 0); Modified: projects/clang390-import/sbin/dhclient/dhcpd.h ============================================================================== --- projects/clang390-import/sbin/dhclient/dhcpd.h Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sbin/dhclient/dhcpd.h Sat Sep 3 13:57:47 2016 (r305346) @@ -319,6 +319,8 @@ void cancel_timeout(void (*)(void *), vo void add_protocol(char *, int, void (*)(struct protocol *), void *); void remove_protocol(struct protocol *); int interface_link_status(char *); +void interface_set_mtu_unpriv(int, u_int16_t); +void interface_set_mtu_priv(char *, u_int16_t); /* hash.c */ struct hash_table *new_hash(void); Modified: projects/clang390-import/sbin/dhclient/dispatch.c ============================================================================== --- projects/clang390-import/sbin/dhclient/dispatch.c Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sbin/dhclient/dispatch.c Sat Sep 3 13:57:47 2016 (r305346) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include "dhcpd.h" +#include "privsep.h" #include @@ -501,3 +502,46 @@ interface_link_status(char *ifname) } return (1); } + +void +interface_set_mtu_unpriv(int privfd, u_int16_t mtu) +{ + struct imsg_hdr hdr; + struct buf *buf; + int errs = 0; + + hdr.code = IMSG_SET_INTERFACE_MTU; + hdr.len = sizeof(hdr) + + sizeof(u_int16_t); + + if ((buf = buf_open(hdr.len)) == NULL) + error("buf_open: %m"); + + errs += buf_add(buf, &hdr, sizeof(hdr)); + errs += buf_add(buf, &mtu, sizeof(mtu)); + if (errs) + error("buf_add: %m"); + + if (buf_close(privfd, buf) == -1) + error("buf_close: %m"); +} + +void +interface_set_mtu_priv(char *ifname, u_int16_t mtu) +{ + struct ifreq ifr; + int sock; + + if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) + error("Can't create socket"); + + memset(&ifr, 0, sizeof(ifr)); + + strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); + ifr.ifr_mtu = mtu; + + if (ioctl(sock, SIOCSIFMTU, &ifr) == -1) + warning("SIOCSIFMTU failed (%d): %s", mtu, + strerror(errno)); + close(sock); +} Modified: projects/clang390-import/sbin/dhclient/privsep.c ============================================================================== --- projects/clang390-import/sbin/dhclient/privsep.c Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sbin/dhclient/privsep.c Sat Sep 3 13:57:47 2016 (r305346) @@ -111,6 +111,7 @@ dispatch_imsg(struct interface_info *ifi struct client_lease lease; int ret, i, optlen; struct buf *buf; + u_int16_t mtu; buf_read(fd, &hdr, sizeof(hdr)); @@ -235,6 +236,13 @@ dispatch_imsg(struct interface_info *ifi case IMSG_SEND_PACKET: send_packet_priv(ifi, &hdr, fd); break; + case IMSG_SET_INTERFACE_MTU: + if (hdr.len < sizeof(hdr) + sizeof(u_int16_t)) + error("corrupted message received"); + + buf_read(fd, &mtu, sizeof(u_int16_t)); + interface_set_mtu_priv(ifi->name, mtu); + break; default: error("received unknown message, code %d", hdr.code); } Modified: projects/clang390-import/sbin/dhclient/privsep.h ============================================================================== --- projects/clang390-import/sbin/dhclient/privsep.h Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sbin/dhclient/privsep.h Sat Sep 3 13:57:47 2016 (r305346) @@ -36,7 +36,8 @@ enum imsg_code { IMSG_SCRIPT_WRITE_PARAMS, IMSG_SCRIPT_GO, IMSG_SCRIPT_GO_RET, - IMSG_SEND_PACKET + IMSG_SEND_PACKET, + IMSG_SET_INTERFACE_MTU, }; struct imsg_hdr { Modified: projects/clang390-import/sys/arm/arm/pmap-v6.c ============================================================================== --- projects/clang390-import/sys/arm/arm/pmap-v6.c Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sys/arm/arm/pmap-v6.c Sat Sep 3 13:57:47 2016 (r305346) @@ -5178,6 +5178,14 @@ pmap_is_referenced(vm_page_t m) * XXX: The exact number of bits to check and clear is a matter that * should be tested and standardized at some point in the future for * optimal aging of shared pages. + * + * As an optimization, update the page's dirty field if a modified bit is + * found while counting reference bits. This opportunistic update can be + * performed at low cost and can eliminate the need for some future calls + * to pmap_is_modified(). However, since this function stops after + * finding PMAP_TS_REFERENCED_MAX reference bits, it may not detect some + * dirty pages. Those dirty pages will only be detected by a future call + * to pmap_is_modified(). */ int pmap_ts_referenced(vm_page_t m) @@ -5186,7 +5194,7 @@ pmap_ts_referenced(vm_page_t m) pv_entry_t pv, pvf; pmap_t pmap; pt1_entry_t *pte1p, opte1; - pt2_entry_t *pte2p; + pt2_entry_t *pte2p, opte2; vm_paddr_t pa; int rtval = 0; @@ -5205,6 +5213,14 @@ pmap_ts_referenced(vm_page_t m) PMAP_LOCK(pmap); pte1p = pmap_pte1(pmap, pv->pv_va); opte1 = pte1_load(pte1p); + if (pte1_is_dirty(opte1)) { + /* + * Although "opte1" is mapping a 1MB page, because + * this function is called at a 4KB page granularity, + * we only update the 4KB page under test. + */ + vm_page_dirty(m); + } if ((opte1 & PTE1_A) != 0) { /* * Since this reference bit is shared by 256 4KB pages, @@ -5253,7 +5269,10 @@ small_mappings: ("%s: not found a link in page %p's pv list", __func__, m)); pte2p = pmap_pte2_quick(pmap, pv->pv_va); - if ((pte2_load(pte2p) & PTE2_A) != 0) { + opte2 = pte2_load(pte2p); + if (pte2_is_dirty(opte2)) + vm_page_dirty(m); + if ((opte2 & PTE2_A) != 0) { pte2_clear_bit(pte2p, PTE2_A); pmap_tlb_flush(pmap, pv->pv_va); rtval++; Modified: projects/clang390-import/sys/boot/mips/uboot/ldscript.mips ============================================================================== --- projects/clang390-import/sys/boot/mips/uboot/ldscript.mips Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sys/boot/mips/uboot/ldscript.mips Sat Sep 3 13:57:47 2016 (r305346) @@ -55,7 +55,6 @@ SECTIONS { *(.data) *(.gnu.linkonce.d*) - CONSTRUCTORS } .data1 : { *(.data1) } .got1 : { *(.got1) } Modified: projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c ============================================================================== --- projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Sat Sep 3 13:48:44 2016 (r305345) +++ projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Sat Sep 3 13:57:47 2016 (r305346) @@ -120,9 +120,134 @@ * - ARC header release, as it removes from L2ARC buflists */ +/* + * ARC operation: + * + * Every block that is in the ARC is tracked by an arc_buf_hdr_t structure. + * This structure can point either to a block that is still in the cache or to + * one that is only accessible in an L2 ARC device, or it can provide + * information about a block that was recently evicted. If a block is + * only accessible in the L2ARC, then the arc_buf_hdr_t only has enough + * information to retrieve it from the L2ARC device. This information is + * stored in the l2arc_buf_hdr_t sub-structure of the arc_buf_hdr_t. A block + * that is in this state cannot access the data directly. + * + * Blocks that are actively being referenced or have not been evicted + * are cached in the L1ARC. The L1ARC (l1arc_buf_hdr_t) is a structure within + * the arc_buf_hdr_t that will point to the data block in memory. A block can + * only be read by a consumer if it has an l1arc_buf_hdr_t. The L1ARC + * caches data in two ways -- in a list of arc buffers (arc_buf_t) and + * also in the arc_buf_hdr_t's private physical data block pointer (b_pdata). + * Each arc buffer (arc_buf_t) is being actively accessed by a specific ARC + * consumer, and always contains uncompressed data. The ARC will provide + * references to this data and will keep it cached until it is no longer in + * use. Typically, the arc will try to cache only the L1ARC's physical data + * block and will aggressively evict any arc_buf_t that is no longer referenced. + * The amount of memory consumed by the arc_buf_t's can be seen via the + * "overhead_size" kstat. + * + * + * arc_buf_hdr_t + * +-----------+ + * | | + * | | + * | | + * +-----------+ + * l2arc_buf_hdr_t| | + * | | + * +-----------+ + * l1arc_buf_hdr_t| | + * | | arc_buf_t + * | b_buf +------------>+---------+ arc_buf_t + * | | |b_next +---->+---------+ + * | b_pdata +-+ |---------| |b_next +-->NULL + * +-----------+ | | | +---------+ + * | |b_data +-+ | | + * | +---------+ | |b_data +-+ + * +->+------+ | +---------+ | + * (potentially) | | | | + * compressed | | | | + * data +------+ | v + * +->+------+ +------+ + * uncompressed | | | | + * data | | | | + * +------+ +------+ + * + * The L1ARC's data pointer, however, may or may not be uncompressed. The + * ARC has the ability to store the physical data (b_pdata) associated with + * the DVA of the arc_buf_hdr_t. Since the b_pdata is a copy of the on-disk + * physical block, it will match its on-disk compression characteristics. + * If the block on-disk is compressed, then the physical data block + * in the cache will also be compressed and vice-versa. This behavior + * can be disabled by setting 'zfs_compressed_arc_enabled' to B_FALSE. When the + * compressed ARC functionality is disabled, the b_pdata will point to an + * uncompressed version of the on-disk data. + * + * When a consumer reads a block, the ARC must first look to see if the + * arc_buf_hdr_t is cached. If the hdr is cached and already has an arc_buf_t, + * then an additional arc_buf_t is allocated and the uncompressed data is + * bcopied from the existing arc_buf_t. If the hdr is cached but does not + * have an arc_buf_t, then the ARC allocates a new arc_buf_t and decompresses + * the b_pdata contents into the arc_buf_t's b_data. If the arc_buf_hdr_t's + * b_pdata is not compressed, then the block is shared with the newly + * allocated arc_buf_t. This block sharing only occurs with one arc_buf_t + * in the arc buffer chain. Sharing the block reduces the memory overhead + * required when the hdr is caching uncompressed blocks or the compressed + * arc functionality has been disabled via 'zfs_compressed_arc_enabled'. + * + * The diagram below shows an example of an uncompressed ARC hdr that is + * sharing its data with an arc_buf_t: + * + * arc_buf_hdr_t + * +-----------+ + * | | + * | | + * | | + * +-----------+ + * l2arc_buf_hdr_t| | + * | | + * +-----------+ + * l1arc_buf_hdr_t| | + * | | arc_buf_t (shared) + * | b_buf +------------>+---------+ arc_buf_t + * | | |b_next +---->+---------+ + * | b_pdata +-+ |---------| |b_next +-->NULL + * +-----------+ | | | +---------+ + * | |b_data +-+ | | + * | +---------+ | |b_data +-+ + * +->+------+ | +---------+ | + * | | | | + * uncompressed | | | | + * data +------+ | | + * ^ +->+------+ | + * | uncompressed | | | + * | data | | | + * | +------+ | + * +---------------------------------+ + * + * Writing to the arc requires that the ARC first discard the b_pdata + * since the physical block is about to be rewritten. The new data contents + * will be contained in the arc_buf_t (uncompressed). As the I/O pipeline + * performs the write, it may compress the data before writing it to disk. + * The ARC will be called with the transformed data and will bcopy the + * transformed on-disk block into a newly allocated b_pdata. + * + * When the L2ARC is in use, it will also take advantage of the b_pdata. The + * L2ARC will always write the contents of b_pdata to the L2ARC. This means + * that when compressed arc is enabled that the L2ARC blocks are identical + * to the on-disk block in the main data pool. This provides a significant + * advantage since the ARC can leverage the bp's checksum when reading from the + * L2ARC to determine if the contents are valid. However, if the compressed + * arc is disabled, then the L2ARC's block must be transformed to look + * like the physical block in the main data pool before comparing the + * checksum and determining its validity. + */ + #include #include +#include #include +#include #include #include #include @@ -155,10 +280,6 @@ static kcondvar_t arc_reclaim_thread_cv; static boolean_t arc_reclaim_thread_exit; static kcondvar_t arc_reclaim_waiters_cv; -static kmutex_t arc_user_evicts_lock; -static kcondvar_t arc_user_evicts_cv; -static boolean_t arc_user_evicts_thread_exit; - static kmutex_t arc_dnlc_evicts_lock; static kcondvar_t arc_dnlc_evicts_cv; static boolean_t arc_dnlc_evicts_thread_exit; @@ -234,13 +355,14 @@ uint64_t zfs_arc_meta_min = 0; int zfs_arc_grow_retry = 0; int zfs_arc_shrink_shift = 0; int zfs_arc_p_min_shift = 0; -int zfs_disable_dup_eviction = 0; uint64_t zfs_arc_average_blocksize = 8 * 1024; /* 8KB */ u_int zfs_arc_free_target = 0; /* Absolute min for arc min / max is 16MB. */ static uint64_t arc_abs_min = 16 << 20; +boolean_t zfs_compressed_arc_enabled = B_TRUE; + static int sysctl_vfs_zfs_arc_free_target(SYSCTL_HANDLER_ARGS); static int sysctl_vfs_zfs_arc_meta_limit(SYSCTL_HANDLER_ARGS); static int sysctl_vfs_zfs_arc_max(SYSCTL_HANDLER_ARGS); @@ -270,6 +392,8 @@ SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, arc_ave SYSCTL_INT(_vfs_zfs, OID_AUTO, arc_shrink_shift, CTLFLAG_RW, &arc_shrink_shift, 0, "log2(fraction of arc to reclaim)"); +SYSCTL_INT(_vfs_zfs, OID_AUTO, compressed_arc_enabled, CTLFLAG_RDTUN, + &zfs_compressed_arc_enabled, 0, "Enable compressed ARC"); /* * We don't have a tunable for arc_free_target due to the dependency on @@ -351,7 +475,7 @@ typedef struct arc_state { /* * total amount of evictable data in this state */ - uint64_t arcs_lsize[ARC_BUFC_NUMTYPES]; + refcount_t arcs_esize[ARC_BUFC_NUMTYPES]; /* * total amount of data in this state; this includes: evictable, * non-evictable, ARC_BUFC_DATA, and ARC_BUFC_METADATA. @@ -417,6 +541,26 @@ typedef struct arc_stats { kstat_named_t arcstat_c_max; kstat_named_t arcstat_size; /* + * Number of compressed bytes stored in the arc_buf_hdr_t's b_pdata. + * Note that the compressed bytes may match the uncompressed bytes + * if the block is either not compressed or compressed arc is disabled. + */ + kstat_named_t arcstat_compressed_size; + /* + * Uncompressed size of the data stored in b_pdata. If compressed + * arc is disabled then this value will be identical to the stat + * above. + */ + kstat_named_t arcstat_uncompressed_size; + /* + * Number of bytes stored in all the arc_buf_t's. This is classified + * as "overhead" since this data is typically short-lived and will + * be evicted from the arc when it becomes unreferenced unless the + * zfs_keep_uncompressed_metadata or zfs_keep_uncompressed_level + * values have been set (see comment in dbuf.c for more information). + */ + kstat_named_t arcstat_overhead_size; + /* * Number of bytes consumed by internal ARC structures necessary * for tracking purposes; these structures are not actually * backed by ARC buffers. This includes arc_buf_hdr_t structures @@ -561,16 +705,12 @@ typedef struct arc_stats { kstat_named_t arcstat_l2_evict_reading; kstat_named_t arcstat_l2_evict_l1cached; kstat_named_t arcstat_l2_free_on_write; - kstat_named_t arcstat_l2_cdata_free_on_write; kstat_named_t arcstat_l2_abort_lowmem; kstat_named_t arcstat_l2_cksum_bad; kstat_named_t arcstat_l2_io_error; kstat_named_t arcstat_l2_size; kstat_named_t arcstat_l2_asize; kstat_named_t arcstat_l2_hdr_size; - kstat_named_t arcstat_l2_compress_successes; - kstat_named_t arcstat_l2_compress_zeros; - kstat_named_t arcstat_l2_compress_failures; kstat_named_t arcstat_l2_padding_needed; kstat_named_t arcstat_l2_write_trylock_fail; kstat_named_t arcstat_l2_write_passed_headroom; @@ -585,9 +725,6 @@ typedef struct arc_stats { kstat_named_t arcstat_l2_write_buffer_list_iter; kstat_named_t arcstat_l2_write_buffer_list_null_iter; kstat_named_t arcstat_memory_throttle_count; - kstat_named_t arcstat_duplicate_buffers; - kstat_named_t arcstat_duplicate_buffers_size; - kstat_named_t arcstat_duplicate_reads; kstat_named_t arcstat_meta_used; kstat_named_t arcstat_meta_limit; kstat_named_t arcstat_meta_max; @@ -630,6 +767,9 @@ static arc_stats_t arc_stats = { { "c_min", KSTAT_DATA_UINT64 }, { "c_max", KSTAT_DATA_UINT64 }, { "size", KSTAT_DATA_UINT64 }, + { "compressed_size", KSTAT_DATA_UINT64 }, + { "uncompressed_size", KSTAT_DATA_UINT64 }, + { "overhead_size", KSTAT_DATA_UINT64 }, { "hdr_size", KSTAT_DATA_UINT64 }, { "data_size", KSTAT_DATA_UINT64 }, { "metadata_size", KSTAT_DATA_UINT64 }, @@ -663,16 +803,12 @@ static arc_stats_t arc_stats = { { "l2_evict_reading", KSTAT_DATA_UINT64 }, { "l2_evict_l1cached", KSTAT_DATA_UINT64 }, { "l2_free_on_write", KSTAT_DATA_UINT64 }, - { "l2_cdata_free_on_write", KSTAT_DATA_UINT64 }, { "l2_abort_lowmem", KSTAT_DATA_UINT64 }, { "l2_cksum_bad", KSTAT_DATA_UINT64 }, { "l2_io_error", KSTAT_DATA_UINT64 }, { "l2_size", KSTAT_DATA_UINT64 }, { "l2_asize", KSTAT_DATA_UINT64 }, { "l2_hdr_size", KSTAT_DATA_UINT64 }, - { "l2_compress_successes", KSTAT_DATA_UINT64 }, - { "l2_compress_zeros", KSTAT_DATA_UINT64 }, - { "l2_compress_failures", KSTAT_DATA_UINT64 }, { "l2_padding_needed", KSTAT_DATA_UINT64 }, { "l2_write_trylock_fail", KSTAT_DATA_UINT64 }, { "l2_write_passed_headroom", KSTAT_DATA_UINT64 }, @@ -687,9 +823,6 @@ static arc_stats_t arc_stats = { { "l2_write_buffer_list_iter", KSTAT_DATA_UINT64 }, { "l2_write_buffer_list_null_iter", KSTAT_DATA_UINT64 }, { "memory_throttle_count", KSTAT_DATA_UINT64 }, - { "duplicate_buffers", KSTAT_DATA_UINT64 }, - { "duplicate_buffers_size", KSTAT_DATA_UINT64 }, - { "duplicate_reads", KSTAT_DATA_UINT64 }, { "arc_meta_used", KSTAT_DATA_UINT64 }, { "arc_meta_limit", KSTAT_DATA_UINT64 }, { "arc_meta_max", KSTAT_DATA_UINT64 }, @@ -762,8 +895,12 @@ static arc_state_t *arc_l2c_only; #define arc_meta_used ARCSTAT(arcstat_meta_used) /* size of metadata */ #define arc_meta_max ARCSTAT(arcstat_meta_max) /* max size of metadata */ -#define L2ARC_IS_VALID_COMPRESS(_c_) \ - ((_c_) == ZIO_COMPRESS_LZ4 || (_c_) == ZIO_COMPRESS_EMPTY) +/* compressed size of entire arc */ +#define arc_compressed_size ARCSTAT(arcstat_compressed_size) +/* uncompressed size of entire arc */ +#define arc_uncompressed_size ARCSTAT(arcstat_uncompressed_size) +/* number of bytes in the arc from arc_buf_t's */ +#define arc_overhead_size ARCSTAT(arcstat_overhead_size) static int arc_no_grow; /* Don't try to grow cache size */ static uint64_t arc_tempreserve; @@ -823,6 +960,7 @@ struct arc_write_callback { */ typedef struct l1arc_buf_hdr { kmutex_t b_freeze_lock; + zio_cksum_t *b_freeze_cksum; #ifdef ZFS_DEBUG /* * used for debugging wtih kmem_flags - by allocating and freeing @@ -833,9 +971,10 @@ typedef struct l1arc_buf_hdr { #endif arc_buf_t *b_buf; - uint32_t b_datacnt; + uint32_t b_bufcnt; /* for waiting on writes to complete */ kcondvar_t b_cv; + uint8_t b_byteswap; /* protected by arc state mutex */ arc_state_t *b_state; @@ -848,8 +987,7 @@ typedef struct l1arc_buf_hdr { refcount_t b_refcnt; arc_callback_t *b_acb; - /* temporary buffer holder for in-flight compressed or padded data */ - void *b_tmp_cdata; + void *b_pdata; } l1arc_buf_hdr_t; typedef struct l2arc_dev l2arc_dev_t; @@ -858,9 +996,6 @@ typedef struct l2arc_buf_hdr { /* protected by arc_buf_hdr mutex */ l2arc_dev_t *b_dev; /* L2ARC device */ uint64_t b_daddr; /* disk address, offset byte */ - /* real alloc'd buffer size depending on b_compress applied */ - int32_t b_asize; - uint8_t b_compress; list_node_t b_l2node; } l2arc_buf_hdr_t; @@ -869,20 +1004,37 @@ struct arc_buf_hdr { /* protected by hash lock */ dva_t b_dva; uint64_t b_birth; - /* - * Even though this checksum is only set/verified when a buffer is in - * the L1 cache, it needs to be in the set of common fields because it - * must be preserved from the time before a buffer is written out to - * L2ARC until after it is read back in. - */ - zio_cksum_t *b_freeze_cksum; + arc_buf_contents_t b_type; arc_buf_hdr_t *b_hash_next; arc_flags_t b_flags; - /* immutable */ - int32_t b_size; - uint64_t b_spa; + /* + * This field stores the size of the data buffer after + * compression, and is set in the arc's zio completion handlers. + * It is in units of SPA_MINBLOCKSIZE (e.g. 1 == 512 bytes). + * + * While the block pointers can store up to 32MB in their psize + * field, we can only store up to 32MB minus 512B. This is due + * to the bp using a bias of 1, whereas we use a bias of 0 (i.e. + * a field of zeros represents 512B in the bp). We can't use a + * bias of 1 since we need to reserve a psize of zero, here, to + * represent holes and embedded blocks. + * + * This isn't a problem in practice, since the maximum size of a + * buffer is limited to 16MB, so we never need to store 32MB in + * this field. Even in the upstream illumos code base, the + * maximum size of a buffer is limited to 16MB. + */ + uint16_t b_psize; + + /* + * This field stores the size of the data buffer before + * compression, and cannot change once set. It is in units + * of SPA_MINBLOCKSIZE (e.g. 2 == 1024 bytes) + */ + uint16_t b_lsize; /* immutable */ + uint64_t b_spa; /* immutable */ /* L2ARC fields. Undefined when not in L2ARC. */ l2arc_buf_hdr_t b_l2hdr; @@ -986,9 +1138,6 @@ sysctl_vfs_zfs_arc_min(SYSCTL_HANDLER_AR } #endif -static arc_buf_t *arc_eviction_list; -static arc_buf_hdr_t arc_eviction_hdr; - #define GHOST_STATE(state) \ ((state) == arc_mru_ghost || (state) == arc_mfu_ghost || \ (state) == arc_l2c_only) @@ -997,25 +1146,35 @@ static arc_buf_hdr_t arc_eviction_hdr; #define HDR_IO_IN_PROGRESS(hdr) ((hdr)->b_flags & ARC_FLAG_IO_IN_PROGRESS) #define HDR_IO_ERROR(hdr) ((hdr)->b_flags & ARC_FLAG_IO_ERROR) #define HDR_PREFETCH(hdr) ((hdr)->b_flags & ARC_FLAG_PREFETCH) -#define HDR_FREED_IN_READ(hdr) ((hdr)->b_flags & ARC_FLAG_FREED_IN_READ) -#define HDR_BUF_AVAILABLE(hdr) ((hdr)->b_flags & ARC_FLAG_BUF_AVAILABLE) +#define HDR_COMPRESSION_ENABLED(hdr) \ + ((hdr)->b_flags & ARC_FLAG_COMPRESSED_ARC) #define HDR_L2CACHE(hdr) ((hdr)->b_flags & ARC_FLAG_L2CACHE) -#define HDR_L2COMPRESS(hdr) ((hdr)->b_flags & ARC_FLAG_L2COMPRESS) #define HDR_L2_READING(hdr) \ - (((hdr)->b_flags & ARC_FLAG_IO_IN_PROGRESS) && \ - ((hdr)->b_flags & ARC_FLAG_HAS_L2HDR)) + (((hdr)->b_flags & ARC_FLAG_IO_IN_PROGRESS) && \ + ((hdr)->b_flags & ARC_FLAG_HAS_L2HDR)) #define HDR_L2_WRITING(hdr) ((hdr)->b_flags & ARC_FLAG_L2_WRITING) #define HDR_L2_EVICTED(hdr) ((hdr)->b_flags & ARC_FLAG_L2_EVICTED) #define HDR_L2_WRITE_HEAD(hdr) ((hdr)->b_flags & ARC_FLAG_L2_WRITE_HEAD) +#define HDR_SHARED_DATA(hdr) ((hdr)->b_flags & ARC_FLAG_SHARED_DATA) #define HDR_ISTYPE_METADATA(hdr) \ - ((hdr)->b_flags & ARC_FLAG_BUFC_METADATA) + ((hdr)->b_flags & ARC_FLAG_BUFC_METADATA) #define HDR_ISTYPE_DATA(hdr) (!HDR_ISTYPE_METADATA(hdr)) #define HDR_HAS_L1HDR(hdr) ((hdr)->b_flags & ARC_FLAG_HAS_L1HDR) #define HDR_HAS_L2HDR(hdr) ((hdr)->b_flags & ARC_FLAG_HAS_L2HDR) +/* For storing compression mode in b_flags */ +#define HDR_COMPRESS_OFFSET (highbit64(ARC_FLAG_COMPRESS_0) - 1) + +#define HDR_GET_COMPRESS(hdr) ((enum zio_compress)BF32_GET((hdr)->b_flags, \ + HDR_COMPRESS_OFFSET, SPA_COMPRESSBITS)) +#define HDR_SET_COMPRESS(hdr, cmp) BF32_SET((hdr)->b_flags, \ + HDR_COMPRESS_OFFSET, SPA_COMPRESSBITS, (cmp)); + +#define ARC_BUF_LAST(buf) ((buf)->b_next == NULL) + /* * Other sizes */ @@ -1068,16 +1227,6 @@ uint64_t zfs_crc64_table[256]; #define L2ARC_FEED_SECS 1 /* caching interval secs */ #define L2ARC_FEED_MIN_MS 200 /* min caching interval ms */ -/* - * Used to distinguish headers that are being process by - * l2arc_write_buffers(), but have yet to be assigned to a l2arc disk - * address. This can happen when the header is added to the l2arc's list - * of buffers to write in the first stage of l2arc_write_buffers(), but - * has not yet been written out which happens in the second stage of - * l2arc_write_buffers(). - */ -#define L2ARC_ADDR_UNSET ((uint64_t)(-1)) - #define l2arc_writes_sent ARCSTAT(arcstat_l2_writes_sent) #define l2arc_writes_done ARCSTAT(arcstat_l2_writes_done) @@ -1112,41 +1261,47 @@ SYSCTL_INT(_vfs_zfs, OID_AUTO, l2arc_nor SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, anon_size, CTLFLAG_RD, &ARC_anon.arcs_size.rc_count, 0, "size of anonymous state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, anon_metadata_lsize, CTLFLAG_RD, - &ARC_anon.arcs_lsize[ARC_BUFC_METADATA], 0, "size of anonymous state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, anon_data_lsize, CTLFLAG_RD, - &ARC_anon.arcs_lsize[ARC_BUFC_DATA], 0, "size of anonymous state"); +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, anon_metadata_esize, CTLFLAG_RD, + &ARC_anon.arcs_esize[ARC_BUFC_METADATA].rc_count, 0, + "size of anonymous state"); +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, anon_data_esize, CTLFLAG_RD, + &ARC_anon.arcs_esize[ARC_BUFC_DATA].rc_count, 0, + "size of anonymous state"); SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_size, CTLFLAG_RD, &ARC_mru.arcs_size.rc_count, 0, "size of mru state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_metadata_lsize, CTLFLAG_RD, - &ARC_mru.arcs_lsize[ARC_BUFC_METADATA], 0, "size of metadata in mru state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_data_lsize, CTLFLAG_RD, - &ARC_mru.arcs_lsize[ARC_BUFC_DATA], 0, "size of data in mru state"); +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_metadata_esize, CTLFLAG_RD, + &ARC_mru.arcs_esize[ARC_BUFC_METADATA].rc_count, 0, + "size of metadata in mru state"); +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_data_esize, CTLFLAG_RD, + &ARC_mru.arcs_esize[ARC_BUFC_DATA].rc_count, 0, + "size of data in mru state"); SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_ghost_size, CTLFLAG_RD, &ARC_mru_ghost.arcs_size.rc_count, 0, "size of mru ghost state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_ghost_metadata_lsize, CTLFLAG_RD, - &ARC_mru_ghost.arcs_lsize[ARC_BUFC_METADATA], 0, +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_ghost_metadata_esize, CTLFLAG_RD, + &ARC_mru_ghost.arcs_esize[ARC_BUFC_METADATA].rc_count, 0, "size of metadata in mru ghost state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_ghost_data_lsize, CTLFLAG_RD, - &ARC_mru_ghost.arcs_lsize[ARC_BUFC_DATA], 0, +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mru_ghost_data_esize, CTLFLAG_RD, + &ARC_mru_ghost.arcs_esize[ARC_BUFC_DATA].rc_count, 0, "size of data in mru ghost state"); SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_size, CTLFLAG_RD, &ARC_mfu.arcs_size.rc_count, 0, "size of mfu state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_metadata_lsize, CTLFLAG_RD, - &ARC_mfu.arcs_lsize[ARC_BUFC_METADATA], 0, "size of metadata in mfu state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_data_lsize, CTLFLAG_RD, - &ARC_mfu.arcs_lsize[ARC_BUFC_DATA], 0, "size of data in mfu state"); +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_metadata_esize, CTLFLAG_RD, + &ARC_mfu.arcs_esize[ARC_BUFC_METADATA].rc_count, 0, + "size of metadata in mfu state"); +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_data_esize, CTLFLAG_RD, + &ARC_mfu.arcs_esize[ARC_BUFC_DATA].rc_count, 0, + "size of data in mfu state"); SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_ghost_size, CTLFLAG_RD, &ARC_mfu_ghost.arcs_size.rc_count, 0, "size of mfu ghost state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_ghost_metadata_lsize, CTLFLAG_RD, - &ARC_mfu_ghost.arcs_lsize[ARC_BUFC_METADATA], 0, +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_ghost_metadata_esize, CTLFLAG_RD, + &ARC_mfu_ghost.arcs_esize[ARC_BUFC_METADATA].rc_count, 0, "size of metadata in mfu ghost state"); -SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_ghost_data_lsize, CTLFLAG_RD, - &ARC_mfu_ghost.arcs_lsize[ARC_BUFC_DATA], 0, +SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, mfu_ghost_data_esize, CTLFLAG_RD, + &ARC_mfu_ghost.arcs_esize[ARC_BUFC_DATA].rc_count, 0, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sat Sep 3 19:09:04 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49CADBCEE76 for ; Sat, 3 Sep 2016 19:09:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DDC9FDFF; Sat, 3 Sep 2016 19:09:03 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u83J93YJ099634; Sat, 3 Sep 2016 19:09:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u83J92Us099624; Sat, 3 Sep 2016 19:09:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609031909.u83J92Us099624@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 3 Sep 2016 19:09:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305361 - in projects/clang390-import: bin/cat/tests contrib/netbsd-tests contrib/netbsd-tests/bin/cat contrib/netbsd-tests/bin/sh contrib/netbsd-tests/bin/sh/dotcmd contrib/netbsd-test... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2016 19:09:04 -0000 Author: dim Date: Sat Sep 3 19:09:01 2016 New Revision: 305361 URL: https://svnweb.freebsd.org/changeset/base/305361 Log: Merge ^/head r305346 through r305360. Added: projects/clang390-import/contrib/netbsd-tests/bin/cat/d_se_output.in - copied unchanged from r305360, head/contrib/netbsd-tests/bin/cat/d_se_output.in projects/clang390-import/contrib/netbsd-tests/bin/cat/d_se_output.out - copied unchanged from r305360, head/contrib/netbsd-tests/bin/cat/d_se_output.out projects/clang390-import/contrib/netbsd-tests/bin/sh/t_arith.sh - copied unchanged from r305360, head/contrib/netbsd-tests/bin/sh/t_arith.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_cmdsub.sh - copied unchanged from r305360, head/contrib/netbsd-tests/bin/sh/t_cmdsub.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_option.sh - copied unchanged from r305360, head/contrib/netbsd-tests/bin/sh/t_option.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_redir.sh - copied unchanged from r305360, head/contrib/netbsd-tests/bin/sh/t_redir.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_redircloexec.sh - copied unchanged from r305360, head/contrib/netbsd-tests/bin/sh/t_redircloexec.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_shift.sh - copied unchanged from r305360, head/contrib/netbsd-tests/bin/sh/t_shift.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_varval.sh - copied unchanged from r305360, head/contrib/netbsd-tests/bin/sh/t_varval.sh projects/clang390-import/contrib/netbsd-tests/dev/fss/ - copied from r305360, head/contrib/netbsd-tests/dev/fss/ projects/clang390-import/contrib/netbsd-tests/dev/usb/ - copied from r305360, head/contrib/netbsd-tests/dev/usb/ projects/clang390-import/contrib/netbsd-tests/include/sys/t_pslist.c - copied unchanged from r305360, head/contrib/netbsd-tests/include/sys/t_pslist.c projects/clang390-import/contrib/netbsd-tests/kernel/kqueue/t_vnode.c - copied unchanged from r305360, head/contrib/netbsd-tests/kernel/kqueue/t_vnode.c projects/clang390-import/contrib/netbsd-tests/lib/libc/db/h_lfsr.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/db/h_lfsr.c projects/clang390-import/contrib/netbsd-tests/lib/libc/db/t_db_hash_seq.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/db/t_db_hash_seq.c projects/clang390-import/contrib/netbsd-tests/lib/libc/inet/t_inet_addr.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/inet/t_inet_addr.c projects/clang390-import/contrib/netbsd-tests/lib/libc/stdio/t_open_memstream.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/stdio/t_open_memstream.c projects/clang390-import/contrib/netbsd-tests/lib/libc/stdlib/t_strtoi.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/stdlib/t_strtoi.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_bind.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/sys/t_bind.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_getsockname.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/sys/t_getsockname.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_posix_fallocate.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/sys/t_posix_fallocate.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_wait.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libc/sys/t_wait.c projects/clang390-import/contrib/netbsd-tests/lib/libm/t_fenv.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libm/t_fenv.c projects/clang390-import/contrib/netbsd-tests/lib/libm/t_hypot.c - copied unchanged from r305360, head/contrib/netbsd-tests/lib/libm/t_hypot.c projects/clang390-import/contrib/netbsd-tests/lib/libusbhid/ - copied from r305360, head/contrib/netbsd-tests/lib/libusbhid/ projects/clang390-import/contrib/netbsd-tests/net/arp/ - copied from r305360, head/contrib/netbsd-tests/net/arp/ projects/clang390-import/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh projects/clang390-import/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh projects/clang390-import/contrib/netbsd-tests/net/if/ifconf.c - copied unchanged from r305360, head/contrib/netbsd-tests/net/if/ifconf.c projects/clang390-import/contrib/netbsd-tests/net/if/t_ifconf.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/if/t_ifconf.sh projects/clang390-import/contrib/netbsd-tests/net/if/t_ifconfig.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/if/t_ifconfig.sh projects/clang390-import/contrib/netbsd-tests/net/if_gif/ - copied from r305360, head/contrib/netbsd-tests/net/if_gif/ projects/clang390-import/contrib/netbsd-tests/net/if_pppoe/ - copied from r305360, head/contrib/netbsd-tests/net/if_pppoe/ projects/clang390-import/contrib/netbsd-tests/net/if_tap/ - copied from r305360, head/contrib/netbsd-tests/net/if_tap/ projects/clang390-import/contrib/netbsd-tests/net/in_cksum/ - copied from r305360, head/contrib/netbsd-tests/net/in_cksum/ projects/clang390-import/contrib/netbsd-tests/net/mcast/ - copied from r305360, head/contrib/netbsd-tests/net/mcast/ projects/clang390-import/contrib/netbsd-tests/net/mpls/t_mpls_fw6.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/mpls/t_mpls_fw6.sh projects/clang390-import/contrib/netbsd-tests/net/mpls/t_mpls_fw64.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/mpls/t_mpls_fw64.sh projects/clang390-import/contrib/netbsd-tests/net/ndp/ - copied from r305360, head/contrib/netbsd-tests/net/ndp/ projects/clang390-import/contrib/netbsd-tests/net/net/t_forwarding.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/net/t_forwarding.sh projects/clang390-import/contrib/netbsd-tests/net/net/t_ipaddress.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/net/t_ipaddress.sh projects/clang390-import/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh projects/clang390-import/contrib/netbsd-tests/net/net/t_ipv6address.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/net/t_ipv6address.sh projects/clang390-import/contrib/netbsd-tests/net/route/t_flags.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/route/t_flags.sh projects/clang390-import/contrib/netbsd-tests/net/route/t_flags6.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/route/t_flags6.sh projects/clang390-import/contrib/netbsd-tests/net/route/t_route.sh - copied unchanged from r305360, head/contrib/netbsd-tests/net/route/t_route.sh projects/clang390-import/contrib/netbsd-tests/sbin/gpt/ - copied from r305360, head/contrib/netbsd-tests/sbin/gpt/ projects/clang390-import/contrib/netbsd-tests/sbin/resize_ffs/t_check.sh - copied unchanged from r305360, head/contrib/netbsd-tests/sbin/resize_ffs/t_check.sh projects/clang390-import/contrib/netbsd-tests/sys/net/ - copied from r305360, head/contrib/netbsd-tests/sys/net/ projects/clang390-import/contrib/netbsd-tests/sys/netatalk/ - copied from r305360, head/contrib/netbsd-tests/sys/netatalk/ projects/clang390-import/contrib/netbsd-tests/sys/netinet/ - copied from r305360, head/contrib/netbsd-tests/sys/netinet/ projects/clang390-import/contrib/netbsd-tests/sys/netinet6/ - copied from r305360, head/contrib/netbsd-tests/sys/netinet6/ projects/clang390-import/contrib/netbsd-tests/usr.bin/config/d_min - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/config/d_min projects/clang390-import/contrib/netbsd-tests/usr.bin/gdb/ - copied from r305360, head/contrib/netbsd-tests/usr.bin/gdb/ projects/clang390-import/contrib/netbsd-tests/usr.bin/ld/ - copied from r305360, head/contrib/netbsd-tests/usr.bin/ld/ projects/clang390-import/contrib/netbsd-tests/usr.bin/netpgpverify/Testspec - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/netpgpverify/Testspec projects/clang390-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_struct.c - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_struct.c projects/clang390-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_compound_literal_comma.c - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_compound_literal_comma.c projects/clang390-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_flex_array_packed.c - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_flex_array_packed.c projects/clang390-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_nested_struct.c - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_nested_struct.c projects/clang390-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_init4.c - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_init4.c projects/clang390-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_cast_fun_array_param.c - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_cast_fun_array_param.c projects/clang390-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_type_question_colon.c - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_type_question_colon.c projects/clang390-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_typefun.c - copied unchanged from r305360, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_typefun.c projects/clang390-import/lib/libc/tests/stdio/open_memstream2_test.c - copied unchanged from r305360, head/lib/libc/tests/stdio/open_memstream2_test.c projects/clang390-import/sys/arm/allwinner/clk/aw_thsclk.c - copied unchanged from r305360, head/sys/arm/allwinner/clk/aw_thsclk.c projects/clang390-import/sys/boot/i386/boot.ldscript - copied unchanged from r305360, head/sys/boot/i386/boot.ldscript Deleted: projects/clang390-import/contrib/netbsd-tests/bin/sh/t_compexit.sh projects/clang390-import/contrib/netbsd-tests/fs/nfs/nfsservice/mountd.c projects/clang390-import/contrib/netbsd-tests/fs/nfs/nfsservice/nfsd.c projects/clang390-import/lib/libc/tests/stdio/open_memstream_test.c Modified: projects/clang390-import/bin/cat/tests/Makefile projects/clang390-import/contrib/netbsd-tests/bin/cat/d_align.in projects/clang390-import/contrib/netbsd-tests/bin/cat/d_align.out projects/clang390-import/contrib/netbsd-tests/bin/cat/t_cat.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command projects/clang390-import/contrib/netbsd-tests/bin/sh/dotcmd/t_dotcmd.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_evaltested.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_exit.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_expand.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_fsplit.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_here.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_set_e.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_ulimit.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_varquote.sh projects/clang390-import/contrib/netbsd-tests/bin/sh/t_wait.sh projects/clang390-import/contrib/netbsd-tests/crypto/opencrypto/t_opencrypto.sh projects/clang390-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue projects/clang390-import/contrib/netbsd-tests/dev/dm/h_dm.c projects/clang390-import/contrib/netbsd-tests/dev/sysmon/t_swsensor.sh projects/clang390-import/contrib/netbsd-tests/dev/sysmon/t_swwdog.c projects/clang390-import/contrib/netbsd-tests/fs/common/fstest_lfs.c projects/clang390-import/contrib/netbsd-tests/fs/common/h_fsmacros.h projects/clang390-import/contrib/netbsd-tests/fs/nfs/nfsservice/rumpnfsd.c projects/clang390-import/contrib/netbsd-tests/fs/nfs/t_rquotad.sh projects/clang390-import/contrib/netbsd-tests/fs/tmpfs/t_vnd.sh projects/clang390-import/contrib/netbsd-tests/fs/vfs/t_io.c projects/clang390-import/contrib/netbsd-tests/fs/vfs/t_renamerace.c projects/clang390-import/contrib/netbsd-tests/fs/vfs/t_unpriv.c projects/clang390-import/contrib/netbsd-tests/fs/vfs/t_vnops.c projects/clang390-import/contrib/netbsd-tests/games/t_factor.sh projects/clang390-import/contrib/netbsd-tests/h_macros.h projects/clang390-import/contrib/netbsd-tests/include/sys/t_bitops.c projects/clang390-import/contrib/netbsd-tests/include/sys/t_cdefs.c projects/clang390-import/contrib/netbsd-tests/include/sys/t_socket.c projects/clang390-import/contrib/netbsd-tests/include/t_paths.c projects/clang390-import/contrib/netbsd-tests/ipf/expected/n14 projects/clang390-import/contrib/netbsd-tests/ipf/expected/n14_6 projects/clang390-import/contrib/netbsd-tests/ipf/t_filter_parse.sh projects/clang390-import/contrib/netbsd-tests/ipf/t_nat_exec.sh projects/clang390-import/contrib/netbsd-tests/kernel/kqueue/t_ioctl.c projects/clang390-import/contrib/netbsd-tests/kernel/kqueue/t_proc1.c projects/clang390-import/contrib/netbsd-tests/kernel/kqueue/t_proc2.c projects/clang390-import/contrib/netbsd-tests/kernel/kqueue/t_proc3.c projects/clang390-import/contrib/netbsd-tests/kernel/t_rnd.c projects/clang390-import/contrib/netbsd-tests/lib/libbpfjit/t_bpfjit.c projects/clang390-import/contrib/netbsd-tests/lib/libc/arch/ia64/return_one.S projects/clang390-import/contrib/netbsd-tests/lib/libc/arch/powerpc/return_one.S projects/clang390-import/contrib/netbsd-tests/lib/libc/arch/riscv/return_one.S projects/clang390-import/contrib/netbsd-tests/lib/libc/db/t_db.sh projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/execve/t_execve.c projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/isqemu.h projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_spawn.c projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/t_fnmatch.c projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/t_fpsetmask.c projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/t_randomid.c projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/t_siginfo.c projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/t_sleep.c projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/t_time.c projects/clang390-import/contrib/netbsd-tests/lib/libc/gen/t_vis.c projects/clang390-import/contrib/netbsd-tests/lib/libc/inet/t_inet_network.c projects/clang390-import/contrib/netbsd-tests/lib/libc/net/t_servent.sh projects/clang390-import/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c projects/clang390-import/contrib/netbsd-tests/lib/libc/stdlib/t_getenv.c projects/clang390-import/contrib/netbsd-tests/lib/libc/stdlib/t_posix_memalign.c projects/clang390-import/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c projects/clang390-import/contrib/netbsd-tests/lib/libc/stdlib/t_strtol.c projects/clang390-import/contrib/netbsd-tests/lib/libc/string/t_memset.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_connect.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_kevent.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_mlock.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_mmap.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_mprotect.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c projects/clang390-import/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c projects/clang390-import/contrib/netbsd-tests/lib/libc/time/t_strptime.c projects/clang390-import/contrib/netbsd-tests/lib/libcurses/director/testlang_parse.y projects/clang390-import/contrib/netbsd-tests/lib/libm/t_exp.c projects/clang390-import/contrib/netbsd-tests/lib/libm/t_fmod.c projects/clang390-import/contrib/netbsd-tests/lib/libm/t_log.c projects/clang390-import/contrib/netbsd-tests/lib/libm/t_pow.c projects/clang390-import/contrib/netbsd-tests/lib/libpthread/t_cond.c projects/clang390-import/contrib/netbsd-tests/lib/libpthread/t_mutex.c projects/clang390-import/contrib/netbsd-tests/lib/libpthread/t_rwlock.c projects/clang390-import/contrib/netbsd-tests/lib/librumpclient/t_exec.sh projects/clang390-import/contrib/netbsd-tests/lib/librumpclient/t_fd.c projects/clang390-import/contrib/netbsd-tests/lib/librumphijack/t_tcpip.sh projects/clang390-import/contrib/netbsd-tests/lib/libutil/t_parsedate.c projects/clang390-import/contrib/netbsd-tests/net/bpfilter/t_bpfilter.c projects/clang390-import/contrib/netbsd-tests/net/bpfjit/t_bpfjit.c projects/clang390-import/contrib/netbsd-tests/net/icmp/t_forward.c projects/clang390-import/contrib/netbsd-tests/net/icmp/t_ping.c projects/clang390-import/contrib/netbsd-tests/net/icmp/t_ping2.sh projects/clang390-import/contrib/netbsd-tests/net/if_bridge/t_bridge.sh projects/clang390-import/contrib/netbsd-tests/net/mpls/t_ldp_regen.sh projects/clang390-import/contrib/netbsd-tests/net/mpls/t_mpls_fw.sh projects/clang390-import/contrib/netbsd-tests/net/mpls/t_rfc4182.sh projects/clang390-import/contrib/netbsd-tests/net/net/t_tcp.c projects/clang390-import/contrib/netbsd-tests/net/route/t_change.sh projects/clang390-import/contrib/netbsd-tests/rump/modautoload/t_modautoload.c projects/clang390-import/contrib/netbsd-tests/rump/rumpkern/h_server/h_simpleserver.c projects/clang390-import/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c projects/clang390-import/contrib/netbsd-tests/rump/rumpkern/t_sp.sh projects/clang390-import/contrib/netbsd-tests/rump/rumpnet/t_shmif.sh projects/clang390-import/contrib/netbsd-tests/rump/rumpvfs/t_p2kifs.c projects/clang390-import/contrib/netbsd-tests/sbin/resize_ffs/common.sh projects/clang390-import/contrib/netbsd-tests/sbin/resize_ffs/t_grow.sh projects/clang390-import/contrib/netbsd-tests/sbin/resize_ffs/t_grow_swapped.sh projects/clang390-import/contrib/netbsd-tests/sbin/resize_ffs/t_shrink.sh projects/clang390-import/contrib/netbsd-tests/sbin/resize_ffs/t_shrink_swapped.sh projects/clang390-import/contrib/netbsd-tests/sbin/sysctl/t_perm.sh projects/clang390-import/contrib/netbsd-tests/share/mk/t_lib.sh projects/clang390-import/contrib/netbsd-tests/share/mk/t_prog.sh projects/clang390-import/contrib/netbsd-tests/share/mk/t_test.sh projects/clang390-import/contrib/netbsd-tests/usr.bin/cc/t_hello.sh projects/clang390-import/contrib/netbsd-tests/usr.bin/config/support/conf/files projects/clang390-import/contrib/netbsd-tests/usr.bin/config/t_config.sh projects/clang390-import/contrib/netbsd-tests/usr.bin/make/t_make.sh projects/clang390-import/contrib/netbsd-tests/usr.bin/netpgpverify/t_netpgpverify.sh projects/clang390-import/contrib/netbsd-tests/usr.bin/sed/t_sed.sh projects/clang390-import/contrib/netbsd-tests/usr.bin/sort/d_any_char_dflag_out.txt (contents, props changed) projects/clang390-import/contrib/netbsd-tests/usr.bin/sort/d_any_char_fflag_out.txt (contents, props changed) projects/clang390-import/contrib/netbsd-tests/usr.bin/sort/d_any_char_iflag_out.txt (contents, props changed) projects/clang390-import/contrib/netbsd-tests/usr.sbin/traceroute/t_traceroute.sh projects/clang390-import/lib/libc/tests/db/Makefile projects/clang390-import/lib/libc/tests/hash/Makefile projects/clang390-import/lib/libc/tests/inet/Makefile projects/clang390-import/lib/libc/tests/stdio/Makefile projects/clang390-import/lib/libc/tests/stdlib/Makefile projects/clang390-import/lib/libc/tests/sys/Makefile projects/clang390-import/lib/msun/tests/Makefile projects/clang390-import/sys/arm/allwinner/aw_sid.c projects/clang390-import/sys/arm/allwinner/aw_thermal.c projects/clang390-import/sys/arm/allwinner/if_awg.c projects/clang390-import/sys/arm64/conf/GENERIC projects/clang390-import/sys/boot/fdt/dts/arm64/a64.dtsi projects/clang390-import/sys/boot/fdt/dts/arm64/pine64_plus.dts projects/clang390-import/sys/boot/i386/Makefile.inc projects/clang390-import/sys/boot/i386/boot0/Makefile projects/clang390-import/sys/boot/i386/boot2/Makefile projects/clang390-import/sys/boot/i386/btx/btx/Makefile projects/clang390-import/sys/boot/i386/btx/btxldr/Makefile projects/clang390-import/sys/boot/i386/cdboot/Makefile projects/clang390-import/sys/boot/i386/gptboot/Makefile projects/clang390-import/sys/boot/i386/gptzfsboot/Makefile projects/clang390-import/sys/boot/i386/mbr/Makefile projects/clang390-import/sys/boot/i386/pmbr/Makefile projects/clang390-import/sys/boot/i386/pxeldr/Makefile projects/clang390-import/sys/boot/i386/zfsboot/Makefile projects/clang390-import/sys/boot/pc98/Makefile.inc projects/clang390-import/sys/boot/pc98/boot0/Makefile projects/clang390-import/sys/boot/pc98/boot2/Makefile projects/clang390-import/sys/boot/pc98/btx/btx/Makefile projects/clang390-import/sys/boot/pc98/btx/btxldr/Makefile projects/clang390-import/sys/boot/pc98/cdboot/Makefile projects/clang390-import/sys/conf/files.arm64 projects/clang390-import/sys/conf/ldscript.arm64 projects/clang390-import/sys/dev/cxgb/cxgb_sge.c projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei.c projects/clang390-import/tests/sys/acl/04.sh projects/clang390-import/tests/sys/mac/bsdextended/matches_test.sh Directory Properties: projects/clang390-import/ (props changed) projects/clang390-import/contrib/netbsd-tests/ (props changed) Modified: projects/clang390-import/bin/cat/tests/Makefile ============================================================================== --- projects/clang390-import/bin/cat/tests/Makefile Sat Sep 3 19:01:11 2016 (r305360) +++ projects/clang390-import/bin/cat/tests/Makefile Sat Sep 3 19:09:01 2016 (r305361) @@ -6,7 +6,15 @@ NETBSD_ATF_TESTS_SH= cat_test ${PACKAGE}FILES+= d_align.in ${PACKAGE}FILES+= d_align.out +${PACKAGE}FILES+= d_se_output.in +${PACKAGE}FILES+= d_se_output.out .include +d_align.out: ${TESTSRC}/d_align.out + sed -E -e 's,^[[:space:]]{7}\$$$$,\$$,' < ${.ALLSRC} > ${.TARGET}.tmp + mv ${.TARGET}.tmp ${.TARGET} + +CLEANFILES+= d_align.out d_align.out.tmp + .include Modified: projects/clang390-import/contrib/netbsd-tests/bin/cat/d_align.in ============================================================================== --- projects/clang390-import/contrib/netbsd-tests/bin/cat/d_align.in Sat Sep 3 19:01:11 2016 (r305360) +++ projects/clang390-import/contrib/netbsd-tests/bin/cat/d_align.in Sat Sep 3 19:09:01 2016 (r305361) @@ -1,3 +1,5 @@ a b c + 1 2 3 + x y z Modified: projects/clang390-import/contrib/netbsd-tests/bin/cat/d_align.out ============================================================================== --- projects/clang390-import/contrib/netbsd-tests/bin/cat/d_align.out Sat Sep 3 19:01:11 2016 (r305360) +++ projects/clang390-import/contrib/netbsd-tests/bin/cat/d_align.out Sat Sep 3 19:09:01 2016 (r305361) @@ -1,3 +1,5 @@ 1 a b c$ + $ 2 1 2 3$ + $ 3 x y z$ Copied: projects/clang390-import/contrib/netbsd-tests/bin/cat/d_se_output.in (from r305360, head/contrib/netbsd-tests/bin/cat/d_se_output.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/contrib/netbsd-tests/bin/cat/d_se_output.in Sat Sep 3 19:09:01 2016 (r305361, copy of r305360, head/contrib/netbsd-tests/bin/cat/d_se_output.in) @@ -0,0 +1,3 @@ + +Of course it runs NetBSD + Copied: projects/clang390-import/contrib/netbsd-tests/bin/cat/d_se_output.out (from r305360, head/contrib/netbsd-tests/bin/cat/d_se_output.out) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/contrib/netbsd-tests/bin/cat/d_se_output.out Sat Sep 3 19:09:01 2016 (r305361, copy of r305360, head/contrib/netbsd-tests/bin/cat/d_se_output.out) @@ -0,0 +1,3 @@ +$ +Of course it runs NetBSD$ +$ Modified: projects/clang390-import/contrib/netbsd-tests/bin/cat/t_cat.sh ============================================================================== --- projects/clang390-import/contrib/netbsd-tests/bin/cat/t_cat.sh Sat Sep 3 19:01:11 2016 (r305360) +++ projects/clang390-import/contrib/netbsd-tests/bin/cat/t_cat.sh Sat Sep 3 19:09:01 2016 (r305361) @@ -1,4 +1,4 @@ -# $NetBSD: t_cat.sh,v 1.2 2012/03/27 17:57:02 jruoho Exp $ +# $NetBSD: t_cat.sh,v 1.3 2016/06/16 01:04:58 sevan Exp $ # # Copyright (c) 2012 The NetBSD Foundation, Inc. # All rights reserved. @@ -52,8 +52,20 @@ nonexistent_body() { -x "cat /some/name/that/does/not/exist" } +atf_test_case se_output +se_output_head() { + atf_set "descr" "Test that cat(1) prints a $ sign " \ + "on blank lines with options '-se' (PR bin/51250)" +} + +se_output_body() { + atf_check -s ignore -o file:$(atf_get_srcdir)/d_se_output.out \ + -x "cat -se $(atf_get_srcdir)/d_se_output.in" +} + atf_init_test_cases() { atf_add_test_case align atf_add_test_case nonexistent + atf_add_test_case se_output } Modified: projects/clang390-import/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command ============================================================================== --- projects/clang390-import/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command Sat Sep 3 19:01:11 2016 (r305360) +++ projects/clang390-import/contrib/netbsd-tests/bin/sh/dotcmd/scoped_command Sat Sep 3 19:09:01 2016 (r305361) @@ -1,6 +1,6 @@ #!/bin/sh # -# $NetBSD: scoped_command,v 1.1 2014/05/31 14:29:06 christos Exp $ +# $NetBSD: scoped_command,v 1.2 2016/03/27 14:57:50 christos Exp $ # # Copyright (c) 2014 The NetBSD Foundation, Inc. # All rights reserved. @@ -30,6 +30,27 @@ # POSSIBILITY OF SUCH DAMAGE. # +: ${TEST_SH:=/bin/sh} + +sane_sh() +{ + set -- ${TEST_SH} + case "$#" in + (0) set /bin/sh;; + (1|2) ;; + (*) set "$1";; # Just ignore options if we cannot make them work + esac + + case "$1" in + /*) TEST_SH="$1${2+ }$2";; + ./*) TEST_SH="${PWD}${1#.}${2+ }$2";; + */*) TEST_SH="${PWD}/$1${2+ }$2";; + *) TEST_SH="$( command -v "$1" )${2+ }$2";; + esac +} + +sane_sh + set -e # USAGE: @@ -52,7 +73,7 @@ cmd="echo 'before ${3}' ${2} echo 'after ${3}, return value:' ${?}" -echo "#!/bin/sh" +echo "#!${TEST_SH}" [ 'func' = "${1}" ] && cat </dev/null + then + # 16 bits or less, or hex unsupported, just give up... + return + fi + test $( ${TEST_SH} -c 'echo $(( 0x1FFFF ))' ) = 131071 || return + + # when attempting to exceed the number of available bits + # the shell may react in any of 3 (rational) ways + # 1. syntax error (maybe even core dump...) and fail + # 2. represent a positive number input as negative value + # 3. keep the number positive, but not the value expected + # (perhaps pegged at the max possible value) + # any of those may be accompanied by a message to stderr + + # Must check all 3 possibilities for each plausible size + # Tests do not use 0x8000... because that value can have weird + # other side effects that are not relevant to discover here. + # But we do want to try and force the sign bit set. + + if ! ${TEST_SH} -c ': $(( 0xC0000000 ))' 2>/dev/null + then + # proobably shell detected overflow and complained + ARITH_BITS=32 + return + fi + if ${TEST_SH} 2>/dev/null \ + -c 'case $(( 0xC0000000 )); in (-*) exit 0;; esac; exit 1' + then + ARITH_BITS=32 + return + fi + if ${TEST_SH} -c '[ $(( 0xC0000000 )) != 3221225472 ]' 2>/dev/null + then + ARITH_BITS=32 + return + fi + + if ! ${TEST_SH} -c ': $(( 0xC000000000000000 ))' 2>/dev/null + then + ARITH_BITS=64 + return + fi + if ${TEST_SH} 2>/dev/null \ + -c 'case $(( 0xC000000000000000 )); in (-*) exit 0;; esac; exit 1' + then + ARITH_BITS=64 + return + fi + if ${TEST_SH} 2>/dev/null \ + -c '[ $((0xC000000000000000)) != 13835058055282163712 ]' + then + ARITH_BITS=64 + return + fi + + if ${TEST_SH} 2>/dev/null -c \ + '[ $((0x123456781234567812345678)) = 5634002657842756053938493048 ]' + then + # just assume... (for now anyway, revisit when it happens...) + ARITH_BITS=96 + return + fi +} + +atf_test_case constants +constants_head() +{ + atf_set "descr" "Tests that arithmetic expansion can handle constants" +} +constants_body() +{ + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $((0x0))' + + # atf_expect_fail "PR bin/50959" + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $((0X0))' + # atf_expect_pass + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $((000))' + + atf_check -s exit:0 -o inline:'1\n' -e empty \ + ${TEST_SH} -c 'echo $(( 000000001 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty \ + ${TEST_SH} -c 'echo $(( 0x000000 ))' + + atf_check -s exit:0 -o inline:'99999\n' -e empty \ + ${TEST_SH} -c 'echo $((99999))' + + [ ${ARITH_BITS} -gt 44 ] && + atf_check -s exit:0 -o inline:'9191919191919\n' -e empty \ + ${TEST_SH} -c 'echo $((9191919191919))' + + atf_check -s exit:0 -o inline:'13\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xD ))' + atf_check -s exit:0 -o inline:'11\n' -e empty ${TEST_SH} -c \ + 'echo $(( 013 ))' + atf_check -s exit:0 -o inline:'7\n' -e empty ${TEST_SH} -c \ + 'x=7;echo $(($x))' + atf_check -s exit:0 -o inline:'9\n' -e empty ${TEST_SH} -c \ + 'x=9;echo $((x))' + + atf_check -s exit:0 -o inline:'11\n' -e empty \ + ${TEST_SH} -c 'x=0xB; echo $(( $x ))' + atf_check -s exit:0 -o inline:'27\n' -e empty \ + ${TEST_SH} -c 'x=0X1B; echo $(( x ))' + atf_check -s exit:0 -o inline:'27\n' -e empty \ + ${TEST_SH} -c 'X=033; echo $(( $X ))' + atf_check -s exit:0 -o inline:'219\n' -e empty \ + ${TEST_SH} -c 'X=0333; echo $(( X ))' + atf_check -s exit:0 -o inline:'0\n' -e empty \ + ${TEST_SH} -c 'NULL=; echo $(( NULL ))' + + # Not clear if this is 0, nothing, or an error, so omit for now + # atf_check -s exit:0 -o inline:'0\n' -e empty \ + # ${TEST_SH} -c 'echo $(( ))' + + # not clear whether this should return 0 or an error, so omit for now + # atf_check -s exit:0 -o inline:'0\n' -e empty \ + # ${TEST_SH} -c 'echo $(( UNDEFINED_VAR ))' +} + + +atf_test_case do_unary_plus +do_unary_plus_head() +{ + atf_set "descr" "Tests that unary plus works as expected" +} +do_unary_plus_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( +0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( +1 ))' + atf_check -s exit:0 -o inline:'6\n' -e empty ${TEST_SH} -c \ + 'echo $(( + 6 ))' + atf_check -s exit:0 -o inline:'4321\n' -e empty ${TEST_SH} -c \ + 'echo $(( + 4321 ))' + atf_check -s exit:0 -o inline:'17185\n' -e empty ${TEST_SH} -c \ + 'echo $(( + 0x4321 ))' +} + +atf_test_case do_unary_minus +do_unary_minus_head() +{ + atf_set "descr" "Tests that unary minus works as expected" +} +do_unary_minus_body() +{ + atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \ + 'echo $(( -1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( - 0 ))' + atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \ + 'echo $(( - 1 ))' + atf_check -s exit:0 -o inline:'-6\n' -e empty ${TEST_SH} -c \ + 'echo $(( - 6 ))' + atf_check -s exit:0 -o inline:'-4321\n' -e empty ${TEST_SH} -c \ + 'echo $(( - 4321 ))' + atf_check -s exit:0 -o inline:'-2257\n' -e empty ${TEST_SH} -c \ + 'echo $(( - 04321 ))' + atf_check -s exit:0 -o inline:'-7\n' -e empty ${TEST_SH} -c \ + 'echo $((-7))' +} + +atf_test_case do_unary_not +do_unary_not_head() +{ + atf_set "descr" "Tests that unary not (boolean) works as expected" +} +do_unary_not_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( ! 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( ! 0 ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( !1234 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( !0xFFFF ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( ! 000000 ))' +} + +atf_test_case do_unary_tilde +do_unary_tilde_head() +{ + atf_set "descr" "Tests that unary not (bitwise) works as expected" +} +do_unary_tilde_body() +{ + # definitely 2's complement arithmetic here... + + atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \ + 'echo $(( ~ 0 ))' + atf_check -s exit:0 -o inline:'-2\n' -e empty ${TEST_SH} -c \ + 'echo $(( ~ 1 ))' + + atf_check -s exit:0 -o inline:'-1235\n' -e empty ${TEST_SH} -c \ + 'echo $(( ~1234 ))' + atf_check -s exit:0 -o inline:'-256\n' -e empty ${TEST_SH} -c \ + 'echo $(( ~0xFF ))' +} + +atf_test_case elementary_add +elementary_add_head() +{ + atf_set "descr" "Tests that simple addition works as expected" +} +elementary_add_body() +{ + # some of these tests actually test unary ops & op precedence... + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 + 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 + 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 + 1 ))' + atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 + 1 ))' + atf_check -s exit:0 -o inline:'10\n' -e empty ${TEST_SH} -c \ + 'echo $(( 4 + 6 ))' + atf_check -s exit:0 -o inline:'10\n' -e empty ${TEST_SH} -c \ + 'echo $(( 6 + 4 ))' + atf_check -s exit:0 -o inline:'5555\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1234 + 4321 ))' + atf_check -s exit:0 -o inline:'3333\n' -e empty ${TEST_SH} -c \ + 'echo $((1111+2222))' + atf_check -s exit:0 -o inline:'5555\n' -e empty ${TEST_SH} -c \ + 'echo $((+3333+2222))' + atf_check -s exit:0 -o inline:'7777\n' -e empty ${TEST_SH} -c \ + 'echo $((+3333 + +4444))' + atf_check -s exit:0 -o inline:'-7777\n' -e empty ${TEST_SH} -c \ + 'echo -$((+4125+ +3652))' +} + +atf_test_case elementary_sub +elementary_sub_head() +{ + atf_set "descr" "Tests that simple subtraction works as expected" +} +elementary_sub_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 - 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 - 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 - 1 ))' + atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 - 1 ))' + atf_check -s exit:0 -o inline:'488\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1066 - 578 ))' + atf_check -s exit:0 -o inline:'-3662\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2016-5678 ))' + atf_check -s exit:0 -o inline:'-3662\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2016+-5678 ))' + atf_check -s exit:0 -o inline:'-3662\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2016-+5678 ))' + atf_check -s exit:0 -o inline:'-7694\n' -e empty ${TEST_SH} -c \ + 'echo $(( -2016-5678 ))' + atf_check -s exit:0 -o inline:'--1\n' -e empty ${TEST_SH} -c \ + 'echo -$(( -1018 - -1017 ))' +} + +atf_test_case elementary_mul +elementary_mul_head() +{ + atf_set "descr" "Tests that simple multiplication works as expected" +} +elementary_mul_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 * 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 * 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 * 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 * 1 ))' + atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \ + 'echo $(( -1 * 1 ))' + atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 * -1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( -1 * -1 ))' + atf_check -s exit:0 -o inline:'391\n' -e empty ${TEST_SH} -c \ + 'echo $(( 17 * 23 ))' + atf_check -s exit:0 -o inline:'169\n' -e empty ${TEST_SH} -c \ + 'echo $(( 13*13 ))' + atf_check -s exit:0 -o inline:'-11264\n' -e empty ${TEST_SH} -c \ + 'echo $(( -11 *1024 ))' + atf_check -s exit:0 -o inline:'-16983\n' -e empty ${TEST_SH} -c \ + 'echo $(( 17* -999 ))' + atf_check -s exit:0 -o inline:'9309\n' -e empty ${TEST_SH} -c \ + 'echo $(( -29*-321 ))' +} + +atf_test_case elementary_div +elementary_div_head() +{ + atf_set "descr" "Tests that simple division works as expected" +} +elementary_div_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 / 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 / 1 ))' + test ${ARITH_BITS} -ge 38 && + atf_check -s exit:0 -o inline:'99999999999\n' -e empty \ + ${TEST_SH} -c 'echo $(( 99999999999 / 1 ))' + atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2 / 1 ))' + + atf_check -s exit:0 -o inline:'3\n' -e empty ${TEST_SH} -c \ + 'echo $(( 3 / 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 3 / 2 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 3 / 3 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 3 / 4 ))' + + atf_check -s exit:0 -o inline:'173\n' -e empty ${TEST_SH} -c \ + 'echo $(( 123456 / 713 ))' + atf_check -s exit:0 -o inline:'13\n' -e empty ${TEST_SH} -c \ + 'echo $(( 169 / 13 ))' +} + +atf_test_case elementary_rem +elementary_rem_head() +{ + atf_set "descr" "Tests that simple modulus works as expected" +} +elementary_rem_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 % 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 % 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2 % 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 9999 % 1 ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 % 2 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 % 2 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2 % 2 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xFFFF % 2 ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 % 3 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 % 3 ))' + atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2 % 3 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 3 % 3 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 3123 % 3 ))' + + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 9999 % 2 ))' + + atf_check -s exit:0 -o inline:'107\n' -e empty ${TEST_SH} -c \ + 'echo $(( 123456%173 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $((169%13))' +} + +atf_test_case elementary_shl +elementary_shl_head() +{ + atf_set "descr" "Tests that simple shift left works as expected" +} +elementary_shl_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 << 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 << 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 << 17 ))' + + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 << 0 ))' + atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 << 1 ))' + atf_check -s exit:0 -o inline:'131072\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 << 17 ))' + + atf_check -s exit:0 -o inline:'2021161080\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x3C3C3C3C << 1 ))' + + test "${ARITH_BITS}" -ge 40 && + atf_check -s exit:0 -o inline:'129354309120\n' -e empty \ + ${TEST_SH} -c 'echo $(( 0x3C3C3C3C << 7 ))' + test "${ARITH_BITS}" -ge 72 && + atf_check -s exit:0 -o inline:'1111145054534149079040\n' \ + -e empty ${TEST_SH} -c 'echo $(( 0x3C3C3C3C << 40 ))' + + return 0 +} + +atf_test_case elementary_shr +elementary_shr_head() +{ + atf_set "descr" "Tests that simple shift right works as expected" +} +elementary_shr_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 >> 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 >> 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 >> 17 ))' + + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 >> 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 >> 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2 >> 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 3 >> 1 ))' + + atf_check -s exit:0 -o inline:'4\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x10 >> 2 ))' + atf_check -s exit:0 -o inline:'4\n' -e empty ${TEST_SH} -c \ + 'echo $(( 022 >> 2 ))' + + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 131072 >> 17 ))' + + test ${ARITH_BITS} -ge 40 && + atf_check -s exit:0 -o inline:'8\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x4000000000 >> 35 ))' + test ${ARITH_BITS} -ge 80 && + atf_check -s exit:0 -o inline:'4464\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x93400FACE005C871000 >> 64 ))' + + return 0 +} + +atf_test_case elementary_eq +elementary_eq_head() +{ + atf_set "descr" "Tests that simple equality test works as expected" +} +elementary_eq_body() +{ + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 == 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 == 0000 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 == 0x00 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 == 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'X=30; Y=0x1E; echo $(( X == Y ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x1234 == 4660 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x1234 == 011064 ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 == 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 == 0000000000000001 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 == 0x10000000000000 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 == 2 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'X=3; Y=7; echo $(( X == Y ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1234 == 0x4660 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 01234 == 0x11064 ))' +} +atf_test_case elementary_ne +elementary_ne_head() +{ + atf_set "descr" "Tests that simple inequality test works as expected" +} +elementary_ne_body() +{ + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 != 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x71 != 17 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1234 != 01234 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x1234 != 01234 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'X=3; echo $(( X != 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'X=3; Y=0x11; echo $(( X != Y ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 3 != 3 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 != 0x0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xA != 012 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'X=1; echo $(( X != 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'X=0xC; Y=014; echo $(( X != Y ))' +} +atf_test_case elementary_lt +elementary_lt_head() +{ + atf_set "descr" "Tests that simple less than test works as expected" +} +elementary_lt_body() +{ + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 < 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( -1 < 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 < 10 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 100 < 101 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xA1 < 200 ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 < 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 < 0 ))' + + test ${ARITH_BITS} -ge 40 && + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x1BEEFF00D < 0x1FACECAFE ))' + + return 0 +} +atf_test_case elementary_le +elementary_le_head() +{ + atf_set "descr" "Tests that simple less or equal test works as expected" +} +elementary_le_body() +{ + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 <= 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( -1 <= 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 <= 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 <= 10 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 100 <= 101 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xA1 <= 161 ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 <= 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( -100 <= -200 ))' + + test ${ARITH_BITS} -ge 40 && + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'cost=; AUD=; echo $(( $cost 0x2FEEDBABE <= $AUD 12866927294 ))' + + return 0 +} +atf_test_case elementary_gt +elementary_gt_head() +{ + atf_set "descr" "Tests that simple greater than works as expected" +} +elementary_gt_body() +{ + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 > 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 > -1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 11 > 012 ))' + + # atf_expect_fail "PR bin/50959" + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2147483647 > 0X7FFFFF0 ))' + # atf_expect_pass + + test ${ARITH_BITS} -gt 32 && + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x80000000 > 0x7FFFFFFF ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 > 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 > 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( -1 > 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 > 10 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2015 > 2016 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xA1 > 200 ))' + + test ${ARITH_BITS} -ge 44 && + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x7F07F07F0 > 34099628014 ))' + + return 0 +} +atf_test_case elementary_ge +elementary_ge_head() +{ + atf_set "descr" "Tests that simple greater or equal works as expected" +} +elementary_ge_body() +{ + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 >= 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 >= 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( -100 >= -101 ))' + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( -1 >= 0 ))' +} + +atf_test_case fiddle_bits_and +fiddle_bits_and_head() +{ + atf_set "descr" "Test bitwise and operations in arithmetic expressions" +} +fiddle_bits_and_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 & 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 & 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 & 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 & 1 ))' + + atf_check -s exit:0 -o inline:'255\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xFF & 0xFF ))' + atf_check -s exit:0 -o inline:'255\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xFFFF & 0377 ))' + + test "${ARITH_BITS}" -ge 48 && + atf_check -s exit:0 -o inline:'70377641607203\n' -e empty \ + ${TEST_SH} -c 'echo $(( 0x5432FEDC0123 & 0x42871357BAB3 ))' + + return 0 +} +atf_test_case fiddle_bits_or +fiddle_bits_or_head() +{ + atf_set "descr" "Test bitwise or operations in arithmetic expressions" +} +fiddle_bits_or_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 | 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 | 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 | 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 | 1 ))' + + atf_check -s exit:0 -o inline:'4369\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x1111 | 0x1111 ))' + atf_check -s exit:0 -o inline:'255\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xAA | 0125 ))' + + test "${ARITH_BITS}" -ge 48 && + atf_check -s exit:0 -o inline:'95348271856563\n' -e empty \ + ${TEST_SH} -c 'echo $(( 0x5432FEDC0123 | 0x42871357BAB3 ))' + + return 0 +} +atf_test_case fiddle_bits_xor +fiddle_bits_xor_head() +{ + atf_set "descr" "Test bitwise xor operations in arithmetic expressions" +} +fiddle_bits_xor_body() +{ + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 ^ 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 ^ 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 ^ 1 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 ^ 1 ))' + + atf_check -s exit:0 -o inline:'255\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xF0 ^ 0x0F ))' + atf_check -s exit:0 -o inline:'15\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xF0 ^ 0xFF ))' + + test "${ARITH_BITS}" -ge 48 && + atf_check -s exit:0 -o inline:'24970630249360\n' -e empty \ + ${TEST_SH} -c 'echo $(( 0x5432FEDC0123 ^ 0x42871357BAB3 ))' + + return 0 +} + +atf_test_case logical_and +logical_and_head() +{ + atf_set "descr" "Test logical and operations in arithmetic expressions" +} +logical_and_body() +{ + # cannot test short-circuit eval until sh implements side effects... + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 && 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 && 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 && 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 && 1 ))' + + # atf_expect_fail "PR bin/50960" + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x1111 && 01234 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0xFFFF && 0xF0F0 ))' +} +atf_test_case logical_or +logical_or_head() +{ + atf_set "descr" "Test logical or operations in arithmetic expressions" +} +logical_or_body() +{ + # cannot test short-circuit eval until sh implements side effects... + + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 || 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 || 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 || 1 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 || 1 ))' + + # atf_expect_fail "PR bin/50960" + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x1111 || 01234 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x33 || 0xF0F0 ))' +} + +atf_test_case make_selection +make_selection_head() +{ + atf_set "descr" "Test ?: operator in arithmetic expressions" +} +make_selection_body() +{ + # atf_expect_fail "PR bin/50958" + + atf_check -s exit:0 -o inline:'3\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0 ? 2 : 3 ))' + atf_check -s exit:0 -o inline:'2\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 ? 2 : 3 ))' + + atf_check -s exit:0 -o inline:'111\n' -e empty ${TEST_SH} -c \ + 'echo $(( 0x1234 ? 111 : 222 ))' + + atf_check -s exit:0 -o inline:'-1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 < 2 ? -1 : 1 > 2 ? 1 : 0 ))' + atf_check -s exit:0 -o inline:'0\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 < 1 ? -1 : 1 > 1 ? 1 : 0 ))' + atf_check -s exit:0 -o inline:'1\n' -e empty ${TEST_SH} -c \ + 'echo $(( 2 < 1 ? -1 : 2 > 1 ? 1 : 0 ))' +} + +atf_test_case operator_precedence +operator_precedence_head() +{ + atf_set "descr" "Test operator precedence without parentheses" +} +operator_precedence_body() +{ + # NB: apart from $(( )) ** NO ** parentheses in the expressions. + + atf_check -s exit:0 -o inline:'6\n' -e empty ${TEST_SH} -c \ + 'echo $(( 1 + 2 + 3 ))' *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sat Sep 3 21:41:32 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E432CBCDDBE for ; Sat, 3 Sep 2016 21:41:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 641082D9; Sat, 3 Sep 2016 21:41:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u83LfV5c058799; Sat, 3 Sep 2016 21:41:31 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u83LfUZV058781; Sat, 3 Sep 2016 21:41:30 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201609032141.u83LfUZV058781@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 3 Sep 2016 21:41:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r305364 - in projects/clang390-import: contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/bu... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2016 21:41:33 -0000 Author: dim Date: Sat Sep 3 21:41:29 2016 New Revision: 305364 URL: https://svnweb.freebsd.org/changeset/base/305364 Log: Update compiler-rt to 3.9.0 release, and update the build glue for libcompiler_rt and libclang_rt. Added: projects/clang390-import/contrib/compiler-rt/include/sanitizer/esan_interface.h - copied unchanged from r305361, vendor/compiler-rt/dist/include/sanitizer/esan_interface.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_memory_profile.cc - copied unchanged from r305361, vendor/compiler-rt/dist/lib/asan/asan_memory_profile.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_scariness_score.h - copied unchanged from r305361, vendor/compiler-rt/dist/lib/asan/asan_scariness_score.h projects/clang390-import/contrib/compiler-rt/lib/builtins/cpu_model.c - copied unchanged from r305361, vendor/compiler-rt/dist/lib/builtins/cpu_model.c projects/clang390-import/contrib/compiler-rt/lib/esan/ - copied from r305361, vendor/compiler-rt/dist/lib/esan/ projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingMerge.c - copied unchanged from r305361, vendor/compiler-rt/dist/lib/profile/InstrProfilingMerge.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingMergeFile.c - copied unchanged from r305361, vendor/compiler-rt/dist/lib/profile/InstrProfilingMergeFile.c projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc - copied unchanged from r305361, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_s390.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_x86_64.S - copied unchanged from r305361, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_x86_64.S projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc - copied unchanged from r305361, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_termination.cc projects/clang390-import/contrib/compiler-rt/lib/scudo/ - copied from r305361, vendor/compiler-rt/dist/lib/scudo/ projects/clang390-import/contrib/compiler-rt/lib/stats/ - copied from r305361, vendor/compiler-rt/dist/lib/stats/ projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_debugging.cc - copied unchanged from r305361, vendor/compiler-rt/dist/lib/tsan/rtl/tsan_debugging.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_preinit.cc - copied unchanged from r305361, vendor/compiler-rt/dist/lib/tsan/rtl/tsan_preinit.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cc - copied unchanged from r305361, vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_proc.cc projects/clang390-import/lib/libclang_rt/stats/ projects/clang390-import/lib/libclang_rt/stats/Makefile (contents, props changed) projects/clang390-import/lib/libclang_rt/stats_client/ projects/clang390-import/lib/libclang_rt/stats_client/Makefile (contents, props changed) Deleted: projects/clang390-import/contrib/compiler-rt/lib/esan/CMakeLists.txt projects/clang390-import/contrib/compiler-rt/lib/scudo/CMakeLists.txt projects/clang390-import/contrib/compiler-rt/lib/stats/CMakeLists.txt Modified: projects/clang390-import/contrib/compiler-rt/LICENSE.TXT projects/clang390-import/contrib/compiler-rt/include/sanitizer/allocator_interface.h projects/clang390-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h projects/clang390-import/contrib/compiler-rt/include/sanitizer/linux_syscall_hooks.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_activation.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_allocator.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_allocator.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_fake_stack.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_fake_stack.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_flags.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_flags.inc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_globals.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_init_version.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interceptors.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interface_internal.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_internal.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_linux.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_mac.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_malloc_win.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_mapping.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_poisoning.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_posix.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_report.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_report.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_rtl.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_stack.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_suppressions.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_thread.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_thread.h projects/clang390-import/contrib/compiler-rt/lib/asan/asan_win.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc projects/clang390-import/contrib/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_dcmp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_idivmod.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_ldivmod.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_memcmp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_memcpy.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_memmove.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_memset.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/aeabi_uldivmod.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/bswapdi2.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/bswapsi2.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/clzdi2.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/clzsi2.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/divmodsi4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/divsi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/modsi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/restore_vfp_d8_d15_regs.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/save_vfp_d8_d15_regs.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/switch16.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/switch32.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/switch8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/switchu8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_8.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/sync_synchronize.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/udivmodsi4.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/udivsi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/umodsi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S projects/clang390-import/contrib/compiler-rt/lib/builtins/assembly.h projects/clang390-import/contrib/compiler-rt/lib/builtins/clear_cache.c projects/clang390-import/contrib/compiler-rt/lib/builtins/emutls.c projects/clang390-import/contrib/compiler-rt/lib/builtins/floatdidf.c projects/clang390-import/contrib/compiler-rt/lib/builtins/floattidf.c projects/clang390-import/contrib/compiler-rt/lib/builtins/floatundidf.c projects/clang390-import/contrib/compiler-rt/lib/builtins/floatuntidf.c projects/clang390-import/contrib/compiler-rt/lib/builtins/gcc_personality_v0.c projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/ashldi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/ashrdi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/divdi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/floatdidf.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/floatdisf.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/floatdixf.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/floatundidf.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/floatundisf.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/floatundixf.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/lshrdi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/moddi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/muldi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/udivdi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/i386/umoddi3.S projects/clang390-import/contrib/compiler-rt/lib/builtins/int_lib.h projects/clang390-import/contrib/compiler-rt/lib/builtins/ppc/restFP.S projects/clang390-import/contrib/compiler-rt/lib/builtins/ppc/saveFP.S projects/clang390-import/contrib/compiler-rt/lib/builtins/x86_64/floatundidf.S projects/clang390-import/contrib/compiler-rt/lib/builtins/x86_64/floatundisf.S projects/clang390-import/contrib/compiler-rt/lib/builtins/x86_64/floatundixf.S projects/clang390-import/contrib/compiler-rt/lib/cfi/cfi.cc projects/clang390-import/contrib/compiler-rt/lib/dfsan/dfsan.cc projects/clang390-import/contrib/compiler-rt/lib/interception/interception_win.cc projects/clang390-import/contrib/compiler-rt/lib/interception/interception_win.h projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan.cc projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan.h projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan_common.cc projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan_common.h projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan_thread.cc projects/clang390-import/contrib/compiler-rt/lib/lsan/lsan_thread.h projects/clang390-import/contrib/compiler-rt/lib/msan/msan.cc projects/clang390-import/contrib/compiler-rt/lib/msan/msan.h projects/clang390-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc projects/clang390-import/contrib/compiler-rt/lib/msan/msan_linux.cc projects/clang390-import/contrib/compiler-rt/lib/msan/msan_report.cc projects/clang390-import/contrib/compiler-rt/lib/profile/GCDAProfiling.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfData.inc projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfiling.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfiling.h projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingPlatformDarwin.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingPort.h projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingValue.c projects/clang390-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c projects/clang390-import/contrib/compiler-rt/lib/profile/WindowsMMap.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_msvc.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_mapping_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_list.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc projects/clang390-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/dd/dd_interceptors.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/go/test.c projects/clang390-import/contrib/compiler-rt/lib/tsan/go/tsan_go.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.h projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.cc projects/clang390-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_platform.h projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.h projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc projects/clang390-import/contrib/compiler-rt/lib/ubsan/ubsan_value.cc projects/clang390-import/lib/libclang_rt/Makefile projects/clang390-import/lib/libclang_rt/Makefile.inc projects/clang390-import/lib/libclang_rt/asan-preinit/Makefile projects/clang390-import/lib/libclang_rt/asan/Makefile projects/clang390-import/lib/libclang_rt/asan_cxx/Makefile projects/clang390-import/lib/libclang_rt/asan_dynamic/Makefile projects/clang390-import/lib/libclang_rt/include/Makefile projects/clang390-import/lib/libclang_rt/profile/Makefile projects/clang390-import/lib/libclang_rt/safestack/Makefile projects/clang390-import/lib/libclang_rt/ubsan_standalone/Makefile projects/clang390-import/lib/libclang_rt/ubsan_standalone_cxx/Makefile projects/clang390-import/lib/libcompiler_rt/Makefile Directory Properties: projects/clang390-import/contrib/compiler-rt/ (props changed) Modified: projects/clang390-import/contrib/compiler-rt/LICENSE.TXT ============================================================================== --- projects/clang390-import/contrib/compiler-rt/LICENSE.TXT Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/LICENSE.TXT Sat Sep 3 21:41:29 2016 (r305364) @@ -14,7 +14,7 @@ Full text of the relevant licenses is in University of Illinois/NCSA Open Source License -Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2016 by the contributors listed in CREDITS.TXT All rights reserved. Modified: projects/clang390-import/contrib/compiler-rt/include/sanitizer/allocator_interface.h ============================================================================== --- projects/clang390-import/contrib/compiler-rt/include/sanitizer/allocator_interface.h Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/include/sanitizer/allocator_interface.h Sat Sep 3 21:41:29 2016 (r305364) @@ -59,6 +59,23 @@ extern "C" { deallocation of "ptr". */ void __sanitizer_malloc_hook(const volatile void *ptr, size_t size); void __sanitizer_free_hook(const volatile void *ptr); + + /* Installs a pair of hooks for malloc/free. + Several (currently, 5) hook pairs may be installed, they are executed + in the order they were installed and after calling + __sanitizer_malloc_hook/__sanitizer_free_hook. + Unlike __sanitizer_malloc_hook/__sanitizer_free_hook these hooks can be + chained and do not rely on weak symbols working on the platform, but + require __sanitizer_install_malloc_and_free_hooks to be called at startup + and thus will not be called on malloc/free very early in the process. + Returns the number of hooks currently installed or 0 on failure. + Not thread-safe, should be called in the main thread before starting + other threads. + */ + int __sanitizer_install_malloc_and_free_hooks( + void (*malloc_hook)(const volatile void *, size_t), + void (*free_hook)(const volatile void *)); + #ifdef __cplusplus } // extern "C" #endif Modified: projects/clang390-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- projects/clang390-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Sat Sep 3 21:41:29 2016 (r305364) @@ -41,6 +41,9 @@ extern "C" { // Tell the tools to write their reports to "path." instead of stderr. void __sanitizer_set_report_path(const char *path); + // Tell the tools to write their reports to the provided file descriptor + // (casted to void *). + void __sanitizer_set_report_fd(void *fd); // Notify the tools that the sandbox is going to be turned on. The reserved // parameter will be used in the future to hold a structure with functions @@ -128,8 +131,45 @@ extern "C" { const void *s2, size_t n, int result); void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1, const char *s2, size_t n, int result); + void __sanitizer_weak_hook_strncasecmp(void *called_pc, const char *s1, + const char *s2, size_t n, int result); void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1, const char *s2, int result); + void __sanitizer_weak_hook_strcasecmp(void *called_pc, const char *s1, + const char *s2, int result); + void __sanitizer_weak_hook_strstr(void *called_pc, const char *s1, + const char *s2, char *result); + void __sanitizer_weak_hook_strcasestr(void *called_pc, const char *s1, + const char *s2, char *result); + void __sanitizer_weak_hook_memmem(void *called_pc, + const void *s1, size_t len1, + const void *s2, size_t len2, void *result); + + // Prints stack traces for all live heap allocations ordered by total + // allocation size until `top_percent` of total live heap is shown. + // `top_percent` should be between 1 and 100. + // Experimental feature currently available only with asan on Linux/x86_64. + void __sanitizer_print_memory_profile(size_t top_percent); + + // Fiber annotation interface. + // Before switching to a different stack, one must call + // __sanitizer_start_switch_fiber with a pointer to the bottom of the + // destination stack and its size. When code starts running on the new stack, + // it must call __sanitizer_finish_switch_fiber to finalize the switch. + // The start_switch function takes a void** to store the current fake stack if + // there is one (it is needed when detect_stack_use_after_return is enabled). + // When restoring a stack, this pointer must be given to the finish_switch + // function. In most cases, this void* can be stored on the stack just before + // switching. When leaving a fiber definitely, null must be passed as first + // argument to the start_switch function so that the fake stack is destroyed. + // If you do not want support for stack use-after-return detection, you can + // always pass null to these two functions. + // Note that the fake stack mechanism is disabled during fiber switch, so if a + // signal callback runs during the switch, it will not benefit from the stack + // use-after-return detection. + void __sanitizer_start_switch_fiber(void **fake_stack_save, + const void *bottom, size_t size); + void __sanitizer_finish_switch_fiber(void *fake_stack_save); #ifdef __cplusplus } // extern "C" #endif Copied: projects/clang390-import/contrib/compiler-rt/include/sanitizer/esan_interface.h (from r305361, vendor/compiler-rt/dist/include/sanitizer/esan_interface.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang390-import/contrib/compiler-rt/include/sanitizer/esan_interface.h Sat Sep 3 21:41:29 2016 (r305364, copy of r305361, vendor/compiler-rt/dist/include/sanitizer/esan_interface.h) @@ -0,0 +1,50 @@ +//===-- sanitizer/esan_interface.h ------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of EfficiencySanitizer, a family of performance tuners. +// +// Public interface header. +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_ESAN_INTERFACE_H +#define SANITIZER_ESAN_INTERFACE_H + +#include + +// We declare our interface routines as weak to allow the user to avoid +// ifdefs and instead use this pattern to allow building the same sources +// with and without our runtime library: +// if (__esan_report) +// __esan_report(); +#ifdef _MSC_VER +/* selectany is as close to weak as we'll get. */ +#define COMPILER_RT_WEAK __declspec(selectany) +#elif __GNUC__ +#define COMPILER_RT_WEAK __attribute__((weak)) +#else +#define COMPILER_RT_WEAK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +// This function can be called mid-run (or at the end of a run for +// a server process that doesn't shut down normally) to request that +// data for that point in the run be reported from the tool. +void COMPILER_RT_WEAK __esan_report(); + +// This function returns the number of samples that the esan tool has collected +// to this point. This is useful for testing. +unsigned int COMPILER_RT_WEAK __esan_get_sample_count(); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // SANITIZER_ESAN_INTERFACE_H Modified: projects/clang390-import/contrib/compiler-rt/include/sanitizer/linux_syscall_hooks.h ============================================================================== --- projects/clang390-import/contrib/compiler-rt/include/sanitizer/linux_syscall_hooks.h Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/include/sanitizer/linux_syscall_hooks.h Sat Sep 3 21:41:29 2016 (r305364) @@ -1835,6 +1835,17 @@ __sanitizer_syscall_pre_impl_vfork() #define __sanitizer_syscall_post_vfork(res) \ __sanitizer_syscall_post_impl_vfork(res) +#define __sanitizer_syscall_pre_sigaction(signum, act, oldact) \ + __sanitizer_syscall_pre_impl_sigaction((long)signum, (long)act, (long)oldact) +#define __sanitizer_syscall_post_sigaction(res, signum, act, oldact) \ + __sanitizer_syscall_post_impl_sigaction(res, (long)signum, (long)act, \ + (long)oldact) +#define __sanitizer_syscall_pre_rt_sigaction(signum, act, oldact, sz) \ + __sanitizer_syscall_pre_impl_rt_sigaction((long)signum, (long)act, \ + (long)oldact, (long)sz) +#define __sanitizer_syscall_post_rt_sigaction(res, signum, act, oldact, sz) \ + __sanitizer_syscall_post_impl_rt_sigaction(res, (long)signum, (long)act, \ + (long)oldact, (long)sz) // And now a few syscalls we don't handle yet. #define __sanitizer_syscall_pre_afs_syscall(...) @@ -1889,7 +1900,6 @@ #define __sanitizer_syscall_pre_query_module(...) #define __sanitizer_syscall_pre_readahead(...) #define __sanitizer_syscall_pre_readdir(...) -#define __sanitizer_syscall_pre_rt_sigaction(...) #define __sanitizer_syscall_pre_rt_sigreturn(...) #define __sanitizer_syscall_pre_rt_sigsuspend(...) #define __sanitizer_syscall_pre_security(...) @@ -1903,7 +1913,6 @@ #define __sanitizer_syscall_pre_setreuid32(...) #define __sanitizer_syscall_pre_set_thread_area(...) #define __sanitizer_syscall_pre_setuid32(...) -#define __sanitizer_syscall_pre_sigaction(...) #define __sanitizer_syscall_pre_sigaltstack(...) #define __sanitizer_syscall_pre_sigreturn(...) #define __sanitizer_syscall_pre_sigsuspend(...) @@ -1971,7 +1980,6 @@ #define __sanitizer_syscall_post_query_module(res, ...) #define __sanitizer_syscall_post_readahead(res, ...) #define __sanitizer_syscall_post_readdir(res, ...) -#define __sanitizer_syscall_post_rt_sigaction(res, ...) #define __sanitizer_syscall_post_rt_sigreturn(res, ...) #define __sanitizer_syscall_post_rt_sigsuspend(res, ...) #define __sanitizer_syscall_post_security(res, ...) @@ -1985,7 +1993,6 @@ #define __sanitizer_syscall_post_setreuid32(res, ...) #define __sanitizer_syscall_post_set_thread_area(res, ...) #define __sanitizer_syscall_post_setuid32(res, ...) -#define __sanitizer_syscall_post_sigaction(res, ...) #define __sanitizer_syscall_post_sigaltstack(res, ...) #define __sanitizer_syscall_post_sigreturn(res, ...) #define __sanitizer_syscall_post_sigsuspend(res, ...) @@ -3062,7 +3069,13 @@ void __sanitizer_syscall_pre_impl_fork() void __sanitizer_syscall_post_impl_fork(long res); void __sanitizer_syscall_pre_impl_vfork(); void __sanitizer_syscall_post_impl_vfork(long res); - +void __sanitizer_syscall_pre_impl_sigaction(long signum, long act, long oldact); +void __sanitizer_syscall_post_impl_sigaction(long res, long signum, long act, + long oldact); +void __sanitizer_syscall_pre_impl_rt_sigaction(long signum, long act, + long oldact, long sz); +void __sanitizer_syscall_post_impl_rt_sigaction(long res, long signum, long act, + long oldact, long sz); #ifdef __cplusplus } // extern "C" #endif Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_activation.cc ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_activation.cc Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_activation.cc Sat Sep 3 21:41:29 2016 (r305364) @@ -47,6 +47,7 @@ static struct AsanDeactivatedFlags { FlagParser parser; RegisterActivationFlags(&parser, &f, &cf); + cf.SetDefaults(); // Copy the current activation flags. allocator_options.CopyTo(&f, &cf); cf.malloc_context_size = malloc_context_size; @@ -61,7 +62,7 @@ static struct AsanDeactivatedFlags { parser.ParseString(env); } - SetVerbosity(cf.verbosity); + InitializeCommonFlags(&cf); if (Verbosity()) ReportUnrecognizedFlags(); Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_allocator.cc ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sat Sep 3 21:41:29 2016 (r305364) @@ -223,7 +223,7 @@ void AllocatorOptions::CopyTo(Flags *f, struct Allocator { static const uptr kMaxAllowedMallocSize = - FIRST_32_SECOND_64(3UL << 30, 1UL << 40); + FIRST_32_SECOND_64(3UL << 30, 1ULL << 40); static const uptr kMaxThreadLocalQuarantine = FIRST_32_SECOND_64(1 << 18, 1 << 20); @@ -457,29 +457,28 @@ struct Allocator { return res; } - void AtomicallySetQuarantineFlag(AsanChunk *m, void *ptr, + // Set quarantine flag if chunk is allocated, issue ASan error report on + // available and quarantined chunks. Return true on success, false otherwise. + bool AtomicallySetQuarantineFlagIfAllocated(AsanChunk *m, void *ptr, BufferedStackTrace *stack) { u8 old_chunk_state = CHUNK_ALLOCATED; // Flip the chunk_state atomically to avoid race on double-free. - if (!atomic_compare_exchange_strong((atomic_uint8_t*)m, &old_chunk_state, - CHUNK_QUARANTINE, memory_order_acquire)) + if (!atomic_compare_exchange_strong((atomic_uint8_t *)m, &old_chunk_state, + CHUNK_QUARANTINE, + memory_order_acquire)) { ReportInvalidFree(ptr, old_chunk_state, stack); + // It's not safe to push a chunk in quarantine on invalid free. + return false; + } CHECK_EQ(CHUNK_ALLOCATED, old_chunk_state); + return true; } // Expects the chunk to already be marked as quarantined by using - // AtomicallySetQuarantineFlag. + // AtomicallySetQuarantineFlagIfAllocated. void QuarantineChunk(AsanChunk *m, void *ptr, BufferedStackTrace *stack, AllocType alloc_type) { CHECK_EQ(m->chunk_state, CHUNK_QUARANTINE); - - if (m->alloc_type != alloc_type) { - if (atomic_load(&alloc_dealloc_mismatch, memory_order_acquire)) { - ReportAllocTypeMismatch((uptr)ptr, stack, (AllocType)m->alloc_type, - (AllocType)alloc_type); - } - } - CHECK_GE(m->alloc_tid, 0); if (SANITIZER_WORDSIZE == 64) // On 32-bits this resides in user area. CHECK_EQ(m->free_tid, kInvalidTid); @@ -516,13 +515,24 @@ struct Allocator { uptr chunk_beg = p - kChunkHeaderSize; AsanChunk *m = reinterpret_cast(chunk_beg); + + ASAN_FREE_HOOK(ptr); + // Must mark the chunk as quarantined before any changes to its metadata. + // Do not quarantine given chunk if we failed to set CHUNK_QUARANTINE flag. + if (!AtomicallySetQuarantineFlagIfAllocated(m, ptr, stack)) return; + + if (m->alloc_type != alloc_type) { + if (atomic_load(&alloc_dealloc_mismatch, memory_order_acquire)) { + ReportAllocTypeMismatch((uptr)ptr, stack, (AllocType)m->alloc_type, + (AllocType)alloc_type); + } + } + if (delete_size && flags()->new_delete_type_mismatch && delete_size != m->UsedSize()) { - ReportNewDeleteSizeMismatch(p, delete_size, stack); + ReportNewDeleteSizeMismatch(p, m->UsedSize(), delete_size, stack); } - ASAN_FREE_HOOK(ptr); - // Must mark the chunk as quarantined before any changes to its metadata. - AtomicallySetQuarantineFlag(m, ptr, stack); + QuarantineChunk(m, ptr, stack, alloc_type); } @@ -655,6 +665,9 @@ static AsanAllocator &get_allocator() { bool AsanChunkView::IsValid() { return chunk_ && chunk_->chunk_state != CHUNK_AVAILABLE; } +bool AsanChunkView::IsAllocated() { + return chunk_ && chunk_->chunk_state == CHUNK_ALLOCATED; +} uptr AsanChunkView::Beg() { return chunk_->Beg(); } uptr AsanChunkView::End() { return Beg() + UsedSize(); } uptr AsanChunkView::UsedSize() { return chunk_->UsedSize(); } @@ -668,12 +681,15 @@ static StackTrace GetStackTraceFromId(u3 return res; } +u32 AsanChunkView::GetAllocStackId() { return chunk_->alloc_context_id; } +u32 AsanChunkView::GetFreeStackId() { return chunk_->free_context_id; } + StackTrace AsanChunkView::GetAllocStack() { - return GetStackTraceFromId(chunk_->alloc_context_id); + return GetStackTraceFromId(GetAllocStackId()); } StackTrace AsanChunkView::GetFreeStack() { - return GetStackTraceFromId(chunk_->free_context_id); + return GetStackTraceFromId(GetFreeStackId()); } void InitializeAllocator(const AllocatorOptions &options) { @@ -754,7 +770,7 @@ int asan_posix_memalign(void **memptr, u return 0; } -uptr asan_malloc_usable_size(void *ptr, uptr pc, uptr bp) { +uptr asan_malloc_usable_size(const void *ptr, uptr pc, uptr bp) { if (!ptr) return 0; uptr usable_size = instance.AllocationSize(reinterpret_cast(ptr)); if (flags()->check_malloc_usable_size && (usable_size == 0)) { Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_allocator.h ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_allocator.h Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_allocator.h Sat Sep 3 21:41:29 2016 (r305364) @@ -49,14 +49,17 @@ void GetAllocatorOptions(AllocatorOption class AsanChunkView { public: explicit AsanChunkView(AsanChunk *chunk) : chunk_(chunk) {} - bool IsValid(); // Checks if AsanChunkView points to a valid allocated - // or quarantined chunk. - uptr Beg(); // First byte of user memory. - uptr End(); // Last byte of user memory. - uptr UsedSize(); // Size requested by the user. + bool IsValid(); // Checks if AsanChunkView points to a valid allocated + // or quarantined chunk. + bool IsAllocated(); // Checks if the memory is currently allocated. + uptr Beg(); // First byte of user memory. + uptr End(); // Last byte of user memory. + uptr UsedSize(); // Size requested by the user. uptr AllocTid(); uptr FreeTid(); bool Eq(const AsanChunkView &c) const { return chunk_ == c.chunk_; } + u32 GetAllocStackId(); + u32 GetFreeStackId(); StackTrace GetAllocStack(); StackTrace GetFreeStack(); bool AddrIsInside(uptr addr, uptr access_size, sptr *offset) { @@ -171,7 +174,7 @@ void *asan_pvalloc(uptr size, BufferedSt int asan_posix_memalign(void **memptr, uptr alignment, uptr size, BufferedStackTrace *stack); -uptr asan_malloc_usable_size(void *ptr, uptr pc, uptr bp); +uptr asan_malloc_usable_size(const void *ptr, uptr pc, uptr bp); uptr asan_mz_size(const void *ptr); void asan_mz_force_lock(); Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_fake_stack.cc ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_fake_stack.cc Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_fake_stack.cc Sat Sep 3 21:41:29 2016 (r305364) @@ -31,7 +31,7 @@ ALWAYS_INLINE void SetShadow(uptr ptr, u CHECK_EQ(SHADOW_SCALE, 3); // This code expects SHADOW_SCALE=3. u64 *shadow = reinterpret_cast(MemToShadow(ptr)); if (class_id <= 6) { - for (uptr i = 0; i < (1U << class_id); i++) { + for (uptr i = 0; i < (((uptr)1) << class_id); i++) { shadow[i] = magic; // Make sure this does not become memset. SanitizerBreakOptimization(nullptr); @@ -121,7 +121,7 @@ uptr FakeStack::AddrIsInFakeStack(uptr p uptr class_id = (ptr - beg) >> stack_size_log; uptr base = beg + (class_id << stack_size_log); CHECK_LE(base, ptr); - CHECK_LT(ptr, base + (1UL << stack_size_log)); + CHECK_LT(ptr, base + (((uptr)1) << stack_size_log)); uptr pos = (ptr - base) >> (kMinStackFrameSizeLog + class_id); uptr res = base + pos * BytesInSizeClass(class_id); *frame_end = res + BytesInSizeClass(class_id); Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_fake_stack.h ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_fake_stack.h Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_fake_stack.h Sat Sep 3 21:41:29 2016 (r305364) @@ -69,12 +69,12 @@ class FakeStack { // stack_size_log is at least 15 (stack_size >= 32K). static uptr SizeRequiredForFlags(uptr stack_size_log) { - return 1UL << (stack_size_log + 1 - kMinStackFrameSizeLog); + return ((uptr)1) << (stack_size_log + 1 - kMinStackFrameSizeLog); } // Each size class occupies stack_size bytes. static uptr SizeRequiredForFrames(uptr stack_size_log) { - return (1ULL << stack_size_log) * kNumberOfSizeClasses; + return (((uptr)1) << stack_size_log) * kNumberOfSizeClasses; } // Number of bytes requires for the whole object. @@ -91,12 +91,12 @@ class FakeStack { // and so on. static uptr FlagsOffset(uptr stack_size_log, uptr class_id) { uptr t = kNumberOfSizeClasses - 1 - class_id; - const uptr all_ones = (1 << (kNumberOfSizeClasses - 1)) - 1; + const uptr all_ones = (((uptr)1) << (kNumberOfSizeClasses - 1)) - 1; return ((all_ones >> t) << t) << (stack_size_log - 15); } static uptr NumberOfFrames(uptr stack_size_log, uptr class_id) { - return 1UL << (stack_size_log - kMinStackFrameSizeLog - class_id); + return ((uptr)1) << (stack_size_log - kMinStackFrameSizeLog - class_id); } // Divide n by the numbe of frames in size class. @@ -114,7 +114,8 @@ class FakeStack { u8 *GetFrame(uptr stack_size_log, uptr class_id, uptr pos) { return reinterpret_cast(this) + kFlagsOffset + SizeRequiredForFlags(stack_size_log) + - (1 << stack_size_log) * class_id + BytesInSizeClass(class_id) * pos; + (((uptr)1) << stack_size_log) * class_id + + BytesInSizeClass(class_id) * pos; } // Allocate the fake frame. @@ -137,7 +138,7 @@ class FakeStack { // Number of bytes in a fake frame of this size class. static uptr BytesInSizeClass(uptr class_id) { - return 1UL << (class_id + kMinStackFrameSizeLog); + return ((uptr)1) << (class_id + kMinStackFrameSizeLog); } // The fake frame is guaranteed to have a right redzone. @@ -159,7 +160,7 @@ class FakeStack { static const uptr kFlagsOffset = 4096; // This is were the flags begin. // Must match the number of uses of DEFINE_STACK_MALLOC_FREE_WITH_CLASS_ID COMPILER_CHECK(kNumberOfSizeClasses == 11); - static const uptr kMaxStackMallocSize = 1 << kMaxStackFrameSizeLog; + static const uptr kMaxStackMallocSize = ((uptr)1) << kMaxStackFrameSizeLog; uptr hint_position_[kNumberOfSizeClasses]; uptr stack_size_log_; Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_flags.cc ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_flags.cc Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_flags.cc Sat Sep 3 21:41:29 2016 (r305364) @@ -116,7 +116,7 @@ void InitializeFlags() { ubsan_parser.ParseString(GetEnv("UBSAN_OPTIONS")); #endif - SetVerbosity(common_flags()->verbosity); + InitializeCommonFlags(); // TODO(eugenis): dump all flags at verbosity>=2? if (Verbosity()) ReportUnrecognizedFlags(); @@ -159,6 +159,14 @@ void InitializeFlags() { (ASAN_LOW_MEMORY) ? 1UL << 6 : 1UL << 8; f->quarantine_size_mb = kDefaultQuarantineSizeMb; } + if (!f->replace_str && common_flags()->intercept_strlen) { + Report("WARNING: strlen interceptor is enabled even though replace_str=0. " + "Use intercept_strlen=0 to disable it."); + } + if (!f->replace_str && common_flags()->intercept_strchr) { + Report("WARNING: strchr* interceptors are enabled even though " + "replace_str=0. Use intercept_strchr=0 to disable them."); + } } } // namespace __asan Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_flags.inc ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_flags.inc Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_flags.inc Sat Sep 3 21:41:29 2016 (r305364) @@ -43,7 +43,7 @@ ASAN_FLAG( "If set, uses custom wrappers and replacements for libc string functions " "to find more errors.") ASAN_FLAG(bool, replace_intrin, true, - "If set, uses custom wrappers for memset/memcpy/memmove intinsics.") + "If set, uses custom wrappers for memset/memcpy/memmove intrinsics.") ASAN_FLAG(bool, detect_stack_use_after_return, false, "Enables stack-use-after-return checking at run-time.") ASAN_FLAG(int, min_uar_stack_size_log, 16, // We can't do smaller anyway. @@ -77,6 +77,8 @@ ASAN_FLAG(bool, print_stats, false, "Print various statistics after printing an error message or if " "atexit=1.") ASAN_FLAG(bool, print_legend, true, "Print the legend for the shadow bytes.") +ASAN_FLAG(bool, print_scariness, false, + "Print the scariness score. Experimental.") ASAN_FLAG(bool, atexit, false, "If set, prints ASan exit stats even after program terminates " "successfully.") @@ -104,7 +106,7 @@ ASAN_FLAG(bool, alloc_dealloc_mismatch, "Report errors on malloc/delete, new/free, new/delete[], etc.") ASAN_FLAG(bool, new_delete_type_mismatch, true, - "Report errors on mismatch betwen size of new and delete.") + "Report errors on mismatch between size of new and delete.") ASAN_FLAG( bool, strict_init_order, false, "If true, assume that dynamic initializers can never access globals from " @@ -135,3 +137,5 @@ ASAN_FLAG(const char *, suppressions, "" ASAN_FLAG(bool, halt_on_error, true, "Crash the program after printing the first error report " "(WARNING: USE AT YOUR OWN RISK!)") +ASAN_FLAG(bool, use_odr_indicator, false, + "Use special ODR indicator symbol for ODR violation detection") Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_globals.cc ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_globals.cc Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_globals.cc Sat Sep 3 21:41:29 2016 (r305364) @@ -135,6 +135,70 @@ bool GetInfoForAddressIfGlobal(uptr addr return false; } +enum GlobalSymbolState { + UNREGISTERED = 0, + REGISTERED = 1 +}; + +// Check ODR violation for given global G via special ODR indicator. We use +// this method in case compiler instruments global variables through their +// local aliases. +static void CheckODRViolationViaIndicator(const Global *g) { + u8 *odr_indicator = reinterpret_cast(g->odr_indicator); + if (*odr_indicator == UNREGISTERED) { + *odr_indicator = REGISTERED; + return; + } + // If *odr_indicator is DEFINED, some module have already registered + // externally visible symbol with the same name. This is an ODR violation. + for (ListOfGlobals *l = list_of_all_globals; l; l = l->next) { + if (g->odr_indicator == l->g->odr_indicator && + (flags()->detect_odr_violation >= 2 || g->size != l->g->size) && + !IsODRViolationSuppressed(g->name)) + ReportODRViolation(g, FindRegistrationSite(g), + l->g, FindRegistrationSite(l->g)); + } +} + +// Check ODR violation for given global G by checking if it's already poisoned. +// We use this method in case compiler doesn't use private aliases for global +// variables. +static void CheckODRViolationViaPoisoning(const Global *g) { + if (__asan_region_is_poisoned(g->beg, g->size_with_redzone)) { + // This check may not be enough: if the first global is much larger + // the entire redzone of the second global may be within the first global. + for (ListOfGlobals *l = list_of_all_globals; l; l = l->next) { + if (g->beg == l->g->beg && + (flags()->detect_odr_violation >= 2 || g->size != l->g->size) && + !IsODRViolationSuppressed(g->name)) + ReportODRViolation(g, FindRegistrationSite(g), + l->g, FindRegistrationSite(l->g)); + } + } +} + +// Clang provides two different ways for global variables protection: +// it can poison the global itself or its private alias. In former +// case we may poison same symbol multiple times, that can help us to +// cheaply detect ODR violation: if we try to poison an already poisoned +// global, we have ODR violation error. +// In latter case, we poison each symbol exactly once, so we use special +// indicator symbol to perform similar check. +// In either case, compiler provides a special odr_indicator field to Global +// structure, that can contain two kinds of values: +// 1) Non-zero value. In this case, odr_indicator is an address of +// corresponding indicator variable for given global. +// 2) Zero. This means that we don't use private aliases for global variables +// and can freely check ODR violation with the first method. +// +// This routine chooses between two different methods of ODR violation +// detection. +static inline bool UseODRIndicator(const Global *g) { + // Use ODR indicator method iff use_odr_indicator flag is set and + // indicator symbol address is not 0. + return flags()->use_odr_indicator && g->odr_indicator > 0; +} + // Register a global variable. // This function may be called more than once for every global // so we store the globals in a map. @@ -144,22 +208,24 @@ static void RegisterGlobal(const Global ReportGlobal(*g, "Added"); CHECK(flags()->report_globals); CHECK(AddrIsInMem(g->beg)); - CHECK(AddrIsAlignedByGranularity(g->beg)); + if (!AddrIsAlignedByGranularity(g->beg)) { + Report("The following global variable is not properly aligned.\n"); + Report("This may happen if another global with the same name\n"); + Report("resides in another non-instrumented module.\n"); + Report("Or the global comes from a C file built w/o -fno-common.\n"); + Report("In either case this is likely an ODR violation bug,\n"); + Report("but AddressSanitizer can not provide more details.\n"); + ReportODRViolation(g, FindRegistrationSite(g), g, FindRegistrationSite(g)); + CHECK(AddrIsAlignedByGranularity(g->beg)); + } CHECK(AddrIsAlignedByGranularity(g->size_with_redzone)); if (flags()->detect_odr_violation) { // Try detecting ODR (One Definition Rule) violation, i.e. the situation // where two globals with the same name are defined in different modules. - if (__asan_region_is_poisoned(g->beg, g->size_with_redzone)) { - // This check may not be enough: if the first global is much larger - // the entire redzone of the second global may be within the first global. - for (ListOfGlobals *l = list_of_all_globals; l; l = l->next) { - if (g->beg == l->g->beg && - (flags()->detect_odr_violation >= 2 || g->size != l->g->size) && - !IsODRViolationSuppressed(g->name)) - ReportODRViolation(g, FindRegistrationSite(g), - l->g, FindRegistrationSite(l->g)); - } - } + if (UseODRIndicator(g)) + CheckODRViolationViaIndicator(g); + else + CheckODRViolationViaPoisoning(g); } if (CanPoisonMemory()) PoisonRedZones(*g); @@ -190,6 +256,12 @@ static void UnregisterGlobal(const Globa // We unpoison the shadow memory for the global but we do not remove it from // the list because that would require O(n^2) time with the current list // implementation. It might not be worth doing anyway. + + // Release ODR indicator. + if (UseODRIndicator(g)) { + u8 *odr_indicator = reinterpret_cast(g->odr_indicator); + *odr_indicator = UNREGISTERED; + } } void StopInitOrderChecking() { @@ -212,6 +284,25 @@ void StopInitOrderChecking() { // ---------------------- Interface ---------------- {{{1 using namespace __asan; // NOLINT + +// Apply __asan_register_globals to all globals found in the same loaded +// executable or shared library as `flag'. The flag tracks whether globals have +// already been registered or not for this image. +void __asan_register_image_globals(uptr *flag) { + if (*flag) + return; + AsanApplyToGlobals(__asan_register_globals, flag); + *flag = 1; +} + +// This mirrors __asan_register_image_globals. +void __asan_unregister_image_globals(uptr *flag) { + if (!*flag) + return; + AsanApplyToGlobals(__asan_unregister_globals, flag); + *flag = 0; +} + // Register an array of globals. void __asan_register_globals(__asan_global *globals, uptr n) { if (!flags()->report_globals) return; Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_init_version.h ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_init_version.h Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_init_version.h Sat Sep 3 21:41:29 2016 (r305364) @@ -19,16 +19,20 @@ extern "C" { // Every time the ASan ABI changes we also change the version number in the // __asan_init function name. Objects built with incompatible ASan ABI // versions will not link with run-time. + // // Changes between ABI versions: // v1=>v2: added 'module_name' to __asan_global // v2=>v3: stack frame description (created by the compiler) - // contains the function PC as the 3-rd field (see - // DescribeAddressIfStack). - // v3=>v4: added '__asan_global_source_location' to __asan_global. + // contains the function PC as the 3rd field (see + // DescribeAddressIfStack) + // v3=>v4: added '__asan_global_source_location' to __asan_global // v4=>v5: changed the semantics and format of __asan_stack_malloc_ and - // __asan_stack_free_ functions. + // __asan_stack_free_ functions // v5=>v6: changed the name of the version check symbol - #define __asan_version_mismatch_check __asan_version_mismatch_check_v6 + // v6=>v7: added 'odr_indicator' to __asan_global + // v7=>v8: added '__asan_(un)register_image_globals' functions for dead + // stripping support on Mach-O platforms + #define __asan_version_mismatch_check __asan_version_mismatch_check_v8 } #endif // ASAN_INIT_VERSION_H Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Sat Sep 3 21:41:29 2016 (r305364) @@ -21,6 +21,7 @@ #include "asan_stack.h" #include "asan_stats.h" #include "asan_suppressions.h" +#include "lsan/lsan_common.h" #include "sanitizer_common/sanitizer_libc.h" #if SANITIZER_POSIX @@ -110,7 +111,7 @@ static inline bool RangesOverlap(const c } while (0) static inline uptr MaybeRealStrnlen(const char *s, uptr maxlen) { -#if ASAN_INTERCEPT_STRNLEN +#if SANITIZER_INTERCEPT_STRNLEN if (REAL(strnlen)) { return REAL(strnlen)(s, maxlen); } @@ -143,6 +144,8 @@ DECLARE_REAL_AND_INTERCEPTOR(void, free, (void) ctx; \ #define COMMON_INTERCEPT_FUNCTION(name) ASAN_INTERCEPT_FUNC(name) +#define COMMON_INTERCEPT_FUNCTION_VER(name, ver) \ + ASAN_INTERCEPT_FUNC_VER(name, ver) #define COMMON_INTERCEPTOR_WRITE_RANGE(ctx, ptr, size) \ ASAN_WRITE_RANGE(ctx, ptr, size) #define COMMON_INTERCEPTOR_READ_RANGE(ctx, ptr, size) \ @@ -195,6 +198,10 @@ DECLARE_REAL_AND_INTERCEPTOR(void, free, } else { \ *begin = *end = 0; \ } +// Asan needs custom handling of these: +#undef SANITIZER_INTERCEPT_MEMSET +#undef SANITIZER_INTERCEPT_MEMMOVE +#undef SANITIZER_INTERCEPT_MEMCPY #include "sanitizer_common/sanitizer_common_interceptors.inc" // Syscall interceptors don't have contexts, we don't support suppressions @@ -218,6 +225,7 @@ struct ThreadStartParam { atomic_uintptr_t is_registered; }; +#if ASAN_INTERCEPT_PTHREAD_CREATE static thread_return_t THREAD_CALLING_CONV asan_thread_start(void *arg) { ThreadStartParam *param = reinterpret_cast(arg); AsanThread *t = nullptr; @@ -228,7 +236,6 @@ static thread_return_t THREAD_CALLING_CO return t->ThreadStart(GetTid(), ¶m->is_registered); } -#if ASAN_INTERCEPT_PTHREAD_CREATE INTERCEPTOR(int, pthread_create, void *thread, void *attr, void *(*start_routine)(void*), void *arg) { EnsureMainThreadIDIsCorrect(); @@ -242,7 +249,17 @@ INTERCEPTOR(int, pthread_create, void *t ThreadStartParam param; atomic_store(¶m.t, 0, memory_order_relaxed); atomic_store(¶m.is_registered, 0, memory_order_relaxed); - int result = REAL(pthread_create)(thread, attr, asan_thread_start, ¶m); + int result; + { + // Ignore all allocations made by pthread_create: thread stack/TLS may be + // stored by pthread for future reuse even after thread destruction, and + // the linked list it's stored in doesn't even hold valid pointers to the + // objects, the latter are calculated by obscure pointer arithmetic. +#if CAN_SANITIZE_LEAKS + __lsan::ScopedInterceptorDisabler disabler; +#endif + result = REAL(pthread_create)(thread, attr, asan_thread_start, ¶m); + } if (result == 0) { u32 current_tid = GetCurrentTidOrInvalid(); AsanThread *t = @@ -271,7 +288,8 @@ DEFINE_REAL_PTHREAD_FUNCTIONS #if SANITIZER_ANDROID INTERCEPTOR(void*, bsd_signal, int signum, void *handler) { - if (!IsDeadlySignal(signum) || common_flags()->allow_user_segv_handler) { + if (!IsHandledDeadlySignal(signum) || + common_flags()->allow_user_segv_handler) { return REAL(bsd_signal)(signum, handler); } return 0; @@ -279,7 +297,8 @@ INTERCEPTOR(void*, bsd_signal, int signu #endif INTERCEPTOR(void*, signal, int signum, void *handler) { - if (!IsDeadlySignal(signum) || common_flags()->allow_user_segv_handler) { + if (!IsHandledDeadlySignal(signum) || + common_flags()->allow_user_segv_handler) { return REAL(signal)(signum, handler); } return nullptr; @@ -287,7 +306,8 @@ INTERCEPTOR(void*, signal, int signum, v INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act, struct sigaction *oldact) { - if (!IsDeadlySignal(signum) || common_flags()->allow_user_segv_handler) { + if (!IsHandledDeadlySignal(signum) || + common_flags()->allow_user_segv_handler) { return REAL(sigaction)(signum, act, oldact); } return 0; @@ -453,25 +473,6 @@ INTERCEPTOR(void*, memset, void *block, ASAN_MEMSET_IMPL(ctx, block, c, size); } -INTERCEPTOR(char*, strchr, const char *str, int c) { - void *ctx; - ASAN_INTERCEPTOR_ENTER(ctx, strchr); - if (UNLIKELY(!asan_inited)) return internal_strchr(str, c); - // strchr is called inside create_purgeable_zone() when MallocGuardEdges=1 is - // used. - if (asan_init_is_running) { - return REAL(strchr)(str, c); - } - ENSURE_ASAN_INITED(); - char *result = REAL(strchr)(str, c); - if (flags()->replace_str) { - uptr len = REAL(strlen)(str); - uptr bytes_read = (result ? result - str : len) + 1; - ASAN_READ_STRING_OF_LEN(ctx, str, len, bytes_read); - } - return result; -} - #if ASAN_INTERCEPT_INDEX # if ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX INTERCEPTOR(char*, index, const char *string, int c) @@ -549,7 +550,6 @@ INTERCEPTOR(char*, strcpy, char *to, con return REAL(strcpy)(to, from); // NOLINT } -#if ASAN_INTERCEPT_STRDUP INTERCEPTOR(char*, strdup, const char *s) { void *ctx; ASAN_INTERCEPTOR_ENTER(ctx, strdup); @@ -564,29 +564,28 @@ INTERCEPTOR(char*, strdup, const char *s REAL(memcpy)(new_mem, s, length + 1); return reinterpret_cast(new_mem); } -#endif -INTERCEPTOR(SIZE_T, strlen, const char *s) { +#if ASAN_INTERCEPT___STRDUP +INTERCEPTOR(char*, __strdup, const char *s) { void *ctx; - ASAN_INTERCEPTOR_ENTER(ctx, strlen); - if (UNLIKELY(!asan_inited)) return internal_strlen(s); - // strlen is called from malloc_default_purgeable_zone() - // in __asan::ReplaceSystemAlloc() on Mac. - if (asan_init_is_running) { - return REAL(strlen)(s); - } + ASAN_INTERCEPTOR_ENTER(ctx, strdup); + if (UNLIKELY(!asan_inited)) return internal_strdup(s); ENSURE_ASAN_INITED(); - SIZE_T length = REAL(strlen)(s); + uptr length = REAL(strlen)(s); if (flags()->replace_str) { ASAN_READ_RANGE(ctx, s, length + 1); } - return length; + GET_STACK_TRACE_MALLOC; + void *new_mem = asan_malloc(length + 1, &stack); + REAL(memcpy)(new_mem, s, length + 1); + return reinterpret_cast(new_mem); } +#endif // ASAN_INTERCEPT___STRDUP INTERCEPTOR(SIZE_T, wcslen, const wchar_t *s) { void *ctx; ASAN_INTERCEPTOR_ENTER(ctx, wcslen); - SIZE_T length = REAL(wcslen)(s); + SIZE_T length = internal_wcslen(s); if (!asan_init_is_running) { ENSURE_ASAN_INITED(); ASAN_READ_RANGE(ctx, s, (length + 1) * sizeof(wchar_t)); @@ -607,19 +606,6 @@ INTERCEPTOR(char*, strncpy, char *to, co return REAL(strncpy)(to, from, size); } -#if ASAN_INTERCEPT_STRNLEN -INTERCEPTOR(uptr, strnlen, const char *s, uptr maxlen) { - void *ctx; - ASAN_INTERCEPTOR_ENTER(ctx, strnlen); - ENSURE_ASAN_INITED(); - uptr length = REAL(strnlen)(s, maxlen); - if (flags()->replace_str) { - ASAN_READ_RANGE(ctx, s, Min(length + 1, maxlen)); - } - return length; -} -#endif // ASAN_INTERCEPT_STRNLEN - INTERCEPTOR(long, strtol, const char *nptr, // NOLINT char **endptr, int base) { void *ctx; @@ -702,12 +688,12 @@ INTERCEPTOR(long long, atoll, const char } #endif // ASAN_INTERCEPT_ATOLL_AND_STRTOLL +#if ASAN_INTERCEPT___CXA_ATEXIT static void AtCxaAtexit(void *unused) { (void)unused; StopInitOrderChecking(); } -#if ASAN_INTERCEPT___CXA_ATEXIT INTERCEPTOR(int, __cxa_atexit, void (*func)(void *), void *arg, void *dso_handle) { #if SANITIZER_MAC @@ -739,25 +725,23 @@ void InitializeAsanInterceptors() { InitializeCommonInterceptors(); // Intercept mem* functions. - ASAN_INTERCEPT_FUNC(memmove); + ASAN_INTERCEPT_FUNC(memcpy); ASAN_INTERCEPT_FUNC(memset); if (PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE) { - ASAN_INTERCEPT_FUNC(memcpy); + // In asan, REAL(memmove) is not used, but it is used in msan. + ASAN_INTERCEPT_FUNC(memmove); } + CHECK(REAL(memcpy)); // Intercept str* functions. ASAN_INTERCEPT_FUNC(strcat); // NOLINT - ASAN_INTERCEPT_FUNC(strchr); ASAN_INTERCEPT_FUNC(strcpy); // NOLINT - ASAN_INTERCEPT_FUNC(strlen); ASAN_INTERCEPT_FUNC(wcslen); ASAN_INTERCEPT_FUNC(strncat); ASAN_INTERCEPT_FUNC(strncpy); -#if ASAN_INTERCEPT_STRDUP ASAN_INTERCEPT_FUNC(strdup); -#endif -#if ASAN_INTERCEPT_STRNLEN - ASAN_INTERCEPT_FUNC(strnlen); +#if ASAN_INTERCEPT___STRDUP + ASAN_INTERCEPT_FUNC(__strdup); #endif #if ASAN_INTERCEPT_INDEX && ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX ASAN_INTERCEPT_FUNC(index); Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interceptors.h ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interceptors.h Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interceptors.h Sat Sep 3 21:41:29 2016 (r305364) @@ -23,14 +23,12 @@ #if !SANITIZER_WINDOWS # define ASAN_INTERCEPT_ATOLL_AND_STRTOLL 1 # define ASAN_INTERCEPT__LONGJMP 1 -# define ASAN_INTERCEPT_STRDUP 1 # define ASAN_INTERCEPT_INDEX 1 # define ASAN_INTERCEPT_PTHREAD_CREATE 1 # define ASAN_INTERCEPT_FORK 1 #else # define ASAN_INTERCEPT_ATOLL_AND_STRTOLL 0 # define ASAN_INTERCEPT__LONGJMP 0 -# define ASAN_INTERCEPT_STRDUP 0 # define ASAN_INTERCEPT_INDEX 0 # define ASAN_INTERCEPT_PTHREAD_CREATE 0 # define ASAN_INTERCEPT_FORK 0 @@ -42,12 +40,6 @@ # define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 0 #endif -#if !SANITIZER_MAC -# define ASAN_INTERCEPT_STRNLEN 1 -#else -# define ASAN_INTERCEPT_STRNLEN 0 -#endif - #if SANITIZER_LINUX && !SANITIZER_ANDROID # define ASAN_INTERCEPT_SWAPCONTEXT 1 #else @@ -80,6 +72,12 @@ # define ASAN_INTERCEPT___CXA_ATEXIT 0 #endif +#if SANITIZER_LINUX && !SANITIZER_ANDROID +# define ASAN_INTERCEPT___STRDUP 1 +#else +# define ASAN_INTERCEPT___STRDUP 0 +#endif + DECLARE_REAL(int, memcmp, const void *a1, const void *a2, uptr size) DECLARE_REAL(void*, memcpy, void *to, const void *from, uptr size) DECLARE_REAL(void*, memset, void *block, int c, uptr size) Modified: projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interface_internal.h ============================================================================== --- projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interface_internal.h Sat Sep 3 20:43:59 2016 (r305363) +++ projects/clang390-import/contrib/compiler-rt/lib/asan/asan_interface_internal.h Sat Sep 3 21:41:29 2016 (r305364) @@ -54,8 +54,17 @@ extern "C" { uptr has_dynamic_init; // Non-zero if the global has dynamic initializer. __asan_global_source_location *location; // Source location of a global, // or NULL if it is unknown. + uptr odr_indicator; // The address of the ODR indicator symbol. }; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***