[Bug 4309] New: uicmoc4-native-4.3.3-r1-do_compile: endless compilation
bugzilla-daemon at amethyst.openembedded.net
bugzilla-daemon at amethyst.openembedded.net
Sun May 25 11:47:46 UTC 2008
http://bugs.openembedded.net/show_bug.cgi?id=4309
Summary: uicmoc4-native-4.3.3-r1-do_compile: endless
compilation
Classification: Unclassified
Product: Openembedded
Version: Angstrom 2008.x
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: org.openembedded.dev
AssignedTo: openembedded-issues at lists.openembedded.org
ReportedBy: c.romain at laposte.net
_Context_:
Host machine: GNU/Linux 2.6.24-ARCH i686 Intel(R) Pentium(R) M processor
1.60GHz, gcc 4.3.0
Command: bitbake qtopia-core-gui-image
_Problem_:
uicmoc4-native compiles endlessly. This is actually due to an infinite loop
when running rcc built with gcc4.3 on x86. It is worth noting that it compiles
fine on amd64.
After deeper investigations the problem is in a while loop of
QRegExpEngine::parse comparing a non const iterator with a const iterator. gcc
actually seems to optimize the code so that it does not re-evaluate the
constEnd() iterator on every loop iteration. (the code is inlined. It is thus
hard to be 100% sure of that optimization)
Quoting a gcc developer: "this is a plain simple const abuse here and gcc (when
optimizing) just stupidly think something is const just because someone said
so. So this is either a bug in gcc for not disabling optimisation when it
should have detected it is Qt code and thus horriously buggy, or it
is a bug in qt for doing so"
_SuggestedSolution_:
Using end() iterartor intead of a constEnd() iterator solved the problem. See
the attached patch.
--
Configure bugmail: http://bugs.openembedded.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the Openembedded-issues
mailing list