Summary: | Analyze of qt app results in incompatible processor message | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | khorloogiinchoibalsan |
Component: | memcheck | Assignee: | Julian Seward <jseward> |
Status: | RESOLVED INTENTIONAL | ||
Severity: | normal | CC: | mcheshkov |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
khorloogiinchoibalsan
2015-11-06 09:14:32 UTC
I have same thing. Gentoo amd64 Qt 5.4.2 Intel(R) Core(TM) i7-4600M CPU @ 2.90GHz What I found: I have -march=native in CFLAGS, that cause gcc to enable -mrtm on my CPU $ LANG=C gcc -march=native -Q --help=target | grep rtm -mrtm [enabled] It reflects __RTM__ define, and qCompilerCpuFeatures now includes RTM (http://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/tools/qsimd_p.h?id=fae33bfbe35f8d082b420ee09662ff60634cb355&h=5.4#n264), and requires it in runtime. But all amd64 CPUID helpers have nothing set in RBX if EAX is 0x80000007. That does not hit HLE, because Qt disable check in runtime (http://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/tools/qsimd.cpp?id=fae33bfbe35f8d082b420ee09662ff60634cb355&h=5.4#n499) Well .. there's not a lot we can do about this. These kinds of problems often happen with Gentoo. The CPU that Valgrind simulates is, in general, somewhat similar to the "real" CPU, but it is not identical. For most distros, the compiled code probes CPUID and then uses whatever facilities it reports are available. The problem here is that the code has been compiled to exactly match the capabilities of the real CPU, but Valgrind doesn't offer the same facilities. Try building without -mrtm ? Closing as WONTFIX, but really it is can't-easily-fix. |