From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Disable -faggressive-loop-optimizations in gcc 4.8+ for pre-9.2 |
Date: | 2015-01-20 17:16:32 |
Message-ID: | E1YDcPo-00042r-DI@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Disable -faggressive-loop-optimizations in gcc 4.8+ for pre-9.2 branches.
With this optimization flag enabled, recent versions of gcc can generate
incorrect code that assumes variable-length arrays (such as oidvector)
are actually fixed-length because they're embedded in some larger struct.
The known instance of this problem was fixed in 9.2 and up by commit
8137f2c32322c624e0431fac1621e8e9315202f9 and followon work, which hides
actually-variable-length catalog fields from the compiler altogether.
And we plan to gradually convert variable-length fields to official
"flexible array member" notation over time, which should prevent this type
of bug from reappearing as gcc gets smarter. We're not going to try to
back-port those changes into older branches, though, so apply this
band-aid instead.
Andres Freund
This is a backpatch of commit 649839dd9 to unsupported branches
REL8_2_STABLE and REL8_3_STABLE, so that they work with newer toolsets.
Branch
------
REL8_3_STABLE
Details
-------
http://git.postgresql.org/pg/commitdiff/d13f41d2153890bf817451c152a83d2867e61199
Modified Files
--------------
configure | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
configure.in | 3 +++
2 files changed, 54 insertions(+)
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2015-01-20 18:03:16 | pgsql: tools/ccsym: update for modern versions of gcc |
Previous Message | Robert Haas | 2015-01-20 16:23:46 | Re: Re: [COMMITTERS] pgsql: Disable -faggressive-loop-optimizations in gcc 4.8+ for pre-9.2 |