Hello community,

here is the log from the commit of package MozillaFirefox for openSUSE:Factory 
checked in at 2016-07-01 09:54:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/MozillaFirefox (Old)
 and      /work/SRC/openSUSE:Factory/.MozillaFirefox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "MozillaFirefox"

Changes:
--------
--- /work/SRC/openSUSE:Factory/MozillaFirefox/MozillaFirefox.changes    
2016-06-12 18:51:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.MozillaFirefox.new/MozillaFirefox.changes       
2016-07-01 09:54:06.000000000 +0200
@@ -1,0 +2,29 @@
+Wed Jun 29 09:25:41 UTC 2016 - [email protected]
+
+- Mozilla Firefox 47.0.1:
+  * Selenium WebDriver may cause Firefox to crash at startup
+    (bmo#1280854)
+
+-------------------------------------------------------------------
+Wed Jun 15 07:52:18 UTC 2016 - [email protected]
+
+- mozilla-binutils-visibility.patch to fix build issues with
+  gcc/binutils combination used in Leap 42.2 (boo#984637)
+
+-------------------------------------------------------------------
+Tue Jun 14 08:35:03 UTC 2016 - [email protected]
+
+- Update mozilla-gtk3_20.patch to latest version from Fedora.
+
+-------------------------------------------------------------------
+Mon Jun 13 20:28:01 UTC 2016 - [email protected]
+
+- Fix running on 48bit va aarch64 (bsc#984126)
+  * add patch mozilla-aarch64-48bit-va.patch
+
+-------------------------------------------------------------------
+Mon Jun 13 15:27:13 UTC 2016 - [email protected]
+
+- fix XUL dialog button order under KDE session (boo#984403)
+
+-------------------------------------------------------------------

Old:
----
  firefox-47.0-source.tar.xz
  l10n-47.0.tar.xz

New:
----
  firefox-47.0.1-source.tar.xz
  l10n-47.0.1.tar.xz
  mozilla-aarch64-48bit-va.patch
  mozilla-binutils-visibility.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ MozillaFirefox.spec ++++++
--- /var/tmp/diff_new_pack.ATpX8o/_old  2016-07-01 09:54:19.000000000 +0200
+++ /var/tmp/diff_new_pack.ATpX8o/_new  2016-07-01 09:54:19.000000000 +0200
@@ -19,9 +19,9 @@
 
 # changed with every update
 %define major 47
-%define mainver %major.0
+%define mainver %major.0.1
 %define update_channel release
-%define releasedate 20160606000000
+%define releasedate 20160628000000
 
 # PIE, full relro (x86_64 for now)
 %define build_hardened 1
@@ -148,6 +148,8 @@
 Patch13:        mozilla-check_return.patch
 Patch14:        mozilla-gcc6.patch
 Patch15:        mozilla-exclude-nametablecpp.patch
+Patch16:        mozilla-aarch64-48bit-va.patch
+Patch17:        mozilla-binutils-visibility.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-no-default-ualocale.patch
@@ -262,6 +264,8 @@
 %patch13 -p1
 %patch14 -p1
 %patch15 -p1
+%patch16 -p1
+%patch17 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1


++++++ compare-locales.tar.xz ++++++

++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.ATpX8o/_old  2016-07-01 09:54:20.000000000 +0200
+++ /var/tmp/diff_new_pack.ATpX8o/_new  2016-07-01 09:54:20.000000000 +0200
@@ -7,8 +7,8 @@
 
 CHANNEL="release"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_47_0_RELEASE"
-VERSION="47.0"
+RELEASE_TAG="FIREFOX_47_0_1_RELEASE"
+VERSION="47.0.1"
 
 # mozilla
 if [ -d mozilla ]; then

++++++ firefox-47.0-source.tar.xz -> firefox-47.0.1-source.tar.xz ++++++
/work/SRC/openSUSE:Factory/MozillaFirefox/firefox-47.0-source.tar.xz 
/work/SRC/openSUSE:Factory/.MozillaFirefox.new/firefox-47.0.1-source.tar.xz 
differ: char 26, line 1



++++++ l10n-47.0.tar.xz -> l10n-47.0.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/MozillaFirefox/l10n-47.0.tar.xz 
/work/SRC/openSUSE:Factory/.MozillaFirefox.new/l10n-47.0.1.tar.xz differ: char 
25, line 1

++++++ mozilla-aarch64-48bit-va.patch ++++++

# HG changeset patch
# User Zheng Xu <[email protected]>
# Date 1464657720 -7200
# Node ID dfaafbaaa2919a033c4c0abdd5830f4ea413bed6
# Parent  499f16ca85ec48d1896a1633730715f32bd62140
Bug 1143022 - Manually mmap on arm64 to ensure high 17 bits are clear. 
r=ehoogeveen

There might be 48-bit VA on arm64 depending on kernel configuration.
Manually mmap heap memory to align with the assumption made by JS engine.

diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
--- a/js/src/gc/Memory.cpp
+++ b/js/src/gc/Memory.cpp
@@ -430,17 +430,17 @@ InitMemorySubsystem()
     if (pageSize == 0)
         pageSize = allocGranularity = size_t(sysconf(_SC_PAGESIZE));
 }
 
 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__))
+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || 
defined(__aarch64__)
     MOZ_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0);
 #endif
     void* region = mmap(desired, length, prot, flags, fd, offset);
     if (region == MAP_FAILED)
         return nullptr;
     /*
      * mmap treats the given address as a hint unless the MAP_FIXED flag is
      * used (which isn't usually what you want, as this overrides existing
@@ -480,16 +480,51 @@ MapMemory(size_t length, int prot = PROT
      * as out of memory.
      */
     if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
         if (munmap(region, length))
             MOZ_ASSERT(errno == ENOMEM);
         return nullptr;
     }
     return region;
+#elif defined(__aarch64__)
+   /*
+    * There might be similar virtual address issue on arm64 which depends on
+    * hardware and kernel configurations. But the work around is slightly
+    * different due to the different mmap behavior.
+    *
+    * TODO: Merge with the above code block if this implementation works for
+    * ia64 and sparc64.
+    */
+    const uintptr_t start = UINT64_C(0x0000070000000000);
+    const uintptr_t end   = UINT64_C(0x0000800000000000);
+    const uintptr_t step  = ChunkSize;
+   /*
+    * Optimization options if there are too many retries in practice:
+    * 1. Examine /proc/self/maps to find an available address. This file is
+    *    not always available, however. In addition, even if we examine
+    *    /proc/self/maps, we may still need to retry several times due to
+    *    racing with other threads.
+    * 2. Use a global/static variable with lock to track the addresses we have
+    *    allocated or tried.
+    */
+    uintptr_t hint;
+    void* region = MAP_FAILED;
+    for (hint = start; region == MAP_FAILED && hint + length <= end; hint += 
step) {
+        region = mmap((void*)hint, length, prot, flags, fd, offset);
+        if (region != MAP_FAILED) {
+            if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
+                if (munmap(region, length)) {
+                    MOZ_ASSERT(errno == ENOMEM);
+                }
+                region = MAP_FAILED;
+            }
+        }
+    }
+    return region == MAP_FAILED ? nullptr : region;
 #else
     void* region = MozTaggedAnonymousMmap(nullptr, length, prot, flags, fd, 
offset, "js-gc-heap");
     if (region == MAP_FAILED)
         return nullptr;
     return region;
 #endif
 }
 
diff --git a/js/src/jsapi-tests/testGCAllocator.cpp 
b/js/src/jsapi-tests/testGCAllocator.cpp
--- a/js/src/jsapi-tests/testGCAllocator.cpp
+++ b/js/src/jsapi-tests/testGCAllocator.cpp
@@ -307,48 +307,72 @@ void* mapMemoryAt(void* desired, size_t 
 void* mapMemory(size_t length) { return nullptr; }
 void unmapPages(void* p, size_t size) { }
 
 #elif defined(XP_UNIX)
 
 void*
 mapMemoryAt(void* desired, size_t length)
 {
-#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || 
defined(__aarch64__)
     MOZ_RELEASE_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 
1) == 0);
 #endif
     void* region = mmap(desired, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | 
MAP_ANON, -1, 0);
     if (region == MAP_FAILED)
         return nullptr;
     if (region != desired) {
         if (munmap(region, length))
             MOZ_RELEASE_ASSERT(errno == ENOMEM);
         return nullptr;
     }
     return region;
 }
 
 void*
 mapMemory(size_t length)
 {
-    void* hint = nullptr;
+    int prot = PROT_READ | PROT_WRITE;
+    int flags = MAP_PRIVATE | MAP_ANON;
+    int fd = -1;
+    off_t offset = 0;
+    // The test code must be aligned with the implementation in gc/Memory.cpp.
 #if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
-    hint = (void*)0x0000070000000000ULL;
-#endif
-    void* region = mmap(hint, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | 
MAP_ANON, -1, 0);
+    void* region = mmap((void*)0x0000070000000000, length, prot, flags, fd, 
offset);
     if (region == MAP_FAILED)
         return nullptr;
-#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__))
-    if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000ULL) {
+    if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
         if (munmap(region, length))
             MOZ_RELEASE_ASSERT(errno == ENOMEM);
         return nullptr;
     }
+    return region;
+#elif defined(__aarch64__)
+    const uintptr_t start = UINT64_C(0x0000070000000000);
+    const uintptr_t end   = UINT64_C(0x0000800000000000);
+    const uintptr_t step  = ChunkSize;
+    uintptr_t hint;
+    void* region = MAP_FAILED;
+    for (hint = start; region == MAP_FAILED && hint + length <= end; hint += 
step) {
+        region = mmap((void*)hint, length, prot, flags, fd, offset);
+        if (region != MAP_FAILED) {
+            if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
+                if (munmap(region, length)) {
+                    MOZ_RELEASE_ASSERT(errno == ENOMEM);
+                }
+                region = MAP_FAILED;
+            }
+        }
+    }
+    return region == MAP_FAILED ? nullptr : region;
+#else
+    void* region = mmap(nullptr, length, prot, flags, fd, offset);
+    if (region == MAP_FAILED)
+        return nullptr;
+    return region;
 #endif
-    return region;
 }
 
 void
 unmapPages(void* p, size_t size)
 {
     if (munmap(p, size))
         MOZ_RELEASE_ASSERT(errno == ENOMEM);
 }

++++++ mozilla-binutils-visibility.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <[email protected]>
# Parent  83bc32d997c714b607db1ffa71f02b30e1484a75
From: NetBSD
Subject: Workaround for gcc/binutils combination in Leap 42.2
References:
https://bugzilla.opensuse.org/show_bug.cgi?id=984637

diff --git a/xpcom/components/Module.h b/xpcom/components/Module.h
--- a/xpcom/components/Module.h
+++ b/xpcom/components/Module.h
@@ -120,17 +120,17 @@ struct Module
 #if defined(MOZILLA_INTERNAL_API)
 #  define NSMODULE_NAME(_name) _name##_NSModule
 #  if defined(_MSC_VER)
 #    pragma section(".kPStaticModules$M", read)
 #    pragma comment(linker, "/merge:.kPStaticModules=.rdata")
 #    define NSMODULE_SECTION __declspec(allocate(".kPStaticModules$M"), 
dllexport)
 #  elif defined(__GNUC__)
 #    if defined(__ELF__)
-#      define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), 
visibility("protected")))
+#      define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), 
visibility("default")))
 #    elif defined(__MACH__)
 #      define NSMODULE_SECTION __attribute__((section("__DATA, 
.kPStaticModules"), visibility("default")))
 #    elif defined (_WIN32)
 #      define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), 
dllexport))
 #    endif
 #  endif
 #  if !defined(NSMODULE_SECTION)
 #    error Do not know how to define sections.
++++++ mozilla-gtk3_20.patch ++++++
++++ 920 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/MozillaFirefox/mozilla-gtk3_20.patch
++++ and /work/SRC/openSUSE:Factory/.MozillaFirefox.new/mozilla-gtk3_20.patch

++++++ mozilla-kde.patch ++++++
--- /var/tmp/diff_new_pack.ATpX8o/_old  2016-07-01 09:54:20.000000000 +0200
+++ /var/tmp/diff_new_pack.ATpX8o/_new  2016-07-01 09:54:20.000000000 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  f2726ebfae7cdded8e7ca6030829b0a3fae4e438
+# Parent  d153e2141b97a77b90ba0b9befe2d80330dcd472
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <[email protected]>
 Author: Lubos Lunak <[email protected]>
@@ -337,7 +337,7 @@
 +
 +      <xul:hbox class="dialog-button-box" anonid="buttons"
 +                
xbl:inherits="pack=buttonpack,align=buttonalign,dir=buttondir,orient=buttonorient"
-+#ifdef XP_UNIX
++#ifdef XP_UNIX_GNOME
 +                >
 +        <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
 +        <xul:button dlgtype="help" class="dialog-button" hidden="true"/>

++++++ source-stamp.txt ++++++
--- /var/tmp/diff_new_pack.ATpX8o/_old  2016-07-01 09:54:20.000000000 +0200
+++ /var/tmp/diff_new_pack.ATpX8o/_new  2016-07-01 09:54:20.000000000 +0200
@@ -1,2 +1,2 @@
-REV=b0310cb90fd0
+REV=7f5abf95991b
 REPO=http://hg.mozilla.org/releases/mozilla-release


Reply via email to