From 0ac23253fa040874abc402e5848909e60a8fd44b Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Tue, 29 Nov 2011 15:34:54 +0100 Subject: [PATCH] Fixed s390x build issues --- mozilla-696393.patch | 71 ++++++++++++++++++++++++++++++++++++++++++++ thunderbird.spec | 7 ++++- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 mozilla-696393.patch diff --git a/mozilla-696393.patch b/mozilla-696393.patch new file mode 100644 index 0000000..aed422c --- /dev/null +++ b/mozilla-696393.patch @@ -0,0 +1,71 @@ +diff -up mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp.696393 mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp +--- mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp.696393 2011-11-04 22:34:23.000000000 +0100 ++++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp 2011-11-29 15:25:31.016899861 +0100 +@@ -200,56 +200,22 @@ invoke_copy_to_stack(PRUint32 paramCount + } + } + ++typedef nsresult (*vtable_func)(nsISupports *, PRUint32, PRUint32, PRUint32, PRUint32, double, double); ++ + EXPORT_XPCOM_API(nsresult) + NS_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, + PRUint32 paramCount, nsXPTCVariant* params) + { +- PRUint32 *vtable = *(PRUint32 **)that; +-#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ +- PRUint32 method = vtable[methodIndex]; +-#else /* not G++ V3 ABI */ +- PRUint32 method = vtable[methodIndex + 2]; +-#endif /* G++ V3 ABI */ ++ vtable_func *vtable = *reinterpret_cast(that); ++ vtable_func method = vtable[methodIndex]; + PRUint32 overflow = invoke_count_words (paramCount, params); +- PRUint32 result; ++ PRUint32 *stack_space = reinterpret_cast(__builtin_alloca((overflow + 8 /* 4 32-bits gpr + 2 64-bits fpr */) * 4)); ++ ++ invoke_copy_to_stack(paramCount, params, stack_space, overflow); ++ ++ PRUint32 *d_gpr = stack_space + overflow; ++ double *d_fpr = reinterpret_cast(d_gpr + 4); + +- __asm__ __volatile__ +- ( +- "lr 7,15\n\t" +- "ahi 7,-32\n\t" +- +- "lr 3,%3\n\t" +- "sll 3,2\n\t" +- "lcr 3,3\n\t" +- "l 2,0(15)\n\t" +- "la 15,0(3,7)\n\t" +- "st 2,0(15)\n\t" +- +- "lr 2,%1\n\t" +- "lr 3,%2\n\t" +- "la 4,96(15)\n\t" +- "lr 5,%3\n\t" +- "basr 14,%4\n\t" +- +- "lr 2,%5\n\t" +- "ld 0,112(7)\n\t" +- "ld 2,120(7)\n\t" +- "lm 3,6,96(7)\n\t" +- "basr 14,%6\n\t" +- +- "la 15,32(7)\n\t" +- +- "lr %0,2\n\t" +- : "=r" (result) +- : "r" (paramCount), +- "r" (params), +- "r" (overflow), +- "a" (invoke_copy_to_stack), +- "a" (that), +- "a" (method) +- : "2", "3", "4", "5", "6", "7", "14", "cc", "memory", "%f0", "%f2" +- ); +- +- return result; ++ return method(that, d_gpr[0], d_gpr[1], d_gpr[2], d_gpr[3], d_fpr[0], d_fpr[1]); + } + diff --git a/thunderbird.spec b/thunderbird.spec index 15a79a5..ee8e7fd 100644 --- a/thunderbird.spec +++ b/thunderbird.spec @@ -27,7 +27,7 @@ Summary: Mozilla Thunderbird mail/newsgroup client Name: thunderbird Version: 8.0 -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.mozilla.org/projects/thunderbird/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -55,6 +55,7 @@ Patch8: xulrunner-6.0-secondary-ipc.patch Patch9: mozilla-670719.patch Patch10: xulrunner-2.0-network-link-service.patch Patch11: xulrunner-2.0-NetworkManager09.patch +Patch12: mozilla-696393.patch # Build patches Patch100: xulrunner-install.patch @@ -142,6 +143,7 @@ cd mozilla %patch9 -p1 -b .moz670719 %patch10 -p1 -b .link-service %patch11 -p1 -b .NetworkManager09 +%patch12 -p1 -b .696393 %patch100 -p2 -b .install cd .. @@ -350,6 +352,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #=============================================================================== %changelog +* Tue Nov 29 2011 Jan Horak - 8.0-3 +- Fixed s390x issues + * Thu Nov 10 2011 Jan Horak - 8.0-2 - Enable Mozilla's crash reporter again for all archs - Temporary workaround for langpacks