Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Feb 2019 12:49:35 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r343956 - in projects/clang800-import: . contrib/netbsd-tests/lib/libm etc/mtree lib/libc/stdio lib/libc/sys lib/libc/x86/sys lib/libcasper/services/cap_syslog lib/libutil lib/msun/src ...
Message-ID:  <201902101249.x1ACnZZ5082061@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sun Feb 10 12:49:34 2019
New Revision: 343956
URL: https://svnweb.freebsd.org/changeset/base/343956

Log:
  Merge ^/head r343807 through r343955.

Added:
  projects/clang800-import/sys/arm64/acpica/acpi_iort.c
     - copied unchanged from r343955, head/sys/arm64/acpica/acpi_iort.c
Deleted:
  projects/clang800-import/sys/dev/usb/controller/ohci_s3c24x0.c
Modified:
  projects/clang800-import/UPDATING
  projects/clang800-import/contrib/netbsd-tests/lib/libm/t_cbrt.c
  projects/clang800-import/etc/mtree/BSD.root.dist
  projects/clang800-import/lib/libc/stdio/fgetln.c
  projects/clang800-import/lib/libc/sys/getsockopt.2
  projects/clang800-import/lib/libc/x86/sys/__vdso_gettc.c
  projects/clang800-import/lib/libcasper/services/cap_syslog/cap_syslog.c
  projects/clang800-import/lib/libutil/quotafile.c
  projects/clang800-import/lib/msun/src/e_j0.c
  projects/clang800-import/lib/msun/src/e_j0f.c
  projects/clang800-import/lib/msun/src/e_j1.c
  projects/clang800-import/lib/msun/src/e_j1f.c
  projects/clang800-import/lib/msun/src/e_jn.c
  projects/clang800-import/lib/msun/tests/trig_test.c
  projects/clang800-import/libexec/rc/rc.d/growfs
  projects/clang800-import/libexec/talkd/extern.h
  projects/clang800-import/sbin/dhclient/dhclient.c
  projects/clang800-import/sbin/ipfw/tables.c
  projects/clang800-import/sbin/recoverdisk/recoverdisk.c
  projects/clang800-import/sbin/sysctl/sysctl.8
  projects/clang800-import/share/man/man4/ng_iface.4
  projects/clang800-import/share/man/man9/bus_space.9
  projects/clang800-import/share/man/man9/config_intrhook.9
  projects/clang800-import/share/man/man9/pwm.9
  projects/clang800-import/share/misc/bsd-family-tree
  projects/clang800-import/share/misc/committers-ports.dot
  projects/clang800-import/share/misc/committers-src.dot
  projects/clang800-import/share/mk/bsd.cpu.mk
  projects/clang800-import/share/mk/src.opts.mk
  projects/clang800-import/share/mk/suite.test.mk
  projects/clang800-import/stand/efi/libefi/efienv.c
  projects/clang800-import/sys/amd64/conf/GENERIC
  projects/clang800-import/sys/amd64/conf/NOTES
  projects/clang800-import/sys/arm/allwinner/axp81x.c
  projects/clang800-import/sys/arm64/arm64/cpufunc_asm.S
  projects/clang800-import/sys/arm64/arm64/gic_v3_acpi.c
  projects/clang800-import/sys/arm64/arm64/gic_v3_var.h
  projects/clang800-import/sys/arm64/arm64/gicv3_its.c
  projects/clang800-import/sys/arm64/arm64/pmap.c
  projects/clang800-import/sys/arm64/conf/GENERIC
  projects/clang800-import/sys/cam/ata/ata_da.c
  projects/clang800-import/sys/cam/scsi/scsi_da.c
  projects/clang800-import/sys/compat/freebsd32/freebsd32_misc.c
  projects/clang800-import/sys/conf/files.arm64
  projects/clang800-import/sys/conf/options
  projects/clang800-import/sys/ddb/db_ps.c
  projects/clang800-import/sys/dev/acpica/acpivar.h
  projects/clang800-import/sys/dev/cardbus/cardbus.c
  projects/clang800-import/sys/dev/cxgbe/adapter.h
  projects/clang800-import/sys/dev/cxgbe/common/t4_hw.c
  projects/clang800-import/sys/dev/cxgbe/t4_main.c
  projects/clang800-import/sys/dev/cxgbe/t4_vf.c
  projects/clang800-import/sys/dev/e1000/if_em.c
  projects/clang800-import/sys/dev/e1000/if_em.h
  projects/clang800-import/sys/dev/flash/mx25l.c
  projects/clang800-import/sys/dev/flash/n25q.c
  projects/clang800-import/sys/dev/iwn/if_iwn.c
  projects/clang800-import/sys/dev/mmc/bridge.h
  projects/clang800-import/sys/dev/mmc/mmc.c
  projects/clang800-import/sys/dev/mmc/mmc_private.h
  projects/clang800-import/sys/dev/mmc/mmc_subr.c
  projects/clang800-import/sys/dev/mmc/mmc_subr.h
  projects/clang800-import/sys/dev/mmc/mmcbrvar.h
  projects/clang800-import/sys/dev/mmc/mmcreg.h
  projects/clang800-import/sys/dev/mmc/mmcsd.c
  projects/clang800-import/sys/dev/mmc/mmcvar.h
  projects/clang800-import/sys/dev/netmap/netmap.c
  projects/clang800-import/sys/dev/pccbb/pccbbdevid.h
  projects/clang800-import/sys/dev/pci/pci_host_generic_acpi.c
  projects/clang800-import/sys/dev/pms/freebsd/driver/common/lxutil.c
  projects/clang800-import/sys/dev/puc/puc_pci.c
  projects/clang800-import/sys/dev/sio/sio_isa.c
  projects/clang800-import/sys/dev/sio/sio_pccard.c
  projects/clang800-import/sys/dev/sio/sio_pci.c
  projects/clang800-import/sys/dev/sio/sio_puc.c
  projects/clang800-import/sys/dev/uart/uart_bus_acpi.c
  projects/clang800-import/sys/dev/uart/uart_bus_pccard.c
  projects/clang800-import/sys/dev/uart/uart_bus_puc.c
  projects/clang800-import/sys/dev/usb/controller/generic_ohci.c
  projects/clang800-import/sys/dev/usb/net/if_ure.c
  projects/clang800-import/sys/dev/usb/usbdevs
  projects/clang800-import/sys/dev/wi/if_wivar.h
  projects/clang800-import/sys/dts/arm/tegra124-jetson-tk1-fbsd.dts
  projects/clang800-import/sys/fs/nullfs/null_vfsops.c
  projects/clang800-import/sys/fs/nullfs/null_vnops.c
  projects/clang800-import/sys/i386/acpica/acpi_wakecode.S
  projects/clang800-import/sys/i386/conf/NOTES
  projects/clang800-import/sys/i386/i386/pmap.c
  projects/clang800-import/sys/i386/i386/pmap_base.c
  projects/clang800-import/sys/kern/imgact_elf.c
  projects/clang800-import/sys/kern/kern_exec.c
  projects/clang800-import/sys/kern/kern_kcov.c
  projects/clang800-import/sys/kern/vfs_lookup.c
  projects/clang800-import/sys/kern/vfs_syscalls.c
  projects/clang800-import/sys/mips/include/elf.h
  projects/clang800-import/sys/modules/dtb/allwinner/Makefile
  projects/clang800-import/sys/net80211/ieee80211_ioctl.c
  projects/clang800-import/sys/netgraph/ng_iface.c
  projects/clang800-import/sys/netgraph/ng_ipfw.c
  projects/clang800-import/sys/netinet/cc/cc_cdg.c
  projects/clang800-import/sys/netinet/sctp_usrreq.c
  projects/clang800-import/sys/powerpc/include/openpicvar.h
  projects/clang800-import/sys/powerpc/ofw/openpic_ofw.c
  projects/clang800-import/sys/powerpc/powerpc/cpu.c
  projects/clang800-import/sys/powerpc/powerpc/mem.c
  projects/clang800-import/sys/powerpc/powerpc/openpic.c
  projects/clang800-import/sys/riscv/riscv/elf_machdep.c
  projects/clang800-import/sys/sys/namei.h
  projects/clang800-import/sys/sys/sysent.h
  projects/clang800-import/sys/vm/uma_core.c
  projects/clang800-import/sys/vm/uma_int.h
  projects/clang800-import/sys/vm/vm_kern.c
  projects/clang800-import/sys/vm/vm_mmap.c
  projects/clang800-import/sys/vm/vm_unix.c
  projects/clang800-import/sys/x86/acpica/acpi_wakeup.c
  projects/clang800-import/sys/x86/include/x86_var.h
  projects/clang800-import/tools/build/mk/OptionalObsoleteFiles.inc
  projects/clang800-import/tools/build/options/WITH_CLANG_EXTRAS
  projects/clang800-import/usr.bin/calendar/calendars/calendar.freebsd
  projects/clang800-import/usr.bin/ipcs/ipcs.c
  projects/clang800-import/usr.bin/newkey/update.c
  projects/clang800-import/usr.bin/vtfontcvt/vtfontcvt.c
  projects/clang800-import/usr.sbin/bluetooth/sdpd/ssar.c
  projects/clang800-import/usr.sbin/dumpcis/main.c
  projects/clang800-import/usr.sbin/newsyslog/newsyslog.c
  projects/clang800-import/usr.sbin/pw/pw.8
  projects/clang800-import/usr.sbin/pwm/pwm.8
Directory Properties:
  projects/clang800-import/   (props changed)
  projects/clang800-import/contrib/llvm/   (props changed)
  projects/clang800-import/contrib/netbsd-tests/   (props changed)

Modified: projects/clang800-import/UPDATING
==============================================================================
--- projects/clang800-import/UPDATING	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/UPDATING	Sun Feb 10 12:49:34 2019	(r343956)
@@ -1942,7 +1942,7 @@ to fetch an UPDATING file from an older FreeBSD releas
 
 Copyright information:
 
-Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
+Copyright 1998-2009 M. Warner Losh.
 
 Redistribution, publication, translation and use, with or without
 modification, in full or in part, in any form or format of this

Modified: projects/clang800-import/contrib/netbsd-tests/lib/libm/t_cbrt.c
==============================================================================
--- projects/clang800-import/contrib/netbsd-tests/lib/libm/t_cbrt.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/contrib/netbsd-tests/lib/libm/t_cbrt.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -268,7 +268,8 @@ ATF_TC_BODY(cbrtl_powl, tc)
 	long double y, z;
 	size_t i;
 
-#if defined(__amd64__) && defined(__clang__) && __clang_major__ >= 7
+#if defined(__amd64__) && defined(__clang__) && __clang_major__ >= 7 && \
+    __FreeBSD_cc_version < 1300002
 	atf_tc_expect_fail("test fails with clang 7+ - bug 234040");
 #endif
 

Modified: projects/clang800-import/etc/mtree/BSD.root.dist
==============================================================================
--- projects/clang800-import/etc/mtree/BSD.root.dist	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/etc/mtree/BSD.root.dist	Sun Feb 10 12:49:34 2019	(r343956)
@@ -11,7 +11,11 @@
         defaults
         ..
         dtb
+            allwinner             tags=package=runtime
+            ..
             overlays              tags=package=runtime
+            ..
+            rockchip              tags=package=runtime
             ..
         ..
         firmware

Modified: projects/clang800-import/lib/libc/stdio/fgetln.c
==============================================================================
--- projects/clang800-import/lib/libc/stdio/fgetln.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/libc/stdio/fgetln.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -50,19 +50,12 @@ __FBSDID("$FreeBSD$");
 
 /*
  * Expand the line buffer.  Return -1 on error.
-#ifdef notdef
- * The `new size' does not account for a terminating '\0',
- * so we add 1 here.
-#endif
  */
 int
 __slbexpand(FILE *fp, size_t newsize)
 {
 	void *p;
 
-#ifdef notdef
-	++newsize;
-#endif
 	if (fp->_lb._size >= newsize)
 		return (0);
 	if (newsize > INT_MAX) {
@@ -160,9 +153,6 @@ fgetln(FILE *fp, size_t *lenp)
 		break;
 	}
 	*lenp = len;
-#ifdef notdef
-	fp->_lb._base[len] = '\0';
-#endif
 	ret = (char *)fp->_lb._base;
 end:
 	FUNLOCKFILE_CANCELSAFE();

Modified: projects/clang800-import/lib/libc/sys/getsockopt.2
==============================================================================
--- projects/clang800-import/lib/libc/sys/getsockopt.2	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/libc/sys/getsockopt.2	Sun Feb 10 12:49:34 2019	(r343956)
@@ -28,7 +28,7 @@
 .\"     @(#)getsockopt.2	8.4 (Berkeley) 5/2/95
 .\" $FreeBSD$
 .\"
-.Dd August 21, 2018
+.Dd February 10, 2019
 .Dt GETSOCKOPT 2
 .Os
 .Sh NAME
@@ -534,7 +534,11 @@ transfer rate to the given unsigned 32-bit value in by
 .Sh RETURN VALUES
 .Rv -std
 .Sh ERRORS
-The call succeeds unless:
+The
+.Fn getsockopt
+and
+.Fn setsockopt
+system calls succeed unless:
 .Bl -tag -width Er
 .It Bq Er EBADF
 The argument
@@ -561,6 +565,15 @@ Installing an
 on a non-listening socket was attempted.
 .It Bq Er ENOMEM
 A memory allocation failed that was required to service the request.
+.El
+.Pp
+The
+.Fn setsockopt
+system call may also return the following error:
+.Bl -tag -width Er
+.It Bq Er ENOBUFS
+Insufficient resources were available in the system
+to perform the operation.
 .El
 .Sh SEE ALSO
 .Xr ioctl 2 ,

Modified: projects/clang800-import/lib/libc/x86/sys/__vdso_gettc.c
==============================================================================
--- projects/clang800-import/lib/libc/x86/sys/__vdso_gettc.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/libc/x86/sys/__vdso_gettc.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -1,6 +1,6 @@
 /*-
  * Copyright (c) 2012 Konstantin Belousov <kib@FreeBSD.org>
- * Copyright (c) 2016, 2017 The FreeBSD Foundation
+ * Copyright (c) 2016, 2017, 2019 The FreeBSD Foundation
  * All rights reserved.
  *
  * Portions of this software were developed by Konstantin Belousov
@@ -50,15 +50,9 @@ __FBSDID("$FreeBSD$");
 #ifdef WANT_HYPERV
 #include <dev/hyperv/hyperv.h>
 #endif
+#include <x86/ifunc.h>
 #include "libc_private.h"
 
-static enum LMB {
-	LMB_UNKNOWN,
-	LMB_NONE,
-	LMB_MFENCE,
-	LMB_LFENCE
-} lfence_works = LMB_UNKNOWN;
-
 static void
 cpuidp(u_int leaf, u_int p[4])
 {
@@ -84,68 +78,36 @@ cpuidp(u_int leaf, u_int p[4])
 	    :  "0" (leaf));
 }
 
-static enum LMB
-select_lmb(void)
+static void
+rdtsc_mb_lfence(void)
 {
-	u_int p[4];
-	static const char intel_id[] = "GenuntelineI";
 
-	cpuidp(0, p);
-	return (memcmp(p + 1, intel_id, sizeof(intel_id) - 1) == 0 ?
-	    LMB_LFENCE : LMB_MFENCE);
+	lfence();
 }
 
 static void
-init_fence(void)
+rdtsc_mb_mfence(void)
 {
-#if defined(__i386__)
-	u_int cpuid_supported, p[4];
 
-	lfence_works = LMB_NONE;
-	__asm __volatile(
-	    "	pushfl\n"
-	    "	popl	%%eax\n"
-	    "	movl    %%eax,%%ecx\n"
-	    "	xorl    $0x200000,%%eax\n"
-	    "	pushl	%%eax\n"
-	    "	popfl\n"
-	    "	pushfl\n"
-	    "	popl    %%eax\n"
-	    "	xorl    %%eax,%%ecx\n"
-	    "	je	1f\n"
-	    "	movl	$1,%0\n"
-	    "	jmp	2f\n"
-	    "1:	movl	$0,%0\n"
-	    "2:\n"
-	    : "=r" (cpuid_supported) : : "eax", "ecx", "cc");
-	if (cpuid_supported) {
-		cpuidp(0x1, p);
-		if ((p[3] & CPUID_SSE2) != 0)
-			lfence_works = select_lmb();
-	}
-#elif defined(__amd64__)
-	lfence_works = select_lmb();
-#else
-#error "Arch"
-#endif
+	mfence();
 }
 
 static void
-rdtsc_mb(void)
+rdtsc_mb_none(void)
 {
+}
 
-again:
-	if (__predict_true(lfence_works == LMB_LFENCE)) {
-		lfence();
-		return;
-	} else if (lfence_works == LMB_MFENCE) {
-		mfence();
-		return;
-	} else if (lfence_works == LMB_NONE) {
-		return;
-	}
-	init_fence();
-	goto again;
+DEFINE_UIFUNC(static, void, rdtsc_mb, (void), static)
+{
+	u_int p[4];
+	/* Not a typo, string matches our cpuidp() registers use. */
+	static const char intel_id[] = "GenuntelineI";
+
+	if ((cpu_feature & CPUID_SSE2) == 0)
+		return (rdtsc_mb_none);
+	cpuidp(0, p);
+	return (memcmp(p + 1, intel_id, sizeof(intel_id) - 1) == 0 ?
+	    rdtsc_mb_lfence : rdtsc_mb_mfence);
 }
 
 static u_int

Modified: projects/clang800-import/lib/libcasper/services/cap_syslog/cap_syslog.c
==============================================================================
--- projects/clang800-import/lib/libcasper/services/cap_syslog/cap_syslog.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/libcasper/services/cap_syslog/cap_syslog.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -88,6 +88,9 @@ cap_openlog(cap_channel_t *chan, const char *ident, in
 	}
 	nvlist_add_number(nvl, "logopt", logopt);
 	nvlist_add_number(nvl, "facility", facility);
+	if (logopt & LOG_PERROR) {
+		nvlist_add_descriptor(nvl, "stderr", STDERR_FILENO);
+	}
 	nvl = cap_xfer_nvlist(chan, nvl);
 	if (nvl == NULL) {
 		return;
@@ -131,6 +134,7 @@ cap_setlogmask(cap_channel_t *chan, int maskpri)
  */
 
 static char *LogTag;
+static int prev_stderr = -1;
 
 static void
 slog_vsyslog(const nvlist_t *limits __unused, const nvlist_t *nvlin,
@@ -146,6 +150,8 @@ slog_openlog(const nvlist_t *limits __unused, const nv
     nvlist_t *nvlout __unused)
 {
 	const char *ident;
+	uint64_t logopt;
+	int stderr_fd;
 
 	ident = dnvlist_get_string(nvlin, "ident", NULL);
 	if (ident != NULL) {
@@ -153,8 +159,19 @@ slog_openlog(const nvlist_t *limits __unused, const nv
 		LogTag = strdup(ident);
 	}
 
-	openlog(LogTag, nvlist_get_number(nvlin, "logopt"),
-	    nvlist_get_number(nvlin, "facility"));
+	logopt = nvlist_get_number(nvlin, "logopt");
+	if (logopt & LOG_PERROR) {
+		stderr_fd = dnvlist_get_descriptor(nvlin, "stderr", -1);
+		if (prev_stderr == -1)
+			prev_stderr = dup(STDERR_FILENO);
+		if (prev_stderr != -1)
+			(void)dup2(stderr_fd, STDERR_FILENO);
+	} else if (prev_stderr != -1) {
+		(void)dup2(prev_stderr, STDERR_FILENO);
+		close(prev_stderr);
+		prev_stderr = -1;
+	}
+	openlog(LogTag, logopt, nvlist_get_number(nvlin, "facility"));
 }
 
 static void
@@ -166,6 +183,12 @@ slog_closelog(const nvlist_t *limits __unused, const n
 
 	free(LogTag);
 	LogTag = NULL;
+
+	if (prev_stderr != -1) {
+		(void)dup2(prev_stderr, STDERR_FILENO);
+		close(prev_stderr);
+		prev_stderr = -1;
+	}
 }
 
 static void
@@ -198,4 +221,4 @@ syslog_command(const char *cmd, const nvlist_t *limits
 	return (0);
 }
 
-CREATE_SERVICE("system.syslog", NULL, syslog_command, CASPER_SERVICE_STDIO);
+CREATE_SERVICE("system.syslog", NULL, syslog_command, 0);

Modified: projects/clang800-import/lib/libutil/quotafile.c
==============================================================================
--- projects/clang800-import/lib/libutil/quotafile.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/libutil/quotafile.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -118,7 +118,8 @@ quota_open(struct fstab *fs, int quotatype, int openfl
 	struct dqhdr64 dqh;
 	struct group *grp;
 	struct stat st;
-	int qcmd, serrno;
+	int qcmd, serrno = 0;
+	int ufs;
 
 	if ((qf = calloc(1, sizeof(*qf))) == NULL)
 		return (NULL);
@@ -129,15 +130,21 @@ quota_open(struct fstab *fs, int quotatype, int openfl
 		goto error;
 	qf->dev = st.st_dev;
 	qcmd = QCMD(Q_GETQUOTASIZE, quotatype);
+	ufs = strcmp(fs->fs_vfstype, "ufs") == 0;
+	/*
+	 * On UFS, hasquota() fills in qf->qfname. But we only care about
+	 * this for UFS.  So we need to call hasquota() for UFS, first.
+	 */
+	if (ufs) {
+		serrno = hasquota(fs, quotatype, qf->qfname,
+		    sizeof(qf->qfname));
+	}
 	if (quotactl(qf->fsname, qcmd, 0, &qf->wordsize) == 0)
 		return (qf);
-	/* We only check the quota file for ufs */
-	if (strcmp(fs->fs_vfstype, "ufs")) {
+	if (!ufs) {
 		errno = 0;
 		goto error;
-	}
-	serrno = hasquota(fs, quotatype, qf->qfname, sizeof(qf->qfname));
-	if (serrno == 0) {
+	} else if (serrno == 0) {
 		errno = EOPNOTSUPP;
 		goto error;
 	}

Modified: projects/clang800-import/lib/msun/src/e_j0.c
==============================================================================
--- projects/clang800-import/lib/msun/src/e_j0.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/msun/src/e_j0.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -93,8 +93,7 @@ __ieee754_j0(double x)
 	if(ix>=0x7ff00000) return one/(x*x);
 	x = fabs(x);
 	if(ix >= 0x40000000) {	/* |x| >= 2.0 */
-		s = sin(x);
-		c = cos(x);
+		sincos(x, &s, &c);
 		ss = s-c;
 		cc = s+c;
 		if(ix<0x7fe00000) {  /* Make sure x+x does not overflow. */
@@ -173,8 +172,7 @@ __ieee754_y0(double x)
          *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
          * to compute the worse one.
          */
-                s = sin(x);
-                c = cos(x);
+                sincos(x, &s, &c);
                 ss = s-c;
                 cc = s+c;
 	/*

Modified: projects/clang800-import/lib/msun/src/e_j0f.c
==============================================================================
--- projects/clang800-import/lib/msun/src/e_j0f.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/msun/src/e_j0f.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -55,8 +55,7 @@ __ieee754_j0f(float x)
 	if(ix>=0x7f800000) return one/(x*x);
 	x = fabsf(x);
 	if(ix >= 0x40000000) {	/* |x| >= 2.0 */
-		s = sinf(x);
-		c = cosf(x);
+		sincosf(x, &s, &c);
 		ss = s-c;
 		cc = s+c;
 		if(ix<0x7f000000) {  /* Make sure x+x does not overflow. */
@@ -128,8 +127,7 @@ __ieee754_y0f(float x)
          *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
          * to compute the worse one.
          */
-                s = sinf(x);
-                c = cosf(x);
+                sincosf(x, &s, &c);
                 ss = s-c;
                 cc = s+c;
 	/*

Modified: projects/clang800-import/lib/msun/src/e_j1.c
==============================================================================
--- projects/clang800-import/lib/msun/src/e_j1.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/msun/src/e_j1.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -94,8 +94,7 @@ __ieee754_j1(double x)
 	if(ix>=0x7ff00000) return one/x;
 	y = fabs(x);
 	if(ix >= 0x40000000) {	/* |x| >= 2.0 */
-		s = sin(y);
-		c = cos(y);
+		sincos(y, &s, &c);
 		ss = -s-c;
 		cc = s-c;
 		if(ix<0x7fe00000) {  /* make sure y+y not overflow */
@@ -159,8 +158,7 @@ __ieee754_y1(double x)
 	/* y1(x<0) = NaN and raise invalid exception. */
         if(hx<0) return vzero/vzero;
         if(ix >= 0x40000000) {  /* |x| >= 2.0 */
-                s = sin(x);
-                c = cos(x);
+                sincos(x, &s, &c);
                 ss = -s-c;
                 cc = s-c;
                 if(ix<0x7fe00000) {  /* make sure x+x not overflow */

Modified: projects/clang800-import/lib/msun/src/e_j1f.c
==============================================================================
--- projects/clang800-import/lib/msun/src/e_j1f.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/msun/src/e_j1f.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -56,8 +56,7 @@ __ieee754_j1f(float x)
 	if(ix>=0x7f800000) return one/x;
 	y = fabsf(x);
 	if(ix >= 0x40000000) {	/* |x| >= 2.0 */
-		s = sinf(y);
-		c = cosf(y);
+		sincosf(y, &s, &c);
 		ss = -s-c;
 		cc = s-c;
 		if(ix<0x7f000000) {  /* make sure y+y not overflow */
@@ -114,8 +113,7 @@ __ieee754_y1f(float x)
 	if(ix==0) return -one/vzero;
 	if(hx<0) return vzero/vzero;
         if(ix >= 0x40000000) {  /* |x| >= 2.0 */
-                s = sinf(x);
-                c = cosf(x);
+                sincosf(x, &s, &c);
                 ss = -s-c;
                 cc = s-c;
                 if(ix<0x7f000000) {  /* make sure x+x not overflow */

Modified: projects/clang800-import/lib/msun/src/e_jn.c
==============================================================================
--- projects/clang800-import/lib/msun/src/e_jn.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/msun/src/e_jn.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -54,7 +54,7 @@ double
 __ieee754_jn(int n, double x)
 {
 	int32_t i,hx,ix,lx, sgn;
-	double a, b, temp, di;
+	double a, b, c, s, temp, di;
 	double z, w;
 
     /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x)
@@ -91,11 +91,12 @@ __ieee754_jn(int n, double x)
      *		   2	-s+c		-c-s
      *		   3	 s+c		 c-s
      */
+		sincos(x, &s, &c);
 		switch(n&3) {
-		    case 0: temp =  cos(x)+sin(x); break;
-		    case 1: temp = -cos(x)+sin(x); break;
-		    case 2: temp = -cos(x)-sin(x); break;
-		    case 3: temp =  cos(x)-sin(x); break;
+		    case 0: temp =  c+s; break;
+		    case 1: temp = -c+s; break;
+		    case 2: temp = -c-s; break;
+		    case 3: temp =  c-s; break;
 		}
 		b = invsqrtpi*temp/sqrt(x);
 	    } else {
@@ -216,7 +217,7 @@ __ieee754_yn(int n, double x)
 {
 	int32_t i,hx,ix,lx;
 	int32_t sign;
-	double a, b, temp;
+	double a, b, c, s, temp;
 
 	EXTRACT_WORDS(hx,lx,x);
 	ix = 0x7fffffff&hx;
@@ -248,11 +249,12 @@ __ieee754_yn(int n, double x)
      *		   2	-s+c		-c-s
      *		   3	 s+c		 c-s
      */
+		sincos(x, &s, &c);
 		switch(n&3) {
-		    case 0: temp =  sin(x)-cos(x); break;
-		    case 1: temp = -sin(x)-cos(x); break;
-		    case 2: temp = -sin(x)+cos(x); break;
-		    case 3: temp =  sin(x)+cos(x); break;
+		    case 0: temp =  s-c; break;
+		    case 1: temp = -s-c; break;
+		    case 2: temp = -s+c; break;
+		    case 3: temp =  s+c; break;
 		}
 		b = invsqrtpi*temp/sqrt(x);
 	} else {

Modified: projects/clang800-import/lib/msun/tests/trig_test.c
==============================================================================
--- projects/clang800-import/lib/msun/tests/trig_test.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/lib/msun/tests/trig_test.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -160,7 +160,8 @@ ATF_TC_BODY(reduction, tc)
 
 	unsigned i;
 
-#if defined(__amd64__) && defined(__clang__) && __clang_major__ >= 7
+#if defined(__amd64__) && defined(__clang__) && __clang_major__ >= 7 && \
+    __FreeBSD_cc_version < 1300002
 	atf_tc_expect_fail("test fails with clang 7+ - bug 234040");
 #endif
 

Modified: projects/clang800-import/libexec/rc/rc.d/growfs
==============================================================================
--- projects/clang800-import/libexec/rc/rc.d/growfs	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/libexec/rc/rc.d/growfs	Sun Feb 10 12:49:34 2019	(r343956)
@@ -49,7 +49,20 @@ rcvar="growfs_enable"
 growfs_start ()
 {
 	echo "Growing root partition to fill device"
-	rootdev=$(df / | tail -n 1 | awk '{ sub("/dev/", "", $1); print $1 }')
+	FSTYPE=$(mount -p | awk '{ if ( $2 == "/") { print $3 }}')
+	FSDEV=$(mount -p | awk '{ if ( $2 == "/") { print $1 }}')
+	case "$FSTYPE" in
+	ufs)
+		rootdev=${FSDEV#/dev/}
+		;;
+	zfs)
+		pool=${FSDEV%%/*}
+		rootdev=$(zpool list -v $pool | tail -n 1 | awk '{ print $1 }')
+		;;
+	*)
+		echo "Don't know how to grow root filesystem type: $FSTYPE"
+		return
+	esac
 	if [ x"$rootdev" = x"${rootdev%/*}" ]; then
 		# raw device
 		rawdev="$rootdev"
@@ -91,7 +104,14 @@ growfs_start ()
 	}
 }' dev="$rawdev"
 	gpart commit "$rootdev"
-	growfs -y /dev/"$rootdev"
+	case "$FSTYPE" in
+	ufs)
+		growfs -y /dev/"$rootdev"
+		;;
+	zfs)
+		zpool online -e $pool $rootdev
+		;;
+	esac
 }
 
 load_rc_config $name

Modified: projects/clang800-import/libexec/talkd/extern.h
==============================================================================
--- projects/clang800-import/libexec/talkd/extern.h	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/libexec/talkd/extern.h	Sun Feb 10 12:49:34 2019	(r343956)
@@ -1,7 +1,7 @@
 /*-
  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
  *
- * Copyright (c) 2002 M. Warner Losh.  All rights reserved.
+ * Copyright (c) 2002 M. Warner Losh.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions

Modified: projects/clang800-import/sbin/dhclient/dhclient.c
==============================================================================
--- projects/clang800-import/sbin/dhclient/dhclient.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/sbin/dhclient/dhclient.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -2348,7 +2348,8 @@ priv_script_go(void)
 	if (ip)
 		script_flush_env(ip->client);
 
-	return (wstatus & 0xff);
+	return (WIFEXITED(wstatus) ?
+	    WEXITSTATUS(wstatus) : 128 + WTERMSIG(wstatus));
 }
 
 void

Modified: projects/clang800-import/sbin/ipfw/tables.c
==============================================================================
--- projects/clang800-import/sbin/ipfw/tables.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/sbin/ipfw/tables.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -282,13 +282,14 @@ ipfw_table_handler(int ac, char *av[])
 		}
 		break;
 	case TOK_LIST:
+		arg = is_all ? (void*)1 : NULL;
 		if (is_all == 0) {
 			ipfw_xtable_info i;
 			if ((error = table_get_info(&oh, &i)) != 0)
 				err(EX_OSERR, "failed to request table info");
-			table_show_one(&i, NULL);
+			table_show_one(&i, arg);
 		} else {
-			error = tables_foreach(table_show_one, NULL, 1);
+			error = tables_foreach(table_show_one, arg, 1);
 			if (error != 0)
 				err(EX_OSERR, "failed to request tables list");
 		}
@@ -821,13 +822,16 @@ table_show_one(ipfw_xtable_info *i, void *arg)
 {
 	ipfw_obj_header *oh;
 	int error;
+	int is_all;
 
+	is_all = arg == NULL ? 0 : 1;
+
 	if ((error = table_do_get_list(i, &oh)) != 0) {
 		err(EX_OSERR, "Error requesting table %s list", i->tablename);
 		return (error);
 	}
 
-	table_show_list(oh, 1);
+	table_show_list(oh, is_all);
 
 	free(oh);
 	return (0);	

Modified: projects/clang800-import/sbin/recoverdisk/recoverdisk.c
==============================================================================
--- projects/clang800-import/sbin/recoverdisk/recoverdisk.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/sbin/recoverdisk/recoverdisk.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -125,6 +125,7 @@ read_worklist(off_t t)
 		new_lump(s, l, state);
 		d -= l;
 	}
+	fclose(file);
 	(void)fprintf(stderr, " done.\n");
 	/*
 	 * Return the number of bytes already read

Modified: projects/clang800-import/sbin/sysctl/sysctl.8
==============================================================================
--- projects/clang800-import/sbin/sysctl/sysctl.8	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/sbin/sysctl/sysctl.8	Sun Feb 10 12:49:34 2019	(r343956)
@@ -28,7 +28,7 @@
 .\"	From: @(#)sysctl.8	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd September 24, 2018
+.Dd February 8, 2019
 .Dt SYSCTL 8
 .Os
 .Sh NAME
@@ -36,13 +36,13 @@
 .Nd get or set kernel state
 .Sh SYNOPSIS
 .Nm
-.Op Fl bdehiNnoRTtqx
+.Op Fl bdehiNnoTtqWx
 .Op Fl B Ar bufsize
 .Op Fl f Ar filename
 .Ar name Ns Op = Ns Ar value Ns Op , Ns Ar value
 .Ar ...
 .Nm
-.Op Fl bdehNnoRTtqx
+.Op Fl bdehNnoTtqWx
 .Op Fl B Ar bufsize
 .Fl a
 .Sh DESCRIPTION

Modified: projects/clang800-import/share/man/man4/ng_iface.4
==============================================================================
--- projects/clang800-import/share/man/man4/ng_iface.4	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/man/man4/ng_iface.4	Sun Feb 10 12:49:34 2019	(r343956)
@@ -35,7 +35,7 @@
 .\" $FreeBSD$
 .\" $Whistle: ng_iface.8,v 1.5 1999/01/25 23:46:26 archie Exp $
 .\"
-.Dd January 12, 2015
+.Dd February 6, 2019
 .Dt NG_IFACE 4
 .Os
 .Sh NAME
@@ -144,6 +144,17 @@ In case when your graph ends up with some kind of seri
 synchronous or modem, the
 .Nm
 is the right place to turn ALTQ on.
+.Sh Nesting
+.Nm
+supports nesting, a configuration when traffic of one
+.Nm
+interface flows through the other.
+The default maximum allowed nesting level is 2.
+It can be changed at runtime setting
+.Xr sysctl 8
+variable
+.Va net.graph.iface.max_nesting
+to the desired level of nesting.
 .Sh SEE ALSO
 .Xr altq 4 ,
 .Xr bpf 4 ,
@@ -151,6 +162,7 @@ is the right place to turn ALTQ on.
 .Xr ng_cisco 4 ,
 .Xr ifconfig 8 ,
 .Xr ngctl 8
+.Xr sysctl
 .Sh HISTORY
 The
 .Nm iface

Modified: projects/clang800-import/share/man/man9/bus_space.9
==============================================================================
--- projects/clang800-import/share/man/man9/bus_space.9	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/man/man9/bus_space.9	Sun Feb 10 12:49:34 2019	(r343956)
@@ -1,6 +1,7 @@
 .\" $NetBSD: bus_space.9,v 1.9 1999/03/06 22:09:29 mycroft Exp $
 .\"
-.\" Copyright (c) 2005 M. Warner Losh.  All Rights Reserved.
+.\" Copyright (c) 2005 M. Warner Losh.
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:

Modified: projects/clang800-import/share/man/man9/config_intrhook.9
==============================================================================
--- projects/clang800-import/share/man/man9/config_intrhook.9	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/man/man9/config_intrhook.9	Sun Feb 10 12:49:34 2019	(r343956)
@@ -1,5 +1,5 @@
 .\"
-.\" Copyright (C) 2006 M. Warner Losh <imp@FreeBSD.org>. All rights reserved.
+.\" Copyright (C) 2006 M. Warner Losh <imp@FreeBSD.org>.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions

Modified: projects/clang800-import/share/man/man9/pwm.9
==============================================================================
--- projects/clang800-import/share/man/man9/pwm.9	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/man/man9/pwm.9	Sun Feb 10 12:49:34 2019	(r343956)
@@ -22,7 +22,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 12, 2018
+.Dd January 12, 2019
 .Dt PWM 9
 .Os
 .Sh NAME
@@ -79,7 +79,7 @@ Get the current flags for the channel.
 Enable the PWM channel.
 .It Fn PWM_CHANNEL_ISENABLED "device_t dev" "int channel" "bool *enable"
 Test if the PWM channel is enabled.
-.It PWM_CHANNEL_MAX "device_t dev" "int channel" "int *nchannel"
+.It Fn PWM_CHANNEL_MAX "device_t dev" "int channel" "int *nchannel"
 Get the maximum number of channels supported by the controller.
 .El
 .Sh HISTORY

Modified: projects/clang800-import/share/misc/bsd-family-tree
==============================================================================
--- projects/clang800-import/share/misc/bsd-family-tree	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/misc/bsd-family-tree	Sun Feb 10 12:49:34 2019	(r343956)
@@ -374,8 +374,8 @@ FreeBSD 5.2           |      |                 |      
  |            |       |     |      |           |                       |
  |            |       |     |      |           |               DragonFly 5.2.2
  |         FreeBSD    |     |  NetBSD 7.2      |                       |
- |           11.2     |     |      |           |                       |
- |                    |     |      |      OpenBSD 6.4                  |
+ |           11.2   macOS   |      |           |                       |
+ |                  10.14   |      |      OpenBSD 6.4                  |
  |                    |     |      |           |               DragonFly 5.4.0
  *--FreeBSD           |     |      v           |                       |
  |   12.0             |     |                  |               DragonFly 5.4.1
@@ -756,6 +756,7 @@ DragonFly 5.2.2		2018-06-18 [DFB]
 FreeBSD 11.2		2018-06-27 [FBD]
 NetBSD 8.0		2018-07-17 [NBD]
 NetBSD 7.2		2018-08-29 [NBD]
+macOS 10.14		2018-09-24 [APL]
 OpenBSD 6.4		2018-10-18 [OBD]
 DragonFly 5.4.0		2018-12-03 [DFB]
 FreeBSD 12.0		2018-12-11 [FBD]

Modified: projects/clang800-import/share/misc/committers-ports.dot
==============================================================================
--- projects/clang800-import/share/misc/committers-ports.dot	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/misc/committers-ports.dot	Sun Feb 10 12:49:34 2019	(r343956)
@@ -150,6 +150,7 @@ jsa [label="Joseph S. Atkinson\njsa@FreeBSD.org\n2010/
 jsm [label="Jesper Schmitz Mouridsen\njsm@FreeBSD.org\n2018/06/30"]
 junovitch [label="Jason Unovitch\njunovitch@FreeBSD.org\n2015/07/27"]
 jylefort [label="Jean-Yves Lefort\njylefort@FreeBSD.org\n2005/04/12"]
+kai [label="Kai Knoblich\nkai@FreeBSD.org\n2019/02/01"]
 kami [label="Dominic Fandrey\nkami@FreeBSD.org\n2014/09/09"]
 kbowling [label="Kevin Bowling\nkbowling@FreeBSD.org\n2018/09/02"]
 kevlo [label="Kevin Lo\nkevlo@FreeBSD.org\n2003/02/21"]
@@ -476,6 +477,8 @@ jadawin -> wen
 
 joerg -> netchild
 
+joneum -> kai
+
 jrm -> dch
 jrm -> jwb
 
@@ -573,6 +576,7 @@ miwi -> gahr
 miwi -> jhixson
 miwi -> joneum
 miwi -> jsm
+miwi -> kai
 miwi -> kmoore
 miwi -> lme
 miwi -> makc
@@ -714,6 +718,7 @@ tcberner -> yuri
 tcberner -> fernape
 tcberner -> arrowd
 tcberner -> rigoletto
+tcberner -> kai
 
 thierry -> jadawin
 thierry -> riggs

Modified: projects/clang800-import/share/misc/committers-src.dot
==============================================================================
--- projects/clang800-import/share/misc/committers-src.dot	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/misc/committers-src.dot	Sun Feb 10 12:49:34 2019	(r343956)
@@ -216,6 +216,7 @@ jmcneill [label="Jared McNeill\njmcneill@FreeBSD.org\n
 jmg [label="John-Mark Gurney\njmg@FreeBSD.org\n1997/02/13"]
 jmmv [label="Julio Merino\njmmv@FreeBSD.org\n2013/11/02"]
 joerg [label="Joerg Wunsch\njoerg@FreeBSD.org\n1993/11/14"]
+johalun [label="Johannes Lundberg\njohalun@FreeBSD.org\n2019/01/19"]
 jon [label="Jonathan Chen\njon@FreeBSD.org\n2000/10/17"]
 jonathan [label="Jonathan Anderson\njonathan@FreeBSD.org\n2010/10/07"]
 jpaetzel [label="Josh Paetzel\njpaetzel@FreeBSD.org\n2011/01/21"]
@@ -558,6 +559,7 @@ imp -> dmlb
 imp -> emax
 imp -> furuta
 imp -> joe
+imp -> johalun
 imp -> jon
 imp -> keichii
 imp -> kibab

Modified: projects/clang800-import/share/mk/bsd.cpu.mk
==============================================================================
--- projects/clang800-import/share/mk/bsd.cpu.mk	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/mk/bsd.cpu.mk	Sun Feb 10 12:49:34 2019	(r343956)
@@ -135,7 +135,7 @@ _CPUCFLAGS = -Wa,-me500 -msoft-float
 _CPUCFLAGS = -mcpu=${CPUTYPE} -mno-powerpc64
 .  endif
 . elif ${MACHINE_ARCH} == "powerpcspe"
-_CPUCFLAGS = -Wa,-me500 -mspe=yes -mabi=spe -mfloat-gprs=double
+_CPUCFLAGS = -Wa,-me500 -mspe=yes -mabi=spe -mfloat-gprs=double -mcpu=8548
 . elif ${MACHINE_ARCH} == "powerpc64"
 _CPUCFLAGS = -mcpu=${CPUTYPE}
 . elif ${MACHINE_CPUARCH} == "mips"
@@ -362,7 +362,7 @@ CFLAGS += -mfloat-abi=softfp
 .endif
 
 .if ${MACHINE_ARCH} == "powerpcspe"
-CFLAGS += -mcpu=8540 -Wa,-me500 -mspe=yes -mabi=spe -mfloat-gprs=double
+CFLAGS += -mcpu=8548 -Wa,-me500 -mspe=yes -mabi=spe -mfloat-gprs=double
 .endif
 
 .if ${MACHINE_CPUARCH} == "riscv"

Modified: projects/clang800-import/share/mk/src.opts.mk
==============================================================================
--- projects/clang800-import/share/mk/src.opts.mk	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/mk/src.opts.mk	Sun Feb 10 12:49:34 2019	(r343956)
@@ -83,7 +83,6 @@ __DEFAULT_YES_OPTIONS = \
     CPP \
     CROSS_COMPILER \
     CRYPT \
-    CTM \
     CUSE \
     CXX \
     CXGBETOOL \

Modified: projects/clang800-import/share/mk/suite.test.mk
==============================================================================
--- projects/clang800-import/share/mk/suite.test.mk	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/share/mk/suite.test.mk	Sun Feb 10 12:49:34 2019	(r343956)
@@ -120,5 +120,7 @@ beforecheck:
 #       etc.
 aftercheck:
 	@cd ${.CURDIR} && ${MAKE} clean
+	@chflags -R 0 "${DESTDIR}"
+	@rm -Rf "${DESTDIR}"
 
 .endif

Modified: projects/clang800-import/stand/efi/libefi/efienv.c
==============================================================================
--- projects/clang800-import/stand/efi/libefi/efienv.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/stand/efi/libefi/efienv.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -48,7 +48,7 @@ efi_getenv(EFI_GUID *g, const char *v, void *data, siz
 		return (EFI_OUT_OF_RESOURCES);
 	dl = *len;
 	rv = RS->GetVariable(uv, g, &attr, &dl, data);
-	if (rv == EFI_SUCCESS)
+	if (rv == EFI_SUCCESS || rv == EFI_BUFFER_TOO_SMALL)
 		*len = dl;
 	free(uv);
 	return (rv);

Modified: projects/clang800-import/sys/amd64/conf/GENERIC
==============================================================================
--- projects/clang800-import/sys/amd64/conf/GENERIC	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/sys/amd64/conf/GENERIC	Sun Feb 10 12:49:34 2019	(r343956)
@@ -102,8 +102,8 @@ options 	MALLOC_DEBUG_MAXZONES=8	# Separate malloc(9) 
 options 	VERBOSE_SYSINIT=0	# Support debug.verbose_sysinit, off by default
 
 # Kernel Sanitizers
-options 	COVERAGE		# Generic kernel coverage. Used by KCOV
-options 	KCOV			# Kernel Coverage Sanitizer
+#options 	COVERAGE		# Generic kernel coverage. Used by KCOV
+#options 	KCOV			# Kernel Coverage Sanitizer
 # Warning: KUBSAN can result in a kernel too large for loader to load
 #options 	KUBSAN			# Kernel Undefined Behavior Sanitizer
 

Modified: projects/clang800-import/sys/amd64/conf/NOTES
==============================================================================
--- projects/clang800-import/sys/amd64/conf/NOTES	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/sys/amd64/conf/NOTES	Sun Feb 10 12:49:34 2019	(r343956)
@@ -612,9 +612,6 @@ options 	EFIRT
 # Enable 32-bit runtime support for FreeBSD/i386 binaries.
 options 	COMPAT_FREEBSD32
 
-# Emulate spx device for client side of SVR3 local X interface
-#XXX#options 	SPX_HACK
-
 # Enable (32-bit) a.out binary support
 options 	COMPAT_AOUT
 

Modified: projects/clang800-import/sys/arm/allwinner/axp81x.c
==============================================================================
--- projects/clang800-import/sys/arm/allwinner/axp81x.c	Sun Feb 10 12:45:33 2019	(r343955)
+++ projects/clang800-import/sys/arm/allwinner/axp81x.c	Sun Feb 10 12:49:34 2019	(r343956)
@@ -65,9 +65,13 @@ MALLOC_DEFINE(M_AXP8XX_REG, "AXP8xx regulator", "AXP8x
 #define	 AXP_POWERSRC_ACIN	(1 << 7)
 #define	 AXP_POWERSRC_VBUS	(1 << 5)
 #define	 AXP_POWERSRC_VBAT	(1 << 3)
-#define	 AXP_POWERSRC_CHARING	(1 << 2)
+#define	 AXP_POWERSRC_CHARING	(1 << 2)	/* Charging Direction */
 #define	 AXP_POWERSRC_SHORTED	(1 << 1)
 #define	 AXP_POWERSRC_STARTUP	(1 << 0)
+#define	AXP_POWERMODE		0x01
+#define	 AXP_POWERMODE_BAT_CHARGING	(1 << 6)
+#define	 AXP_POWERMODE_BAT_PRESENT	(1 << 5)
+#define	 AXP_POWERMODE_BAT_VALID	(1 << 4)
 #define	AXP_ICTYPE		0x03
 #define	AXP_POWERCTL1		0x10
 #define	 AXP_POWERCTL1_DCDC7	(1 << 6)	/* AXP813/818 only */
@@ -117,14 +121,47 @@ MALLOC_DEFINE(M_AXP8XX_REG, "AXP8xx regulator", "AXP8x
 #define	AXP_POWERBAT		0x32
 #define	 AXP_POWERBAT_SHUTDOWN	(1 << 7)
 #define	AXP_IRQEN1		0x40
+#define	 AXP_IRQEN1_ACIN_HI	(1 << 6)
+#define	 AXP_IRQEN1_ACIN_LO	(1 << 5)
+#define	 AXP_IRQEN1_VBUS_HI	(1 << 3)
+#define	 AXP_IRQEN1_VBUS_LO	(1 << 2)
 #define	AXP_IRQEN2		0x41
+#define	 AXP_IRQEN2_BAT_IN	(1 << 7)
+#define	 AXP_IRQEN2_BAT_NO	(1 << 6)
+#define	 AXP_IRQEN2_BATCHGC	(1 << 3)
+#define	 AXP_IRQEN2_BATCHGD	(1 << 2)
 #define	AXP_IRQEN3		0x42
 #define	AXP_IRQEN4		0x43
+#define	 AXP_IRQEN4_BATLVL_LO1	(1 << 1)
+#define	 AXP_IRQEN4_BATLVL_LO0	(1 << 0)
 #define	AXP_IRQEN5		0x44
 #define	 AXP_IRQEN5_POKSIRQ	(1 << 4)
+#define	 AXP_IRQEN5_POKLIRQ	(1 << 3)
 #define	AXP_IRQEN6		0x45
+#define	AXP_IRQSTAT1		0x48
+#define	 AXP_IRQSTAT1_ACIN_HI	(1 << 6)
+#define	 AXP_IRQSTAT1_ACIN_LO	(1 << 5)
+#define	 AXP_IRQSTAT1_VBUS_HI	(1 << 3)
+#define	 AXP_IRQSTAT1_VBUS_LO	(1 << 2)
+#define	AXP_IRQSTAT2		0x49
+#define	 AXP_IRQSTAT2_BAT_IN	(1 << 7)
+#define	 AXP_IRQSTAT2_BAT_NO	(1 << 6)
+#define	 AXP_IRQSTAT2_BATCHGC	(1 << 3)
+#define	 AXP_IRQSTAT2_BATCHGD	(1 << 2)
+#define	AXP_IRQSTAT3		0x4a
+#define	AXP_IRQSTAT4		0x4b
+#define	 AXP_IRQSTAT4_BATLVL_LO1	(1 << 1)
+#define	 AXP_IRQSTAT4_BATLVL_LO0	(1 << 0)
 #define	AXP_IRQSTAT5		0x4c
 #define	 AXP_IRQSTAT5_POKSIRQ	(1 << 4)
+#define	 AXP_IRQEN5_POKLIRQ	(1 << 3)
+#define	AXP_IRQSTAT6		0x4d
+#define	AXP_BATSENSE_HI		0x78
+#define	AXP_BATSENSE_LO		0x79
+#define	AXP_BATCHG_HI		0x7a
+#define	AXP_BATCHG_LO		0x7b
+#define	AXP_BATDISCHG_HI	0x7c
+#define	AXP_BATDISCHG_LO	0x7d
 #define	AXP_GPIO0_CTRL		0x90
 #define	AXP_GPIO0LDO_CTRL	0x91
 #define	AXP_GPIO1_CTRL		0x92
@@ -138,7 +175,25 @@ MALLOC_DEFINE(M_AXP8XX_REG, "AXP8xx regulator", "AXP8x
 #define	 AXP_GPIO_FUNC_LDO_OFF	4
 #define	AXP_GPIO_SIGBIT		0x94
 #define	AXP_GPIO_PD		0x97
+#define	AXP_FUEL_GAUGECTL	0xb8
+#define	 AXP_FUEL_GAUGECTL_EN	(1 << 7)
 
+#define	AXP_BAT_CAP		0xb9
+#define	 AXP_BAT_CAP_VALID	(1 << 7)
+#define	 AXP_BAT_CAP_PERCENT	0x7f
+
+#define	AXP_BAT_MAX_CAP_HI	0xe0
+#define	 AXP_BAT_MAX_CAP_VALID	(1 << 7)
+#define	AXP_BAT_MAX_CAP_LO	0xe1
+
+#define	AXP_BAT_COULOMB_HI	0xe2
+#define	 AXP_BAT_COULOMB_VALID	(1 << 7)
+#define	AXP_BAT_COULOMB_LO	0xe3
+
+#define	AXP_BAT_CAP_WARN	0xe6
+#define	 AXP_BAT_CAP_WARN_LV1	0xf0	/* Bits 4, 5, 6, 7 */
+#define	 AXP_BAT_CAP_WARN_LV2	0xf	/* Bits 0, 1, 2, 3 */
+
 static const struct {
 	const char *name;
 	uint8_t	ctrl_reg;
@@ -710,6 +765,68 @@ axp8xx_intr(void *arg)
 
 	dev = arg;
 
+	error = axp8xx_read(dev, AXP_IRQSTAT1, &val, 1);
+	if (error != 0)
+		return;
+
+	if (val) {
+		if (bootverbose)
+			device_printf(dev, "AXP_IRQSTAT1 val: %x\n", val);
+		if (val & AXP_IRQSTAT1_ACIN_HI)
+			devctl_notify("PMU", "AC", "plugged", NULL);
+		if (val & AXP_IRQSTAT1_ACIN_LO)
+			devctl_notify("PMU", "AC", "unplugged", NULL);
+		if (val & AXP_IRQSTAT1_VBUS_HI)
+			devctl_notify("PMU", "USB", "plugged", NULL);
+		if (val & AXP_IRQSTAT1_VBUS_LO)
+			devctl_notify("PMU", "USB", "unplugged", NULL);
+		/* Acknowledge */
+		axp8xx_write(dev, AXP_IRQSTAT1, val);
+	}
+
+	error = axp8xx_read(dev, AXP_IRQSTAT2, &val, 1);
+	if (error != 0)
+		return;
+
+	if (val) {
+		if (bootverbose)
+			device_printf(dev, "AXP_IRQSTAT2 val: %x\n", val);
+		if (val & AXP_IRQSTAT2_BATCHGD)
+			devctl_notify("PMU", "Battery", "charged", NULL);
+		if (val & AXP_IRQSTAT2_BATCHGC)
+			devctl_notify("PMU", "Battery", "charging", NULL);
+		if (val & AXP_IRQSTAT2_BAT_NO)
+			devctl_notify("PMU", "Battery", "absent", NULL);
+		if (val & AXP_IRQSTAT2_BAT_IN)
+			devctl_notify("PMU", "Battery", "plugged", NULL);
+		/* Acknowledge */
+		axp8xx_write(dev, AXP_IRQSTAT2, val);
+	}
+
+	error = axp8xx_read(dev, AXP_IRQSTAT3, &val, 1);
+	if (error != 0)
+		return;
+
+	if (val) {
+		/* Acknowledge */
+		axp8xx_write(dev, AXP_IRQSTAT3, val);
+	}
+
+	error = axp8xx_read(dev, AXP_IRQSTAT4, &val, 1);
+	if (error != 0)
+		return;
+
+	if (val) {
+		if (bootverbose)
+			device_printf(dev, "AXP_IRQSTAT4 val: %x\n", val);
+		if (val & AXP_IRQSTAT4_BATLVL_LO0)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201902101249.x1ACnZZ5082061>