Re: master make check fails on Solaris 10

Marina Polyakova <m.polyakova@postgrespro.ru>

From: Marina Polyakova <m.polyakova@postgrespro.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: vitus@wagner.pp.ru, Andres Freund <andres@anarazel.de>, pgsql-hackers@postgresql.org, Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: 2018-01-18T16:42:26Z
Lists: pgsql-hackers
On 18-01-2018 17:56, Tom Lane wrote:
> Marina Polyakova <m.polyakova@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


Commits

  1. Extend configure's __int128 test to check for a known gcc bug.

  2. Reorder C includes

  3. Ability to advance replication slots

  4. doc: add JSON acronym

  5. Expression evaluation based aggregate transition invocation.

  6. Change some bogus PageGetLSN calls to BufferGetLSNAtomic

  7. Prevent int128 from requiring more than MAXALIGN alignment.

  8. Rearrange c.h to create a "compiler characteristics" section.

  9. Make OWNER TO subcommand mention consistent