From owner-freebsd-current@FreeBSD.ORG Sun Nov 12 14:43:12 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2299116A4EB; Sun, 12 Nov 2006 14:43:12 +0000 (UTC) (envelope-from keramida@freebsd.org) Received: from igloo.linux.gr (igloo.linux.gr [62.1.205.36]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E43843D67; Sun, 12 Nov 2006 14:43:09 +0000 (GMT) (envelope-from keramida@freebsd.org) Received: from kobe.laptop (host155-42.pool8174.interbusiness.it [81.74.42.155] (may be forged)) (authenticated bits=128) by igloo.linux.gr (8.13.8/8.13.8/Debian-2) with ESMTP id kACEgaQF032664 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 12 Nov 2006 16:42:45 +0200 Received: from kobe.laptop (kobe.laptop [127.0.0.1]) by kobe.laptop (8.13.8/8.13.8) with ESMTP id kACEgVcj002729; Sun, 12 Nov 2006 15:42:31 +0100 (CET) (envelope-from keramida@freebsd.org) Received: (from keramida@localhost) by kobe.laptop (8.13.8/8.13.8/Submit) id kACEgUMi002728; Sun, 12 Nov 2006 15:42:30 +0100 (CET) (envelope-from keramida@freebsd.org) Date: Sun, 12 Nov 2006 15:42:30 +0100 From: Giorgos Keramidas To: Ruslan Ermilov , arm@freebsd.org, current@freebsd.org Message-ID: <20061112144230.GC2331@kobe.laptop> References: <20061112133929.9194773068@freebsd-current.sentex.ca> <20061112140010.GA47660@rambler-co.ru> <20061112142710.GE91556@wombat.fafoe.narf.at> <20061112133929.9194773068@freebsd-current.sentex.ca> <20061112140010.GA47660@rambler-co.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20061112142710.GE91556@wombat.fafoe.narf.at> <20061112140010.GA47660@rambler-co.ru> X-Hellug-MailScanner: Found to be clean X-Hellug-MailScanner-SpamCheck: not spam, SpamAssassin (score=-2.463, required 5, autolearn=not spam, AWL 0.00, BAYES_00 -2.60, FORGED_RCVD_HELO 0.14, UNPARSEABLE_RELAY 0.00) X-Hellug-MailScanner-From: keramida@freebsd.org X-Spam-Status: No Cc: Subject: Re: [head tinderbox] failure on arm/arm X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Nov 2006 14:43:12 -0000 On 2006-11-12 17:00, Ruslan Ermilov wrote: > > /src/lib/libelf/elf_rand.c: In function `elf_rand': > > /src/lib/libelf/elf_rand.c:47: warning: cast increases required alignment of target type > > *** Error code 1 > > > > Stop in /src/lib/libelf. > > *** Error code 1 > > This looks like a GCC bug to me. The following code snippet, > when compiled on FreeBSD/arm, causes a -Wcast-align warning > which doesn't look right: > > %%% > $ cat a.c > struct foo { > char x; > }; > > struct foo * > bubu(char *s) > { > > return (struct foo *)s; > } > $ cc -c -Wcast-align a.c > a.c: In function `bubu': > a.c:9: warning: cast increases required alignment of target type > %%% > > (None of other supported architecutes see the issue here.) You can't cast any random (char *) pointer to a pointer of a type which is (potentially) larger than 1 byte. It's the same sort of warning you will get if you try to: char ch[] = "\x00\x00\x00\x00"; char *p = &(ch[0]); unsigned long *lptr = (unsigned long *)p; You cannot guarantee that `ch' is stored in an address that is properly aligned for (unsigned long), and this is what GCC warns about here. On 2006-11-12 15:27, Stefan Farfeleder wrote: > What is sizeof(struct foo)? If it's > 1 it makes sense. Exactly :)