Bug 666937

Summary: Disabling building unusable 3DNOW code on x86_64
Product: [Fedora] Fedora Reporter: Steve Snyder <swsnyder>
Component: qtAssignee: Than Ngo <than>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 14CC: 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:
Description Flags
Prevent compiling 3DNOW code in a x86_64 build none

Description Steve Snyder 2011-01-03 19:02:56 UTC
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.

Comment 1 Steve Snyder 2011-01-03 19:32:08 UTC
http://bugreports.qt.nokia.com/browse/QTBUG-16418

Comment 2 Rex Dieter 2011-01-03 19:35:47 UTC
Thanks!

Comment 3 Red Hat Bugzilla 2013-10-04 00:19:43 UTC
Removing external tracker bug with the id '16418' as it is not valid for this tracker