Marina Polyakova <m.polyak...@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. 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.) Also, if it still happens with current gcc on that hardware, there'd be grounds for a new bug report to them. regards, tom lane