From owner-svn-src-head@FreeBSD.ORG Tue Sep 21 11:50:03 2010 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C392106564A; Tue, 21 Sep 2010 11:50:03 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail05.syd.optusnet.com.au (mail05.syd.optusnet.com.au [211.29.132.186]) by mx1.freebsd.org (Postfix) with ESMTP id 877408FC17; Tue, 21 Sep 2010 11:50:02 +0000 (UTC) Received: from besplex.bde.org (c122-107-116-249.carlnfd1.nsw.optusnet.com.au [122.107.116.249]) by mail05.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id o8LBns85019041 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 21 Sep 2010 21:49:55 +1000 Date: Tue, 21 Sep 2010 21:49:53 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Brian Somers In-Reply-To: <20100921030916.3ee375c6@dev.lan.Awfulhak.org> Message-ID: <20100921213906.D14718@besplex.bde.org> References: <201009200420.o8K4KtKn026514@svn.freebsd.org> <20100920163758.A788@besplex.bde.org> <20100921030916.3ee375c6@dev.lan.Awfulhak.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, Marcel Moolenaar , Bruce Evans , src-committers@FreeBSD.org Subject: Re: svn commit: r212886 - head/sbin/growfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Sep 2010 11:50:03 -0000 On Tue, 21 Sep 2010, Brian Somers wrote: > On Mon, 20 Sep 2010 16:55:57 +1000 (EST) Bruce Evans wrote: >> On Mon, 20 Sep 2010, Marcel Moolenaar wrote: >> >>> Log: >>> Unbreak the build on strong-aligned architectures (arm, ia64). >>> Casting from (char *) to (struct ufs1_dinode *) changes the >>> alignment requirement of the pointer and GCC does not know that >>> the pointer is adequately aligned (due to malloc(3)), and warns >>> about it. Cast to (void *) first to by-pass the check. >> >> A previous version in which the pointer (iobuf) the correct type to >> begin with was better. It used to have type void *, but now has type >> ... > > Maybe iobuf ought to go back to being a void * with casting where the > arithmetic happens. If it's changed, newfs/mkfs.c should probably change > too. > > Is there some subtle difference that makes the casting ok in newfs/mkfs.c: > > dp1 = (struct ufs1_dinode *)(&iobuf[start]); > > and not ok in growfs/growfs.c r212885: > > dp1 = (struct ufs1_dinode *)iobuf; > > or is it just ignored because WARNS is 3 for newfs and is defaulted to 6 for growfs? Just because of WARNS. The `caddr_t iobuf;' in newfs is really old and should be fixed someday. It is the only caddr_t remaining in newfs. In Lite2, newfs also uses caddr_t for its now-dead mfs parts, including for its replacements for the malloc() family which were errors in theory even at the time of Lite2 and which are now errors in practice. Bruce