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 ...
Glen Barber
gjb at FreeBSD.org
Tue Apr 21 00:08:43 UTC 2015
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);
More information about the svn-src-projects
mailing list