On 18-01-2018 17:56, Tom Lane wrote:
> Marina Polyakova <[email protected]> writes:
>> Applying your patch on commit f033462d8f77c40b7d6b33c5116e50118fb4699d
>> and using the configuration command from [1], I got:
>> checking for __int128... yes
>> checking for __int128 alignment bug... broken
>> ...
>> And make check-world passes. Victor said that he used a much simpler
>> configuration command, and I'm trying to figure out what's changed..
>
> Weird. Maybe the gcc bug only manifests with certain optimization
> flags? That's not what I'd have expected from Victor's theory about
> why the code is wrong, but if it only shows up some of the time,
> it's hard to think of another explanation.
Thank you! Using ./configure CC="gcc" CFLAGS="-m64 -O1" on commit
9c7d06d60680 with your patch, I got this:
checking for __int128... yes
checking for __int128 alignment bug... ok
checking alignment of PG_INT128_TYPE... 16
In pg_config.h:
/* The normal alignment of `PG_INT128_TYPE', in bytes. */
#define ALIGNOF_PG_INT128_TYPE 16
...
/* Define to the name of a signed 128-bit integer type. */
#define PG_INT128_TYPE __int128
But make check got the same failures, and I see the same debug output as
in [1]..
P.S. As I understand it, this comment on bugzilla [2] is also about
this.
[1]
https://www.postgresql.org/message-id/90ab676392c8f9c84431976147097cf0%40postgrespro.ru
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83925#c6
--
Marina Polyakova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company