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: Andres Freund <andres@anarazel.de>, pgsql-hackers@postgresql.org, Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: 2018-01-15T12:07:01Z
Lists: pgsql-hackers
Thank you very much!

On 13-01-2018 21:10, Tom Lane wrote:
> Marina Polyakova <m.polyakova@postgrespro.ru> writes:
>> On 12-01-2018 21:00, Tom Lane wrote:
>>> Hm ... so apparently, that compiler has bugs in handling nondefault
>>> alignment specs.  You said upthread it was gcc, but what version
>>> exactly?
> 
>> This is 5.2.0:
> 
> Ugh ... protosciurus has 3.4.3, but I see that configure detects that
> as *not* having __int128.  Probably what's happening on your machine
> is that gcc knows __int128 but generates buggy code for it when an
> alignment spec is given.  So that's unfortunate, but it's not really
> a regression from 3.4.3.
> 
> I'm not sure there's much we can do about this.  Dropping the use
> of the alignment spec isn't a workable option.  If there were a
> simple way for configure to detect that the compiler generates bad
> code for that, we could have it do so and reject use of __int128,
> but it'd be up to you to come up with a workable test.

I'll think about it..

> In the end this might just be an instance of the old saw about
> avoiding dot-zero releases.  Have you tried a newer gcc?
> (Digging in their bugzilla finds quite a number of __int128 bugs
> fixed in 5.4.x, though none look to be specifically about
> misaligned data.)

As I was told offlist, 5.2.0 is already a fairly new version of gcc for 
this system..

> Also, if it still happens with current gcc on that hardware,
> there'd be grounds for a new bug report to them.

-- 
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