From owner-svn-src-all@FreeBSD.ORG Wed Oct 12 21:45:12 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E332B106566B; Wed, 12 Oct 2011 21:45:12 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D259D8FC12; Wed, 12 Oct 2011 21:45:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9CLjCVu085542; Wed, 12 Oct 2011 21:45:12 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9CLjCcm085538; Wed, 12 Oct 2011 21:45:12 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201110122145.p9CLjCcm085538@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Wed, 12 Oct 2011 21:45:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226329 - head/usr.bin/kdump X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Oct 2011 21:45:13 -0000 Author: des Date: Wed Oct 12 21:45:12 2011 New Revision: 226329 URL: http://svn.freebsd.org/changeset/base/226329 Log: Make kdump compile cleanly at WARNS level 6, with one exception: the ipfilter headers contain a duplicated function declaration. Turn off -Werror to allow kdump to compile in spite of this. It would be neat to be able to turn off -Werror on a file-by-file basis... PR: bin/161478 Submitted by: Garrett Cooper Modified: head/usr.bin/kdump/Makefile head/usr.bin/kdump/kdump.c head/usr.bin/kdump/mkioctls Modified: head/usr.bin/kdump/Makefile ============================================================================== --- head/usr.bin/kdump/Makefile Wed Oct 12 21:38:48 2011 (r226328) +++ head/usr.bin/kdump/Makefile Wed Oct 12 21:45:12 2011 (r226329) @@ -16,9 +16,9 @@ CFLAGS+= -I${.CURDIR}/../ktrace -I${.CUR SRCS+= linux_syscalls.c .endif -WARNS?= 0 +NO_WERROR?= YES -CLEANFILES= ioctl.c kdump_subr.c linux_syscalls.c +CLEANFILES= ioctl.c kdump_subr.c kdump_subr.h linux_syscalls.c ioctl.c: mkioctls sh ${.CURDIR}/mkioctls ${DESTDIR}/usr/include > ${.TARGET} Modified: head/usr.bin/kdump/kdump.c ============================================================================== --- head/usr.bin/kdump/kdump.c Wed Oct 12 21:38:48 2011 (r226328) +++ head/usr.bin/kdump/kdump.c Wed Oct 12 21:45:12 2011 (r226329) @@ -95,6 +95,8 @@ void visdump(char *, int, int); void ktrgenio(struct ktr_genio *, int); void ktrpsig(struct ktr_psig *); void ktrcsw(struct ktr_csw *); +void ktruser_malloc(unsigned char *); +void ktruser_rtld(int, unsigned char *); void ktruser(int, unsigned char *); void ktrsockaddr(struct sockaddr *); void ktrstat(struct stat *); @@ -508,7 +510,6 @@ ktrsyscall(struct ktr_syscall *ktr, u_in (flags == 0 || (flags & SV_ABI_MASK) == SV_ABI_FREEBSD)) { switch (ktr->ktr_code) { case SYS_ioctl: { - const char *cp; print_number(ip, narg, c); putchar(c); ioctlname(*ip, decimal); @@ -1334,7 +1335,7 @@ struct utrace_malloc { }; void -ktruser_malloc(int len, unsigned char *p) +ktruser_malloc(unsigned char *p) { struct utrace_malloc *ut = (struct utrace_malloc *)p; @@ -1358,7 +1359,7 @@ ktruser(int len, unsigned char *p) } if (len == sizeof(struct utrace_malloc)) { - ktruser_malloc(len, p); + ktruser_malloc(p); return; } @@ -1393,61 +1394,67 @@ ktrsockaddr(struct sockaddr *sa) printf(", "); #define check_sockaddr_len(n) \ - if (sa_##n->s##n##_len < sizeof(struct sockaddr_##n)) { \ + if (sa_##n.s##n##_len < sizeof(struct sockaddr_##n)) { \ printf("invalid"); \ break; \ } switch(sa->sa_family) { case AF_INET: { - struct sockaddr_in *sa_in; + struct sockaddr_in sa_in; - sa_in = (struct sockaddr_in *)sa; + memset(&sa_in, 0, sizeof(sa_in)); + memcpy(&sa_in, sa, sizeof(sa)); check_sockaddr_len(in); - inet_ntop(AF_INET, &sa_in->sin_addr, addr, sizeof addr); - printf("%s:%u", addr, ntohs(sa_in->sin_port)); + inet_ntop(AF_INET, &sa_in.sin_addr, addr, sizeof addr); + printf("%s:%u", addr, ntohs(sa_in.sin_port)); break; } #ifdef NETATALK case AF_APPLETALK: { - struct sockaddr_at *sa_at; + struct sockaddr_at sa_at; struct netrange *nr; - sa_at = (struct sockaddr_at *)sa; + memset(&sa_at, 0, sizeof(sa_at)); + memcpy(&sa_at, sa, sizeof(sa)); check_sockaddr_len(at); - nr = &sa_at->sat_range.r_netrange; - printf("%d.%d, %d-%d, %d", ntohs(sa_at->sat_addr.s_net), - sa_at->sat_addr.s_node, ntohs(nr->nr_firstnet), + nr = &sa_at.sat_range.r_netrange; + printf("%d.%d, %d-%d, %d", ntohs(sa_at.sat_addr.s_net), + sa_at.sat_addr.s_node, ntohs(nr->nr_firstnet), ntohs(nr->nr_lastnet), nr->nr_phase); break; } #endif case AF_INET6: { - struct sockaddr_in6 *sa_in6; + struct sockaddr_in6 sa_in6; - sa_in6 = (struct sockaddr_in6 *)sa; + memset(&sa_in6, 0, sizeof(sa_in6)); + memcpy(&sa_in6, sa, sizeof(sa)); check_sockaddr_len(in6); - inet_ntop(AF_INET6, &sa_in6->sin6_addr, addr, sizeof addr); - printf("[%s]:%u", addr, htons(sa_in6->sin6_port)); + inet_ntop(AF_INET6, &sa_in6.sin6_addr, addr, sizeof addr); + printf("[%s]:%u", addr, htons(sa_in6.sin6_port)); break; } #ifdef IPX case AF_IPX: { - struct sockaddr_ipx *sa_ipx; + struct sockaddr_ipx sa_ipx; - sa_ipx = (struct sockaddr_ipx *)sa; + memset(&sa_ipx, 0, sizeof(sa_ipx)); + memcpy(&sa_ipx, sa, sizeof(sa)); check_sockaddr_len(ipx); /* XXX wish we had ipx_ntop */ - printf("%s", ipx_ntoa(sa_ipx->sipx_addr)); + printf("%s", ipx_ntoa(sa_ipx.sipx_addr)); + free(sa_ipx); break; } #endif case AF_UNIX: { - struct sockaddr_un *sa_un; + struct sockaddr_un sa_un; - sa_un = (struct sockaddr_un *)sa; + memset(&sa_un, 0, sizeof(sa_un)); + memcpy(&sa_un, sa, sizeof(sa)); check_sockaddr_len(un); - printf("%.*s", (int)sizeof(sa_un->sun_path), sa_un->sun_path); + printf("%.*s", (int)sizeof(sa_un.sun_path), sa_un.sun_path); break; } default: @@ -1558,8 +1565,8 @@ ktrstruct(char *buf, size_t buflen) if (datalen == 0) goto invalid; /* sanity check */ - for (i = 0; i < namelen; ++i) - if (!isalpha((unsigned char)name[i])) + for (i = 0; i < (int)namelen; ++i) + if (!isalpha(name[i])) goto invalid; if (strcmp(name, "stat") == 0) { if (datalen != sizeof(struct stat)) Modified: head/usr.bin/kdump/mkioctls ============================================================================== --- head/usr.bin/kdump/mkioctls Wed Oct 12 21:38:48 2011 (r226328) +++ head/usr.bin/kdump/mkioctls Wed Oct 12 21:45:12 2011 (r226329) @@ -15,12 +15,21 @@ LC_ALL=C; export LC_ALL # XXX should we use an ANSI cpp? ioctl_includes=` cd $1 - find -H -s * -name '*.h' | + find -H -s * -name '*.h' | grep -v '.*disk.*\.h' | \ xargs egrep -l \ '^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-9_]*[ ]+_IO[^a-z0-9_]' | awk '{printf("#include <%s>\\\\n", $1)}' ` +case "`uname -m`" in +*pc98*) + ioctl_includes="$ioctl_includes#include \\n" + ;; +*) + ioctl_includes="$ioctl_includes#include \\n" + ;; +esac + awk -v x="$ioctl_includes" 'BEGIN {print x}' | gcc -E -I$1 -dM -DCOMPAT_43TTY - | awk -v ioctl_includes="$ioctl_includes" '