On 17-01-2018 18:07, Tom Lane wrote:
Marina Polyakova <m.polyak...@postgrespro.ru> writes:
investigating the regression diffs, we found out that the error occurs
when we pass int128 as not the first argument to the function (perhaps
its value is replaced by the value of some address):
...
Based on this, we modified the test program (see attached). Here is
its
output on Solaris 10 for different alignments requirements for int128
(on my machine where make check-world passes everything is OK)
(ALIGNOF_PG_INT128_TYPE is 16 on Solaris 10):
Excellent. This fails the same way on gcc 5.2.0 and 5.5.0?
As Victor answered in [1]:
Unfortunately, we have only one Sparc machine and started our
investigation by upgrading GCC 5.2.0 to GCC 5.5.0, so it is hard to
downgrade and test with older GCC.
Maybe some pass test from int128test2.c can be used to test __int128?
Yeah, I can work with this. What I propose to do is use a somewhat
stripped-down version of this test as an AC_RUN_IFELSE test normally,
but if cross-compiling, fall back to just seeing if we can link.
Thanks, I'll try to do this.. And Victor attached a stripped-down
version of this in [1].
Thanks for investigating!
Thank you! :)
[1]
https://www.postgresql.org/message-id/20180117181359.3a6cc06c%40fafnir.local.vm
--
Marina Polyakova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company