Bug#887494: mozjs52: FTBFS on sparc64: interpreter segfaults

James Clarke jrtc27 at debian.org
Tue Apr 24 23:37:28 BST 2018


On Tue, Apr 24, 2018 at 08:52:58PM +0200, John Paul Adrian Glaubitz wrote:
> On 01/17/2018 01:43 PM, John Paul Adrian Glaubitz wrote:
> > I can whip up a patch for mozjs52 to add sparc64 support if there is
> > a realistic chance for it to be merged. My m68k [3] and sh4 [4] patches for
> > mozjs52 are still without any reply, for example.
>
> Attaching said patch. I hope to get around sending a pull request on Salsa
> the next days.
>
> The patches should be applied in this order:
>
> - sh4-support.patch (#880692)
> - m68k-support.patch (#880693)
> - sparc64-support.patch (this bug report)
>
> I'll also send a clean one for alpha and ia64 (#887496).
>
> Adrian
>
> --
>  .''`.  John Paul Adrian Glaubitz
> : :' :  Debian Developer - glaubitz at debian.org
> `. `'   Freie Universitaet Berlin - glaubitz at physik.fu-berlin.de
>   `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

> Description: Add support for sparc64
> Author: John Paul Adrian Glaubitz <glaubitz at physik.fu-berlin.de>
> Forwarded: https://bugzilla.mozilla.org/show_bug.cgi?id=1275204
> Last-Update: 2017-06-18
>
> Index: firefox-esr-52.2.0esr/js/src/gc/Memory.cpp
> ===================================================================
> --- firefox-esr-52.2.0esr.orig/js/src/gc/Memory.cpp
> +++ firefox-esr-52.2.0esr/js/src/gc/Memory.cpp
> @@ -501,7 +501,7 @@ static inline void*
>  MapMemoryAt(void* desired, size_t length, int prot = PROT_READ | PROT_WRITE,
>              int flags = MAP_PRIVATE | MAP_ANON, int fd = -1, off_t offset = 0)
>  {
> -#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__)
> +#if defined(__ia64__) || (defined(__sparc__) && defined(__arch64__) && (defined(__NetBSD__) || defined(__linux__)))

I don't think you meant to drop the __aarch64__ here (the real commit
upstream keeps it).

>      MOZ_ASSERT((0xffff800000000000ULL & (uintptr_t(desired) + length - 1)) == 0);
>  #endif
> [...]
> Index: firefox-esr-52.2.0esr/js/src/jsapi-tests/testGCAllocator.cpp
> ===================================================================
> --- firefox-esr-52.2.0esr.orig/js/src/jsapi-tests/testGCAllocator.cpp
> +++ firefox-esr-52.2.0esr/js/src/jsapi-tests/testGCAllocator.cpp
> @@ -312,7 +312,7 @@ void unmapPages(void* p, size_t size) {
>  void*
>  mapMemoryAt(void* desired, size_t length)
>  {
> -#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__)
> +#if defined(__ia64__) || (defined(__sparc__) && defined(__arch64__) && (defined(__NetBSD__) || defined(__linux__)))

Ditto.

>      MOZ_RELEASE_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0);
>  #endif
> [...]

James



More information about the pkg-gnome-maintainers mailing list