Обсуждение: anchovy failing on 9.1 and earlier since using gcc 4.8

Поиск
Список
Период
Сортировка

anchovy failing on 9.1 and earlier since using gcc 4.8

От
Andres Freund
Дата:
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.

Greetings,

Andres Freund

-- Andres Freund                       http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services



Re: anchovy failing on 9.1 and earlier since using gcc 4.8

От
Andres Freund
Дата:
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