Re: Database file compatability
- From: "Qingqing Zhou" <zhouqq(at)cs(dot)toronto(dot)edu>
- To: pgsql-hackers(at)postgresql(dot)org
- Subject: Re: Database file compatability
- Date: Wed, 28 Sep 2005 02:25:49 -0700
- Message-id: <dhdd1d$2mfg$1(at)news(dot)hub(dot)org>
"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote in message
news:1223(dot)1127878072(at)sss(dot)pgh(dot)pa(dot)us(dot)(dot)(dot)
>
> 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
Home |
Main Index |
Thread Index