Re: MAXIMUM_ALIGNOF on Windows-32 - Mailing list pgsql-hackers

From Tom Lane
Subject Re: MAXIMUM_ALIGNOF on Windows-32
Date
Msg-id 5614.1184941955@sss.pgh.pa.us
Whole thread Raw
In response to Re: MAXIMUM_ALIGNOF on Windows-32  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: MAXIMUM_ALIGNOF on Windows-32  (Andrew Dunstan <andrew@dunslane.net>)
Re: MAXIMUM_ALIGNOF on Windows-32  (Magnus Hagander <magnus@hagander.net>)
List pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes:
> Tom Lane wrote:
>> Anyway, we detect this directly based on the C compiler's behavior,
>> and you can't argue with the compiler about it.  Whatever it's
>> doing is right by definition.

> Perhaps Pavan is referring to what is hardcoded in pg_config.h.win32 
> which is used for MSVC builds  (but not for MinGW builds, IIRC), in 
> which case the answer might be that in this file we need to be 
> pessimistic about such things, since we have no reasonable way to run 
> configure on this platform.

Somebody had better double-check that.  We don't need to be
"pessimistic", we need to be *correct*, because the align values had
better match the way the compiler will lay out a C struct.  Otherwise
struct-based access to catalog rows will fail.  (I'm not sure if there
are any system catalogs with float8 or int64 columns, but I'd sure not
want to find out that we couldn't have one because of misconfiguration
of MSVC builds.)

I see though that the comment in pg_config.h.win32 claims it was derived
from mechanically-generated configure output, so unless that's lying
it should be OK already.  AFAIK struct alignment is part of the ABI for
a platform and is not subject to the whims of individual compilers, so
the result from MinGW should be OK for MSVC.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: MAXIMUM_ALIGNOF on Windows-32
Next
From: Andrew Dunstan
Date:
Subject: Re: MAXIMUM_ALIGNOF on Windows-32