Index: build/common.gypi |
diff --git a/build/common.gypi b/build/common.gypi |
index 2e3c7854d528e9182980d02f14a98958517b3019..127749a47380591ff3e0d9cc96a0f06034068a68 100644 |
--- a/build/common.gypi |
+++ b/build/common.gypi |
@@ -129,22 +129,13 @@ |
'defines': [ |
'V8_TARGET_ARCH_ARM', |
], |
- 'variables': { |
- 'armsimulator': '<!($(echo <(CXX)) -v 2>&1 | grep -q "^Target: arm" && echo "no" || echo "yes")', |
- }, |
- 'conditions': [ |
- [ 'v8_can_use_unaligned_accesses=="true"', { |
- 'defines': [ |
- 'CAN_USE_UNALIGNED_ACCESSES=1', |
- ], |
- }, { |
- 'defines': [ |
- 'CAN_USE_UNALIGNED_ACCESSES=0', |
- ], |
- }], |
- ['armsimulator=="no"', { |
- 'target_conditions': [ |
- ['_toolset=="target"', { |
+ 'target_conditions': [ |
+ ['_toolset=="host"', { |
+ 'variables': { |
+ 'armcompiler': '<!($(echo ${CXX_host:-$(which g++)}) -v 2>&1 | grep -q "^Target: arm" && echo "yes" || echo "no")', |
+ }, |
+ 'conditions': [ |
+ ['armcompiler=="yes"', { |
'conditions': [ |
[ 'armv7==1', { |
'cflags': ['-march=armv7-a',], |
@@ -159,9 +150,9 @@ |
[ 'arm_fpu!="default"', { |
'cflags': ['-mfpu=<(arm_fpu)',], |
}], |
- ] |
+ ], |
}], |
- ] |
+ ], |
}], |
[ 'arm_float_abi!="default"', { |
'cflags': ['-mfloat-abi=<(arm_float_abi)',], |
@@ -172,63 +163,149 @@ |
[ 'arm_thumb==0', { |
'cflags': ['-marm',], |
}], |
+ [ 'arm_test=="on"', { |
+ 'defines': [ |
+ 'ARM_TEST', |
+ ], |
+ }], |
+ ], |
+ }, { |
+ # armcompiler=="no" |
+ 'conditions': [ |
+ [ 'armv7==1 or armv7=="default"', { |
+ 'defines': [ |
+ 'CAN_USE_ARMV7_INSTRUCTIONS=1', |
+ ], |
+ 'conditions': [ |
+ [ 'arm_fpu=="default"', { |
+ 'defines': [ |
+ 'CAN_USE_VFP3_INSTRUCTIONS', |
+ ], |
+ }], |
+ [ 'arm_fpu=="vfpv3-d16"', { |
+ 'defines': [ |
+ 'CAN_USE_VFP3_INSTRUCTIONS', |
+ ], |
+ }], |
+ [ 'arm_fpu=="vfpv3"', { |
+ 'defines': [ |
+ 'CAN_USE_VFP3_INSTRUCTIONS', |
+ 'CAN_USE_VFP32DREGS', |
+ ], |
+ }], |
+ [ 'arm_fpu=="neon" or arm_neon==1', { |
+ 'defines': [ |
+ 'CAN_USE_VFP3_INSTRUCTIONS', |
+ 'CAN_USE_VFP32DREGS', |
+ ], |
+ }], |
+ ], |
+ }], |
+ [ 'arm_float_abi=="hard"', { |
+ 'defines': [ |
+ 'USE_EABI_HARDFLOAT=1', |
+ ], |
+ }], |
+ [ 'arm_float_abi=="softfp" or arm_float_abi=="default"', { |
+ 'defines': [ |
+ 'USE_EABI_HARDFLOAT=0', |
+ ], |
+ }], |
], |
- }], |
- ], |
- 'conditions': [ |
- [ 'arm_test=="on"', { |
'defines': [ |
'ARM_TEST', |
], |
}], |
], |
- }], |
- ['armsimulator=="yes"', { |
- 'defines': [ |
- 'ARM_TEST', |
- ], |
+ }], # _toolset=="host" |
+ ['_toolset=="target"', { |
+ 'variables': { |
+ 'armcompiler': '<!($(echo ${CXX_target:-<(CXX)}) -v 2>&1 | grep -q "^Target: arm" && echo "yes" || echo "no")', |
+ }, |
'conditions': [ |
- [ 'armv7==1 or armv7=="default"', { |
- 'defines': [ |
- 'CAN_USE_ARMV7_INSTRUCTIONS=1', |
- ], |
+ ['armcompiler=="yes"', { |
'conditions': [ |
- [ 'arm_fpu=="default"', { |
+ [ 'armv7==1', { |
+ 'cflags': ['-march=armv7-a',], |
+ }], |
+ [ 'armv7==1 or armv7=="default"', { |
+ 'conditions': [ |
+ [ 'arm_neon==1', { |
+ 'cflags': ['-mfpu=neon',], |
+ }, |
+ { |
+ 'conditions': [ |
+ [ 'arm_fpu!="default"', { |
+ 'cflags': ['-mfpu=<(arm_fpu)',], |
+ }], |
+ ], |
+ }], |
+ ], |
+ }], |
+ [ 'arm_float_abi!="default"', { |
+ 'cflags': ['-mfloat-abi=<(arm_float_abi)',], |
+ }], |
+ [ 'arm_thumb==1', { |
+ 'cflags': ['-mthumb',], |
+ }], |
+ [ 'arm_thumb==0', { |
+ 'cflags': ['-marm',], |
+ }], |
+ [ 'arm_test=="on"', { |
'defines': [ |
- 'CAN_USE_VFP3_INSTRUCTIONS', |
+ 'ARM_TEST', |
], |
}], |
- [ 'arm_fpu=="vfpv3-d16"', { |
+ ], |
+ }, { |
+ # armcompiler=="no" |
+ 'conditions': [ |
+ [ 'armv7==1 or armv7=="default"', { |
'defines': [ |
- 'CAN_USE_VFP3_INSTRUCTIONS', |
+ 'CAN_USE_ARMV7_INSTRUCTIONS=1', |
+ ], |
+ 'conditions': [ |
+ [ 'arm_fpu=="default"', { |
+ 'defines': [ |
+ 'CAN_USE_VFP3_INSTRUCTIONS', |
+ ], |
+ }], |
+ [ 'arm_fpu=="vfpv3-d16"', { |
+ 'defines': [ |
+ 'CAN_USE_VFP3_INSTRUCTIONS', |
+ ], |
+ }], |
+ [ 'arm_fpu=="vfpv3"', { |
+ 'defines': [ |
+ 'CAN_USE_VFP3_INSTRUCTIONS', |
+ 'CAN_USE_VFP32DREGS', |
+ ], |
+ }], |
+ [ 'arm_fpu=="neon" or arm_neon==1', { |
+ 'defines': [ |
+ 'CAN_USE_VFP3_INSTRUCTIONS', |
+ 'CAN_USE_VFP32DREGS', |
+ ], |
+ }], |
], |
}], |
- [ 'arm_fpu=="vfpv3"', { |
+ [ 'arm_float_abi=="hard"', { |
'defines': [ |
- 'CAN_USE_VFP3_INSTRUCTIONS', |
- 'CAN_USE_VFP32DREGS', |
+ 'USE_EABI_HARDFLOAT=1', |
], |
}], |
- [ 'arm_fpu=="neon" or arm_neon==1', { |
+ [ 'arm_float_abi=="softfp" or arm_float_abi=="default"', { |
'defines': [ |
- 'CAN_USE_VFP3_INSTRUCTIONS', |
- 'CAN_USE_VFP32DREGS', |
+ 'USE_EABI_HARDFLOAT=0', |
], |
}], |
], |
- }], |
- [ 'arm_float_abi=="hard"', { |
'defines': [ |
- 'USE_EABI_HARDFLOAT=1', |
- ], |
- }], |
- [ 'arm_float_abi=="softfp" or arm_float_abi=="default"', { |
- 'defines': [ |
- 'USE_EABI_HARDFLOAT=0', |
+ 'ARM_TEST', |
], |
}], |
- ] |
- }], |
+ ], |
+ }], # _toolset=="target" |
], |
}], # v8_target_arch=="arm" |
['v8_target_arch=="ia32"', { |