Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jan 2001 00:51:40 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        "David O'Brien" <obrien@FreeBSD.org>
Cc:        Garrett Wollman <wollman@khavrinen.lcs.mit.edu>, Maxim Sobolev <sobomax@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/lib/libvgl bitmap.c main.c simple.c vgl.h
Message-ID:  <Pine.BSF.4.21.0101170039100.2393-100000@besplex.bde.org>
In-Reply-To: <20010115143602.A44766@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 15 Jan 2001, David O'Brien wrote:

> On Mon, Jan 15, 2001 at 02:43:43PM -0500, Garrett Wollman wrote:
> > >> > -void VGLSetXY(VGLBitmap *object, int x, int y, byte color);
> > >> > +void VGLSetXY(VGLBitmap *object, int x, int y, u_long color);
> > 
> > > Please bump shared library version number, because ABI is likely to be broken.
> > 
> > Changes of this sort clearly do *not* break the ABI on Intel
> > architecture (the parameter `color' is in the same place on the stack,
> 
> Not for 64-bit longs on x86...

Heh.  I don't think there's an official ABI for those.  I've never seen one
for ordinary longs.  In practice, gcc pessimizes both the caller and the
callee for passing types smaller than ints.  The caller extends the value
and the callee truncates the value.  Only one side needs to be pessimized
to support the C standard (if a prototype for the callee is in scope).
Pessimizing both sides helps support mixing code compiled by different
compilers and may be required by ABI's.

Bruce



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0101170039100.2393-100000>