From owner-cvs-all@FreeBSD.ORG Sun Jan 13 00:38:04 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69D9816A468; Sun, 13 Jan 2008 00:38:04 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 08C2313C44B; Sun, 13 Jan 2008 00:38:03 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.1/8.14.1) with ESMTP id m0D0ZaPH009913; Sat, 12 Jan 2008 17:35:37 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Sat, 12 Jan 2008 17:36:45 -0700 (MST) Message-Id: <20080112.173645.420517174.imp@bsdimp.com> To: rwatson@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <20080110085803.H66908@fledge.watson.org> References: <20080109201424.GA4969@server.vk2pj.dyndns.org> <478531AC.5030303@errno.com> <20080110085803.H66908@fledge.watson.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: src-committers@FreeBSD.org, cvs-all@FreeBSD.org, cvs-src@FreeBSD.org, obrien@FreeBSD.org, max@love2party.net, sam@errno.com Subject: Re: cvs commit: src/sys/netinet6 frag6.c icmp6.c in6.c in6_ifattach.c in6_pcb.c in6_proto.c in6_rmx.c in6_src.c ip6_input.c ip6_mroute.c ip6_output.c mld6.c nd6.c nd6_nbr.c nd6_rtr.c raw_ip6.c udp6_usrreq.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jan 2008 00:38:04 -0000 In message: <20080110085803.H66908@fledge.watson.org> Robert Watson writes: : In the past, we've had several subtle bugs crop up as a result of : changing to ANSI C function prototypes, which no longer : automatically promote arguments to int from shorter types (I think : it's that way around). This caused some very subtle semantic : changes in the socket code a few years ago and was a nightmare to : track down. Unfortunately, I don't remember the details or I'd dig : up the commit that fixed it, it was really quite tricky, as what on : face value was a style change actually changed the semantics : significantly. Yes. The changes there are when the prototype was introduced. In the absence of a prototype, all things are promoted to int or long or are a pointer. The usual cause for problems is where something was promoted without sign extension before the prototype, and with sign extension after (or vice versa). This is one reason why most kernel files have prototypes at the top of them for all static functions in the file. When the prototype is encountered, it doesn't matter if the definition later in the file is done in the old style or new style: all functions in the file are treated the same. However, that's not what happened here. Syntactic sugar was removed that lead to binaries of the same md5. We need to be careful to not make too big a deal out of that... My concern with doing style sweeps now is that it may delay 7.0 getting out, or make it harder than necessary to merge things. We should strive to keep them to a minimum unless active work is going on that isn't going to be merged back into 7.0 anyway (which should be most things today). I share the concern for unreviewed changes, and there's no need to beat on that drum further. So please read this as a 'now is a good time for a reminder' rather than a complaint about this specific commit. Warner