Description of Problem: Using qmake (Qt's makefile generator) after compiling it with gcc 3.1-0.10 produces broken Makefiles. The same version of qt/qmake works perfectly with 2.96-101. Version-Release number of selected component (if applicable): 3.1-0.10 How Reproducible: 100% Steps to Reproduce: 1. Install qt 3.0.1 sources 2. Attempt to build 3. Actual Results: Build fails because tools/designer/designer/Makefile gets weird rules: dbconnections\.ui: dbconnections.ui $(UIC) dbconnections.ui -o dbconnections\.ui Expected Results: The Makefile has the correct rule, such as the one I'm getting when building qmake with gcc 2.96 or 3.0.2: dbconnections.h: dbconnections.ui $(UIC) dbconnections.ui -o dbconnections.h Additional Information: qmake compiles without any warnings even with gcc 3.1 -Wall, so it's probably not some newly enforced standards compliance.
Happens even at -O0
It's even weirder: qmake is usually compiled with out any -O flags because it has to support pretty much all compilers out there. Adding -O2 to the CFLAGS actually fixes the problem. So qmake is miscompiled at -O0 only (guess that's the first time I've had to _increase_ the optimization level to work around compiler bugs ;) ).
Reducing priority after finding a workaround.
Reduced to makefile.o (if it is compiled with -O0, it doesn't work, if -O1 and above, it works). Will need to debug where things change...
As it does go away if makefile.cc is compiled with -fno-inline, I guess this is just the result of bogus change from 2001-11-15 which caused tree inlining to happen without optimizations too. This was fixed on 2001-12-13 in CVS.