Revision: 4490
Author: [email protected]
Date: Mon Apr 26 03:59:14 2010
Log: Add a V8 specific target architecture to the GYP file
The V8 GYP file now uses its own target architecture. It default to the
standard target_arch, but can be set to a separate value. E.g. using
export GYP_DEFINES="target_arch=ia32 v8_target_arch=arm"
makes it possible to have the V8 ARM simulator be used in a IA32 build.
Added some checking of supported host/target architecture combinations.
Review URL: http://codereview.chromium.org/1790001
http://code.google.com/p/v8/source/detail?r=4490
Modified:
/branches/bleeding_edge/src/globals.h
/branches/bleeding_edge/tools/gyp/v8.gyp
=======================================
--- /branches/bleeding_edge/src/globals.h Tue Apr 20 10:33:14 2010
+++ /branches/bleeding_edge/src/globals.h Mon Apr 26 03:59:14 2010
@@ -50,15 +50,32 @@
#define V8_HOST_ARCH_MIPS 1
#define V8_HOST_ARCH_32_BIT 1
#else
-#error Your host architecture was not detected as supported by v8
+#error Host architecture was not detected as supported by v8
#endif
+// Check for supported combinations of host and target architectures.
+#if defined(V8_TARGET_ARCH_IA32) && !defined(V8_HOST_ARCH_IA32)
+#error Target architecture ia32 is only supported on ia32 host
+#endif
+#if defined(V8_TARGET_ARCH_X64) && !defined(V8_HOST_ARCH_X64)
+#error Target architecture x64 is only supported on x64 host
+#endif
+#if (defined(V8_TARGET_ARCH_ARM) && \
+ !(defined(V8_HOST_ARCH_IA32) || defined(V8_HOST_ARCH_ARM)))
+#error Target architecture arm is only supported on arm and ia32 host
+#endif
+#if (defined(V8_TARGET_ARCH_MIPS) && \
+ !(defined(V8_HOST_ARCH_IA32) || defined(V8_HOST_ARCH_MIPS)))
+#error Target architecture mips is only supported on mips and ia32 host
+#endif
+
+// Define unaligned read for the target architectures supporting it.
#if defined(V8_TARGET_ARCH_X64) || defined(V8_TARGET_ARCH_IA32)
#define V8_TARGET_CAN_READ_UNALIGNED 1
#elif V8_TARGET_ARCH_ARM
#elif V8_TARGET_ARCH_MIPS
#else
-#error Your target architecture is not supported by v8
+#error Target architecture is not supported by v8
#endif
// Support for alternative bool type. This is only enabled if the code is
=======================================
--- /branches/bleeding_edge/tools/gyp/v8.gyp Mon Apr 19 12:30:11 2010
+++ /branches/bleeding_edge/tools/gyp/v8.gyp Mon Apr 26 03:59:14 2010
@@ -29,7 +29,7 @@
'variables': {
'msvs_use_common_release': 0,
'gcc_version%': 'unknown',
- 'target_arch%': 'ia32',
+ 'v8_target_arch%': '<(target_arch)',
'v8_use_snapshot%': 'true',
},
'target_defaults': {
@@ -39,17 +39,17 @@
'ENABLE_VMSTATE_TRACKING',
],
'conditions': [
- ['target_arch=="arm"', {
+ ['v8_target_arch=="arm"', {
'defines': [
'V8_TARGET_ARCH_ARM',
],
}],
- ['target_arch=="ia32"', {
+ ['v8_target_arch=="ia32"', {
'defines': [
'V8_TARGET_ARCH_IA32',
],
}],
- ['target_arch=="x64"', {
+ ['v8_target_arch=="x64"', {
'defines': [
'V8_TARGET_ARCH_X64',
],
@@ -204,7 +204,7 @@
'conditions': [
# The ARM assembler assumes the host is 32 bits, so force building
# 32-bit host tools.
- ['target_arch=="arm" and host_arch=="x64" and _toolset=="host"', {
+ ['v8_target_arch=="arm" and host_arch=="x64" and
_toolset=="host"', {
'cflags': ['-m32'],
'ldflags': ['-m32'],
}]
@@ -264,8 +264,8 @@
'../../src/cpu-profiler-inl.h',
'../../src/cpu-profiler.cc',
'../../src/cpu-profiler.h',
- '../../src/data-flow.cc',
- '../../src/data-flow.h',
+ '../../src/data-flow.cc',
+ '../../src/data-flow.h',
'../../src/dateparser.cc',
'../../src/dateparser.h',
'../../src/dateparser-inl.h',
@@ -396,8 +396,8 @@
'../../src/token.h',
'../../src/top.cc',
'../../src/top.h',
- '../../src/type-info.cc',
- '../../src/type-info.h',
+ '../../src/type-info.cc',
+ '../../src/type-info.h',
'../../src/unicode-inl.h',
'../../src/unicode.cc',
'../../src/unicode.h',
@@ -424,7 +424,7 @@
'../../src/zone.h',
],
'conditions': [
- ['target_arch=="arm"', {
+ ['v8_target_arch=="arm"', {
'include_dirs+': [
'../../src/arm',
],
@@ -470,7 +470,7 @@
}]
]
}],
- ['target_arch=="ia32"', {
+ ['v8_target_arch=="ia32"', {
'include_dirs+': [
'../../src/ia32',
],
@@ -505,7 +505,7 @@
'../../src/ia32/virtual-frame-ia32.h',
],
}],
- ['target_arch=="x64"', {
+ ['v8_target_arch=="x64"', {
'include_dirs+': [
'../../src/x64',
],
@@ -656,7 +656,7 @@
'conditions': [
# The ARM assembler assumes the host is 32 bits, so force building
# 32-bit host tools.
- ['target_arch=="arm" and host_arch=="x64" and _toolset=="host"', {
+ ['v8_target_arch=="arm" and host_arch=="x64" and
_toolset=="host"', {
'cflags': ['-m32'],
'ldflags': ['-m32'],
}]
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev