- update to Firefox 30.0 (bnc#881874)

* MFSA 2014-48/CVE-2014-1533/CVE-2014-1534
    (bmo#921622, bmo#967354, bmo#969517, bmo#969549, bmo#973874,
     bmo#978652, bmo#978811, bmo#988719, bmo#990868, bmo#991981,
     bmo#992274, bmo#994907, bmo#995679, bmo#995816, bmo#995817,
     bmo#996536, bmo#996715, bmo#999651, bmo#1000598,
     bmo#1000960, bmo#1002340, bmo#1005578, bmo#1007223,
     bmo#1009952, bmo#1011007)
    Miscellaneous memory safety hazards (rv:30.0)
  * MFSA 2014-49/CVE-2014-1536/CVE-2014-1537/CVE-2014-1538
    (bmo#989994, bmo#999274, bmo#1005584)
    Use-after-free and out of bounds issues found using Address
    Sanitizer
  * MFSA 2014-50/CVE-2014-1539 (bmo#995603)
    Clickjacking through cursor invisability after Flash interaction
  * MFSA 2014-51/CVE-2014-1540 (bmo#978862)
    Use-after-free in Event Listener Manager
  * MFSA 2014-52/CVE-2014-1541 (bmo#1000185)
    Use-after-free with SMIL Animation Controller
  * MFSA 2014-53/CVE-2014-1542 (bmo#991533)
    Buffer overflow in Web Audio Speex resampler
  * MFSA 2014-54/CVE-2014-1543 (bmo#1011859)
    Buffer overflow in Gamepad API
- rebased patches
- removed obsolete patches
  * firefox-browser-css.patch
  * mozilla-aarch64-bmo-962488.patch
  * mozilla-aarch64-bmo-963023.patch
  * mozilla-aarch64-bmo-963024.patch
  * mozilla-aarch64-bmo-963027.patch

OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=384
This commit is contained in:
Wolfgang Rosenauer 2014-06-11 08:41:30 +00:00 committed by Git OBS Bridge
parent 25ebccd71b
commit 83b187e5a4
26 changed files with 2431 additions and 4610 deletions

View File

@ -1,3 +1,45 @@
-------------------------------------------------------------------
Mon Jun 9 08:28:17 UTC 2014 - wr@rosenauer.org
- update to Firefox 30.0 (bnc#881874)
* MFSA 2014-48/CVE-2014-1533/CVE-2014-1534
(bmo#921622, bmo#967354, bmo#969517, bmo#969549, bmo#973874,
bmo#978652, bmo#978811, bmo#988719, bmo#990868, bmo#991981,
bmo#992274, bmo#994907, bmo#995679, bmo#995816, bmo#995817,
bmo#996536, bmo#996715, bmo#999651, bmo#1000598,
bmo#1000960, bmo#1002340, bmo#1005578, bmo#1007223,
bmo#1009952, bmo#1011007)
Miscellaneous memory safety hazards (rv:30.0)
* MFSA 2014-49/CVE-2014-1536/CVE-2014-1537/CVE-2014-1538
(bmo#989994, bmo#999274, bmo#1005584)
Use-after-free and out of bounds issues found using Address
Sanitizer
* MFSA 2014-50/CVE-2014-1539 (bmo#995603)
Clickjacking through cursor invisability after Flash interaction
* MFSA 2014-51/CVE-2014-1540 (bmo#978862)
Use-after-free in Event Listener Manager
* MFSA 2014-52/CVE-2014-1541 (bmo#1000185)
Use-after-free with SMIL Animation Controller
* MFSA 2014-53/CVE-2014-1542 (bmo#991533)
Buffer overflow in Web Audio Speex resampler
* MFSA 2014-54/CVE-2014-1543 (bmo#1011859)
Buffer overflow in Gamepad API
- rebased patches
- removed obsolete patches
* firefox-browser-css.patch
* mozilla-aarch64-bmo-962488.patch
* mozilla-aarch64-bmo-963023.patch
* mozilla-aarch64-bmo-963024.patch
* mozilla-aarch64-bmo-963027.patch
* mozilla-ppc64-xpcom.patch
* mozilla-ppc64le-javascript.patch
* mozilla-ppc64le-libffi.patch
* mozilla-ppc64le-mfbt.patch
* mozilla-ppc64le-webrtc.patch
* mozilla-ppc64le-xpcom.patch
- requires NSPR 4.10.6
- enabled GStreamer 1.0 usage for 13.2 and above
-------------------------------------------------------------------
Sat May 10 06:09:37 UTC 2014 - wr@rosenauer.org

View File

@ -17,15 +17,18 @@
#
%define major 29
%define mainver %major.0.1
%define major 30
%define mainver %major.0
%define update_channel release
%if %suse_version > 1220
%define gstreamer_ver 0.10
%if %suse_version > 1210
%if %suse_version > 1310
%define gstreamer_ver 1.0
%define gstreamer 1
%else
%define gstreamer_ver 0.10
%endif
%endif
Name: MozillaFirefox
BuildRequires: Mesa-devel
@ -51,7 +54,7 @@ BuildRequires: libproxy-devel
%else
BuildRequires: wireless-tools
%endif
BuildRequires: mozilla-nspr-devel >= 4.10.3
BuildRequires: mozilla-nspr-devel >= 4.10.6
BuildRequires: mozilla-nss-devel >= 3.16
BuildRequires: nss-shared-helper-devel
BuildRequires: pkgconfig(libpulse)
@ -59,13 +62,19 @@ BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(gstreamer-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-app-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-plugins-base-%gstreamer_ver)
%if 0%{?gstreamer} == 1
Requires: libgstreamer-1_0-0
Recommends: gstreamer-fluendo-mp3
Recommends: gstreamer-plugin-libav
%else
Requires: libgstreamer-0_10-0
Recommends: gstreamer-0_10-fluendo-mp3
Recommends: gstreamer-0_10-plugins-ffmpeg
%endif
%endif
Version: %{mainver}
Release: 0
%define releasedate 2014050900
%define releasedate 2014060900
Provides: firefox = %{mainver}
Provides: firefox = %{version}-%{release}
Provides: web_browser
@ -108,19 +117,8 @@ Patch11: mozilla-icu-strncat.patch
Patch12: mozilla-arm-disable-edsp.patch
Patch13: mozilla-ppc.patch
Patch14: mozilla-libproxy-compat.patch
Patch15: mozilla-ppc64le-build.patch
Patch16: mozilla-ppc64le-javascript.patch
Patch17: mozilla-ppc64le-libffi.patch
Patch18: mozilla-ppc64le-mfbt.patch
Patch19: mozilla-ppc64le-webrtc.patch
Patch20: mozilla-ppc64le-xpcom.patch
Patch21: mozilla-ppc64-xpcom.patch
# Gecko/Toolkit AArch64 Porting
Patch30: mozilla-aarch64-bmo-810631.patch
Patch31: mozilla-aarch64-bmo-962488.patch
Patch32: mozilla-aarch64-bmo-963027.patch
Patch33: mozilla-aarch64-bmo-963023.patch
Patch34: mozilla-aarch64-bmo-963024.patch
# Firefox/browser
Patch101: firefox-kde.patch
@ -198,7 +196,7 @@ of Firefox.
%package translations-other
Summary: Extra translations for Firefox
Group: System/Localization
Provides: locale(%{name}:ach;af;an;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lij;lt;lv;mai;mk;ml;mr;ms;nn_NO;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;vi;xh;zu)
Provides: locale(%{name}:ach;af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;vi;zu)
Requires: %{name} = %{version}
Obsoletes: %{name}-translations < %{version}-%{release}
@ -261,18 +259,7 @@ cd $RPM_BUILD_DIR/mozilla
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
# Firefox
%patch101 -p1
@ -340,6 +327,9 @@ ac_add_options --disable-debug
ac_add_options --enable-startup-notification
#ac_add_options --enable-chrome-format=jar
ac_add_options --enable-update-channel=%{update_channel}
%if 0%{?gstreamer} == 1
ac_add_options --enable-gstreamer=1.0
%endif
%if %suse_version > 1130
ac_add_options --disable-gnomevfs
ac_add_options --enable-gio

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0bdebb950897ad8ac5b25d45a547bef7e1c17b450f49a128ea9dd77bbb06d3b
size 28408
oid sha256:acccf9b3b483f646264bbcb09ef709955a16e743dd3deb693a189aa775c50ee7
size 28508

View File

@ -2,8 +2,8 @@
CHANNEL="release"
BRANCH="releases/mozilla-$CHANNEL"
RELEASE_TAG="FIREFOX_29_0_1_RELEASE"
VERSION="29.0.1"
RELEASE_TAG="FIREFOX_30_0_RELEASE"
VERSION="30.0"
# mozilla
if [ -d mozilla ]; then

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:46f282cdc7346e148cf5b38c80ddec9c396d6a3167fbbe5ca67466525eeea650
size 120610264

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:90179c3e6b747141f1f8d787135e2dc5879dae1c7be24cf3a8ae36e66e156258
size 121266984

View File

@ -1,10 +1,10 @@
# HG changeset patch
# Parent 5defe7bd2f041c227fe4a65f8a90e6cc42a9a339
# Parent ab6659ccbfbbfed31bce1bcd696a820069b9d7c0
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -133,16 +133,21 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/d
@@ -76,16 +76,21 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/d
endif
ifdef MOZ_WIDGET_GTK
@ -29,7 +29,7 @@ diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
diff --git a/browser/branding/official/Makefile.in b/browser/branding/official/Makefile.in
--- a/browser/branding/official/Makefile.in
+++ b/browser/branding/official/Makefile.in
@@ -42,18 +42,21 @@ BRANDING_FILES := \
@@ -36,18 +36,21 @@ BRANDING_FILES := \
document.icns \
dsstore \
$(NULL)
@ -47,14 +47,14 @@ diff --git a/browser/branding/official/Makefile.in b/browser/branding/official/M
$(NULL)
endif
ifeq ($(OS_ARCH),OS2)
BRANDING_FILES := \
firefox-os2.ico \
document-os2.ico \
BRANDING_DEST := $(DIST)/branding
BRANDING_TARGET := export
INSTALL_TARGETS += BRANDING
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -571,18 +571,21 @@
@@ -611,18 +611,21 @@
@BINPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
@BINPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
@BINPATH@/chrome/toolkit@JAREXT@

View File

@ -2,7 +2,7 @@ diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser
new file mode 100644
--- /dev/null
+++ b/browser/base/content/browser-kde.xul
@@ -0,0 +1,1217 @@
@@ -0,0 +1,1219 @@
+#filter substitution
+<?xml version="1.0"?>
+# -*- Mode: HTML -*-
@ -411,14 +411,9 @@ new file mode 100644
+ <image class="sync-panel-icon"/>
+ <vbox class="sync-panel-inner">
+ <description id="sync-start-panel-title"
+ value="&syncStartPanel.heading;"/>
+ <description id="sync-start-panel-subtitle">
+#ifdef XP_UNIX
+ &syncStartPanel.subTitleUnix;
+#else
+ &syncStartPanel.subTitle;
+#endif
+ </description>
+ value="&syncStartPanel2.heading;"/>
+ <description id="sync-start-panel-subtitle"
+ value="&syncStartPanel2.subTitle;"/>
+ </vbox>
+ </hbox>
+ </panel>
@ -714,6 +709,8 @@ new file mode 100644
+ <image id="mixed-content-blocked-notification-icon" class="notification-anchor-icon" role="button"/>
+ <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"/>
+ <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"/>
+ <image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon" role="button"/>
+ <image id="webRTC-sharingMicrophone-notification-icon" class="notification-anchor-icon" role="button"/>
+ <image id="pointerLock-notification-icon" class="notification-anchor-icon" role="button"/>
+ <image id="servicesInstall-notification-icon" class="notification-anchor-icon" role="button"/>
+ </box>
@ -813,6 +810,12 @@ new file mode 100644
+ oncommand="toggleSidebar('viewBookmarksSidebar');">
+ <observes element="viewBookmarksSidebar" attribute="checked"/>
+ </menuitem>
+ <!-- NB: temporary solution for bug 985024, this should go away soon. -->
+ <menuitem id="BMB_bookmarksShowAllTop"
+ class="menuitem-iconic subviewbutton"
+ label="&showAllBookmarks2.label;"
+ command="Browser:ShowAllBookmarks"
+ key="manBookmarkKb"/>
+ <menuseparator/>
+ <menuitem id="BMB_subscribeToPageMenuitem"
+#ifndef XP_MACOSX
@ -1111,7 +1114,6 @@ new file mode 100644
+ command="Social:ToggleNotifications"
+ label="&social.toggleNotifications.label;"
+ accesskey="&social.toggleNotifications.accesskey;"/>
+ <menuitem class="social-toggle-menuitem" command="Social:Toggle"/>
+ <menuseparator/>
+ <menuseparator class="social-provider-menu" hidden="true"/>
+ <menuitem class="social-addons-menuitem" command="Social:Addons"
@ -1223,7 +1225,7 @@ new file mode 100644
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -66,16 +66,18 @@ browser.jar:
@@ -62,16 +62,18 @@ browser.jar:
content/browser/aboutRobots-icon.png (content/aboutRobots-icon.png)
content/browser/aboutRobots-widget-left.png (content/aboutRobots-widget-left.png)
content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml)
@ -1805,7 +1807,7 @@ new file mode 100644
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -654,19 +654,21 @@
@@ -641,19 +641,21 @@
@BINPATH@/defaults/autoconfig/prefcalls.js
@BINPATH@/browser/defaults/profile/prefs.js

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8bc0f98d4470ab7f9d6703107dae68ebb815e8a450ab1c87066be9b1063a06ee
size 39987132

3
l10n-30.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a8e44a2e8fbe3fc63ae5867b2622f7b1dfdba83796a8533cbbfd494372ed8870
size 40423444

View File

@ -1,80 +0,0 @@
# HG changeset patch
# User Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
# Date 1393440196 18000
# Node ID 6a46f53ad944b44385398822d7bcf7621a785d91
# Parent 0aa56e2a5f816a30da48701f73d03060ee9692b2
Bug 962488 - Update double-conversion for proper AArch64 support. r=froydnj
Fix imported from upstream repository:
https://code.google.com/p/double-conversion/source/detail?r=4e24bb31bcc76d6d218f3056b4c24a109d367561
diff --git a/mfbt/double-conversion/fix-aarch64-macro.patch b/mfbt/double-conversion/fix-aarch64-macro.patch
new file mode 100644
--- /dev/null
+++ b/mfbt/double-conversion/fix-aarch64-macro.patch
@@ -0,0 +1,23 @@
+Backport from upstream.
+
+https://code.google.com/p/double-conversion/source/detail?r=4e24bb31bcc76d6d218f3056b4c24a109d367561
+
+---
+ mfbt/double-conversion/utils.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mfbt/double-conversion/utils.h
++++ b/mfbt/double-conversion/utils.h
+@@ -58,11 +58,11 @@
+ defined(__mips__) || \
+ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \
+ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
+ defined(__SH4__) || defined(__alpha__) || \
+ defined(_MIPS_ARCH_MIPS32R2) || \
+- defined(_AARCH64EL_)
++ defined(__AARCH64EL__)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
+ #if defined(_WIN32)
+ // Windows uses a 64bit wide floating point stack.
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
diff --git a/mfbt/double-conversion/update.sh b/mfbt/double-conversion/update.sh
--- a/mfbt/double-conversion/update.sh
+++ b/mfbt/double-conversion/update.sh
@@ -15,9 +15,12 @@ cp $1/src/*.h ./
# Source
cp $1/src/*.cc ./
patch -p3 < add-mfbt-api-markers.patch
patch -p3 < use-StandardInteger.patch
patch -p3 < use-mozilla-assertions.patch
patch -p3 < use-static_assert.patch
-patch -p3 < ToPrecision-exponential.patch
\ No newline at end of file
+patch -p3 < ToPrecision-exponential.patch
+
+# Merged upstream, part of 2.0.1 version
+patch -p3 < fix-aarch64-macro.patch
diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
--- a/mfbt/double-conversion/utils.h
+++ b/mfbt/double-conversion/utils.h
@@ -55,17 +55,17 @@
#if defined(_M_X64) || defined(__x86_64__) || \
defined(__ARMEL__) || defined(__avr32__) || \
defined(__hppa__) || defined(__ia64__) || \
defined(__mips__) || \
defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \
defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
defined(__SH4__) || defined(__alpha__) || \
defined(_MIPS_ARCH_MIPS32R2) || \
- defined(_AARCH64EL_)
+ defined(__AARCH64EL__)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
#if defined(_WIN32)
// Windows uses a 64bit wide floating point stack.
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#else
#undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
#endif // _WIN32

View File

@ -1,115 +0,0 @@
# HG changeset patch
# User Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
# Date 1392217668 18000
# Node ID 4e9b713f435ade266a68a8d7ba08aad65c3fa6c5
# Parent 282b6e88f9d4c2367a72836f6f9efeab2aadaa58
Bug 963023 - AArch64 support for libevent. r=froydnj
diff --git a/ipc/chromium/src/third_party/libevent-use-non-deprecated-syscalls.patch b/ipc/chromium/src/third_party/libevent-use-non-deprecated-syscalls.patch
new file mode 100644
--- /dev/null
+++ b/ipc/chromium/src/third_party/libevent-use-non-deprecated-syscalls.patch
@@ -0,0 +1,43 @@
+---
+ ipc/chromium/src/third_party/libevent/epoll_sub.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+--- mozilla-central.orig/ipc/chromium/src/third_party/libevent/epoll_sub.c
++++ mozilla-central/ipc/chromium/src/third_party/libevent/epoll_sub.c
+@@ -29,15 +29,24 @@
+ #include <sys/param.h>
+ #include <sys/types.h>
+ #include <sys/syscall.h>
+ #include <sys/epoll.h>
+ #include <unistd.h>
++#include <errno.h>
+
+ int
+ epoll_create(int size)
+ {
++#if !defined(__NR_epoll_create) && defined(__NR_epoll_create1)
++ if (size <= 0) {
++ errno = EINVAL;
++ return -1;
++ }
++ return (syscall(__NR_epoll_create1, 0));
++#else
+ return (syscall(__NR_epoll_create, size));
++#endif
+ }
+
+ int
+ epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
+ {
+@@ -46,7 +55,11 @@ epoll_ctl(int epfd, int op, int fd, stru
+ }
+
+ int
+ epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
+ {
++#if !defined(__NR_epoll_wait) && defined(__NR_epoll_pwait)
++ return (syscall(__NR_epoll_pwait, epfd, events, maxevents, timeout, NULL, 0));
++#else
+ return (syscall(__NR_epoll_wait, epfd, events, maxevents, timeout));
++#endif
+ }
diff --git a/ipc/chromium/src/third_party/libevent/README.mozilla b/ipc/chromium/src/third_party/libevent/README.mozilla
--- a/ipc/chromium/src/third_party/libevent/README.mozilla
+++ b/ipc/chromium/src/third_party/libevent/README.mozilla
@@ -8,8 +8,10 @@ android/event2/event-config.h
These files are taken from libevent-2.0.21-stable built on the development environment indicated by the first path component. You have to run "./configure" and "make" to get all of the pre-processing done. The file can then be found in "include/event2/".
2. This is ugly, prepare yourself. OS X has a weird problem with how the "TAILQ_END(head)" is used, causing a linking error. Just replace all use of the "TAILQ_END(head)" macro with "NULL".
3. Apply "add mac-arc4random-buf.patch", which removes some bad OS X compatibility code. This will allow libevent to compile on all supported versions of OS X.
4. Apply "openbsd-no-arc4random_addrandom.patch", which fixes the build on OpenBSD (which doesnt provide arc4random_addrandom anymore, see #931354)
+
+5. Apply "libevent-use-non-deprecated-syscalls.patch", which fixes the build on AArch64 architecture (which does not provide deprecated syscalls)
diff --git a/ipc/chromium/src/third_party/libevent/epoll_sub.c b/ipc/chromium/src/third_party/libevent/epoll_sub.c
--- a/ipc/chromium/src/third_party/libevent/epoll_sub.c
+++ b/ipc/chromium/src/third_party/libevent/epoll_sub.c
@@ -26,27 +26,40 @@
*/
#include <stdint.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/syscall.h>
#include <sys/epoll.h>
#include <unistd.h>
+#include <errno.h>
int
epoll_create(int size)
{
+#if !defined(__NR_epoll_create) && defined(__NR_epoll_create1)
+ if (size <= 0) {
+ errno = EINVAL;
+ return -1;
+ }
+ return (syscall(__NR_epoll_create1, 0));
+#else
return (syscall(__NR_epoll_create, size));
+#endif
}
int
epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
{
return (syscall(__NR_epoll_ctl, epfd, op, fd, event));
}
int
epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
{
+#if !defined(__NR_epoll_wait) && defined(__NR_epoll_pwait)
+ return (syscall(__NR_epoll_pwait, epfd, events, maxevents, timeout, NULL, 0));
+#else
return (syscall(__NR_epoll_wait, epfd, events, maxevents, timeout));
+#endif
}

View File

@ -1,517 +0,0 @@
# HG changeset patch
# User Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
# Date 1393440196 18000
# Node ID d56b5c1a557348d4ac14a4d1ea7a5b5d240e3647
# Parent 6a46f53ad944b44385398822d7bcf7621a785d91
Bug 963024 - AArch64 support for XPCOM. r=froydnj
diff --git a/xpcom/reflect/xptcall/src/md/unix/moz.build b/xpcom/reflect/xptcall/src/md/unix/moz.build
--- a/xpcom/reflect/xptcall/src/md/unix/moz.build
+++ b/xpcom/reflect/xptcall/src/md/unix/moz.build
@@ -144,16 +144,23 @@ if CONFIG['OS_ARCH'] == 'NetBSD':
if CONFIG['OS_TEST'] in ('amiga', 'atari', 'hp300', 'mac68k', 'mvme68k',
'next68k', 'sun3', 'sun3x', 'x68k'):
SOURCES += [
'xptcinvoke_netbsd_m68k.cpp',
'xptcstubs_netbsd_m68k.cpp'
]
if CONFIG['OS_ARCH'] == 'Linux':
+ if CONFIG['OS_TEST'] == 'aarch64':
+ SOURCES += [
+ 'xptcinvoke_aarch64.cpp',
+ 'xptcinvoke_asm_aarch64.s',
+ 'xptcstubs_aarch64.cpp',
+ 'xptcstubs_asm_aarch64.s',
+ ]
if CONFIG['OS_TEST'] == 'm68k':
SOURCES += [
'xptcinvoke_linux_m68k.cpp',
'xptcstubs_linux_m68k.cpp',
]
if CONFIG['OS_TEST'].find('mips') != -1:
if CONFIG['OS_TEST'].find('mips64') != -1:
SOURCES += [
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_aarch64.cpp b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_aarch64.cpp
new file mode 100644
--- /dev/null
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_aarch64.cpp
@@ -0,0 +1,136 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* Platform specific code to invoke XPCOM methods on native objects */
+
+#include "xptcprivate.h"
+
+#if !defined(__aarch64__)
+#error "This code is for Linux AArch64 only."
+#endif
+
+
+/* "Procedure Call Standard for the ARM 64-bit Architecture" document, sections
+ * "5.4 Parameter Passing" and "6.1.2 Procedure Calling" contain all the
+ * needed information.
+ *
+ * http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
+ */
+
+#ifndef __AARCH64EL__
+#error "Only little endian compatibility was tested"
+#endif
+
+/*
+ * Allocation of integer function arguments initially to registers r1-r7
+ * and then to stack. Handling of 'that' argument which goes to register r0
+ * is handled separately and does not belong here.
+ *
+ * 'ireg_args' - pointer to the current position in the buffer,
+ * corresponding to the register arguments
+ * 'stack_args' - pointer to the current position in the buffer,
+ * corresponding to the arguments on stack
+ * 'end' - pointer to the end of the registers argument
+ * buffer.
+ */
+static inline void alloc_word(uint64_t* &ireg_args,
+ uint64_t* &stack_args,
+ uint64_t* end,
+ uint64_t data)
+{
+ if (ireg_args < end) {
+ *ireg_args = data;
+ ireg_args++;
+ } else {
+ *stack_args = data;
+ stack_args++;
+ }
+}
+
+static inline void alloc_double(double* &freg_args,
+ uint64_t* &stack_args,
+ double* end,
+ double data)
+{
+ if (freg_args < end) {
+ *freg_args = data;
+ freg_args++;
+ } else {
+ memcpy(stack_args, &data, sizeof(data));
+ stack_args++;
+ }
+}
+
+static inline void alloc_float(double* &freg_args,
+ uint64_t* &stack_args,
+ double* end,
+ float data)
+{
+ if (freg_args < end) {
+ memcpy(freg_args, &data, sizeof(data));
+ freg_args++;
+ } else {
+ memcpy(stack_args, &data, sizeof(data));
+ stack_args++;
+ }
+}
+
+
+extern "C" void
+invoke_copy_to_stack(uint64_t* stk, uint64_t *end,
+ uint32_t paramCount, nsXPTCVariant* s)
+{
+ uint64_t *ireg_args = stk;
+ uint64_t *ireg_end = ireg_args + 8;
+ double *freg_args = (double *)ireg_end;
+ double *freg_end = freg_args + 8;
+ uint64_t *stack_args = (uint64_t *)freg_end;
+
+ // leave room for 'that' argument in x0
+ ++ireg_args;
+
+ for (uint32_t i = 0; i < paramCount; i++, s++) {
+ if (s->IsPtrData()) {
+ alloc_word(ireg_args, stack_args, ireg_end, (uint64_t)s->ptr);
+ continue;
+ }
+ // According to the ABI, integral types that are smaller than 8 bytes
+ // are to be passed in 8-byte registers or 8-byte stack slots.
+ switch (s->type) {
+ case nsXPTType::T_FLOAT:
+ alloc_float(freg_args, stack_args, freg_end, s->val.f);
+ break;
+ case nsXPTType::T_DOUBLE:
+ alloc_double(freg_args, stack_args, freg_end, s->val.d);
+ break;
+ case nsXPTType::T_I8: alloc_word(ireg_args, stk, end, s->val.i8); break;
+ case nsXPTType::T_I16: alloc_word(ireg_args, stk, end, s->val.i16); break;
+ case nsXPTType::T_I32: alloc_word(ireg_args, stk, end, s->val.i32); break;
+ case nsXPTType::T_I64: alloc_word(ireg_args, stk, end, s->val.i64); break;
+ case nsXPTType::T_U8: alloc_word(ireg_args, stk, end, s->val.u8); break;
+ case nsXPTType::T_U16: alloc_word(ireg_args, stk, end, s->val.u16); break;
+ case nsXPTType::T_U32: alloc_word(ireg_args, stk, end, s->val.u32); break;
+ case nsXPTType::T_U64: alloc_word(ireg_args, stk, end, s->val.u64); break;
+ case nsXPTType::T_BOOL: alloc_word(ireg_args, stk, end, s->val.b); break;
+ case nsXPTType::T_CHAR: alloc_word(ireg_args, stk, end, s->val.c); break;
+ case nsXPTType::T_WCHAR: alloc_word(ireg_args, stk, end, s->val.wc); break;
+ default:
+ // all the others are plain pointer types
+ alloc_word(ireg_args, stack_args, ireg_end,
+ reinterpret_cast<uint64_t>(s->val.p));
+ break;
+ }
+ }
+}
+
+extern "C" nsresult _NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
+ uint32_t paramCount, nsXPTCVariant* params);
+
+EXPORT_XPCOM_API(nsresult)
+NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
+ uint32_t paramCount, nsXPTCVariant* params)
+{
+ return _NS_InvokeByIndex(that, methodIndex, paramCount, params);
+}
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_aarch64.s b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_aarch64.s
new file mode 100644
--- /dev/null
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_aarch64.s
@@ -0,0 +1,67 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+ .section ".text"
+ .globl _NS_InvokeByIndex
+ .type _NS_InvokeByIndex,@function
+
+/*
+ * _NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
+ * uint32_t paramCount, nsXPTCVariant* params)
+ */
+
+_NS_InvokeByIndex:
+ # set up frame
+ stp x29, x30, [sp,#-32]!
+ mov x29, sp
+ stp x19, x20, [sp,#16]
+
+ # save methodIndex across function calls
+ mov w20, w1
+
+ # end of stack area passed to invoke_copy_to_stack
+ mov x1, sp
+
+ # assume 8 bytes of stack for each argument with 16-byte alignment
+ add w19, w2, #1
+ and w19, w19, #0xfffffffe
+ sub sp, sp, w19, uxth #3
+
+ # temporary place to store args passed in r0-r7,v0-v7
+ sub sp, sp, #128
+
+ # save 'that' on stack
+ str x0, [sp]
+
+ # start of stack area passed to invoke_copy_to_stack
+ mov x0, sp
+ bl invoke_copy_to_stack
+
+ # load arguments passed in r0-r7
+ ldp x6, x7, [sp, #48]
+ ldp x4, x5, [sp, #32]
+ ldp x2, x3, [sp, #16]
+ ldp x0, x1, [sp],#64
+
+ # load arguments passed in v0-v7
+ ldp d6, d7, [sp, #48]
+ ldp d4, d5, [sp, #32]
+ ldp d2, d3, [sp, #16]
+ ldp d0, d1, [sp],#64
+
+ # call the method
+ ldr x16, [x0]
+ add x16, x16, w20, uxth #3
+ ldr x16, [x16]
+ blr x16
+
+ add sp, sp, w19, uxth #3
+ ldp x19, x20, [sp,#16]
+ ldp x29, x30, [sp],#32
+ ret
+
+ .size _NS_InvokeByIndex, . - _NS_InvokeByIndex
+
+
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_aarch64.cpp b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_aarch64.cpp
new file mode 100644
--- /dev/null
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_aarch64.cpp
@@ -0,0 +1,219 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "xptcprivate.h"
+#include "xptiprivate.h"
+
+#ifndef __AARCH64EL__
+#error "Only little endian compatibility was tested"
+#endif
+
+/*
+ * This is for AArch64 ABI
+ *
+ * When we're called, the "gp" registers are stored in gprData and
+ * the "fp" registers are stored in fprData. Each array has 8 regs
+ * but first reg in gprData is a placeholder for 'self'.
+ */
+extern "C" nsresult
+PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, uint64_t* args,
+ uint64_t *gprData, double *fprData)
+{
+#define PARAM_BUFFER_COUNT 16
+#define PARAM_GPR_COUNT 8
+#define PARAM_FPR_COUNT 8
+
+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
+ nsXPTCMiniVariant* dispatchParams = NULL;
+ const nsXPTMethodInfo* info;
+ nsresult result = NS_ERROR_FAILURE;
+
+ NS_ASSERTION(self,"no self");
+
+ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info);
+ NS_ASSERTION(info,"no method info");
+
+ uint32_t paramCount = info->GetParamCount();
+
+ // setup variant array pointer
+ if (paramCount > PARAM_BUFFER_COUNT) {
+ dispatchParams = new nsXPTCMiniVariant[paramCount];
+ } else {
+ dispatchParams = paramBuffer;
+ }
+ NS_ASSERTION(dispatchParams,"no place for params");
+
+ uint64_t* ap = args;
+ uint32_t next_gpr = 1; // skip first arg which is 'self'
+ uint32_t next_fpr = 0;
+ for (uint32_t i = 0; i < paramCount; i++) {
+ const nsXPTParamInfo& param = info->GetParam(i);
+ const nsXPTType& type = param.GetType();
+ nsXPTCMiniVariant* dp = &dispatchParams[i];
+
+ if (param.IsOut() || !type.IsArithmetic()) {
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.p = (void*)gprData[next_gpr++];
+ } else {
+ dp->val.p = (void*)*ap++;
+ }
+ continue;
+ }
+
+ switch (type) {
+ case nsXPTType::T_I8:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.i8 = (int8_t)gprData[next_gpr++];
+ } else {
+ dp->val.i8 = (int8_t)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_I16:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.i16 = (int16_t)gprData[next_gpr++];
+ } else {
+ dp->val.i16 = (int16_t)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_I32:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.i32 = (int32_t)gprData[next_gpr++];
+ } else {
+ dp->val.i32 = (int32_t)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_I64:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.i64 = (int64_t)gprData[next_gpr++];
+ } else {
+ dp->val.i64 = (int64_t)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_U8:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.u8 = (uint8_t)gprData[next_gpr++];
+ } else {
+ dp->val.u8 = (uint8_t)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_U16:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.u16 = (uint16_t)gprData[next_gpr++];
+ } else {
+ dp->val.u16 = (uint16_t)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_U32:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.u32 = (uint32_t)gprData[next_gpr++];
+ } else {
+ dp->val.u32 = (uint32_t)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_U64:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.u64 = (uint64_t)gprData[next_gpr++];
+ } else {
+ dp->val.u64 = (uint64_t)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_FLOAT:
+ if (next_fpr < PARAM_FPR_COUNT) {
+ memcpy(&dp->val.f, &fprData[next_fpr++], sizeof(dp->val.f));
+ } else {
+ memcpy(&dp->val.f, ap++, sizeof(dp->val.f));
+ }
+ break;
+
+ case nsXPTType::T_DOUBLE:
+ if (next_fpr < PARAM_FPR_COUNT) {
+ memcpy(&dp->val.d, &fprData[next_fpr++], sizeof(dp->val.d));
+ } else {
+ memcpy(&dp->val.d, ap++, sizeof(dp->val.d));
+ }
+ break;
+
+ case nsXPTType::T_BOOL:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.b = (bool)gprData[next_gpr++];
+ } else {
+ dp->val.b = (bool)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_CHAR:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.c = (char)gprData[next_gpr++];
+ } else {
+ dp->val.c = (char)*ap++;
+ }
+ break;
+
+ case nsXPTType::T_WCHAR:
+ if (next_gpr < PARAM_GPR_COUNT) {
+ dp->val.wc = (wchar_t)gprData[next_gpr++];
+ } else {
+ dp->val.wc = (wchar_t)*ap++;
+ }
+ break;
+
+ default:
+ NS_ASSERTION(0, "bad type");
+ break;
+ }
+ }
+
+ result = self->mOuter->CallMethod((uint16_t)methodIndex, info, dispatchParams);
+
+ if (dispatchParams != paramBuffer) {
+ delete [] dispatchParams;
+ }
+
+ return result;
+}
+
+// Load w17 with the constant 'n' and branch to SharedStub().
+# define STUB_ENTRY(n) \
+ __asm__ ( \
+ ".section \".text\" \n\t" \
+ ".align 2\n\t" \
+ ".if "#n" < 10 \n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ ".hidden _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
+ "_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
+ ".elseif "#n" < 100 \n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ ".hidden _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
+ "_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
+ ".elseif "#n" < 1000 \n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ ".hidden _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
+ "_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
+ ".else \n\t" \
+ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
+ ".endif \n\t" \
+ "mov w17,#"#n" \n\t" \
+ "b SharedStub \n" \
+);
+
+#define SENTINEL_ENTRY(n) \
+ nsresult nsXPTCStubBase::Sentinel##n() \
+{ \
+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
+ return NS_ERROR_NOT_IMPLEMENTED; \
+}
+
+#include "xptcstubsdef.inc"
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_aarch64.s b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_aarch64.s
new file mode 100644
--- /dev/null
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_aarch64.s
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ .set NGPREGS,8
+ .set NFPREGS,8
+
+ .section ".text"
+ .globl SharedStub
+ .hidden SharedStub
+ .type SharedStub,@function
+SharedStub:
+ stp x29, x30, [sp,#-16]!
+ mov x29, sp
+
+ sub sp, sp, #8*(NGPREGS+NFPREGS)
+ stp x0, x1, [sp, #64+(0*8)]
+ stp x2, x3, [sp, #64+(2*8)]
+ stp x4, x5, [sp, #64+(4*8)]
+ stp x6, x7, [sp, #64+(6*8)]
+ stp d0, d1, [sp, #(0*8)]
+ stp d2, d3, [sp, #(2*8)]
+ stp d4, d5, [sp, #(4*8)]
+ stp d6, d7, [sp, #(6*8)]
+
+ # methodIndex passed from stub
+ mov w1, w17
+
+ add x2, sp, #16+(8*(NGPREGS+NFPREGS))
+ add x3, sp, #8*NFPREGS
+ add x4, sp, #0
+
+ bl PrepareAndDispatch
+
+ add sp, sp, #8*(NGPREGS+NFPREGS)
+ ldp x29, x30, [sp],#16
+ ret
+
+ .size SharedStub, . - SharedStub

View File

@ -1,29 +0,0 @@
# HG changeset patch
# User Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
# Date 1392218661 18000
# Node ID 38fca44b6b86e2f12535900e2084f0378217570f
# Parent 8858624d813a6200b059590c146cf774fc16ff38
Bug 963027 - AArch64 support for WebRTC. r=derf
Index: mozilla/media/webrtc/trunk/webrtc/typedefs.h
===================================================================
--- mozilla.orig/media/webrtc/trunk/webrtc/typedefs.h
+++ mozilla/media/webrtc/trunk/webrtc/typedefs.h
@@ -113,6 +113,16 @@
#define WEBRTC_ARCH_32_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
+#elif defined(__aarch64__)
+#define WEBRTC_ARCH_AARCH64 1
+#define WEBRTC_ARCH_64_BITS 1
+#if defined(__AARCH64EL__)
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#define WEBRTC_LITTLE_ENDIAN
+#elif defined(__AARCH64EB__)
+#define WEBRTC_ARCH_BIG_ENDIAN
+#define WEBRTC_BIG_ENDIAN
+#endif
#elif defined(__alpha__)
#define WEBRTC_ARCH_ALPHA 1
#define WEBRTC_ARCH_64_BITS 1

View File

@ -44,7 +44,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
#include "prefread.h"
#include "prefapi_private_data.h"
@@ -1113,16 +1114,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
@@ -1119,16 +1120,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
static nsresult pref_LoadPrefsInDirList(const char *listId)
{
@ -79,7 +79,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
return NS_OK;
bool hasMore;
@@ -1138,17 +1157,17 @@ static nsresult pref_LoadPrefsInDirList(
@@ -1144,17 +1163,17 @@ static nsresult pref_LoadPrefsInDirList(
nsAutoCString leaf;
path->GetNativeLeafName(leaf);
@ -98,7 +98,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
{
nsZipItemPtr<char> manifest(jarReader, name, true);
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
@@ -1242,28 +1261,40 @@ static nsresult pref_InitInitialObjects(
@@ -1248,26 +1267,38 @@ static nsresult pref_InitInitialObjects(
/* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
static const char* specialFiles[] = {
#if defined(XP_MACOSX)
@ -113,8 +113,6 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
#elif defined(_AIX)
, "aix.js"
#endif
#elif defined(XP_OS2)
"os2pref.js"
#elif defined(XP_BEOS)
"beos.js"
#endif
@ -184,21 +182,21 @@ diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpac
diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in
--- a/toolkit/components/downloads/Makefile.in
+++ b/toolkit/components/downloads/Makefile.in
@@ -4,9 +4,10 @@
@@ -1,9 +1,9 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include $(topsrcdir)/config/rules.mk
CXXFLAGS += $(TK_CFLAGS) -DGOOGLE_PROTOBUF_NO_RTTI
LOCAL_INCLUDES += \
-I$(srcdir)/../protobuf \
+ -I$(topsrcdir)/toolkit/xre \
$(NULL)
CXXFLAGS += $(TK_CFLAGS)
-
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
--- a/toolkit/components/downloads/nsDownloadManager.cpp
+++ b/toolkit/components/downloads/nsDownloadManager.cpp
@@ -41,16 +41,20 @@
@@ -42,16 +42,20 @@
#ifdef XP_WIN
#include <shlobj.h>
#include "nsWindowsHelpers.h"
@ -219,7 +217,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
#include "AndroidBridge.h"
using namespace mozilla::widget::android;
#endif
@@ -2687,16 +2691,25 @@ nsDownload::SetState(DownloadState aStat
@@ -2695,16 +2699,25 @@ nsDownload::SetState(DownloadState aStat
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
// Master pref to control this function.
@ -245,7 +243,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
int64_t goat = PR_Now() - mStartTime;
showTaskbarAlert = goat > alertIntervalUSec;
@@ -2724,19 +2737,20 @@ nsDownload::SetState(DownloadState aStat
@@ -2732,19 +2745,20 @@ nsDownload::SetState(DownloadState aStat
// because if it is, they'll click open the download manager and
// the items they downloaded will have been removed.
alerts->ShowAlertNotification(
@ -270,7 +268,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
--- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn
@@ -55,29 +55,33 @@ toolkit.jar:
@@ -56,29 +56,33 @@ toolkit.jar:
content/global/viewZoomOverlay.js (viewZoomOverlay.js)
*+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml)
content/global/bindings/browser.xml (widgets/browser.xml)
@ -308,7 +306,7 @@ diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/di
new file mode 100644
--- /dev/null
+++ b/toolkit/content/widgets/dialog-kde.xml
@@ -0,0 +1,451 @@
@@ -0,0 +1,449 @@
+<?xml version="1.0"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
@ -341,7 +339,7 @@ new file mode 100644
+ <xul:button dlgtype="cancel" class="dialog-button"/>
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
+#elif XP_UNIX
+ pack="end">
+ >
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1" hidden="true"/>
@ -728,8 +726,6 @@ new file mode 100644
+ </implementation>
+
+ <handlers>
+ <handler event="keypress" keycode="VK_ENTER"
+ group="system" action="this._hitEnter(event);"/>
+ <handler event="keypress" keycode="VK_RETURN"
+ group="system" action="this._hitEnter(event);"/>
+ <handler event="keypress" keycode="VK_ESCAPE" group="system">
@ -1350,7 +1346,7 @@ new file mode 100644
+ <xul:button dlgtype="cancel" class="dialog-button" icon="cancel"/>
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
+#elif XP_UNIX
+ pack="end">
+ >
+ <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1"/>
@ -2197,14 +2193,14 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
--- a/toolkit/xre/moz.build
+++ b/toolkit/xre/moz.build
@@ -45,17 +45,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
@@ -43,17 +43,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
GENERATED_SOURCES += [
'moc_nsNativeAppSupportQt.cpp',
]
SOURCES += [
'nsNativeAppSupportQt.cpp',
'nsQAppInstance.cpp',
]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'os2':
SOURCES += [
'nsNativeAppSupportOS2.cpp',
]
elif CONFIG['MOZ_ENABLE_GTK']:
+ EXPORTS += ['nsKDEUtils.h']
UNIFIED_SOURCES += [
@ -2617,7 +2613,7 @@ new file mode 100644
diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
--- a/uriloader/exthandler/Makefile.in
+++ b/uriloader/exthandler/Makefile.in
@@ -19,9 +19,10 @@ endif
@@ -6,9 +6,10 @@
ifdef MOZ_ENABLE_DBUS
OS_INCLUDES += $(TK_CFLAGS) $(MOZ_DBUS_CFLAGS)
endif
@ -2631,7 +2627,7 @@ diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
--- a/uriloader/exthandler/moz.build
+++ b/uriloader/exthandler/moz.build
@@ -81,17 +81,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
@@ -80,17 +80,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
else:
# These files can't be built in unified mode because they force NSPR logging.
SOURCES += [
@ -3440,10 +3436,10 @@ diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
diff --git a/xpcom/components/Makefile.in b/xpcom/components/Makefile.in
--- a/xpcom/components/Makefile.in
+++ b/xpcom/components/Makefile.in
@@ -14,9 +14,10 @@ LOCAL_INCLUDES = \
-I$(topsrcdir)/chrome/src \
-I$(topsrcdir)/modules/libjar \
$(NULL)
@@ -2,9 +2,10 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include $(topsrcdir)/config/rules.mk
@ -3583,19 +3579,6 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
if (directive->regfunc) {
if (GeckoProcessType_Default != XRE_GetProcessType())
diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
--- a/xpcom/io/Makefile.in
+++ b/xpcom/io/Makefile.in
@@ -1,8 +1,8 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
MOZILLA_INTERNAL_API = 1
include $(topsrcdir)/config/rules.mk
-LOCAL_INCLUDES += -I..
+LOCAL_INCLUDES += -I.. -I$(topsrcdir)/toolkit/xre
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@ -3617,7 +3600,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
#include "prmem.h"
#include "plbase64.h"
@@ -1811,46 +1812,52 @@ nsLocalFile::SetPersistentDescriptor(con
@@ -1813,46 +1814,52 @@ nsLocalFile::SetPersistentDescriptor(con
return InitWithNativePath(aPersistentDescriptor);
#endif
}
@ -3684,7 +3667,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
return rv;
}
return NS_ERROR_FAILURE;
@@ -1858,16 +1865,23 @@ nsLocalFile::Reveal()
@@ -1860,16 +1867,23 @@ nsLocalFile::Reveal()
return NS_ERROR_FAILURE;
#endif
}

View File

@ -1,12 +1,12 @@
# HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent df748bfc0eaca6dedf086cfd7167392416bfae27
# Parent 13eb644c1216aed92b29dbc63fc26ce66f98c66c
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleService.cpp
--- a/intl/locale/src/nsLocaleService.cpp
+++ b/intl/locale/src/nsLocaleService.cpp
@@ -127,16 +127,17 @@ nsLocaleService::nsLocaleService(void)
@@ -122,16 +122,17 @@ nsLocaleService::nsLocaleService(void)
nsRefPtr<nsLocale> resultLocale(new nsLocale());
NS_ENSURE_TRUE_VOID(resultLocale);
@ -24,7 +24,7 @@ diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleServi
for( i = 0; i < LocaleListLength; i++ ) {
nsresult result;
@@ -155,16 +156,21 @@ nsLocaleService::nsLocaleService(void)
@@ -150,16 +151,21 @@ nsLocaleService::nsLocaleService(void)
} else {
CopyASCIItoUTF16(lang, platformLocale);
result = nsPosixLocale::GetXPLocale(lang, xpLocale);
@ -45,4 +45,4 @@ diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleServi
mApplicationLocale = do_QueryInterface(resultLocale);
#endif // XP_UNIX
#ifdef XP_OS2

View File

@ -1,16 +0,0 @@
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S
@@ -41,6 +41,11 @@ SharedStub:
.section ".text"
.align 2
.globl SharedStub
+ # Make the symbol hidden so that the branch from the stub does
+ # not go via a PLT. This is not only better for performance,
+ # but may be necessary to avoid linker errors since there is
+ # no place to restore the TOC register in a sibling call.
+ .hidden SharedStub
.section ".opd","aw"
.align 3

File diff suppressed because it is too large Load Diff

View File

@ -1,105 +0,0 @@
# HG changeset patch
# Parent e6f9fc7c1611990ed9fdafd3ff19c79fd356a1d6
# User Ulrich Weigand <uweigand@de.ibm.com>
Bug 976648 - powerpc64le-linux support - JavaScript build/config
diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h
--- a/js/src/assembler/wtf/Platform.h
+++ b/js/src/assembler/wtf/Platform.h
@@ -160,26 +160,32 @@
/* WTF_CPU_PPC - PowerPC 32-bit */
#if defined(__ppc__) \
|| defined(__PPC__) \
|| defined(__powerpc__) \
|| defined(__powerpc) \
|| defined(__POWERPC__) \
|| defined(_M_PPC) \
|| defined(__PPC)
+#if !defined(__ppc64__) && !defined(__PPC64__)
#define WTF_CPU_PPC 1
+#endif
+#if !defined(__LITTLE_ENDIAN__)
#define WTF_CPU_BIG_ENDIAN 1
#endif
+#endif
/* WTF_CPU_PPC64 - PowerPC 64-bit */
#if defined(__ppc64__) \
|| defined(__PPC64__)
#define WTF_CPU_PPC64 1
+#if !defined(__LITTLE_ENDIAN__)
#define WTF_CPU_BIG_ENDIAN 1
#endif
+#endif
/* WTF_CPU_SH4 - SuperH SH-4 */
#if defined(__SH4__)
#define WTF_CPU_SH4 1
#endif
/* WTF_CPU_SPARC32 - SPARC 32-bit */
#if defined(__sparc) && !defined(__arch64__) || defined(__sparcv8)
diff --git a/js/src/configure.in b/js/src/configure.in
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -923,17 +923,17 @@ esac
# Only set CPU_ARCH if we recognize the value of OS_TEST
case "$OS_TEST" in
*86 | i86pc)
CPU_ARCH=x86
;;
-powerpc64 | ppc64)
+powerpc64 | ppc64 | powerpc64le | ppc64le)
CPU_ARCH=ppc64
;;
powerpc | ppc | rs6000)
CPU_ARCH=ppc
;;
Alpha | alpha | ALPHA)
diff --git a/js/src/jscpucfg.h b/js/src/jscpucfg.h
--- a/js/src/jscpucfg.h
+++ b/js/src/jscpucfg.h
@@ -22,17 +22,17 @@
# ifdef __WATCOMC__
# define HAVE_VA_LIST_AS_ARRAY 1
# endif
# define IS_LITTLE_ENDIAN 1
# undef IS_BIG_ENDIAN
-#elif defined(__APPLE__)
+#elif defined(__APPLE__) || defined(__powerpc__) || defined(__ppc__)
# if __LITTLE_ENDIAN__
# define IS_LITTLE_ENDIAN 1
# undef IS_BIG_ENDIAN
# elif __BIG_ENDIAN__
# undef IS_LITTLE_ENDIAN
# define IS_BIG_ENDIAN 1
# endif
@@ -84,18 +84,17 @@
# if defined(_STACK_GROWS_UPWARD)
# define JS_STACK_GROWTH_DIRECTION (1)
# elif defined(_STACK_GROWS_DOWNWARD)
# define JS_STACK_GROWTH_DIRECTION (-1)
# endif
# endif
#elif defined(__sparc) || defined(__sparc__) || \
- defined(_POWER) || defined(__powerpc__) || \
- defined(__ppc__) || defined(__hppa) || \
+ defined(_POWER) || defined(__hppa) || \
defined(_MIPSEB) || defined(_BIG_ENDIAN)
/* IA64 running HP-UX will have _BIG_ENDIAN defined.
* IA64 running Linux will have endian.h and be handled above.
*/
# undef IS_LITTLE_ENDIAN
# define IS_BIG_ENDIAN 1
#else /* !defined(__sparc) && !defined(__sparc__) && ... */

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +0,0 @@
# HG changeset patch
# Parent 46508a61b834f02575c116a508aa37b66d50bd20
# User Ulrich Weigand <uweigand@de.ibm.com>
Bug 976648 - powerpc64le-linux support - mfbt endian config
diff --git a/mfbt/Endian.h b/mfbt/Endian.h
--- a/mfbt/Endian.h
+++ b/mfbt/Endian.h
@@ -86,17 +86,17 @@
# error "CPU type is unknown"
# endif
#elif defined(_WIN32)
# if defined(_M_IX86)
# define MOZ_LITTLE_ENDIAN 1
# else
# error "CPU type is unknown"
# endif
-#elif defined(__APPLE__)
+#elif defined(__APPLE__) || defined(__powerpc__) || defined(__ppc__)
# if __LITTLE_ENDIAN__
# define MOZ_LITTLE_ENDIAN 1
# elif __BIG_ENDIAN__
# define MOZ_BIG_ENDIAN 1
# endif
#elif defined(__GNUC__) && \
defined(__BYTE_ORDER__) && \
defined(__ORDER_LITTLE_ENDIAN__) && \
@@ -114,18 +114,17 @@
# endif
/*
* We can't include useful headers like <endian.h> or <sys/isa_defs.h>
* here because they're not present on all platforms. Instead we have
* this big conditional that ideally will catch all the interesting
* cases.
*/
#elif defined(__sparc) || defined(__sparc__) || \
- defined(_POWER) || defined(__powerpc__) || \
- defined(__ppc__) || defined(__hppa) || \
+ defined(_POWER) || defined(__hppa) || \
defined(_MIPSEB) || defined(__ARMEB__) || \
defined(__s390__) || defined(__AARCH64EB__) || \
(defined(__sh__) && defined(__LITTLE_ENDIAN__)) || \
(defined(__ia64) && defined(__BIG_ENDIAN__))
# define MOZ_BIG_ENDIAN 1
#elif defined(__i386) || defined(__i386__) || \
defined(__x86_64) || defined(__x86_64__) || \
defined(_MIPSEL) || defined(__ARMEL__) || \

View File

@ -1,42 +0,0 @@
# HG changeset patch
# Parent acbe154db4c912f3ac853c0671cd3d5e52b1e716
# User Ulrich Weigand <uweigand@de.ibm.com>
Bug 976648 - powerpc64le-linux support - WebRTC endian config
diff --git a/media/webrtc/trunk/webrtc/typedefs.h b/media/webrtc/trunk/webrtc/typedefs.h
--- a/media/webrtc/trunk/webrtc/typedefs.h
+++ b/media/webrtc/trunk/webrtc/typedefs.h
@@ -47,23 +47,33 @@
//#define WEBRTC_ARCH_ARM_FAMILY
//#define WEBRTC_ARCH_ARMEL
#define WEBRTC_ARCH_32_BITS
#define WEBRTC_ARCH_LITTLE_ENDIAN
#define WEBRTC_LITTLE_ENDIAN
#elif defined(__powerpc64__)
#define WEBRTC_ARCH_PPC64 1
#define WEBRTC_ARCH_64_BITS 1
+#ifdef __LITTLE_ENDIAN__
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#define WEBRTC_LITTLE_ENDIAN
+#else
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
+#endif
#elif defined(__ppc__) || defined(__powerpc__)
#define WEBRTC_ARCH_PPC 1
#define WEBRTC_ARCH_32_BITS 1
+#ifdef __LITTLE_ENDIAN__
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#define WEBRTC_LITTLE_ENDIAN
+#else
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
+#endif
#elif defined(__sparc64__)
#define WEBRTC_ARCH_SPARC 1
#define WEBRTC_ARCH_64_BITS 1
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
#elif defined(__sparc__)
#define WEBRTC_ARCH_SPARC 1
#define WEBRTC_ARCH_32_BITS 1

View File

@ -1,298 +0,0 @@
# HG changeset patch
# Parent 571f8d1f1501d31bd7c0d0affdc7cdc8b21203a0
# User Ulrich Weigand <uweigand@de.ibm.com>
Bug 976648 - powerpc64le-linux support - xptcall port
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/moz.build
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build
@@ -224,12 +224,12 @@ if CONFIG['OS_TEST'] == 'powerpc':
'xptcstubs_ppc_linux.cpp',
]
-if CONFIG['OS_TEST'] == 'powerpc64':
+if CONFIG['OS_TEST'] in ('powerpc64', 'powerpc64le'):
if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD'):
SOURCES += [
- 'xptcinvoke_asm_ppc64_linux.s',
+ 'xptcinvoke_asm_ppc64_linux.S',
'xptcinvoke_ppc64_linux.cpp',
- 'xptcstubs_asm_ppc64_linux.s',
+ 'xptcstubs_asm_ppc64_linux.S',
'xptcstubs_ppc64_linux.cpp',
]
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S
rename from xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
rename to xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S
--- a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S
@@ -17,12 +17,38 @@
.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
.set f30,30; .set f31,31
+# The ABI defines a fixed stack frame area of 4 doublewords (ELFv2)
+# or 6 doublewords (ELFv1); the last of these doublewords is used
+# as TOC pointer save area. The fixed area is followed by a parameter
+# save area of 8 doublewords (used for vararg routines), followed
+# by space for parameters passed on the stack.
+#
+# We set STACK_TOC to the offset of the TOC pointer save area, and
+# STACK_PARAMS to the offset of the first on-stack parameter.
+
+#if _CALL_ELF == 2
+#define STACK_TOC 24
+#define STACK_PARAMS 96
+#else
+#define STACK_TOC 40
+#define STACK_PARAMS 112
+#endif
#
# NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
# uint32_t paramCount, nsXPTCVariant* params)
#
+#if _CALL_ELF == 2
+ .section ".text"
+ .type NS_InvokeByIndex,@function
+ .globl NS_InvokeByIndex
+ .align 2
+NS_InvokeByIndex:
+0: addis 2,12,(.TOC.-0b)@ha
+ addi 2,2,(.TOC.-0b)@l
+ .localentry NS_InvokeByIndex,.-NS_InvokeByIndex
+#else
.section ".toc","aw"
.section ".text"
.align 2
@@ -34,6 +60,7 @@ NS_InvokeByIndex:
.previous
.type NS_InvokeByIndex,@function
.NS_InvokeByIndex:
+#endif
mflr 0
std 0,16(r1)
@@ -50,13 +77,12 @@ NS_InvokeByIndex:
# we don't actually need stack space for those. We must ensure
# that the stack remains 16-byte aligned.
#
- # | ..128-byte stack frame.. | | 7 GP | 13 FP | 3 NV |
- # | |(params)........| regs | regs | regs |
- # (r1)...........(+112)....(+128)
- # (-23*8).(-16*8).(-3*8)..(r31)
+ # | (fixed area + | | 7 GP | 13 FP | 3 NV |
+ # | param. save) |(params)........| regs | regs | regs |
+ # (r1)......(+STACK_PARAMS)... (-23*8).(-16*8).(-3*8)..(r31)
# +stack frame, -unused stack params, +regs storage, +1 for alignment
- addi r7,r5,((112/8)-7+7+13+3+1)
+ addi r7,r5,((STACK_PARAMS/8)-7+7+13+3+1)
rldicr r7,r7,3,59 # multiply by 8 and mask with ~15
neg r7,r7
stdux r1,r1,r7
@@ -67,12 +93,13 @@ NS_InvokeByIndex:
# uint64_t* d))
# r5, r6 are passed through intact (paramCount, params)
- # r7 (d) has to be r1+112 -- where parameters are passed on the stack.
+ # r7 (d) has to be r1+STACK_PARAMS
+ # -- where parameters are passed on the stack.
# r3, r4 are above that, easier to address from r31 than from r1
subi r3,r31,(23*8) # r3 --> GPRS
subi r4,r31,(16*8) # r4 --> FPRS
- addi r7,r1,112 # r7 --> params
+ addi r7,r1,STACK_PARAMS # r7 --> params
bl invoke_copy_to_stack
nop
@@ -83,14 +110,18 @@ NS_InvokeByIndex:
sldi r30,r30,3 # Find function descriptor
add r9,r9,r30
- ld r9,0(r9)
+ ld r12,0(r9)
- ld r0,0(r9) # Actual address from fd.
- std r2,40(r1) # Save r2 (TOC pointer)
+ std r2,STACK_TOC(r1) # Save r2 (TOC pointer)
+#if _CALL_ELF == 2
+ mtctr r12
+#else
+ ld r0,0(r12) # Actual address from fd.
mtctr 0
- ld r11,16(r9) # Environment pointer from fd.
- ld r2,8(r9) # TOC pointer from fd.
+ ld r11,16(r12) # Environment pointer from fd.
+ ld r2,8(r12) # TOC pointer from fd.
+#endif
# Load FP and GP registers as required
ld r4, -(23*8)(r31)
@@ -117,7 +148,7 @@ NS_InvokeByIndex:
bctrl # Do it
- ld r2,40(r1) # Load our own TOC pointer
+ ld r2,STACK_TOC(r1) # Load our own TOC pointer
ld r1,0(r1) # Revert stack frame
ld 0,16(r1) # Reload lr
ld 29,-24(r1) # Restore NVGPRS
@@ -126,7 +157,11 @@ NS_InvokeByIndex:
mtlr 0
blr
+#if _CALL_ELF == 2
+ .size NS_InvokeByIndex,.-NS_InvokeByIndex
+#else
.size NS_InvokeByIndex,.-.NS_InvokeByIndex
+#endif
# Magic indicating no need for an executable stack
.section .note.GNU-stack, "", @progbits ; .previous
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
@@ -74,7 +74,9 @@ invoke_copy_to_stack(uint64_t* gpregs,
fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles
} else {
float *p = (float *)d;
+#ifndef __LITTLE_ENDIAN__
p++;
+#endif
*p = s->val.f;
}
}
diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S
rename from xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
rename to xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S
--- a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S
@@ -17,6 +17,27 @@
.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
.set f30,30; .set f31,31
+#if _CALL_ELF == 2
+#define STACK_PARAMS 96
+#else
+#define STACK_PARAMS 112
+#endif
+
+#if _CALL_ELF == 2
+ .section ".text"
+ .type SharedStub,@function
+ .globl SharedStub
+ # Make the symbol hidden so that the branch from the stub does
+ # not go via a PLT. This is not only better for performance,
+ # but may be necessary to avoid linker errors since there is
+ # no place to restore the TOC register in a sibling call.
+ .hidden SharedStub
+ .align 2
+SharedStub:
+0: addis 2,12,(.TOC.-0b)@ha
+ addi 2,2,(.TOC.-0b)@l
+ .localentry SharedStub,.-SharedStub
+#else
.section ".text"
.align 2
.globl SharedStub
@@ -29,6 +50,7 @@ SharedStub:
.type SharedStub,@function
.SharedStub:
+#endif
mflr r0
std r4, -56(r1) # Save all GPRS
@@ -55,7 +77,7 @@ SharedStub:
subi r6,r1,56 # r6 --> gprData
subi r7,r1,160 # r7 --> fprData
- addi r5,r1,112 # r5 --> extra stack args
+ addi r5,r1,STACK_PARAMS # r5 --> extra stack args
std r0, 16(r1)
@@ -75,7 +97,11 @@ SharedStub:
mtlr r0
blr
+#if _CALL_ELF == 2
+ .size SharedStub,.-SharedStub
+#else
.size SharedStub,.-.SharedStub
+#endif
# Magic indicating no need for an executable stack
.section .note.GNU-stack, "", @progbits ; .previous
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
@@ -83,7 +83,9 @@ PrepareAndDispatch(nsXPTCStubBase* self,
dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles
else {
float *p = (float *)ap;
+#ifndef __LITTLE_ENDIAN__
p++;
+#endif
dp->val.f = *p;
}
} else { /* integer type or pointer */
@@ -153,6 +155,43 @@ PrepareAndDispatch(nsXPTCStubBase* self,
// etc.
// Use assembler directives to get the names right...
+#if _CALL_ELF == 2
+# define STUB_ENTRY(n) \
+__asm__ ( \
+ ".section \".text\" \n\t" \
+ ".align 2 \n\t" \
+ ".if "#n" < 10 \n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase5Stub"#n"Ev,.-_ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ \
+ ".elseif "#n" < 100 \n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase6Stub"#n"Ev,.-_ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ \
+ ".elseif "#n" < 1000 \n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase7Stub"#n"Ev,.-_ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ \
+ ".else \n\t" \
+ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
+ ".endif \n\t" \
+ \
+ "li 11,"#n" \n\t" \
+ "b SharedStub \n" \
+);
+#else
# define STUB_ENTRY(n) \
__asm__ ( \
".section \".toc\",\"aw\" \n\t" \
@@ -195,6 +234,7 @@ __asm__ (
"li 11,"#n" \n\t" \
"b SharedStub \n" \
);
+#endif
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \

View File

@ -5,19 +5,19 @@ confusion and therefore is currently the only setting we switch in the unbranded
package unconditionally.
# HG changeset patch
# Parent bf7f0353aa8e00b1deaa05b7cb84bb7ea4c9ce8f
# Parent 5c086bb8e0fa4f1600aced485e6156b0cdcd1755
diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js
--- a/modules/libpref/src/init/all.js
+++ b/modules/libpref/src/init/all.js
@@ -1554,17 +1554,17 @@ pref("intl.charsetmenu.browser.more5",
pref("intl.charsetmenu.mailedit", "chrome://global/locale/intl.properties");
@@ -1428,17 +1428,17 @@ pref("intl.charsetmenu.mailedit",
pref("intl.charsetmenu.browser.cache", "");
pref("intl.charsetmenu.mailview.cache", "");
pref("intl.charsetmenu.composer.cache", "");
pref("intl.charsetmenu.browser.cache.size", 5);
pref("intl.charset.detector", "chrome://global/locale/intl.properties");
pref("intl.charset.fallback.override", "");
pref("intl.charset.fallback.tld", true);
pref("intl.ellipsis", "chrome://global-platform/locale/intl.properties");
-pref("intl.locale.matchOS", false);
+pref("intl.locale.matchOS", true);

View File

@ -7,7 +7,7 @@ References:
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -8113,16 +8113,31 @@ if test "$MOZ_ENABLE_SKIA"; then
@@ -8069,16 +8069,31 @@ if test "$MOZ_ENABLE_SKIA"; then
MOZ_ENABLE_SKIA_GPU=1
AC_DEFINE(USE_SKIA_GPU)
AC_SUBST(MOZ_ENABLE_SKIA_GPU)
@ -79,7 +79,7 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
#include "nsCertVerificationThread.h"
#include "nsAppDirectoryServiceDefs.h"
#include "nsComponentManagerUtils.h"
@@ -1117,17 +1124,31 @@ nsNSSComponent::InitializeNSS()
@@ -1129,17 +1136,31 @@ nsNSSComponent::InitializeNSS()
if (NS_FAILED(rv)) {
nsPSMInitPanic::SetPanic();
return NS_ERROR_NOT_AVAILABLE;
@ -115,8 +115,8 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
--- a/toolkit/library/Makefile.in
+++ b/toolkit/library/Makefile.in
@@ -223,17 +223,17 @@ endif
ifneq (,$(filter OS2 WINNT,$(OS_ARCH)))
@@ -161,17 +161,17 @@ endif
ifneq (,$(filter WINNT,$(OS_ARCH)))
SDK_LIBRARY = $(IMPORT_LIBRARY)
else
SDK_LIBRARY = $(SHARED_LIBRARY)
@ -130,7 +130,7 @@ diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
CXXFLAGS += $(TK_CFLAGS)
OS_LIBS += \
-framework SystemConfiguration \
-framework QTKit \
-framework IOKit \
-F$(MACOS_PRIVATE_FRAMEWORKS_DIR) -framework CoreUI \
$(TK_LIBS) \
$(NULL)
endif

View File

@ -1,2 +1,2 @@
REV=0cd2e9a8ba6f
REV=529a45c94e5a
REPO=http://hg.mozilla.org/releases/mozilla-release