[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