From 827be16b35098edfe1555aeb0c93b7ce40dadf3d Mon Sep 17 00:00:00 2001 From: "sgjesse@chromium.org" Date: Thu, 9 Jun 2011 12:48:11 +0000 Subject: [PATCH] GYP: Make the ARM simulator build with GYP again Updated the armu.gypi to set values for variables which does not have a default. These variables was recently added to v8.gyp. Moved the what will be shared between building the v8 library and the cctests to a separate include file. For now this file is currently only used by cctest.gyp. the reason is that the cctests are not just using the API but also internal functions so the C++ defines and optons needs to be the same when compiling the cctests files as when compiling the v8 library files. R=jkummerow@chromium.org Review URL: http://codereview.chromium.org/7134039 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- build/armu.gypi | 6 +- build/v8-features.gypi | 125 +++++++++++++++++++++++++++++++++++++++++ test/cctest/cctest.gyp | 33 +---------- 3 files changed, 132 insertions(+), 32 deletions(-) create mode 100644 build/v8-features.gypi diff --git a/build/armu.gypi b/build/armu.gypi index 72eb4d152d..3f874c00f3 100644 --- a/build/armu.gypi +++ b/build/armu.gypi @@ -1,4 +1,4 @@ -# Copyright 2010 the V8 project authors. All rights reserved. +# Copyright 2011 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: @@ -27,6 +27,10 @@ { 'variables': { + 'target_arch': 'ia32', 'v8_target_arch': 'arm', + 'armv7': 1, + 'arm_neon': 0, + 'arm_fpu': 'vfpv3', } } diff --git a/build/v8-features.gypi b/build/v8-features.gypi new file mode 100644 index 0000000000..40374523ad --- /dev/null +++ b/build/v8-features.gypi @@ -0,0 +1,125 @@ +# Copyright 2011 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# TODO(sgjesse): This is currently copied from v8.gyp, should probably +# be refactored. +{ + 'variables': { + 'use_system_v8%': 0, + 'msvs_use_common_release': 0, + 'gcc_version%': 'unknown', + 'v8_compress_startup_data%': 'off', + 'v8_target_arch%': '<(target_arch)', + + # Setting 'v8_can_use_unaligned_accesses' to 'true' will allow the code + # generated by V8 to do unaligned memory access, and setting it to 'false' + # will ensure that the generated code will always do aligned memory + # accesses. The default value of 'default' will try to determine the correct + # setting. Note that for Intel architectures (ia32 and x64) unaligned memory + # access is allowed for all CPUs. + 'v8_can_use_unaligned_accesses%': 'default', + + # Setting 'v8_can_use_vfp_instructions' to 'true' will enable use of ARM VFP + # instructions in the V8 generated code. VFP instructions will be enabled + # both for the snapshot and for the ARM target. Leaving the default value + # of 'false' will avoid VFP instructions in the snapshot and use CPU feature + # probing when running on the target. + 'v8_can_use_vfp_instructions%': 'false', + + # Setting v8_use_arm_eabi_hardfloat to true will turn on V8 support for ARM + # EABI calling convention where double arguments are passed in VFP + # registers. Note that the GCC flag '-mfloat-abi=hard' should be used as + # well when compiling for the ARM target. + 'v8_use_arm_eabi_hardfloat%': 'false', + + 'v8_use_snapshot%': 'true', + 'host_os%': '<(OS)', + 'v8_use_liveobjectlist%': 'false', + }, + 'target_defaults': { + 'conditions': [ + ['OS!="mac"', { + 'conditions': [ + ['v8_target_arch=="arm"', { + 'defines': [ + 'V8_TARGET_ARCH_ARM', + ], + 'conditions': [ + [ 'v8_can_use_unaligned_accesses=="true"', { + 'defines': [ + 'CAN_USE_UNALIGNED_ACCESSES=1', + ], + }], + [ 'v8_can_use_unaligned_accesses=="false"', { + 'defines': [ + 'CAN_USE_UNALIGNED_ACCESSES=0', + ], + }], + [ 'v8_can_use_vfp_instructions=="true"', { + 'defines': [ + 'CAN_USE_VFP_INSTRUCTIONS', + ], + }], + [ 'v8_use_arm_eabi_hardfloat=="true"', { + 'defines': [ + 'USE_EABI_HARDFLOAT=1', + 'CAN_USE_VFP_INSTRUCTIONS', + ], + }], + ], + }], + ['v8_target_arch=="ia32"', { + 'defines': [ + 'V8_TARGET_ARCH_IA32', + ], + }], + ['v8_target_arch=="mips"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS', + ], + }], + ['v8_target_arch=="x64"', { + 'defines': [ + 'V8_TARGET_ARCH_X64', + ], + }], + ], + }], + ], + 'configurations': { + 'Debug': { + 'defines': [ + 'DEBUG', + '_DEBUG', + 'ENABLE_DISASSEMBLER', + 'V8_ENABLE_CHECKS', + 'OBJECT_PRINT', + ], + } + } + } +} diff --git a/test/cctest/cctest.gyp b/test/cctest/cctest.gyp index f13f91e0e6..1d54e8cf55 100644 --- a/test/cctest/cctest.gyp +++ b/test/cctest/cctest.gyp @@ -1,4 +1,4 @@ -# Copyright 2010 the V8 project authors. All rights reserved. +# Copyright 2011 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: @@ -26,36 +26,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. { - 'target_defaults': { - 'conditions': [ - ['OS!="mac"', { - # TODO(sgjesse): This is currently copied from v8.gyp, should probably - # be refactored. - 'conditions': [ - ['v8_target_arch=="arm"', { - 'defines': [ - 'V8_TARGET_ARCH_ARM', - ], - }], - ['v8_target_arch=="ia32"', { - 'defines': [ - 'V8_TARGET_ARCH_IA32', - ], - }], - ['v8_target_arch=="mips"', { - 'defines': [ - 'V8_TARGET_ARCH_MIPS', - ], - }], - ['v8_target_arch=="x64"', { - 'defines': [ - 'V8_TARGET_ARCH_X64', - ], - }], - ], - }], - ], - }, + 'includes': [ '../../build/v8-features.gypi' ], 'targets': [ { 'target_name': 'cctest',