Re: Database file compatability - Mailing list pgsql-hackers

From Qingqing Zhou
Subject Re: Database file compatability
Date
Msg-id dhdd1d$2mfg$1@news.hub.org
Whole thread Raw
In response to Database file compatability  ("Jim C. Nasby" <jnasby@pervasive.com>)
Responses Re: Database file compatability
List pgsql-hackers
"Tom Lane" <tgl@sss.pgh.pa.us> wrote in message 
news:1223.1127878072@sss.pgh.pa.us...
>
> There are no platforms for which ALIGNOF_SHORT is different from 2.
> I don't think there are any platforms we care about where ALIGNOF_INT
> is different from 4.  The cases of interest are ALIGNOF_DOUBLE,
> ALIGNOF_LONG, ALIGNOF_LONG_LONG_INT (note that MAXIMUM_ALIGNOF is
> just the largest of these).  In practice "long int" is the same type
> as either "int" or "long long int", so ALIGNOF_LONG isn't a distinct
> case either.  What it comes down to is that MAXIMUM_ALIGNOF is
> sufficient to tell the difference between the platforms we need to
> deal with.  If you have a counterexample, tell us about it.
>
(1)
Yes, ALIGNOF_SHORT is always 2.

(2)
There is a possible sequence like this:

ALIGNOF_LONG        4
ALIGNOF_DOUBLE      8
MAXIMUM_ALIGNOF     8

vs.

ALIGNOF_LONG        8
ALIGNOF_DOUBLE      8
MAXIMUM_ALIGNOF     8

Eg.
http://developers.sun.com/prodtech/cc/articles/about_amd64_abi.html
http://devrsrc1.external.hp.com/STK/wellbehavedrestrict.html

So we should at least check ALIGNOF_LONG as well.

(3)
There are some machines with sizeof(int) equals to 64, if my memory saves, 
which might imply that ALIGNOF_INT equals to 8.

So conservatively, we'd better check ALIGNOF_INT, ALIGNOF_LONG and 
MAXIMUM_ALIGNOF.

Regards,
Qingqing




pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Making pgxs builds work with a relocated installation
Next
From: "Dave Page"
Date:
Subject: Re: Open items list for 8.1