Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Apr 2010 20:13:40 +1000 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Roman Divacky <rdivacky@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Bruce Evans <brde@optusnet.com.au>
Subject:   Re: svn commit: r206424 - head/usr.bin/xlint/lint1
Message-ID:  <20100411200313.G2454@besplex.bde.org>
In-Reply-To: <20100411092417.GA37528@freebsd.org>
References:  <201004091521.o39FLBqx035856@svn.freebsd.org> <20100411175432.S10835@delplex.bde.org> <20100411092417.GA37528@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 11 Apr 2010, Roman Divacky wrote:

> On Sun, Apr 11, 2010 at 07:16:12PM +1000, Bruce Evans wrote:
>> ....  However2, the system ALIGN() on
>> amd64 doesn't know the correct alignment either (both essentially had
>> 64 bits hard-coded).  Now xlint uses a different hard-coded alignment
>> (128 bits).
>
> so you suggest fixing the ALIGN on amd64? ie. to make it 128bit?

It's an ABI change, thus needs careful release engineering.  _ALIGN
(= ALIGN) is used in the CMSG ABI in <sys/socket.h> so I think would
affect public ABIs.

amd64 has a strict ABI which I think involves 128-byte alignment for
long doubles (not sure if it specifies anything for non-C things like
copies of SSE registers).  The system should have a macro to support
the maximal alignment and it is easiest to use ALIGN() for this
(otherwise you would need a new macro for this and keep ALIGN() for
pointers and longs...).

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100411200313.G2454>