Hi Adrian,

On 2016-12-31, at 8:11 PM, John Paul Adrian Glaubitz wrote:

> Source: firefox
> Version: 50.1.0-1
> Severity: normal
> Tags: patch
> User: debian-h...@lists.debian.org
> Usertags: hppa
> 
> The attached patch fixes the problem by fixing the hppa-specific xpcom
> code. Furthermore, it enables the PowerPC atomic operations for hppa
> as these are generic enough to be used on other targets as well.


The attached patch fixes the compile issues and includes the comment that I 
had.  My icedove
build still isn't complete yet but it's well past the point where the compile 
breakage occurred.

Dave
--
John David Anglin       dave.ang...@bell.net


Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 icedove (1:45.5.1-1) unstable; urgency=medium
 .

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2016-12-30

Index: icedove-45.5.1/mozilla/js/src/jit/AtomicOperations.h
===================================================================
--- icedove-45.5.1.orig/mozilla/js/src/jit/AtomicOperations.h
+++ icedove-45.5.1/mozilla/js/src/jit/AtomicOperations.h
@@ -298,6 +298,8 @@ AtomicOperations::isLockfree(int32_t siz
 # include "jit/arm/AtomicOperations-arm.h"
 #elif defined(JS_CODEGEN_ARM64)
 # include "jit/arm64/AtomicOperations-arm64.h"
+#elif defined(__hppa__)
+# include "jit/none/AtomicOperations-ppc.h"
 #elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
 # include "jit/mips-shared/AtomicOperations-mips-shared.h"
 #elif defined(__ppc64__) || defined(__PPC64_)       \
Index: icedove-45.5.1/mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_pa32.cpp
===================================================================
--- icedove-45.5.1.orig/mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_pa32.cpp
+++ icedove-45.5.1/mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_pa32.cpp
@@ -126,11 +126,21 @@ PrepareAndDispatch(nsXPTCStubBase* self,
 
 extern "C" nsresult SharedStub(int);
 
+#ifdef __GNUC__
 #define STUB_ENTRY(n)       \
 nsresult nsXPTCStubBase::Stub##n()  \
 {                           \
+    /* Save arg0 in its stack slot.  This assumes frame size is 64. */ \
+    __asm__ __volatile__("stw %r26,-36-64(%sp)"); \
     return SharedStub(n);   \
 }
+#else
+#define STUB_ENTRY(n)       \
+nsresult nsXPTCStubBase::Stub##n()  \
+{                           \
+    return SharedStub(n);   \
+}
+#endif
 
 #define SENTINEL_ENTRY(n) \
 nsresult nsXPTCStubBase::Sentinel##n() \

Reply via email to