On 17-01-2018 18:07, Tom Lane wrote:
> Marina Polyakova <[email protected]> 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