Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Apr 2015 00:08:38 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r281801 - in projects/release-arm64: . lib/libc/iconv lib/libmt lib/libpmc sbin/dmesg share/man/man4 share/man/man9 sys/arm/conf sys/cam/scsi sys/kern sys/modules/dtb/allwinner sys/net ...
Message-ID:  <201504210008.t3L08c1M090475@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Tue Apr 21 00:08:37 2015
New Revision: 281801
URL: https://svnweb.freebsd.org/changeset/base/281801

Log:
  MFH: r281784-r281800
  
  This is in preparation to merge back to head after
  testing.
  
  Sponsored by:	The FreeBSD Foundation

Added:
  projects/release-arm64/sys/modules/dtb/allwinner/
     - copied from r281800, head/sys/modules/dtb/allwinner/
Modified:
  projects/release-arm64/.arcconfig
  projects/release-arm64/.arclint
  projects/release-arm64/lib/libc/iconv/citrus_prop.c
  projects/release-arm64/lib/libmt/mt.3
  projects/release-arm64/lib/libpmc/pmc.haswellxeon.3
  projects/release-arm64/sbin/dmesg/dmesg.c
  projects/release-arm64/share/man/man4/ata.4
  projects/release-arm64/share/man/man9/printf.9
  projects/release-arm64/sys/arm/conf/CUBIEBOARD
  projects/release-arm64/sys/arm/conf/CUBIEBOARD2
  projects/release-arm64/sys/cam/scsi/scsi_all.c
  projects/release-arm64/sys/kern/subr_prf.c
  projects/release-arm64/sys/net/bpf.c
  projects/release-arm64/sys/net/bpf.h
  projects/release-arm64/tools/build/check-links.sh
  projects/release-arm64/usr.bin/patch/inp.c
  projects/release-arm64/usr.bin/patch/pch.c
  projects/release-arm64/usr.bin/patch/util.c
Directory Properties:
  projects/release-arm64/   (props changed)
  projects/release-arm64/lib/libc/   (props changed)
  projects/release-arm64/sbin/   (props changed)
  projects/release-arm64/share/   (props changed)
  projects/release-arm64/share/man/man4/   (props changed)
  projects/release-arm64/sys/   (props changed)
  projects/release-arm64/sys/x86/include/acpica_machdep.h   (props changed)

Modified: projects/release-arm64/.arcconfig
==============================================================================
--- projects/release-arm64/.arcconfig	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/.arcconfig	Tue Apr 21 00:08:37 2015	(r281801)
@@ -1,5 +1,4 @@
 {
 	"project.name": "S",
-	"phabricator.uri" : "https://reviews.freebsd.org/",
-	"history.immutable" : true
+	"phabricator.uri" : "https://reviews.freebsd.org/"
 }

Modified: projects/release-arm64/.arclint
==============================================================================
--- projects/release-arm64/.arclint	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/.arclint	Tue Apr 21 00:08:37 2015	(r281801)
@@ -1,9 +1,25 @@
 {
+  "exclude": "(contrib|crypto)",
   "linters": {
     "python": {
       "type": "pep8",
-      "exclude": "(contrib)",
       "include": "(\\.py$)"
+    },
+    "spelling": {
+      "type": "spelling"
+    },
+    "chmod": {
+      "type": "chmod"
+    },
+    "merge-conflict": {
+      "type": "merge-conflict"
+    },
+    "filename": {
+      "type": "filename"
+    },
+    "json": {
+      "type": "json",
+      "include": "(\\.arclint|\\.json$)"
     }
   }
 }

Modified: projects/release-arm64/lib/libc/iconv/citrus_prop.c
==============================================================================
--- projects/release-arm64/lib/libc/iconv/citrus_prop.c	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/lib/libc/iconv/citrus_prop.c	Tue Apr 21 00:08:37 2015	(r281801)
@@ -293,8 +293,10 @@ done:
 		}
 		_memstream_ungetc(ms, ch);
 		errnum = _citrus_prop_read_character_common(ms, &ch);
-		if (errnum != 0)
+		if (errnum != 0) {
+			free(s);
 			return (errnum);
+		}
 		s[n] = ch;
 		++n, --m;
 	}

Modified: projects/release-arm64/lib/libmt/mt.3
==============================================================================
--- projects/release-arm64/lib/libmt/mt.3	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/lib/libmt/mt.3	Tue Apr 21 00:08:37 2015	(r281801)
@@ -35,7 +35,6 @@
 .Dt MT 3
 .Os
 .Sh NAME
-.Nm 
 .Nm mt_start_element ,
 .Nm mt_end_element ,
 .Nm mt_char_handler ,

Modified: projects/release-arm64/lib/libpmc/pmc.haswellxeon.3
==============================================================================
--- projects/release-arm64/lib/libpmc/pmc.haswellxeon.3	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/lib/libpmc/pmc.haswellxeon.3	Tue Apr 21 00:08:37 2015	(r281801)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd 21 November, 2014
+.Dd November 21, 2014
 .Dt PMC.HASWELLXEON 3
 .Os
 .Sh NAME

Modified: projects/release-arm64/sbin/dmesg/dmesg.c
==============================================================================
--- projects/release-arm64/sbin/dmesg/dmesg.c	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/sbin/dmesg/dmesg.c	Tue Apr 21 00:08:37 2015	(r281801)
@@ -118,6 +118,9 @@ main(int argc, char *argv[])
 		 */
 		if (sysctlbyname("kern.msgbuf", NULL, &buflen, NULL, 0) == -1)
 			err(1, "sysctl kern.msgbuf");
+		/* Allocate extra room for growth between the sysctl calls. */
+		buflen += buflen/8;
+		/* Allocate more than sysctl sees, for room to append \n\0. */
 		if ((bp = malloc(buflen + 2)) == NULL)
 			errx(1, "malloc failed");
 		if (sysctlbyname("kern.msgbuf", bp, &buflen, NULL, 0) == -1)

Modified: projects/release-arm64/share/man/man4/ata.4
==============================================================================
--- projects/release-arm64/share/man/man4/ata.4	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/share/man/man4/ata.4	Tue Apr 21 00:08:37 2015	(r281801)
@@ -99,6 +99,7 @@ Interface Power Management is disabled.
 This is the default value.
 .It 1
 The device is allowed to initiate a PM state change; the host is passive.
+.El
 .It Va hint.ata. Ns Ar X Ns Va .dev Ns Ar X Ns Va .sata_rev
 limits the initial SATA revision (speed) for the specified device
 on the specified channel.

Modified: projects/release-arm64/share/man/man9/printf.9
==============================================================================
--- projects/release-arm64/share/man/man9/printf.9	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/share/man/man9/printf.9	Tue Apr 21 00:08:37 2015	(r281801)
@@ -67,7 +67,8 @@ The
 .Fn log
 function sends the message to the kernel logging facility, using
 the log level as indicated by
-.Fa pri .
+.Fa pri ,
+and to the console if no process is yet reading the log.
 .Pp
 Each of these related functions use the
 .Fa fmt

Modified: projects/release-arm64/sys/arm/conf/CUBIEBOARD
==============================================================================
--- projects/release-arm64/sys/arm/conf/CUBIEBOARD	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/sys/arm/conf/CUBIEBOARD	Tue Apr 21 00:08:37 2015	(r281801)
@@ -139,4 +139,4 @@ device		miibus
 options 	FDT			# Configure using FDT/DTB data
 options 	FDT_DTB_STATIC
 makeoptions	FDT_DTS_FILE=cubieboard.dts
-
+makeoptions	MODULES_EXTRA=dtb/allwinner

Modified: projects/release-arm64/sys/arm/conf/CUBIEBOARD2
==============================================================================
--- projects/release-arm64/sys/arm/conf/CUBIEBOARD2	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/sys/arm/conf/CUBIEBOARD2	Tue Apr 21 00:08:37 2015	(r281801)
@@ -140,4 +140,4 @@ device		miibus
 options 	FDT			# Configure using FDT/DTB data
 options 	FDT_DTB_STATIC
 makeoptions	FDT_DTS_FILE=cubieboard2.dts
-
+makeoptions	MODULES_EXTRA=dtb/allwinner

Modified: projects/release-arm64/sys/cam/scsi/scsi_all.c
==============================================================================
--- projects/release-arm64/sys/cam/scsi/scsi_all.c	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/sys/cam/scsi/scsi_all.c	Tue Apr 21 00:08:37 2015	(r281801)
@@ -6039,7 +6039,7 @@ scsi_parse_transportid_rdma(char *id_str
 		goto bailout;
 	}
 	*alloc_len = sizeof(*rdma);
-	bzero(rdma, sizeof(rdma));
+	bzero(rdma, *alloc_len);
 
 	rdma->format_protocol = SCSI_PROTO_RDMA | SCSI_TRN_RDMA_FORMAT_DEFAULT;
 	bcopy(rdma_id, rdma->initiator_port_id, SCSI_TRN_RDMA_PORT_LEN);

Modified: projects/release-arm64/sys/kern/subr_prf.c
==============================================================================
--- projects/release-arm64/sys/kern/subr_prf.c	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/sys/kern/subr_prf.c	Tue Apr 21 00:08:37 2015	(r281801)
@@ -295,7 +295,7 @@ log(int level, const char *fmt, ...)
 	va_list ap;
 
 	va_start(ap, fmt);
-	(void)_vprintf(level, log_open ? TOLOG : TOCONS, fmt, ap);
+	(void)_vprintf(level, log_open ? TOLOG : TOCONS | TOLOG, fmt, ap);
 	va_end(ap);
 
 	msgbuftrigger = 1;

Modified: projects/release-arm64/sys/net/bpf.c
==============================================================================
--- projects/release-arm64/sys/net/bpf.c	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/sys/net/bpf.c	Tue Apr 21 00:08:37 2015	(r281801)
@@ -69,7 +69,6 @@ __FBSDID("$FreeBSD$");
 
 #include <net/if.h>
 #include <net/if_var.h>
-#define	BPF_INTERNAL
 #include <net/bpf.h>
 #include <net/bpf_buffer.h>
 #ifdef BPF_JITTER
@@ -90,6 +89,20 @@ __FBSDID("$FreeBSD$");
 
 MALLOC_DEFINE(M_BPF, "BPF", "BPF data");
 
+struct bpf_if {
+#define	bif_next	bif_ext.bif_next
+#define	bif_dlist	bif_ext.bif_dlist
+	struct bpf_if_ext bif_ext;	/* public members */
+	u_int		bif_dlt;	/* link layer type */
+	u_int		bif_hdrlen;	/* length of link header */
+	struct ifnet	*bif_ifp;	/* corresponding interface */
+	struct rwlock	bif_lock;	/* interface lock */
+	LIST_HEAD(, bpf_d) bif_wlist;	/* writer-only list */
+	int		bif_flags;	/* Interface flags */
+};
+
+CTASSERT(offsetof(struct bpf_if, bif_ext) == 0);
+
 #if defined(DEV_BPF) || defined(NETGRAPH_BPF)
 
 #define PRINET  26			/* interruptible */
@@ -1892,7 +1905,7 @@ bpf_setif(struct bpf_d *d, struct ifreq 
 
 	/* Check if interface is not being detached from BPF */
 	BPFIF_RLOCK(bp);
-	if (bp->flags & BPFIF_FLAG_DYING) {
+	if (bp->bif_flags & BPFIF_FLAG_DYING) {
 		BPFIF_RUNLOCK(bp);
 		return (ENXIO);
 	}
@@ -2561,7 +2574,7 @@ bpfdetach(struct ifnet *ifp)
 		 * Mark bp as detached to restrict new consumers.
 		 */
 		BPFIF_WLOCK(bp);
-		bp->flags |= BPFIF_FLAG_DYING;
+		bp->bif_flags |= BPFIF_FLAG_DYING;
 		BPFIF_WUNLOCK(bp);
 
 		CTR4(KTR_NET, "%s: sheduling free for encap %d (%p) for if %p",

Modified: projects/release-arm64/sys/net/bpf.h
==============================================================================
--- projects/release-arm64/sys/net/bpf.h	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/sys/net/bpf.h	Tue Apr 21 00:08:37 2015	(r281801)
@@ -1451,21 +1451,14 @@ SYSCTL_DECL(_net_bpf);
 
 /*
  * Descriptor associated with each attached hardware interface.
- * FIXME: this structure is exposed to external callers to speed up
- * bpf_peers_present() call. However we cover all fields not needed by
- * this function via BPF_INTERNAL define
+ * Part of this structure is exposed to external callers to speed up
+ * bpf_peers_present() calls.
  */
-struct bpf_if {
+struct bpf_if;
+
+struct bpf_if_ext {
 	LIST_ENTRY(bpf_if)	bif_next;	/* list of all interfaces */
 	LIST_HEAD(, bpf_d)	bif_dlist;	/* descriptor list */
-#ifdef BPF_INTERNAL
-	u_int bif_dlt;				/* link layer type */
-	u_int bif_hdrlen;		/* length of link header */
-	struct ifnet *bif_ifp;		/* corresponding interface */
-	struct rwlock bif_lock;		/* interface lock */
-	LIST_HEAD(, bpf_d)	bif_wlist;	/* writer-only list */
-	int flags;			/* Interface flags */
-#endif
 };
 
 void	 bpf_bufheld(struct bpf_d *d);
@@ -1483,8 +1476,10 @@ u_int	 bpf_filter(const struct bpf_insn 
 static __inline int
 bpf_peers_present(struct bpf_if *bpf)
 {
+	struct bpf_if_ext *ext;
 
-	if (!LIST_EMPTY(&bpf->bif_dlist))
+	ext = (struct bpf_if_ext *)bpf;
+	if (!LIST_EMPTY(&ext->bif_dlist))
 		return (1);
 	return (0);
 }

Modified: projects/release-arm64/tools/build/check-links.sh
==============================================================================
--- projects/release-arm64/tools/build/check-links.sh	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/tools/build/check-links.sh	Tue Apr 21 00:08:37 2015	(r281801)
@@ -1,6 +1,15 @@
 #!/bin/sh
 # $FreeBSD$
 
+ret=0
+CHECK_UNRESOLVED=1
+while getopts "U" flag; do
+	case "${flag}" in
+		U) CHECK_UNRESOLVED=0 ;;
+	esac
+done
+shift $((OPTIND-1))
+
 mime=$(file -L --mime-type $1)
 case $mime in
 *application/x-executable);;
@@ -8,30 +17,74 @@ case $mime in
 *) echo "Not an elf file" >&2 ; exit 1;;
 esac
 
+# Gather all symbols from the target
+unresolved_symbols=$(nm -D -u --format=posix "$1" | awk '$2 == "U" {print $1}' | tr '\n' ' ')
+ldd_libs=$(ldd $1 | awk '{print $1 ":" $3}')
+
+libkey() {
+	libkey="lib_symbols_$1"
+	patterns=[.+,-]
+	replacement=_
+	while :; do
+		case " ${libkey} " in
+			*${patterns}*)
+				libkey="${libkey%%${patterns}*}${replacement}${libkey#*${patterns}}"
+				;;
+			*)
+				break
+				;;
+		esac
+	done
+	return 0
+}
+
 # Check for useful libs
-list_libs=""
+list_libs=
+resolved_symbols=
 for lib in $(readelf -d $1 | awk '$2 ~ /\(?NEEDED\)?/ { sub(/\[/,"",$NF); sub(/\]/,"",$NF); print $NF }'); do
-        echo -n "checking if $lib is needed: "
-        libpath=$(ldd $1 | awk -v lib=$lib '$1 == lib { print $3 }')
-        list_libs="$list_libs $libpath"
-        foundone=0
-        for fct in $(nm -D $libpath | awk '$2 == "R" || $2 == "D" || $2 == "T" || $2 == "W" || $2 == "B" { print $3 }'); do
-                nm -D $1 | awk -v s=$fct '$1 == "U" && $2 == s { found=1 ; exit } END { if (found != 1) { exit 1 } }' && foundone=1 && break
-        done
-        if [ $foundone -eq 1 ]; then
-                echo -n "yes... "
-                nm -D $1 | awk -v s=$fct '$1 == "U" && $2 == s { print $2 ; exit }'
-        else
-                echo "no"
-        fi
+	echo -n "checking if $lib is needed: "
+	for libpair in ${ldd_libs}; do
+		case "${libpair}" in
+			${lib}:*) libpath="${libpair#*:}" && break ;;
+		esac
+	done
+	list_libs="$list_libs $lib"
+	foundone=
+	lib_symbols="$(nm -D --defined-only --format=posix "${libpath}" | awk '$2 ~ /R|D|T|W|B|V/ {print $1}' | tr '\n' ' ')"
+	if [ ${CHECK_UNRESOLVED} -eq 1 ]; then
+		# Save the global symbols for this lib
+		libkey "${lib}"
+		setvar "${libkey}"  "${lib_symbols}"
+	fi
+	for fct in ${lib_symbols}; do
+		case " ${unresolved_symbols} " in
+			*\ ${fct}\ *) foundone="${fct}" && break ;;
+		esac
+	done
+	if [ -n "${foundone}" ]; then
+		echo "yes... ${foundone}"
+	else
+		echo "no"
+		ret=1
+	fi
 done
 
-for sym in $(nm -D $1 | awk '$1 == "U" { print $2 }'); do
-        found=0
-        for l in ${list_libs} ; do
-                nm -D $l | awk -v s=$sym '($2 == "R" || $2 == "D" || $2 == "T" || $2 == "W" || $2 == "B") && $3 == s { found=1 ; exit } END { if (found != 1) { exit 1 } }' && found=1 && break
-        done
-        if [ $found -eq 0 ]; then
-                echo "Unresolved symbol $sym"
-        fi
-done
+if [ ${CHECK_UNRESOLVED} -eq 1 ]; then
+	for sym in ${unresolved_symbols}; do
+		found=0
+		for lib in ${list_libs}; do
+			libkey "${lib}"
+			eval "lib_symbols=\"\${${libkey}}\""
+			# lib_symbols now contains symbols for the lib.
+			case " ${lib_symbols} " in
+				*\ ${sym}\ *) found=1 && break ;;
+			esac
+		done
+		if [ $found -eq 0 ]; then
+			echo "Unresolved symbol $sym"
+			ret=1
+		fi
+	done
+fi
+
+exit ${ret}

Modified: projects/release-arm64/usr.bin/patch/inp.c
==============================================================================
--- projects/release-arm64/usr.bin/patch/inp.c	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/usr.bin/patch/inp.c	Tue Apr 21 00:08:37 2015	(r281801)
@@ -34,8 +34,8 @@
 
 #include <ctype.h>
 #include <libgen.h>
-#include <limits.h>
 #include <stddef.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>

Modified: projects/release-arm64/usr.bin/patch/pch.c
==============================================================================
--- projects/release-arm64/usr.bin/patch/pch.c	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/usr.bin/patch/pch.c	Tue Apr 21 00:08:37 2015	(r281801)
@@ -34,6 +34,7 @@
 #include <ctype.h>
 #include <libgen.h>
 #include <limits.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>

Modified: projects/release-arm64/usr.bin/patch/util.c
==============================================================================
--- projects/release-arm64/usr.bin/patch/util.c	Mon Apr 20 22:15:18 2015	(r281800)
+++ projects/release-arm64/usr.bin/patch/util.c	Tue Apr 21 00:08:37 2015	(r281801)
@@ -27,13 +27,13 @@
  * $FreeBSD$
  */
 
-#include <sys/param.h>
 #include <sys/stat.h>
 
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <libgen.h>
+#include <limits.h>
 #include <paths.h>
 #include <signal.h>
 #include <stdarg.h>
@@ -96,7 +96,7 @@ int
 backup_file(const char *orig)
 {
 	struct stat	filestat;
-	char		bakname[MAXPATHLEN], *s, *simplename;
+	char		bakname[PATH_MAX], *s, *simplename;
 	dev_t		orig_device;
 	ino_t		orig_inode;
 
@@ -406,7 +406,7 @@ fetchname(const char *at, bool *exists, 
 char *
 checked_in(char *file)
 {
-	char		*filebase, *filedir, tmpbuf[MAXPATHLEN];
+	char		*filebase, *filedir, tmpbuf[PATH_MAX];
 	struct stat	filestat;
 
 	filebase = basename(file);



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