Bug 666937
Summary: | Disabling building unusable 3DNOW code on x86_64 | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Steve Snyder <swsnyder> | ||||
Component: | qt | Assignee: | Than Ngo <than> | ||||
Status: | CLOSED UPSTREAM | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | low | ||||||
Version: | 14 | CC: | itamar, jreznik, kevin, ltinkl, rdieter, rnovacek, smparrish, than | ||||
Target Milestone: | --- | Keywords: | MoveUpstream, Patch, Triaged | ||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2011-06-20 15:16:39 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Thanks! Removing external tracker bug with the id '16418' as it is not valid for this tracker |
Created attachment 471538 [details] Prevent compiling 3DNOW code in a x86_64 build Description of problem: x86_64 builds compile/link code that can not be used. Version-Release number of selected component (if applicable): qt-4.7.1-7.fc14 How reproducible: always Steps to Reproduce: 1. Build from source RPM on x86_64 system. 2. Note QT_HAVE_3DNOW in build flags 3. Actual results: Code is compiled which cannot be used by runtime detection of CPU features Expected results: Should not build unreachable code Additional info: From source file BUILD/qt-everywhere-opensource-src-4.7.1/src/corelib/tools/qsimd.cpp: #elif defined(__x86_64) || defined(Q_OS_WIN64) static inline uint detectProcessorFeatures() { uint features = MMX|SSE|SSE2|CMOV; uint feature_result = 0; The base set of CPUs features does not include the 3DNOW instruction set, so that flag won't be set in the "features" variable, so it will never be seen as set at runtime. Code that does a 'if (features & MMX3DNOW)' will never be reached.