File add_ppc64le_arch.patch of Package v8
From: Michel Normand <normand@linux.vnet.ibm.com>
Subject: add ppc64le arch
Date: Wed, 18 Nov 2015 17:43:29 +0100
add ppc64le architecture support
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
---
Makefile | 4 ++--
gypfiles/toolchain.gypi | 4 ++--
src/base/build_config.h | 4 ++++
src/v8.gyp | 2 +-
4 files changed, 9 insertions(+), 5 deletions(-)
Index: v8-5.3.332.49/gypfiles/toolchain.gypi
===================================================================
--- v8-5.3.332.49.orig/gypfiles/toolchain.gypi
+++ v8-5.3.332.49/gypfiles/toolchain.gypi
@@ -320,12 +320,12 @@
}],
],
}], # s390
- ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', {
+ ['v8_target_arch=="ppc" or v8_target_arch=="ppc64" or v8_target_arch=="ppc64le"', {
'defines': [
'V8_TARGET_ARCH_PPC',
],
'conditions': [
- ['v8_target_arch=="ppc64"', {
+ ['v8_target_arch=="ppc64" or v8_target_arch=="ppc64le"', {
'defines': [
'V8_TARGET_ARCH_PPC64',
],
Index: v8-5.3.332.49/Makefile
===================================================================
--- v8-5.3.332.49.orig/Makefile
+++ v8-5.3.332.49/Makefile
@@ -250,8 +250,8 @@ endif
# Architectures and modes to be compiled. Consider these to be internal
# variables, don't override them (use the targets instead).
-ARCHES = ia32 x64 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 s390 \
- s390x
+ARCHES = ia32 x64 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 ppc64le \
+ s390 s390x
ARCHES32 = ia32 arm mips mipsel x87 ppc s390
DEFAULT_ARCHES = ia32 x64 arm
MODES = release debug optdebug
Index: v8-5.3.332.49/src/base/build_config.h
===================================================================
--- v8-5.3.332.49.orig/src/base/build_config.h
+++ v8-5.3.332.49/src/base/build_config.h
@@ -192,6 +192,8 @@
#define V8_TARGET_LITTLE_ENDIAN 1
#elif V8_TARGET_ARCH_PPC_BE
#define V8_TARGET_BIG_ENDIAN 1
+#elif defined(__PPC64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+#define V8_TARGET_LITTLE_ENDIAN 1
#elif V8_TARGET_ARCH_S390
#if V8_TARGET_ARCH_S390_LE_SIM
#define V8_TARGET_LITTLE_ENDIAN 1
@@ -214,6 +216,8 @@
#if V8_HOST_ARCH_PPC && V8_TARGET_ARCH_PPC && V8_OS_LINUX
// Bump up for Power Linux due to larger (64K) page size.
const int kPageSizeBits = 22;
+#elif defined(__PPC64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+const int kPageSizeBits = 22;
#else
const int kPageSizeBits = 20;
#endif
Index: v8-5.3.332.49/src/v8.gyp
===================================================================
--- v8-5.3.332.49.orig/src/v8.gyp
+++ v8-5.3.332.49/src/v8.gyp
@@ -1508,7 +1508,7 @@
'compiler/x64/instruction-selector-x64.cc',
],
}],
- ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', {
+ ['v8_target_arch=="ppc" or v8_target_arch=="ppc64" or v8_target_arch=="ppc64le"', {
'sources': [ ### gcmole(arch:ppc) ###
'compiler/ppc/code-generator-ppc.cc',
'compiler/ppc/instruction-codes-ppc.h',