From 6dd99f19daa6ae9e7ad41e5b46294636b524c205 Mon Sep 17 00:00:00 2001 From: "Ilija.Pavlovic" Date: Fri, 18 Dec 2015 00:02:34 -0800 Subject: [PATCH] MIPS: Fix enabling v8 compilation with CLANG. Updated toolchain.gypi to support v8 using CLANG on MIPS. These changes include using integrated assembler with CLANG, and disabling options used by GCC which are not supported by CLANG. Reland https://codereview.chromium.org/1519493002 with fix to remove duplicated 'conditions' sections. TEST= BUG= Review URL: https://codereview.chromium.org/1530153003 Cr-Commit-Position: refs/heads/master@{#32963} --- build/toolchain.gypi | 76 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 65 insertions(+), 11 deletions(-) diff --git a/build/toolchain.gypi b/build/toolchain.gypi index 7c96144b38..bcefa7843a 100644 --- a/build/toolchain.gypi +++ b/build/toolchain.gypi @@ -357,6 +357,9 @@ ['ld_r_path!=""', { 'ldflags': ['-Wl,--rpath=<(ld_r_path)'], }], + [ 'clang==1', { + 'cflags': ['-integrated-as'], + }], ], }], ], @@ -406,7 +409,12 @@ 'FPU_MODE_FP64', ], 'cflags!': ['-mfp32', '-mfpxx'], - 'cflags': ['-mips32r6', '-Wa,-mips32r6'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32r6'], + }], + ], + 'cflags': ['-mips32r6'], 'ldflags': ['-mips32r6'], }], ['mips_arch_variant=="r2"', { @@ -432,8 +440,11 @@ ], 'cflags': ['-mfp32'], }], + [ 'clang==0', { + 'cflags': ['-Wa,-mips32r2'], + }], ], - 'cflags': ['-mips32r2', '-Wa,-mips32r2'], + 'cflags': ['-mips32r2'], 'ldflags': ['-mips32r2'], }], ['mips_arch_variant=="r1"', { @@ -441,7 +452,12 @@ 'FPU_MODE_FP32', ], 'cflags!': ['-mfp64', '-mfpxx'], - 'cflags': ['-mips32', '-Wa,-mips32'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32'], + }], + ], + 'cflags': ['-mips32'], 'ldflags': ['-mips32'], }], ['mips_arch_variant=="rx"', { @@ -450,7 +466,12 @@ 'FPU_MODE_FPXX', ], 'cflags!': ['-mfp64', '-mfp32'], - 'cflags': ['-mips32', '-Wa,-mips32', '-mfpxx'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32'], + }], + ], + 'cflags': ['-mips32', '-mfpxx'], 'ldflags': ['-mips32'], }], ], @@ -589,7 +610,12 @@ 'FPU_MODE_FP64', ], 'cflags!': ['-mfp32', '-mfpxx'], - 'cflags': ['-mips32r6', '-Wa,-mips32r6'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32r6'], + }], + ], + 'cflags': ['-mips32r6'], 'ldflags': ['-mips32r6'], }], ['mips_arch_variant=="r2"', { @@ -615,13 +641,21 @@ ], 'cflags': ['-mfp32'], }], + [ 'clang==0', { + 'cflags': ['-Wa,-mips32r2'], + }], ], - 'cflags': ['-mips32r2', '-Wa,-mips32r2'], + 'cflags': ['-mips32r2'], 'ldflags': ['-mips32r2'], }], ['mips_arch_variant=="r1"', { 'cflags!': ['-mfp64', '-mfpxx'], - 'cflags': ['-mips32', '-Wa,-mips32'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32'], + }], + ], + 'cflags': ['-mips32'], 'ldflags': ['-mips32'], }], ['mips_arch_variant=="rx"', { @@ -630,7 +664,12 @@ 'FPU_MODE_FPXX', ], 'cflags!': ['-mfp64', '-mfp32'], - 'cflags': ['-mips32', '-Wa,-mips32', '-mfpxx'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32'], + }], + ], + 'cflags': ['-mips32', '-mfpxx'], 'ldflags': ['-mips32'], }], ['mips_arch_variant=="loongson"', { @@ -639,7 +678,12 @@ 'FPU_MODE_FP32', ], 'cflags!': ['-mfp64', '-mfpxx'], - 'cflags': ['-mips3', '-Wa,-mips3', '-mfp32'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips3'], + }], + ], + 'cflags': ['-mips3', '-mfp32'], }], ], }, { @@ -800,12 +844,22 @@ }], ['mips_arch_variant=="r6"', { 'defines': ['_MIPS_ARCH_MIPS64R6',], - 'cflags': ['-mips64r6', '-mabi=64', '-Wa,-mips64r6'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips64r6'], + }], + ], + 'cflags': ['-mips64r6', '-mabi=64'], 'ldflags': ['-mips64r6', '-mabi=64'], }], ['mips_arch_variant=="r2"', { 'defines': ['_MIPS_ARCH_MIPS64R2',], - 'cflags': ['-mips64r2', '-mabi=64', '-Wa,-mips64r2'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips64r2'], + }], + ], + 'cflags': ['-mips64r2', '-mabi=64'], 'ldflags': ['-mips64r2', '-mabi=64'], }], ],