valgrind/valgrind-3.9.0-merge.patches.from.Paul.McKenney.patch
Michael Matz 18c6c09d2d Accepting request 213760 from home:michel_mno:branches:devel:tools
- add support of ppc64le architecture
- added patches:
  * valgrind-3.9.0-merge.patches.from.Paul.McKenney.patch
  * valgrind-3.9.0-ppc64le-abiv2.patch
- This is a request for devel:tools project
  but will need also to enable openSUSE:Factory:PowerPC ppc64le build.

OBS-URL: https://build.opensuse.org/request/show/213760
OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=100
2014-01-13 17:13:15 +00:00

3795 lines
173 KiB
Diff

From f0d5284af2266d4c59c7dd271d6c6b0e43a02a3d Mon Sep 17 00:00:00 2001
From: Michel Normand <normand@linux.vnet.ibm.com>
Date: Thu, 7 Nov 2013 15:34:33 +0100
Subject: [PATCH] valgrind ppc64le big patch
This is a merge of all the ppc64le patches from Paul McKeeney work
on git://kernel.stglabs.ibm.com/~paulmck/valgrind-3.8.1
between git commits: 87940d2 ... f41cbb5
And then adapted on later valgrind version 3.9.0 in fedpkg env
TODO: would need to split in subsets when will have to discuss with upstream.
---
Makefile.all.am | 25 ++++++++------
Makefile.in | 4 ++
Makefile.tool.am | 11 ++++++
Makefile.vex.in | 4 ++
VEX/priv/guest_ppc_toIR.c | 35 +++++++++++--------
VEX/priv/host_ppc_defs.c | 18 ++++++++--
auxprogs/Makefile.in | 4 ++
cachegrind/Makefile.in | 15 ++++++++
cachegrind/cg_arch.c | 2 -
cachegrind/cg_branchpred.c | 4 +-
cachegrind/tests/Makefile.in | 4 ++
cachegrind/tests/x86/Makefile.in | 4 ++
callgrind/Makefile.in | 15 ++++++++
callgrind/tests/Makefile.in | 4 ++
config.guess | 3 +
configure | 50 ++++++++++++++++++++++++++++
configure.ac | 22 ++++++++++++
coregrind/Makefile.in | 4 ++
coregrind/launcher-darwin.c | 11 +++---
coregrind/launcher-linux.c | 7 +++
coregrind/m_aspacemgr/aspacemgr-common.c | 4 +-
coregrind/m_cache.c | 2 -
coregrind/m_coredump/coredump-elf.c | 23 ++++++++++++
coregrind/m_debugger.c | 2 -
coregrind/m_debuginfo/d3basics.c | 4 +-
coregrind/m_debuginfo/debuginfo.c | 12 +++---
coregrind/m_debuginfo/priv_storage.h | 2 -
coregrind/m_debuginfo/readdwarf.c | 10 +++--
coregrind/m_debuginfo/readelf.c | 17 +++++----
coregrind/m_debuginfo/readmacho.c | 2 +
coregrind/m_debuginfo/storage.c | 2 -
coregrind/m_debuglog.c | 2 -
coregrind/m_dispatch/dispatch-ppc64-linux.S | 4 +-
coregrind/m_gdbserver/target.c | 2 -
coregrind/m_initimg/initimg-linux.c | 18 ++++++----
coregrind/m_libcassert.c | 2 -
coregrind/m_libcfile.c | 27 ++++++++-------
coregrind/m_libcproc.c | 5 +-
coregrind/m_libcsetjmp.c | 4 +-
coregrind/m_machine.c | 23 ++++++------
coregrind/m_main.c | 14 ++++---
coregrind/m_redir.c | 2 -
coregrind/m_scheduler/scheduler.c | 4 +-
coregrind/m_sigframe/sigframe-ppc64-linux.c | 8 +++-
coregrind/m_signals.c | 4 +-
coregrind/m_stacktrace.c | 7 ++-
coregrind/m_syscall.c | 4 +-
coregrind/m_syswrap/priv_types_n_macros.h | 1
coregrind/m_syswrap/syscall-ppc64-linux.S | 4 +-
coregrind/m_syswrap/syswrap-linux.c | 6 ++-
coregrind/m_syswrap/syswrap-main.c | 29 +++++++++++++---
coregrind/m_syswrap/syswrap-ppc64-linux.c | 4 +-
coregrind/m_trampoline.S | 2 -
coregrind/m_translate.c | 12 +++---
coregrind/m_ume/elf.c | 2 -
coregrind/m_ume/macho.c | 2 +
coregrind/m_vki.c | 3 +
coregrind/pub_core_aspacemgr.h | 1
coregrind/pub_core_basics.h | 2 -
coregrind/pub_core_debuginfo.h | 2 -
coregrind/pub_core_machine.h | 11 ++++--
coregrind/pub_core_mallocfree.h | 1
coregrind/pub_core_threadstate.h | 2 -
coregrind/pub_core_trampoline.h | 2 -
coregrind/pub_core_transtab_asm.h | 4 +-
coregrind/vgdb.c | 10 ++---
drd/Makefile.in | 15 ++++++++
drd/drd_bitmap.h | 4 +-
drd/drd_load_store.c | 2 -
drd/tests/Makefile.in | 4 ++
drd/tests/unit_bitmap.c | 3 +
exp-bbv/Makefile.in | 15 ++++++++
exp-bbv/tests/Makefile.in | 4 ++
exp-bbv/tests/amd64-linux/Makefile.in | 4 ++
exp-bbv/tests/arm-linux/Makefile.in | 4 ++
exp-bbv/tests/ppc32-linux/Makefile.in | 4 ++
exp-bbv/tests/x86-linux/Makefile.in | 4 ++
exp-bbv/tests/x86/Makefile.in | 4 ++
exp-dhat/Makefile.in | 15 ++++++++
exp-sgcheck/Makefile.in | 15 ++++++++
exp-sgcheck/tests/Makefile.in | 4 ++
gdbserver_tests/Makefile.in | 4 ++
helgrind/Makefile.in | 15 ++++++++
helgrind/tests/Makefile.in | 4 ++
helgrind/tests/annotate_hbefore.c | 2 -
include/pub_tool_basics.h | 7 ++-
include/pub_tool_libcsetjmp.h | 2 -
include/pub_tool_machine.h | 2 -
include/pub_tool_vkiscnums_asm.h | 2 -
include/vki/vki-linux.h | 4 +-
lackey/Makefile.in | 15 ++++++++
massif/Makefile.in | 15 ++++++++
massif/tests/Makefile.in | 4 ++
memcheck/Makefile.in | 15 ++++++++
memcheck/mc_machine.c | 6 +--
memcheck/tests/Makefile.in | 5 ++
memcheck/tests/amd64-linux/Makefile.in | 4 ++
memcheck/tests/amd64/Makefile.in | 4 ++
memcheck/tests/atomic_incs.c | 8 ++--
memcheck/tests/darwin/Makefile.in | 4 ++
memcheck/tests/linux/Makefile.in | 6 ++-
memcheck/tests/ppc32/Makefile.in | 4 ++
memcheck/tests/ppc64/Makefile.in | 4 ++
memcheck/tests/s390x/Makefile.in | 4 ++
memcheck/tests/unit_libcbase.c | 3 +
memcheck/tests/x86-linux/Makefile.in | 4 ++
memcheck/tests/x86/Makefile.in | 4 ++
mpi/Makefile.in | 4 ++
none/Makefile.in | 15 ++++++++
none/tests/Makefile.in | 7 +++
none/tests/amd64/Makefile.in | 4 ++
none/tests/arm/Makefile.in | 4 ++
none/tests/darwin/Makefile.in | 4 ++
none/tests/linux/Makefile.in | 4 ++
none/tests/mips32/Makefile.in | 4 ++
none/tests/ppc32/Makefile.in | 4 ++
none/tests/ppc64/Makefile.in | 4 ++
none/tests/s390x/Makefile.in | 4 ++
none/tests/x86-linux/Makefile.in | 4 ++
none/tests/x86/Makefile.in | 4 ++
perf/Makefile.in | 4 ++
tests/Makefile.in | 4 ++
tests/arch_test.c | 4 ++
123 files changed, 713 insertions(+), 173 deletions(-)
Index: valgrind-3.9.0/Makefile.all.am
===================================================================
--- valgrind-3.9.0.orig/Makefile.all.am
+++ valgrind-3.9.0/Makefile.all.am
@@ -150,6 +150,10 @@ AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
+
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -208,14 +212,15 @@ if VGCONF_PLATVARIANT_IS_ANDROID
PRELOAD_LDFLAGS_COMMON_LINUX += -nostdlib
endif
-PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
-PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
-PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
-PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
-PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
-PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
+PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
+PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
+PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
+PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
+PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
+PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
Index: valgrind-3.9.0/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/Makefile.in
+++ valgrind-3.9.0/Makefile.in
@@ -392,6 +392,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -440,6 +443,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/Makefile.tool.am
===================================================================
--- valgrind-3.9.0.orig/Makefile.tool.am
+++ valgrind-3.9.0/Makefile.tool.am
@@ -49,6 +49,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
@@ -102,6 +105,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -140,6 +146,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/Makefile.vex.in
===================================================================
--- valgrind-3.9.0.orig/Makefile.vex.in
+++ valgrind-3.9.0/Makefile.vex.in
@@ -454,6 +454,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -502,6 +505,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/VEX/priv/guest_ppc_toIR.c
===================================================================
--- valgrind-3.9.0.orig/VEX/priv/guest_ppc_toIR.c
+++ valgrind-3.9.0/VEX/priv/guest_ppc_toIR.c
@@ -497,15 +497,22 @@ static ULong extend_s_32to64 ( UInt x )
return (ULong)((((Long)x) << 32) >> 32);
}
-/* Do a big-endian load of a 32-bit word, regardless of the endianness
+/* Do a proper-endian load of a 32-bit word, regardless of the endianness
of the underlying host. */
-static UInt getUIntBigendianly ( UChar* p )
+static UInt getUIntPPCendianly ( UChar* p )
{
UInt w = 0;
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
w = (w << 8) | p[0];
w = (w << 8) | p[1];
w = (w << 8) | p[2];
w = (w << 8) | p[3];
+#else
+ w = (w << 8) | p[3];
+ w = (w << 8) | p[2];
+ w = (w << 8) | p[1];
+ w = (w << 8) | p[0];
+#endif
return w;
}
@@ -18511,7 +18518,7 @@ DisResult disInstr_PPC_WRK (
/* At least this is simple on PPC32: insns are all 4 bytes long, and
4-aligned. So just fish the whole thing out of memory right now
and have done. */
- theInstr = getUIntBigendianly( (UChar*)(&guest_code[delta]) );
+ theInstr = getUIntPPCendianly( (UChar*)(&guest_code[delta]) );
if (0) vex_printf("insn: 0x%x\n", theInstr);
@@ -18536,12 +18543,12 @@ DisResult disInstr_PPC_WRK (
UInt word2 = mode64 ? 0x78006800 : 0x54006800;
UInt word3 = mode64 ? 0x7800E802 : 0x5400E800;
UInt word4 = mode64 ? 0x78009802 : 0x54009800;
- if (getUIntBigendianly(code+ 0) == word1 &&
- getUIntBigendianly(code+ 4) == word2 &&
- getUIntBigendianly(code+ 8) == word3 &&
- getUIntBigendianly(code+12) == word4) {
+ if (getUIntPPCendianly(code+ 0) == word1 &&
+ getUIntPPCendianly(code+ 4) == word2 &&
+ getUIntPPCendianly(code+ 8) == word3 &&
+ getUIntPPCendianly(code+12) == word4) {
/* Got a "Special" instruction preamble. Which one is it? */
- if (getUIntBigendianly(code+16) == 0x7C210B78 /* or 1,1,1 */) {
+ if (getUIntPPCendianly(code+16) == 0x7C210B78 /* or 1,1,1 */) {
/* %R3 = client_request ( %R4 ) */
DIP("r3 = client_request ( %%r4 )\n");
delta += 20;
@@ -18551,7 +18558,7 @@ DisResult disInstr_PPC_WRK (
goto decode_success;
}
else
- if (getUIntBigendianly(code+16) == 0x7C421378 /* or 2,2,2 */) {
+ if (getUIntPPCendianly(code+16) == 0x7C421378 /* or 2,2,2 */) {
/* %R3 = guest_NRADDR */
DIP("r3 = guest_NRADDR\n");
delta += 20;
@@ -18560,7 +18567,7 @@ DisResult disInstr_PPC_WRK (
goto decode_success;
}
else
- if (getUIntBigendianly(code+16) == 0x7C631B78 /* or 3,3,3 */) {
+ if (getUIntPPCendianly(code+16) == 0x7C631B78 /* or 3,3,3 */) {
/* branch-and-link-to-noredir %R11 */
DIP("branch-and-link-to-noredir r11\n");
delta += 20;
@@ -18571,7 +18578,7 @@ DisResult disInstr_PPC_WRK (
goto decode_success;
}
else
- if (getUIntBigendianly(code+16) == 0x7C842378 /* or 4,4,4 */) {
+ if (getUIntPPCendianly(code+16) == 0x7C842378 /* or 4,4,4 */) {
/* %R3 = guest_NRADDR_GPR2 */
DIP("r3 = guest_NRADDR_GPR2\n");
delta += 20;
@@ -18580,7 +18587,7 @@ DisResult disInstr_PPC_WRK (
goto decode_success;
}
else
- if (getUIntBigendianly(code+16) == 0x7CA52B78 /* or 5,5,5 */) {
+ if (getUIntPPCendianly(code+16) == 0x7CA52B78 /* or 5,5,5 */) {
DIP("IR injection\n");
vex_inject_ir(irsb, Iend_BE);
@@ -18603,7 +18610,7 @@ DisResult disInstr_PPC_WRK (
}
/* We don't know what it is. Set opc1/opc2 so decode_failure
can print the insn following the Special-insn preamble. */
- theInstr = getUIntBigendianly(code+16);
+ theInstr = getUIntPPCendianly(code+16);
opc1 = ifieldOPC(theInstr);
opc2 = ifieldOPClo10(theInstr);
goto decode_failure;
@@ -19299,7 +19306,7 @@ DisResult disInstr_PPC_WRK (
case 0x32E: case 0x34E: case 0x36E: // tabortdc., tabortwci., tabortdci.
case 0x38E: case 0x3AE: case 0x3EE: // tabort., treclaim., trechkpt.
if (dis_transactional_memory( theInstr,
- getUIntBigendianly( (UChar*)(&guest_code[delta + 4])),
+ getUIntPPCendianly( (UChar*)(&guest_code[delta + 4])),
abiinfo, &dres,
resteerOkFn, callback_opaque))
goto decode_success;
Index: valgrind-3.9.0/VEX/priv/host_ppc_defs.c
===================================================================
--- valgrind-3.9.0.orig/VEX/priv/host_ppc_defs.c
+++ valgrind-3.9.0/VEX/priv/host_ppc_defs.c
@@ -3115,24 +3115,38 @@ static UInt vregNo ( HReg v )
return n;
}
-/* Emit an instruction big-endianly */
+/* Emit an instruction ppc-endianly */
static UChar* emit32 ( UChar* p, UInt w32 )
{
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
*p++ = toUChar((w32 >> 24) & 0x000000FF);
*p++ = toUChar((w32 >> 16) & 0x000000FF);
*p++ = toUChar((w32 >> 8) & 0x000000FF);
*p++ = toUChar((w32) & 0x000000FF);
+#else
+ *p++ = toUChar((w32) & 0x000000FF);
+ *p++ = toUChar((w32 >> 8) & 0x000000FF);
+ *p++ = toUChar((w32 >> 16) & 0x000000FF);
+ *p++ = toUChar((w32 >> 24) & 0x000000FF);
+#endif
return p;
}
-/* Fetch an instruction big-endianly */
+/* Fetch an instruction ppc-endianly */
static UInt fetch32 ( UChar* p )
{
UInt w32 = 0;
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
w32 |= ((0xFF & (UInt)p[0]) << 24);
w32 |= ((0xFF & (UInt)p[1]) << 16);
w32 |= ((0xFF & (UInt)p[2]) << 8);
w32 |= ((0xFF & (UInt)p[3]) << 0);
+#else
+ w32 |= ((0xFF & (UInt)p[3]) << 24);
+ w32 |= ((0xFF & (UInt)p[2]) << 16);
+ w32 |= ((0xFF & (UInt)p[1]) << 8);
+ w32 |= ((0xFF & (UInt)p[0]) << 0);
+#endif
return w32;
}
Index: valgrind-3.9.0/auxprogs/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/auxprogs/Makefile.in
+++ valgrind-3.9.0/auxprogs/Makefile.in
@@ -326,6 +326,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -374,6 +377,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/cachegrind/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/cachegrind/Makefile.in
+++ valgrind-3.9.0/cachegrind/Makefile.in
@@ -413,6 +413,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -461,6 +464,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -511,6 +515,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -556,6 +563,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -594,6 +604,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/cachegrind/cg_arch.c
===================================================================
--- valgrind-3.9.0.orig/cachegrind/cg_arch.c
+++ valgrind-3.9.0/cachegrind/cg_arch.c
@@ -353,7 +353,7 @@ configure_caches(cache_t *I1c, cache_t *
*D1c = (cache_t) { 65536, 2, 64 };
*LLc = (cache_t) { 262144, 8, 64 };
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
// Default cache configuration
*I1c = (cache_t) { 65536, 2, 64 };
Index: valgrind-3.9.0/cachegrind/cg_branchpred.c
===================================================================
--- valgrind-3.9.0.orig/cachegrind/cg_branchpred.c
+++ valgrind-3.9.0/cachegrind/cg_branchpred.c
@@ -44,8 +44,8 @@
/* How many bits at the bottom of an instruction address are
guaranteed to be zero? */
-#if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_arm) \
- || defined(VGA_mips32) || defined(VGA_mips64)
+#if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le) \
+ || defined(VGA_arm) || defined(VGA_mips32) || defined(VGA_mips64)
# define N_IADDR_LO_ZERO_BITS 2
#elif defined(VGA_x86) || defined(VGA_amd64)
# define N_IADDR_LO_ZERO_BITS 0
Index: valgrind-3.9.0/cachegrind/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/cachegrind/tests/Makefile.in
+++ valgrind-3.9.0/cachegrind/tests/Makefile.in
@@ -371,6 +371,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -419,6 +422,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/cachegrind/tests/x86/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/cachegrind/tests/x86/Makefile.in
+++ valgrind-3.9.0/cachegrind/tests/x86/Makefile.in
@@ -323,6 +323,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -371,6 +374,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/callgrind/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/callgrind/Makefile.in
+++ valgrind-3.9.0/callgrind/Makefile.in
@@ -426,6 +426,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -474,6 +477,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -524,6 +528,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -569,6 +576,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -607,6 +617,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/callgrind/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/callgrind/tests/Makefile.in
+++ valgrind-3.9.0/callgrind/tests/Makefile.in
@@ -364,6 +364,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -412,6 +415,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/config.guess
===================================================================
--- valgrind-3.9.0.orig/config.guess
+++ valgrind-3.9.0/config.guess
@@ -868,6 +868,9 @@ EOF
UNAME_MACHINE=aarch64_be
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-gnu
+ exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
Index: valgrind-3.9.0/configure
===================================================================
--- valgrind-3.9.0.orig/configure
+++ valgrind-3.9.0/configure
@@ -748,6 +748,8 @@ VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_FALSE
VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_TRUE
VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX_FALSE
VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX_TRUE
+VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX_FALSE
+VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX_TRUE
VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX_FALSE
VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX_TRUE
VGCONF_PLATFORMS_INCLUDE_AMD64_LINUX_FALSE
@@ -5377,6 +5379,12 @@ $as_echo "ok (${host_cpu})" >&6; }
ARCH_MAX="ppc64"
;;
+ powerpc64le)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (${host_cpu})" >&5
+$as_echo "ok (${host_cpu})" >&6; }
+ ARCH_MAX="ppc64le"
+ ;;
+
powerpc)
# On Linux this means only a 32-bit capable CPU.
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (${host_cpu})" >&5
@@ -5798,6 +5806,16 @@ $as_echo "ok (${ARCH_MAX}-${VGCONF_OS})"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (${ARCH_MAX}-${VGCONF_OS})" >&5
$as_echo "ok (${ARCH_MAX}-${VGCONF_OS})" >&6; }
;;
+ ppc64le-linux)
+ valt_load_address_sec_norml="0xUNSET"
+ valt_load_address_sec_inner="0xUNSET"
+ VGCONF_ARCH_PRI="ppc64le"
+ VGCONF_ARCH_SEC=""
+ VGCONF_PLATFORM_PRI_CAPS="PPC64LE_LINUX"
+ VGCONF_PLATFORM_SEC_CAPS=""
+ valt_load_address_pri_norml="0x38000000"
+ valt_load_address_pri_inner="0x28000000"
+ ;;
# Darwin gets identified as 32-bit even when it supports 64-bit.
# (Not sure why, possibly because 'uname' returns "i386"?) Just about
# all Macs support both 32-bit and 64-bit, so we just build both. If
@@ -5938,6 +5956,14 @@ else
VGCONF_ARCHS_INCLUDE_PPC64_FALSE=
fi
+ if test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX ; then
+ VGCONF_ARCHS_INCLUDE_PPC64LE_TRUE=
+ VGCONF_ARCHS_INCLUDE_PPC64LE_FALSE='#'
+else
+ VGCONF_ARCHS_INCLUDE_PPC64LE_TRUE='#'
+ VGCONF_ARCHS_INCLUDE_PPC64LE_FALSE=
+fi
+
if test x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX ; then
VGCONF_ARCHS_INCLUDE_ARM_TRUE=
VGCONF_ARCHS_INCLUDE_ARM_FALSE='#'
@@ -6007,6 +6033,14 @@ else
VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX_FALSE=
fi
+ if test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX; then
+ VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX_TRUE=
+ VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX_FALSE='#'
+else
+ VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX_TRUE='#'
+ VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX_FALSE=
+fi
+
if test x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX; then
VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_TRUE=
VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_FALSE='#'
@@ -6067,6 +6101,7 @@ fi
-o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \
+ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX \
@@ -6689,6 +6724,16 @@ $as_echo "#define GLIBC_2_18 1" >>confde
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.17)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.17 family" >&5
+$as_echo "2.17 family" >&6; }
+
+$as_echo "#define GLIBC_2_17 1" >>confdefs.h
+
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
darwin)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
$as_echo "Darwin" >&6; }
@@ -10167,6 +10212,7 @@ if test x$VGCONF_PLATFORM_PRI_CAPS = xX8
mflag_primary=$FLAG_M32
elif test x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \
+ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX ; then
mflag_primary=$FLAG_M64
elif test x$VGCONF_PLATFORM_PRI_CAPS = xX86_DARWIN ; then
@@ -11065,6 +11111,10 @@ if test -z "${VGCONF_PLATFORMS_INCLUDE_P
as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX_FALSE}"; then
+ as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_FALSE}"; then
as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_ARM_LINUX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
Index: valgrind-3.9.0/coregrind/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/coregrind/Makefile.in
+++ valgrind-3.9.0/coregrind/Makefile.in
@@ -945,6 +945,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -993,6 +996,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/coregrind/launcher-darwin.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/launcher-darwin.c
+++ valgrind-3.9.0/coregrind/launcher-darwin.c
@@ -59,11 +59,12 @@ static struct {
const char *apple_name; // e.g. x86_64
const char *valgrind_name; // e.g. amd64
} valid_archs[] = {
- { CPU_TYPE_X86, "i386", "x86" },
- { CPU_TYPE_X86_64, "x86_64", "amd64" },
- { CPU_TYPE_ARM, "arm", "arm" },
- { CPU_TYPE_POWERPC, "ppc", "ppc32" },
- { CPU_TYPE_POWERPC64, "ppc64", "ppc64" },
+ { CPU_TYPE_X86, "i386", "x86" },
+ { CPU_TYPE_X86_64, "x86_64", "amd64" },
+ { CPU_TYPE_ARM, "arm", "arm" },
+ { CPU_TYPE_POWERPC, "ppc", "ppc32" },
+ { CPU_TYPE_POWERPC64, "ppc64", "ppc64" },
+ { CPU_TYPE_POWERPC64LE, "ppc64le", "ppc64le" },
};
static int valid_archs_count = sizeof(valid_archs)/sizeof(valid_archs[0]);
Index: valgrind-3.9.0/coregrind/launcher-linux.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/launcher-linux.c
+++ valgrind-3.9.0/coregrind/launcher-linux.c
@@ -221,6 +221,12 @@ static const char *select_platform(const
ehdr->e_ident[EI_OSABI] == ELFOSABI_LINUX)) {
platform = "mips64-linux";
}
+ else
+ if (ehdr->e_machine == EM_PPC64 &&
+ (ehdr->e_ident[EI_OSABI] == ELFOSABI_SYSV ||
+ ehdr->e_ident[EI_OSABI] == ELFOSABI_LINUX)) {
+ platform = "ppc64le-linux";
+ }
} else if (header[EI_DATA] == ELFDATA2MSB) {
# if !defined(VGPV_arm_linux_android) && !defined(VGPV_x86_linux_android)
if (ehdr->e_machine == EM_PPC64 &&
@@ -311,6 +317,7 @@ int main(int argc, char** argv, char** e
(0==strcmp(VG_PLATFORM,"amd64-linux")) ||
(0==strcmp(VG_PLATFORM,"ppc32-linux")) ||
(0==strcmp(VG_PLATFORM,"ppc64-linux")) ||
+ (0==strcmp(VG_PLATFORM,"ppc64le-linux")) ||
(0==strcmp(VG_PLATFORM,"arm-linux")) ||
(0==strcmp(VG_PLATFORM,"s390x-linux")) ||
(0==strcmp(VG_PLATFORM,"mips32-linux")) ||
Index: valgrind-3.9.0/coregrind/m_aspacemgr/aspacemgr-common.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_aspacemgr/aspacemgr-common.c
+++ valgrind-3.9.0/coregrind/m_aspacemgr/aspacemgr-common.c
@@ -159,8 +159,8 @@ SysRes VG_(am_do_mmap_NO_NOTIFY)( Addr s
res = VG_(do_syscall6)(__NR_mmap2, (UWord)start, length,
prot, flags, fd, offset / 4096);
# elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux) \
- || defined(VGP_s390x_linux) || defined(VGP_mips32_linux) \
- || defined(VGP_mips64_linux)
+ || defined(VGP_ppc64le_linux) || defined(VGP_s390x_linux) \
+ || defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
res = VG_(do_syscall6)(__NR_mmap, (UWord)start, length,
prot, flags, fd, offset);
# elif defined(VGP_x86_darwin)
Index: valgrind-3.9.0/coregrind/m_cache.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_cache.c
+++ valgrind-3.9.0/coregrind/m_cache.c
@@ -539,7 +539,7 @@ get_cache_info(VexArchInfo *vai)
}
#elif defined(VGA_arm) || defined(VGA_ppc32) || defined(VGA_ppc64) || \
- defined(VGA_mips32) || defined(VGA_mips64)
+ defined(VGA_ppc64le)|| defined(VGA_mips32) || defined(VGA_mips64)
static Bool
get_cache_info(VexArchInfo *vai)
Index: valgrind-3.9.0/coregrind/m_coredump/coredump-elf.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_coredump/coredump-elf.c
+++ valgrind-3.9.0/coregrind/m_coredump/coredump-elf.c
@@ -346,6 +346,27 @@ static void fill_prstatus(const ThreadSt
regs->dsisr = 0;
regs->result = 0;
+#elif defined(VGP_ppc64le_linux)
+# define DO(n) regs->gpr[n] = arch->vex.guest_GPR##n
+ DO(0); DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7);
+ DO(8); DO(9); DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
+ DO(16); DO(17); DO(18); DO(19); DO(20); DO(21); DO(22); DO(23);
+ DO(24); DO(25); DO(26); DO(27); DO(28); DO(29); DO(30); DO(31);
+# undef DO
+
+ regs->nip = arch->vex.guest_CIA;
+ regs->msr = 0xf033; /* pretty arbitrary */
+ regs->orig_gpr3 = arch->vex.guest_GPR3;
+ regs->ctr = arch->vex.guest_CTR;
+ regs->link = arch->vex.guest_LR;
+ regs->xer = LibVEX_GuestPPC64_get_XER( &((ThreadArchState*)arch)->vex );
+ regs->ccr = LibVEX_GuestPPC64_get_CR( &((ThreadArchState*)arch)->vex );
+ /* regs->mq = 0; */
+ regs->trap = 0;
+ regs->dar = 0; /* should be fault address? */
+ regs->dsisr = 0;
+ regs->result = 0;
+
#elif defined(VGP_arm_linux)
regs->ARM_r0 = arch->vex.guest_R0;
regs->ARM_r1 = arch->vex.guest_R1;
@@ -454,7 +475,7 @@ static void fill_fpu(const ThreadState *
DO(24); DO(25); DO(26); DO(27); DO(28); DO(29); DO(30); DO(31);
# undef DO
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* The guest state has the FPR fields declared as ULongs, so need
to fish out the values without converting them.
NOTE: The 32 FP registers map to the first 32 VSX registers.*/
Index: valgrind-3.9.0/coregrind/m_debugger.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debugger.c
+++ valgrind-3.9.0/coregrind/m_debugger.c
@@ -152,7 +152,7 @@ static Int ptrace_setregs(Int pid, VexGu
(void*)LibVEX_GuestPPC32_get_XER(vex));
return rc;
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
Int rc = 0;
/* FRJ: copied nearly verbatim from the ppc32 case. I compared the
vki-ppc64-linux.h with its ppc32 counterpart and saw no
Index: valgrind-3.9.0/coregrind/m_debuginfo/d3basics.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debuginfo/d3basics.c
+++ valgrind-3.9.0/coregrind/m_debuginfo/d3basics.c
@@ -406,7 +406,7 @@ static Bool get_Dwarf_Reg( /*OUT*/Addr*
if (regno == 7/*RSP*/) { *a = regs->sp; return True; }
# elif defined(VGP_ppc32_linux)
if (regno == 1/*SP*/) { *a = regs->sp; return True; }
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
if (regno == 1/*SP*/) { *a = regs->sp; return True; }
# elif defined(VGP_arm_linux)
if (regno == 13) { *a = regs->sp; return True; }
@@ -861,7 +861,7 @@ GXResult ML_(evaluate_Dwarf3_Expr) ( UCh
if (!regs)
FAIL("evaluate_Dwarf3_Expr: "
"DW_OP_call_frame_cfa but no reg info");
-#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* Valgrind on ppc32/ppc64 currently doesn't use unwind info. */
uw1 = ML_(read_Addr)((UChar*)regs->sp);
#else
Index: valgrind-3.9.0/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debuginfo/debuginfo.c
+++ valgrind-3.9.0/coregrind/m_debuginfo/debuginfo.c
@@ -824,7 +824,8 @@ ULong VG_(di_notify_mmap)( Addr a, Bool
|| defined(VGA_mips64)
is_rx_map = seg->hasR && seg->hasX;
is_rw_map = seg->hasR && seg->hasW;
-# elif defined(VGA_amd64) || defined(VGA_ppc64) || defined(VGA_arm)
+# elif defined(VGA_amd64) || defined(VGA_arm) \
+ || defined(VGA_ppc64) || defined(VGA_ppc64le)
is_rx_map = seg->hasR && seg->hasX && !seg->hasW;
is_rw_map = seg->hasR && seg->hasW && !seg->hasX;
# elif defined(VGP_s390x_linux)
@@ -2112,7 +2113,8 @@ UWord evalCfiExpr ( XArray* exprs, Int i
case Creg_IA_SP: return eec->uregs->sp;
case Creg_IA_BP: return eec->uregs->fp;
case Creg_MIPS_RA: return eec->uregs->ra;
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) \
+ || defined(VGA_ppc64) || defined(VGA_ppc64le)
# else
# error "Unsupported arch"
# endif
@@ -2356,7 +2358,7 @@ static Addr compute_cfa ( D3UnwindRegs*
case CFIC_IA_BPREL:
cfa = cfsi->cfa_off + uregs->fp;
break;
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
# else
# error "Unsupported arch"
# endif
@@ -2452,7 +2454,7 @@ Bool VG_(use_CF_info) ( /*MOD*/D3UnwindR
ipHere = uregsHere->ia;
# elif defined(VGA_mips32) || defined(VGA_mips64)
ipHere = uregsHere->pc;
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
# else
# error "Unknown arch"
# endif
@@ -2532,7 +2534,7 @@ Bool VG_(use_CF_info) ( /*MOD*/D3UnwindR
COMPUTE(uregsPrev.pc, uregsHere->pc, cfsi->ra_how, cfsi->ra_off);
COMPUTE(uregsPrev.sp, uregsHere->sp, cfsi->sp_how, cfsi->sp_off);
COMPUTE(uregsPrev.fp, uregsHere->fp, cfsi->fp_how, cfsi->fp_off);
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
# else
# error "Unknown arch"
# endif
Index: valgrind-3.9.0/coregrind/m_debuginfo/priv_storage.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debuginfo/priv_storage.h
+++ valgrind-3.9.0/coregrind/m_debuginfo/priv_storage.h
@@ -232,7 +232,7 @@ typedef
Int r7_off;
}
DiCfSI;
-#elif defined(VGA_ppc32) || defined(VGA_ppc64)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
/* Just have a struct with the common fields in, so that code that
processes the common fields doesn't have to be ifdef'd against
VGP_/VGA_ symbols. These are not used in any way on ppc32/64-linux
Index: valgrind-3.9.0/coregrind/m_debuginfo/readdwarf.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debuginfo/readdwarf.c
+++ valgrind-3.9.0/coregrind/m_debuginfo/readdwarf.c
@@ -1833,7 +1833,7 @@ void ML_(read_debuginfo_dwarf1) (
# define FP_REG 1
# define SP_REG 1
# define RA_REG_DEFAULT 65
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
# define FP_REG 1
# define SP_REG 1
# define RA_REG_DEFAULT 65
@@ -1870,6 +1870,7 @@ void ML_(read_debuginfo_dwarf1) (
7 (DWARF for the ARM Architecture) specifies that values up to 320
might exist, for Neon/VFP-v3. */
#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux) \
|| defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
# define N_CFI_REGS 72
#elif defined(VGP_arm_linux)
@@ -2433,7 +2434,7 @@ static Bool summarise_context( /*OUT*/Di
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
# else
# error "Unknown arch"
# endif
@@ -2521,7 +2522,7 @@ static Int copy_convert_CfiExpr_tree ( X
return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_BP );
if (dwreg == srcuc->ra_reg)
return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_IP );
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
# else
# error "Unknown arch"
# endif
@@ -3688,7 +3689,8 @@ void ML_(read_callframe_info_dwarf3)
if (!is_ehframe)
vg_assert(frame_avma == 0);
-# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) || \
+ defined(VGP_ppc64le_linux)
/* These targets don't use CFI-based stack unwinding. */
return;
# endif
Index: valgrind-3.9.0/coregrind/m_debuginfo/readelf.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debuginfo/readelf.c
+++ valgrind-3.9.0/coregrind/m_debuginfo/readelf.c
@@ -244,7 +244,7 @@ Bool get_elf_symbol_info (
)
{
Bool plausible;
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
Bool is_in_opd;
# endif
Bool in_text, in_data, in_sdata, in_rodata, in_bss, in_sbss;
@@ -374,7 +374,7 @@ Bool get_elf_symbol_info (
}
# endif
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* Allow STT_NOTYPE in the very special case where we're running on
ppc64-linux and the symbol is one which the .opd-chasing hack
below will chase. */
@@ -481,7 +481,7 @@ Bool get_elf_symbol_info (
See thread starting at
http://gcc.gnu.org/ml/gcc-patches/2004-08/msg00557.html
*/
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
is_in_opd = False;
# endif
@@ -489,7 +489,7 @@ Bool get_elf_symbol_info (
&& di->opd_size > 0
&& *sym_avma_out >= di->opd_avma
&& *sym_avma_out < di->opd_avma + di->opd_size) {
-# if !defined(VGP_ppc64_linux)
+# if !defined(VGP_ppc64_linux) && !defined(VGP_ppc64le_linux)
if (TRACE_SYMTAB_ENABLED) {
HChar* sym_name = ML_(img_strdup)(escn_strtab->img,
"di.gesi.6", sym_name_ioff);
@@ -584,7 +584,7 @@ Bool get_elf_symbol_info (
/* Here's yet another ppc64-linux hack. Get rid of leading dot if
the symbol is outside .opd. */
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
if (di->opd_size > 0
&& !is_in_opd
&& *sym_name_out_ioff != DiOffT_INVALID
@@ -668,7 +668,7 @@ Bool get_elf_symbol_info (
}
}
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* It's crucial that we never add symbol addresses in the .opd
section. This would completely mess up function redirection and
intercepting. This assert ensures that any symbols that make it
@@ -2112,7 +2112,7 @@ Bool ML_(read_elf_debug_info) ( struct _
BAD(".plt");
}
}
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* Accept .plt where mapped as rw (data), or unmapped */
if (0 == VG_(strcmp)(name, ".plt")) {
if (inrw && !di->plt_present) {
@@ -2728,7 +2728,7 @@ Bool ML_(read_elf_debug_info) ( struct _
void (*read_elf_symtab)(struct _DebugInfo*, const HChar*,
DiSlice*, DiSlice*, DiSlice*, Bool);
Bool symtab_in_debug;
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
read_elf_symtab = read_elf_symtab__ppc64_linux;
# else
read_elf_symtab = read_elf_symtab__normal;
@@ -2772,6 +2772,7 @@ Bool ML_(read_elf_debug_info) ( struct _
# if !defined(VGP_amd64_linux) \
&& !defined(VGP_s390x_linux) \
&& !defined(VGP_ppc64_linux) \
+ && !defined(VGP_ppc64le_linux) \
&& !defined(VGPV_arm_linux_android) \
&& !defined(VGPV_x86_linux_android) \
&& !defined(VGP_mips64_linux)
Index: valgrind-3.9.0/coregrind/m_debuginfo/readmacho.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debuginfo/readmacho.c
+++ valgrind-3.9.0/coregrind/m_debuginfo/readmacho.c
@@ -199,6 +199,8 @@ static DiSlice map_image_aboard ( DebugI
Int cputype = CPU_TYPE_POWERPC;
# elif defined(VGA_ppc64)
Int cputype = CPU_TYPE_POWERPC64;
+# elif defined(VGA_ppc64le)
+ Int cputype = CPU_TYPE_POWERPC64LE;
# elif defined(VGA_x86)
Int cputype = CPU_TYPE_X86;
# elif defined(VGA_amd64)
Index: valgrind-3.9.0/coregrind/m_debuginfo/storage.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debuginfo/storage.c
+++ valgrind-3.9.0/coregrind/m_debuginfo/storage.c
@@ -189,7 +189,7 @@ void ML_(ppDiCfSI) ( XArray* /* of CfiEx
SHOW_HOW(si->r11_how, si->r11_off);
VG_(printf)(" R7=");
SHOW_HOW(si->r7_how, si->r7_off);
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
# elif defined(VGA_s390x) || defined(VGA_mips32) || defined(VGA_mips64)
VG_(printf)(" SP=");
SHOW_HOW(si->sp_how, si->sp_off);
Index: valgrind-3.9.0/coregrind/m_debuglog.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_debuglog.c
+++ valgrind-3.9.0/coregrind/m_debuglog.c
@@ -188,7 +188,7 @@ static UInt local_sys_getpid ( void )
return __res;
}
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
static UInt local_sys_write_stderr ( const HChar* buf, Int n )
{
Index: valgrind-3.9.0/coregrind/m_dispatch/dispatch-ppc64-linux.S
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_dispatch/dispatch-ppc64-linux.S
+++ valgrind-3.9.0/coregrind/m_dispatch/dispatch-ppc64-linux.S
@@ -28,7 +28,7 @@
The GNU General Public License is contained in the file COPYING.
*/
-#if defined(VGP_ppc64_linux)
+#if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
@@ -530,7 +530,7 @@ VG_(disp_cp_evcheck_fail):
/* Let the linker know we don't need an executable stack */
.section .note.GNU-stack,"",@progbits
-#endif // defined(VGP_ppc64_linux)
+#endif // defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/*--------------------------------------------------------------------*/
/*--- end ---*/
Index: valgrind-3.9.0/coregrind/m_gdbserver/target.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_gdbserver/target.c
+++ valgrind-3.9.0/coregrind/m_gdbserver/target.c
@@ -643,7 +643,7 @@ void valgrind_initialize_target(void)
arm_init_architecture(&the_low_target);
#elif defined(VGA_ppc32)
ppc32_init_architecture(&the_low_target);
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
ppc64_init_architecture(&the_low_target);
#elif defined(VGA_s390x)
s390x_init_architecture(&the_low_target);
Index: valgrind-3.9.0/coregrind/m_initimg/initimg-linux.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_initimg/initimg-linux.c
+++ valgrind-3.9.0/coregrind/m_initimg/initimg-linux.c
@@ -366,7 +366,7 @@ struct auxv *find_auxv(UWord* sp)
sp++;
sp++;
-#if defined(VGA_ppc32) || defined(VGA_ppc64)
+#if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
# if defined AT_IGNOREPPC
while (*sp == AT_IGNOREPPC) // skip AT_IGNOREPPC entries
sp += 2;
@@ -457,7 +457,8 @@ Addr setup_client_stack( void* init_sp,
auxsize += sizeof(*cauxv);
}
-# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) || \
+ defined(VGP_ppc64le_linux)
auxsize += 2 * sizeof(*cauxv);
# endif
@@ -614,7 +615,8 @@ Addr setup_client_stack( void* init_sp,
// We do not take ULong* (as ULong 8 bytes on a 32 bits),
// => we take UWord*
-# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
auxv[0].a_type = AT_IGNOREPPC;
auxv[0].u.a_val = AT_IGNOREPPC;
auxv[1].a_type = AT_IGNOREPPC;
@@ -716,7 +718,7 @@ Addr setup_client_stack( void* init_sp,
"PPC32 icache line size %u (type %u)\n",
(UInt)auxv->u.a_val, (UInt)auxv->a_type );
}
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* acquire cache info */
if (auxv->u.a_val > 0) {
VG_(machine_ppc64_set_clszB)( auxv->u.a_val );
@@ -727,7 +729,8 @@ Addr setup_client_stack( void* init_sp,
# endif
break;
-# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) || \
+ defined(VGP_ppc64le_linux)
case AT_IGNOREPPC:
break;
# endif
@@ -747,7 +750,8 @@ Addr setup_client_stack( void* init_sp,
auxv->a_type = AT_IGNORE;
break;
-# if !defined(VGP_ppc32_linux) && !defined(VGP_ppc64_linux)
+# if !defined(VGP_ppc32_linux) && !defined(VGP_ppc64_linux) && \
+ !defined(VGP_ppc64le_linux)
case AT_SYSINFO_EHDR: {
/* Trash this, because we don't reproduce it */
const NSegment* ehdrseg = VG_(am_find_nsegment)((Addr)auxv->u.a_ptr);
@@ -1033,7 +1037,7 @@ void VG_(ii_finalise_image)( IIFinaliseI
arch->vex.guest_GPR1 = iifii.initial_client_SP;
arch->vex.guest_CIA = iifii.initial_client_IP;
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
vg_assert(0 == sizeof(VexGuestPPC64State) % 16);
/* Zero out the initial state, and set up the simulated FPU in a
Index: valgrind-3.9.0/coregrind/m_libcassert.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_libcassert.c
+++ valgrind-3.9.0/coregrind/m_libcassert.c
@@ -96,7 +96,7 @@
(srP)->r_sp = (ULong)r1; \
(srP)->misc.PPC32.r_lr = lr; \
}
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
# define GET_STARTREGS(srP) \
{ ULong cia, r1, lr; \
__asm__ __volatile__( \
Index: valgrind-3.9.0/coregrind/m_libcfile.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_libcfile.c
+++ valgrind-3.9.0/coregrind/m_libcfile.c
@@ -623,8 +623,8 @@ SysRes VG_(pread) ( Int fd, void* buf, I
0, 0, offset);
return res;
# elif defined(VGP_amd64_linux) \
- || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux) \
- || defined(VGP_mips64_linux)
+ || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux) \
+ || defined(VGP_s390x_linux) || defined(VGP_mips64_linux)
res = VG_(do_syscall4)(__NR_pread64, fd, (UWord)buf, count, offset);
return res;
# elif defined(VGP_amd64_darwin)
@@ -867,7 +867,8 @@ static Int parse_inet_addr_and_port ( co
Int VG_(socket) ( Int domain, Int type, Int protocol )
{
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
- || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
+ || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux) \
+ || defined(VGP_s390x_linux)
SysRes res;
UWord args[3];
args[0] = domain;
@@ -906,7 +907,8 @@ static
Int my_connect ( Int sockfd, struct vki_sockaddr_in* serv_addr, Int addrlen )
{
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
- || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
+ || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux) \
+ || defined(VGP_s390x_linux)
SysRes res;
UWord args[3];
args[0] = sockfd;
@@ -944,7 +946,8 @@ Int VG_(write_socket)( Int sd, const voi
SIGPIPE */
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
- || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
+ || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux) \
+ || defined(VGP_s390x_linux)
SysRes res;
UWord args[4];
args[0] = sd;
@@ -974,8 +977,8 @@ Int VG_(write_socket)( Int sd, const voi
Int VG_(getsockname) ( Int sd, struct vki_sockaddr *name, Int *namelen)
{
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
- || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux) \
- || defined(VGP_mips32_linux)
+ || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux) \
+ || defined(VGP_s390x_linux) || defined(VGP_mips32_linux)
SysRes res;
UWord args[3];
args[0] = sd;
@@ -1005,8 +1008,8 @@ Int VG_(getsockname) ( Int sd, struct vk
Int VG_(getpeername) ( Int sd, struct vki_sockaddr *name, Int *namelen)
{
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
- || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux) \
- || defined(VGP_mips32_linux)
+ || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux) \
+ || defined(VGP_s390x_linux) || defined(VGP_mips32_linux)
SysRes res;
UWord args[3];
args[0] = sd;
@@ -1037,7 +1040,8 @@ Int VG_(getsockopt) ( Int sd, Int level,
Int *optlen)
{
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
- || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
+ || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux) \
+ || defined(VGP_s390x_linux)
SysRes res;
UWord args[5];
args[0] = sd;
@@ -1073,7 +1077,8 @@ Int VG_(setsockopt) ( Int sd, Int level,
Int optlen)
{
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
- || defined(VGP_ppc64_linux) || defined(VGP_s390x_linux)
+ || defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux) \
+ || defined(VGP_s390x_linux)
SysRes res;
UWord args[5];
args[0] = sd;
Index: valgrind-3.9.0/coregrind/m_libcproc.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_libcproc.c
+++ valgrind-3.9.0/coregrind/m_libcproc.c
@@ -550,7 +550,8 @@ Int VG_(getgroups)( Int size, UInt* list
return sr_Res(sres);
# elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux) \
- || defined(VGP_arm_linux) \
+ || defined(VGP_ppc64le_linux) \
+ || defined(VGP_arm_linux) \
|| defined(VGO_darwin) || defined(VGP_s390x_linux) \
|| defined(VGP_mips32_linux)
SysRes sres;
@@ -735,7 +736,7 @@ void VG_(invalidate_icache) ( void *ptr,
// If I-caches are coherent, nothing needs to be done here
if (vai.hwcache_info.icaches_maintain_coherence) return;
-# if defined(VGA_ppc32) || defined(VGA_ppc64)
+# if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
Addr startaddr = (Addr) ptr;
Addr endaddr = startaddr + nbytes;
Addr cls;
Index: valgrind-3.9.0/coregrind/m_libcsetjmp.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_libcsetjmp.c
+++ valgrind-3.9.0/coregrind/m_libcsetjmp.c
@@ -149,7 +149,7 @@ __asm__(
/* ------------ ppc64-linux ------------ */
-#if defined(VGP_ppc64_linux)
+#if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
__asm__(
".section \".toc\",\"aw\"" "\n"
@@ -270,7 +270,7 @@ __asm__(
".previous" "\n"
);
-#endif /* VGP_ppc64_linux */
+#endif /* VGP_ppc64_linux || VGP_ppc64le_linux */
/* ------------ amd64-{linux,darwin} ------------ */
Index: valgrind-3.9.0/coregrind/m_machine.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_machine.c
+++ valgrind-3.9.0/coregrind/m_machine.c
@@ -81,7 +81,7 @@ void VG_(get_UnwindStartRegs) ( /*OUT*/U
regs->r_sp = (ULong)VG_(threads)[tid].arch.vex.guest_GPR1;
regs->misc.PPC32.r_lr
= VG_(threads)[tid].arch.vex.guest_LR;
-# elif defined(VGA_ppc64)
+# elif defined(VGA_ppc64) || defined(VGA_ppc64le)
regs->r_pc = VG_(threads)[tid].arch.vex.guest_CIA;
regs->r_sp = VG_(threads)[tid].arch.vex.guest_GPR1;
regs->misc.PPC64.r_lr
@@ -140,7 +140,8 @@ void VG_(set_syscall_return_shadows) ( T
# elif defined(VGP_amd64_linux)
VG_(threads)[tid].arch.vex_shadow1.guest_RAX = s1res;
VG_(threads)[tid].arch.vex_shadow2.guest_RAX = s2res;
-# elif defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
VG_(threads)[tid].arch.vex_shadow1.guest_GPR3 = s1res;
VG_(threads)[tid].arch.vex_shadow2.guest_GPR3 = s2res;
# elif defined(VGP_arm_linux)
@@ -239,7 +240,7 @@ static void apply_to_GPs_of_tid(ThreadId
(*f)(tid, "R13", vex->guest_R13);
(*f)(tid, "R14", vex->guest_R14);
(*f)(tid, "R15", vex->guest_R15);
-#elif defined(VGA_ppc32) || defined(VGA_ppc64)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
(*f)(tid, "GPR0" , vex->guest_GPR0 );
(*f)(tid, "GPR1" , vex->guest_GPR1 );
(*f)(tid, "GPR2" , vex->guest_GPR2 );
@@ -437,7 +438,7 @@ UInt VG_(machine_x86_have_mxcsr) = 0;
UInt VG_(machine_ppc32_has_FP) = 0;
UInt VG_(machine_ppc32_has_VMX) = 0;
#endif
-#if defined(VGA_ppc64)
+#if defined(VGA_ppc64) || defined(VGA_ppc64le)
ULong VG_(machine_ppc64_has_VMX) = 0;
#endif
#if defined(VGA_arm)
@@ -447,7 +448,7 @@ Int VG_(machine_arm_archlevel) = 4;
/* For hwcaps detection on ppc32/64, s390x, and arm we'll need to do SIGILL
testing, so we need a VG_MINIMAL_JMP_BUF. */
-#if defined(VGA_ppc32) || defined(VGA_ppc64) \
+#if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le) \
|| defined(VGA_arm) || defined(VGA_s390x) || defined(VGA_mips32)
#include "pub_core_libcsetjmp.h"
static VG_MINIMAL_JMP_BUF(env_unsup_insn);
@@ -465,7 +466,7 @@ static void handler_unsup_insn ( Int x )
* Not very defensive: assumes that as long as the dcbz/dcbzl
* instructions don't raise a SIGILL, that they will zero an aligned,
* contiguous block of memory of a sensible size. */
-#if defined(VGA_ppc32) || defined(VGA_ppc64)
+#if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
static void find_ppc_dcbz_sz(VexArchInfo *arch_info)
{
Int dcbz_szB = 0;
@@ -518,7 +519,7 @@ static void find_ppc_dcbz_sz(VexArchInfo
dcbz_szB, dcbzl_szB);
# undef MAX_DCBZL_SZB
}
-#endif /* defined(VGA_ppc32) || defined(VGA_ppc64) */
+#endif /* defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le) */
#ifdef VGA_s390x
@@ -1054,7 +1055,7 @@ Bool VG_(machine_get_hwcaps)( void )
return True;
}
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
{
/* Same instruction set detection algorithm as for ppc32. */
vki_sigset_t saved_set, tmp_set;
@@ -1552,7 +1553,7 @@ void VG_(machine_ppc32_set_clszB)( Int s
/* Notify host cpu instruction cache line size. */
-#if defined(VGA_ppc64)
+#if defined(VGA_ppc64) || defined(VGA_ppc64le)
void VG_(machine_ppc64_set_clszB)( Int szB )
{
vg_assert(hwcaps_done);
@@ -1634,7 +1635,7 @@ Int VG_(machine_get_size_of_largest_gues
if (vai.hwcaps & VEX_HWCAPS_PPC32_DFP) return 16;
return 8;
-# elif defined(VGA_ppc64)
+# elif defined(VGA_ppc64) || defined(VGA_ppc64le)
/* 8 if boring; 16 if signs of Altivec or other exotic stuff */
if (vai.hwcaps & VEX_HWCAPS_PPC64_V) return 16;
if (vai.hwcaps & VEX_HWCAPS_PPC64_VX) return 16;
@@ -1673,7 +1674,7 @@ void* VG_(fnptr_to_fnentry)( void* f )
|| defined(VGP_s390x_linux) || defined(VGP_mips32_linux) \
|| defined(VGP_mips64_linux)
return f;
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* ppc64-linux uses the AIX scheme, in which f is a pointer to a
3-word function descriptor, of which the first word is the entry
address. */
Index: valgrind-3.9.0/coregrind/m_main.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_main.c
+++ valgrind-3.9.0/coregrind/m_main.c
@@ -2015,7 +2015,8 @@ Int valgrind_main ( Int argc, HChar **ar
# if defined(VGP_x86_linux)
iters = 10;
-# elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux)
+# elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
iters = 10;
# elif defined(VGP_ppc32_linux)
iters = 5;
@@ -2567,7 +2568,7 @@ void shutdown_actions_NORETURN( ThreadId
static void final_tidyup(ThreadId tid)
{
#if !defined(VGO_darwin)
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
Addr r2;
# endif
Addr __libc_freeres_wrapper = VG_(client___libc_freeres_wrapper);
@@ -2579,7 +2580,7 @@ static void final_tidyup(ThreadId tid)
0 == __libc_freeres_wrapper )
return; /* can't/won't do it */
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
r2 = VG_(get_tocptr)( __libc_freeres_wrapper );
if (r2 == 0) {
VG_(message)(Vg_UserMsg,
@@ -2602,7 +2603,7 @@ static void final_tidyup(ThreadId tid)
directly. However, we need to set R2 (the toc pointer)
appropriately. */
VG_(set_IP)(tid, __libc_freeres_wrapper);
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
VG_(threads)[tid].arch.vex.guest_GPR2 = r2;
# endif
/* mips-linux note: we need to set t9 */
@@ -2799,7 +2800,7 @@ asm("\n"
"\ttrap\n"
".previous\n"
);
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
asm("\n"
/* PPC64 ELF ABI says '_start' points to a function descriptor.
So we must have one, and that is what goes into the .opd section. */
@@ -3033,7 +3034,8 @@ void _start_in_C_linux ( UWord* pArgc )
the_iicii.sp_at_startup = (Addr)pArgc;
-# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
{
/* ppc/ppc64 can be configured with different page sizes.
Determine this early. This is an ugly hack and really should
Index: valgrind-3.9.0/coregrind/m_redir.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_redir.c
+++ valgrind-3.9.0/coregrind/m_redir.c
@@ -1278,7 +1278,7 @@ void VG_(redir_initialise) ( void )
);
}
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* If we're using memcheck, use these intercepts right from
the start, otherwise ld.so makes a lot of noise. */
if (0==VG_(strcmp)("Memcheck", VG_(details).name)) {
Index: valgrind-3.9.0/coregrind/m_scheduler/scheduler.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_scheduler/scheduler.c
+++ valgrind-3.9.0/coregrind/m_scheduler/scheduler.c
@@ -766,7 +766,7 @@ static void do_pre_run_checks ( ThreadSt
vg_assert(VG_IS_8_ALIGNED(offsetof(VexGuestAMD64State,guest_RIP)));
# endif
-# if defined(VGA_ppc32) || defined(VGA_ppc64)
+# if defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
/* ppc guest_state vector regs must be 16 byte aligned for
loads/stores. This is important! */
vg_assert(VG_IS_16_ALIGNED(& tst->arch.vex.guest_VSR0));
@@ -1592,7 +1592,7 @@ void VG_(nuke_all_threads_except) ( Thre
#elif defined(VGA_amd64)
# define VG_CLREQ_ARGS guest_RAX
# define VG_CLREQ_RET guest_RDX
-#elif defined(VGA_ppc32) || defined(VGA_ppc64)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
# define VG_CLREQ_ARGS guest_GPR4
# define VG_CLREQ_RET guest_GPR3
#elif defined(VGA_arm)
Index: valgrind-3.9.0/coregrind/m_sigframe/sigframe-ppc64-linux.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_sigframe/sigframe-ppc64-linux.c
+++ valgrind-3.9.0/coregrind/m_sigframe/sigframe-ppc64-linux.c
@@ -31,7 +31,7 @@
The GNU General Public License is contained in the file COPYING.
*/
-#if defined(VGP_ppc64_linux)
+#if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
#include "pub_core_basics.h"
#include "pub_core_vki.h"
@@ -252,7 +252,11 @@ void VG_(sigframe_create)( ThreadId tid,
# undef DO
frame->uc.uc_mcontext.gp_regs[VKI_PT_NIP] = tst->arch.vex.guest_CIA;
+#ifdef VGP_ppc64le_linux
+ frame->uc.uc_mcontext.gp_regs[VKI_PT_MSR] = 0xf033; /* pretty arbitrary */
+#else
frame->uc.uc_mcontext.gp_regs[VKI_PT_MSR] = 0xf032; /* pretty arbitrary */
+#endif
frame->uc.uc_mcontext.gp_regs[VKI_PT_ORIG_R3] = tst->arch.vex.guest_GPR3;
frame->uc.uc_mcontext.gp_regs[VKI_PT_CTR] = tst->arch.vex.guest_CTR;
frame->uc.uc_mcontext.gp_regs[VKI_PT_LNK] = tst->arch.vex.guest_LR;
@@ -388,7 +392,7 @@ void VG_(sigframe_destroy)( ThreadId tid
VG_TRACK( post_deliver_signal, tid, sigNo );
}
-#endif // defined(VGP_ppc64_linux)
+#endif // defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/*--------------------------------------------------------------------*/
/*--- end ---*/
Index: valgrind-3.9.0/coregrind/m_signals.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_signals.c
+++ valgrind-3.9.0/coregrind/m_signals.c
@@ -348,7 +348,7 @@ typedef struct SigQueue {
(srP)->misc.PPC32.r_lr = (uc)->uc_regs->mc_gregs[VKI_PT_LNK]; \
}
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
# define VG_UCONTEXT_INSTR_PTR(uc) ((uc)->uc_mcontext.gp_regs[VKI_PT_NIP])
# define VG_UCONTEXT_STACK_PTR(uc) ((uc)->uc_mcontext.gp_regs[VKI_PT_R1])
/* Dubious hack: if there is an error, only consider the lowest 8
@@ -838,7 +838,7 @@ extern void my_sigreturn(void);
" sc\n" \
".previous\n"
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
# define _MY_SIGRETURN(name) \
".align 2\n" \
".globl my_sigreturn\n" \
Index: valgrind-3.9.0/coregrind/m_stacktrace.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_stacktrace.c
+++ valgrind-3.9.0/coregrind/m_stacktrace.c
@@ -620,7 +620,8 @@ UInt VG_(get_StackTrace_wrk) ( ThreadId
/* -----------------------ppc32/64 ---------------------- */
-#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
UInt VG_(get_StackTrace_wrk) ( ThreadId tid_if_known,
/*OUT*/Addr* ips, UInt max_n_ips,
@@ -648,7 +649,7 @@ UInt VG_(get_StackTrace_wrk) ( ThreadId
Addr fp = sp;
# if defined(VGP_ppc32_linux)
Addr lr = startRegs->misc.PPC32.r_lr;
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
Addr lr = startRegs->misc.PPC64.r_lr;
# endif
Addr fp_min = sp;
@@ -684,7 +685,7 @@ UInt VG_(get_StackTrace_wrk) ( ThreadId
/* fp is %r1. ip is %cia. Note, ppc uses r1 as both the stack and
frame pointers. */
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
redir_stack_size = VEX_GUEST_PPC64_REDIR_STACK_SIZE;
redirs_used = 0;
# endif
Index: valgrind-3.9.0/coregrind/m_syscall.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_syscall.c
+++ valgrind-3.9.0/coregrind/m_syscall.c
@@ -374,7 +374,7 @@ asm(
".previous\n"
);
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* Due to the need to return 65 bits of result, this is completely
different from the ppc32 case. The single arg register points to a
7-word block containing the syscall # and the 6 args. The syscall
@@ -680,7 +680,7 @@ SysRes VG_(do_syscall) ( UWord sysno, UW
UInt cr0so = (UInt)(ret);
return VG_(mk_SysRes_ppc32_linux)( val, cr0so );
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
ULong argblock[7];
argblock[0] = sysno;
argblock[1] = a1;
Index: valgrind-3.9.0/coregrind/m_syswrap/priv_types_n_macros.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_syswrap/priv_types_n_macros.h
+++ valgrind-3.9.0/coregrind/m_syswrap/priv_types_n_macros.h
@@ -91,6 +91,7 @@ typedef
Int o_sysno;
# if defined(VGP_x86_linux) || defined(VGP_amd64_linux) \
|| defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux) \
|| defined(VGP_arm_linux) || defined(VGP_s390x_linux) \
|| defined(VGP_mips64_linux)
Int o_arg1;
Index: valgrind-3.9.0/coregrind/m_syswrap/syscall-ppc64-linux.S
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_syswrap/syscall-ppc64-linux.S
+++ valgrind-3.9.0/coregrind/m_syswrap/syscall-ppc64-linux.S
@@ -27,7 +27,7 @@
The GNU General Public License is contained in the file COPYING.
*/
-#if defined(VGP_ppc64_linux)
+#if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
@@ -165,7 +165,7 @@ ML_(blksys_finished): .quad 5b
/* Let the linker know we don't need an executable stack */
.section .note.GNU-stack,"",@progbits
-#endif // defined(VGP_ppc64_linux)
+#endif // defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/*--------------------------------------------------------------------*/
/*--- end ---*/
Index: valgrind-3.9.0/coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_syswrap/syswrap-linux.c
+++ valgrind-3.9.0/coregrind/m_syswrap/syswrap-linux.c
@@ -242,7 +242,8 @@ static void run_a_thread_NORETURN ( Word
: "n" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcode)
: "rax", "rdi"
);
-#elif defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
{ UInt vgts_empty = (UInt)VgTs_Empty;
asm volatile (
"stw %1,%0\n\t" /* set tst->status = VgTs_Empty */
@@ -373,7 +374,7 @@ void VG_(main_thread_wrapper_NORETURN)(T
sp -= 16;
sp &= ~0xF;
*(UWord *)sp = 0;
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* make a stack frame */
sp -= 112;
sp &= ~((Addr)0xF);
@@ -427,6 +428,7 @@ SysRes ML_(do_fork_clone) ( ThreadId tid
VG_(clone) stuff */
#if defined(VGP_x86_linux) \
|| defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux) \
|| defined(VGP_arm_linux) || defined(VGP_mips32_linux) \
|| defined(VGP_mips64_linux)
res = VG_(do_syscall5)( __NR_clone, flags,
Index: valgrind-3.9.0/coregrind/m_syswrap/syswrap-main.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_syswrap/syswrap-main.c
+++ valgrind-3.9.0/coregrind/m_syswrap/syswrap-main.c
@@ -440,7 +440,7 @@ void getSyscallArgsFromGuestState ( /*OU
canonical->arg7 = 0;
canonical->arg8 = 0;
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
VexGuestPPC64State* gst = (VexGuestPPC64State*)gst_vanilla;
canonical->sysno = gst->guest_GPR0;
canonical->arg1 = gst->guest_GPR3;
@@ -666,7 +666,7 @@ void putSyscallArgsIntoGuestState ( /*IN
gst->guest_GPR7 = canonical->arg5;
gst->guest_GPR8 = canonical->arg6;
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
VexGuestPPC64State* gst = (VexGuestPPC64State*)gst_vanilla;
gst->guest_GPR0 = canonical->sysno;
gst->guest_GPR3 = canonical->arg1;
@@ -787,7 +787,7 @@ void getSyscallStatusFromGuestState ( /*
canonical->sres = VG_(mk_SysRes_ppc32_linux)( gst->guest_GPR3, cr0so );
canonical->what = SsComplete;
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
VexGuestPPC64State* gst = (VexGuestPPC64State*)gst_vanilla;
UInt cr = LibVEX_GuestPPC64_get_CR( gst );
UInt cr0so = (cr >> 28) & 1;
@@ -940,7 +940,7 @@ void putSyscallStatusIntoGuestState ( /*
VG_TRACK( post_reg_write, Vg_CoreSysCall, tid,
OFFSET_ppc32_CR0_0, sizeof(UChar) );
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
VexGuestPPC64State* gst = (VexGuestPPC64State*)gst_vanilla;
UInt old_cr = LibVEX_GuestPPC64_get_CR(gst);
vg_assert(canonical->what == SsComplete);
@@ -1129,7 +1129,7 @@ void getSyscallArgLayout ( /*OUT*/Syscal
layout->uu_arg7 = -1; /* impossible value */
layout->uu_arg8 = -1; /* impossible value */
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
layout->o_sysno = OFFSET_ppc64_GPR0;
layout->o_arg1 = OFFSET_ppc64_GPR3;
layout->o_arg2 = OFFSET_ppc64_GPR4;
@@ -1943,6 +1943,25 @@ void ML_(fixup_guest_state_to_restart_sy
vg_assert(p[0] == 0x44 && p[1] == 0x0 && p[2] == 0x0 && p[3] == 0x2);
}
+#elif defined(VGP_ppc64le_linux)
+ arch->vex.guest_CIA -= 4; // sizeof(ppc32 instr)
+
+ /* Make sure our caller is actually sane, and we're really backing
+ back over a syscall.
+
+ sc == 44 00 00 02
+ */
+ {
+ UChar *p = (UChar *)arch->vex.guest_CIA;
+
+ if (p[3] != 0x44 || p[2] != 0x0 || p[1] != 0x0 || p[0] != 0x02)
+ VG_(message)(Vg_DebugMsg,
+ "?! restarting over syscall at %#llx %02x %02x %02x %02x\n",
+ arch->vex.guest_CIA + 0ULL, p[3], p[2], p[1], p[0]);
+
+ vg_assert(p[3] == 0x44 && p[2] == 0x0 && p[1] == 0x0 && p[0] == 0x2);
+ }
+
#elif defined(VGP_arm_linux)
if (arch->vex.guest_R15T & 1) {
// Thumb mode. SVC is a encoded as
Index: valgrind-3.9.0/coregrind/m_syswrap/syswrap-ppc64-linux.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_syswrap/syswrap-ppc64-linux.c
+++ valgrind-3.9.0/coregrind/m_syswrap/syswrap-ppc64-linux.c
@@ -28,7 +28,7 @@
The GNU General Public License is contained in the file COPYING.
*/
-#if defined(VGP_ppc64_linux)
+#if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
#include "pub_core_basics.h"
#include "pub_core_vki.h"
@@ -1072,7 +1072,7 @@ SyscallTableEntry* ML_(get_linux_syscall
return NULL;
}
-#endif // defined(VGP_ppc64_linux)
+#endif // defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/*--------------------------------------------------------------------*/
/*--- end ---*/
Index: valgrind-3.9.0/coregrind/m_trampoline.S
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_trampoline.S
+++ valgrind-3.9.0/coregrind/m_trampoline.S
@@ -416,7 +416,7 @@ VG_(trampoline_stuff_end):
/*---------------- ppc64-linux ----------------*/
#else
-#if defined(VGP_ppc64_linux)
+#if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
# define UD2_16 trap ; trap ; trap; trap
# define UD2_64 UD2_16 ; UD2_16 ; UD2_16 ; UD2_16
Index: valgrind-3.9.0/coregrind/m_translate.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_translate.c
+++ valgrind-3.9.0/coregrind/m_translate.c
@@ -941,7 +941,7 @@ static void gen_PUSH ( IRSB* bb, IRExpr*
IRTemp t1;
IRExpr* one;
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
Int stack_size = VEX_GUEST_PPC64_REDIR_STACK_SIZE;
Int offB_REDIR_SP = offsetof(VexGuestPPC64State,guest_REDIR_SP);
Int offB_REDIR_STACK = offsetof(VexGuestPPC64State,guest_REDIR_STACK);
@@ -1035,7 +1035,7 @@ static void gen_PUSH ( IRSB* bb, IRExpr*
static IRTemp gen_POP ( IRSB* bb )
{
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
Int stack_size = VEX_GUEST_PPC64_REDIR_STACK_SIZE;
Int offB_REDIR_SP = offsetof(VexGuestPPC64State,guest_REDIR_SP);
Int offB_REDIR_STACK = offsetof(VexGuestPPC64State,guest_REDIR_STACK);
@@ -1127,7 +1127,7 @@ static IRTemp gen_POP ( IRSB* bb )
static void gen_push_and_set_LR_R2 ( IRSB* bb, Addr64 new_R2_value )
{
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
Addr64 bogus_RA = (Addr64)&VG_(ppctoc_magic_redirect_return_stub);
Int offB_GPR2 = offsetof(VexGuestPPC64State,guest_GPR2);
Int offB_LR = offsetof(VexGuestPPC64State,guest_LR);
@@ -1143,7 +1143,7 @@ static void gen_push_and_set_LR_R2 ( IRS
static void gen_pop_R2_LR_then_bLR ( IRSB* bb )
{
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
Int offB_GPR2 = offsetof(VexGuestPPC64State,guest_GPR2);
Int offB_LR = offsetof(VexGuestPPC64State,guest_LR);
Int offB_CIA = offsetof(VexGuestPPC64State,guest_CIA);
@@ -1277,7 +1277,7 @@ Bool mk_preamble__set_NRADDR_to_nraddr (
Int offB_GPR25 = offsetof(VexGuestMIPS64State, guest_r25);
addStmtToIRSB(bb, IRStmt_Put(offB_GPR25, mkU64(closure->readdr)));
# endif
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
addStmtToIRSB(
bb,
IRStmt_Put(
@@ -1513,7 +1513,7 @@ Bool VG_(translate) ( ThreadId tid,
vex_abiinfo.guest_ppc_zap_RZ_at_bl = NULL;
vex_abiinfo.host_ppc32_regalign_int64_args = True;
# endif
-# if defined(VGP_ppc64_linux)
+# if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
vex_abiinfo.guest_ppc_zap_RZ_at_blr = True;
vex_abiinfo.guest_ppc_zap_RZ_at_bl = const_True;
vex_abiinfo.host_ppc_calls_use_fndescrs = True;
Index: valgrind-3.9.0/coregrind/m_ume/elf.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_ume/elf.c
+++ valgrind-3.9.0/coregrind/m_ume/elf.c
@@ -511,7 +511,7 @@ Int VG_(load_ELF)(Int fd, const HChar* n
info->exe_base = minaddr + ebase;
info->exe_end = maxaddr + ebase;
-#if defined(VGP_ppc64_linux)
+#if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
/* On PPC64, a func ptr is represented by a TOC entry ptr. This
TOC entry contains three words; the first word is the function
address, the second word is the TOC ptr (r2), and the third word
Index: valgrind-3.9.0/coregrind/m_ume/macho.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_ume/macho.c
+++ valgrind-3.9.0/coregrind/m_ume/macho.c
@@ -701,6 +701,8 @@ load_fat_file(int fd, vki_off_t offset,
good_arch = CPU_TYPE_POWERPC;
#elif defined(VGA_ppc64)
good_arch = CPU_TYPE_POWERPC64;
+#elif defined(VGA_ppc64le)
+ good_arch = CPU_TYPE_POWERPC64LE;
#elif defined(VGA_x86)
good_arch = CPU_TYPE_I386;
#elif defined(VGA_amd64)
Index: valgrind-3.9.0/coregrind/m_vki.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/m_vki.c
+++ valgrind-3.9.0/coregrind/m_vki.c
@@ -42,7 +42,8 @@
/* ppc32/64-linux determines page size at startup, hence m_vki is
the logical place to store that info. */
-#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
unsigned long VKI_PAGE_SHIFT = 12;
unsigned long VKI_PAGE_SIZE = 1UL << 12;
#endif
Index: valgrind-3.9.0/coregrind/pub_core_aspacemgr.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/pub_core_aspacemgr.h
+++ valgrind-3.9.0/coregrind/pub_core_aspacemgr.h
@@ -345,6 +345,7 @@ extern Bool VG_(am_relocate_nooverlap_cl
// protects such stacks.
#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux) \
|| defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
# define VG_STACK_GUARD_SZB 65536 // 1 or 16 pages
# define VG_STACK_ACTIVE_SZB (4096 * 256) // 1Mb
Index: valgrind-3.9.0/coregrind/pub_core_basics.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/pub_core_basics.h
+++ valgrind-3.9.0/coregrind/pub_core_basics.h
@@ -54,7 +54,7 @@
# include "libvex_guest_amd64.h"
#elif defined(VGA_ppc32)
# include "libvex_guest_ppc32.h"
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
# include "libvex_guest_ppc64.h"
#elif defined(VGA_arm)
# include "libvex_guest_arm.h"
Index: valgrind-3.9.0/coregrind/pub_core_debuginfo.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/pub_core_debuginfo.h
+++ valgrind-3.9.0/coregrind/pub_core_debuginfo.h
@@ -112,7 +112,7 @@ typedef
typedef
struct { Addr r15; Addr r14; Addr r13; Addr r12; Addr r11; Addr r7; }
D3UnwindRegs;
-#elif defined(VGA_ppc32) || defined(VGA_ppc64)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
typedef
UChar /* should be void, but gcc complains at use points */
D3UnwindRegs;
Index: valgrind-3.9.0/coregrind/pub_core_machine.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/pub_core_machine.h
+++ valgrind-3.9.0/coregrind/pub_core_machine.h
@@ -61,6 +61,11 @@
# define VG_ELF_MACHINE EM_PPC64
# define VG_ELF_CLASS ELFCLASS64
# define VG_PLAT_USES_PPCTOC 1
+#elif defined(VGP_ppc64le_linux)
+# define VG_ELF_DATA2XXX ELFDATA2LSB
+# define VG_ELF_MACHINE EM_PPC64
+# define VG_ELF_CLASS ELFCLASS64
+# define VG_PLAT_USES_PPCTOC 1
#elif defined(VGP_arm_linux)
# define VG_ELF_DATA2XXX ELFDATA2LSB
# define VG_ELF_MACHINE EM_ARM
@@ -114,7 +119,7 @@
# define VG_INSTR_PTR guest_CIA
# define VG_STACK_PTR guest_GPR1
# define VG_FRAME_PTR guest_GPR1 // No frame ptr for PPC
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
# define VG_INSTR_PTR guest_CIA
# define VG_STACK_PTR guest_GPR1
# define VG_FRAME_PTR guest_GPR1 // No frame ptr for PPC
@@ -224,7 +229,7 @@ extern Bool VG_(machine_get_cache_info)(
extern void VG_(machine_ppc32_set_clszB)( Int );
#endif
-#if defined(VGA_ppc64)
+#if defined(VGA_ppc64) || defined(VGA_ppc64le)
extern void VG_(machine_ppc64_set_clszB)( Int );
#endif
@@ -256,7 +261,7 @@ extern UInt VG_(machine_ppc32_has_VMX);
/* PPC64: set to 1 if Altivec instructions are supported in
user-space, else 0. Is referenced from assembly code, so do not
change from a 64-bit int. */
-#if defined(VGA_ppc64)
+#if defined(VGA_ppc64) || defined(VGA_ppc64le)
extern ULong VG_(machine_ppc64_has_VMX);
#endif
Index: valgrind-3.9.0/coregrind/pub_core_mallocfree.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/pub_core_mallocfree.h
+++ valgrind-3.9.0/coregrind/pub_core_mallocfree.h
@@ -74,6 +74,7 @@ typedef Int ArenaId;
#elif defined(VGP_amd64_linux) || \
defined(VGP_ppc32_linux) || \
defined(VGP_ppc64_linux) || \
+ defined(VGP_ppc64le_linux) || \
defined(VGP_s390x_linux) || \
defined(VGP_mips64_linux) || \
defined(VGP_x86_darwin) || \
Index: valgrind-3.9.0/coregrind/pub_core_threadstate.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/pub_core_threadstate.h
+++ valgrind-3.9.0/coregrind/pub_core_threadstate.h
@@ -84,7 +84,7 @@ typedef
typedef VexGuestAMD64State VexGuestArchState;
#elif defined(VGA_ppc32)
typedef VexGuestPPC32State VexGuestArchState;
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
typedef VexGuestPPC64State VexGuestArchState;
#elif defined(VGA_arm)
typedef VexGuestARMState VexGuestArchState;
Index: valgrind-3.9.0/coregrind/pub_core_trampoline.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/pub_core_trampoline.h
+++ valgrind-3.9.0/coregrind/pub_core_trampoline.h
@@ -81,7 +81,7 @@ extern UInt VG_(ppc32_linux_REDIR_FOR_s
extern void* VG_(ppc32_linux_REDIR_FOR_strchr)( void*, Int );
#endif
-#if defined(VGP_ppc64_linux)
+#if defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
extern Addr VG_(ppc64_linux_SUBST_FOR_rt_sigreturn);
extern UInt VG_(ppc64_linux_REDIR_FOR_strlen)( void* );
extern void* VG_(ppc64_linux_REDIR_FOR_strchr)( void*, Int );
Index: valgrind-3.9.0/coregrind/pub_core_transtab_asm.h
===================================================================
--- valgrind-3.9.0.orig/coregrind/pub_core_transtab_asm.h
+++ valgrind-3.9.0/coregrind/pub_core_transtab_asm.h
@@ -62,8 +62,8 @@
#elif defined(VGA_s390x) || defined(VGA_arm)
# define VG_TT_FAST_HASH(_addr) ((((UWord)(_addr)) >> 1) & VG_TT_FAST_MASK)
-#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_mips32) \
- || defined(VGA_mips64)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le) \
+ || defined(VGA_mips32) || defined(VGA_mips64)
# define VG_TT_FAST_HASH(_addr) ((((UWord)(_addr)) >> 2) & VG_TT_FAST_MASK)
#else
Index: valgrind-3.9.0/coregrind/vgdb.c
===================================================================
--- valgrind-3.9.0.orig/coregrind/vgdb.c
+++ valgrind-3.9.0/coregrind/vgdb.c
@@ -80,8 +80,8 @@
can be "waken up". PTRACEINVOKER implies some architecture
specific code and/or some OS specific code. */
#if defined(VGA_arm) || defined(VGA_x86) || defined(VGA_amd64) \
- || defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_s390x) \
- || defined(VGA_mips32) || defined(VGA_mips64)
+ || defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le) \
+ || defined(VGA_s390x) || defined(VGA_mips32) || defined(VGA_mips64)
#define PTRACEINVOKER
#else
I_die_here : (PTRACEINVOKER) architecture missing in vgdb.c
@@ -911,7 +911,7 @@ Bool invoke_gdbserver (int pid)
sp = user_mod.regs.uregs[13];
#elif defined(VGA_ppc32)
sp = user_mod.regs.gpr[1];
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
sp = user_mod.regs.gpr[1];
#elif defined(VGA_s390x)
sp = user_mod.regs.gprs[15];
@@ -975,7 +975,7 @@ Bool invoke_gdbserver (int pid)
I_die_here : not x86 or amd64 in x86/amd64 section/
#endif
-#elif defined(VGA_ppc32) || defined(VGA_ppc64)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_ppc64le)
user_mod.regs.nip = shared32->invoke_gdbserver;
user_mod.regs.trap = -1L;
/* put check arg in register 3 */
@@ -1042,7 +1042,7 @@ Bool invoke_gdbserver (int pid)
assert(0); // cannot vgdb a 64 bits executable with a 32 bits exe
#elif defined(VGA_ppc32)
assert(0); // cannot vgdb a 64 bits executable with a 32 bits exe
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
Addr64 func_addr;
Addr64 toc_addr;
int rw;
Index: valgrind-3.9.0/drd/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/drd/Makefile.in
+++ valgrind-3.9.0/drd/Makefile.in
@@ -472,6 +472,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -520,6 +523,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -570,6 +574,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -615,6 +622,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -653,6 +663,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/drd/drd_bitmap.h
===================================================================
--- valgrind-3.9.0.orig/drd/drd_bitmap.h
+++ valgrind-3.9.0/drd/drd_bitmap.h
@@ -139,8 +139,8 @@ Addr make_address(const UWord a1, const
#if defined(VGA_x86) || defined(VGA_ppc32) || defined(VGA_arm) \
|| defined(VGA_mips32)
#define BITS_PER_BITS_PER_UWORD 5
-#elif defined(VGA_amd64) || defined(VGA_ppc64) || defined(VGA_s390x) \
- || defined(VGA_mips64)
+#elif defined(VGA_amd64) || defined(VGA_ppc64) || defined(VGA_ppc64le) \
+ || defined(VGA_s390x) || defined(VGA_mips64)
#define BITS_PER_BITS_PER_UWORD 6
#else
#error Unknown platform.
Index: valgrind-3.9.0/drd/drd_load_store.c
===================================================================
--- valgrind-3.9.0.orig/drd/drd_load_store.c
+++ valgrind-3.9.0/drd/drd_load_store.c
@@ -43,7 +43,7 @@
#define STACK_POINTER_OFFSET OFFSET_amd64_RSP
#elif defined(VGA_ppc32)
#define STACK_POINTER_OFFSET OFFSET_ppc32_GPR1
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
#define STACK_POINTER_OFFSET OFFSET_ppc64_GPR1
#elif defined(VGA_arm)
#define STACK_POINTER_OFFSET OFFSET_arm_R13
Index: valgrind-3.9.0/drd/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/drd/tests/Makefile.in
+++ valgrind-3.9.0/drd/tests/Makefile.in
@@ -696,6 +696,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -744,6 +747,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/drd/tests/unit_bitmap.c
===================================================================
--- valgrind-3.9.0.orig/drd/tests/unit_bitmap.c
+++ valgrind-3.9.0/drd/tests/unit_bitmap.c
@@ -83,7 +83,8 @@ struct { Addr address; SizeT size; BmAcc
{ 0x00ffffffULL, 1, eLoad },
{ 0xffffffffULL - (((1 << ADDR_LSB_BITS) + 1) << ADDR_IGNORED_BITS),
1, eStore },
-#if defined(VGP_amd64_linux) || defined(VGP_ppc64_linux)
+#if defined(VGP_amd64_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
{ 0xffffffffULL - (1 << ADDR_LSB_BITS << ADDR_IGNORED_BITS),
1, eStore },
{ 0xffffffffULL, 1, eStore },
Index: valgrind-3.9.0/exp-bbv/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-bbv/Makefile.in
+++ valgrind-3.9.0/exp-bbv/Makefile.in
@@ -366,6 +366,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -414,6 +417,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -464,6 +468,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -509,6 +516,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -547,6 +557,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/exp-bbv/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-bbv/tests/Makefile.in
+++ valgrind-3.9.0/exp-bbv/tests/Makefile.in
@@ -354,6 +354,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -402,6 +405,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/exp-bbv/tests/amd64-linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-bbv/tests/amd64-linux/Makefile.in
+++ valgrind-3.9.0/exp-bbv/tests/amd64-linux/Makefile.in
@@ -343,6 +343,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -391,6 +394,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/exp-bbv/tests/arm-linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-bbv/tests/arm-linux/Makefile.in
+++ valgrind-3.9.0/exp-bbv/tests/arm-linux/Makefile.in
@@ -326,6 +326,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -374,6 +377,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/exp-bbv/tests/ppc32-linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-bbv/tests/ppc32-linux/Makefile.in
+++ valgrind-3.9.0/exp-bbv/tests/ppc32-linux/Makefile.in
@@ -326,6 +326,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -374,6 +377,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/exp-bbv/tests/x86-linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-bbv/tests/x86-linux/Makefile.in
+++ valgrind-3.9.0/exp-bbv/tests/x86-linux/Makefile.in
@@ -326,6 +326,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -374,6 +377,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/exp-bbv/tests/x86/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-bbv/tests/x86/Makefile.in
+++ valgrind-3.9.0/exp-bbv/tests/x86/Makefile.in
@@ -335,6 +335,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -383,6 +386,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/exp-dhat/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-dhat/Makefile.in
+++ valgrind-3.9.0/exp-dhat/Makefile.in
@@ -390,6 +390,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -438,6 +441,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -488,6 +492,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -533,6 +540,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -571,6 +581,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/exp-sgcheck/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-sgcheck/Makefile.in
+++ valgrind-3.9.0/exp-sgcheck/Makefile.in
@@ -409,6 +409,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -457,6 +460,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -507,6 +511,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -552,6 +559,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -590,6 +600,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/exp-sgcheck/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/exp-sgcheck/tests/Makefile.in
+++ valgrind-3.9.0/exp-sgcheck/tests/Makefile.in
@@ -351,6 +351,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -399,6 +402,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/gdbserver_tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/gdbserver_tests/Makefile.in
+++ valgrind-3.9.0/gdbserver_tests/Makefile.in
@@ -361,6 +361,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -409,6 +412,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/helgrind/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/helgrind/Makefile.in
+++ valgrind-3.9.0/helgrind/Makefile.in
@@ -439,6 +439,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -487,6 +490,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -537,6 +541,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -582,6 +589,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -620,6 +630,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/helgrind/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/helgrind/tests/Makefile.in
+++ valgrind-3.9.0/helgrind/tests/Makefile.in
@@ -567,6 +567,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -615,6 +618,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/helgrind/tests/annotate_hbefore.c
===================================================================
--- valgrind-3.9.0.orig/helgrind/tests/annotate_hbefore.c
+++ valgrind-3.9.0/helgrind/tests/annotate_hbefore.c
@@ -20,7 +20,7 @@
typedef unsigned long int UWord;
-#if defined(VGA_ppc64)
+#if defined(VGA_ppc64) || defined(VGA_ppc64le)
// ppc64
/* return 1 if success, 0 if failure */
Index: valgrind-3.9.0/include/pub_tool_basics.h
===================================================================
--- valgrind-3.9.0.orig/include/pub_tool_basics.h
+++ valgrind-3.9.0/include/pub_tool_basics.h
@@ -269,7 +269,8 @@ static inline Bool sr_EQ ( SysRes sr1, S
#undef VG_LITTLEENDIAN
#if defined(VGA_x86) || defined(VGA_amd64) || defined (VGA_arm) \
- || ((defined(VGA_mips32) || defined(VGA_mips64)) && defined (_MIPSEL))
+ || ((defined(VGA_mips32) || defined(VGA_mips64)) && defined (_MIPSEL)) \
+ || defined(VGA_ppc64le)
# define VG_LITTLEENDIAN 1
#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_s390x) \
|| ((defined(VGA_mips32) || defined(VGA_mips64)) && defined (_MIPSEB))
@@ -281,8 +282,8 @@ static inline Bool sr_EQ ( SysRes sr1, S
/* Regparmness */
#if defined(VGA_x86)
# define VG_REGPARM(n) __attribute__((regparm(n)))
-#elif defined(VGA_amd64) || defined(VGA_ppc32) \
- || defined(VGA_ppc64) || defined(VGA_arm) || defined(VGA_s390x) \
+#elif defined(VGA_amd64) || defined(VGA_ppc32) || defined(VGA_ppc64) \
+ || defined(VGA_ppc64le) || defined(VGA_arm) || defined(VGA_s390x) \
|| defined(VGA_mips32) || defined(VGA_mips64)
# define VG_REGPARM(n) /* */
#else
Index: valgrind-3.9.0/include/pub_tool_libcsetjmp.h
===================================================================
--- valgrind-3.9.0.orig/include/pub_tool_libcsetjmp.h
+++ valgrind-3.9.0/include/pub_tool_libcsetjmp.h
@@ -82,7 +82,7 @@ __attribute__((noreturn))
void VG_MINIMAL_LONGJMP(VG_MINIMAL_JMP_BUF(_env));
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
#define VG_MINIMAL_JMP_BUF(_name) ULong _name [32+1+1]
__attribute__((returns_twice))
Index: valgrind-3.9.0/include/pub_tool_machine.h
===================================================================
--- valgrind-3.9.0.orig/include/pub_tool_machine.h
+++ valgrind-3.9.0/include/pub_tool_machine.h
@@ -53,7 +53,7 @@
# define VG_CLREQ_SZB 20
# define VG_STACK_REDZONE_SZB 0
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
# define VG_MIN_INSTR_SZB 4
# define VG_MAX_INSTR_SZB 4
# define VG_CLREQ_SZB 20
Index: valgrind-3.9.0/include/pub_tool_vkiscnums_asm.h
===================================================================
--- valgrind-3.9.0.orig/include/pub_tool_vkiscnums_asm.h
+++ valgrind-3.9.0/include/pub_tool_vkiscnums_asm.h
@@ -42,7 +42,7 @@
#elif defined(VGP_ppc32_linux)
# include "vki/vki-scnums-ppc32-linux.h"
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64le_linux)
# include "vki/vki-scnums-ppc64-linux.h"
#elif defined(VGP_s390x_linux)
Index: valgrind-3.9.0/include/vki/vki-linux.h
===================================================================
--- valgrind-3.9.0.orig/include/vki/vki-linux.h
+++ valgrind-3.9.0/include/vki/vki-linux.h
@@ -85,7 +85,7 @@
# include "vki-posixtypes-amd64-linux.h"
#elif defined(VGA_ppc32)
# include "vki-posixtypes-ppc32-linux.h"
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
# include "vki-posixtypes-ppc64-linux.h"
#elif defined(VGA_arm)
# include "vki-posixtypes-arm-linux.h"
@@ -209,7 +209,7 @@ typedef unsigned int vki_uint;
# include "vki-amd64-linux.h"
#elif defined(VGA_ppc32)
# include "vki-ppc32-linux.h"
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
# include "vki-ppc64-linux.h"
#elif defined(VGA_arm)
# include "vki-arm-linux.h"
Index: valgrind-3.9.0/lackey/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/lackey/Makefile.in
+++ valgrind-3.9.0/lackey/Makefile.in
@@ -366,6 +366,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -414,6 +417,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -464,6 +468,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -509,6 +516,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -547,6 +557,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/massif/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/massif/Makefile.in
+++ valgrind-3.9.0/massif/Makefile.in
@@ -421,6 +421,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -469,6 +472,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -519,6 +523,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -564,6 +571,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -602,6 +612,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/massif/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/massif/tests/Makefile.in
+++ valgrind-3.9.0/massif/tests/Makefile.in
@@ -404,6 +404,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -452,6 +455,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/Makefile.in
+++ valgrind-3.9.0/memcheck/Makefile.in
@@ -439,6 +439,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -487,6 +490,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -537,6 +541,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -582,6 +589,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -620,6 +630,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/memcheck/mc_machine.c
===================================================================
--- valgrind-3.9.0.orig/memcheck/mc_machine.c
+++ valgrind-3.9.0/memcheck/mc_machine.c
@@ -61,7 +61,7 @@
# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestPPC32State)
#endif
-#if defined(VGA_ppc64)
+#if defined(VGA_ppc64) || defined(VGA_ppc64le)
# include "libvex_guest_ppc64.h"
# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestPPC64State)
#endif
@@ -145,7 +145,7 @@ static Int get_otrack_shadow_offset_wrk
{
/* -------------------- ppc64 -------------------- */
-# if defined(VGA_ppc64)
+# if defined(VGA_ppc64) || defined(VGA_ppc64le)
# define GOF(_fieldname) \
(offsetof(VexGuestPPC64State,guest_##_fieldname))
@@ -1175,7 +1175,7 @@ static Int get_otrack_shadow_offset_wrk
IRType MC_(get_otrack_reg_array_equiv_int_type) ( IRRegArray* arr )
{
/* -------------------- ppc64 -------------------- */
-# if defined(VGA_ppc64)
+# if defined(VGA_ppc64) || defined(VGA_ppc64le)
/* The redir stack. */
if (arr->base == offsetof(VexGuestPPC64State,guest_REDIR_STACK[0])
&& arr->elemTy == Ity_I64
Index: valgrind-3.9.0/memcheck/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/Makefile.in
@@ -85,6 +85,7 @@ DIST_COMMON = $(dist_noinst_SCRIPTS) $(n
@VGCONF_ARCHS_INCLUDE_AMD64_TRUE@am__append_7 = amd64
@VGCONF_ARCHS_INCLUDE_PPC32_TRUE@am__append_8 = ppc32
@VGCONF_ARCHS_INCLUDE_PPC64_TRUE@am__append_9 = ppc64
+@VGCONF_ARCHS_INCLUDE_PPC64LE_TRUE@am__append_9 = ppc64
@VGCONF_ARCHS_INCLUDE_S390X_TRUE@am__append_10 = s390x
# OS-specific tests
@@ -995,6 +996,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -1043,6 +1047,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/tests/amd64-linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/amd64-linux/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/amd64-linux/Makefile.in
@@ -326,6 +326,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -374,6 +377,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/tests/amd64/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/amd64/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/amd64/Makefile.in
@@ -368,6 +368,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -416,6 +419,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/tests/atomic_incs.c
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/atomic_incs.c
+++ valgrind-3.9.0/memcheck/tests/atomic_incs.c
@@ -62,7 +62,7 @@ __attribute__((noinline)) void atomic_ad
: /*trash*/ "memory", "cc", "r15"
);
} while (success != 1);
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
/* Nasty hack. Does correctly atomically do *p += n, but only if p
is 8-aligned -- guaranteed by caller. */
unsigned long success;
@@ -243,7 +243,7 @@ __attribute__((noinline)) void atomic_ad
: /*trash*/ "memory", "cc", "r15"
);
} while (success != 1);
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
/* Nasty hack. Does correctly atomically do *p += n, but only if p
is 8-aligned -- guaranteed by caller. */
unsigned long success;
@@ -421,7 +421,7 @@ __attribute__((noinline)) void atomic_ad
: /*trash*/ "memory", "cc", "r15"
);
} while (success != 1);
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
/* Nasty hack. Does correctly atomically do *p += n, but only if p
is 8-aligned -- guaranteed by caller. */
unsigned long success;
@@ -520,7 +520,7 @@ __attribute__((noinline)) void atomic_ad
"lock; addq %%rbx,(%%rax)" "\n"
: : "S"(&block[0])/* S means "rsi only" */ : "memory","cc","rax","rbx"
);
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64) || defined(VGA_ppc64le)
unsigned long success;
do {
__asm__ __volatile__(
Index: valgrind-3.9.0/memcheck/tests/darwin/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/darwin/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/darwin/Makefile.in
@@ -346,6 +346,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -394,6 +397,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/tests/linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/linux/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/linux/Makefile.in
@@ -372,6 +372,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -420,6 +423,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -461,7 +465,7 @@ EXTRA_DIST = \
getregset.stderr.exp getregset.stdout.exp
stack_switch_LDADD = -lpthread
-timerfd_syscall_LDADD = -lrt
+timerfd_syscall_LDADD = -lrt -lpthread
all: all-am
.SUFFIXES:
Index: valgrind-3.9.0/memcheck/tests/ppc32/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/ppc32/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/ppc32/Makefile.in
@@ -323,6 +323,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -371,6 +374,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/tests/ppc64/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/ppc64/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/ppc64/Makefile.in
@@ -323,6 +323,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -371,6 +374,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/tests/s390x/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/s390x/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/s390x/Makefile.in
@@ -347,6 +347,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -395,6 +398,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/tests/unit_libcbase.c
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/unit_libcbase.c
+++ valgrind-3.9.0/memcheck/tests/unit_libcbase.c
@@ -56,7 +56,8 @@ void test_VG_STREQN(void)
}
// On PPC/Linux VKI_PAGE_SIZE is a variable, not a macro.
-#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
+ || defined(VGP_ppc64le_linux)
unsigned long VKI_PAGE_SIZE = 1UL << 12;
#endif
Index: valgrind-3.9.0/memcheck/tests/x86-linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/x86-linux/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/x86-linux/Makefile.in
@@ -346,6 +346,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -394,6 +397,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/memcheck/tests/x86/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/memcheck/tests/x86/Makefile.in
+++ valgrind-3.9.0/memcheck/tests/x86/Makefile.in
@@ -373,6 +373,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -421,6 +424,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/mpi/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/mpi/Makefile.in
+++ valgrind-3.9.0/mpi/Makefile.in
@@ -338,6 +338,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -386,6 +389,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/Makefile.in
+++ valgrind-3.9.0/none/Makefile.in
@@ -364,6 +364,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -412,6 +415,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -462,6 +466,9 @@ TOOL_LDFLAGS_PPC32_LINUX = \
TOOL_LDFLAGS_PPC64_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+TOOL_LDFLAGS_PPC64LE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
TOOL_LDFLAGS_ARM_LINUX = $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
$(am__append_2)
TOOL_LDFLAGS_S390X_LINUX = \
@@ -507,6 +514,9 @@ LIBREPLACEMALLOC_PPC32_LINUX = \
LIBREPLACEMALLOC_PPC64_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
+
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -545,6 +555,11 @@ LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
$(LIBREPLACEMALLOC_PPC64_LINUX) \
-Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
+ -Wl,--no-whole-archive
+
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
-Wl,--whole-archive \
$(LIBREPLACEMALLOC_ARM_LINUX) \
Index: valgrind-3.9.0/none/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/Makefile.in
+++ valgrind-3.9.0/none/tests/Makefile.in
@@ -85,6 +85,7 @@ DIST_COMMON = $(dist_noinst_SCRIPTS) $(n
@VGCONF_ARCHS_INCLUDE_AMD64_TRUE@am__append_7 = amd64
@VGCONF_ARCHS_INCLUDE_PPC32_TRUE@am__append_8 = ppc32
@VGCONF_ARCHS_INCLUDE_PPC64_TRUE@am__append_9 = ppc64
+@VGCONF_ARCHS_INCLUDE_PPC64LE_TRUE@am__append_9 = ppc64
@VGCONF_ARCHS_INCLUDE_ARM_TRUE@am__append_10 = arm
@VGCONF_ARCHS_INCLUDE_S390X_TRUE@am__append_11 = s390x
@VGCONF_ARCHS_INCLUDE_MIPS32_TRUE@am__append_12 = mips32
@@ -710,6 +711,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -758,6 +762,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
@@ -921,7 +926,7 @@ floored_LDADD = -lm
manythreads_LDADD = -lpthread
@VGCONF_OS_IS_DARWIN_FALSE@nestedfns_CFLAGS = $(AM_CFLAGS)
@VGCONF_OS_IS_DARWIN_TRUE@nestedfns_CFLAGS = $(AM_CFLAGS) -fnested-functions
-@VGCONF_OS_IS_DARWIN_FALSE@mq_LDADD = -lrt
+@VGCONF_OS_IS_DARWIN_FALSE@mq_LDADD = -lrt -lpthread
pth_atfork1_LDADD = -lpthread
pth_blockedsig_LDADD = -lpthread
pth_cancel1_CFLAGS = $(AM_CFLAGS) -Wno-shadow
Index: valgrind-3.9.0/none/tests/amd64/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/amd64/Makefile.in
+++ valgrind-3.9.0/none/tests/amd64/Makefile.in
@@ -559,6 +559,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -607,6 +610,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/arm/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/arm/Makefile.in
+++ valgrind-3.9.0/none/tests/arm/Makefile.in
@@ -376,6 +376,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -424,6 +427,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/darwin/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/darwin/Makefile.in
+++ valgrind-3.9.0/none/tests/darwin/Makefile.in
@@ -328,6 +328,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -376,6 +379,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/linux/Makefile.in
+++ valgrind-3.9.0/none/tests/linux/Makefile.in
@@ -331,6 +331,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -379,6 +382,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/mips32/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/mips32/Makefile.in
+++ valgrind-3.9.0/none/tests/mips32/Makefile.in
@@ -387,6 +387,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -435,6 +438,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/ppc32/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/ppc32/Makefile.in
+++ valgrind-3.9.0/none/tests/ppc32/Makefile.in
@@ -465,6 +465,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -513,6 +516,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/ppc64/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/ppc64/Makefile.in
+++ valgrind-3.9.0/none/tests/ppc64/Makefile.in
@@ -432,6 +432,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -480,6 +483,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/s390x/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/s390x/Makefile.in
+++ valgrind-3.9.0/none/tests/s390x/Makefile.in
@@ -766,6 +766,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -814,6 +817,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/x86-linux/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/x86-linux/Makefile.in
+++ valgrind-3.9.0/none/tests/x86-linux/Makefile.in
@@ -324,6 +324,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -372,6 +375,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/none/tests/x86/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/none/tests/x86/Makefile.in
+++ valgrind-3.9.0/none/tests/x86/Makefile.in
@@ -516,6 +516,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -564,6 +567,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/perf/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/perf/Makefile.in
+++ valgrind-3.9.0/perf/Makefile.in
@@ -357,6 +357,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -405,6 +408,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/tests/Makefile.in
===================================================================
--- valgrind-3.9.0.orig/tests/Makefile.in
+++ valgrind-3.9.0/tests/Makefile.in
@@ -346,6 +346,9 @@ AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
@@ -394,6 +397,7 @@ PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LD
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
Index: valgrind-3.9.0/tests/arch_test.c
===================================================================
--- valgrind-3.9.0.orig/tests/arch_test.c
+++ valgrind-3.9.0/tests/arch_test.c
@@ -27,6 +27,7 @@ char* all_archs[] = {
"amd64",
"ppc32",
"ppc64",
+ "ppc64le",
"arm",
"s390x",
"mips32",
@@ -54,6 +55,9 @@ static Bool go(char* arch)
if ( 0 == strcmp( arch, "ppc32" ) ) return True;
#endif
+#elif defined(VGP_ppc64le_linux)
+ if ( 0 == strcmp( arch, "ppc64" ) ) return True;
+
#elif defined(VGP_s390x_linux)
if ( 0 == strcmp( arch, "s390x" ) ) return True;
Index: valgrind-3.9.0/configure.ac
===================================================================
--- valgrind-3.9.0.orig/configure.ac
+++ valgrind-3.9.0/configure.ac
@@ -179,6 +179,11 @@ case "${host_cpu}" in
ARCH_MAX="ppc64"
;;
+ powerpc64le)
+ AC_MSG_RESULT([ok (${host_cpu})])
+ ARCH_MAX="ppc64le"
+ ;;
+
powerpc)
# On Linux this means only a 32-bit capable CPU.
AC_MSG_RESULT([ok (${host_cpu})])
@@ -513,6 +518,17 @@ case "$ARCH_MAX-$VGCONF_OS" in
fi
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
;;
+ ppc64le-linux)
+ valt_load_address_sec_norml="0xUNSET"
+ valt_load_address_sec_inner="0xUNSET"
+ VGCONF_ARCH_PRI="ppc64le"
+ VGCONF_ARCH_SEC=""
+ VGCONF_PLATFORM_PRI_CAPS="PPC64LE_LINUX"
+ VGCONF_PLATFORM_SEC_CAPS=""
+ valt_load_address_pri_norml="0x38000000"
+ valt_load_address_pri_inner="0x28000000"
+ AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
+ ;;
# Darwin gets identified as 32-bit even when it supports 64-bit.
# (Not sure why, possibly because 'uname' returns "i386"?) Just about
# all Macs support both 32-bit and 64-bit, so we just build both. If
@@ -623,6 +639,8 @@ AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_PPC3
-o x$VGCONF_PLATFORM_SEC_CAPS = xPPC32_LINUX )
AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_PPC64,
test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX )
+AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_PPC64LE,
+ test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX )
AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_ARM,
test x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX )
AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_S390X,
@@ -644,6 +662,8 @@ AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_
-o x$VGCONF_PLATFORM_SEC_CAPS = xPPC32_LINUX)
AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX,
test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX)
+AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX,
+ test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX)
AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_ARM_LINUX,
test x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX)
AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_S390X_LINUX,
@@ -669,6 +689,7 @@ AM_CONDITIONAL(VGCONF_OS_IS_LINUX,
-o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \
+ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX \
@@ -2406,6 +2427,7 @@ if test x$VGCONF_PLATFORM_PRI_CAPS = xX8
mflag_primary=$FLAG_M32
elif test x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \
+ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX ; then
mflag_primary=$FLAG_M64
elif test x$VGCONF_PLATFORM_PRI_CAPS = xX86_DARWIN ; then