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 | 2 +-
build/toolchain.gypi | 4 ++--
src/gypfiles/build_config.h | 4 ++++
src/v8.gyp | 2 +-
4 files changed, 8 insertions(+), 4 deletions(-)
diff -urB v8-5.2.361/gypfiles/toolchain.gypi new/gypfiles/toolchain.gypi
--- v8-5.2.361/gypfiles/toolchain.gypi 2016-06-07 21:04:11.000000000 +0200
+++ new/gypfiles/toolchain.gypi 2016-06-08 09:51:06.257354717 +0200
@@ -315,12 +315,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',
],
diff -urB v8-5.2.361/Makefile new/Makefile
--- v8-5.2.361/Makefile 2016-06-07 21:04:11.000000000 +0200
+++ new/Makefile 2016-06-08 09:49:17.328728548 +0200
@@ -250,7 +250,7 @@
# Architectures and modes to be compiled. Consider these to be internal
# variables, don't override them (use the targets instead).
-ARCHES = ia32 x64 x32 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 \
+ARCHES = ia32 x64 x32 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 ppc64le \
s390 s390x
DEFAULT_ARCHES = ia32 x64 arm
MODES = release debug optdebug
diff -urB v8-5.2.361/src/base/build_config.h new/src/base/build_config.h
--- v8-5.2.361/src/base/build_config.h 2016-06-07 21:04:10.000000000 +0200
+++ new/src/base/build_config.h 2016-06-08 09:53:55.210525937 +0200
@@ -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
diff -urB v8-5.2.361/src/v8.gyp new/src/v8.gyp
--- v8-5.2.361/src/v8.gyp 2016-06-07 21:04:11.000000000 +0200
+++ new/src/v8.gyp 2016-06-08 09:54:35.962796740 +0200
@@ -1492,7 +1492,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',