http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53197
--- Comment #14 from Michael Matz <matz at gcc dot gnu.org> 2012-05-03 00:13:16 UTC --- Thanks to Jonathan I have a hunch now. He has BUILD_CONFIG=bootstrap-debug whereas I have BUILD_CONFIG empty for all my machines. This means that for him stage2 is built with -g -gtoggle (effectively switching off -g again), and stage3 with -g, and the compares then do the comparison ignoring the debug info. For me stage2 and stage3 are built with -g. The -g switch seems to influence code generation with my patch (I tested that compiling the stage3 file on the broken tree with -gtoggle produces the same as the stage2 file), which of course is a bug. But I haven't seen it because all my files are built with -g. Now, as to why for me BUILD_CONFIG isn't bootstrap-debug: configure.ac activates this by default, but then checks if contrib/compare-debug actually works for comparing a debug and non-debug .o file. And for SuSE systems it doesn't, because our system compilers encode some command line options (among them -g) into a special .comment section. In any case, this code difference for -g vs. non-g has to be fixed, which I'm in the process of doing.