Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jan 2001 16:35:15 -0500
From:      "Brian F. Feldman" <green@FreeBSD.org>
To:        Garrett Wollman <wollman@khavrinen.lcs.mit.edu>
Cc:        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:  <200101152135.f0FLZF214128@green.dyndns.org>
In-Reply-To: Message from Garrett Wollman <wollman@khavrinen.lcs.mit.edu>  of "Mon, 15 Jan 2001 14:43:43 EST." <200101151943.OAA97850@khavrinen.lcs.mit.edu> 

next in thread | previous in thread | raw e-mail | index | archive | help
Garrett Wollman <wollman@khavrinen.lcs.mit.edu> wrote:
> <<On Mon, 15 Jan 2001 14:36:16 +0200, Maxim Sobolev <sobomax@FreeBSD.org> said:
> 
> >> > -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,
> with the same alignment and value).  They might break the ABI on
> Alphas, howerver.

They do break the ABI on the alpha:

#include <sys/types.h>
#include <stdio.h>
void try8(void *a, int b, int c, uint8_t d) {
 uint8_t e; printf("%p %p %p %p %p\n", &a, &b, &c, &d, &e); }
void try32(void *a, int b, int c, uint32_t d) {
 uint8_t e; printf("%p %p %p %p %p\n", &a, &b, &c, &d, &e); }
void try64(void *a, int b, int c, uint64_t d) {
 uint8_t e; printf("%p %p %p %p %p\n", &a, &b, &c, &d, &e); }
int main() { try8(main, 0, 0, 0); try32(main, 0, 0, 0);
 try64(main, 0, 0, 0); exit(0); }

{"/.amd_mnt/freefall/host/d/home/green"}$ ./abi
0x11ffbab0 0x11ffbaa0 0x11ffbaa4 0x11ffbaa8 0x11ffbaa9
0x11ffbab0 0x11ffbaa0 0x11ffbaa4 0x11ffbaa8 0x11ffbaac
0x11ffbab0 0x11ffbaa0 0x11ffbaa4 0x11ffbab8 0x11ffbaa8

As you can see, the alignment of the stack changes, so this would cause a 
lot of unexplained crashes.  It needs the bump for Alpha.

-- 
 Brian Fundakowski Feldman           \  FreeBSD: The Power to Serve!  /
 green@FreeBSD.org                    `------------------------------'




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?200101152135.f0FLZF214128>