From 77c1b2939c54c0c32ccf7b7a4848cbc433c5dbec Mon Sep 17 00:00:00 2001 From: "joel@chromium.org" Date: Fri, 4 Dec 2009 06:21:29 +0000 Subject: arm: Add thumb target and associated fixes Add arm_thumb=1 to GYP_DEFINES to enable BUG=29203 Review URL: http://codereview.chromium.org/463027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33799 0039d316-1c4b-4281-b951-d872f2087c98 --- build/common.gypi | 28 ++++++++++++++++++++++++---- skia/skia.gyp | 9 +++------ 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/build/common.gypi b/build/common.gypi index 8183893..f2e72c9 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -200,6 +200,9 @@ # Set ARM-v7 compilation flags 'armv7%': 0, + # Set Thumb compilation flags. + 'arm_thumb%': 0, + 'conditions': [ ['OS=="linux"', { # This will set gcc_version to XY if you are running gcc X.Y.*. @@ -710,10 +713,27 @@ ], }], ['target_arch=="arm"', { - 'conditions': [ - ['armv7==1', { - 'target_conditions': [ - ['_toolset=="target"', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags_cc': [ + # The codesourcery arm-2009q3 toolchain warns at that the ABI + # has changed whenever it encounters a varargs function. This + # silences those warnings, as they are not helpful and + # clutter legitimate warnings. + '-Wno-abi', + ], + 'conditions': [ + ['arm_thumb == 1', { + 'cflags': [ + '-mthumb', + # TODO(piman): -Wa,-mimplicit-it=thumb is needed for + # inline assembly that uses condition codes but it's + # suboptimal. Better would be to #ifdef __thumb__ at the + # right place and have a separate thumb path. + '-Wa,-mimplicit-it=thumb', + ] + }], + ['armv7==1', { 'cflags': [ '-march=armv7-a', '-mtune=cortex-a8', diff --git a/skia/skia.gyp b/skia/skia.gyp index 97dcd35..ab8d35e 100644 --- a/skia/skia.gyp +++ b/skia/skia.gyp @@ -576,16 +576,13 @@ [ 'OS != "win"', { 'sources/': [ ['exclude', '_win\\.(cc|cpp)$'] ], }], - [ 'target_arch == "arm" and armv7 == 1', { + [ 'armv7 == 1', { 'defines': [ '__ARM_HAVE_NEON', '__ARM_ARCH__=7', ], - 'cflags!': [ - # These files contain ARM assembly, and building with thumb breaks - # the assembler. - '-mthumb', - ], + }], + [ 'target_arch == "arm"', { 'sources!': [ '../third_party/skia/src/opts/opts_check_SSE2.cpp' ], -- cgit v1.1