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>