On 18-01-2018 17:56, Tom Lane wrote:
Marina Polyakova <m.polyak...@postgrespro.ru> 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

Reply via email to