Bug 95541 - Arm build with -mthumb breaks for non android versions
Summary: Arm build with -mthumb breaks for non android versions
Status: RESOLVED WONTFIX
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Major
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-31 02:06 PDT by georg-list
Modified: 2013-04-08 11:12 PDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description georg-list 2012-08-31 02:06:05 PDT
What steps will reproduce the problem?
======================================

Followed instructions @ http://code.google.com/p/chromium/wiki/LinuxChromiumArm

Building with "target_arch=arm arm_thumb=1".


What is the expected result?
============================
Build Successfully.


What happens instead?
=====================

Build breaks during compile of third_party/WebKit/Source/WebCore/platform/graphics/filters/arm/ :
-----
{standard input}: Assembler messages:
{standard input}:21: Error: thumb conditional instruction should be in IT block -- `bxeq lr'
-----


Explanation
===========

The filters contain assembler code which cannot run with -mthumb but must be run with -marm instead.

Changeset 89874 already addressed this issue by providing the "-marm" option especially for the assembler code parts: http://trac.webkit.org/changeset/89874

But "-marm" collides with an existing "-mthumb" and depending on the order of options the compiler might choose one over the other. So if -mthumb has been specified as default option the build still breaks.

Changeset 95184 tried to fix it by matching the android version (android implicitely uses the arm build) and removing an existing "-mthumb": http://trac.webkit.org/browser/trunk/Source/WebCore/WebCore.gyp/WebCore.gyp?rev=95184

But this condition does not match non android arm builds.

The last change in this area was with 110251 which removed the addititional match of linux/arm builds and placed the arm match in the sourrounding block:

http://trac.webkit.org/changeset/110251/trunk/Source/WebCore/WebCore.gyp/WebCore.gyp

So as an effect the special compile rule for the arm filters applied now for all arm builds, but only for android builds the "-mthumb" is removed correctly.

I therefore propose to change WebCore.gyp once more and remove an existing "-mthumb" for all builds of the arm filters:

--- WebCore.gyp	(Revision 127236)
+++ WebCore.gyp	(Arbeitskopie)
@@ -1927,11 +1927,7 @@
             ['include', 'platform/graphics/filters/arm/.*NEON\\.(cpp|h)'],
           ],
           'cflags': ['-marm'],
-          'conditions': [
-            ['OS=="android"', {
-              'cflags!': ['-mthumb'],
-            }],
-          ],
+          'cflags!': ['-mthumb'],
         },{  # target_arch!="arm"
           'type': 'none',
         }],
Comment 1 Peter Beverloo 2013-04-08 11:12:34 PDT
Resolving as WontFix given that Chromium moved to Blink.