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() \