În ziua de vineri, 13 mai 2016, la 23:47:07 EEST, Willy Tarreau a scris: > On Fri, May 13, 2016 at 11:25:28PM +0200, Cyril Bonté wrote: > > > In the mean time, there may be a -fsomething option to disable a > > > bogus optimization which causes this, but that's not easy to spot > > > as it will depend on any side effect of other code :-/ > > > > I was trying to identify one, and indeed, once I add "-fno-tree-sra", it > > works as expected. > > This one already exists in gcc 4 and 5, so its implementation might be bogus > in 6. The doc says : > > -ftree-sra > Perform scalar replacement of aggregates. This pass replaces > structure references with scalars to prevent committing > structures to memory too early. This flag is enabled by default at -O and > higher. > > Thus I suspect that by delaying memory references a bit too much they end > up completely forgetting to commit the changes :-/ >
Thank you everyone for the effort to diagnose this. I've also managed to build 1.6.5 with "-fno-tree-sra" and I confirm that all seems to be working as expected. I'll pass the info in this thread to the Arch Linux maintainers. I don't think they'll go back to gcc 5 but so far the additional flag seems like the better option. Regards