I've upgraded to gcc 4.7 this morning, and tried to do an "emerge -e system". When emerge tries to compile qt-core-4.8.1-r3, it complains that glib.h doesn't exist (but it's under /usr/include/glib-2.0/glib.h). Doesn't happens with gcc 4.6.3. Reproducible: Always
Created attachment 312697 [details] build.log
Created attachment 312699 [details] emerge --info
Seems that it is because of graphite use flags. (Still compiling)
It looks like qmake doesn't pass the relevant CFLAGS (includes and such) to the compiler.
Anyway, I've confirmed on my machine that this only happens with graphite flags (see emerge --info) enabled.
(In reply to comment #4) > It looks like qmake doesn't pass the relevant CFLAGS (includes and such) to > the compiler. Yep, probably related to the many "Unknown test function: load" warnings.
confirmed w/ qt-core-4.8.2 and gcc 4.7 (w/ graphite ON)
Does it still happen with gcc-4.7.1 ?
compiles fine for me with x11-libs/qt-core-4.8.2 with glib and gcc-4.7.1 with graphite
(In reply to comment #9) > compiles fine for me with > x11-libs/qt-core-4.8.2 with glib > and gcc-4.7.1 with graphite Thanks for testing. I assume it was a gcc bug that got fixed in 4.7.1.
also gcc-4.7.1 + graphite CFLAGS="-march=core2 -O2 -pipe -ftree-vectorize -fgraphite-identity -maes -floop-parallelize-all -floop-interchange -floop-block -fira-loop-pressure" CXXFLAGS="${CFLAGS}" the error is still reproducible while compiling qt-4.8.2
also while next packages compiled with graphite... qt-webkit: psi (USE=webkit extras) hangs on start qt-script: qt-creator crashes on start
Uhm... are there any particular graphite-related C(XX)FLAGS we could blacklist in qt4-build.eclass?
I'm not sure which of these. -ftree-vectorize -fgraphite-identity -floop-parallelize-all -floop-interchange -floop-block -fira-loop-pressure but looks like I have problems only with qt apps.
I don't understand... is this a problem in qt apps or in qt libs themselves? Did you build the entire world set with graphite cflags or just qt?
entire world. I skipped qt-core for the first time since it won't build, so it was built with gcc-4.6+graphite until everything other with gcc-4.7+graphite. then I rebuilt qt-core with gcc-4.7 but w/o graphite in both cases I had the same issues as described above. then I rebuilt qt-webkit and qt-script w/o graphite and now everything seems to work properly.
I'm doing a new gentoo install and this error occurs with gcc-4.7.1 + graphite for me as well.
Sounds like a regression in gcc 4.7 then, and still present in 4.7.1, assigning to toolchain. Rion/Jesse: please attach a build.log of the failure using latest qt-core and gcc versions.
Created attachment 319782 [details] build.log
I'd say that qmake is being miscompiled, judging from the weird warnings it throws during configure...
Agreed. I saw fixes for graphite problems in firefox and that was something with concatenation of strings and macro defined strings. pretty strange for graphite but how knows.
I can reproduce with -O2 -fgraphite-identity. (In reply to comment #13) > Uhm... are there any particular graphite-related C(XX)FLAGS we could > blacklist in qt4-build.eclass? No, we don't really support graphite, and we don't as a general rule filter flags that we don't support. This should be fixed in the compiler if possible. Is there a log somewhere of what exactly is being run for "floatmath auto-detection... ()" etc, like an equivalent of config.log? We'll need to isolate a testcase.
(In reply to comment #22) > Is there a log somewhere of what exactly is being run for "floatmath > auto-detection... ()" etc, like an equivalent of config.log? We'll need to > isolate a testcase. That output is produced by qmake itself, which is used to build the config programs, thus the miscompilation happens in qmake code, not in one of the test programs used by configure. You can find the actual qmake invocation inside ${S}/config.tests/unix/*.test (in particular, compile.test is the one used to check for glib IIRC). Be sure to run src_prepare before though, because we patch some of those files.
I upgraded to gcc 4.7.2 using the method described by Andreas in Bug 435852 and this issue is resolved for me.
It still fails for me with 4.7.2.
It fails for my too with 4.7.2
On a whim I tried gcc 4.7.2, qt-core-4.8.4-r2, with these: CFLAGS="-O2 -fgraphite-identity" No problem.
*** Bug 463473 has been marked as a duplicate of this bug. ***
*** Bug 477400 has been marked as a duplicate of this bug. ***
still NOT fixed in gcc-4.7.3, judging from the latest dupe.
*** Bug 478432 has been marked as a duplicate of this bug. ***
We won't be seeing any graphite-related fixes from upstream for 4.7, so there's nothing we can do here. Qt guys, something like [[ $(gcc-version) == "4.7" ]] && filter-flags -fgraphite-identity should work.
(In reply to Ryan Hill from comment #32) Filtering implemented in qt4-build.eclass. Thanks to everyone involved!
Reported upstream. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58202