diff options
author | 2016-06-05 13:14:21 -0700 | |
---|---|---|
committer | 2016-06-05 13:14:21 -0700 | |
commit | 401e77cfe126eea1a12bd81410871fdb80739283 (patch) | |
tree | 1904f87310a09ed1eeacf50a70ba73ae9cdc812d /gyp | |
parent | 863689c3f468acdd9b9e06e0835c5fd1e2cad4c6 (diff) |
MIPS32r2: Fix Chromium runtime crash
Crash is caused by ldxc1 instruction, which traps when double values are
not aligned on 8-byte boundaries. Problem was tracked to SkChunkAlloc which
produces pointers aligned on 4-byte boundaries leading to misalignment.
This change makes sure that SkChunkAlloc will produce pointers that are
aligned to 8 bytes.
Appropriate tests are added to tests/MemsetTest.cpp
TEST=Build Chromium with Clang and run on MIPS32r2 platform
TEST=./out/Debug/dm --match Memset
BUG=130022
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1849183004
Review-Url: https://codereview.chromium.org/1849183004
Diffstat (limited to 'gyp')
-rw-r--r-- | gyp/common_conditions.gypi | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/gyp/common_conditions.gypi b/gyp/common_conditions.gypi index 4f387e9883..a9b012406d 100644 --- a/gyp/common_conditions.gypi +++ b/gyp/common_conditions.gypi @@ -306,13 +306,17 @@ ], }], [ '"mips" in skia_arch_type', { - 'cflags': [ '-EL' ], - 'conditions': [ - [ 'mips_arch_variant == "mips32r2"', { - 'cflags': [ '-march=mips32r2' ], - 'conditions': [ - [ 'mips_dsp == 1', { 'cflags': [ '-mdsp' ] }], - [ 'mips_dsp == 2', { 'cflags': [ '-mdspr2' ] }], + 'target_conditions': [ + [ '_toolset == "target"', { + 'cflags' : ['-EL'], + 'conditions' : [ + [ 'mips_arch_variant == "mips32r2"', { + 'cflags': [ '-march=mips32r2' ], + 'conditions': [ + [ 'mips_dsp == 1', { 'cflags': [ '-mdsp' ] }], + [ 'mips_dsp == 2', { 'cflags': [ '-mdspr2' ] }], + ], + }], ], }], ], |