From 6396e18f4d49c24283b170310a1892db40c128d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Fri, 22 Aug 2014 12:07:33 +0100 Subject: [PATCH] Related: rhbz#1125588 force existence of argument save area ELFv2 ABI on ppc64 optimises stack allocation (http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01149.html so we're getting no argument save area This now appears to pass the simple cases and onwards to the tricky ones Change-Id: Ie56d148ebea7fcfc023cb7183bc97f09186e66b4 --- bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx index c047ebfc7f1c..33131ea78799 100644 --- a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx @@ -114,7 +114,11 @@ static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex, pMethod += 8 * nVtableIndex; pMethod = *((sal_uInt64 *)pMethod); +#if _CALL_ELF == 2 + typedef void (* FunctionCall )(...); +#else typedef void (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 ); +#endif FunctionCall pFunc = (FunctionCall)pMethod; volatile double dret;