Re: master make check fails on Solaris 10

Victor Wagner <vitus@wagner.pp.ru>

From: Victor Wagner <vitus@wagner.pp.ru>
To: pgsql-hackers@lists.postgresql.org
Date: 2018-01-18T06:40:49Z
Lists: pgsql-hackers
On Wed, 17 Jan 2018 11:33:09 -0500
Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Attached is a draft patch to incorporate Victor's slimmed-down test
> into configure.  If you have a chance, could you confirm it does
> the right thing on your Sparc machine?

It seems that what it does is not exactly a right thing.
I've applied it to commit 9c7d06d60680 in master and see following

$ ./configure CC="gcc -m64"
[skip]
checking for __int128... yes
checking for __int128 alignment bug... ok
checking alignment of PG_INT128_TYPE... 16
checking for builtin __sync char locking functions... yes
[skip]

As far as I understand your patch, there should be:

checking for __int128 alignment bug... broken

Then in the pg_config.h I see


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

However, make check passes. 

There are two things which puzzle me
1. Why test program doesn't detect bug.
If I cut'n'paste it from configure, compile with flags, cut'n'pasted
from config log and run, it returns 1. But configure tells that all is
ok
2. If bug exist and is not detected by configure why make check passes.

We, Marina and I would continue investigation.




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