On 2013-07-23 09:11:00 +0200, Andres Freund wrote:
> Hi,
>
> Anchovy is failing on 9.1 and earlier for quite some time now:
> http://pgbuildfarm.org/cgi-bin/show_history.pl?nm=anchovy&br=REL9_1_STABLE
> The commit at that date looks rather unconspicuous. Looking at the
> 'config' section reveals the difference between the failing
> http://pgbuildfarm.org/cgi-bin/show_log.pl?nm=anchovy&dt=2013-03-31%2023%3A23%3A01
> and
> http://pgbuildfarm.org/cgi-bin/show_log.pl?nm=anchovy&dt=2013-03-30%2000%3A23%3A01
>
> 2013-03-30: config:
>
> configure:3244: checking for C compiler version
> configure:3252: gcc --version >&5
> gcc (GCC) 4.7.2
>
> 2013-03-31: config:
>
> configure:3244: checking for C compiler version
> configure:3252: gcc --version >&5
> gcc (GCC) 4.8.0
>
> (note that it's using 4.8.1 these days)
>
> So, it started failing the day it switched to gcc 4.8.
>
> Given that anchovy builds 9.2 and master happily and given that it is
> the only gcc-4.8 animal in the buildfarm it seems quite possible that
> there is some misoptimization issue in 9.1 and earlier with 4.8.
>
> I seem to recall some discussions about whether to backpatch some
> hardening against compiler optimizations, but I don't remember any
> specifics.
Ah, yes. Exactly this case has been discussed some weeks ago:
http://archives.postgresql.org/message-id/14242.1365200084%40sss.pgh.pa.us
I'd personally vote for doing both (1) and (2) mentioned in that email
in the backbranches. I don't think -fno-agressive-loop-optimizations is
the only case the compiler can actually use such knowledge. It very well
might optimize entire code blocks away.
And I don't think this change is the only one where the aggressive loop
optimizations might play a role, especially in the older branches.
I naturally only found the mailing list entry after debugging the issue
myself...
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services