From 8ede93a5a45d6f69237f6b1b792e3adac9bb01cf Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 13 Dec 2013 13:53:33 +0100 Subject: [PATCH 01/80] rhbz#1037406 - xulrunner FTBFS if -Werror=format-security flag is used --- xulrunner.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index d5d74f8..25fc83b 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 26.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -354,8 +354,8 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif -export CFLAGS=$MOZ_OPT_FLAGS -export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive" +export CFLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" +export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive -Wformat-security -Wformat -Werror=format-security" export LDFLAGS=$MOZ_LINK_FLAGS export PREFIX='%{_prefix}' @@ -529,6 +529,10 @@ fi #--------------------------------------------------------------------- %changelog +* Fri Dec 13 2013 Martin Stransky - 26.0-2 +- rhbz#1037406 - xulrunner FTBFS if "-Werror=format-security" + flag is used + * Mon Dec 9 2013 Martin Stransky - 26.0-1 - Update to 26.0 Build 2 From be48b2ad622479ef421230eddd9c3abff0131ff9 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 15 May 2014 13:31:06 +0100 Subject: [PATCH 02/80] Add upstream patches for aarch64 support --- firefox-aarch64-double-convertsion.patch | 80 ++++ firefox-aarch64-libevent.patch | 115 +++++ firefox-aarch64-xpcom.patch | 517 +++++++++++++++++++++++ xulrunner.spec | 18 +- 4 files changed, 727 insertions(+), 3 deletions(-) create mode 100644 firefox-aarch64-double-convertsion.patch create mode 100644 firefox-aarch64-libevent.patch create mode 100644 firefox-aarch64-xpcom.patch diff --git a/firefox-aarch64-double-convertsion.patch b/firefox-aarch64-double-convertsion.patch new file mode 100644 index 0000000..06320be --- /dev/null +++ b/firefox-aarch64-double-convertsion.patch @@ -0,0 +1,80 @@ + +# HG changeset patch +# User Marcin Juszkiewicz +# 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 + diff --git a/firefox-aarch64-libevent.patch b/firefox-aarch64-libevent.patch new file mode 100644 index 0000000..6f9d02a --- /dev/null +++ b/firefox-aarch64-libevent.patch @@ -0,0 +1,115 @@ + +# HG changeset patch +# User Marcin Juszkiewicz +# 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 ++ #include ++ #include ++ #include ++ #include +++#include ++ ++ 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 + + #include + #include + #include + #include + #include ++#include + + 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 + } + diff --git a/firefox-aarch64-xpcom.patch b/firefox-aarch64-xpcom.patch new file mode 100644 index 0000000..5f70003 --- /dev/null +++ b/firefox-aarch64-xpcom.patch @@ -0,0 +1,517 @@ + +# HG changeset patch +# User Marcin Juszkiewicz +# 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(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 + diff --git a/xulrunner.spec b/xulrunner.spec index 9721234..b828e5f 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 29.0 -Release: 2%{?pre_tag}%{?dist} +Release: 3%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -102,6 +102,12 @@ Patch204: rhbz-966424.patch # Upstream patches Patch300: mozilla-ppc64le.patch +# mbo 962488 +Patch301: firefox-aarch64-double-convertsion.patch +# mbo 963023 +Patch302: firefox-aarch64-libevent.patch +# mbo 963024 +Patch303: firefox-aarch64-xpcom.patch # --------------------------------------------------- @@ -243,6 +249,9 @@ cd %{tarballdir} %patch300 -p1 -b .ppc64le %endif %endif +%patch301 -p1 -b .aarch64-dbl +%patch302 -p1 -b .aarch64-libevent +%patch303 -p1 -b .aarch64-xpcom %{__rm} -f .mozconfig %{__cp} %{SOURCE10} .mozconfig @@ -344,7 +353,7 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') %ifarch s390 MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') %endif -%ifarch s390 %{arm} ppc +%ifarch s390 %{arm} ppc aarch64 MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif @@ -358,7 +367,7 @@ export LIBDIR='%{_libdir}' MOZ_SMP_FLAGS=-j1 # On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, # however builds tend to fail on other arches when building in parallel. -%ifarch %{ix86} x86_64 ppc ppc64 ppc64le +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64 [ -z "$RPM_BUILD_NCPUS" ] && \ RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 @@ -523,6 +532,9 @@ fi #--------------------------------------------------------------------- %changelog +* Thu May 15 2014 Peter Robinson 29.0-3 +- Add upstream patches for aarch64 support + * Mon Apr 28 2014 Martin Stransky - 29.0-2 - An updated ppc64le patch (rhbz#1091054) From 82c583ffad111011fb95c25e23d6dcc879429713 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 15 May 2014 23:21:10 +0100 Subject: [PATCH 03/80] Update aarch64 bits --- xulrunner.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index b828e5f..58c5855 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 29.0 -Release: 3%{?pre_tag}%{?dist} +Release: 4%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -339,6 +339,9 @@ esac cd %{tarballdir} +# Update the various config.guess to upstream release for aarch64 support +find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' + # -fpermissive is needed to build with gcc 4.6+ which has become stricter # # Mozilla builds with -Wall with exception of a few warnings which show up @@ -367,7 +370,7 @@ export LIBDIR='%{_libdir}' MOZ_SMP_FLAGS=-j1 # On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, # however builds tend to fail on other arches when building in parallel. -%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64 +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64 %{arm} [ -z "$RPM_BUILD_NCPUS" ] && \ RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 @@ -532,6 +535,9 @@ fi #--------------------------------------------------------------------- %changelog +* Thu May 15 2014 Peter Robinson 29.0-4 +- Update aarch64 bits + * Thu May 15 2014 Peter Robinson 29.0-3 - Add upstream patches for aarch64 support From 9fb1131d7509123b0fe333f154bab7439bbab2b3 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 23 May 2014 17:47:08 +0200 Subject: [PATCH 04/80] Added a build fix for ppc64 - rhbz#1100495 --- mozilla-973977.patch | 31 +++++++++++++++++++++++++++++++ xulrunner.spec | 9 ++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 mozilla-973977.patch diff --git a/mozilla-973977.patch b/mozilla-973977.patch new file mode 100644 index 0000000..d8ec932 --- /dev/null +++ b/mozilla-973977.patch @@ -0,0 +1,31 @@ +# HG changeset patch +# Parent c2172c2aaa693e00c989f76c83b83a2be97afaab +# User Ulrich Weigand +Bug 973977 - Mark SharedStub hidden to fix ppc64 build failure + + +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 +--- a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s ++++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s +@@ -15,16 +15,21 @@ + .set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 + .set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 + .set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 + .set f30,30; .set f31,31 + + .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 + + SharedStub: + .quad .SharedStub,.TOC.@tocbase + .previous + .type SharedStub,@function + diff --git a/xulrunner.spec b/xulrunner.spec index 58c5855..da3fb6d 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 29.0 -Release: 4%{?pre_tag}%{?dist} +Release: 5%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -108,6 +108,7 @@ Patch301: firefox-aarch64-double-convertsion.patch Patch302: firefox-aarch64-libevent.patch # mbo 963024 Patch303: firefox-aarch64-xpcom.patch +Patch304: mozilla-973977.patch # --------------------------------------------------- @@ -252,6 +253,9 @@ cd %{tarballdir} %patch301 -p1 -b .aarch64-dbl %patch302 -p1 -b .aarch64-libevent %patch303 -p1 -b .aarch64-xpcom +%ifarch ppc64 +%patch304 -p1 -b .973977 +%endif %{__rm} -f .mozconfig %{__cp} %{SOURCE10} .mozconfig @@ -535,6 +539,9 @@ fi #--------------------------------------------------------------------- %changelog +* Fri May 23 2014 Martin Stransky - 29.0-5 +- Added a build fix for ppc64 - rhbz#1100495 + * Thu May 15 2014 Peter Robinson 29.0-4 - Update aarch64 bits From 4efab6c15bfc99ce8c5cf917831f46c597cdd3cc Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 5 Jun 2014 09:37:31 +0200 Subject: [PATCH 05/80] Update to 30.0 build 1, disabled shared js --- firefox-aarch64-double-convertsion.patch | 80 - firefox-aarch64-libevent.patch | 115 - firefox-aarch64-xpcom.patch | 517 --- mozilla-973977.patch | 31 - mozilla-ppc64le.patch | 5061 ---------------------- xulrunner-mozconfig | 1 - xulrunner.spec | 28 +- 7 files changed, 7 insertions(+), 5826 deletions(-) delete mode 100644 firefox-aarch64-double-convertsion.patch delete mode 100644 firefox-aarch64-libevent.patch delete mode 100644 firefox-aarch64-xpcom.patch delete mode 100644 mozilla-973977.patch delete mode 100644 mozilla-ppc64le.patch diff --git a/firefox-aarch64-double-convertsion.patch b/firefox-aarch64-double-convertsion.patch deleted file mode 100644 index 06320be..0000000 --- a/firefox-aarch64-double-convertsion.patch +++ /dev/null @@ -1,80 +0,0 @@ - -# HG changeset patch -# User Marcin Juszkiewicz -# 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 - diff --git a/firefox-aarch64-libevent.patch b/firefox-aarch64-libevent.patch deleted file mode 100644 index 6f9d02a..0000000 --- a/firefox-aarch64-libevent.patch +++ /dev/null @@ -1,115 +0,0 @@ - -# HG changeset patch -# User Marcin Juszkiewicz -# 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 -+ #include -+ #include -+ #include -+ #include -++#include -+ -+ 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 - - #include - #include - #include - #include - #include -+#include - - 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 - } - diff --git a/firefox-aarch64-xpcom.patch b/firefox-aarch64-xpcom.patch deleted file mode 100644 index 5f70003..0000000 --- a/firefox-aarch64-xpcom.patch +++ /dev/null @@ -1,517 +0,0 @@ - -# HG changeset patch -# User Marcin Juszkiewicz -# 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(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 - diff --git a/mozilla-973977.patch b/mozilla-973977.patch deleted file mode 100644 index d8ec932..0000000 --- a/mozilla-973977.patch +++ /dev/null @@ -1,31 +0,0 @@ -# HG changeset patch -# Parent c2172c2aaa693e00c989f76c83b83a2be97afaab -# User Ulrich Weigand -Bug 973977 - Mark SharedStub hidden to fix ppc64 build failure - - -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 ---- a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s -+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s -@@ -15,16 +15,21 @@ - .set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 - .set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 - .set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 - .set f30,30; .set f31,31 - - .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 - - SharedStub: - .quad .SharedStub,.TOC.@tocbase - .previous - .type SharedStub,@function - diff --git a/mozilla-ppc64le.patch b/mozilla-ppc64le.patch deleted file mode 100644 index bb340cb..0000000 --- a/mozilla-ppc64le.patch +++ /dev/null @@ -1,5061 +0,0 @@ -# HG changeset patch -# Parent 007cf000fdf7c5048939a87f63165a67fd9db5f6 -# User Ulrich Weigand -Bug 976648 - powerpc64le-linux support - toplevel build/config - -Index: mozilla-release/build/autoconf/config.guess -=================================================================== ---- mozilla-release.orig/build/autoconf/config.guess -+++ mozilla-release/build/autoconf/config.guess -@@ -1,14 +1,12 @@ - #! /bin/sh - # Attempt to guess a canonical system name. --# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# Copyright 1992-2014 Free Software Foundation, Inc. - --timestamp='2009-08-19' -+timestamp='2014-02-12' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but -@@ -17,26 +15,22 @@ timestamp='2009-08-19' - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -- -- --# Originally written by Per Bothner. Please send patches (context --# diff format) to and include a ChangeLog --# entry. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - # --# This script attempts to guess a canonical system name similar to --# config.sub. If it succeeds, it prints the system name on stdout, and --# exits with 0. Otherwise, it exits with 1. -+# Originally written by Per Bothner. - # - # You can get the latest version of this script from: - # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -+# -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. -+ - - me=`echo "$0" | sed -e 's,.*/,,'` - -@@ -56,8 +50,7 @@ version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, --2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+Copyright 1992-2014 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -139,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` | - UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown - UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -+case "${UNAME_SYSTEM}" in -+Linux|GNU|GNU/*) -+ # If the system lacks a compiler, then just pick glibc. -+ # We could probably try harder. -+ LIBC=gnu -+ -+ eval $set_cc_for_build -+ cat <<-EOF > $dummy.c -+ #include -+ #if defined(__UCLIBC__) -+ LIBC=uclibc -+ #elif defined(__dietlibc__) -+ LIBC=dietlibc -+ #else -+ LIBC=gnu -+ #endif -+ EOF -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` -+ ;; -+esac -+ - # Note: order is significant - the case branches are not exclusive. - - case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or -- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, -+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward -@@ -180,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - fi - ;; - *) -- os=netbsd -+ os=netbsd - ;; - esac - # The OS release -@@ -201,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; -+ *:Bitrig:*:*) -+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} -+ exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -@@ -223,7 +241,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on -@@ -269,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit ;; -+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. -+ exitcode=$? -+ trap '' 0 -+ exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead -@@ -295,12 +316,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) -- echo powerpc-ibm-os400 -+ echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; -- arm:riscos:*:*|arm:RISCOS:*:*) -+ arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) -@@ -333,6 +354,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; -+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) -+ echo i386-pc-auroraux${UNAME_RELEASE} -+ exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" -@@ -391,23 +415,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -+ echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -+ echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) -- echo m68k-milan-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-milan-mint${UNAME_RELEASE} -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) -- echo m68k-hades-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-hades-mint${UNAME_RELEASE} -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) -- echo m68k-unknown-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-unknown-mint${UNAME_RELEASE} -+ exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; -@@ -477,8 +501,8 @@ EOF - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) -- # DG/UX returns AViiON for all architectures -- UNAME_PROCESSOR=`/usr/bin/uname -p` -+ # DG/UX returns AViiON for all architectures -+ UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ -@@ -491,7 +515,7 @@ EOF - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; -@@ -548,7 +572,7 @@ EOF - echo rs6000-ibm-aix3.2 - fi - exit ;; -- *:AIX:*:[456]) -+ *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -591,52 +615,52 @@ EOF - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -- case "${sc_cpu_version}" in -- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -- 532) # CPU_PA_RISC2_0 -- case "${sc_kernel_bits}" in -- 32) HP_ARCH="hppa2.0n" ;; -- 64) HP_ARCH="hppa2.0w" ;; -+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -+ case "${sc_cpu_version}" in -+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -+ 532) # CPU_PA_RISC2_0 -+ case "${sc_kernel_bits}" in -+ 32) HP_ARCH="hppa2.0n" ;; -+ 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 -- esac ;; -- esac -+ esac ;; -+ esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -+ sed 's/^ //' << EOF >$dummy.c -+ -+ #define _HPUX_SOURCE -+ #include -+ #include -+ -+ int main () -+ { -+ #if defined(_SC_KERNEL_BITS) -+ long bits = sysconf(_SC_KERNEL_BITS); -+ #endif -+ long cpu = sysconf (_SC_CPU_VERSION); - -- #define _HPUX_SOURCE -- #include -- #include -- -- int main () -- { -- #if defined(_SC_KERNEL_BITS) -- long bits = sysconf(_SC_KERNEL_BITS); -- #endif -- long cpu = sysconf (_SC_CPU_VERSION); -- -- switch (cpu) -- { -- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -- case CPU_PA_RISC2_0: -- #if defined(_SC_KERNEL_BITS) -- switch (bits) -- { -- case 64: puts ("hppa2.0w"); break; -- case 32: puts ("hppa2.0n"); break; -- default: puts ("hppa2.0"); break; -- } break; -- #else /* !defined(_SC_KERNEL_BITS) */ -- puts ("hppa2.0"); break; -- #endif -- default: puts ("hppa1.0"); break; -- } -- exit (0); -- } -+ switch (cpu) -+ { -+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -+ case CPU_PA_RISC2_0: -+ #if defined(_SC_KERNEL_BITS) -+ switch (bits) -+ { -+ case 64: puts ("hppa2.0w"); break; -+ case 32: puts ("hppa2.0n"); break; -+ default: puts ("hppa2.0"); break; -+ } break; -+ #else /* !defined(_SC_KERNEL_BITS) */ -+ puts ("hppa2.0"); break; -+ #endif -+ default: puts ("hppa1.0"); break; -+ } -+ exit (0); -+ } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa -@@ -727,22 +751,22 @@ EOF - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; -@@ -766,14 +790,14 @@ EOF - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit ;; -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - 5000:UNIX_System_V:4.*:*) -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -@@ -785,34 +809,39 @@ EOF - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) -- case ${UNAME_MACHINE} in -- pc98) -- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ UNAME_PROCESSOR=`/usr/bin/uname -p` -+ case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; -+ *:MINGW64*:*) -+ echo ${UNAME_MACHINE}-pc-mingw64 -+ exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; -+ i*:MSYS*:*) -+ echo ${UNAME_MACHINE}-pc-msys -+ exit ;; - i*:windows32*:*) -- # uname -m includes "-pc" on this system. -- echo ${UNAME_MACHINE}-mingw32 -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; -- *:Interix*:[3456]*) -- case ${UNAME_MACHINE} in -+ *:Interix*:*) -+ case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; -- EM64T | authenticamd | genuineintel) -+ authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) -@@ -845,45 +874,81 @@ EOF - exit ;; - *:GNU:*:*) - # the GNU system -- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland -- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; -+ aarch64:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ aarch64_be:Linux:*:*) -+ UNAME_MACHINE=aarch64_be -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ alpha:Linux:*:*) -+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -+ EV5) UNAME_MACHINE=alphaev5 ;; -+ EV56) UNAME_MACHINE=alphaev56 ;; -+ PCA56) UNAME_MACHINE=alphapca56 ;; -+ PCA57) UNAME_MACHINE=alphapca56 ;; -+ EV6) UNAME_MACHINE=alphaev6 ;; -+ EV67) UNAME_MACHINE=alphaev67 ;; -+ EV68*) UNAME_MACHINE=alphaev68 ;; -+ esac -+ objdump --private-headers /bin/sh | grep -q ld.so.1 -+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ arc:Linux:*:* | arceb:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - else -- echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_PCS_VFP -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf -+ fi - fi - exit ;; - avr32*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - cris:Linux:*:*) -- echo cris-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - crisv32:Linux:*:*) -- echo crisv32-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - frv:Linux:*:*) -- echo frv-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ hexagon:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ i*86:Linux:*:*) -+ echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; - ia64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m32r*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m68*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build -@@ -901,123 +966,65 @@ EOF - #endif - #endif - EOF -- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -- /^CPU/{ -- s: ::g -- p -- }'`" -- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; -- or32:Linux:*:*) -- echo or32-unknown-linux-gnu -- exit ;; -- ppc:Linux:*:*) -- echo powerpc-unknown-linux-gnu -- exit ;; -- ppc64:Linux:*:*) -- echo powerpc64-unknown-linux-gnu -+ or1k:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; -- alpha:Linux:*:*) -- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -- EV5) UNAME_MACHINE=alphaev5 ;; -- EV56) UNAME_MACHINE=alphaev56 ;; -- PCA56) UNAME_MACHINE=alphapca56 ;; -- PCA57) UNAME_MACHINE=alphapca56 ;; -- EV6) UNAME_MACHINE=alphaev6 ;; -- EV67) UNAME_MACHINE=alphaev67 ;; -- EV68*) UNAME_MACHINE=alphaev68 ;; -- esac -- objdump --private-headers /bin/sh | grep -q ld.so.1 -- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ or32:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - padre:Linux:*:*) -- echo sparc-unknown-linux-gnu -+ echo sparc-unknown-linux-${LIBC} -+ exit ;; -+ parisc64:Linux:*:* | hppa64:Linux:*:*) -+ echo hppa64-unknown-linux-${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -- PA7*) echo hppa1.1-unknown-linux-gnu ;; -- PA8*) echo hppa2.0-unknown-linux-gnu ;; -- *) echo hppa-unknown-linux-gnu ;; -+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; -+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; -+ *) echo hppa-unknown-linux-${LIBC} ;; - esac - exit ;; -- parisc64:Linux:*:* | hppa64:Linux:*:*) -- echo hppa64-unknown-linux-gnu -+ ppc64:Linux:*:*) -+ echo powerpc64-unknown-linux-${LIBC} -+ exit ;; -+ ppc:Linux:*:*) -+ echo powerpc-unknown-linux-${LIBC} -+ exit ;; -+ ppc64le:Linux:*:*) -+ echo powerpc64le-unknown-linux-${LIBC} -+ exit ;; -+ ppcle:Linux:*:*) -+ echo powerpcle-unknown-linux-${LIBC} - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) -- echo ${UNAME_MACHINE}-ibm-linux -+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; - sh64*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sh*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ tile*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - vax:Linux:*:*) -- echo ${UNAME_MACHINE}-dec-linux-gnu -+ echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; - x86_64:Linux:*:*) -- echo x86_64-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - xtensa*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; -- i*86:Linux:*:*) -- # The BFD linker knows what the default object file format is, so -- # first see if it will tell us. cd to the root directory to prevent -- # problems with other programs or directories called `ld' in the path. -- # Set LC_ALL=C to ensure ld outputs messages in English. -- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ -- | sed -ne '/supported targets:/!d -- s/[ ][ ]*/ /g -- s/.*supported targets: *// -- s/ .*// -- p'` -- case "$ld_supported_targets" in -- elf32-i386) -- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" -- ;; -- esac -- # Determine whether the default compiler is a.out or elf -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #ifdef __ELF__ -- # ifdef __GLIBC__ -- # if __GLIBC__ >= 2 -- LIBC=gnu -- # else -- LIBC=gnulibc1 -- # endif -- # else -- LIBC=gnulibc1 -- # endif -- #else -- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) -- LIBC=gnu -- #else -- LIBC=gnuaout -- #endif -- #endif -- #ifdef __dietlibc__ -- LIBC=dietlibc -- #endif --EOF -- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -- /^LIBC/{ -- s: ::g -- p -- }'`" -- test x"${LIBC}" != x && { -- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -- exit -- } -- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } -- ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both -@@ -1025,11 +1032,11 @@ EOF - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) -- # Unixware is an offshoot of SVR4, but it has its own version -- # number series starting with 2... -- # I am not positive that other SVR4 systems won't match this, -+ # Unixware is an offshoot of SVR4, but it has its own version -+ # number series starting with 2... -+ # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. -- # Use sysv4.2uw... so that sysv4* matches it. -+ # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) -@@ -1061,7 +1068,7 @@ EOF - fi - exit ;; - i*86:*:5:[678]*) -- # UnixWare 7.x, OpenUNIX and OpenServer 6. -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; -@@ -1089,13 +1096,13 @@ EOF - exit ;; - pc:*:*:*) - # Left here for compatibility: -- # uname -m prints for DJGPP always 'pc', but it prints nothing about -- # the processor, so we play safe by assuming i586. -+ # uname -m prints for DJGPP always 'pc', but it prints nothing about -+ # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp -- exit ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; -@@ -1130,8 +1137,8 @@ EOF - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) -- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && { echo i486-ncr-sysv4; exit; } ;; -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ -@@ -1174,10 +1181,10 @@ EOF - echo ns32k-sni-sysv - fi - exit ;; -- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -- # says -- echo i586-unisys-sysv4 -- exit ;; -+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -+ # says -+ echo i586-unisys-sysv4 -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm -@@ -1203,11 +1210,11 @@ EOF - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then -- echo mips-nec-sysv${UNAME_RELEASE} -+ echo mips-nec-sysv${UNAME_RELEASE} - else -- echo mips-unknown-sysv${UNAME_RELEASE} -+ echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; -@@ -1220,6 +1227,9 @@ EOF - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; -+ x86_64:Haiku:*:*) -+ echo x86_64-unknown-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -@@ -1246,13 +1256,31 @@ EOF - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -- case $UNAME_PROCESSOR in -- i386) eval $set_cc_for_build -- if $CC_FOR_BUILD -E -dM -x c /dev/null | grep __LP64__>/dev/null 2>&1 ; then -- UNAME_PROCESSOR=x86_64 -- fi ;; -- unknown) UNAME_PROCESSOR=powerpc ;; -- esac -+ eval $set_cc_for_build -+ if test "$UNAME_PROCESSOR" = unknown ; then -+ UNAME_PROCESSOR=powerpc -+ fi -+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ case $UNAME_PROCESSOR in -+ i386) UNAME_PROCESSOR=x86_64 ;; -+ powerpc) UNAME_PROCESSOR=powerpc64 ;; -+ esac -+ fi -+ fi -+ elif test "$UNAME_PROCESSOR" = i386 ; then -+ # Avoid executing cc on OS X 10.9, as it ships with a stub -+ # that puts up a graphical alert prompting to install -+ # developer tools. Any system running Mac OS X 10.7 or -+ # later (Darwin 11 and later) is required to have a 64-bit -+ # processor. This is not true of the ARM version of Darwin -+ # that Apple uses in portable devices. -+ UNAME_PROCESSOR=x86_64 -+ fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) -@@ -1266,7 +1294,10 @@ EOF - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; -- NSE-?:NONSTOP_KERNEL:*:*) -+ NEO-?:NONSTOP_KERNEL:*:*) -+ echo neo-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) -@@ -1311,13 +1342,13 @@ EOF - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) -- echo mips-sei-seiux${UNAME_RELEASE} -+ echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) -- UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; -@@ -1335,158 +1366,10 @@ EOF - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; --esac -- --#echo '(No uname command or uname output not recognized.)' 1>&2 --#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -- --eval $set_cc_for_build --cat >$dummy.c < --# include --#endif --main () --{ --#if defined (sony) --#if defined (MIPSEB) -- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, -- I don't know.... */ -- printf ("mips-sony-bsd\n"); exit (0); --#else --#include -- printf ("m68k-sony-newsos%s\n", --#ifdef NEWSOS4 -- "4" --#else -- "" --#endif -- ); exit (0); --#endif --#endif -- --#if defined (__arm) && defined (__acorn) && defined (__unix) -- printf ("arm-acorn-riscix\n"); exit (0); --#endif -- --#if defined (hp300) && !defined (hpux) -- printf ("m68k-hp-bsd\n"); exit (0); --#endif -- --#if defined (NeXT) --#if !defined (__ARCHITECTURE__) --#define __ARCHITECTURE__ "m68k" --#endif -- int version; -- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; -- if (version < 4) -- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); -- else -- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); -- exit (0); --#endif -- --#if defined (MULTIMAX) || defined (n16) --#if defined (UMAXV) -- printf ("ns32k-encore-sysv\n"); exit (0); --#else --#if defined (CMU) -- printf ("ns32k-encore-mach\n"); exit (0); --#else -- printf ("ns32k-encore-bsd\n"); exit (0); --#endif --#endif --#endif -- --#if defined (__386BSD__) -- printf ("i386-pc-bsd\n"); exit (0); --#endif -- --#if defined (sequent) --#if defined (i386) -- printf ("i386-sequent-dynix\n"); exit (0); --#endif --#if defined (ns32000) -- printf ("ns32k-sequent-dynix\n"); exit (0); --#endif --#endif -- --#if defined (_SEQUENT_) -- struct utsname un; -- -- uname(&un); -- -- if (strncmp(un.version, "V2", 2) == 0) { -- printf ("i386-sequent-ptx2\n"); exit (0); -- } -- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ -- printf ("i386-sequent-ptx1\n"); exit (0); -- } -- printf ("i386-sequent-ptx\n"); exit (0); -- --#endif -- --#if defined (vax) --# if !defined (ultrix) --# include --# if defined (BSD) --# if BSD == 43 -- printf ("vax-dec-bsd4.3\n"); exit (0); --# else --# if BSD == 199006 -- printf ("vax-dec-bsd4.3reno\n"); exit (0); --# else -- printf ("vax-dec-bsd\n"); exit (0); --# endif --# endif --# else -- printf ("vax-dec-bsd\n"); exit (0); --# endif --# else -- printf ("vax-dec-ultrix\n"); exit (0); --# endif --#endif -- --#if defined (alliant) && defined (i860) -- printf ("i860-alliant-bsd\n"); exit (0); --#endif -- -- exit (1); --} --EOF -- --$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -- { echo "$SYSTEM_NAME"; exit; } -- --# Apollos put the system type in the environment. -- --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } -- --# Convex versions that predate uname can use getsysinfo(1) -- --if [ -x /usr/convex/getsysinfo ] --then -- case `getsysinfo -f cpu_type` in -- c1*) -- echo c1-convex-bsd -+ x86_64:VMkernel:*:*) -+ echo ${UNAME_MACHINE}-unknown-esx - exit ;; -- c2*) -- if getsysinfo -f scalar_acc -- then echo c32-convex-bsd -- else echo c2-convex-bsd -- fi -- exit ;; -- c34*) -- echo c34-convex-bsd -- exit ;; -- c38*) -- echo c38-convex-bsd -- exit ;; -- c4*) -- echo c4-convex-bsd -- exit ;; -- esac --fi -+esac - - cat >&2 <. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - - --# Please send patches to . Submit a context --# diff and a properly formatted GNU ChangeLog entry. -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. -@@ -75,8 +68,7 @@ Report bugs and patches to conftest.$ac_ext -@@ -1296,7 +1296,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; -- ppc64-*linux*|powerpc64-*linux*) -+ powerpc64le-*linux*) -+ LD="${LD-ld} -m elf32lppclinux" -+ ;; -+ powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) -@@ -1315,7 +1318,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; -- ppc*-*linux*|powerpc*-*linux*) -+ powerpcle-*linux*) -+ LD="${LD-ld} -m elf64lppc" -+ ;; -+ powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) -Index: mozilla-release/js/src/ctypes/libffi/configure -=================================================================== ---- mozilla-release.orig/js/src/ctypes/libffi/configure -+++ mozilla-release/js/src/ctypes/libffi/configure -@@ -6298,7 +6298,7 @@ ia64-*-hpux*) - rm -rf conftest* - ;; - --x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ - s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext -@@ -6316,7 +6316,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; -- ppc64-*linux*|powerpc64-*linux*) -+ powerpc64le-*linux*) -+ LD="${LD-ld} -m elf32lppclinux" -+ ;; -+ powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) -@@ -6335,7 +6338,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; -- ppc*-*linux*|powerpc*-*linux*) -+ powerpcle-*linux*) -+ LD="${LD-ld} -m elf64lppc" -+ ;; -+ powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) -Index: mozilla-release/js/src/ctypes/libffi/m4/libtool.m4 -=================================================================== ---- mozilla-release.orig/js/src/ctypes/libffi/m4/libtool.m4 -+++ mozilla-release/js/src/ctypes/libffi/m4/libtool.m4 -@@ -1267,7 +1267,7 @@ ia64-*-hpux*) - rm -rf conftest* - ;; - --x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ - s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext -@@ -1281,7 +1281,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; -- ppc64-*linux*|powerpc64-*linux*) -+ powerpc64le-*linux*) -+ LD="${LD-ld} -m elf32lppclinux" -+ ;; -+ powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) -@@ -1300,7 +1303,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; -- ppc*-*linux*|powerpc*-*linux*) -+ powerpcle-*linux*) -+ LD="${LD-ld} -m elf64lppc" -+ ;; -+ powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) -Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/ffi.c -=================================================================== ---- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/ffi.c -+++ mozilla-release/js/src/ctypes/libffi/src/powerpc/ffi.c -@@ -1,7 +1,9 @@ - /* ----------------------------------------------------------------------- -- ffi.c - Copyright (c) 1998 Geoffrey Keating -- Copyright (C) 2007, 2008 Free Software Foundation, Inc -- Copyright (C) 2008 Red Hat, Inc -+ ffi.c - Copyright (C) 2011 Anthony Green -+ Copyright (C) 2011 Kyle Moffett -+ Copyright (C) 2008 Red Hat, Inc -+ Copyright (C) 2007, 2008 Free Software Foundation, Inc -+ Copyright (c) 1998 Geoffrey Keating - - PowerPC Foreign Function Interface - -@@ -39,32 +41,29 @@ enum { - /* The assembly depends on these exact flags. */ - FLAG_RETURNS_SMST = 1 << (31-31), /* Used for FFI_SYSV small structs. */ - FLAG_RETURNS_NOTHING = 1 << (31-30), /* These go in cr7 */ -+#ifndef __NO_FPRS__ - FLAG_RETURNS_FP = 1 << (31-29), -+#endif - FLAG_RETURNS_64BITS = 1 << (31-28), - - FLAG_RETURNS_128BITS = 1 << (31-27), /* cr6 */ -- FLAG_SYSV_SMST_R4 = 1 << (31-26), /* use r4 for FFI_SYSV 8 byte -- structs. */ -- FLAG_SYSV_SMST_R3 = 1 << (31-25), /* use r3 for FFI_SYSV 4 byte -- structs. */ -- /* Bits (31-24) through (31-19) store shift value for SMST */ - - FLAG_ARG_NEEDS_COPY = 1 << (31- 7), -+ FLAG_ARG_NEEDS_PSAVE = FLAG_ARG_NEEDS_COPY, /* Used by ELFv2 */ -+#ifndef __NO_FPRS__ - FLAG_FP_ARGUMENTS = 1 << (31- 6), /* cr1.eq; specified by ABI */ -+#endif - FLAG_4_GPR_ARGUMENTS = 1 << (31- 5), - FLAG_RETVAL_REFERENCE = 1 << (31- 4) - }; - - /* About the SYSV ABI. */ --unsigned int NUM_GPR_ARG_REGISTERS = 8; -+#define ASM_NEEDS_REGISTERS 4 -+#define NUM_GPR_ARG_REGISTERS 8 - #ifndef __NO_FPRS__ --unsigned int NUM_FPR_ARG_REGISTERS = 8; --#else --unsigned int NUM_FPR_ARG_REGISTERS = 0; -+# define NUM_FPR_ARG_REGISTERS 8 - #endif - --enum { ASM_NEEDS_REGISTERS = 4 }; -- - /* ffi_prep_args_SYSV is called by the assembly routine once stack space - has been allocated for the function's arguments. - -@@ -113,10 +112,12 @@ ffi_prep_args_SYSV (extended_cif *ecif, - valp gpr_base; - int intarg_count; - -+#ifndef __NO_FPRS__ - /* 'fpr_base' points at the space for fpr1, and grows upwards as - we use FPR registers. */ - valp fpr_base; - int fparg_count; -+#endif - - /* 'copy_space' grows down as we put structures in it. It should - stay 16-byte aligned. */ -@@ -125,9 +126,11 @@ ffi_prep_args_SYSV (extended_cif *ecif, - /* 'next_arg' grows up as we put parameters in it. */ - valp next_arg; - -- int i, ii MAYBE_UNUSED; -+ int i; - ffi_type **ptr; -+#ifndef __NO_FPRS__ - double double_tmp; -+#endif - union { - void **v; - char **c; -@@ -143,21 +146,22 @@ ffi_prep_args_SYSV (extended_cif *ecif, - size_t struct_copy_size; - unsigned gprvalue; - -- if (ecif->cif->abi == FFI_LINUX_SOFT_FLOAT) -- NUM_FPR_ARG_REGISTERS = 0; -- - stacktop.c = (char *) stack + bytes; - gpr_base.u = stacktop.u - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS; - intarg_count = 0; -+#ifndef __NO_FPRS__ - fpr_base.d = gpr_base.d - NUM_FPR_ARG_REGISTERS; - fparg_count = 0; - copy_space.c = ((flags & FLAG_FP_ARGUMENTS) ? fpr_base.c : gpr_base.c); -+#else -+ copy_space.c = gpr_base.c; -+#endif - next_arg.u = stack + 2; - - /* Check that everything starts aligned properly. */ -- FFI_ASSERT (((unsigned) (char *) stack & 0xF) == 0); -- FFI_ASSERT (((unsigned) copy_space.c & 0xF) == 0); -- FFI_ASSERT (((unsigned) stacktop.c & 0xF) == 0); -+ FFI_ASSERT (((unsigned long) (char *) stack & 0xF) == 0); -+ FFI_ASSERT (((unsigned long) copy_space.c & 0xF) == 0); -+ FFI_ASSERT (((unsigned long) stacktop.c & 0xF) == 0); - FFI_ASSERT ((bytes & 0xF) == 0); - FFI_ASSERT (copy_space.c >= next_arg.c); - -@@ -174,12 +178,28 @@ ffi_prep_args_SYSV (extended_cif *ecif, - i > 0; - i--, ptr++, p_argv.v++) - { -- switch ((*ptr)->type) -- { -+ unsigned short typenum = (*ptr)->type; -+ -+ /* We may need to handle some values depending on ABI */ -+ if (ecif->cif->abi == FFI_LINUX_SOFT_FLOAT) { -+ if (typenum == FFI_TYPE_FLOAT) -+ typenum = FFI_TYPE_UINT32; -+ if (typenum == FFI_TYPE_DOUBLE) -+ typenum = FFI_TYPE_UINT64; -+ if (typenum == FFI_TYPE_LONGDOUBLE) -+ typenum = FFI_TYPE_UINT128; -+ } else if (ecif->cif->abi != FFI_LINUX) { -+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -+ if (typenum == FFI_TYPE_LONGDOUBLE) -+ typenum = FFI_TYPE_STRUCT; -+#endif -+ } -+ -+ /* Now test the translated value */ -+ switch (typenum) { -+#ifndef __NO_FPRS__ - case FFI_TYPE_FLOAT: - /* With FFI_LINUX_SOFT_FLOAT floats are handled like UINT32. */ -- if (ecif->cif->abi == FFI_LINUX_SOFT_FLOAT) -- goto soft_float_prep; - double_tmp = **p_argv.f; - if (fparg_count >= NUM_FPR_ARG_REGISTERS) - { -@@ -195,8 +215,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, - - case FFI_TYPE_DOUBLE: - /* With FFI_LINUX_SOFT_FLOAT doubles are handled like UINT64. */ -- if (ecif->cif->abi == FFI_LINUX_SOFT_FLOAT) -- goto soft_double_prep; - double_tmp = **p_argv.d; - - if (fparg_count >= NUM_FPR_ARG_REGISTERS) -@@ -218,43 +236,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, - - #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE - case FFI_TYPE_LONGDOUBLE: -- if ((ecif->cif->abi != FFI_LINUX) -- && (ecif->cif->abi != FFI_LINUX_SOFT_FLOAT)) -- goto do_struct; -- /* The soft float ABI for long doubles works like this, -- a long double is passed in four consecutive gprs if available. -- A maximum of 2 long doubles can be passed in gprs. -- If we do not have 4 gprs left, the long double is passed on the -- stack, 4-byte aligned. */ -- if (ecif->cif->abi == FFI_LINUX_SOFT_FLOAT) -- { -- unsigned int int_tmp = (*p_argv.ui)[0]; -- if (intarg_count >= NUM_GPR_ARG_REGISTERS - 3) -- { -- if (intarg_count < NUM_GPR_ARG_REGISTERS) -- intarg_count += NUM_GPR_ARG_REGISTERS - intarg_count; -- *next_arg.u = int_tmp; -- next_arg.u++; -- for (ii = 1; ii < 4; ii++) -- { -- int_tmp = (*p_argv.ui)[ii]; -- *next_arg.u = int_tmp; -- next_arg.u++; -- } -- } -- else -- { -- *gpr_base.u++ = int_tmp; -- for (ii = 1; ii < 4; ii++) -- { -- int_tmp = (*p_argv.ui)[ii]; -- *gpr_base.u++ = int_tmp; -- } -- } -- intarg_count +=4; -- } -- else -- { - double_tmp = (*p_argv.d)[0]; - - if (fparg_count >= NUM_FPR_ARG_REGISTERS - 1) -@@ -280,13 +261,40 @@ ffi_prep_args_SYSV (extended_cif *ecif, - - fparg_count += 2; - FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); -- } - break; - #endif -+#endif /* have FPRs */ -+ -+ /* -+ * The soft float ABI for long doubles works like this, a long double -+ * is passed in four consecutive GPRs if available. A maximum of 2 -+ * long doubles can be passed in gprs. If we do not have 4 GPRs -+ * left, the long double is passed on the stack, 4-byte aligned. -+ */ -+ case FFI_TYPE_UINT128: { -+ unsigned int int_tmp = (*p_argv.ui)[0]; -+ unsigned int ii; -+ if (intarg_count >= NUM_GPR_ARG_REGISTERS - 3) { -+ if (intarg_count < NUM_GPR_ARG_REGISTERS) -+ intarg_count += NUM_GPR_ARG_REGISTERS - intarg_count; -+ *(next_arg.u++) = int_tmp; -+ for (ii = 1; ii < 4; ii++) { -+ int_tmp = (*p_argv.ui)[ii]; -+ *(next_arg.u++) = int_tmp; -+ } -+ } else { -+ *(gpr_base.u++) = int_tmp; -+ for (ii = 1; ii < 4; ii++) { -+ int_tmp = (*p_argv.ui)[ii]; -+ *(gpr_base.u++) = int_tmp; -+ } -+ } -+ intarg_count += 4; -+ break; -+ } - - case FFI_TYPE_UINT64: - case FFI_TYPE_SINT64: -- soft_double_prep: - if (intarg_count == NUM_GPR_ARG_REGISTERS-1) - intarg_count++; - if (intarg_count >= NUM_GPR_ARG_REGISTERS) -@@ -319,9 +327,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, - break; - - case FFI_TYPE_STRUCT: --#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -- do_struct: --#endif - struct_copy_size = ((*ptr)->size + 15) & ~0xF; - copy_space.c -= struct_copy_size; - memcpy (copy_space.c, *p_argv.c, (*ptr)->size); -@@ -349,7 +354,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, - case FFI_TYPE_UINT32: - case FFI_TYPE_SINT32: - case FFI_TYPE_POINTER: -- soft_float_prep: - - gprvalue = **p_argv.ui; - -@@ -366,8 +370,16 @@ ffi_prep_args_SYSV (extended_cif *ecif, - /* Check that we didn't overrun the stack... */ - FFI_ASSERT (copy_space.c >= next_arg.c); - FFI_ASSERT (gpr_base.u <= stacktop.u - ASM_NEEDS_REGISTERS); -+ /* The assert below is testing that the number of integer arguments agrees -+ with the number found in ffi_prep_cif_machdep(). However, intarg_count -+ is incremented whenever we place an FP arg on the stack, so account for -+ that before our assert test. */ -+#ifndef __NO_FPRS__ -+ if (fparg_count > NUM_FPR_ARG_REGISTERS) -+ intarg_count -= fparg_count - NUM_FPR_ARG_REGISTERS; - FFI_ASSERT (fpr_base.u - <= stacktop.u - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS); -+#endif - FFI_ASSERT (flags & FLAG_4_GPR_ARGUMENTS || intarg_count <= 4); - } - -@@ -378,6 +390,45 @@ enum { - }; - enum { ASM_NEEDS_REGISTERS64 = 4 }; - -+#if _CALL_ELF == 2 -+static unsigned int -+discover_homogeneous_aggregate (const ffi_type *t, unsigned int *elnum) -+{ -+ switch (t->type) -+ { -+ case FFI_TYPE_FLOAT: -+ case FFI_TYPE_DOUBLE: -+ *elnum = 1; -+ return (int) t->type; -+ -+ case FFI_TYPE_STRUCT:; -+ { -+ unsigned int base_elt = 0, total_elnum = 0; -+ ffi_type **el = t->elements; -+ while (*el) -+ { -+ unsigned int el_elt, el_elnum = 0; -+ el_elt = discover_homogeneous_aggregate (*el, &el_elnum); -+ if (el_elt == 0 -+ || (base_elt && base_elt != el_elt)) -+ return 0; -+ base_elt = el_elt; -+ total_elnum += el_elnum; -+ if (total_elnum > 8) -+ return 0; -+ el++; -+ } -+ *elnum = total_elnum; -+ return base_elt; -+ } -+ -+ default: -+ return 0; -+ } -+} -+#endif -+ -+ - /* ffi_prep_args64 is called by the assembly routine once stack space - has been allocated for the function's arguments. - -@@ -423,6 +474,7 @@ ffi_prep_args64 (extended_cif *ecif, uns - unsigned long *ul; - float *f; - double *d; -+ size_t p; - } valp; - - /* 'stacktop' points at the previous backchain pointer. */ -@@ -438,9 +490,9 @@ ffi_prep_args64 (extended_cif *ecif, uns - /* 'fpr_base' points at the space for fpr3, and grows upwards as - we use FPR registers. */ - valp fpr_base; -- int fparg_count; -+ unsigned int fparg_count; - -- int i, words; -+ unsigned int i, words, nargs, nfixedargs; - ffi_type **ptr; - double double_tmp; - union { -@@ -457,11 +509,18 @@ ffi_prep_args64 (extended_cif *ecif, uns - double **d; - } p_argv; - unsigned long gprvalue; -+#ifdef __STRUCT_PARM_ALIGN__ -+ unsigned long align; -+#endif - - stacktop.c = (char *) stack + bytes; - gpr_base.ul = stacktop.ul - ASM_NEEDS_REGISTERS64 - NUM_GPR_ARG_REGISTERS64; - gpr_end.ul = gpr_base.ul + NUM_GPR_ARG_REGISTERS64; -+#if _CALL_ELF == 2 -+ rest.ul = stack + 4 + NUM_GPR_ARG_REGISTERS64; -+#else - rest.ul = stack + 6 + NUM_GPR_ARG_REGISTERS64; -+#endif - fpr_base.d = gpr_base.d - NUM_FPR_ARG_REGISTERS64; - fparg_count = 0; - next_arg.ul = gpr_base.ul; -@@ -477,30 +536,36 @@ ffi_prep_args64 (extended_cif *ecif, uns - - /* Now for the arguments. */ - p_argv.v = ecif->avalue; -- for (ptr = ecif->cif->arg_types, i = ecif->cif->nargs; -- i > 0; -- i--, ptr++, p_argv.v++) -+ nargs = ecif->cif->nargs; -+ nfixedargs = ecif->cif->nfixedargs; -+ for (ptr = ecif->cif->arg_types, i = 0; -+ i < nargs; -+ i++, ptr++, p_argv.v++) - { -+ unsigned int elt, elnum; -+ - switch ((*ptr)->type) - { - case FFI_TYPE_FLOAT: - double_tmp = **p_argv.f; -- *next_arg.f = (float) double_tmp; -+ if (fparg_count < NUM_FPR_ARG_REGISTERS64 && i < nfixedargs) -+ *fpr_base.d++ = double_tmp; -+ else -+ *next_arg.f = (float) double_tmp; - if (++next_arg.ul == gpr_end.ul) - next_arg.ul = rest.ul; -- if (fparg_count < NUM_FPR_ARG_REGISTERS64) -- *fpr_base.d++ = double_tmp; - fparg_count++; - FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); - break; - - case FFI_TYPE_DOUBLE: - double_tmp = **p_argv.d; -- *next_arg.d = double_tmp; -+ if (fparg_count < NUM_FPR_ARG_REGISTERS64 && i < nfixedargs) -+ *fpr_base.d++ = double_tmp; -+ else -+ *next_arg.d = double_tmp; - if (++next_arg.ul == gpr_end.ul) - next_arg.ul = rest.ul; -- if (fparg_count < NUM_FPR_ARG_REGISTERS64) -- *fpr_base.d++ = double_tmp; - fparg_count++; - FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); - break; -@@ -508,18 +573,20 @@ ffi_prep_args64 (extended_cif *ecif, uns - #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE - case FFI_TYPE_LONGDOUBLE: - double_tmp = (*p_argv.d)[0]; -- *next_arg.d = double_tmp; -+ if (fparg_count < NUM_FPR_ARG_REGISTERS64 && i < nfixedargs) -+ *fpr_base.d++ = double_tmp; -+ else -+ *next_arg.d = double_tmp; - if (++next_arg.ul == gpr_end.ul) - next_arg.ul = rest.ul; -- if (fparg_count < NUM_FPR_ARG_REGISTERS64) -- *fpr_base.d++ = double_tmp; - fparg_count++; - double_tmp = (*p_argv.d)[1]; -- *next_arg.d = double_tmp; -+ if (fparg_count < NUM_FPR_ARG_REGISTERS64 && i < nfixedargs) -+ *fpr_base.d++ = double_tmp; -+ else -+ *next_arg.d = double_tmp; - if (++next_arg.ul == gpr_end.ul) - next_arg.ul = rest.ul; -- if (fparg_count < NUM_FPR_ARG_REGISTERS64) -- *fpr_base.d++ = double_tmp; - fparg_count++; - FFI_ASSERT (__LDBL_MANT_DIG__ == 106); - FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); -@@ -527,27 +594,86 @@ ffi_prep_args64 (extended_cif *ecif, uns - #endif - - case FFI_TYPE_STRUCT: -- words = ((*ptr)->size + 7) / 8; -- if (next_arg.ul >= gpr_base.ul && next_arg.ul + words > gpr_end.ul) -+#ifdef __STRUCT_PARM_ALIGN__ -+ align = (*ptr)->alignment; -+ if (align > __STRUCT_PARM_ALIGN__) -+ align = __STRUCT_PARM_ALIGN__; -+ if (align > 1) -+ next_arg.p = ALIGN (next_arg.p, align); -+#endif -+ elt = 0; -+#if _CALL_ELF == 2 -+ elt = discover_homogeneous_aggregate (*ptr, &elnum); -+#endif -+ if (elt) - { -- size_t first = gpr_end.c - next_arg.c; -- memcpy (next_arg.c, *p_argv.c, first); -- memcpy (rest.c, *p_argv.c + first, (*ptr)->size - first); -- next_arg.c = rest.c + words * 8 - first; -+ union { -+ void *v; -+ float *f; -+ double *d; -+ } arg; -+ -+ arg.v = *p_argv.v; -+ if (elt == FFI_TYPE_FLOAT) -+ { -+ do -+ { -+ double_tmp = *arg.f++; -+ if (fparg_count < NUM_FPR_ARG_REGISTERS64 -+ && i < nfixedargs) -+ *fpr_base.d++ = double_tmp; -+ else -+ *next_arg.f = (float) double_tmp; -+ if (++next_arg.f == gpr_end.f) -+ next_arg.f = rest.f; -+ fparg_count++; -+ } -+ while (--elnum != 0); -+ if ((next_arg.p & 3) != 0) -+ { -+ if (++next_arg.f == gpr_end.f) -+ next_arg.f = rest.f; -+ } -+ } -+ else -+ do -+ { -+ double_tmp = *arg.d++; -+ if (fparg_count < NUM_FPR_ARG_REGISTERS64 && i < nfixedargs) -+ *fpr_base.d++ = double_tmp; -+ else -+ *next_arg.d = double_tmp; -+ if (++next_arg.d == gpr_end.d) -+ next_arg.d = rest.d; -+ fparg_count++; -+ } -+ while (--elnum != 0); - } - else - { -- char *where = next_arg.c; -- -- /* Structures with size less than eight bytes are passed -- left-padded. */ -- if ((*ptr)->size < 8) -- where += 8 - (*ptr)->size; -+ words = ((*ptr)->size + 7) / 8; -+ if (next_arg.ul >= gpr_base.ul && next_arg.ul + words > gpr_end.ul) -+ { -+ size_t first = gpr_end.c - next_arg.c; -+ memcpy (next_arg.c, *p_argv.c, first); -+ memcpy (rest.c, *p_argv.c + first, (*ptr)->size - first); -+ next_arg.c = rest.c + words * 8 - first; -+ } -+ else -+ { -+ char *where = next_arg.c; - -- memcpy (where, *p_argv.c, (*ptr)->size); -- next_arg.ul += words; -- if (next_arg.ul == gpr_end.ul) -- next_arg.ul = rest.ul; -+#ifndef __LITTLE_ENDIAN__ -+ /* Structures with size less than eight bytes are passed -+ left-padded. */ -+ if ((*ptr)->size < 8) -+ where += 8 - (*ptr)->size; -+#endif -+ memcpy (where, *p_argv.c, (*ptr)->size); -+ next_arg.ul += words; -+ if (next_arg.ul == gpr_end.ul) -+ next_arg.ul = rest.ul; -+ } - } - break; - -@@ -591,27 +717,22 @@ ffi_prep_args64 (extended_cif *ecif, uns - - - /* Perform machine dependent cif processing */ --ffi_status --ffi_prep_cif_machdep (ffi_cif *cif) -+static ffi_status -+ffi_prep_cif_machdep_core (ffi_cif *cif) - { - /* All this is for the SYSV and LINUX64 ABI. */ -- int i; - ffi_type **ptr; - unsigned bytes; -- int fparg_count = 0, intarg_count = 0; -- unsigned flags = 0; -+ unsigned i, fparg_count = 0, intarg_count = 0; -+ unsigned flags = cif->flags; - unsigned struct_copy_size = 0; - unsigned type = cif->rtype->type; - unsigned size = cif->rtype->size; - -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- NUM_FPR_ARG_REGISTERS = 0; -- -+ /* The machine-independent calculation of cif->bytes doesn't work -+ for us. Redo the calculation. */ - if (cif->abi != FFI_LINUX64) - { -- /* All the machine-independent calculation of cif->bytes will be wrong. -- Redo the calculation for SYSV. */ -- - /* Space for the frame pointer, callee's LR, and the asm's temp regs. */ - bytes = (2 + ASM_NEEDS_REGISTERS) * sizeof (int); - -@@ -621,13 +742,20 @@ ffi_prep_cif_machdep (ffi_cif *cif) - else - { - /* 64-bit ABI. */ -+#if _CALL_ELF == 2 -+ /* Space for backchain, CR, LR, TOC and the asm's temp regs. */ -+ bytes = (4 + ASM_NEEDS_REGISTERS64) * sizeof (long); - -+ /* Space for the general registers. */ -+ bytes += NUM_GPR_ARG_REGISTERS64 * sizeof (long); -+#else - /* Space for backchain, CR, LR, cc/ld doubleword, TOC and the asm's temp - regs. */ - bytes = (6 + ASM_NEEDS_REGISTERS64) * sizeof (long); - - /* Space for the mandatory parm save area and general registers. */ - bytes += 2 * NUM_GPR_ARG_REGISTERS64 * sizeof (long); -+#endif - } - - /* Return value handling. The rules for SYSV are as follows: -@@ -646,13 +774,30 @@ ffi_prep_cif_machdep (ffi_cif *cif) - - Single/double FP values in fpr1, long double in fpr1,fpr2. - - soft-float float/doubles are treated as UINT32/UINT64 respectivley. - - soft-float long doubles are returned in gpr3-gpr6. */ -+ /* First translate for softfloat/nonlinux */ -+ if (cif->abi == FFI_LINUX_SOFT_FLOAT) -+ { -+ if (type == FFI_TYPE_FLOAT) -+ type = FFI_TYPE_UINT32; -+ if (type == FFI_TYPE_DOUBLE) -+ type = FFI_TYPE_UINT64; -+ if (type == FFI_TYPE_LONGDOUBLE) -+ type = FFI_TYPE_UINT128; -+ } -+ else if (cif->abi != FFI_LINUX -+ && cif->abi != FFI_LINUX64) -+ { -+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -+ if (type == FFI_TYPE_LONGDOUBLE) -+ type = FFI_TYPE_STRUCT; -+#endif -+ } -+ - switch (type) - { -+#ifndef __NO_FPRS__ - #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE - case FFI_TYPE_LONGDOUBLE: -- if (cif->abi != FFI_LINUX && cif->abi != FFI_LINUX64 -- && cif->abi != FFI_LINUX_SOFT_FLOAT) -- goto byref; - flags |= FLAG_RETURNS_128BITS; - /* Fall through. */ - #endif -@@ -660,47 +805,52 @@ ffi_prep_cif_machdep (ffi_cif *cif) - flags |= FLAG_RETURNS_64BITS; - /* Fall through. */ - case FFI_TYPE_FLOAT: -- /* With FFI_LINUX_SOFT_FLOAT no fp registers are used. */ -- if (cif->abi != FFI_LINUX_SOFT_FLOAT) -- flags |= FLAG_RETURNS_FP; -+ flags |= FLAG_RETURNS_FP; - break; -+#endif - -+ case FFI_TYPE_UINT128: -+ flags |= FLAG_RETURNS_128BITS; -+ /* Fall through. */ - case FFI_TYPE_UINT64: - case FFI_TYPE_SINT64: - flags |= FLAG_RETURNS_64BITS; - break; - - case FFI_TYPE_STRUCT: -- if (cif->abi == FFI_SYSV) -+ /* -+ * The final SYSV ABI says that structures smaller or equal 8 bytes -+ * are returned in r3/r4. The FFI_GCC_SYSV ABI instead returns them -+ * in memory. -+ * -+ * NOTE: The assembly code can safely assume that it just needs to -+ * store both r3 and r4 into a 8-byte word-aligned buffer, as -+ * we allocate a temporary buffer in ffi_call() if this flag is -+ * set. -+ */ -+ if (cif->abi == FFI_SYSV && size <= 8) - { -- /* The final SYSV ABI says that structures smaller or equal 8 bytes -- are returned in r3/r4. The FFI_GCC_SYSV ABI instead returns them -- in memory. */ -- -- /* Treat structs with size <= 8 bytes. */ -- if (size <= 8) -+ flags |= FLAG_RETURNS_SMST; -+ break; -+ } -+#if _CALL_ELF == 2 -+ if (cif->abi == FFI_LINUX64) -+ { -+ unsigned int elt, elnum; -+ elt = discover_homogeneous_aggregate (cif->rtype, &elnum); -+ if (elt) -+ { -+ if (elt == FFI_TYPE_DOUBLE) -+ flags |= FLAG_RETURNS_64BITS; -+ flags |= FLAG_RETURNS_FP | FLAG_RETURNS_SMST; -+ break; -+ } -+ if (size <= 16) - { - flags |= FLAG_RETURNS_SMST; -- /* These structs are returned in r3. We pack the type and the -- precalculated shift value (needed in the sysv.S) into flags. -- The same applies for the structs returned in r3/r4. */ -- if (size <= 4) -- { -- flags |= FLAG_SYSV_SMST_R3; -- flags |= 8 * (4 - size) << 8; -- break; -- } -- /* These structs are returned in r3 and r4. See above. */ -- if (size <= 8) -- { -- flags |= FLAG_SYSV_SMST_R3 | FLAG_SYSV_SMST_R4; -- flags |= 8 * (8 - size) << 8; -- break; -- } -+ break; - } - } --#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -- byref: - #endif - intarg_count++; - flags |= FLAG_RETVAL_REFERENCE; -@@ -722,39 +872,36 @@ ffi_prep_cif_machdep (ffi_cif *cif) - Stuff on the stack needs to keep proper alignment. */ - for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++) - { -- switch ((*ptr)->type) -- { -+ unsigned short typenum = (*ptr)->type; -+ -+ /* We may need to handle some values depending on ABI */ -+ if (cif->abi == FFI_LINUX_SOFT_FLOAT) { -+ if (typenum == FFI_TYPE_FLOAT) -+ typenum = FFI_TYPE_UINT32; -+ if (typenum == FFI_TYPE_DOUBLE) -+ typenum = FFI_TYPE_UINT64; -+ if (typenum == FFI_TYPE_LONGDOUBLE) -+ typenum = FFI_TYPE_UINT128; -+ } else if (cif->abi != FFI_LINUX && cif->abi != FFI_LINUX64) { -+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -+ if (typenum == FFI_TYPE_LONGDOUBLE) -+ typenum = FFI_TYPE_STRUCT; -+#endif -+ } -+ -+ switch (typenum) { -+#ifndef __NO_FPRS__ - case FFI_TYPE_FLOAT: -- /* With FFI_LINUX_SOFT_FLOAT floats are handled like UINT32. */ -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- goto soft_float_cif; - fparg_count++; - /* floating singles are not 8-aligned on stack */ - break; - - #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE - case FFI_TYPE_LONGDOUBLE: -- if (cif->abi != FFI_LINUX && cif->abi != FFI_LINUX_SOFT_FLOAT) -- goto do_struct; -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- { -- if (intarg_count >= NUM_GPR_ARG_REGISTERS - 3 -- || intarg_count < NUM_GPR_ARG_REGISTERS) -- /* A long double in FFI_LINUX_SOFT_FLOAT can use only -- a set of four consecutive gprs. If we have not enough, -- we have to adjust the intarg_count value. */ -- intarg_count += NUM_GPR_ARG_REGISTERS - intarg_count; -- intarg_count += 4; -- break; -- } -- else -- fparg_count++; -+ fparg_count++; - /* Fall thru */ - #endif - case FFI_TYPE_DOUBLE: -- /* With FFI_LINUX_SOFT_FLOAT doubles are handled like UINT64. */ -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- goto soft_double_cif; - fparg_count++; - /* If this FP arg is going on the stack, it must be - 8-byte-aligned. */ -@@ -763,10 +910,21 @@ ffi_prep_cif_machdep (ffi_cif *cif) - && intarg_count % 2 != 0) - intarg_count++; - break; -+#endif -+ case FFI_TYPE_UINT128: -+ /* -+ * A long double in FFI_LINUX_SOFT_FLOAT can use only a set -+ * of four consecutive gprs. If we do not have enough, we -+ * have to adjust the intarg_count value. -+ */ -+ if (intarg_count >= NUM_GPR_ARG_REGISTERS - 3 -+ && intarg_count < NUM_GPR_ARG_REGISTERS) -+ intarg_count = NUM_GPR_ARG_REGISTERS; -+ intarg_count += 4; -+ break; - - case FFI_TYPE_UINT64: - case FFI_TYPE_SINT64: -- soft_double_cif: - /* 'long long' arguments are passed as two words, but - either both words must fit in registers or both go - on the stack. If they go on the stack, they must -@@ -783,9 +941,6 @@ ffi_prep_cif_machdep (ffi_cif *cif) - break; - - case FFI_TYPE_STRUCT: --#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -- do_struct: --#endif - /* We must allocate space for a copy of these to enforce - pass-by-value. Pad the space up to a multiple of 16 - bytes (the maximum alignment required for anything under -@@ -793,50 +948,100 @@ ffi_prep_cif_machdep (ffi_cif *cif) - struct_copy_size += ((*ptr)->size + 15) & ~0xF; - /* Fall through (allocate space for the pointer). */ - -- default: -- soft_float_cif: -+ case FFI_TYPE_POINTER: -+ case FFI_TYPE_INT: -+ case FFI_TYPE_UINT32: -+ case FFI_TYPE_SINT32: -+ case FFI_TYPE_UINT16: -+ case FFI_TYPE_SINT16: -+ case FFI_TYPE_UINT8: -+ case FFI_TYPE_SINT8: - /* Everything else is passed as a 4-byte word in a GPR, either - the object itself or a pointer to it. */ - intarg_count++; - break; -+ default: -+ FFI_ASSERT (0); - } - } - else - for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++) - { -+ unsigned int elt, elnum; -+#ifdef __STRUCT_PARM_ALIGN__ -+ unsigned int align; -+#endif -+ - switch ((*ptr)->type) - { - #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE - case FFI_TYPE_LONGDOUBLE: -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- intarg_count += 4; -- else -- { -- fparg_count += 2; -- intarg_count += 2; -- } -+ fparg_count += 2; -+ intarg_count += 2; -+ if (fparg_count > NUM_FPR_ARG_REGISTERS64) -+ flags |= FLAG_ARG_NEEDS_PSAVE; - break; - #endif - case FFI_TYPE_FLOAT: - case FFI_TYPE_DOUBLE: - fparg_count++; - intarg_count++; -+ if (fparg_count > NUM_FPR_ARG_REGISTERS64) -+ flags |= FLAG_ARG_NEEDS_PSAVE; - break; - - case FFI_TYPE_STRUCT: -+#ifdef __STRUCT_PARM_ALIGN__ -+ align = (*ptr)->alignment; -+ if (align > __STRUCT_PARM_ALIGN__) -+ align = __STRUCT_PARM_ALIGN__; -+ align = align / 8; -+ if (align > 1) -+ intarg_count = ALIGN (intarg_count, align); -+#endif - intarg_count += ((*ptr)->size + 7) / 8; -+ elt = 0; -+#if _CALL_ELF == 2 -+ elt = discover_homogeneous_aggregate (*ptr, &elnum); -+#endif -+ if (elt) -+ { -+ fparg_count += elnum; -+ if (fparg_count > NUM_FPR_ARG_REGISTERS64) -+ flags |= FLAG_ARG_NEEDS_PSAVE; -+ } -+ else -+ { -+ if (intarg_count > NUM_GPR_ARG_REGISTERS64) -+ flags |= FLAG_ARG_NEEDS_PSAVE; -+ } - break; - -- default: -+ case FFI_TYPE_POINTER: -+ case FFI_TYPE_UINT64: -+ case FFI_TYPE_SINT64: -+ case FFI_TYPE_INT: -+ case FFI_TYPE_UINT32: -+ case FFI_TYPE_SINT32: -+ case FFI_TYPE_UINT16: -+ case FFI_TYPE_SINT16: -+ case FFI_TYPE_UINT8: -+ case FFI_TYPE_SINT8: - /* Everything else is passed as a 8-byte word in a GPR, either - the object itself or a pointer to it. */ - intarg_count++; -+ if (intarg_count > NUM_GPR_ARG_REGISTERS64) -+ flags |= FLAG_ARG_NEEDS_PSAVE; - break; -+ default: -+ FFI_ASSERT (0); - } - } - -+#ifndef __NO_FPRS__ - if (fparg_count != 0) - flags |= FLAG_FP_ARGUMENTS; -+#endif - if (intarg_count > 4) - flags |= FLAG_4_GPR_ARGUMENTS; - if (struct_copy_size != 0) -@@ -844,25 +1049,36 @@ ffi_prep_cif_machdep (ffi_cif *cif) - - if (cif->abi != FFI_LINUX64) - { -+#ifndef __NO_FPRS__ - /* Space for the FPR registers, if needed. */ - if (fparg_count != 0) - bytes += NUM_FPR_ARG_REGISTERS * sizeof (double); -+#endif - - /* Stack space. */ - if (intarg_count > NUM_GPR_ARG_REGISTERS) - bytes += (intarg_count - NUM_GPR_ARG_REGISTERS) * sizeof (int); -+#ifndef __NO_FPRS__ - if (fparg_count > NUM_FPR_ARG_REGISTERS) - bytes += (fparg_count - NUM_FPR_ARG_REGISTERS) * sizeof (double); -+#endif - } - else - { -+#ifndef __NO_FPRS__ - /* Space for the FPR registers, if needed. */ - if (fparg_count != 0) - bytes += NUM_FPR_ARG_REGISTERS64 * sizeof (double); -+#endif - - /* Stack space. */ -+#if _CALL_ELF == 2 -+ if ((flags & FLAG_ARG_NEEDS_PSAVE) != 0) -+ bytes += intarg_count * sizeof (long); -+#else - if (intarg_count > NUM_GPR_ARG_REGISTERS64) - bytes += (intarg_count - NUM_GPR_ARG_REGISTERS64) * sizeof (long); -+#endif - } - - /* The stack space allocated needs to be a multiple of 16 bytes. */ -@@ -877,6 +1093,26 @@ ffi_prep_cif_machdep (ffi_cif *cif) - return FFI_OK; - } - -+ffi_status -+ffi_prep_cif_machdep (ffi_cif *cif) -+{ -+ cif->nfixedargs = cif->nargs; -+ return ffi_prep_cif_machdep_core (cif); -+} -+ -+ffi_status -+ffi_prep_cif_machdep_var (ffi_cif *cif, -+ unsigned int nfixedargs, -+ unsigned int ntotalargs MAYBE_UNUSED) -+{ -+ cif->nfixedargs = nfixedargs; -+#if _CALL_ELF == 2 -+ if (cif->abi == FFI_LINUX64) -+ cif->flags |= FLAG_ARG_NEEDS_PSAVE; -+#endif -+ return ffi_prep_cif_machdep_core (cif); -+} -+ - extern void ffi_call_SYSV(extended_cif *, unsigned, unsigned, unsigned *, - void (*fn)(void)); - extern void FFI_HIDDEN ffi_call_LINUX64(extended_cif *, unsigned long, -@@ -886,28 +1122,39 @@ extern void FFI_HIDDEN ffi_call_LINUX64( - void - ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) - { -+ /* -+ * The final SYSV ABI says that structures smaller or equal 8 bytes -+ * are returned in r3/r4. The FFI_GCC_SYSV ABI instead returns them -+ * in memory. -+ * -+ * We bounce-buffer SYSV small struct return values so that sysv.S -+ * can write r3 and r4 to memory without worrying about struct size. -+ * -+ * For ELFv2 ABI, use a bounce buffer for homogeneous structs too, -+ * for similar reasons. -+ */ -+ unsigned long smst_buffer[8]; - extended_cif ecif; - - ecif.cif = cif; - ecif.avalue = avalue; - -- /* If the return value is a struct and we don't have a return */ -- /* value address then we need to make one */ -- -- if ((rvalue == NULL) && (cif->rtype->type == FFI_TYPE_STRUCT)) -- { -- ecif.rvalue = alloca(cif->rtype->size); -- } -- else -- ecif.rvalue = rvalue; -- -+ ecif.rvalue = rvalue; -+ if ((cif->flags & FLAG_RETURNS_SMST) != 0) -+ ecif.rvalue = smst_buffer; -+ /* Ensure that we have a valid struct return value. -+ FIXME: Isn't this just papering over a user problem? */ -+ else if (!rvalue && cif->rtype->type == FFI_TYPE_STRUCT) -+ ecif.rvalue = alloca (cif->rtype->size); - - switch (cif->abi) - { - #ifndef POWERPC64 -+# ifndef __NO_FPRS__ - case FFI_SYSV: - case FFI_GCC_SYSV: - case FFI_LINUX: -+# endif - case FFI_LINUX_SOFT_FLOAT: - ffi_call_SYSV (&ecif, -cif->bytes, cif->flags, ecif.rvalue, fn); - break; -@@ -920,10 +1167,29 @@ ffi_call(ffi_cif *cif, void (*fn)(void), - FFI_ASSERT (0); - break; - } -+ -+ /* Check for a bounce-buffered return value */ -+ if (rvalue && ecif.rvalue == smst_buffer) -+ { -+ unsigned int rsize = cif->rtype->size; -+#ifndef __LITTLE_ENDIAN__ -+ /* The SYSV ABI returns a structure of up to 4 bytes in size -+ left-padded in r3. */ -+ if (cif->abi == FFI_SYSV && rsize <= 4) -+ memcpy (rvalue, (char *) smst_buffer + 4 - rsize, rsize); -+ /* The SYSV ABI returns a structure of up to 8 bytes in size -+ left-padded in r3/r4, and the ELFv2 ABI similarly returns a -+ structure of up to 8 bytes in size left-padded in r3. */ -+ else if (rsize <= 8) -+ memcpy (rvalue, (char *) smst_buffer + 8 - rsize, rsize); -+ else -+#endif -+ memcpy (rvalue, smst_buffer, rsize); -+ } - } - - --#ifndef POWERPC64 -+#if !defined POWERPC64 || _CALL_ELF == 2 - #define MIN_CACHE_LINE_SIZE 8 - - static void -@@ -947,16 +1213,38 @@ ffi_prep_closure_loc (ffi_closure *closu - void *codeloc) - { - #ifdef POWERPC64 -+# if _CALL_ELF == 2 -+ unsigned int *tramp = (unsigned int *) &closure->tramp[0]; -+ -+ if (cif->abi != FFI_LINUX64) -+ return FFI_BAD_ABI; -+ -+ tramp[0] = 0xe96c0018; /* 0: ld 11,2f-0b(12) */ -+ tramp[1] = 0xe98c0010; /* ld 12,1f-0b(12) */ -+ tramp[2] = 0x7d8903a6; /* mtctr 12 */ -+ tramp[3] = 0x4e800420; /* bctr */ -+ /* 1: .quad function_addr */ -+ /* 2: .quad context */ -+ *(void **) &tramp[4] = (void *) ffi_closure_LINUX64; -+ *(void **) &tramp[6] = codeloc; -+ flush_icache ((char *)tramp, (char *)codeloc, FFI_TRAMPOLINE_SIZE); -+# else - void **tramp = (void **) &closure->tramp[0]; - -- FFI_ASSERT (cif->abi == FFI_LINUX64); -+ if (cif->abi != FFI_LINUX64) -+ return FFI_BAD_ABI; - /* Copy function address and TOC from ffi_closure_LINUX64. */ - memcpy (tramp, (char *) ffi_closure_LINUX64, 16); - tramp[2] = codeloc; -+# endif - #else - unsigned int *tramp; - -- FFI_ASSERT (cif->abi == FFI_GCC_SYSV || cif->abi == FFI_SYSV); -+ if (! (cif->abi == FFI_GCC_SYSV -+ || cif->abi == FFI_SYSV -+ || cif->abi == FFI_LINUX -+ || cif->abi == FFI_LINUX_SOFT_FLOAT)) -+ return FFI_BAD_ABI; - - tramp = (unsigned int *) &closure->tramp[0]; - tramp[0] = 0x7c0802a6; /* mflr r0 */ -@@ -1011,32 +1299,38 @@ ffi_closure_helper_SYSV (ffi_closure *cl - void ** avalue; - ffi_type ** arg_types; - long i, avn; -- long nf; /* number of floating registers already used */ -- long ng; /* number of general registers already used */ -- ffi_cif * cif; -- double temp; -- unsigned size; -+#ifndef __NO_FPRS__ -+ long nf = 0; /* number of floating registers already used */ -+#endif -+ long ng = 0; /* number of general registers already used */ -+ -+ ffi_cif *cif = closure->cif; -+ unsigned size = cif->rtype->size; -+ unsigned short rtypenum = cif->rtype->type; - -- cif = closure->cif; - avalue = alloca (cif->nargs * sizeof (void *)); -- size = cif->rtype->size; - -- nf = 0; -- ng = 0; -+ /* First translate for softfloat/nonlinux */ -+ if (cif->abi == FFI_LINUX_SOFT_FLOAT) { -+ if (rtypenum == FFI_TYPE_FLOAT) -+ rtypenum = FFI_TYPE_UINT32; -+ if (rtypenum == FFI_TYPE_DOUBLE) -+ rtypenum = FFI_TYPE_UINT64; -+ if (rtypenum == FFI_TYPE_LONGDOUBLE) -+ rtypenum = FFI_TYPE_UINT128; -+ } else if (cif->abi != FFI_LINUX && cif->abi != FFI_LINUX64) { -+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -+ if (rtypenum == FFI_TYPE_LONGDOUBLE) -+ rtypenum = FFI_TYPE_STRUCT; -+#endif -+ } -+ - - /* Copy the caller's structure return value address so that the closure - returns the data directly to the caller. - For FFI_SYSV the result is passed in r3/r4 if the struct size is less - or equal 8 bytes. */ -- -- if ((cif->rtype->type == FFI_TYPE_STRUCT -- && !((cif->abi == FFI_SYSV) && (size <= 8))) --#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -- || (cif->rtype->type == FFI_TYPE_LONGDOUBLE -- && cif->abi != FFI_LINUX && cif->abi != FFI_LINUX_SOFT_FLOAT) --#endif -- ) -- { -+ if (rtypenum == FFI_TYPE_STRUCT && ((cif->abi != FFI_SYSV) || (size > 8))) { - rvalue = (void *) *pgr; - ng++; - pgr++; -@@ -1047,12 +1341,112 @@ ffi_closure_helper_SYSV (ffi_closure *cl - arg_types = cif->arg_types; - - /* Grab the addresses of the arguments from the stack frame. */ -- while (i < avn) -- { -- switch (arg_types[i]->type) -- { -+ while (i < avn) { -+ unsigned short typenum = arg_types[i]->type; -+ -+ /* We may need to handle some values depending on ABI */ -+ if (cif->abi == FFI_LINUX_SOFT_FLOAT) { -+ if (typenum == FFI_TYPE_FLOAT) -+ typenum = FFI_TYPE_UINT32; -+ if (typenum == FFI_TYPE_DOUBLE) -+ typenum = FFI_TYPE_UINT64; -+ if (typenum == FFI_TYPE_LONGDOUBLE) -+ typenum = FFI_TYPE_UINT128; -+ } else if (cif->abi != FFI_LINUX && cif->abi != FFI_LINUX64) { -+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -+ if (typenum == FFI_TYPE_LONGDOUBLE) -+ typenum = FFI_TYPE_STRUCT; -+#endif -+ } -+ -+ switch (typenum) { -+#ifndef __NO_FPRS__ -+ case FFI_TYPE_FLOAT: -+ /* unfortunately float values are stored as doubles -+ * in the ffi_closure_SYSV code (since we don't check -+ * the type in that routine). -+ */ -+ -+ /* there are 8 64bit floating point registers */ -+ -+ if (nf < 8) -+ { -+ double temp = pfr->d; -+ pfr->f = (float) temp; -+ avalue[i] = pfr; -+ nf++; -+ pfr++; -+ } -+ else -+ { -+ /* FIXME? here we are really changing the values -+ * stored in the original calling routines outgoing -+ * parameter stack. This is probably a really -+ * naughty thing to do but... -+ */ -+ avalue[i] = pst; -+ pst += 1; -+ } -+ break; -+ -+ case FFI_TYPE_DOUBLE: -+ /* On the outgoing stack all values are aligned to 8 */ -+ /* there are 8 64bit floating point registers */ -+ -+ if (nf < 8) -+ { -+ avalue[i] = pfr; -+ nf++; -+ pfr++; -+ } -+ else -+ { -+ if (((long) pst) & 4) -+ pst++; -+ avalue[i] = pst; -+ pst += 2; -+ } -+ break; -+ -+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -+ case FFI_TYPE_LONGDOUBLE: -+ if (nf < 7) -+ { -+ avalue[i] = pfr; -+ pfr += 2; -+ nf += 2; -+ } -+ else -+ { -+ if (((long) pst) & 4) -+ pst++; -+ avalue[i] = pst; -+ pst += 4; -+ nf = 8; -+ } -+ break; -+#endif -+#endif /* have FPRS */ -+ -+ case FFI_TYPE_UINT128: -+ /* -+ * Test if for the whole long double, 4 gprs are available. -+ * otherwise the stuff ends up on the stack. -+ */ -+ if (ng < 5) { -+ avalue[i] = pgr; -+ pgr += 4; -+ ng += 4; -+ } else { -+ avalue[i] = pst; -+ pst += 4; -+ ng = 8+4; -+ } -+ break; -+ - case FFI_TYPE_SINT8: - case FFI_TYPE_UINT8: -+#ifndef __LITTLE_ENDIAN__ - /* there are 8 gpr registers used to pass values */ - if (ng < 8) - { -@@ -1066,9 +1460,11 @@ ffi_closure_helper_SYSV (ffi_closure *cl - pst++; - } - break; -+#endif - - case FFI_TYPE_SINT16: - case FFI_TYPE_UINT16: -+#ifndef __LITTLE_ENDIAN__ - /* there are 8 gpr registers used to pass values */ - if (ng < 8) - { -@@ -1082,11 +1478,11 @@ ffi_closure_helper_SYSV (ffi_closure *cl - pst++; - } - break; -+#endif - - case FFI_TYPE_SINT32: - case FFI_TYPE_UINT32: - case FFI_TYPE_POINTER: -- soft_float_closure: - /* there are 8 gpr registers used to pass values */ - if (ng < 8) - { -@@ -1102,9 +1498,6 @@ ffi_closure_helper_SYSV (ffi_closure *cl - break; - - case FFI_TYPE_STRUCT: --#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -- do_struct: --#endif - /* Structs are passed by reference. The address will appear in a - gpr if it is one of the first 8 arguments. */ - if (ng < 8) -@@ -1122,7 +1515,6 @@ ffi_closure_helper_SYSV (ffi_closure *cl - - case FFI_TYPE_SINT64: - case FFI_TYPE_UINT64: -- soft_double_closure: - /* passing long long ints are complex, they must - * be passed in suitable register pairs such as - * (r3,r4) or (r5,r6) or (r6,r7), or (r7,r8) or (r9,r10) -@@ -1154,99 +1546,8 @@ ffi_closure_helper_SYSV (ffi_closure *cl - } - break; - -- case FFI_TYPE_FLOAT: -- /* With FFI_LINUX_SOFT_FLOAT floats are handled like UINT32. */ -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- goto soft_float_closure; -- /* unfortunately float values are stored as doubles -- * in the ffi_closure_SYSV code (since we don't check -- * the type in that routine). -- */ -- -- /* there are 8 64bit floating point registers */ -- -- if (nf < 8) -- { -- temp = pfr->d; -- pfr->f = (float) temp; -- avalue[i] = pfr; -- nf++; -- pfr++; -- } -- else -- { -- /* FIXME? here we are really changing the values -- * stored in the original calling routines outgoing -- * parameter stack. This is probably a really -- * naughty thing to do but... -- */ -- avalue[i] = pst; -- pst += 1; -- } -- break; -- -- case FFI_TYPE_DOUBLE: -- /* With FFI_LINUX_SOFT_FLOAT doubles are handled like UINT64. */ -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- goto soft_double_closure; -- /* On the outgoing stack all values are aligned to 8 */ -- /* there are 8 64bit floating point registers */ -- -- if (nf < 8) -- { -- avalue[i] = pfr; -- nf++; -- pfr++; -- } -- else -- { -- if (((long) pst) & 4) -- pst++; -- avalue[i] = pst; -- pst += 2; -- } -- break; -- --#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -- case FFI_TYPE_LONGDOUBLE: -- if (cif->abi != FFI_LINUX && cif->abi != FFI_LINUX_SOFT_FLOAT) -- goto do_struct; -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- { /* Test if for the whole long double, 4 gprs are available. -- otherwise the stuff ends up on the stack. */ -- if (ng < 5) -- { -- avalue[i] = pgr; -- pgr += 4; -- ng += 4; -- } -- else -- { -- avalue[i] = pst; -- pst += 4; -- ng = 8; -- } -- break; -- } -- if (nf < 7) -- { -- avalue[i] = pfr; -- pfr += 2; -- nf += 2; -- } -- else -- { -- if (((long) pst) & 4) -- pst++; -- avalue[i] = pst; -- pst += 4; -- nf = 8; -- } -- break; --#endif -- - default: -- FFI_ASSERT (0); -+ FFI_ASSERT (0); - } - - i++; -@@ -1263,39 +1564,9 @@ ffi_closure_helper_SYSV (ffi_closure *cl - already used and we never have a struct with size zero. That is the reason - for the subtraction of 1. See the comment in ffitarget.h about ordering. - */ -- if (cif->abi == FFI_SYSV && cif->rtype->type == FFI_TYPE_STRUCT -- && size <= 8) -+ if (cif->abi == FFI_SYSV && rtypenum == FFI_TYPE_STRUCT && size <= 8) - return (FFI_SYSV_TYPE_SMALL_STRUCT - 1) + size; --#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -- else if (cif->rtype->type == FFI_TYPE_LONGDOUBLE -- && cif->abi != FFI_LINUX && cif->abi != FFI_LINUX_SOFT_FLOAT) -- return FFI_TYPE_STRUCT; --#endif -- /* With FFI_LINUX_SOFT_FLOAT floats and doubles are handled like UINT32 -- respectivley UINT64. */ -- if (cif->abi == FFI_LINUX_SOFT_FLOAT) -- { -- switch (cif->rtype->type) -- { -- case FFI_TYPE_FLOAT: -- return FFI_TYPE_UINT32; -- break; -- case FFI_TYPE_DOUBLE: -- return FFI_TYPE_UINT64; -- break; --#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE -- case FFI_TYPE_LONGDOUBLE: -- return FFI_TYPE_UINT128; -- break; --#endif -- default: -- return cif->rtype->type; -- } -- } -- else -- { -- return cif->rtype->type; -- } -+ return rtypenum; - } - - int FFI_HIDDEN ffi_closure_helper_LINUX64 (ffi_closure *, void *, -@@ -1312,16 +1583,20 @@ ffi_closure_helper_LINUX64 (ffi_closure - - void **avalue; - ffi_type **arg_types; -- long i, avn; -+ unsigned long i, avn, nfixedargs; - ffi_cif *cif; - ffi_dblfl *end_pfr = pfr + NUM_FPR_ARG_REGISTERS64; -+#ifdef __STRUCT_PARM_ALIGN__ -+ unsigned long align; -+#endif - - cif = closure->cif; - avalue = alloca (cif->nargs * sizeof (void *)); - -- /* Copy the caller's structure return value address so that the closure -- returns the data directly to the caller. */ -- if (cif->rtype->type == FFI_TYPE_STRUCT) -+ /* Copy the caller's structure return value address so that the -+ closure returns the data directly to the caller. */ -+ if (cif->rtype->type == FFI_TYPE_STRUCT -+ && (cif->flags & FLAG_RETURNS_SMST) == 0) - { - rvalue = (void *) *pst; - pst++; -@@ -1329,30 +1604,39 @@ ffi_closure_helper_LINUX64 (ffi_closure - - i = 0; - avn = cif->nargs; -+ nfixedargs = cif->nfixedargs; - arg_types = cif->arg_types; - - /* Grab the addresses of the arguments from the stack frame. */ - while (i < avn) - { -+ unsigned int elt, elnum; -+ - switch (arg_types[i]->type) - { - case FFI_TYPE_SINT8: - case FFI_TYPE_UINT8: -+#ifndef __LITTLE_ENDIAN__ - avalue[i] = (char *) pst + 7; - pst++; - break; -+#endif - - case FFI_TYPE_SINT16: - case FFI_TYPE_UINT16: -+#ifndef __LITTLE_ENDIAN__ - avalue[i] = (char *) pst + 6; - pst++; - break; -+#endif - - case FFI_TYPE_SINT32: - case FFI_TYPE_UINT32: -+#ifndef __LITTLE_ENDIAN__ - avalue[i] = (char *) pst + 4; - pst++; - break; -+#endif - - case FFI_TYPE_SINT64: - case FFI_TYPE_UINT64: -@@ -1362,12 +1646,82 @@ ffi_closure_helper_LINUX64 (ffi_closure - break; - - case FFI_TYPE_STRUCT: -- /* Structures with size less than eight bytes are passed -- left-padded. */ -- if (arg_types[i]->size < 8) -- avalue[i] = (char *) pst + 8 - arg_types[i]->size; -+#ifdef __STRUCT_PARM_ALIGN__ -+ align = arg_types[i]->alignment; -+ if (align > __STRUCT_PARM_ALIGN__) -+ align = __STRUCT_PARM_ALIGN__; -+ if (align > 1) -+ pst = (unsigned long *) ALIGN ((size_t) pst, align); -+#endif -+ elt = 0; -+#if _CALL_ELF == 2 -+ elt = discover_homogeneous_aggregate (arg_types[i], &elnum); -+#endif -+ if (elt) -+ { -+ union { -+ void *v; -+ unsigned long *ul; -+ float *f; -+ double *d; -+ size_t p; -+ } to, from; -+ -+ /* Repackage the aggregate from its parts. The -+ aggregate size is not greater than the space taken by -+ the registers so store back to the register/parameter -+ save arrays. */ -+ if (pfr + elnum <= end_pfr) -+ to.v = pfr; -+ else -+ to.v = pst; -+ -+ avalue[i] = to.v; -+ from.ul = pst; -+ if (elt == FFI_TYPE_FLOAT) -+ { -+ do -+ { -+ if (pfr < end_pfr && i < nfixedargs) -+ { -+ *to.f = (float) pfr->d; -+ pfr++; -+ } -+ else -+ *to.f = *from.f; -+ to.f++; -+ from.f++; -+ } -+ while (--elnum != 0); -+ } -+ else -+ { -+ do -+ { -+ if (pfr < end_pfr && i < nfixedargs) -+ { -+ *to.d = pfr->d; -+ pfr++; -+ } -+ else -+ *to.d = *from.d; -+ to.d++; -+ from.d++; -+ } -+ while (--elnum != 0); -+ } -+ } - else -- avalue[i] = pst; -+ { -+#ifndef __LITTLE_ENDIAN__ -+ /* Structures with size less than eight bytes are passed -+ left-padded. */ -+ if (arg_types[i]->size < 8) -+ avalue[i] = (char *) pst + 8 - arg_types[i]->size; -+ else -+#endif -+ avalue[i] = pst; -+ } - pst += (arg_types[i]->size + 7) / 8; - break; - -@@ -1379,7 +1733,7 @@ ffi_closure_helper_LINUX64 (ffi_closure - - /* there are 13 64bit floating point registers */ - -- if (pfr < end_pfr) -+ if (pfr < end_pfr && i < nfixedargs) - { - double temp = pfr->d; - pfr->f = (float) temp; -@@ -1395,7 +1749,7 @@ ffi_closure_helper_LINUX64 (ffi_closure - /* On the outgoing stack all values are aligned to 8 */ - /* there are 13 64bit floating point registers */ - -- if (pfr < end_pfr) -+ if (pfr < end_pfr && i < nfixedargs) - { - avalue[i] = pfr; - pfr++; -@@ -1407,14 +1761,14 @@ ffi_closure_helper_LINUX64 (ffi_closure - - #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE - case FFI_TYPE_LONGDOUBLE: -- if (pfr + 1 < end_pfr) -+ if (pfr + 1 < end_pfr && i + 1 < nfixedargs) - { - avalue[i] = pfr; - pfr += 2; - } - else - { -- if (pfr < end_pfr) -+ if (pfr < end_pfr && i < nfixedargs) - { - /* Passed partly in f13 and partly on the stack. - Move it all to the stack. */ -@@ -1438,5 +1792,14 @@ ffi_closure_helper_LINUX64 (ffi_closure - (closure->fun) (cif, rvalue, avalue, closure->user_data); - - /* Tell ffi_closure_LINUX64 how to perform return type promotions. */ -+ if ((cif->flags & FLAG_RETURNS_SMST) != 0) -+ { -+ if ((cif->flags & FLAG_RETURNS_FP) == 0) -+ return FFI_V2_TYPE_SMALL_STRUCT + cif->rtype->size - 1; -+ else if ((cif->flags & FLAG_RETURNS_64BITS) != 0) -+ return FFI_V2_TYPE_DOUBLE_HOMOG; -+ else -+ return FFI_V2_TYPE_FLOAT_HOMOG; -+ } - return cif->rtype->type; - } -Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/ffitarget.h -=================================================================== ---- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/ffitarget.h -+++ mozilla-release/js/src/ctypes/libffi/src/powerpc/ffitarget.h -@@ -1,6 +1,8 @@ - /* -----------------------------------------------------------------*-C-*- -- ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc. -- Copyright (C) 2007, 2008 Free Software Foundation, Inc -+ ffitarget.h - Copyright (c) 2012 Anthony Green -+ Copyright (C) 2007, 2008, 2010 Free Software Foundation, Inc -+ Copyright (c) 1996-2003 Red Hat, Inc. -+ - Target configuration macros for PowerPC. - - Permission is hereby granted, free of charge, to any person obtaining -@@ -28,6 +30,10 @@ - #ifndef LIBFFI_TARGET_H - #define LIBFFI_TARGET_H - -+#ifndef LIBFFI_H -+#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead." -+#endif -+ - /* ---- System specific configurations ----------------------------------- */ - - #if defined (POWERPC) && defined (__powerpc64__) /* linux64 */ -@@ -57,18 +63,14 @@ typedef enum ffi_abi { - FFI_LINUX64, - FFI_LINUX, - FFI_LINUX_SOFT_FLOAT, --# ifdef POWERPC64 -+# if defined(POWERPC64) - FFI_DEFAULT_ABI = FFI_LINUX64, --# else --# if (!defined(__NO_FPRS__) && (__LDBL_MANT_DIG__ == 106)) -- FFI_DEFAULT_ABI = FFI_LINUX, --# else --# ifdef __NO_FPRS__ -+# elif defined(__NO_FPRS__) - FFI_DEFAULT_ABI = FFI_LINUX_SOFT_FLOAT, --# else -+# elif (__LDBL_MANT_DIG__ == 106) -+ FFI_DEFAULT_ABI = FFI_LINUX, -+# else - FFI_DEFAULT_ABI = FFI_GCC_SYSV, --# endif --# endif - # endif - #endif - -@@ -101,6 +103,10 @@ typedef enum ffi_abi { - - #define FFI_CLOSURES 1 - #define FFI_NATIVE_RAW_API 0 -+#if defined (POWERPC) || defined (POWERPC_FREEBSD) -+# define FFI_TARGET_SPECIFIC_VARIADIC 1 -+# define FFI_EXTRA_CIF_FIELDS unsigned nfixedargs -+#endif - - /* For additional types like the below, take care about the order in - ppc_closures.S. They must follow after the FFI_TYPE_LAST. */ -@@ -113,10 +119,19 @@ typedef enum ffi_abi { - defined in ffi.c, to determine the exact return type and its size. */ - #define FFI_SYSV_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 2) - --#if defined(POWERPC64) || defined(POWERPC_AIX) --#define FFI_TRAMPOLINE_SIZE 24 --#else /* POWERPC || POWERPC_AIX */ --#define FFI_TRAMPOLINE_SIZE 40 -+/* Used by ELFv2 for homogenous structure returns. */ -+#define FFI_V2_TYPE_FLOAT_HOMOG (FFI_TYPE_LAST + 1) -+#define FFI_V2_TYPE_DOUBLE_HOMOG (FFI_TYPE_LAST + 2) -+#define FFI_V2_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 3) -+ -+#if _CALL_ELF == 2 -+# define FFI_TRAMPOLINE_SIZE 32 -+#else -+# if defined(POWERPC64) || defined(POWERPC_AIX) -+# define FFI_TRAMPOLINE_SIZE 24 -+# else /* POWERPC || POWERPC_AIX */ -+# define FFI_TRAMPOLINE_SIZE 40 -+# endif - #endif - - #ifndef LIBFFI_ASM -Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/linux64.S -=================================================================== ---- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/linux64.S -+++ mozilla-release/js/src/ctypes/libffi/src/powerpc/linux64.S -@@ -30,16 +30,33 @@ - #include - - #ifdef __powerpc64__ -- .hidden ffi_call_LINUX64, .ffi_call_LINUX64 -- .globl ffi_call_LINUX64, .ffi_call_LINUX64 -+ .hidden ffi_call_LINUX64 -+ .globl ffi_call_LINUX64 -+# if _CALL_ELF == 2 -+ .text -+ffi_call_LINUX64: -+ addis %r2, %r12, .TOC.-ffi_call_LINUX64@ha -+ addi %r2, %r2, .TOC.-ffi_call_LINUX64@l -+ .localentry ffi_call_LINUX64, . - ffi_call_LINUX64 -+# else - .section ".opd","aw" - .align 3 - ffi_call_LINUX64: -+# ifdef _CALL_LINUX -+ .quad .L.ffi_call_LINUX64,.TOC.@tocbase,0 -+ .type ffi_call_LINUX64,@function -+ .text -+.L.ffi_call_LINUX64: -+# else -+ .hidden .ffi_call_LINUX64 -+ .globl .ffi_call_LINUX64 - .quad .ffi_call_LINUX64,.TOC.@tocbase,0 - .size ffi_call_LINUX64,24 - .type .ffi_call_LINUX64,@function - .text - .ffi_call_LINUX64: -+# endif -+# endif - .LFB1: - mflr %r0 - std %r28, -32(%r1) -@@ -54,22 +71,35 @@ ffi_call_LINUX64: - mr %r31, %r5 /* flags, */ - mr %r30, %r6 /* rvalue, */ - mr %r29, %r7 /* function address. */ -+/* Save toc pointer, not for the ffi_prep_args64 call, but for the later -+ bctrl function call. */ -+# if _CALL_ELF == 2 -+ std %r2, 24(%r1) -+# else - std %r2, 40(%r1) -+# endif - - /* Call ffi_prep_args64. */ - mr %r4, %r1 -+# if defined _CALL_LINUX || _CALL_ELF == 2 -+ bl ffi_prep_args64 -+# else - bl .ffi_prep_args64 -+# endif - -- ld %r0, 0(%r29) -+# if _CALL_ELF == 2 -+ mr %r12, %r29 -+# else -+ ld %r12, 0(%r29) - ld %r2, 8(%r29) - ld %r11, 16(%r29) -- -+# endif - /* Now do the call. */ - /* Set up cr1 with bits 4-7 of the flags. */ - mtcrf 0x40, %r31 - - /* Get the address to call into CTR. */ -- mtctr %r0 -+ mtctr %r12 - /* Load all those argument registers. */ - ld %r3, -32-(8*8)(%r28) - ld %r4, -32-(7*8)(%r28) -@@ -104,12 +134,17 @@ ffi_call_LINUX64: - - /* This must follow the call immediately, the unwinder - uses this to find out if r2 has been saved or not. */ -+# if _CALL_ELF == 2 -+ ld %r2, 24(%r1) -+# else - ld %r2, 40(%r1) -+# endif - - /* Now, deal with the return value. */ - mtcrf 0x01, %r31 -- bt- 30, .Ldone_return_value -- bt- 29, .Lfp_return_value -+ bt 31, .Lstruct_return_value -+ bt 30, .Ldone_return_value -+ bt 29, .Lfp_return_value - std %r3, 0(%r30) - /* Fall through... */ - -@@ -117,7 +152,7 @@ ffi_call_LINUX64: - /* Restore the registers we used and return. */ - mr %r1, %r28 - ld %r0, 16(%r28) -- ld %r28, -32(%r1) -+ ld %r28, -32(%r28) - mtlr %r0 - ld %r29, -24(%r1) - ld %r30, -16(%r1) -@@ -134,10 +169,48 @@ ffi_call_LINUX64: - .Lfloat_return_value: - stfs %f1, 0(%r30) - b .Ldone_return_value -+ -+.Lstruct_return_value: -+ bf 29, .Lsmall_struct -+ bf 28, .Lfloat_homog_return_value -+ stfd %f1, 0(%r30) -+ stfd %f2, 8(%r30) -+ stfd %f3, 16(%r30) -+ stfd %f4, 24(%r30) -+ stfd %f5, 32(%r30) -+ stfd %f6, 40(%r30) -+ stfd %f7, 48(%r30) -+ stfd %f8, 56(%r30) -+ b .Ldone_return_value -+ -+.Lfloat_homog_return_value: -+ stfs %f1, 0(%r30) -+ stfs %f2, 4(%r30) -+ stfs %f3, 8(%r30) -+ stfs %f4, 12(%r30) -+ stfs %f5, 16(%r30) -+ stfs %f6, 20(%r30) -+ stfs %f7, 24(%r30) -+ stfs %f8, 28(%r30) -+ b .Ldone_return_value -+ -+.Lsmall_struct: -+ std %r3, 0(%r30) -+ std %r4, 8(%r30) -+ b .Ldone_return_value -+ - .LFE1: - .long 0 - .byte 0,12,0,1,128,4,0,0 -+# if _CALL_ELF == 2 -+ .size ffi_call_LINUX64,.-ffi_call_LINUX64 -+# else -+# ifdef _CALL_LINUX -+ .size ffi_call_LINUX64,.-.L.ffi_call_LINUX64 -+# else - .size .ffi_call_LINUX64,.-.ffi_call_LINUX64 -+# endif -+# endif - - .section .eh_frame,EH_FRAME_FLAGS,@progbits - .Lframe1: -@@ -180,8 +253,8 @@ ffi_call_LINUX64: - .uleb128 0x4 - .align 3 - .LEFDE1: --#endif - --#if defined __ELF__ && defined __linux__ -+# if (defined __ELF__ && defined __linux__) || _CALL_ELF == 2 - .section .note.GNU-stack,"",@progbits -+# endif - #endif -Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/linux64_closure.S -=================================================================== ---- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/linux64_closure.S -+++ mozilla-release/js/src/ctypes/libffi/src/powerpc/linux64_closure.S -@@ -32,66 +32,125 @@ - - #ifdef __powerpc64__ - FFI_HIDDEN (ffi_closure_LINUX64) -- FFI_HIDDEN (.ffi_closure_LINUX64) -- .globl ffi_closure_LINUX64, .ffi_closure_LINUX64 -+ .globl ffi_closure_LINUX64 -+# if _CALL_ELF == 2 -+ .text -+ffi_closure_LINUX64: -+ addis %r2, %r12, .TOC.-ffi_closure_LINUX64@ha -+ addi %r2, %r2, .TOC.-ffi_closure_LINUX64@l -+ .localentry ffi_closure_LINUX64, . - ffi_closure_LINUX64 -+# else - .section ".opd","aw" - .align 3 - ffi_closure_LINUX64: -+# ifdef _CALL_LINUX -+ .quad .L.ffi_closure_LINUX64,.TOC.@tocbase,0 -+ .type ffi_closure_LINUX64,@function -+ .text -+.L.ffi_closure_LINUX64: -+# else -+ FFI_HIDDEN (.ffi_closure_LINUX64) -+ .globl .ffi_closure_LINUX64 - .quad .ffi_closure_LINUX64,.TOC.@tocbase,0 - .size ffi_closure_LINUX64,24 - .type .ffi_closure_LINUX64,@function - .text - .ffi_closure_LINUX64: -+# endif -+# endif -+ -+# if _CALL_ELF == 2 -+# 32 byte special reg save area + 64 byte parm save area -+# + 64 byte retval area + 13*8 fpr save area + round to 16 -+# define STACKFRAME 272 -+# define PARMSAVE 32 -+# define RETVAL PARMSAVE+64 -+# else -+# 48 bytes special reg save area + 64 bytes parm save area -+# + 16 bytes retval area + 13*8 bytes fpr save area + round to 16 -+# define STACKFRAME 240 -+# define PARMSAVE 48 -+# define RETVAL PARMSAVE+64 -+# endif -+ - .LFB1: -- # save general regs into parm save area -- std %r3, 48(%r1) -- std %r4, 56(%r1) -- std %r5, 64(%r1) -- std %r6, 72(%r1) -+# if _CALL_ELF == 2 -+ ld %r12, FFI_TRAMPOLINE_SIZE(%r11) # closure->cif -+ mflr %r0 -+ lwz %r12, 28(%r12) # cif->flags -+ mtcrf 0x40, %r12 -+ addi %r12, %r1, PARMSAVE -+ bt 7, .Lparmsave -+ # Our caller has not allocated a parameter save area. -+ # We need to allocate one here and use it to pass gprs to -+ # ffi_closure_helper_LINUX64. -+ addi %r12, %r1, -STACKFRAME+PARMSAVE -+.Lparmsave: -+ std %r0, 16(%r1) -+ # Save general regs into parm save area -+ std %r3, 0(%r12) -+ std %r4, 8(%r12) -+ std %r5, 16(%r12) -+ std %r6, 24(%r12) -+ std %r7, 32(%r12) -+ std %r8, 40(%r12) -+ std %r9, 48(%r12) -+ std %r10, 56(%r12) -+ -+ # load up the pointer to the parm save area -+ mr %r5, %r12 -+# else - mflr %r0 -+ # Save general regs into parm save area -+ # This is the parameter save area set up by our caller. -+ std %r3, PARMSAVE+0(%r1) -+ std %r4, PARMSAVE+8(%r1) -+ std %r5, PARMSAVE+16(%r1) -+ std %r6, PARMSAVE+24(%r1) -+ std %r7, PARMSAVE+32(%r1) -+ std %r8, PARMSAVE+40(%r1) -+ std %r9, PARMSAVE+48(%r1) -+ std %r10, PARMSAVE+56(%r1) - -- std %r7, 80(%r1) -- std %r8, 88(%r1) -- std %r9, 96(%r1) -- std %r10, 104(%r1) - std %r0, 16(%r1) - -- # mandatory 48 bytes special reg save area + 64 bytes parm save area -- # + 16 bytes retval area + 13*8 bytes fpr save area + round to 16 -- stdu %r1, -240(%r1) --.LCFI0: -+ # load up the pointer to the parm save area -+ addi %r5, %r1, PARMSAVE -+# endif - - # next save fpr 1 to fpr 13 -- stfd %f1, 128+(0*8)(%r1) -- stfd %f2, 128+(1*8)(%r1) -- stfd %f3, 128+(2*8)(%r1) -- stfd %f4, 128+(3*8)(%r1) -- stfd %f5, 128+(4*8)(%r1) -- stfd %f6, 128+(5*8)(%r1) -- stfd %f7, 128+(6*8)(%r1) -- stfd %f8, 128+(7*8)(%r1) -- stfd %f9, 128+(8*8)(%r1) -- stfd %f10, 128+(9*8)(%r1) -- stfd %f11, 128+(10*8)(%r1) -- stfd %f12, 128+(11*8)(%r1) -- stfd %f13, 128+(12*8)(%r1) -+ stfd %f1, -104+(0*8)(%r1) -+ stfd %f2, -104+(1*8)(%r1) -+ stfd %f3, -104+(2*8)(%r1) -+ stfd %f4, -104+(3*8)(%r1) -+ stfd %f5, -104+(4*8)(%r1) -+ stfd %f6, -104+(5*8)(%r1) -+ stfd %f7, -104+(6*8)(%r1) -+ stfd %f8, -104+(7*8)(%r1) -+ stfd %f9, -104+(8*8)(%r1) -+ stfd %f10, -104+(9*8)(%r1) -+ stfd %f11, -104+(10*8)(%r1) -+ stfd %f12, -104+(11*8)(%r1) -+ stfd %f13, -104+(12*8)(%r1) - -- # set up registers for the routine that actually does the work -- # get the context pointer from the trampoline -- mr %r3, %r11 -+ # load up the pointer to the saved fpr registers */ -+ addi %r6, %r1, -104 - -- # now load up the pointer to the result storage -- addi %r4, %r1, 112 -+ # load up the pointer to the result storage -+ addi %r4, %r1, -STACKFRAME+RETVAL - -- # now load up the pointer to the parameter save area -- # in the previous frame -- addi %r5, %r1, 240 + 48 -+ stdu %r1, -STACKFRAME(%r1) -+.LCFI0: - -- # now load up the pointer to the saved fpr registers */ -- addi %r6, %r1, 128 -+ # get the context pointer from the trampoline -+ mr %r3, %r11 - - # make the call -+# if defined _CALL_LINUX || _CALL_ELF == 2 -+ bl ffi_closure_helper_LINUX64 -+# else - bl .ffi_closure_helper_LINUX64 -+# endif - .Lret: - - # now r3 contains the return type -@@ -100,10 +159,12 @@ ffi_closure_LINUX64: - - # look up the proper starting point in table - # by using return type as offset -+ ld %r0, STACKFRAME+16(%r1) -+ cmpldi %r3, FFI_V2_TYPE_SMALL_STRUCT -+ bge .Lsmall - mflr %r4 # move address of .Lret to r4 - sldi %r3, %r3, 4 # now multiply return type by 16 - addi %r4, %r4, .Lret_type0 - .Lret -- ld %r0, 240+16(%r1) - add %r3, %r3, %r4 # add contents of table to table address - mtctr %r3 - bctr # jump to it -@@ -116,85 +177,175 @@ ffi_closure_LINUX64: - .Lret_type0: - # case FFI_TYPE_VOID - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - nop - # case FFI_TYPE_INT -- lwa %r3, 112+4(%r1) -+# ifdef __LITTLE_ENDIAN__ -+ lwa %r3, RETVAL+0(%r1) -+# else -+ lwa %r3, RETVAL+4(%r1) -+# endif - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_FLOAT -- lfs %f1, 112+0(%r1) -+ lfs %f1, RETVAL+0(%r1) - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_DOUBLE -- lfd %f1, 112+0(%r1) -+ lfd %f1, RETVAL+0(%r1) - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_LONGDOUBLE -- lfd %f1, 112+0(%r1) -+ lfd %f1, RETVAL+0(%r1) - mtlr %r0 -- lfd %f2, 112+8(%r1) -+ lfd %f2, RETVAL+8(%r1) - b .Lfinish - # case FFI_TYPE_UINT8 -- lbz %r3, 112+7(%r1) -+# ifdef __LITTLE_ENDIAN__ -+ lbz %r3, RETVAL+0(%r1) -+# else -+ lbz %r3, RETVAL+7(%r1) -+# endif - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_SINT8 -- lbz %r3, 112+7(%r1) -+# ifdef __LITTLE_ENDIAN__ -+ lbz %r3, RETVAL+0(%r1) -+# else -+ lbz %r3, RETVAL+7(%r1) -+# endif - extsb %r3,%r3 - mtlr %r0 - b .Lfinish - # case FFI_TYPE_UINT16 -- lhz %r3, 112+6(%r1) -+# ifdef __LITTLE_ENDIAN__ -+ lhz %r3, RETVAL+0(%r1) -+# else -+ lhz %r3, RETVAL+6(%r1) -+# endif - mtlr %r0 - .Lfinish: -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_SINT16 -- lha %r3, 112+6(%r1) -+# ifdef __LITTLE_ENDIAN__ -+ lha %r3, RETVAL+0(%r1) -+# else -+ lha %r3, RETVAL+6(%r1) -+# endif - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_UINT32 -- lwz %r3, 112+4(%r1) -+# ifdef __LITTLE_ENDIAN__ -+ lwz %r3, RETVAL+0(%r1) -+# else -+ lwz %r3, RETVAL+4(%r1) -+# endif - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_SINT32 -- lwa %r3, 112+4(%r1) -+# ifdef __LITTLE_ENDIAN__ -+ lwa %r3, RETVAL+0(%r1) -+# else -+ lwa %r3, RETVAL+4(%r1) -+# endif - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_UINT64 -- ld %r3, 112+0(%r1) -+ ld %r3, RETVAL+0(%r1) - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_SINT64 -- ld %r3, 112+0(%r1) -+ ld %r3, RETVAL+0(%r1) - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - # case FFI_TYPE_STRUCT - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME - blr - nop - # case FFI_TYPE_POINTER -- ld %r3, 112+0(%r1) -+ ld %r3, RETVAL+0(%r1) - mtlr %r0 -- addi %r1, %r1, 240 -+ addi %r1, %r1, STACKFRAME -+ blr -+# case FFI_V2_TYPE_FLOAT_HOMOG -+ lfs %f1, RETVAL+0(%r1) -+ lfs %f2, RETVAL+4(%r1) -+ lfs %f3, RETVAL+8(%r1) -+ b .Lmorefloat -+# case FFI_V2_TYPE_DOUBLE_HOMOG -+ lfd %f1, RETVAL+0(%r1) -+ lfd %f2, RETVAL+8(%r1) -+ lfd %f3, RETVAL+16(%r1) -+ lfd %f4, RETVAL+24(%r1) -+ mtlr %r0 -+ lfd %f5, RETVAL+32(%r1) -+ lfd %f6, RETVAL+40(%r1) -+ lfd %f7, RETVAL+48(%r1) -+ lfd %f8, RETVAL+56(%r1) -+ addi %r1, %r1, STACKFRAME -+ blr -+.Lmorefloat: -+ lfs %f4, RETVAL+12(%r1) -+ mtlr %r0 -+ lfs %f5, RETVAL+16(%r1) -+ lfs %f6, RETVAL+20(%r1) -+ lfs %f7, RETVAL+24(%r1) -+ lfs %f8, RETVAL+28(%r1) -+ addi %r1, %r1, STACKFRAME -+ blr -+.Lsmall: -+# ifdef __LITTLE_ENDIAN__ -+ ld %r3,RETVAL+0(%r1) -+ mtlr %r0 -+ ld %r4,RETVAL+8(%r1) -+ addi %r1, %r1, STACKFRAME -+ blr -+# else -+ # A struct smaller than a dword is returned in the low bits of r3 -+ # ie. right justified. Larger structs are passed left justified -+ # in r3 and r4. The return value area on the stack will have -+ # the structs as they are usually stored in memory. -+ cmpldi %r3, FFI_V2_TYPE_SMALL_STRUCT + 7 # size 8 bytes? -+ neg %r5, %r3 -+ ld %r3,RETVAL+0(%r1) -+ blt .Lsmalldown -+ mtlr %r0 -+ ld %r4,RETVAL+8(%r1) -+ addi %r1, %r1, STACKFRAME -+ blr -+.Lsmalldown: -+ addi %r5, %r5, FFI_V2_TYPE_SMALL_STRUCT + 7 -+ mtlr %r0 -+ sldi %r5, %r5, 3 -+ addi %r1, %r1, STACKFRAME -+ srd %r3, %r3, %r5 - blr --# esac -+# endif -+ - .LFE1: - .long 0 - .byte 0,12,0,1,128,0,0,0 -+# if _CALL_ELF == 2 -+ .size ffi_closure_LINUX64,.-ffi_closure_LINUX64 -+# else -+# ifdef _CALL_LINUX -+ .size ffi_closure_LINUX64,.-.L.ffi_closure_LINUX64 -+# else - .size .ffi_closure_LINUX64,.-.ffi_closure_LINUX64 -+# endif -+# endif - - .section .eh_frame,EH_FRAME_FLAGS,@progbits - .Lframe1: -@@ -223,14 +374,14 @@ ffi_closure_LINUX64: - .byte 0x2 # DW_CFA_advance_loc1 - .byte .LCFI0-.LFB1 - .byte 0xe # DW_CFA_def_cfa_offset -- .uleb128 240 -+ .uleb128 STACKFRAME - .byte 0x11 # DW_CFA_offset_extended_sf - .uleb128 0x41 - .sleb128 -2 - .align 3 - .LEFDE1: --#endif - --#if defined __ELF__ && defined __linux__ -+# if defined __ELF__ && defined __linux__ - .section .note.GNU-stack,"",@progbits -+# endif - #endif -Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/ppc_closure.S -=================================================================== ---- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/ppc_closure.S -+++ mozilla-release/js/src/ctypes/libffi/src/powerpc/ppc_closure.S -@@ -122,43 +122,78 @@ ENTRY(ffi_closure_SYSV) - blr - - # case FFI_TYPE_FLOAT -+#ifndef __NO_FPRS__ - lfs %f1,112+0(%r1) - mtlr %r0 - addi %r1,%r1,144 -+#else -+ nop -+ nop -+ nop -+#endif - blr - - # case FFI_TYPE_DOUBLE -+#ifndef __NO_FPRS__ - lfd %f1,112+0(%r1) - mtlr %r0 - addi %r1,%r1,144 -+#else -+ nop -+ nop -+ nop -+#endif - blr - - # case FFI_TYPE_LONGDOUBLE -+#ifndef __NO_FPRS__ - lfd %f1,112+0(%r1) - lfd %f2,112+8(%r1) - mtlr %r0 - b .Lfinish -+#else -+ nop -+ nop -+ nop -+ blr -+#endif - - # case FFI_TYPE_UINT8 -+#ifdef __LITTLE_ENDIAN__ -+ lbz %r3,112+0(%r1) -+#else - lbz %r3,112+3(%r1) -+#endif - mtlr %r0 - addi %r1,%r1,144 - blr - - # case FFI_TYPE_SINT8 -+#ifdef __LITTLE_ENDIAN__ -+ lbz %r3,112+0(%r1) -+#else - lbz %r3,112+3(%r1) -+#endif - extsb %r3,%r3 - mtlr %r0 - b .Lfinish - - # case FFI_TYPE_UINT16 -+#ifdef __LITTLE_ENDIAN__ -+ lhz %r3,112+0(%r1) -+#else - lhz %r3,112+2(%r1) -+#endif - mtlr %r0 - addi %r1,%r1,144 - blr - - # case FFI_TYPE_SINT16 -+#ifdef __LITTLE_ENDIAN__ -+ lha %r3,112+0(%r1) -+#else - lha %r3,112+2(%r1) -+#endif - mtlr %r0 - addi %r1,%r1,144 - blr -@@ -203,7 +238,7 @@ ENTRY(ffi_closure_SYSV) - lwz %r3,112+0(%r1) - lwz %r4,112+4(%r1) - lwz %r5,112+8(%r1) -- bl .Luint128 -+ b .Luint128 - - # The return types below are only used when the ABI type is FFI_SYSV. - # case FFI_SYSV_TYPE_SMALL_STRUCT + 1. One byte struct. -@@ -220,9 +255,15 @@ ENTRY(ffi_closure_SYSV) - - # case FFI_SYSV_TYPE_SMALL_STRUCT + 3. Three byte struct. - lwz %r3,112+0(%r1) -+#ifdef __LITTLE_ENDIAN__ -+ mtlr %r0 -+ addi %r1,%r1,144 -+ blr -+#else - srwi %r3,%r3,8 - mtlr %r0 - b .Lfinish -+#endif - - # case FFI_SYSV_TYPE_SMALL_STRUCT + 4. Four byte struct. - lwz %r3,112+0(%r1) -@@ -233,20 +274,35 @@ ENTRY(ffi_closure_SYSV) - # case FFI_SYSV_TYPE_SMALL_STRUCT + 5. Five byte struct. - lwz %r3,112+0(%r1) - lwz %r4,112+4(%r1) -+#ifdef __LITTLE_ENDIAN__ -+ mtlr %r0 -+ b .Lfinish -+#else - li %r5,24 - b .Lstruct567 -+#endif - - # case FFI_SYSV_TYPE_SMALL_STRUCT + 6. Six byte struct. - lwz %r3,112+0(%r1) - lwz %r4,112+4(%r1) -+#ifdef __LITTLE_ENDIAN__ -+ mtlr %r0 -+ b .Lfinish -+#else - li %r5,16 - b .Lstruct567 -+#endif - - # case FFI_SYSV_TYPE_SMALL_STRUCT + 7. Seven byte struct. - lwz %r3,112+0(%r1) - lwz %r4,112+4(%r1) -+#ifdef __LITTLE_ENDIAN__ -+ mtlr %r0 -+ b .Lfinish -+#else - li %r5,8 - b .Lstruct567 -+#endif - - # case FFI_SYSV_TYPE_SMALL_STRUCT + 8. Eight byte struct. - lwz %r3,112+0(%r1) -@@ -254,6 +310,7 @@ ENTRY(ffi_closure_SYSV) - mtlr %r0 - b .Lfinish - -+#ifndef __LITTLE_ENDIAN__ - .Lstruct567: - subfic %r6,%r5,32 - srw %r4,%r4,%r5 -@@ -263,6 +320,7 @@ ENTRY(ffi_closure_SYSV) - mtlr %r0 - addi %r1,%r1,144 - blr -+#endif - - .Luint128: - lwz %r6,112+12(%r1) -Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/sysv.S -=================================================================== ---- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/sysv.S -+++ mozilla-release/js/src/ctypes/libffi/src/powerpc/sysv.S -@@ -83,6 +83,7 @@ ENTRY(ffi_call_SYSV) - nop - 1: - -+#ifndef __NO_FPRS__ - /* Load all the FP registers. */ - bf- 6,2f - lfd %f1,-16-(8*4)-(8*8)(%r28) -@@ -94,6 +95,7 @@ ENTRY(ffi_call_SYSV) - lfd %f6,-16-(8*4)-(3*8)(%r28) - lfd %f7,-16-(8*4)-(2*8)(%r28) - lfd %f8,-16-(8*4)-(1*8)(%r28) -+#endif - 2: - - /* Make the call. */ -@@ -103,7 +105,9 @@ ENTRY(ffi_call_SYSV) - mtcrf 0x01,%r31 /* cr7 */ - bt- 31,L(small_struct_return_value) - bt- 30,L(done_return_value) -+#ifndef __NO_FPRS__ - bt- 29,L(fp_return_value) -+#endif - stw %r3,0(%r30) - bf+ 28,L(done_return_value) - stw %r4,4(%r30) -@@ -124,6 +128,7 @@ L(done_return_value): - lwz %r1,0(%r1) - blr - -+#ifndef __NO_FPRS__ - L(fp_return_value): - bf 28,L(float_return_value) - stfd %f1,0(%r30) -@@ -134,21 +139,17 @@ L(fp_return_value): - L(float_return_value): - stfs %f1,0(%r30) - b L(done_return_value) -+#endif - - L(small_struct_return_value): -- extrwi %r6,%r31,2,19 /* number of bytes padding = shift/8 */ -- mtcrf 0x02,%r31 /* copy flags to cr[24:27] (cr6) */ -- extrwi %r5,%r31,5,19 /* r5 <- number of bits of padding */ -- subfic %r6,%r6,4 /* r6 <- number of useful bytes in r3 */ -- bf- 25,L(done_return_value) /* struct in r3 ? if not, done. */ --/* smst_one_register: */ -- slw %r3,%r3,%r5 /* Left-justify value in r3 */ -- mtxer %r6 /* move byte count to XER ... */ -- stswx %r3,0,%r30 /* ... and store that many bytes */ -- bf+ 26,L(done_return_value) /* struct in r3:r4 ? */ -- add %r6,%r6,%r30 /* adjust pointer */ -- stswi %r4,%r6,4 /* store last four bytes */ -- b L(done_return_value) -+ /* -+ * The C code always allocates a properly-aligned 8-byte bounce -+ * buffer to make this assembly code very simple. Just write out -+ * r3 and r4 to the buffer to allow the C code to handle the rest. -+ */ -+ stw %r3, 0(%r30) -+ stw %r4, 4(%r30) -+ b L(done_return_value) - - .LFE1: - END(ffi_call_SYSV) -Index: mozilla-release/mfbt/Endian.h -=================================================================== ---- mozilla-release.orig/mfbt/Endian.h -+++ mozilla-release/mfbt/Endian.h -@@ -91,7 +91,7 @@ - # 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__ -@@ -119,8 +119,7 @@ - * 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__)) || \ -Index: mozilla-release/media/webrtc/trunk/webrtc/typedefs.h -=================================================================== ---- mozilla-release.orig/media/webrtc/trunk/webrtc/typedefs.h -+++ mozilla-release/media/webrtc/trunk/webrtc/typedefs.h -@@ -52,13 +52,23 @@ - #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 -Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/moz.build -=================================================================== ---- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/moz.build -+++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/moz.build -@@ -206,12 +206,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', - ] - -Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s -=================================================================== ---- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s -+++ /dev/null -@@ -1,132 +0,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 --# file, You can obtain one at http://mozilla.org/MPL/2.0/. -- --.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4 --.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 --.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 --.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 --.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 --.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 --.set r30,30; .set r31,31 --.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 --.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 --.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 --.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 --.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 --.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 --.set f30,30; .set f31,31 -- -- --# --# NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, --# uint32_t paramCount, nsXPTCVariant* params) --# -- -- .section ".toc","aw" -- .section ".text" -- .align 2 -- .globl NS_InvokeByIndex -- .section ".opd","aw" -- .align 3 --NS_InvokeByIndex: -- .quad .NS_InvokeByIndex,.TOC.@tocbase -- .previous -- .type NS_InvokeByIndex,@function --.NS_InvokeByIndex: -- mflr 0 -- std 0,16(r1) -- -- std r29,-24(r1) -- std r30,-16(r1) -- std r31,-8(r1) -- -- mr r29,r3 # Save 'that' in r29 -- mr r30,r4 # Save 'methodIndex' in r30 -- mr r31,r1 # Save old frame -- -- # Allocate stack frame with space for params. Since at least the -- # first 7 parameters (not including 'that') will be in registers, -- # 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) -- -- # +stack frame, -unused stack params, +regs storage, +1 for alignment -- addi r7,r5,((112/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 -- -- -- # Call invoke_copy_to_stack(uint64_t* gpregs, double* fpregs, -- # uint32_t paramCount, nsXPTCVariant* s, -- # 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. -- # 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 -- bl invoke_copy_to_stack -- nop -- -- # Set up to invoke function -- -- ld r9,0(r29) # vtable (r29 is 'that') -- mr r3,r29 # self is first arg, obviously -- -- sldi r30,r30,3 # Find function descriptor -- add r9,r9,r30 -- ld r9,0(r9) -- -- ld r0,0(r9) # Actual address from fd. -- std r2,40(r1) # Save r2 (TOC pointer) -- -- mtctr 0 -- ld r11,16(r9) # Environment pointer from fd. -- ld r2,8(r9) # TOC pointer from fd. -- -- # Load FP and GP registers as required -- ld r4, -(23*8)(r31) -- ld r5, -(22*8)(r31) -- ld r6, -(21*8)(r31) -- ld r7, -(20*8)(r31) -- ld r8, -(19*8)(r31) -- ld r9, -(18*8)(r31) -- ld r10, -(17*8)(r31) -- -- lfd f1, -(16*8)(r31) -- lfd f2, -(15*8)(r31) -- lfd f3, -(14*8)(r31) -- lfd f4, -(13*8)(r31) -- lfd f5, -(12*8)(r31) -- lfd f6, -(11*8)(r31) -- lfd f7, -(10*8)(r31) -- lfd f8, -(9*8)(r31) -- lfd f9, -(8*8)(r31) -- lfd f10, -(7*8)(r31) -- lfd f11, -(6*8)(r31) -- lfd f12, -(5*8)(r31) -- lfd f13, -(4*8)(r31) -- -- bctrl # Do it -- -- ld r2,40(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 -- ld 30,-16(r1) -- ld 31,-8(r1) -- mtlr 0 -- blr -- -- .size NS_InvokeByIndex,.-.NS_InvokeByIndex -- -- # Magic indicating no need for an executable stack -- .section .note.GNU-stack, "", @progbits ; .previous -Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S -=================================================================== ---- /dev/null -+++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S -@@ -0,0 +1,167 @@ -+# 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 r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4 -+.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 -+.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 -+.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 -+.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 -+.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 -+.set r30,30; .set r31,31 -+.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 -+.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 -+.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 -+.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 -+.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 -+.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 -+ .globl NS_InvokeByIndex -+ .section ".opd","aw" -+ .align 3 -+NS_InvokeByIndex: -+ .quad .NS_InvokeByIndex,.TOC.@tocbase -+ .previous -+ .type NS_InvokeByIndex,@function -+.NS_InvokeByIndex: -+#endif -+ mflr 0 -+ std 0,16(r1) -+ -+ std r29,-24(r1) -+ std r30,-16(r1) -+ std r31,-8(r1) -+ -+ mr r29,r3 # Save 'that' in r29 -+ mr r30,r4 # Save 'methodIndex' in r30 -+ mr r31,r1 # Save old frame -+ -+ # Allocate stack frame with space for params. Since at least the -+ # first 7 parameters (not including 'that') will be in registers, -+ # we don't actually need stack space for those. We must ensure -+ # that the stack remains 16-byte aligned. -+ # -+ # | (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,((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 -+ -+ -+ # Call invoke_copy_to_stack(uint64_t* gpregs, double* fpregs, -+ # uint32_t paramCount, nsXPTCVariant* s, -+ # uint64_t* d)) -+ -+ # r5, r6 are passed through intact (paramCount, params) -+ # 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,STACK_PARAMS # r7 --> params -+ bl invoke_copy_to_stack -+ nop -+ -+ # Set up to invoke function -+ -+ ld r9,0(r29) # vtable (r29 is 'that') -+ mr r3,r29 # self is first arg, obviously -+ -+ sldi r30,r30,3 # Find function descriptor -+ add r9,r9,r30 -+ ld r12,0(r9) -+ -+ 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(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) -+ ld r5, -(22*8)(r31) -+ ld r6, -(21*8)(r31) -+ ld r7, -(20*8)(r31) -+ ld r8, -(19*8)(r31) -+ ld r9, -(18*8)(r31) -+ ld r10, -(17*8)(r31) -+ -+ lfd f1, -(16*8)(r31) -+ lfd f2, -(15*8)(r31) -+ lfd f3, -(14*8)(r31) -+ lfd f4, -(13*8)(r31) -+ lfd f5, -(12*8)(r31) -+ lfd f6, -(11*8)(r31) -+ lfd f7, -(10*8)(r31) -+ lfd f8, -(9*8)(r31) -+ lfd f9, -(8*8)(r31) -+ lfd f10, -(7*8)(r31) -+ lfd f11, -(6*8)(r31) -+ lfd f12, -(5*8)(r31) -+ lfd f13, -(4*8)(r31) -+ -+ bctrl # Do it -+ -+ 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 -+ ld 30,-16(r1) -+ ld 31,-8(r1) -+ 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-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp -=================================================================== ---- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp -+++ mozilla-release/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; - } - } -Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s -=================================================================== ---- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s -+++ /dev/null -@@ -1,81 +0,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 --# file, You can obtain one at http://mozilla.org/MPL/2.0/. -- --.set r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4 --.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 --.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 --.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 --.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 --.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 --.set r30,30; .set r31,31 --.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 --.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 --.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 --.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 --.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 --.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 --.set f30,30; .set f31,31 -- -- .section ".text" -- .align 2 -- .globl SharedStub -- .section ".opd","aw" -- .align 3 -- --SharedStub: -- .quad .SharedStub,.TOC.@tocbase -- .previous -- .type SharedStub,@function -- --.SharedStub: -- mflr r0 -- -- std r4, -56(r1) # Save all GPRS -- std r5, -48(r1) -- std r6, -40(r1) -- std r7, -32(r1) -- std r8, -24(r1) -- std r9, -16(r1) -- std r10, -8(r1) -- -- stfd f13, -64(r1) # ... and FPRS -- stfd f12, -72(r1) -- stfd f11, -80(r1) -- stfd f10, -88(r1) -- stfd f9, -96(r1) -- stfd f8, -104(r1) -- stfd f7, -112(r1) -- stfd f6, -120(r1) -- stfd f5, -128(r1) -- stfd f4, -136(r1) -- stfd f3, -144(r1) -- stfd f2, -152(r1) -- stfd f1, -160(r1) -- -- subi r6,r1,56 # r6 --> gprData -- subi r7,r1,160 # r7 --> fprData -- addi r5,r1,112 # r5 --> extra stack args -- -- std r0, 16(r1) -- -- stdu r1,-288(r1) -- # r3 has the 'self' pointer -- # already -- -- mr r4,r11 # r4 is methodIndex selector, -- # passed via r11 in the -- # nsNSStubBase::StubXX() call -- -- bl PrepareAndDispatch -- nop -- -- ld 1,0(r1) # restore stack -- ld r0,16(r1) # restore LR -- mtlr r0 -- blr -- -- .size SharedStub,.-.SharedStub -- -- # Magic indicating no need for an executable stack -- .section .note.GNU-stack, "", @progbits ; .previous -Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S -=================================================================== ---- /dev/null -+++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S -@@ -0,0 +1,107 @@ -+# 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 r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4 -+.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 -+.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 -+.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 -+.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 -+.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 -+.set r30,30; .set r31,31 -+.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 -+.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 -+.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 -+.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 -+.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 -+.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 -+ .section ".opd","aw" -+ .align 3 -+ -+SharedStub: -+ .quad .SharedStub,.TOC.@tocbase -+ .previous -+ .type SharedStub,@function -+ -+.SharedStub: -+#endif -+ mflr r0 -+ -+ std r4, -56(r1) # Save all GPRS -+ std r5, -48(r1) -+ std r6, -40(r1) -+ std r7, -32(r1) -+ std r8, -24(r1) -+ std r9, -16(r1) -+ std r10, -8(r1) -+ -+ stfd f13, -64(r1) # ... and FPRS -+ stfd f12, -72(r1) -+ stfd f11, -80(r1) -+ stfd f10, -88(r1) -+ stfd f9, -96(r1) -+ stfd f8, -104(r1) -+ stfd f7, -112(r1) -+ stfd f6, -120(r1) -+ stfd f5, -128(r1) -+ stfd f4, -136(r1) -+ stfd f3, -144(r1) -+ stfd f2, -152(r1) -+ stfd f1, -160(r1) -+ -+ subi r6,r1,56 # r6 --> gprData -+ subi r7,r1,160 # r7 --> fprData -+ addi r5,r1,STACK_PARAMS # r5 --> extra stack args -+ -+ std r0, 16(r1) -+ -+ stdu r1,-288(r1) -+ # r3 has the 'self' pointer -+ # already -+ -+ mr r4,r11 # r4 is methodIndex selector, -+ # passed via r11 in the -+ # nsNSStubBase::StubXX() call -+ -+ bl PrepareAndDispatch -+ nop -+ -+ ld 1,0(r1) # restore stack -+ ld r0,16(r1) # restore LR -+ 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-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp -=================================================================== ---- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp -+++ mozilla-release/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() \ diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig index 1ceaaf2..6d680ff 100644 --- a/xulrunner-mozconfig +++ b/xulrunner-mozconfig @@ -26,7 +26,6 @@ ac_add_options --enable-libnotify ac_add_options --disable-necko-wifi ac_add_options --enable-startup-notification ac_add_options --disable-cpp-exceptions -ac_add_options --enable-shared-js ac_add_options --enable-url-classifier ac_add_options --enable-gio ac_add_options --disable-gnomevfs diff --git a/xulrunner.spec b/xulrunner.spec index da3fb6d..06161cf 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 29.0 -Release: 5%{?pre_tag}%{?dist} +Version: 30.0 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -101,14 +101,6 @@ Patch200: mozilla-193-pkgconfig.patch Patch204: rhbz-966424.patch # Upstream patches -Patch300: mozilla-ppc64le.patch -# mbo 962488 -Patch301: firefox-aarch64-double-convertsion.patch -# mbo 963023 -Patch302: firefox-aarch64-libevent.patch -# mbo 963024 -Patch303: firefox-aarch64-xpcom.patch -Patch304: mozilla-973977.patch # --------------------------------------------------- @@ -245,17 +237,7 @@ cd %{tarballdir} %patch204 -p1 -b .966424 # Upstream patches -%ifarch ppc64le -%if 0%{?fedora} > 20 -%patch300 -p1 -b .ppc64le -%endif -%endif -%patch301 -p1 -b .aarch64-dbl -%patch302 -p1 -b .aarch64-libevent -%patch303 -p1 -b .aarch64-xpcom -%ifarch ppc64 -%patch304 -p1 -b .973977 -%endif + %{__rm} -f .mozconfig %{__cp} %{SOURCE10} .mozconfig @@ -539,6 +521,10 @@ fi #--------------------------------------------------------------------- %changelog +* Thu Jun 5 2014 Martin Stransky - 30.0-1 +- Update to 30.0 build 1 +- Disabled shared js + * Fri May 23 2014 Martin Stransky - 29.0-5 - Added a build fix for ppc64 - rhbz#1100495 From 8a38004b2b0d15e484a399032c73c0d27e0c87aa Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 5 Jun 2014 12:09:22 +0200 Subject: [PATCH 06/80] Upload sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 891ef83..a387546 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -07c515fc487824f107a947d23f420e9d firefox-29.0.source.tar.bz2 +7c5433b1b58a56ce0f8d451e7217f282 firefox-30.0.source.tar.bz2 From 532901fae2c15cafc2d7e008055cdc0aa4d5936a Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 5 Jun 2014 12:25:21 +0200 Subject: [PATCH 07/80] build req --- xulrunner.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 06161cf..51632f7 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -2,7 +2,7 @@ %define system_nss 1 # Use system sqlite? -%if 0%{?fedora} < 19 +%if 0%{?fedora} < 20 %define system_sqlite 0 %define system_ffi 0 %else From d8024036fc6bcb29e17d1e50c8280157f2ed0a8b Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sun, 8 Jun 2014 01:58:07 -0500 Subject: [PATCH 08/80] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 51632f7..28fe40d 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 30.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -521,6 +521,9 @@ fi #--------------------------------------------------------------------- %changelog +* Sun Jun 08 2014 Fedora Release Engineering - 30.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Thu Jun 5 2014 Martin Stransky - 30.0-1 - Update to 30.0 build 1 - Disabled shared js From 53dce40c725020682de26415e64b7f07f6b58f82 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Thu, 24 Jul 2014 22:27:53 -0500 Subject: [PATCH 09/80] Fix mozilla-config.h wrapper on aarch64 --- xulrunner.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index 28fe40d..e6e0c1c 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 30.0 -Release: 2%{?pre_tag}%{?dist} +Release: 3%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -402,7 +402,7 @@ genheader=$* mv ${genheader}.h ${genheader}%{__isa_bits}.h cat > ${genheader}.h << EOF /* This file exists to fix multilib conflicts */ -#if defined(__x86_64__) || defined(__ia64__) || defined(__s390x__) || defined(__powerpc64__) || (defined(__sparc__) && defined(__arch64__)) +#if defined(__x86_64__) || defined(__ia64__) || defined(__s390x__) || defined(__powerpc64__) || (defined(__sparc__) && defined(__arch64__)) || defined(__aarch64__) #include "${genheader}64.h" #else #include "${genheader}32.h" @@ -521,6 +521,9 @@ fi #--------------------------------------------------------------------- %changelog +* Fri Jul 25 2014 Yaakov Selkowitz - 30.0-3 +- Fix mozilla-config.h wrapper on aarch64 + * Sun Jun 08 2014 Fedora Release Engineering - 30.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild From 96a4e596aa2cf4b46826ca3d1e6d37b05c9dc351 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 25 Jul 2014 12:51:49 +0200 Subject: [PATCH 10/80] Update to 31.0 build 2 --- sources | 2 +- xulrunner.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sources b/sources index a387546..8de38a6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7c5433b1b58a56ce0f8d451e7217f282 firefox-30.0.source.tar.bz2 +499b70a9f08a2291d528e87eaf8804a3 firefox-31.0.source.tar.bz2 diff --git a/xulrunner.spec b/xulrunner.spec index e6e0c1c..7dbcc76 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 30.0 -Release: 3%{?pre_tag}%{?dist} +Version: 31.0 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -521,6 +521,9 @@ fi #--------------------------------------------------------------------- %changelog +* Fri Jul 25 2014 Martin Stransky - 31.0-1 +- Update to 31.0 build 2 + * Fri Jul 25 2014 Yaakov Selkowitz - 30.0-3 - Fix mozilla-config.h wrapper on aarch64 From 8d523159889b91d6c5bd635617f65b74b2fc4c04 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 18 Aug 2014 11:08:00 +0000 Subject: [PATCH 11/80] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 7dbcc76..09f6692 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 31.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -521,6 +521,9 @@ fi #--------------------------------------------------------------------- %changelog +* Mon Aug 18 2014 Fedora Release Engineering - 31.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Fri Jul 25 2014 Martin Stransky - 31.0-1 - Update to 31.0 build 2 From 695b530a4cdf01df27d98d89ad8422882653e950 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 26 Aug 2014 15:55:18 +0200 Subject: [PATCH 12/80] Update to 32.0 build 1 --- sources | 2 +- xulrunner.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 8de38a6..4659689 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -499b70a9f08a2291d528e87eaf8804a3 firefox-31.0.source.tar.bz2 +859d0b6fe2d36b6959cf08cee4c783cc firefox-32.0.source.tar.bz2 diff --git a/xulrunner.spec b/xulrunner.spec index 09f6692..214c724 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 31.0 -Release: 2%{?pre_tag}%{?dist} +Version: 32.0 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -521,6 +521,9 @@ fi #--------------------------------------------------------------------- %changelog +* Thu aug 26 2014 Martin Stransky - 32.0-1 +- Update to 32.0 build 1 + * Mon Aug 18 2014 Fedora Release Engineering - 31.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild From ea2e3fdf40453c1c38aa21a593e96a855895168b Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 26 Aug 2014 15:57:53 +0200 Subject: [PATCH 13/80] Update to 32.0 build 1 - changelog fix --- xulrunner.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 214c724..95804dd 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -521,7 +521,7 @@ fi #--------------------------------------------------------------------- %changelog -* Thu aug 26 2014 Martin Stransky - 32.0-1 +* Tue Aug 26 2014 Martin Stransky - 32.0-1 - Update to 32.0 build 1 * Mon Aug 18 2014 Fedora Release Engineering - 31.0-2 From 0526f46e39ecd70d58a74eab2217e2cd42cb6109 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 27 Aug 2014 13:50:15 +0200 Subject: [PATCH 14/80] Make -Wformat-security non-fatal --- xulrunner.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index 95804dd..614025f 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -346,8 +346,10 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif -export CFLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" -export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive -Wformat-security -Wformat -Werror=format-security" +# -Werror=format-security causes build failures when -Wno-format is explicitly given +# for some sources +export CFLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat" +export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive -Wformat-security -Wformat" export LDFLAGS=$MOZ_LINK_FLAGS export PREFIX='%{_prefix}' From 6f337301cfe7a997104a8159cfa4ba9ae059ddd3 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 2 Sep 2014 15:02:47 +0200 Subject: [PATCH 15/80] Build fixes - disable ion on i686 and enable on arm --- xulrunner.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index 614025f..9f20cd1 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -286,8 +286,8 @@ echo "ac_add_options --with-arch=armv7-a" >> .mozconfig echo "ac_add_options --with-float-abi=hard" >> .mozconfig echo "ac_add_options --with-fpu=vfpv3-d16" >> .mozconfig echo "ac_add_options --disable-elf-hack" >> .mozconfig -echo "ac_add_options --disable-ion" >> .mozconfig -echo "ac_add_options --disable-yarr-jit" >> .mozconfig +#echo "ac_add_options --disable-ion" >> .mozconfig +#echo "ac_add_options --disable-yarr-jit" >> .mozconfig %endif %ifarch armv7hnl echo "ac_add_options --with-arch=armv7-a" >> .mozconfig @@ -309,6 +309,11 @@ echo "ac_add_options --disable-yarr-jit" >> .mozconfig echo "ac_add_options --disable-webrtc" >> .mozconfig %endif +# Workaround - installation crash +%ifarch %{ix86} +echo "ac_add_options --disable-ion" >> .mozconfig +%endif + #--------------------------------------------------------------------- %build From 684b0b294b944fb0bbab96095e1607445cdb5e4b Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 2 Sep 2014 15:51:14 +0200 Subject: [PATCH 16/80] build fixes --- firefox-build.patch | 11 +++++++++++ xulrunner.spec | 11 +++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 firefox-build.patch diff --git a/firefox-build.patch b/firefox-build.patch new file mode 100644 index 0000000..262337c --- /dev/null +++ b/firefox-build.patch @@ -0,0 +1,11 @@ +diff -up firefox-32.0/mozilla-release/media/libstagefright/moz.build.old firefox-32.0/mozilla-release/media/libstagefright/moz.build +--- firefox-32.0/mozilla-release/media/libstagefright/moz.build.old 2014-08-26 05:38:08.000000000 +0200 ++++ firefox-32.0/mozilla-release/media/libstagefright/moz.build 2014-08-27 15:40:12.030299348 +0200 +@@ -120,7 +120,6 @@ elif CONFIG['GNU_CXX']: + '-Wno-sign-compare' + ] + CXXFLAGS += [ +- '-Wno-format', + '-Wno-multichar', + '-Wno-sign-compare', + '-Wno-unused', diff --git a/xulrunner.spec b/xulrunner.spec index 9f20cd1..572071d 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -89,6 +89,7 @@ Source21: %{name}.sh.in # build patches Patch1: xulrunner-install-dir.patch +Patch2: firefox-build.patch Patch3: mozilla-build-arm.patch # https://bugzilla.redhat.com/show_bug.cgi?id=814879#c3 Patch18: xulrunner-24.0-jemalloc-ppc.patch @@ -229,6 +230,7 @@ debug %{name}, you want to install %{name}-debuginfo instead. cd %{tarballdir} %patch1 -p1 +%patch2 -p2 -b .build %patch3 -p2 -b .arm %patch18 -p2 -b .jemalloc-ppc %patch19 -p2 -b .s390-inlines @@ -351,10 +353,11 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif -# -Werror=format-security causes build failures when -Wno-format is explicitly given -# for some sources -export CFLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat" -export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive -Wformat-security -Wformat" +#rhbz#1037063 +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" + +export CFLAGS="$MOZ_OPT_FLAGS" +export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive" export LDFLAGS=$MOZ_LINK_FLAGS export PREFIX='%{_prefix}' From 7cbd0f1cf0a13891c2eb06812782fbe0f532c40c Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 9 Sep 2014 18:03:49 +0200 Subject: [PATCH 17/80] move /sdk/bin to xulrunner libdir --- xulrunner.spec | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index 572071d..fcee488 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 32.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -272,7 +272,6 @@ echo "ac_add_options --enable-system-ffi" >> .mozconfig %if %{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig -echo "ac_add_options --enable-dtrace" >> .mozconfig %else echo "ac_add_options --disable-debug" >> .mozconfig echo "ac_add_options --enable-optimize" >> .mozconfig @@ -288,8 +287,6 @@ echo "ac_add_options --with-arch=armv7-a" >> .mozconfig echo "ac_add_options --with-float-abi=hard" >> .mozconfig echo "ac_add_options --with-fpu=vfpv3-d16" >> .mozconfig echo "ac_add_options --disable-elf-hack" >> .mozconfig -#echo "ac_add_options --disable-ion" >> .mozconfig -#echo "ac_add_options --disable-yarr-jit" >> .mozconfig %endif %ifarch armv7hnl echo "ac_add_options --with-arch=armv7-a" >> .mozconfig @@ -435,6 +432,12 @@ for i in *.so; do done popd +# Move sdk/bin to xulrunner libdir +pushd $RPM_BUILD_ROOT%{_libdir}/%{name}-devel-%{gecko_dir_ver}/sdk/bin +mv ply *.py %{mozappdir} +popd +rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}-devel-%{gecko_dir_ver}/sdk/bin + # Library path LD_SO_CONF_D=%{_sysconfdir}/ld.so.conf.d LD_CONF_FILE=xulrunner-%{__isa_bits}.conf @@ -524,13 +527,18 @@ fi %{_libdir}/%{name}-devel-*/* %{_libdir}/pkgconfig/*.pc %{mozappdir}/xpcshell -%{mozappdir}/js-gdb.py +%{mozappdir}/*.py +%dir %{mozappdir}/ply +%{mozappdir}/ply/*.py %ghost %{mozappdir}/js-gdb.pyc %ghost %{mozappdir}/js-gdb.pyo #--------------------------------------------------------------------- %changelog +* Tue Sep 9 2014 Martin Stransky - 32.0-2 +- move /sdk/bin to xulrunner libdir + * Tue Aug 26 2014 Martin Stransky - 32.0-1 - Update to 32.0 build 1 From e114c4ce35a344dd58905e61491462c9f03fea85 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 10 Sep 2014 09:45:24 +0200 Subject: [PATCH 18/80] xulrunner-devel - buid fix --- xulrunner.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index fcee488..4e7234a 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -434,7 +434,7 @@ popd # Move sdk/bin to xulrunner libdir pushd $RPM_BUILD_ROOT%{_libdir}/%{name}-devel-%{gecko_dir_ver}/sdk/bin -mv ply *.py %{mozappdir} +mv ply *.py $RPM_BUILD_ROOT%{mozappdir} popd rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}-devel-%{gecko_dir_ver}/sdk/bin @@ -528,10 +528,12 @@ fi %{_libdir}/pkgconfig/*.pc %{mozappdir}/xpcshell %{mozappdir}/*.py +%ghost %{mozappdir}/*.pyc +%ghost %{mozappdir}/*.pyo %dir %{mozappdir}/ply %{mozappdir}/ply/*.py -%ghost %{mozappdir}/js-gdb.pyc -%ghost %{mozappdir}/js-gdb.pyo +%ghost %{mozappdir}/ply/*.pyc +%ghost %{mozappdir}/ply/*.pyo #--------------------------------------------------------------------- From 9cf1033e4f647a64d910ab1c05f7bd1483ff8904 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 15 Sep 2014 11:15:37 +0200 Subject: [PATCH 19/80] backport js/src/configure.in changes for secondary arches fixes build on s390(x) and ppc64le (rhbz#1140157 and rhbz#1140159) --- ...er-32.0-backport-js-src-configure-in.patch | 92 +++++++++++++++++++ xulrunner.spec | 3 + 2 files changed, 95 insertions(+) create mode 100644 xulrunner-32.0-backport-js-src-configure-in.patch diff --git a/xulrunner-32.0-backport-js-src-configure-in.patch b/xulrunner-32.0-backport-js-src-configure-in.patch new file mode 100644 index 0000000..1172c7f --- /dev/null +++ b/xulrunner-32.0-backport-js-src-configure-in.patch @@ -0,0 +1,92 @@ +#Based on: +#https://hg.mozilla.org/mozilla-central/rev/57852745f33b +#https://hg.mozilla.org/mozilla-central/rev/926f47807112 +#https://hg.mozilla.org/mozilla-central/rev/a7b832e15a34 +--- firefox-32.0/mozilla-release/js/src/configure.in 2014-08-26 05:37:57.000000000 +0200 ++++ configure.in 2014-09-12 09:30:32.252623444 +0200 +@@ -1313,10 +1316,10 @@ + result="yes", result="no") + AC_MSG_RESULT("$result") + if test "$result" = "yes"; then +- AC_DEFINE(HAVE_64BIT_OS) +- HAVE_64BIT_OS=1 ++ AC_DEFINE(HAVE_64BIT_BUILD) ++ HAVE_64BIT_BUILD=1 + fi +-AC_SUBST(HAVE_64BIT_OS) ++AC_SUBST(HAVE_64BIT_BUILD) + AC_LANG_RESTORE + fi # COMPILE_ENVIRONMENT + +@@ -1404,7 +1407,7 @@ + *-aix*) + AC_DEFINE(AIX) + if test ! "$GNU_CC"; then +- if test ! "$HAVE_64BIT_OS"; then ++ if test ! "$HAVE_64BIT_BUILD"; then + # Compiling with Visual Age C++ object model compat is the + # default. To compile with object model ibm, add + # AIX_OBJMODEL=ibm to .mozconfig. +@@ -1748,7 +1763,7 @@ + + case "$target" in + i*86-*) +- if test "$HAVE_64BIT_OS"; then ++ if test "$HAVE_64BIT_BUILD"; then + AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.]) + fi + +@@ -1983,39 +1998,34 @@ + i?86-*) + ENABLE_ION=1 + AC_DEFINE(JS_CPU_X86) +- AC_DEFINE(JS_NUNBOX32) + ;; + x86_64*-*) + ENABLE_ION=1 + AC_DEFINE(JS_CPU_X64) +- AC_DEFINE(JS_PUNBOX64) + ;; + arm*-*) + ENABLE_ION=1 + AC_DEFINE(JS_CPU_ARM) +- AC_DEFINE(JS_NUNBOX32) + ;; +-sparc*-*) +- if test ! "$HAVE_64BIT_OS" ; then ++sparc-*) + dnl ENABLE_ION=0 + AC_DEFINE(JS_CPU_SPARC) +- AC_DEFINE(JS_NUNBOX32) +- else +- AC_DEFINE(JS_CPU_SPARC64) +- AC_DEFINE(JS_PUNBOX64) +- fi +- ;; +-powerpc64-*) +- AC_DEFINE(JS_CPU_PPC64) +- AC_DEFINE(JS_PUNBOX64) +- ;; +-powerpc-*) +- AC_DEFINE(JS_CPU_PPC) +- AC_DEFINE(JS_NUNBOX32) + ;; + mips*-*) + AC_DEFINE(JS_CPU_MIPS) +- AC_DEFINE(JS_NUNBOX32) ++ ;; ++esac ++ ++case "$target" in ++mips*-*) ++ AC_DEFINE(JS_NUNBOX32) ++ ;; ++*) ++ if test "$HAVE_64BIT_BUILD" ; then ++ AC_DEFINE(JS_PUNBOX64) ++ else ++ AC_DEFINE(JS_NUNBOX32) ++ fi + ;; + esac + diff --git a/xulrunner.spec b/xulrunner.spec index 4e7234a..d8ace62 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -95,6 +95,8 @@ Patch3: mozilla-build-arm.patch Patch18: xulrunner-24.0-jemalloc-ppc.patch # workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found) Patch19: xulrunner-24.0-s390-inlines.patch +# backport js/src/configure.in changes for secondary arches +Patch20: xulrunner-32.0-backport-js-src-configure-in.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -234,6 +236,7 @@ cd %{tarballdir} %patch3 -p2 -b .arm %patch18 -p2 -b .jemalloc-ppc %patch19 -p2 -b .s390-inlines +%patch20 -p2 -b .js-configure %patch200 -p2 -b .pk %patch204 -p1 -b .966424 From 7f9652e14cbf01a301ac6af8f3269a0d2f84b80f Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Mon, 8 Sep 2014 15:44:54 +0200 Subject: [PATCH 20/80] fix build on AArch64 Signed-off-by: Marcin Juszkiewicz --- xulrunner-fix-aarch64.patch | 22 ++++++++++++++++++++++ xulrunner.spec | 8 +++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 xulrunner-fix-aarch64.patch diff --git a/xulrunner-fix-aarch64.patch b/xulrunner-fix-aarch64.patch new file mode 100644 index 0000000..e153160 --- /dev/null +++ b/xulrunner-fix-aarch64.patch @@ -0,0 +1,22 @@ +Author: Marcin Juszkiewicz + +JS_PUNBOX64 needs to be defined for 64-bit targets. + +Upstream HEAD defines it for all 64-bit machines so no forward porting +should be needed. + +Index: mozilla-release/js/src/configure.in +=================================================================== +--- mozilla-release.orig/js/src/configure.in ++++ mozilla-release/js/src/configure.in +@@ -2017,6 +2017,10 @@ mips*-*) + AC_DEFINE(JS_CPU_MIPS) + AC_DEFINE(JS_NUNBOX32) + ;; ++aarch64*) ++ AC_DEFINE(JS_CPU_AARCH64) ++ AC_DEFINE(JS_PUNBOX64) ++ ;; + esac + + MOZ_ARG_DISABLE_BOOL(ion, diff --git a/xulrunner.spec b/xulrunner.spec index d8ace62..954cf76 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 32.0 -Release: 2%{?pre_tag}%{?dist} +Release: 3%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -103,6 +103,8 @@ Patch200: mozilla-193-pkgconfig.patch # Unable to install addons from https pages Patch204: rhbz-966424.patch +# Let it build on AArch64 with simple backport like patch +Patch210: xulrunner-fix-aarch64.patch # Upstream patches # --------------------------------------------------- @@ -240,6 +242,7 @@ cd %{tarballdir} %patch200 -p2 -b .pk %patch204 -p1 -b .966424 +%patch210 -p1 # Upstream patches @@ -541,6 +544,9 @@ fi #--------------------------------------------------------------------- %changelog +* Mon Sep 08 2014 Marcin Juszkiewicz - 32.0-3 +- Fix build on AArch64 + * Tue Sep 9 2014 Martin Stransky - 32.0-2 - move /sdk/bin to xulrunner libdir From 3d2636a82128ca6070965ec0be4d6edbdff31fdb Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Thu, 18 Sep 2014 12:03:16 +0200 Subject: [PATCH 21/80] Fix changelog date --- xulrunner.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 954cf76..7f02914 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -544,7 +544,7 @@ fi #--------------------------------------------------------------------- %changelog -* Mon Sep 08 2014 Marcin Juszkiewicz - 32.0-3 +* Mon Sep 18 2014 Marcin Juszkiewicz - 32.0-3 - Fix build on AArch64 * Tue Sep 9 2014 Martin Stransky - 32.0-2 From 2b71a87972c6708f69e809b81188470e530ffab4 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Thu, 18 Sep 2014 15:52:29 +0200 Subject: [PATCH 22/80] Revert "Fix changelog date" This reverts commit 3d2636a82128ca6070965ec0be4d6edbdff31fdb. The patch did not apply and was not needed tue to rework in this version. Backing out. Sorry for the noise. --- xulrunner.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 7f02914..954cf76 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -544,7 +544,7 @@ fi #--------------------------------------------------------------------- %changelog -* Mon Sep 18 2014 Marcin Juszkiewicz - 32.0-3 +* Mon Sep 08 2014 Marcin Juszkiewicz - 32.0-3 - Fix build on AArch64 * Tue Sep 9 2014 Martin Stransky - 32.0-2 From 6d218d94f1d45e744092494c45188e44bdc01f4e Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Thu, 18 Sep 2014 15:53:21 +0200 Subject: [PATCH 23/80] Revert "fix build on AArch64" This reverts commit 7f9652e14cbf01a301ac6af8f3269a0d2f84b80f. The patch did not apply and was not needed tue to rework in this version. Backing out. Sorry for the noise. --- xulrunner-fix-aarch64.patch | 22 ---------------------- xulrunner.spec | 8 +------- 2 files changed, 1 insertion(+), 29 deletions(-) delete mode 100644 xulrunner-fix-aarch64.patch diff --git a/xulrunner-fix-aarch64.patch b/xulrunner-fix-aarch64.patch deleted file mode 100644 index e153160..0000000 --- a/xulrunner-fix-aarch64.patch +++ /dev/null @@ -1,22 +0,0 @@ -Author: Marcin Juszkiewicz - -JS_PUNBOX64 needs to be defined for 64-bit targets. - -Upstream HEAD defines it for all 64-bit machines so no forward porting -should be needed. - -Index: mozilla-release/js/src/configure.in -=================================================================== ---- mozilla-release.orig/js/src/configure.in -+++ mozilla-release/js/src/configure.in -@@ -2017,6 +2017,10 @@ mips*-*) - AC_DEFINE(JS_CPU_MIPS) - AC_DEFINE(JS_NUNBOX32) - ;; -+aarch64*) -+ AC_DEFINE(JS_CPU_AARCH64) -+ AC_DEFINE(JS_PUNBOX64) -+ ;; - esac - - MOZ_ARG_DISABLE_BOOL(ion, diff --git a/xulrunner.spec b/xulrunner.spec index 954cf76..d8ace62 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 32.0 -Release: 3%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -103,8 +103,6 @@ Patch200: mozilla-193-pkgconfig.patch # Unable to install addons from https pages Patch204: rhbz-966424.patch -# Let it build on AArch64 with simple backport like patch -Patch210: xulrunner-fix-aarch64.patch # Upstream patches # --------------------------------------------------- @@ -242,7 +240,6 @@ cd %{tarballdir} %patch200 -p2 -b .pk %patch204 -p1 -b .966424 -%patch210 -p1 # Upstream patches @@ -544,9 +541,6 @@ fi #--------------------------------------------------------------------- %changelog -* Mon Sep 08 2014 Marcin Juszkiewicz - 32.0-3 -- Fix build on AArch64 - * Tue Sep 9 2014 Martin Stransky - 32.0-2 - move /sdk/bin to xulrunner libdir From 0f5045a2d06f32905a57555ac8af5695b490d5e8 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 21 Sep 2014 07:07:33 +0100 Subject: [PATCH 24/80] Update to 32.0.2, sync fixes to the same as firefox --- firefox-baseline-disable.patch | 13 +++++++++++++ sources | 2 +- xulrunner.spec | 20 +++++++++++--------- 3 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 firefox-baseline-disable.patch diff --git a/firefox-baseline-disable.patch b/firefox-baseline-disable.patch new file mode 100644 index 0000000..806d378 --- /dev/null +++ b/firefox-baseline-disable.patch @@ -0,0 +1,13 @@ +diff -up firefox-32.0.1/mozilla-release/media/webrtc/trunk/Makefile.old firefox-32.0.1/mozilla-release/media/webrtc/trunk/Makefile +diff -up firefox-32.0.1/mozilla-release/modules/libpref/src/init/all.js.old firefox-32.0.1/mozilla-release/modules/libpref/src/init/all.js +--- firefox-32.0.1/mozilla-release/modules/libpref/src/init/all.js.old 2014-09-12 00:25:45.000000000 +0200 ++++ firefox-32.0.1/mozilla-release/modules/libpref/src/init/all.js 2014-09-16 14:27:52.447743192 +0200 +@@ -844,7 +844,7 @@ pref("javascript.options.strict", + #ifdef DEBUG + pref("javascript.options.strict.debug", true); + #endif +-pref("javascript.options.baselinejit", true); ++pref("javascript.options.baselinejit", false); + pref("javascript.options.ion", true); + pref("javascript.options.asmjs", true); + pref("javascript.options.native_regexp", true); diff --git a/sources b/sources index 4659689..342a402 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -859d0b6fe2d36b6959cf08cee4c783cc firefox-32.0.source.tar.bz2 +4e2d215627cbeba9d526de872dd7b3ee firefox-32.0.2.source.tar.bz2 diff --git a/xulrunner.spec b/xulrunner.spec index d8ace62..fe371a8 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 32.0 -Release: 2%{?pre_tag}%{?dist} +Version: 32.0.2 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -102,6 +102,7 @@ Patch20: xulrunner-32.0-backport-js-src-configure-in.patch Patch200: mozilla-193-pkgconfig.patch # Unable to install addons from https pages Patch204: rhbz-966424.patch +Patch207: firefox-baseline-disable.patch # Upstream patches @@ -240,6 +241,10 @@ cd %{tarballdir} %patch200 -p2 -b .pk %patch204 -p1 -b .966424 +# disable baseline JIT on i686 (rhbz#1047079) +%ifarch %{ix86} +%patch207 -p2 -b .baseline +%endif # Upstream patches @@ -296,8 +301,6 @@ echo "ac_add_options --with-arch=armv7-a" >> .mozconfig echo "ac_add_options --with-float-abi=hard" >> .mozconfig echo "ac_add_options --with-fpu=neon" >> .mozconfig echo "ac_add_options --disable-elf-hack" >> .mozconfig -echo "ac_add_options --disable-ion" >> .mozconfig -echo "ac_add_options --disable-yarr-jit" >> .mozconfig %endif %ifarch armv5tel echo "ac_add_options --with-arch=armv5te" >> .mozconfig @@ -311,11 +314,6 @@ echo "ac_add_options --disable-yarr-jit" >> .mozconfig echo "ac_add_options --disable-webrtc" >> .mozconfig %endif -# Workaround - installation crash -%ifarch %{ix86} -echo "ac_add_options --disable-ion" >> .mozconfig -%endif - #--------------------------------------------------------------------- %build @@ -541,6 +539,10 @@ fi #--------------------------------------------------------------------- %changelog +* Sat Sep 20 2014 Peter Robinson 32.0.2-1 +- Update to 32.0.2 +- sync fixes to the same as firefox + * Tue Sep 9 2014 Martin Stransky - 32.0-2 - move /sdk/bin to xulrunner libdir From b3f5bd918363784f62510f4e480242133117b4df Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 16 Oct 2014 15:45:47 +0200 Subject: [PATCH 25/80] Updated to 33.0 --- mozilla-1042889.patch | 81 ++++++++++++++++ rhbz-966424.patch | 17 +--- sources | 2 +- ...er-32.0-backport-js-src-configure-in.patch | 92 ------------------- xulrunner.spec | 11 +-- 5 files changed, 91 insertions(+), 112 deletions(-) create mode 100644 mozilla-1042889.patch delete mode 100644 xulrunner-32.0-backport-js-src-configure-in.patch diff --git a/mozilla-1042889.patch b/mozilla-1042889.patch new file mode 100644 index 0000000..6061b9b --- /dev/null +++ b/mozilla-1042889.patch @@ -0,0 +1,81 @@ +diff --git a/dom/browser-element/BrowserElementChildPreload.js b/dom/browser-element/BrowserElementChildPreload.js +--- a/dom/browser-element/BrowserElementChildPreload.js ++++ b/dom/browser-element/BrowserElementChildPreload.js +@@ -90,16 +90,17 @@ function getErrorClass(errorCode) { + switch (NSPRCode) { + case SEC_ERROR_UNKNOWN_ISSUER: + case SEC_ERROR_UNTRUSTED_ISSUER: + case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE: + case SEC_ERROR_UNTRUSTED_CERT: + case SSL_ERROR_BAD_CERT_DOMAIN: + case SEC_ERROR_EXPIRED_CERTIFICATE: + case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED: ++ case SEC_ERROR_CA_CERT_INVALID: + case MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: + return Ci.nsINSSErrorsService.ERROR_CLASS_BAD_CERT; + default: + return Ci.nsINSSErrorsService.ERROR_CLASS_SSL_PROTOCOL; + } + + return null; + } +diff --git a/security/manager/ssl/src/NSSErrorsService.cpp b/security/manager/ssl/src/NSSErrorsService.cpp +--- a/security/manager/ssl/src/NSSErrorsService.cpp ++++ b/security/manager/ssl/src/NSSErrorsService.cpp +@@ -136,16 +136,17 @@ NSSErrorsService::GetErrorClass(nsresult + // Overridable errors. + case SEC_ERROR_UNKNOWN_ISSUER: + case SEC_ERROR_UNTRUSTED_ISSUER: + case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE: + case SEC_ERROR_UNTRUSTED_CERT: + case SSL_ERROR_BAD_CERT_DOMAIN: + case SEC_ERROR_EXPIRED_CERTIFICATE: + case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED: ++ case SEC_ERROR_CA_CERT_INVALID: + case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: + *aErrorClass = ERROR_CLASS_BAD_CERT; + break; + // Non-overridable errors. + default: + *aErrorClass = ERROR_CLASS_SSL_PROTOCOL; + break; + } +diff --git a/security/manager/ssl/src/SSLServerCertVerification.cpp b/security/manager/ssl/src/SSLServerCertVerification.cpp +--- a/security/manager/ssl/src/SSLServerCertVerification.cpp ++++ b/security/manager/ssl/src/SSLServerCertVerification.cpp +@@ -287,16 +287,17 @@ private: + + // A probe value of 1 means "no error". + uint32_t + MapCertErrorToProbeValue(PRErrorCode errorCode) + { + switch (errorCode) + { + case SEC_ERROR_UNKNOWN_ISSUER: return 2; ++ case SEC_ERROR_CA_CERT_INVALID: return 3; + case SEC_ERROR_UNTRUSTED_ISSUER: return 4; + case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE: return 5; + case SEC_ERROR_UNTRUSTED_CERT: return 6; + case SEC_ERROR_INADEQUATE_KEY_USAGE: return 7; + case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED: return 8; + case SSL_ERROR_BAD_CERT_DOMAIN: return 9; + case SEC_ERROR_EXPIRED_CERTIFICATE: return 10; + case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: return 11; +@@ -321,16 +322,17 @@ DetermineCertOverrideErrors(CERTCertific + MOZ_ASSERT(errorCodeMismatch == 0); + MOZ_ASSERT(errorCodeExpired == 0); + + // Assumes the error prioritization described in mozilla::pkix's + // BuildForward function. Also assumes that CERT_VerifyCertName was only + // called if CertVerifier::VerifyCert succeeded. + switch (defaultErrorCodeToReport) { + case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED: ++ case SEC_ERROR_CA_CERT_INVALID: + case SEC_ERROR_UNKNOWN_ISSUER: + case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: + { + collectedErrors = nsICertOverrideService::ERROR_UNTRUSTED; + errorCodeTrust = defaultErrorCodeToReport; + + SECCertTimeValidity validity = CERT_CheckCertValidTimes(cert, now, false); + if (validity == secCertTimeUndetermined) { diff --git a/rhbz-966424.patch b/rhbz-966424.patch index c4c332e..7579d09 100644 --- a/rhbz-966424.patch +++ b/rhbz-966424.patch @@ -1,11 +1,7 @@ ---- a/toolkit/modules/CertUtils.jsm -+++ b/toolkit/modules/CertUtils.jsm -@@ -170,17 +170,19 @@ this.checkCert = - issuerCert = issuerCert.QueryInterface(Ci.nsIX509Cert3); - var tokenNames = issuerCert.getAllTokenNames({}); - - if (!tokenNames || !tokenNames.some(isBuiltinToken)) - throw new Ce(certNotBuiltInErr, Cr.NS_ERROR_ABORT); +diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm +--- firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 2014-10-14 08:12:14.358697255 +0200 ++++ firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-14 08:17:59.962181908 +0200 +@@ -174,7 +174,9 @@ this.checkCert = } function isBuiltinToken(tokenName) { @@ -16,8 +12,3 @@ } /** - * This class implements nsIBadCertListener. Its job is to prevent "bad cert" - * security dialogs from being shown to the user. It is better to simply fail - * if the certificate is bad. See bug 304286. - * - * @param aAllowNonBuiltInCerts (optional) diff --git a/sources b/sources index 342a402..292c031 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -4e2d215627cbeba9d526de872dd7b3ee firefox-32.0.2.source.tar.bz2 +b0e793898bddf4f2bc46e42a331f3383 firefox-33.0.source.tar.bz2 diff --git a/xulrunner-32.0-backport-js-src-configure-in.patch b/xulrunner-32.0-backport-js-src-configure-in.patch deleted file mode 100644 index 1172c7f..0000000 --- a/xulrunner-32.0-backport-js-src-configure-in.patch +++ /dev/null @@ -1,92 +0,0 @@ -#Based on: -#https://hg.mozilla.org/mozilla-central/rev/57852745f33b -#https://hg.mozilla.org/mozilla-central/rev/926f47807112 -#https://hg.mozilla.org/mozilla-central/rev/a7b832e15a34 ---- firefox-32.0/mozilla-release/js/src/configure.in 2014-08-26 05:37:57.000000000 +0200 -+++ configure.in 2014-09-12 09:30:32.252623444 +0200 -@@ -1313,10 +1316,10 @@ - result="yes", result="no") - AC_MSG_RESULT("$result") - if test "$result" = "yes"; then -- AC_DEFINE(HAVE_64BIT_OS) -- HAVE_64BIT_OS=1 -+ AC_DEFINE(HAVE_64BIT_BUILD) -+ HAVE_64BIT_BUILD=1 - fi --AC_SUBST(HAVE_64BIT_OS) -+AC_SUBST(HAVE_64BIT_BUILD) - AC_LANG_RESTORE - fi # COMPILE_ENVIRONMENT - -@@ -1404,7 +1407,7 @@ - *-aix*) - AC_DEFINE(AIX) - if test ! "$GNU_CC"; then -- if test ! "$HAVE_64BIT_OS"; then -+ if test ! "$HAVE_64BIT_BUILD"; then - # Compiling with Visual Age C++ object model compat is the - # default. To compile with object model ibm, add - # AIX_OBJMODEL=ibm to .mozconfig. -@@ -1748,7 +1763,7 @@ - - case "$target" in - i*86-*) -- if test "$HAVE_64BIT_OS"; then -+ if test "$HAVE_64BIT_BUILD"; then - AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.]) - fi - -@@ -1983,39 +1998,34 @@ - i?86-*) - ENABLE_ION=1 - AC_DEFINE(JS_CPU_X86) -- AC_DEFINE(JS_NUNBOX32) - ;; - x86_64*-*) - ENABLE_ION=1 - AC_DEFINE(JS_CPU_X64) -- AC_DEFINE(JS_PUNBOX64) - ;; - arm*-*) - ENABLE_ION=1 - AC_DEFINE(JS_CPU_ARM) -- AC_DEFINE(JS_NUNBOX32) - ;; --sparc*-*) -- if test ! "$HAVE_64BIT_OS" ; then -+sparc-*) - dnl ENABLE_ION=0 - AC_DEFINE(JS_CPU_SPARC) -- AC_DEFINE(JS_NUNBOX32) -- else -- AC_DEFINE(JS_CPU_SPARC64) -- AC_DEFINE(JS_PUNBOX64) -- fi -- ;; --powerpc64-*) -- AC_DEFINE(JS_CPU_PPC64) -- AC_DEFINE(JS_PUNBOX64) -- ;; --powerpc-*) -- AC_DEFINE(JS_CPU_PPC) -- AC_DEFINE(JS_NUNBOX32) - ;; - mips*-*) - AC_DEFINE(JS_CPU_MIPS) -- AC_DEFINE(JS_NUNBOX32) -+ ;; -+esac -+ -+case "$target" in -+mips*-*) -+ AC_DEFINE(JS_NUNBOX32) -+ ;; -+*) -+ if test "$HAVE_64BIT_BUILD" ; then -+ AC_DEFINE(JS_PUNBOX64) -+ else -+ AC_DEFINE(JS_NUNBOX32) -+ fi - ;; - esac - diff --git a/xulrunner.spec b/xulrunner.spec index fe371a8..afa9dc3 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,7 +77,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 32.0.2 +Version: 33.0 Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -95,8 +95,6 @@ Patch3: mozilla-build-arm.patch Patch18: xulrunner-24.0-jemalloc-ppc.patch # workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found) Patch19: xulrunner-24.0-s390-inlines.patch -# backport js/src/configure.in changes for secondary arches -Patch20: xulrunner-32.0-backport-js-src-configure-in.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -105,6 +103,7 @@ Patch204: rhbz-966424.patch Patch207: firefox-baseline-disable.patch # Upstream patches +Patch300: mozilla-1042889.patch # --------------------------------------------------- @@ -237,16 +236,16 @@ cd %{tarballdir} %patch3 -p2 -b .arm %patch18 -p2 -b .jemalloc-ppc %patch19 -p2 -b .s390-inlines -%patch20 -p2 -b .js-configure %patch200 -p2 -b .pk -%patch204 -p1 -b .966424 +%patch204 -p2 -b .966424 # disable baseline JIT on i686 (rhbz#1047079) %ifarch %{ix86} %patch207 -p2 -b .baseline %endif # Upstream patches +%patch300 -p1 -b .1042889 %{__rm} -f .mozconfig @@ -310,7 +309,7 @@ echo "ac_add_options --disable-ion" >> .mozconfig echo "ac_add_options --disable-yarr-jit" >> .mozconfig %endif -%ifnarch %{ix86} x86_64 armv7hl armv7hnl +%ifnarch %{ix86} x86_64 echo "ac_add_options --disable-webrtc" >> .mozconfig %endif From 9074bae1b725e272597975b7dbba675eb89f3dc2 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 16 Oct 2014 15:49:42 +0200 Subject: [PATCH 26/80] Changelog fix --- xulrunner.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xulrunner.spec b/xulrunner.spec index afa9dc3..eff4b84 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -518,6 +518,9 @@ fi %{mozappdir}/crashreporter.ini %{mozappdir}/Throbber-small.gif %endif +%{mozappdir}/install_app.py +%ghost %{mozappdir}/install_app.pyc +%ghost %{mozappdir}/install_app.pyo %files devel %defattr(-,root,root,-) @@ -538,6 +541,9 @@ fi #--------------------------------------------------------------------- %changelog +* Thu Oct 16 2014 Martin Stransky - 33.0-1 +- Update to 33.0 + * Sat Sep 20 2014 Peter Robinson 32.0.2-1 - Update to 32.0.2 - sync fixes to the same as firefox From 358d1af0a75f5ce75599f3994d5a99ec8d9f1d65 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 16 Oct 2014 16:02:22 +0200 Subject: [PATCH 27/80] build fix - PRBool --- firefox-build-prbool.patch | 11 +++++++++++ xulrunner.spec | 2 ++ 2 files changed, 13 insertions(+) create mode 100644 firefox-build-prbool.patch diff --git a/firefox-build-prbool.patch b/firefox-build-prbool.patch new file mode 100644 index 0000000..c7424ea --- /dev/null +++ b/firefox-build-prbool.patch @@ -0,0 +1,11 @@ +diff -up mozilla-release/security/certverifier/OCSPCache.h.old mozilla-release/security/certverifier/OCSPCache.h +--- mozilla-release/security/certverifier/OCSPCache.h.old 2014-10-14 12:33:46.519970732 +0200 ++++ mozilla-release/security/certverifier/OCSPCache.h 2014-10-14 12:34:44.418000625 +0200 +@@ -25,6 +25,7 @@ + #ifndef mozilla_psm_OCSPCache_h + #define mozilla_psm_OCSPCache_h + ++#include "prtypes.h" + #include "hasht.h" + #include "mozilla/Mutex.h" + #include "mozilla/Vector.h" diff --git a/xulrunner.spec b/xulrunner.spec index eff4b84..0e4119b 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -95,6 +95,7 @@ Patch3: mozilla-build-arm.patch Patch18: xulrunner-24.0-jemalloc-ppc.patch # workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found) Patch19: xulrunner-24.0-s390-inlines.patch +Patch20: firefox-build-prbool.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -236,6 +237,7 @@ cd %{tarballdir} %patch3 -p2 -b .arm %patch18 -p2 -b .jemalloc-ppc %patch19 -p2 -b .s390-inlines +%patch20 -p1 -b .prbool %patch200 -p2 -b .pk %patch204 -p2 -b .966424 From 1a7516497d57bed7209c0c3c545c3a57aa85477e Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 17 Oct 2014 14:48:54 +0200 Subject: [PATCH 28/80] ship install_app.py script --- xulrunner.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xulrunner.spec b/xulrunner.spec index 0e4119b..6da6da6 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -399,6 +399,9 @@ DESTDIR=$RPM_BUILD_ROOT make -C objdir install %{__rm} -f $RPM_BUILD_ROOT%{mozappdir}/%{name}-config +# install install_app.py +%{__cp} objdir/dist/bin/install_app.py $RPM_BUILD_ROOT%{mozappdir} + # Copy pc files (for compatibility with 1.9.1) %{__cp} $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul.pc \ $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul-unstable.pc @@ -523,6 +526,7 @@ fi %{mozappdir}/install_app.py %ghost %{mozappdir}/install_app.pyc %ghost %{mozappdir}/install_app.pyo +%{mozappdir}/gmp-fake/* %files devel %defattr(-,root,root,-) From 1dcae4348cf559bb72866841afe1b27840c05565 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Sat, 18 Oct 2014 11:38:24 +0200 Subject: [PATCH 29/80] build fix --- xulrunner.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xulrunner.spec b/xulrunner.spec index 6da6da6..3c10cd6 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -526,7 +526,9 @@ fi %{mozappdir}/install_app.py %ghost %{mozappdir}/install_app.pyc %ghost %{mozappdir}/install_app.pyo +%ifnarch %{arm} %{mozappdir}/gmp-fake/* +%endif %files devel %defattr(-,root,root,-) From 8635c3cfa2a3e9ee3c388bccb1c33394d8270860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 22 Oct 2014 17:13:39 +0200 Subject: [PATCH 30/80] - Fix filelist for secondary arches --- xulrunner.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index 3c10cd6..eacea7c 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 33.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -526,7 +526,7 @@ fi %{mozappdir}/install_app.py %ghost %{mozappdir}/install_app.pyc %ghost %{mozappdir}/install_app.pyo -%ifnarch %{arm} +%ifarch %{ix86} x86_64 %{mozappdir}/gmp-fake/* %endif @@ -549,6 +549,9 @@ fi #--------------------------------------------------------------------- %changelog +* Wed Oct 22 2014 Dan Horák - 33.0-2 +- Fix filelist for secondary arches + * Thu Oct 16 2014 Martin Stransky - 33.0-1 - Update to 33.0 From ae52963c0106d72be2f342a76b23954bd1b2cc23 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 6 Apr 2015 16:33:52 -0400 Subject: [PATCH 31/80] rebuild for libvpx 1.4.0 --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index eacea7c..fd79c9d 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 33.0 -Release: 2%{?pre_tag}%{?dist} +Release: 3%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -549,6 +549,9 @@ fi #--------------------------------------------------------------------- %changelog +* Mon Apr 6 2015 Tom Callaway - 33.0-3 +- rebuild for libvpx 1.4.0 + * Wed Oct 22 2014 Dan Horák - 33.0-2 - Fix filelist for secondary arches From f0c48f3d46ef01eed03dec583e0f4fd1810fd8aa Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Tue, 7 Apr 2015 15:17:40 -0400 Subject: [PATCH 32/80] stop using old compat defines --- xulrunner-33.0-libvpx-modern.patch | 12 ++++++++++++ xulrunner.spec | 2 ++ 2 files changed, 14 insertions(+) create mode 100644 xulrunner-33.0-libvpx-modern.patch diff --git a/xulrunner-33.0-libvpx-modern.patch b/xulrunner-33.0-libvpx-modern.patch new file mode 100644 index 0000000..52d1839 --- /dev/null +++ b/xulrunner-33.0-libvpx-modern.patch @@ -0,0 +1,12 @@ +diff -up xulrunner-33.0/mozilla-release/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc.modern xulrunner-33.0/mozilla-release/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc +--- xulrunner-33.0/mozilla-release/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc.modern 2015-04-07 15:12:34.710923016 -0400 ++++ xulrunner-33.0/mozilla-release/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc 2015-04-07 15:12:48.278838658 -0400 +@@ -180,7 +180,7 @@ int VP8EncoderImpl::InitEncode(const Vid + // Creating a wrapper to the image - setting image data to NULL. Actual + // pointer will be set in encode. Setting align to 1, as it is meaningless + // (actual memory is not allocated). +- raw_ = vpx_img_wrap(NULL, IMG_FMT_I420, codec_.width, codec_.height, ++ raw_ = vpx_img_wrap(NULL, VPX_IMG_FMT_I420, codec_.width, codec_.height, + 1, NULL); + // populate encoder configuration with default values + if (vpx_codec_enc_config_default(vpx_codec_vp8_cx(), config_, 0)) { diff --git a/xulrunner.spec b/xulrunner.spec index fd79c9d..09a5155 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -102,6 +102,7 @@ Patch200: mozilla-193-pkgconfig.patch # Unable to install addons from https pages Patch204: rhbz-966424.patch Patch207: firefox-baseline-disable.patch +Patch208: xulrunner-33.0-libvpx-modern.patch # Upstream patches Patch300: mozilla-1042889.patch @@ -245,6 +246,7 @@ cd %{tarballdir} %ifarch %{ix86} %patch207 -p2 -b .baseline %endif +%patch208 -p2 -b .modern # Upstream patches %patch300 -p1 -b .1042889 From afc4529c2321a2e5235d4b8d43211d303c355dff Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 15 Apr 2015 13:30:31 +0200 Subject: [PATCH 33/80] Update to 37.0.1 --- sources | 2 +- xulrunner.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 292c031..a7e8418 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b0e793898bddf4f2bc46e42a331f3383 firefox-33.0.source.tar.bz2 +2d466d850ef9b0a71bce3b208f5f884c firefox-37.0.1.source.tar.bz2 diff --git a/xulrunner.spec b/xulrunner.spec index 09a5155..b7475e3 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 33.0 -Release: 3%{?pre_tag}%{?dist} +Version: 37.0.1 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -551,6 +551,9 @@ fi #--------------------------------------------------------------------- %changelog +* Wed Apr 15 2015 Martin Stransky - 37.0.1-1 +- Update to 37.0.1 + * Mon Apr 6 2015 Tom Callaway - 33.0-3 - rebuild for libvpx 1.4.0 From cf90f2c273f8f1994ae24b07aefb584c48b62729 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 15 Apr 2015 14:07:31 +0200 Subject: [PATCH 34/80] Update to new version - 37.0.1 --- mozilla-1042889.patch | 81 ------------------------------ xulrunner-33.0-libvpx-modern.patch | 12 ----- xulrunner.spec | 4 -- 3 files changed, 97 deletions(-) delete mode 100644 mozilla-1042889.patch delete mode 100644 xulrunner-33.0-libvpx-modern.patch diff --git a/mozilla-1042889.patch b/mozilla-1042889.patch deleted file mode 100644 index 6061b9b..0000000 --- a/mozilla-1042889.patch +++ /dev/null @@ -1,81 +0,0 @@ -diff --git a/dom/browser-element/BrowserElementChildPreload.js b/dom/browser-element/BrowserElementChildPreload.js ---- a/dom/browser-element/BrowserElementChildPreload.js -+++ b/dom/browser-element/BrowserElementChildPreload.js -@@ -90,16 +90,17 @@ function getErrorClass(errorCode) { - switch (NSPRCode) { - case SEC_ERROR_UNKNOWN_ISSUER: - case SEC_ERROR_UNTRUSTED_ISSUER: - case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE: - case SEC_ERROR_UNTRUSTED_CERT: - case SSL_ERROR_BAD_CERT_DOMAIN: - case SEC_ERROR_EXPIRED_CERTIFICATE: - case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED: -+ case SEC_ERROR_CA_CERT_INVALID: - case MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: - return Ci.nsINSSErrorsService.ERROR_CLASS_BAD_CERT; - default: - return Ci.nsINSSErrorsService.ERROR_CLASS_SSL_PROTOCOL; - } - - return null; - } -diff --git a/security/manager/ssl/src/NSSErrorsService.cpp b/security/manager/ssl/src/NSSErrorsService.cpp ---- a/security/manager/ssl/src/NSSErrorsService.cpp -+++ b/security/manager/ssl/src/NSSErrorsService.cpp -@@ -136,16 +136,17 @@ NSSErrorsService::GetErrorClass(nsresult - // Overridable errors. - case SEC_ERROR_UNKNOWN_ISSUER: - case SEC_ERROR_UNTRUSTED_ISSUER: - case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE: - case SEC_ERROR_UNTRUSTED_CERT: - case SSL_ERROR_BAD_CERT_DOMAIN: - case SEC_ERROR_EXPIRED_CERTIFICATE: - case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED: -+ case SEC_ERROR_CA_CERT_INVALID: - case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: - *aErrorClass = ERROR_CLASS_BAD_CERT; - break; - // Non-overridable errors. - default: - *aErrorClass = ERROR_CLASS_SSL_PROTOCOL; - break; - } -diff --git a/security/manager/ssl/src/SSLServerCertVerification.cpp b/security/manager/ssl/src/SSLServerCertVerification.cpp ---- a/security/manager/ssl/src/SSLServerCertVerification.cpp -+++ b/security/manager/ssl/src/SSLServerCertVerification.cpp -@@ -287,16 +287,17 @@ private: - - // A probe value of 1 means "no error". - uint32_t - MapCertErrorToProbeValue(PRErrorCode errorCode) - { - switch (errorCode) - { - case SEC_ERROR_UNKNOWN_ISSUER: return 2; -+ case SEC_ERROR_CA_CERT_INVALID: return 3; - case SEC_ERROR_UNTRUSTED_ISSUER: return 4; - case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE: return 5; - case SEC_ERROR_UNTRUSTED_CERT: return 6; - case SEC_ERROR_INADEQUATE_KEY_USAGE: return 7; - case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED: return 8; - case SSL_ERROR_BAD_CERT_DOMAIN: return 9; - case SEC_ERROR_EXPIRED_CERTIFICATE: return 10; - case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: return 11; -@@ -321,16 +322,17 @@ DetermineCertOverrideErrors(CERTCertific - MOZ_ASSERT(errorCodeMismatch == 0); - MOZ_ASSERT(errorCodeExpired == 0); - - // Assumes the error prioritization described in mozilla::pkix's - // BuildForward function. Also assumes that CERT_VerifyCertName was only - // called if CertVerifier::VerifyCert succeeded. - switch (defaultErrorCodeToReport) { - case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED: -+ case SEC_ERROR_CA_CERT_INVALID: - case SEC_ERROR_UNKNOWN_ISSUER: - case mozilla::pkix::MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY: - { - collectedErrors = nsICertOverrideService::ERROR_UNTRUSTED; - errorCodeTrust = defaultErrorCodeToReport; - - SECCertTimeValidity validity = CERT_CheckCertValidTimes(cert, now, false); - if (validity == secCertTimeUndetermined) { diff --git a/xulrunner-33.0-libvpx-modern.patch b/xulrunner-33.0-libvpx-modern.patch deleted file mode 100644 index 52d1839..0000000 --- a/xulrunner-33.0-libvpx-modern.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up xulrunner-33.0/mozilla-release/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc.modern xulrunner-33.0/mozilla-release/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc ---- xulrunner-33.0/mozilla-release/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc.modern 2015-04-07 15:12:34.710923016 -0400 -+++ xulrunner-33.0/mozilla-release/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc 2015-04-07 15:12:48.278838658 -0400 -@@ -180,7 +180,7 @@ int VP8EncoderImpl::InitEncode(const Vid - // Creating a wrapper to the image - setting image data to NULL. Actual - // pointer will be set in encode. Setting align to 1, as it is meaningless - // (actual memory is not allocated). -- raw_ = vpx_img_wrap(NULL, IMG_FMT_I420, codec_.width, codec_.height, -+ raw_ = vpx_img_wrap(NULL, VPX_IMG_FMT_I420, codec_.width, codec_.height, - 1, NULL); - // populate encoder configuration with default values - if (vpx_codec_enc_config_default(vpx_codec_vp8_cx(), config_, 0)) { diff --git a/xulrunner.spec b/xulrunner.spec index b7475e3..8449943 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -102,10 +102,8 @@ Patch200: mozilla-193-pkgconfig.patch # Unable to install addons from https pages Patch204: rhbz-966424.patch Patch207: firefox-baseline-disable.patch -Patch208: xulrunner-33.0-libvpx-modern.patch # Upstream patches -Patch300: mozilla-1042889.patch # --------------------------------------------------- @@ -246,10 +244,8 @@ cd %{tarballdir} %ifarch %{ix86} %patch207 -p2 -b .baseline %endif -%patch208 -p2 -b .modern # Upstream patches -%patch300 -p1 -b .1042889 %{__rm} -f .mozconfig From a0e96f51f1661dfbf1b91ca6c1032c0685d21d97 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 15 Apr 2015 14:37:53 +0200 Subject: [PATCH 35/80] removed unused patch --- firefox-baseline-disable.patch | 13 ------------- xulrunner.spec | 5 ----- 2 files changed, 18 deletions(-) delete mode 100644 firefox-baseline-disable.patch diff --git a/firefox-baseline-disable.patch b/firefox-baseline-disable.patch deleted file mode 100644 index 806d378..0000000 --- a/firefox-baseline-disable.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up firefox-32.0.1/mozilla-release/media/webrtc/trunk/Makefile.old firefox-32.0.1/mozilla-release/media/webrtc/trunk/Makefile -diff -up firefox-32.0.1/mozilla-release/modules/libpref/src/init/all.js.old firefox-32.0.1/mozilla-release/modules/libpref/src/init/all.js ---- firefox-32.0.1/mozilla-release/modules/libpref/src/init/all.js.old 2014-09-12 00:25:45.000000000 +0200 -+++ firefox-32.0.1/mozilla-release/modules/libpref/src/init/all.js 2014-09-16 14:27:52.447743192 +0200 -@@ -844,7 +844,7 @@ pref("javascript.options.strict", - #ifdef DEBUG - pref("javascript.options.strict.debug", true); - #endif --pref("javascript.options.baselinejit", true); -+pref("javascript.options.baselinejit", false); - pref("javascript.options.ion", true); - pref("javascript.options.asmjs", true); - pref("javascript.options.native_regexp", true); diff --git a/xulrunner.spec b/xulrunner.spec index 8449943..d2201d4 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -101,7 +101,6 @@ Patch20: firefox-build-prbool.patch Patch200: mozilla-193-pkgconfig.patch # Unable to install addons from https pages Patch204: rhbz-966424.patch -Patch207: firefox-baseline-disable.patch # Upstream patches @@ -240,10 +239,6 @@ cd %{tarballdir} %patch200 -p2 -b .pk %patch204 -p2 -b .966424 -# disable baseline JIT on i686 (rhbz#1047079) -%ifarch %{ix86} -%patch207 -p2 -b .baseline -%endif # Upstream patches From 27bff7ab6a4e8590980d51f2c1f15a3f6c467b68 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 15 Apr 2015 15:24:57 +0200 Subject: [PATCH 36/80] removed /mozilla-xremote-client --- xulrunner.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index d2201d4..a4f5054 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -500,7 +500,6 @@ fi %{mozappdir}/components/*.manifest %{mozappdir}/omni.ja %{mozappdir}/*.so -%{mozappdir}/mozilla-xremote-client %{mozappdir}/run-mozilla.sh %{mozappdir}/xulrunner %{mozappdir}/xulrunner-stub From c28fb475f7fea886964493e2c49d394dbb7d52e0 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 15 Apr 2015 20:59:44 +0200 Subject: [PATCH 37/80] Added gmp-clearkey to provided files --- xulrunner.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/xulrunner.spec b/xulrunner.spec index a4f5054..281ec3c 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -507,6 +507,7 @@ fi %{mozappdir}/dependentlibs.list %{_sysconfdir}/ld.so.conf.d/xulrunner*.conf %{mozappdir}/plugin-container +%{mozappdir}/gmp-clearkey %if !%{?system_nss} %{mozappdir}/*.chk %endif From 3949c148c5baf5e2be95bc70d5b3aa6089a28b2a Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Thu, 16 Apr 2015 13:52:45 +0200 Subject: [PATCH 38/80] Update to 37.0.2 --- sources | 2 +- xulrunner.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sources b/sources index a7e8418..1e885f0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2d466d850ef9b0a71bce3b208f5f884c firefox-37.0.1.source.tar.bz2 +755c04ee31dbcd28ed4d351b67fe8a8f firefox-37.0.2.source.tar.bz2 diff --git a/xulrunner.spec b/xulrunner.spec index 281ec3c..dc0b15b 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,7 +77,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 37.0.1 +Version: 37.0.2 Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -542,6 +542,9 @@ fi #--------------------------------------------------------------------- %changelog +* Thu Apr 16 2015 Jan Horak - 37.0.2-1 +- Update to 37.0.2 + * Wed Apr 15 2015 Martin Stransky - 37.0.1-1 - Update to 37.0.1 From 5aaaab18aa9df5a3c33c8b42ac709fafbf151525 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Thu, 16 Apr 2015 14:27:09 +0200 Subject: [PATCH 39/80] Added skia patch for arm --- aarch64-fix-skia.patch | 18 ++++++++++++++++++ mozilla-build-arm.patch | 35 +++++++++++++++++++++++------------ xulrunner.spec | 2 ++ 3 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 aarch64-fix-skia.patch diff --git a/aarch64-fix-skia.patch b/aarch64-fix-skia.patch new file mode 100644 index 0000000..4b9958d --- /dev/null +++ b/aarch64-fix-skia.patch @@ -0,0 +1,18 @@ +Based on https://github.com/google/skia/commit/b79ff56de23fef680ae7187040f2d6a9516b553d + +Index: mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.h +=================================================================== +--- mozilla-release.orig/gfx/skia/trunk/src/core/SkUtilsArm.h ++++ mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.h +@@ -21,9 +21,9 @@ + #define SK_ARM_NEON_MODE_ALWAYS 1 + #define SK_ARM_NEON_MODE_DYNAMIC 2 + +-#if defined(SK_CPU_ARM32) && defined(__ARM_HAVE_OPTIONAL_NEON_SUPPORT) ++#if defined(__ARM_HAVE_OPTIONAL_NEON_SUPPORT) + # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_DYNAMIC +-#elif defined(SK_CPU_ARM32) && defined(__ARM_HAVE_NEON) || defined(SK_CPU_ARM64) ++#elif defined(__ARM_HAVE_NEON) + # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_ALWAYS + #else + # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_NONE diff --git a/mozilla-build-arm.patch b/mozilla-build-arm.patch index f98cbe3..86e6f2e 100644 --- a/mozilla-build-arm.patch +++ b/mozilla-build-arm.patch @@ -1,12 +1,23 @@ -diff -up firefox-29.0/mozilla-release/gfx/ycbcr/moz.build.arm firefox-29.0/mozilla-release/gfx/ycbcr/moz.build ---- firefox-29.0/mozilla-release/gfx/ycbcr/moz.build.arm 2014-04-22 07:27:47.000000000 +0200 -+++ firefox-29.0/mozilla-release/gfx/ycbcr/moz.build 2014-04-22 16:40:34.862849368 +0200 -@@ -61,7 +61,7 @@ else: - 'yuv_row_other.cpp', - ] - --if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']: -+if CONFIG['HAVE_ARM_NEON']: - SOURCES += [ - 'yuv_row_arm.s', - ] +diff -up firefox-36.0.1/mozilla-release/media/webrtc/trunk/webrtc/build/common.gypi.arm firefox-36.0.1/mozilla-release/media/webrtc/trunk/webrtc/build/common.gypi +--- firefox-36.0.1/mozilla-release/media/webrtc/trunk/webrtc/build/common.gypi.arm 2015-03-05 11:28:19.000000000 +0100 ++++ firefox-36.0.1/mozilla-release/media/webrtc/trunk/webrtc/build/common.gypi 2015-03-09 10:02:17.875243261 +0100 +@@ -235,19 +235,6 @@ + 'defines': [ + 'WEBRTC_ARCH_ARM', + ], +- 'conditions': [ +- ['arm_version==7', { +- 'defines': ['WEBRTC_ARCH_ARM_V7', +- 'WEBRTC_BUILD_NEON_LIBS'], +- 'conditions': [ +- ['arm_neon==1', { +- 'defines': ['WEBRTC_ARCH_ARM_NEON',], +- }, { +- 'defines': ['WEBRTC_DETECT_ARM_NEON',], +- }], +- ], +- }], +- ], + }], + ['os_bsd==1', { + 'defines': [ diff --git a/xulrunner.spec b/xulrunner.spec index dc0b15b..347a664 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -96,6 +96,7 @@ Patch18: xulrunner-24.0-jemalloc-ppc.patch # workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found) Patch19: xulrunner-24.0-s390-inlines.patch Patch20: firefox-build-prbool.patch +Patch21: aarch64-fix-skia.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -236,6 +237,7 @@ cd %{tarballdir} %patch18 -p2 -b .jemalloc-ppc %patch19 -p2 -b .s390-inlines %patch20 -p1 -b .prbool +%patch21 -p1 -b .aarch64-fix-skia %patch200 -p2 -b .pk %patch204 -p2 -b .966424 From 8017ba78f57ac1de352a20017c06d17740b9f4f8 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Thu, 16 Apr 2015 15:21:39 +0200 Subject: [PATCH 40/80] Enable skia by default --- xulrunner-mozconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig index 6d680ff..e80f39e 100644 --- a/xulrunner-mozconfig +++ b/xulrunner-mozconfig @@ -33,6 +33,7 @@ ac_add_options --disable-updater ac_add_options --enable-chrome-format=omni ac_add_options --disable-gstreamer ac_add_options --enable-pulseaudio +ac_add_options --enable-skia export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 From 30c26d6d0bb52a03e2e527800595b89f95397f85 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Thu, 16 Apr 2015 17:36:41 +0200 Subject: [PATCH 41/80] Add gmp-fake also to arm --- xulrunner.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index 347a664..fe66e91 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -521,9 +521,7 @@ fi %{mozappdir}/install_app.py %ghost %{mozappdir}/install_app.pyc %ghost %{mozappdir}/install_app.pyo -%ifarch %{ix86} x86_64 %{mozappdir}/gmp-fake/* -%endif %files devel %defattr(-,root,root,-) From c535c4cbfa1c75d5f9b6c829d8c9ae5bb2977bb6 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Mon, 27 Apr 2015 15:43:34 +0200 Subject: [PATCH 42/80] Added skia patch for big endian platforms --- mozilla-1005535.patch | 194 ++++++++++++++++++++++++++++++++++++++++++ xulrunner.spec | 2 + 2 files changed, 196 insertions(+) create mode 100644 mozilla-1005535.patch diff --git a/mozilla-1005535.patch b/mozilla-1005535.patch new file mode 100644 index 0000000..2f0381b --- /dev/null +++ b/mozilla-1005535.patch @@ -0,0 +1,194 @@ +# HG changeset patch +# Parent b7eb1ce0237d6125b75bc8ff1cb3afc328d6e78c +# User Steve Singer +Bug 1005535 - Get skia GPU building on big endian. + +diff --git a/configure.in b/configure.in +--- a/configure.in ++++ b/configure.in +@@ -8231,21 +8231,21 @@ dnl Skia + dnl ======================================================== + if test "$MOZ_ENABLE_SKIA"; then + AC_DEFINE(MOZ_ENABLE_SKIA) + AC_DEFINE(USE_SKIA) + if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then + AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK) + fi + +- if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then ++# if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then + MOZ_ENABLE_SKIA_GPU=1 + AC_DEFINE(USE_SKIA_GPU) + AC_SUBST(MOZ_ENABLE_SKIA_GPU) +- fi ++# fi + fi + AC_SUBST(MOZ_ENABLE_SKIA) + + dnl ======================================================== + dnl disable xul + dnl ======================================================== + MOZ_ARG_DISABLE_BOOL(xul, + [ --disable-xul Disable XUL], +diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py +--- a/gfx/skia/generate_mozbuild.py ++++ b/gfx/skia/generate_mozbuild.py +@@ -236,17 +236,17 @@ def generate_separated_sources(platform_ + return True + + return False + + separated = { + 'common': { + #'trunk/src/effects/gradients/SkGradientTileProc.cpp', + 'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp', +- 'trunk/src/ports/SkDiscardableMemory_none.cpp', ++ #'trunk/src/ports/SkDiscardableMemory_none.cpp', + 'trunk/src/ports/SkImageDecoder_empty.cpp', + 'trunk/src/ports/SkMemory_mozalloc.cpp', + # 'trunk/src/images/SkImages.cpp', + # 'trunk/src/images/SkImageRef.cpp', + # 'trunk/src/images/SkImageRef_GlobalPool.cpp', + # 'trunk/src/images/SkImageRefPool.cpp', + # 'trunk/src/images/SkImageDecoder.cpp', + # 'trunk/src/images/SkImageDecoder_Factory.cpp', +diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build +--- a/gfx/skia/moz.build ++++ b/gfx/skia/moz.build +@@ -847,17 +847,16 @@ else: + 'trunk/src/opts/SkBitmapProcState_opts_none.cpp', + 'trunk/src/opts/SkBlitMask_opts_none.cpp', + 'trunk/src/opts/SkBlitRow_opts_none.cpp', + 'trunk/src/opts/SkBlurImage_opts_none.cpp', + 'trunk/src/opts/SkMorphology_opts_none.cpp', + 'trunk/src/opts/SkTextureCompression_opts_none.cpp', + 'trunk/src/opts/SkUtils_opts_none.cpp', + 'trunk/src/opts/SkXfermode_opts_none.cpp', +- 'trunk/src/ports/SkDiscardableMemory_none.cpp', + ] + + + # can we find a better way of dealing with asm sources? + + # left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with + if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']: + SOURCES += [ +diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/include/config/SkUserConfig.h +--- a/gfx/skia/trunk/include/config/SkUserConfig.h ++++ b/gfx/skia/trunk/include/config/SkUserConfig.h +@@ -192,16 +192,17 @@ + + #if defined(SK_CPU_ARM32) || defined(SK_CPU_ARM64) + # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_arm.h" + #else + # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_x86.h" + #endif + + // On all platforms we have this byte order ++ + #define SK_A32_SHIFT 24 + #define SK_R32_SHIFT 16 + #define SK_G32_SHIFT 8 + #define SK_B32_SHIFT 0 + + #define SK_ALLOW_STATIC_GLOBAL_INITIALIZERS 0 + + #define SK_SUPPORT_LEGACY_GETDEVICE +diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/core/SkColorPriv.h +--- a/gfx/skia/trunk/include/core/SkColorPriv.h ++++ b/gfx/skia/trunk/include/core/SkColorPriv.h +@@ -27,37 +27,27 @@ + * For easier compatibility with Skia's GPU backend, we further restrict these + * to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does + * not directly correspond to the same shift-order, since we have to take endianess + * into account. + * + * Here we enforce this constraint. + */ + +-#ifdef SK_CPU_BENDIAN +- #define SK_RGBA_R32_SHIFT 24 +- #define SK_RGBA_G32_SHIFT 16 +- #define SK_RGBA_B32_SHIFT 8 +- #define SK_RGBA_A32_SHIFT 0 + +- #define SK_BGRA_B32_SHIFT 24 +- #define SK_BGRA_G32_SHIFT 16 +- #define SK_BGRA_R32_SHIFT 8 +- #define SK_BGRA_A32_SHIFT 0 +-#else + #define SK_RGBA_R32_SHIFT 0 + #define SK_RGBA_G32_SHIFT 8 + #define SK_RGBA_B32_SHIFT 16 + #define SK_RGBA_A32_SHIFT 24 + + #define SK_BGRA_B32_SHIFT 0 + #define SK_BGRA_G32_SHIFT 8 + #define SK_BGRA_R32_SHIFT 16 + #define SK_BGRA_A32_SHIFT 24 +-#endif ++ + + #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) + #error "can't define PMCOLOR to be RGBA and BGRA" + #endif + + #define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA \ + (SK_A32_SHIFT == SK_RGBA_A32_SHIFT && \ + SK_R32_SHIFT == SK_RGBA_R32_SHIFT && \ +diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/core/SkImageInfo.h +--- a/gfx/skia/trunk/include/core/SkImageInfo.h ++++ b/gfx/skia/trunk/include/core/SkImageInfo.h +@@ -83,19 +83,20 @@ enum SkColorType { + + kLastEnum_SkColorType = kIndex_8_SkColorType, + + #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) + kN32_SkColorType = kBGRA_8888_SkColorType, + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + kN32_SkColorType = kRGBA_8888_SkColorType, + #else +-#error "SK_*32_SHFIT values must correspond to BGRA or RGBA byte order" ++ kN32_SkColorType = kBGRA_8888_SkColorType + #endif + ++ + #ifdef SK_SUPPORT_LEGACY_N32_NAME + kPMColor_SkColorType = kN32_SkColorType + #endif + }; + + static int SkColorTypeBytesPerPixel(SkColorType ct) { + static const uint8_t gSize[] = { + 0, // Unknown +diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/GrTypes.h +--- a/gfx/skia/trunk/include/gpu/GrTypes.h ++++ b/gfx/skia/trunk/include/gpu/GrTypes.h +@@ -304,25 +304,23 @@ enum GrPixelConfig { + * Byte order is r, g, b, a. This color format is 32 bits per channel + */ + kRGBA_float_GrPixelConfig, + kLast_GrPixelConfig = kRGBA_float_GrPixelConfig + }; + static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; + + // Aliases for pixel configs that match skia's byte order. +-#ifndef SK_CPU_LENDIAN +- #error "Skia gpu currently assumes little endian" +-#endif ++ + #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig; + #else +- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format." ++ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; + #endif + + // Returns true if the pixel config is a GPU-specific compressed format + // representation. + static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { + switch (config) { + case kETC1_GrPixelConfig: + case kLATC_GrPixelConfig: diff --git a/xulrunner.spec b/xulrunner.spec index fe66e91..a0f6160 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -97,6 +97,7 @@ Patch18: xulrunner-24.0-jemalloc-ppc.patch Patch19: xulrunner-24.0-s390-inlines.patch Patch20: firefox-build-prbool.patch Patch21: aarch64-fix-skia.patch +Patch22: mozilla-1005535.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -238,6 +239,7 @@ cd %{tarballdir} %patch19 -p2 -b .s390-inlines %patch20 -p1 -b .prbool %patch21 -p1 -b .aarch64-fix-skia +%patch22 -p1 -b .mozilla-1005535 %patch200 -p2 -b .pk %patch204 -p2 -b .966424 From ea81758d7c935b28206ecfb41dec5952fa3026ef Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Mon, 27 Apr 2015 15:47:31 +0200 Subject: [PATCH 43/80] Added skia patch for big endian platforms, changelog entry and release bump --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index a0f6160..a884673 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 37.0.2 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -544,6 +544,9 @@ fi #--------------------------------------------------------------------- %changelog +* Mon Apr 27 2015 Jan Horak - 37.0.2-2 +- Added patch for big endian arches + * Thu Apr 16 2015 Jan Horak - 37.0.2-1 - Update to 37.0.2 From 0d6f3cd8d78aa2544b7bc55af98b8be2a5fa2e65 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 7 May 2015 13:09:09 +0200 Subject: [PATCH 44/80] Update to 38.0 Build 2 --- sources | 2 +- xulrunner.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 1e885f0..ed52843 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -755c04ee31dbcd28ed4d351b67fe8a8f firefox-37.0.2.source.tar.bz2 +d1c66ec031c0cb8aea3df7210dc6955c firefox-38.0.source.tar.bz2 diff --git a/xulrunner.spec b/xulrunner.spec index a884673..0ba25e0 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 37.0.2 -Release: 2%{?pre_tag}%{?dist} +Version: 38.0 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -544,6 +544,9 @@ fi #--------------------------------------------------------------------- %changelog +* Thu May 7 2015 Martin Stransky - 38.0-1 +- Update to 38.0 Build 2 + * Mon Apr 27 2015 Jan Horak - 37.0.2-2 - Added patch for big endian arches From f6cc1db8651e5197ed17bc042337b6ec995fbe82 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 7 May 2015 13:23:15 +0200 Subject: [PATCH 45/80] patch for nss-3.18.0 --- firefox-nss-3.18.0.patch | 13 +++++++++++++ xulrunner.spec | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 firefox-nss-3.18.0.patch diff --git a/firefox-nss-3.18.0.patch b/firefox-nss-3.18.0.patch new file mode 100644 index 0000000..a693832 --- /dev/null +++ b/firefox-nss-3.18.0.patch @@ -0,0 +1,13 @@ +diff -up mozilla-release/configure.in.old mozilla-release/configure.in +--- mozilla-release/configure.in.old 2015-04-28 20:31:45.000000000 +0200 ++++ mozilla-release/configure.in 2015-04-28 20:32:40.807783614 +0200 +@@ -3627,7 +3627,7 @@ MOZ_ARG_WITH_BOOL(system-nss, + _USE_SYSTEM_NSS=1 ) + + if test -n "$_USE_SYSTEM_NSS"; then +- AM_PATH_NSS(3.18.1, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) ++ AM_PATH_NSS(3.18.0, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) + fi + + if test -n "$MOZ_NATIVE_NSS"; then +diff -up mozilla-release/media/webrtc/trunk/Makefile.old mozilla-release/media/webrtc/trunk/Makefile diff --git a/xulrunner.spec b/xulrunner.spec index 0ba25e0..f098a21 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -98,6 +98,7 @@ Patch19: xulrunner-24.0-s390-inlines.patch Patch20: firefox-build-prbool.patch Patch21: aarch64-fix-skia.patch Patch22: mozilla-1005535.patch +Patch23: firefox-nss-3.18.0.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -240,6 +241,7 @@ cd %{tarballdir} %patch20 -p1 -b .prbool %patch21 -p1 -b .aarch64-fix-skia %patch22 -p1 -b .mozilla-1005535 +%patch23 -p1 -b .nss-3.18.0 %patch200 -p2 -b .pk %patch204 -p2 -b .966424 From a361a147c0e53e6f5e30d3b7adbd4f8e576f0ca0 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 7 May 2015 13:55:27 +0200 Subject: [PATCH 46/80] Updated file lists --- xulrunner.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index f098a21..668377e 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -525,7 +525,7 @@ fi %{mozappdir}/install_app.py %ghost %{mozappdir}/install_app.pyc %ghost %{mozappdir}/install_app.pyo -%{mozappdir}/gmp-fake/* +%{mozappdir}/gmp-fake*/* %files devel %defattr(-,root,root,-) From db9aa2876275b269cea59b922763121e309857da Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 19 Jun 2015 04:30:41 +0000 Subject: [PATCH 47/80] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 668377e..292bf54 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 38.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -546,6 +546,9 @@ fi #--------------------------------------------------------------------- %changelog +* Fri Jun 19 2015 Fedora Release Engineering - 38.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Thu May 7 2015 Martin Stransky - 38.0-1 - Update to 38.0 Build 2 From efb99048087356ea193c44e781a9f56d808bf59f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 8 Jul 2015 13:10:41 -0400 Subject: [PATCH 48/80] workaround build issues on s390 If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which overrides the -g1 from line above and breaks building on s390 (OOM when linking, rhbz#1238225) Workaround mis-optimization in javascipt engine on s390 (rhbz#1219542) --- rhbz-1219542-s390-build.patch | 23 +++++++++++++++++++++++ xulrunner.spec | 8 ++++++++ 2 files changed, 31 insertions(+) create mode 100644 rhbz-1219542-s390-build.patch diff --git a/rhbz-1219542-s390-build.patch b/rhbz-1219542-s390-build.patch new file mode 100644 index 0000000..4f38200 --- /dev/null +++ b/rhbz-1219542-s390-build.patch @@ -0,0 +1,23 @@ +diff -up mozilla-release/js/src/configure.in.opt mozilla-release/js/src/configure.in +--- mozilla-release/js/src/configure.in.opt 2015-05-04 02:43:23.000000000 +0200 ++++ mozilla-release/js/src/configure.in 2015-05-07 14:21:07.685405039 +0200 +@@ -1492,7 +1492,7 @@ case "$host" in + *-linux*|*-kfreebsd*-gnu|*-gnu*) + HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" + HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"' +- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" ++ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}" + ;; + + *) +@@ -1674,8 +1674,8 @@ ia64*-hpux*) + # while; Intel recommends against using it. + MOZ_OPTIMIZE_FLAGS="-O2" + elif test "$GNU_CC" -o "$GNU_CXX"; then +- MOZ_PGO_OPTIMIZE_FLAGS="-O3" +- MOZ_OPTIMIZE_FLAGS="-O3" ++ MOZ_PGO_OPTIMIZE_FLAGS="-O1" ++ MOZ_OPTIMIZE_FLAGS="-O1" + if test -z "$CLANG_CC"; then + MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS" + fi diff --git a/xulrunner.spec b/xulrunner.spec index 292bf54..3bbbb4b 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -99,6 +99,7 @@ Patch20: firefox-build-prbool.patch Patch21: aarch64-fix-skia.patch Patch22: mozilla-1005535.patch Patch23: firefox-nss-3.18.0.patch +Patch24: rhbz-1219542-s390-build.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -242,6 +243,9 @@ cd %{tarballdir} %patch21 -p1 -b .aarch64-fix-skia %patch22 -p1 -b .mozilla-1005535 %patch23 -p1 -b .nss-3.18.0 +%ifarch s390 +%patch24 -p1 -b .rhbz-1219542-s390 +%endif %patch200 -p2 -b .pk %patch204 -p2 -b .966424 @@ -346,6 +350,10 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') %endif %ifarch s390 MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') +# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which +# overrides the -g1 from line above and breaks building on s390 +# (OOM when linking, rhbz#1238225) +export MOZ_DEBUG_FLAGS=" " %endif %ifarch s390 %{arm} ppc aarch64 MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" From a0580a0bd85d367233f59e8a09e4045684d91374 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 10 Jul 2015 14:33:49 +0200 Subject: [PATCH 49/80] Update to 39.0 --- sources | 2 +- xulrunner.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sources b/sources index ed52843..bfecd5f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d1c66ec031c0cb8aea3df7210dc6955c firefox-38.0.source.tar.bz2 +34d9841bc9b8a85aaf06e311cf1cb263 firefox-39.0.source.tar.bz2 diff --git a/xulrunner.spec b/xulrunner.spec index 3bbbb4b..9570fd8 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 38.0 -Release: 2%{?pre_tag}%{?dist} +Version: 39.0 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -554,6 +554,9 @@ fi #--------------------------------------------------------------------- %changelog +* Fri Jul 10 2015 Martin Stransky - 39.0-1 +- Update to 39.0 + * Fri Jun 19 2015 Fedora Release Engineering - 38.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild From 588fddfcfcf891ca9cd576a1c2d61aaa458950e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Ja=C5=A1=C3=AD=C4=8Dek?= Date: Tue, 21 Jul 2015 12:46:14 +0200 Subject: [PATCH 50/80] Fixed xulrunner build on fedora 23, #1243104 --- mozilla-1005535.patch | 152 +++++++--------------- mozilla-1243104.patch | 284 ++++++++++++++++++++++++++++++++++++++++++ xulrunner.spec | 9 +- 3 files changed, 333 insertions(+), 112 deletions(-) create mode 100644 mozilla-1243104.patch diff --git a/mozilla-1005535.patch b/mozilla-1005535.patch index 2f0381b..ef4f1ac 100644 --- a/mozilla-1005535.patch +++ b/mozilla-1005535.patch @@ -3,15 +3,11 @@ # User Steve Singer Bug 1005535 - Get skia GPU building on big endian. -diff --git a/configure.in b/configure.in ---- a/configure.in -+++ b/configure.in -@@ -8231,21 +8231,21 @@ dnl Skia - dnl ======================================================== - if test "$MOZ_ENABLE_SKIA"; then - AC_DEFINE(MOZ_ENABLE_SKIA) - AC_DEFINE(USE_SKIA) - if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then +Index: mozilla-release/configure.in +=================================================================== +--- mozilla-release.orig/configure.in ++++ mozilla-release/configure.in +@@ -8243,11 +8243,11 @@ if test "$MOZ_ENABLE_SKIA"; then AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK) fi @@ -25,63 +21,35 @@ diff --git a/configure.in b/configure.in fi AC_SUBST(MOZ_ENABLE_SKIA) - dnl ======================================================== - dnl disable xul - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(xul, - [ --disable-xul Disable XUL], -diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py ---- a/gfx/skia/generate_mozbuild.py -+++ b/gfx/skia/generate_mozbuild.py -@@ -236,17 +236,17 @@ def generate_separated_sources(platform_ - return True - - return False - - separated = { +Index: mozilla-release/gfx/skia/generate_mozbuild.py +=================================================================== +--- mozilla-release.orig/gfx/skia/generate_mozbuild.py ++++ mozilla-release/gfx/skia/generate_mozbuild.py +@@ -242,7 +242,6 @@ def generate_separated_sources(platform_ 'common': { #'trunk/src/effects/gradients/SkGradientTileProc.cpp', 'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp', - 'trunk/src/ports/SkDiscardableMemory_none.cpp', -+ #'trunk/src/ports/SkDiscardableMemory_none.cpp', 'trunk/src/ports/SkImageDecoder_empty.cpp', 'trunk/src/ports/SkMemory_mozalloc.cpp', # 'trunk/src/images/SkImages.cpp', - # 'trunk/src/images/SkImageRef.cpp', - # 'trunk/src/images/SkImageRef_GlobalPool.cpp', - # 'trunk/src/images/SkImageRefPool.cpp', - # 'trunk/src/images/SkImageDecoder.cpp', - # 'trunk/src/images/SkImageDecoder_Factory.cpp', -diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build ---- a/gfx/skia/moz.build -+++ b/gfx/skia/moz.build -@@ -847,17 +847,16 @@ else: - 'trunk/src/opts/SkBitmapProcState_opts_none.cpp', - 'trunk/src/opts/SkBlitMask_opts_none.cpp', - 'trunk/src/opts/SkBlitRow_opts_none.cpp', - 'trunk/src/opts/SkBlurImage_opts_none.cpp', - 'trunk/src/opts/SkMorphology_opts_none.cpp', - 'trunk/src/opts/SkTextureCompression_opts_none.cpp', - 'trunk/src/opts/SkUtils_opts_none.cpp', - 'trunk/src/opts/SkXfermode_opts_none.cpp', -- 'trunk/src/ports/SkDiscardableMemory_none.cpp', - ] - - - # can we find a better way of dealing with asm sources? - - # left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with - if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']: - SOURCES += [ -diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/include/config/SkUserConfig.h ---- a/gfx/skia/trunk/include/config/SkUserConfig.h -+++ b/gfx/skia/trunk/include/config/SkUserConfig.h -@@ -192,16 +192,17 @@ - - #if defined(SK_CPU_ARM32) || defined(SK_CPU_ARM64) - # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_arm.h" - #else - # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_x86.h" +Index: mozilla-release/gfx/skia/moz.build +=================================================================== +--- mozilla-release.orig/gfx/skia/moz.build ++++ mozilla-release/gfx/skia/moz.build +@@ -663,7 +663,6 @@ UNIFIED_SOURCES += [ + 'trunk/src/pathops/SkReduceOrder.cpp', + 'trunk/src/pipe/SkGPipeRead.cpp', + 'trunk/src/pipe/SkGPipeWrite.cpp', +- 'trunk/src/ports/SkDiscardableMemory_none.cpp', + 'trunk/src/ports/SkGlobalInitialization_default.cpp', + 'trunk/src/ports/SkImageDecoder_empty.cpp', + 'trunk/src/ports/SkMemory_mozalloc.cpp', +Index: mozilla-release/gfx/skia/trunk/include/config/SkUserConfig.h +=================================================================== +--- mozilla-release.orig/gfx/skia/trunk/include/config/SkUserConfig.h ++++ mozilla-release/gfx/skia/trunk/include/config/SkUserConfig.h +@@ -197,6 +197,7 @@ #endif // On all platforms we have this byte order @@ -89,20 +57,11 @@ diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/inclu #define SK_A32_SHIFT 24 #define SK_R32_SHIFT 16 #define SK_G32_SHIFT 8 - #define SK_B32_SHIFT 0 - - #define SK_ALLOW_STATIC_GLOBAL_INITIALIZERS 0 - - #define SK_SUPPORT_LEGACY_GETDEVICE -diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/core/SkColorPriv.h ---- a/gfx/skia/trunk/include/core/SkColorPriv.h -+++ b/gfx/skia/trunk/include/core/SkColorPriv.h -@@ -27,37 +27,27 @@ - * For easier compatibility with Skia's GPU backend, we further restrict these - * to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does - * not directly correspond to the same shift-order, since we have to take endianess - * into account. - * +Index: mozilla-release/gfx/skia/trunk/include/core/SkColorPriv.h +=================================================================== +--- mozilla-release.orig/gfx/skia/trunk/include/core/SkColorPriv.h ++++ mozilla-release/gfx/skia/trunk/include/core/SkColorPriv.h +@@ -32,17 +32,7 @@ * Here we enforce this constraint. */ @@ -120,9 +79,7 @@ diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/ #define SK_RGBA_R32_SHIFT 0 #define SK_RGBA_G32_SHIFT 8 #define SK_RGBA_B32_SHIFT 16 - #define SK_RGBA_A32_SHIFT 24 - - #define SK_BGRA_B32_SHIFT 0 +@@ -52,7 +42,7 @@ #define SK_BGRA_G32_SHIFT 8 #define SK_BGRA_R32_SHIFT 16 #define SK_BGRA_A32_SHIFT 24 @@ -131,20 +88,11 @@ diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/ #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) #error "can't define PMCOLOR to be RGBA and BGRA" - #endif - - #define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA \ - (SK_A32_SHIFT == SK_RGBA_A32_SHIFT && \ - SK_R32_SHIFT == SK_RGBA_R32_SHIFT && \ -diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/core/SkImageInfo.h ---- a/gfx/skia/trunk/include/core/SkImageInfo.h -+++ b/gfx/skia/trunk/include/core/SkImageInfo.h -@@ -83,19 +83,20 @@ enum SkColorType { - - kLastEnum_SkColorType = kIndex_8_SkColorType, - - #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) - kN32_SkColorType = kBGRA_8888_SkColorType, +Index: mozilla-release/gfx/skia/trunk/include/core/SkImageInfo.h +=================================================================== +--- mozilla-release.orig/gfx/skia/trunk/include/core/SkImageInfo.h ++++ mozilla-release/gfx/skia/trunk/include/core/SkImageInfo.h +@@ -88,9 +88,10 @@ enum SkColorType { #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) kN32_SkColorType = kRGBA_8888_SkColorType, #else @@ -156,20 +104,11 @@ diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/ #ifdef SK_SUPPORT_LEGACY_N32_NAME kPMColor_SkColorType = kN32_SkColorType #endif - }; - - static int SkColorTypeBytesPerPixel(SkColorType ct) { - static const uint8_t gSize[] = { - 0, // Unknown -diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/GrTypes.h ---- a/gfx/skia/trunk/include/gpu/GrTypes.h -+++ b/gfx/skia/trunk/include/gpu/GrTypes.h -@@ -304,25 +304,23 @@ enum GrPixelConfig { - * Byte order is r, g, b, a. This color format is 32 bits per channel - */ - kRGBA_float_GrPixelConfig, - kLast_GrPixelConfig = kRGBA_float_GrPixelConfig - }; +Index: mozilla-release/gfx/skia/trunk/include/gpu/GrTypes.h +=================================================================== +--- mozilla-release.orig/gfx/skia/trunk/include/gpu/GrTypes.h ++++ mozilla-release/gfx/skia/trunk/include/gpu/GrTypes.h +@@ -309,15 +309,13 @@ enum GrPixelConfig { static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; // Aliases for pixel configs that match skia's byte order. @@ -187,8 +126,3 @@ diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/G #endif // Returns true if the pixel config is a GPU-specific compressed format - // representation. - static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { - switch (config) { - case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: diff --git a/mozilla-1243104.patch b/mozilla-1243104.patch new file mode 100644 index 0000000..5736869 --- /dev/null +++ b/mozilla-1243104.patch @@ -0,0 +1,284 @@ +From e3ee5c0dbc8814f5114cdddb0f050691e7573b34 Mon Sep 17 00:00:00 2001 +From: Marcin Juszkiewicz +Date: Tue, 14 Jul 2015 21:02:13 +0200 +Subject: [PATCH] fixed build + +--- + firefox-nss-3.18.0.patch | 13 ---- + mozilla-1005535.patch | 152 ++++++++++++++--------------------------------- + xulrunner.spec | 9 ++- + 3 files changed, 49 insertions(+), 125 deletions(-) + delete mode 100644 firefox-nss-3.18.0.patch + +diff --git a/firefox-nss-3.18.0.patch b/firefox-nss-3.18.0.patch +deleted file mode 100644 +index a693832..0000000 +--- a/firefox-nss-3.18.0.patch ++++ /dev/null +@@ -1,13 +0,0 @@ +-diff -up mozilla-release/configure.in.old mozilla-release/configure.in +---- mozilla-release/configure.in.old 2015-04-28 20:31:45.000000000 +0200 +-+++ mozilla-release/configure.in 2015-04-28 20:32:40.807783614 +0200 +-@@ -3627,7 +3627,7 @@ MOZ_ARG_WITH_BOOL(system-nss, +- _USE_SYSTEM_NSS=1 ) +- +- if test -n "$_USE_SYSTEM_NSS"; then +-- AM_PATH_NSS(3.18.1, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) +-+ AM_PATH_NSS(3.18.0, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) +- fi +- +- if test -n "$MOZ_NATIVE_NSS"; then +-diff -up mozilla-release/media/webrtc/trunk/Makefile.old mozilla-release/media/webrtc/trunk/Makefile +diff --git a/mozilla-1005535.patch b/mozilla-1005535.patch +index 2f0381b..ef4f1ac 100644 +--- a/mozilla-1005535.patch ++++ b/mozilla-1005535.patch +@@ -3,15 +3,11 @@ + # User Steve Singer + Bug 1005535 - Get skia GPU building on big endian. + +-diff --git a/configure.in b/configure.in +---- a/configure.in +-+++ b/configure.in +-@@ -8231,21 +8231,21 @@ dnl Skia +- dnl ======================================================== +- if test "$MOZ_ENABLE_SKIA"; then +- AC_DEFINE(MOZ_ENABLE_SKIA) +- AC_DEFINE(USE_SKIA) +- if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then ++Index: mozilla-release/configure.in ++=================================================================== ++--- mozilla-release.orig/configure.in +++++ mozilla-release/configure.in ++@@ -8243,11 +8243,11 @@ if test "$MOZ_ENABLE_SKIA"; then + AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK) + fi + +@@ -25,63 +21,35 @@ diff --git a/configure.in b/configure.in + fi + AC_SUBST(MOZ_ENABLE_SKIA) + +- dnl ======================================================== +- dnl disable xul +- dnl ======================================================== +- MOZ_ARG_DISABLE_BOOL(xul, +- [ --disable-xul Disable XUL], +-diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py +---- a/gfx/skia/generate_mozbuild.py +-+++ b/gfx/skia/generate_mozbuild.py +-@@ -236,17 +236,17 @@ def generate_separated_sources(platform_ +- return True +- +- return False +- +- separated = { ++Index: mozilla-release/gfx/skia/generate_mozbuild.py ++=================================================================== ++--- mozilla-release.orig/gfx/skia/generate_mozbuild.py +++++ mozilla-release/gfx/skia/generate_mozbuild.py ++@@ -242,7 +242,6 @@ def generate_separated_sources(platform_ + 'common': { + #'trunk/src/effects/gradients/SkGradientTileProc.cpp', + 'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp', + - 'trunk/src/ports/SkDiscardableMemory_none.cpp', +-+ #'trunk/src/ports/SkDiscardableMemory_none.cpp', + 'trunk/src/ports/SkImageDecoder_empty.cpp', + 'trunk/src/ports/SkMemory_mozalloc.cpp', + # 'trunk/src/images/SkImages.cpp', +- # 'trunk/src/images/SkImageRef.cpp', +- # 'trunk/src/images/SkImageRef_GlobalPool.cpp', +- # 'trunk/src/images/SkImageRefPool.cpp', +- # 'trunk/src/images/SkImageDecoder.cpp', +- # 'trunk/src/images/SkImageDecoder_Factory.cpp', +-diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build +---- a/gfx/skia/moz.build +-+++ b/gfx/skia/moz.build +-@@ -847,17 +847,16 @@ else: +- 'trunk/src/opts/SkBitmapProcState_opts_none.cpp', +- 'trunk/src/opts/SkBlitMask_opts_none.cpp', +- 'trunk/src/opts/SkBlitRow_opts_none.cpp', +- 'trunk/src/opts/SkBlurImage_opts_none.cpp', +- 'trunk/src/opts/SkMorphology_opts_none.cpp', +- 'trunk/src/opts/SkTextureCompression_opts_none.cpp', +- 'trunk/src/opts/SkUtils_opts_none.cpp', +- 'trunk/src/opts/SkXfermode_opts_none.cpp', +-- 'trunk/src/ports/SkDiscardableMemory_none.cpp', +- ] +- +- +- # can we find a better way of dealing with asm sources? +- +- # left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with +- if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']: +- SOURCES += [ +-diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/include/config/SkUserConfig.h +---- a/gfx/skia/trunk/include/config/SkUserConfig.h +-+++ b/gfx/skia/trunk/include/config/SkUserConfig.h +-@@ -192,16 +192,17 @@ +- +- #if defined(SK_CPU_ARM32) || defined(SK_CPU_ARM64) +- # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_arm.h" +- #else +- # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_x86.h" ++Index: mozilla-release/gfx/skia/moz.build ++=================================================================== ++--- mozilla-release.orig/gfx/skia/moz.build +++++ mozilla-release/gfx/skia/moz.build ++@@ -663,7 +663,6 @@ UNIFIED_SOURCES += [ ++ 'trunk/src/pathops/SkReduceOrder.cpp', ++ 'trunk/src/pipe/SkGPipeRead.cpp', ++ 'trunk/src/pipe/SkGPipeWrite.cpp', ++- 'trunk/src/ports/SkDiscardableMemory_none.cpp', ++ 'trunk/src/ports/SkGlobalInitialization_default.cpp', ++ 'trunk/src/ports/SkImageDecoder_empty.cpp', ++ 'trunk/src/ports/SkMemory_mozalloc.cpp', ++Index: mozilla-release/gfx/skia/trunk/include/config/SkUserConfig.h ++=================================================================== ++--- mozilla-release.orig/gfx/skia/trunk/include/config/SkUserConfig.h +++++ mozilla-release/gfx/skia/trunk/include/config/SkUserConfig.h ++@@ -197,6 +197,7 @@ + #endif + + // On all platforms we have this byte order +@@ -89,20 +57,11 @@ diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/inclu + #define SK_A32_SHIFT 24 + #define SK_R32_SHIFT 16 + #define SK_G32_SHIFT 8 +- #define SK_B32_SHIFT 0 +- +- #define SK_ALLOW_STATIC_GLOBAL_INITIALIZERS 0 +- +- #define SK_SUPPORT_LEGACY_GETDEVICE +-diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/core/SkColorPriv.h +---- a/gfx/skia/trunk/include/core/SkColorPriv.h +-+++ b/gfx/skia/trunk/include/core/SkColorPriv.h +-@@ -27,37 +27,27 @@ +- * For easier compatibility with Skia's GPU backend, we further restrict these +- * to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does +- * not directly correspond to the same shift-order, since we have to take endianess +- * into account. +- * ++Index: mozilla-release/gfx/skia/trunk/include/core/SkColorPriv.h ++=================================================================== ++--- mozilla-release.orig/gfx/skia/trunk/include/core/SkColorPriv.h +++++ mozilla-release/gfx/skia/trunk/include/core/SkColorPriv.h ++@@ -32,17 +32,7 @@ + * Here we enforce this constraint. + */ + +@@ -120,9 +79,7 @@ diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/ + #define SK_RGBA_R32_SHIFT 0 + #define SK_RGBA_G32_SHIFT 8 + #define SK_RGBA_B32_SHIFT 16 +- #define SK_RGBA_A32_SHIFT 24 +- +- #define SK_BGRA_B32_SHIFT 0 ++@@ -52,7 +42,7 @@ + #define SK_BGRA_G32_SHIFT 8 + #define SK_BGRA_R32_SHIFT 16 + #define SK_BGRA_A32_SHIFT 24 +@@ -131,20 +88,11 @@ diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/ + + #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) + #error "can't define PMCOLOR to be RGBA and BGRA" +- #endif +- +- #define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA \ +- (SK_A32_SHIFT == SK_RGBA_A32_SHIFT && \ +- SK_R32_SHIFT == SK_RGBA_R32_SHIFT && \ +-diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/core/SkImageInfo.h +---- a/gfx/skia/trunk/include/core/SkImageInfo.h +-+++ b/gfx/skia/trunk/include/core/SkImageInfo.h +-@@ -83,19 +83,20 @@ enum SkColorType { +- +- kLastEnum_SkColorType = kIndex_8_SkColorType, +- +- #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) +- kN32_SkColorType = kBGRA_8888_SkColorType, ++Index: mozilla-release/gfx/skia/trunk/include/core/SkImageInfo.h ++=================================================================== ++--- mozilla-release.orig/gfx/skia/trunk/include/core/SkImageInfo.h +++++ mozilla-release/gfx/skia/trunk/include/core/SkImageInfo.h ++@@ -88,9 +88,10 @@ enum SkColorType { + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + kN32_SkColorType = kRGBA_8888_SkColorType, + #else +@@ -156,20 +104,11 @@ diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/ + #ifdef SK_SUPPORT_LEGACY_N32_NAME + kPMColor_SkColorType = kN32_SkColorType + #endif +- }; +- +- static int SkColorTypeBytesPerPixel(SkColorType ct) { +- static const uint8_t gSize[] = { +- 0, // Unknown +-diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/GrTypes.h +---- a/gfx/skia/trunk/include/gpu/GrTypes.h +-+++ b/gfx/skia/trunk/include/gpu/GrTypes.h +-@@ -304,25 +304,23 @@ enum GrPixelConfig { +- * Byte order is r, g, b, a. This color format is 32 bits per channel +- */ +- kRGBA_float_GrPixelConfig, +- kLast_GrPixelConfig = kRGBA_float_GrPixelConfig +- }; ++Index: mozilla-release/gfx/skia/trunk/include/gpu/GrTypes.h ++=================================================================== ++--- mozilla-release.orig/gfx/skia/trunk/include/gpu/GrTypes.h +++++ mozilla-release/gfx/skia/trunk/include/gpu/GrTypes.h ++@@ -309,15 +309,13 @@ enum GrPixelConfig { + static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; + + // Aliases for pixel configs that match skia's byte order. +@@ -187,8 +126,3 @@ diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/G + #endif + + // Returns true if the pixel config is a GPU-specific compressed format +- // representation. +- static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { +- switch (config) { +- case kETC1_GrPixelConfig: +- case kLATC_GrPixelConfig: +diff --git a/xulrunner.spec b/xulrunner.spec +index 9570fd8..e9447b3 100644 +--- a/xulrunner.spec ++++ b/xulrunner.spec +@@ -78,7 +78,7 @@ + Summary: XUL Runtime for Gecko Applications + Name: xulrunner + Version: 39.0 +-Release: 1%{?pre_tag}%{?dist} ++Release: 2%{?pre_tag}%{?dist} + URL: http://developer.mozilla.org/En/XULRunner + License: MPLv1.1 or GPLv2+ or LGPLv2+ + Group: Applications/Internet +@@ -98,7 +98,6 @@ Patch19: xulrunner-24.0-s390-inlines.patch + Patch20: firefox-build-prbool.patch + Patch21: aarch64-fix-skia.patch + Patch22: mozilla-1005535.patch +-Patch23: firefox-nss-3.18.0.patch + Patch24: rhbz-1219542-s390-build.patch + + # Fedora specific patches +@@ -242,7 +241,6 @@ cd %{tarballdir} + %patch20 -p1 -b .prbool + %patch21 -p1 -b .aarch64-fix-skia + %patch22 -p1 -b .mozilla-1005535 +-%patch23 -p1 -b .nss-3.18.0 + %ifarch s390 + %patch24 -p1 -b .rhbz-1219542-s390 + %endif +@@ -554,6 +552,11 @@ fi + #--------------------------------------------------------------------- + + %changelog ++* Tue Jul 14 2015 Marcin Juszkiewicz - 39.0-2 ++- fixed build ++ - dropped firefox-nss-3.18.0.patch as we have 3.19.2 available ++ - refreshed mozilla-1005535.patch patch to apply ++ + * Fri Jul 10 2015 Martin Stransky - 39.0-1 + - Update to 39.0 + +-- +2.4.5 + diff --git a/xulrunner.spec b/xulrunner.spec index 9570fd8..e9447b3 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 39.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -98,7 +98,6 @@ Patch19: xulrunner-24.0-s390-inlines.patch Patch20: firefox-build-prbool.patch Patch21: aarch64-fix-skia.patch Patch22: mozilla-1005535.patch -Patch23: firefox-nss-3.18.0.patch Patch24: rhbz-1219542-s390-build.patch # Fedora specific patches @@ -242,7 +241,6 @@ cd %{tarballdir} %patch20 -p1 -b .prbool %patch21 -p1 -b .aarch64-fix-skia %patch22 -p1 -b .mozilla-1005535 -%patch23 -p1 -b .nss-3.18.0 %ifarch s390 %patch24 -p1 -b .rhbz-1219542-s390 %endif @@ -554,6 +552,11 @@ fi #--------------------------------------------------------------------- %changelog +* Tue Jul 14 2015 Marcin Juszkiewicz - 39.0-2 +- fixed build + - dropped firefox-nss-3.18.0.patch as we have 3.19.2 available + - refreshed mozilla-1005535.patch patch to apply + * Fri Jul 10 2015 Martin Stransky - 39.0-1 - Update to 39.0 From f5c38e0137e78377fc3e55726551b314567ffbdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Ja=C5=A1=C3=AD=C4=8Dek?= Date: Wed, 22 Jul 2015 14:09:49 +0200 Subject: [PATCH 51/80] Removed unneeded patch files --- firefox-nss-3.18.0.patch | 13 -- mozilla-1243104.patch | 284 --------------------------------------- xulrunner.spec | 5 +- 3 files changed, 4 insertions(+), 298 deletions(-) delete mode 100644 firefox-nss-3.18.0.patch delete mode 100644 mozilla-1243104.patch diff --git a/firefox-nss-3.18.0.patch b/firefox-nss-3.18.0.patch deleted file mode 100644 index a693832..0000000 --- a/firefox-nss-3.18.0.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up mozilla-release/configure.in.old mozilla-release/configure.in ---- mozilla-release/configure.in.old 2015-04-28 20:31:45.000000000 +0200 -+++ mozilla-release/configure.in 2015-04-28 20:32:40.807783614 +0200 -@@ -3627,7 +3627,7 @@ MOZ_ARG_WITH_BOOL(system-nss, - _USE_SYSTEM_NSS=1 ) - - if test -n "$_USE_SYSTEM_NSS"; then -- AM_PATH_NSS(3.18.1, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) -+ AM_PATH_NSS(3.18.0, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) - fi - - if test -n "$MOZ_NATIVE_NSS"; then -diff -up mozilla-release/media/webrtc/trunk/Makefile.old mozilla-release/media/webrtc/trunk/Makefile diff --git a/mozilla-1243104.patch b/mozilla-1243104.patch deleted file mode 100644 index 5736869..0000000 --- a/mozilla-1243104.patch +++ /dev/null @@ -1,284 +0,0 @@ -From e3ee5c0dbc8814f5114cdddb0f050691e7573b34 Mon Sep 17 00:00:00 2001 -From: Marcin Juszkiewicz -Date: Tue, 14 Jul 2015 21:02:13 +0200 -Subject: [PATCH] fixed build - ---- - firefox-nss-3.18.0.patch | 13 ---- - mozilla-1005535.patch | 152 ++++++++++++++--------------------------------- - xulrunner.spec | 9 ++- - 3 files changed, 49 insertions(+), 125 deletions(-) - delete mode 100644 firefox-nss-3.18.0.patch - -diff --git a/firefox-nss-3.18.0.patch b/firefox-nss-3.18.0.patch -deleted file mode 100644 -index a693832..0000000 ---- a/firefox-nss-3.18.0.patch -+++ /dev/null -@@ -1,13 +0,0 @@ --diff -up mozilla-release/configure.in.old mozilla-release/configure.in ----- mozilla-release/configure.in.old 2015-04-28 20:31:45.000000000 +0200 --+++ mozilla-release/configure.in 2015-04-28 20:32:40.807783614 +0200 --@@ -3627,7 +3627,7 @@ MOZ_ARG_WITH_BOOL(system-nss, -- _USE_SYSTEM_NSS=1 ) -- -- if test -n "$_USE_SYSTEM_NSS"; then --- AM_PATH_NSS(3.18.1, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) --+ AM_PATH_NSS(3.18.0, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) -- fi -- -- if test -n "$MOZ_NATIVE_NSS"; then --diff -up mozilla-release/media/webrtc/trunk/Makefile.old mozilla-release/media/webrtc/trunk/Makefile -diff --git a/mozilla-1005535.patch b/mozilla-1005535.patch -index 2f0381b..ef4f1ac 100644 ---- a/mozilla-1005535.patch -+++ b/mozilla-1005535.patch -@@ -3,15 +3,11 @@ - # User Steve Singer - Bug 1005535 - Get skia GPU building on big endian. - --diff --git a/configure.in b/configure.in ----- a/configure.in --+++ b/configure.in --@@ -8231,21 +8231,21 @@ dnl Skia -- dnl ======================================================== -- if test "$MOZ_ENABLE_SKIA"; then -- AC_DEFINE(MOZ_ENABLE_SKIA) -- AC_DEFINE(USE_SKIA) -- if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then -+Index: mozilla-release/configure.in -+=================================================================== -+--- mozilla-release.orig/configure.in -++++ mozilla-release/configure.in -+@@ -8243,11 +8243,11 @@ if test "$MOZ_ENABLE_SKIA"; then - AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK) - fi - -@@ -25,63 +21,35 @@ diff --git a/configure.in b/configure.in - fi - AC_SUBST(MOZ_ENABLE_SKIA) - -- dnl ======================================================== -- dnl disable xul -- dnl ======================================================== -- MOZ_ARG_DISABLE_BOOL(xul, -- [ --disable-xul Disable XUL], --diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py ----- a/gfx/skia/generate_mozbuild.py --+++ b/gfx/skia/generate_mozbuild.py --@@ -236,17 +236,17 @@ def generate_separated_sources(platform_ -- return True -- -- return False -- -- separated = { -+Index: mozilla-release/gfx/skia/generate_mozbuild.py -+=================================================================== -+--- mozilla-release.orig/gfx/skia/generate_mozbuild.py -++++ mozilla-release/gfx/skia/generate_mozbuild.py -+@@ -242,7 +242,6 @@ def generate_separated_sources(platform_ - 'common': { - #'trunk/src/effects/gradients/SkGradientTileProc.cpp', - 'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp', - - 'trunk/src/ports/SkDiscardableMemory_none.cpp', --+ #'trunk/src/ports/SkDiscardableMemory_none.cpp', - 'trunk/src/ports/SkImageDecoder_empty.cpp', - 'trunk/src/ports/SkMemory_mozalloc.cpp', - # 'trunk/src/images/SkImages.cpp', -- # 'trunk/src/images/SkImageRef.cpp', -- # 'trunk/src/images/SkImageRef_GlobalPool.cpp', -- # 'trunk/src/images/SkImageRefPool.cpp', -- # 'trunk/src/images/SkImageDecoder.cpp', -- # 'trunk/src/images/SkImageDecoder_Factory.cpp', --diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build ----- a/gfx/skia/moz.build --+++ b/gfx/skia/moz.build --@@ -847,17 +847,16 @@ else: -- 'trunk/src/opts/SkBitmapProcState_opts_none.cpp', -- 'trunk/src/opts/SkBlitMask_opts_none.cpp', -- 'trunk/src/opts/SkBlitRow_opts_none.cpp', -- 'trunk/src/opts/SkBlurImage_opts_none.cpp', -- 'trunk/src/opts/SkMorphology_opts_none.cpp', -- 'trunk/src/opts/SkTextureCompression_opts_none.cpp', -- 'trunk/src/opts/SkUtils_opts_none.cpp', -- 'trunk/src/opts/SkXfermode_opts_none.cpp', --- 'trunk/src/ports/SkDiscardableMemory_none.cpp', -- ] -- -- -- # can we find a better way of dealing with asm sources? -- -- # left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with -- if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']: -- SOURCES += [ --diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/include/config/SkUserConfig.h ----- a/gfx/skia/trunk/include/config/SkUserConfig.h --+++ b/gfx/skia/trunk/include/config/SkUserConfig.h --@@ -192,16 +192,17 @@ -- -- #if defined(SK_CPU_ARM32) || defined(SK_CPU_ARM64) -- # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_arm.h" -- #else -- # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_x86.h" -+Index: mozilla-release/gfx/skia/moz.build -+=================================================================== -+--- mozilla-release.orig/gfx/skia/moz.build -++++ mozilla-release/gfx/skia/moz.build -+@@ -663,7 +663,6 @@ UNIFIED_SOURCES += [ -+ 'trunk/src/pathops/SkReduceOrder.cpp', -+ 'trunk/src/pipe/SkGPipeRead.cpp', -+ 'trunk/src/pipe/SkGPipeWrite.cpp', -+- 'trunk/src/ports/SkDiscardableMemory_none.cpp', -+ 'trunk/src/ports/SkGlobalInitialization_default.cpp', -+ 'trunk/src/ports/SkImageDecoder_empty.cpp', -+ 'trunk/src/ports/SkMemory_mozalloc.cpp', -+Index: mozilla-release/gfx/skia/trunk/include/config/SkUserConfig.h -+=================================================================== -+--- mozilla-release.orig/gfx/skia/trunk/include/config/SkUserConfig.h -++++ mozilla-release/gfx/skia/trunk/include/config/SkUserConfig.h -+@@ -197,6 +197,7 @@ - #endif - - // On all platforms we have this byte order -@@ -89,20 +57,11 @@ diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/inclu - #define SK_A32_SHIFT 24 - #define SK_R32_SHIFT 16 - #define SK_G32_SHIFT 8 -- #define SK_B32_SHIFT 0 -- -- #define SK_ALLOW_STATIC_GLOBAL_INITIALIZERS 0 -- -- #define SK_SUPPORT_LEGACY_GETDEVICE --diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/core/SkColorPriv.h ----- a/gfx/skia/trunk/include/core/SkColorPriv.h --+++ b/gfx/skia/trunk/include/core/SkColorPriv.h --@@ -27,37 +27,27 @@ -- * For easier compatibility with Skia's GPU backend, we further restrict these -- * to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does -- * not directly correspond to the same shift-order, since we have to take endianess -- * into account. -- * -+Index: mozilla-release/gfx/skia/trunk/include/core/SkColorPriv.h -+=================================================================== -+--- mozilla-release.orig/gfx/skia/trunk/include/core/SkColorPriv.h -++++ mozilla-release/gfx/skia/trunk/include/core/SkColorPriv.h -+@@ -32,17 +32,7 @@ - * Here we enforce this constraint. - */ - -@@ -120,9 +79,7 @@ diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/ - #define SK_RGBA_R32_SHIFT 0 - #define SK_RGBA_G32_SHIFT 8 - #define SK_RGBA_B32_SHIFT 16 -- #define SK_RGBA_A32_SHIFT 24 -- -- #define SK_BGRA_B32_SHIFT 0 -+@@ -52,7 +42,7 @@ - #define SK_BGRA_G32_SHIFT 8 - #define SK_BGRA_R32_SHIFT 16 - #define SK_BGRA_A32_SHIFT 24 -@@ -131,20 +88,11 @@ diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/ - - #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) - #error "can't define PMCOLOR to be RGBA and BGRA" -- #endif -- -- #define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA \ -- (SK_A32_SHIFT == SK_RGBA_A32_SHIFT && \ -- SK_R32_SHIFT == SK_RGBA_R32_SHIFT && \ --diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/core/SkImageInfo.h ----- a/gfx/skia/trunk/include/core/SkImageInfo.h --+++ b/gfx/skia/trunk/include/core/SkImageInfo.h --@@ -83,19 +83,20 @@ enum SkColorType { -- -- kLastEnum_SkColorType = kIndex_8_SkColorType, -- -- #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) -- kN32_SkColorType = kBGRA_8888_SkColorType, -+Index: mozilla-release/gfx/skia/trunk/include/core/SkImageInfo.h -+=================================================================== -+--- mozilla-release.orig/gfx/skia/trunk/include/core/SkImageInfo.h -++++ mozilla-release/gfx/skia/trunk/include/core/SkImageInfo.h -+@@ -88,9 +88,10 @@ enum SkColorType { - #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) - kN32_SkColorType = kRGBA_8888_SkColorType, - #else -@@ -156,20 +104,11 @@ diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/ - #ifdef SK_SUPPORT_LEGACY_N32_NAME - kPMColor_SkColorType = kN32_SkColorType - #endif -- }; -- -- static int SkColorTypeBytesPerPixel(SkColorType ct) { -- static const uint8_t gSize[] = { -- 0, // Unknown --diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/GrTypes.h ----- a/gfx/skia/trunk/include/gpu/GrTypes.h --+++ b/gfx/skia/trunk/include/gpu/GrTypes.h --@@ -304,25 +304,23 @@ enum GrPixelConfig { -- * Byte order is r, g, b, a. This color format is 32 bits per channel -- */ -- kRGBA_float_GrPixelConfig, -- kLast_GrPixelConfig = kRGBA_float_GrPixelConfig -- }; -+Index: mozilla-release/gfx/skia/trunk/include/gpu/GrTypes.h -+=================================================================== -+--- mozilla-release.orig/gfx/skia/trunk/include/gpu/GrTypes.h -++++ mozilla-release/gfx/skia/trunk/include/gpu/GrTypes.h -+@@ -309,15 +309,13 @@ enum GrPixelConfig { - static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; - - // Aliases for pixel configs that match skia's byte order. -@@ -187,8 +126,3 @@ diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/G - #endif - - // Returns true if the pixel config is a GPU-specific compressed format -- // representation. -- static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { -- switch (config) { -- case kETC1_GrPixelConfig: -- case kLATC_GrPixelConfig: -diff --git a/xulrunner.spec b/xulrunner.spec -index 9570fd8..e9447b3 100644 ---- a/xulrunner.spec -+++ b/xulrunner.spec -@@ -78,7 +78,7 @@ - Summary: XUL Runtime for Gecko Applications - Name: xulrunner - Version: 39.0 --Release: 1%{?pre_tag}%{?dist} -+Release: 2%{?pre_tag}%{?dist} - URL: http://developer.mozilla.org/En/XULRunner - License: MPLv1.1 or GPLv2+ or LGPLv2+ - Group: Applications/Internet -@@ -98,7 +98,6 @@ Patch19: xulrunner-24.0-s390-inlines.patch - Patch20: firefox-build-prbool.patch - Patch21: aarch64-fix-skia.patch - Patch22: mozilla-1005535.patch --Patch23: firefox-nss-3.18.0.patch - Patch24: rhbz-1219542-s390-build.patch - - # Fedora specific patches -@@ -242,7 +241,6 @@ cd %{tarballdir} - %patch20 -p1 -b .prbool - %patch21 -p1 -b .aarch64-fix-skia - %patch22 -p1 -b .mozilla-1005535 --%patch23 -p1 -b .nss-3.18.0 - %ifarch s390 - %patch24 -p1 -b .rhbz-1219542-s390 - %endif -@@ -554,6 +552,11 @@ fi - #--------------------------------------------------------------------- - - %changelog -+* Tue Jul 14 2015 Marcin Juszkiewicz - 39.0-2 -+- fixed build -+ - dropped firefox-nss-3.18.0.patch as we have 3.19.2 available -+ - refreshed mozilla-1005535.patch patch to apply -+ - * Fri Jul 10 2015 Martin Stransky - 39.0-1 - - Update to 39.0 - --- -2.4.5 - diff --git a/xulrunner.spec b/xulrunner.spec index e9447b3..4f570b2 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 39.0 -Release: 2%{?pre_tag}%{?dist} +Release: 3%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -552,6 +552,9 @@ fi #--------------------------------------------------------------------- %changelog +* Wed Jul 22 2015 Petr Jasicek - 39.0-3 +- Removed unneeded patch files + * Tue Jul 14 2015 Marcin Juszkiewicz - 39.0-2 - fixed build - dropped firefox-nss-3.18.0.patch as we have 3.19.2 available From dfdecde2b971da01f55aea391cd8f015c77fa5ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Ja=C5=A1=C3=AD=C4=8Dek?= Date: Tue, 25 Aug 2015 11:09:44 +0200 Subject: [PATCH 52/80] Update to 40.0 --- sources | 2 +- xulrunner.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sources b/sources index bfecd5f..7e7ec37 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -34d9841bc9b8a85aaf06e311cf1cb263 firefox-39.0.source.tar.bz2 +62b9e6a4a46874a0be523fe41d3176e2 firefox-40.0.source.tar.bz2 diff --git a/xulrunner.spec b/xulrunner.spec index 4f570b2..699e376 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 39.0 -Release: 3%{?pre_tag}%{?dist} +Version: 40.0 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -552,6 +552,9 @@ fi #--------------------------------------------------------------------- %changelog +* Tue Aug 25 2015 Petr Jasicek - 40.0-1 +- Update to 40.0 + * Wed Jul 22 2015 Petr Jasicek - 39.0-3 - Removed unneeded patch files From af1aad65f1728bcb399fbe0fdf14d75d97973edd Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 2 Sep 2015 22:01:45 +0200 Subject: [PATCH 53/80] Disablet Skia to build on second arches --- xulrunner-mozconfig | 2 +- xulrunner.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig index e80f39e..0dcf27d 100644 --- a/xulrunner-mozconfig +++ b/xulrunner-mozconfig @@ -33,7 +33,7 @@ ac_add_options --disable-updater ac_add_options --enable-chrome-format=omni ac_add_options --disable-gstreamer ac_add_options --enable-pulseaudio -ac_add_options --enable-skia +ac_add_options --disable-skia export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 diff --git a/xulrunner.spec b/xulrunner.spec index 699e376..28145a4 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 40.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -552,6 +552,9 @@ fi #--------------------------------------------------------------------- %changelog +* Wed Sep 2 2015 Martin Stransky - 40.0-2 +- Disable Skia to build on second arches + * Tue Aug 25 2015 Petr Jasicek - 40.0-1 - Update to 40.0 From 104f4ba570ea0567259096006dc6abf73866b6b3 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 1 Dec 2015 12:26:02 +0100 Subject: [PATCH 54/80] Update to 42.0 --- .gitignore | 1 + aarch64-fix-skia.patch | 4 +- mozilla-1005535.patch | 128 ----------------------------------------- sources | 2 +- xulrunner.spec | 19 +++--- 5 files changed, 14 insertions(+), 140 deletions(-) delete mode 100644 mozilla-1005535.patch diff --git a/.gitignore b/.gitignore index 0d88a9e..64b20fe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /firefox-*.source.tar.bz2 /xulrunner-*.source.tar.bz2 +/firefox-42.0.source.tar.xz diff --git a/aarch64-fix-skia.patch b/aarch64-fix-skia.patch index 4b9958d..17df80e 100644 --- a/aarch64-fix-skia.patch +++ b/aarch64-fix-skia.patch @@ -2,8 +2,8 @@ Based on https://github.com/google/skia/commit/b79ff56de23fef680ae7187040f2d6a95 Index: mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.h =================================================================== ---- mozilla-release.orig/gfx/skia/trunk/src/core/SkUtilsArm.h -+++ mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.h +--- mozilla-release/gfx/skia/skia/src/core/SkUtilsArm.h ++++ mozilla-release/gfx/skia/skia/src/core/SkUtilsArm.h @@ -21,9 +21,9 @@ #define SK_ARM_NEON_MODE_ALWAYS 1 #define SK_ARM_NEON_MODE_DYNAMIC 2 diff --git a/mozilla-1005535.patch b/mozilla-1005535.patch deleted file mode 100644 index ef4f1ac..0000000 --- a/mozilla-1005535.patch +++ /dev/null @@ -1,128 +0,0 @@ -# HG changeset patch -# Parent b7eb1ce0237d6125b75bc8ff1cb3afc328d6e78c -# User Steve Singer -Bug 1005535 - Get skia GPU building on big endian. - -Index: mozilla-release/configure.in -=================================================================== ---- mozilla-release.orig/configure.in -+++ mozilla-release/configure.in -@@ -8243,11 +8243,11 @@ if test "$MOZ_ENABLE_SKIA"; then - AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK) - fi - -- if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then -+# if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then - MOZ_ENABLE_SKIA_GPU=1 - AC_DEFINE(USE_SKIA_GPU) - AC_SUBST(MOZ_ENABLE_SKIA_GPU) -- fi -+# fi - fi - AC_SUBST(MOZ_ENABLE_SKIA) - -Index: mozilla-release/gfx/skia/generate_mozbuild.py -=================================================================== ---- mozilla-release.orig/gfx/skia/generate_mozbuild.py -+++ mozilla-release/gfx/skia/generate_mozbuild.py -@@ -242,7 +242,6 @@ def generate_separated_sources(platform_ - 'common': { - #'trunk/src/effects/gradients/SkGradientTileProc.cpp', - 'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp', -- 'trunk/src/ports/SkDiscardableMemory_none.cpp', - 'trunk/src/ports/SkImageDecoder_empty.cpp', - 'trunk/src/ports/SkMemory_mozalloc.cpp', - # 'trunk/src/images/SkImages.cpp', -Index: mozilla-release/gfx/skia/moz.build -=================================================================== ---- mozilla-release.orig/gfx/skia/moz.build -+++ mozilla-release/gfx/skia/moz.build -@@ -663,7 +663,6 @@ UNIFIED_SOURCES += [ - 'trunk/src/pathops/SkReduceOrder.cpp', - 'trunk/src/pipe/SkGPipeRead.cpp', - 'trunk/src/pipe/SkGPipeWrite.cpp', -- 'trunk/src/ports/SkDiscardableMemory_none.cpp', - 'trunk/src/ports/SkGlobalInitialization_default.cpp', - 'trunk/src/ports/SkImageDecoder_empty.cpp', - 'trunk/src/ports/SkMemory_mozalloc.cpp', -Index: mozilla-release/gfx/skia/trunk/include/config/SkUserConfig.h -=================================================================== ---- mozilla-release.orig/gfx/skia/trunk/include/config/SkUserConfig.h -+++ mozilla-release/gfx/skia/trunk/include/config/SkUserConfig.h -@@ -197,6 +197,7 @@ - #endif - - // On all platforms we have this byte order -+ - #define SK_A32_SHIFT 24 - #define SK_R32_SHIFT 16 - #define SK_G32_SHIFT 8 -Index: mozilla-release/gfx/skia/trunk/include/core/SkColorPriv.h -=================================================================== ---- mozilla-release.orig/gfx/skia/trunk/include/core/SkColorPriv.h -+++ mozilla-release/gfx/skia/trunk/include/core/SkColorPriv.h -@@ -32,17 +32,7 @@ - * Here we enforce this constraint. - */ - --#ifdef SK_CPU_BENDIAN -- #define SK_RGBA_R32_SHIFT 24 -- #define SK_RGBA_G32_SHIFT 16 -- #define SK_RGBA_B32_SHIFT 8 -- #define SK_RGBA_A32_SHIFT 0 - -- #define SK_BGRA_B32_SHIFT 24 -- #define SK_BGRA_G32_SHIFT 16 -- #define SK_BGRA_R32_SHIFT 8 -- #define SK_BGRA_A32_SHIFT 0 --#else - #define SK_RGBA_R32_SHIFT 0 - #define SK_RGBA_G32_SHIFT 8 - #define SK_RGBA_B32_SHIFT 16 -@@ -52,7 +42,7 @@ - #define SK_BGRA_G32_SHIFT 8 - #define SK_BGRA_R32_SHIFT 16 - #define SK_BGRA_A32_SHIFT 24 --#endif -+ - - #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) - #error "can't define PMCOLOR to be RGBA and BGRA" -Index: mozilla-release/gfx/skia/trunk/include/core/SkImageInfo.h -=================================================================== ---- mozilla-release.orig/gfx/skia/trunk/include/core/SkImageInfo.h -+++ mozilla-release/gfx/skia/trunk/include/core/SkImageInfo.h -@@ -88,9 +88,10 @@ enum SkColorType { - #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) - kN32_SkColorType = kRGBA_8888_SkColorType, - #else --#error "SK_*32_SHFIT values must correspond to BGRA or RGBA byte order" -+ kN32_SkColorType = kBGRA_8888_SkColorType - #endif - -+ - #ifdef SK_SUPPORT_LEGACY_N32_NAME - kPMColor_SkColorType = kN32_SkColorType - #endif -Index: mozilla-release/gfx/skia/trunk/include/gpu/GrTypes.h -=================================================================== ---- mozilla-release.orig/gfx/skia/trunk/include/gpu/GrTypes.h -+++ mozilla-release/gfx/skia/trunk/include/gpu/GrTypes.h -@@ -309,15 +309,13 @@ enum GrPixelConfig { - static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; - - // Aliases for pixel configs that match skia's byte order. --#ifndef SK_CPU_LENDIAN -- #error "Skia gpu currently assumes little endian" --#endif -+ - #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) - static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; - #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) - static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig; - #else -- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format." -+ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; - #endif - - // Returns true if the pixel config is a GPU-specific compressed format diff --git a/sources b/sources index 7e7ec37..1c7d7c4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -62b9e6a4a46874a0be523fe41d3176e2 firefox-40.0.source.tar.bz2 +d610bf10a75afb4734045e1a43d8eba4 firefox-42.0.source.tar.xz diff --git a/xulrunner.spec b/xulrunner.spec index 28145a4..6388241 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -23,14 +23,14 @@ %global libvpx_version 1.0.0 %if %{?system_nss} -%global nspr_version 4.10.2 +%global nspr_version 4.10.10 %global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536) -%global nss_version 3.15.4 +%global nss_version 3.19.2 %global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536) %endif %if %{?system_sqlite} -%global sqlite_version 3.7.13 +%global sqlite_version 3.8.4.2 # The actual sqlite version (see #480989): %global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) %endif @@ -46,7 +46,7 @@ %global tarballname firefox %global mozappdir %{_libdir}/%{name} -%global tarballdir mozilla-release +%global tarballdir %{tarballname}-%{version} # crash reporter work only on x86/x86_64 %ifarch %{ix86} x86_64 @@ -77,12 +77,12 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 40.0 -Release: 2%{?pre_tag}%{?dist} +Version: 42.0 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet -Source0: ftp://ftp.mozilla.org/pub/%{tarballname}/releases/%{version}%{?pre_version}/source/%{tarballname}-%{version}%{?pre_version}.source.tar.bz2 +Source0: ftp://ftp.mozilla.org/pub/%{tarballname}/releases/%{version}%{?pre_version}/source/%{tarballname}-%{version}%{?pre_version}.source.tar.xz Source10: %{name}-mozconfig Source12: %{name}-redhat-default-prefs.js Source21: %{name}.sh.in @@ -97,7 +97,6 @@ Patch18: xulrunner-24.0-jemalloc-ppc.patch Patch19: xulrunner-24.0-s390-inlines.patch Patch20: firefox-build-prbool.patch Patch21: aarch64-fix-skia.patch -Patch22: mozilla-1005535.patch Patch24: rhbz-1219542-s390-build.patch # Fedora specific patches @@ -240,7 +239,6 @@ cd %{tarballdir} %patch19 -p2 -b .s390-inlines %patch20 -p1 -b .prbool %patch21 -p1 -b .aarch64-fix-skia -%patch22 -p1 -b .mozilla-1005535 %ifarch s390 %patch24 -p1 -b .rhbz-1219542-s390 %endif @@ -552,6 +550,9 @@ fi #--------------------------------------------------------------------- %changelog +* Tue Dec 1 2015 Martin Stransky - 42.0-1 +- Update to 42.0 + * Wed Sep 2 2015 Martin Stransky - 40.0-2 - Disable Skia to build on second arches From 5ae495fd5c706a61fbf03f8b857d3ab88521473d Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 1 Dec 2015 13:07:59 +0100 Subject: [PATCH 55/80] Build fix --- xulrunner.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/xulrunner.spec b/xulrunner.spec index 6388241..ba8eb5b 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -137,6 +137,7 @@ BuildRequires: libcurl-devel BuildRequires: libvpx-devel >= %{libvpx_version} BuildRequires: autoconf213 BuildRequires: pulseaudio-libs-devel +BuildRequires: pkgconfig(gconf-2.0) Requires: mozilla-filesystem %if %{?system_nss} From fd7866ba134079300db04a815e1337e4d6e38f7a Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 1 Dec 2015 13:56:55 +0100 Subject: [PATCH 56/80] build fix --- xulrunner.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/xulrunner.spec b/xulrunner.spec index ba8eb5b..ec4b37c 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -138,6 +138,7 @@ BuildRequires: libvpx-devel >= %{libvpx_version} BuildRequires: autoconf213 BuildRequires: pulseaudio-libs-devel BuildRequires: pkgconfig(gconf-2.0) +BuildRequires: yasm Requires: mozilla-filesystem %if %{?system_nss} From 197a6537ee19f78acef175c56dd60e484b80da06 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Tue, 1 Dec 2015 16:51:17 -0500 Subject: [PATCH 57/80] rebuild for libvpx 1.5.0 --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index ec4b37c..94da967 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 42.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -552,6 +552,9 @@ fi #--------------------------------------------------------------------- %changelog +* Tue Dec 1 2015 Tom Callaway - 42.0-2 +- rebuild for libvpx 1.5.0 + * Tue Dec 1 2015 Martin Stransky - 42.0-1 - Update to 42.0 From fcb40580a959f31f9b72456fc3998b49e559739e Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 26 Jan 2016 13:37:16 +0100 Subject: [PATCH 58/80] Update to 44.0 --- .gitignore | 1 + firefox-build.patch | 11 ----------- sources | 2 +- xulrunner.spec | 9 +++++---- 4 files changed, 7 insertions(+), 16 deletions(-) delete mode 100644 firefox-build.patch diff --git a/.gitignore b/.gitignore index 64b20fe..d7e8527 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /firefox-*.source.tar.bz2 /xulrunner-*.source.tar.bz2 /firefox-42.0.source.tar.xz +/firefox-44.0.source.tar.xz diff --git a/firefox-build.patch b/firefox-build.patch deleted file mode 100644 index 262337c..0000000 --- a/firefox-build.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up firefox-32.0/mozilla-release/media/libstagefright/moz.build.old firefox-32.0/mozilla-release/media/libstagefright/moz.build ---- firefox-32.0/mozilla-release/media/libstagefright/moz.build.old 2014-08-26 05:38:08.000000000 +0200 -+++ firefox-32.0/mozilla-release/media/libstagefright/moz.build 2014-08-27 15:40:12.030299348 +0200 -@@ -120,7 +120,6 @@ elif CONFIG['GNU_CXX']: - '-Wno-sign-compare' - ] - CXXFLAGS += [ -- '-Wno-format', - '-Wno-multichar', - '-Wno-sign-compare', - '-Wno-unused', diff --git a/sources b/sources index 1c7d7c4..bf85a54 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d610bf10a75afb4734045e1a43d8eba4 firefox-42.0.source.tar.xz +9d940e72f9eaff767fafcfbcc387594d firefox-44.0.source.tar.xz diff --git a/xulrunner.spec b/xulrunner.spec index 94da967..b94a2e5 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -77,8 +77,8 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 42.0 -Release: 2%{?pre_tag}%{?dist} +Version: 44.0 +Release: 1%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -89,7 +89,6 @@ Source21: %{name}.sh.in # build patches Patch1: xulrunner-install-dir.patch -Patch2: firefox-build.patch Patch3: mozilla-build-arm.patch # https://bugzilla.redhat.com/show_bug.cgi?id=814879#c3 Patch18: xulrunner-24.0-jemalloc-ppc.patch @@ -235,7 +234,6 @@ debug %{name}, you want to install %{name}-debuginfo instead. cd %{tarballdir} %patch1 -p1 -%patch2 -p2 -b .build %patch3 -p2 -b .arm %patch18 -p2 -b .jemalloc-ppc %patch19 -p2 -b .s390-inlines @@ -552,6 +550,9 @@ fi #--------------------------------------------------------------------- %changelog +* Tue Jan 26 2016 Martin Stransky - 44.0-1 +- Update to 44.0 + * Tue Dec 1 2015 Tom Callaway - 42.0-2 - rebuild for libvpx 1.5.0 From 97e3e8e361ba2d56d1bb5d497b328db57c2e010a Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 26 Jan 2016 15:32:31 +0100 Subject: [PATCH 59/80] Fixed file list --- xulrunner.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/xulrunner.spec b/xulrunner.spec index b94a2e5..6e9566a 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -510,6 +510,7 @@ fi %{mozappdir}/components/*.manifest %{mozappdir}/omni.ja %{mozappdir}/*.so +%{mozappdir}/rapl %{mozappdir}/run-mozilla.sh %{mozappdir}/xulrunner %{mozappdir}/xulrunner-stub From 8f10697eafe82413e62f8c69b769bd0db974970b Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 27 Jan 2016 09:28:38 +0100 Subject: [PATCH 60/80] build fix --- xulrunner.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xulrunner.spec b/xulrunner.spec index 6e9566a..c1e97fa 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -510,7 +510,9 @@ fi %{mozappdir}/components/*.manifest %{mozappdir}/omni.ja %{mozappdir}/*.so +%ifarch %{ix86} x86_64 %{mozappdir}/rapl +%endif %{mozappdir}/run-mozilla.sh %{mozappdir}/xulrunner %{mozappdir}/xulrunner-stub From 05a100edbfa280b6bab53e52c170e2c2ff9c8de7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 1 Feb 2016 12:45:25 +0100 Subject: [PATCH 61/80] refresh s390 patch --- rhbz-1219542-s390-build.patch | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rhbz-1219542-s390-build.patch b/rhbz-1219542-s390-build.patch index 4f38200..3734ce5 100644 --- a/rhbz-1219542-s390-build.patch +++ b/rhbz-1219542-s390-build.patch @@ -1,16 +1,16 @@ -diff -up mozilla-release/js/src/configure.in.opt mozilla-release/js/src/configure.in ---- mozilla-release/js/src/configure.in.opt 2015-05-04 02:43:23.000000000 +0200 -+++ mozilla-release/js/src/configure.in 2015-05-07 14:21:07.685405039 +0200 -@@ -1492,7 +1492,7 @@ case "$host" in +diff -up firefox-43.0.3/js/src/configure.in.rhbz-1219542-s390 firefox-43.0.3/js/src/configure.in +--- firefox-43.0.3/js/src/configure.in.rhbz-1219542-s390 2015-12-23 17:11:01.000000000 -0500 ++++ firefox-43.0.3/js/src/configure.in 2016-01-03 08:08:27.139956990 -0500 +@@ -1466,7 +1466,7 @@ case "$host" in + *-linux*|*-kfreebsd*-gnu|*-gnu*) HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"' - HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" + HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}" ;; *) -@@ -1674,8 +1674,8 @@ ia64*-hpux*) +@@ -1649,8 +1649,8 @@ ia64*-hpux*) # while; Intel recommends against using it. MOZ_OPTIMIZE_FLAGS="-O2" elif test "$GNU_CC" -o "$GNU_CXX"; then From caeb8b7b700fe93f2d4bfd01eeaa5c7d0959f16b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 5 Feb 2016 03:52:57 +0000 Subject: [PATCH 62/80] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index c1e97fa..9199c71 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 1%{?pre_tag}%{?dist} +Release: 2%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -553,6 +553,9 @@ fi #--------------------------------------------------------------------- %changelog +* Fri Feb 05 2016 Fedora Release Engineering - 44.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Tue Jan 26 2016 Martin Stransky - 44.0-1 - Update to 44.0 From 998d1df3b6d635523ac7a10c90da004f299702a4 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Mon, 15 Feb 2016 11:26:55 +0100 Subject: [PATCH 63/80] gcc 6 build fix --- firefox-gcc-6.0.patch | 26 ++++++++++++++++++++++++++ xulrunner.spec | 7 ++++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 firefox-gcc-6.0.patch diff --git a/firefox-gcc-6.0.patch b/firefox-gcc-6.0.patch new file mode 100644 index 0000000..0a74d36 --- /dev/null +++ b/firefox-gcc-6.0.patch @@ -0,0 +1,26 @@ +diff -up firefox-44.0/nsprpub/config/make-system-wrappers.pl.back firefox-44.0/nsprpub/config/make-system-wrappers.pl +--- firefox-44.0/nsprpub/config/make-system-wrappers.pl.back 2016-01-24 00:23:49.000000000 +0100 ++++ firefox-44.0/nsprpub/config/make-system-wrappers.pl 2016-02-02 14:58:45.064112655 +0100 +@@ -19,7 +19,9 @@ while () { + open OUT, ">$output_dir/$_"; + print OUT "#pragma GCC system_header\n"; # suppress include_next warning + print OUT "#pragma GCC visibility push(default)\n"; ++ print OUT "#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n"; + print OUT "#include_next \<$_\>\n"; ++ print OUT "#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n"; + print OUT "#pragma GCC visibility pop\n"; + close OUT; + } +diff -up firefox-44.0/mozglue/build/arm.cpp.old firefox-44.0/mozglue/build/arm.cpp +--- firefox-44.0/mozglue/build/arm.cpp.old 2016-02-03 10:07:29.879526500 +0100 ++++ firefox-44.0/mozglue/build/arm.cpp 2016-02-03 10:08:11.062697517 +0100 +@@ -104,7 +104,9 @@ check_neon(void) + + # elif defined(__linux__) || defined(ANDROID) + # include ++#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS + # include ++#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS + # include + + enum{ diff --git a/xulrunner.spec b/xulrunner.spec index 9199c71..ec97ed9 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 2%{?pre_tag}%{?dist} +Release: 3%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -97,6 +97,7 @@ Patch19: xulrunner-24.0-s390-inlines.patch Patch20: firefox-build-prbool.patch Patch21: aarch64-fix-skia.patch Patch24: rhbz-1219542-s390-build.patch +Patch25: firefox-gcc-6.0.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -242,6 +243,7 @@ cd %{tarballdir} %ifarch s390 %patch24 -p1 -b .rhbz-1219542-s390 %endif +%patch25 -p1 -b .gcc6 %patch200 -p2 -b .pk %patch204 -p2 -b .966424 @@ -553,6 +555,9 @@ fi #--------------------------------------------------------------------- %changelog +* Mon Feb 15 2016 Martin Stransky - 44.0-3 +- gcc 6 build fix + * Fri Feb 05 2016 Fedora Release Engineering - 44.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild From 355332afb11d9b94cb21d6d1a5dcbefe5942f500 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 17 Feb 2016 12:32:15 +0100 Subject: [PATCH 64/80] Rebuild --- xulrunner.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index ec97ed9..9126632 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 3%{?pre_tag}%{?dist} +Release: 4%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -555,7 +555,7 @@ fi #--------------------------------------------------------------------- %changelog -* Mon Feb 15 2016 Martin Stransky - 44.0-3 +* Mon Feb 15 2016 Martin Stransky - 44.0-4 - gcc 6 build fix * Fri Feb 05 2016 Fedora Release Engineering - 44.0-2 From 9926729efe5907771e7e4c6fff1c6019ab7d090a Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Mon, 22 Feb 2016 11:06:17 +0100 Subject: [PATCH 65/80] gcc6 woraround --- xulrunner.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/xulrunner.spec b/xulrunner.spec index 9126632..54ad87f 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -312,6 +312,11 @@ echo "ac_add_options --disable-ion" >> .mozconfig echo "ac_add_options --disable-yarr-jit" >> .mozconfig %endif +#Workarounf for mozbz#1245783 +%if 0%{?fedora} > 23 +echo "ac_add_options --disable-ion" >> .mozconfig +%endif + %ifnarch %{ix86} x86_64 echo "ac_add_options --disable-webrtc" >> .mozconfig %endif From 078871b9d0159a9bc6039a493cfbe1df3e076316 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 2 Mar 2016 11:34:01 +0100 Subject: [PATCH 66/80] Fix WebRTC on AArch64 again. --- firefox-webrtc-add-missing-archs.patch | 33 ++++++++++++++++++++++++++ xulrunner.spec | 9 ++++++- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 firefox-webrtc-add-missing-archs.patch diff --git a/firefox-webrtc-add-missing-archs.patch b/firefox-webrtc-add-missing-archs.patch new file mode 100644 index 0000000..94ce346 --- /dev/null +++ b/firefox-webrtc-add-missing-archs.patch @@ -0,0 +1,33 @@ + +# HG changeset patch +# User Makoto Kato +# Date 1446192505 -32400 +# Node ID 189d4b0f9f238c76b1c2ee7003bba8fb693b3e54 +# Parent 6bac283aad5301f23a0bdbcd7c7f3f92b9da7c24 +Bug 1219566 - Add aarch64 macro to webrtc/trunk/build/build_config.h. r=rjesup + +diff --git a/media/webrtc/trunk/build/build_config.h b/media/webrtc/trunk/build/build_config.h +--- a/media/webrtc/trunk/build/build_config.h ++++ b/media/webrtc/trunk/build/build_config.h +@@ -151,16 +151,20 @@ + #define ARCH_CPU_S390X 1 + #define ARCH_CPU_64_BITS 1 + #elif defined(__s390__) + #define ARCH_CPU_S390 1 + #define ARCH_CPU_32_BITS 1 + #elif defined(__alpha__) + #define ARCH_CPU_ALPHA 1 + #define ARCH_CPU_64_BITS 1 ++#elif defined(__aarch64__) ++#define ARCH_CPU_ARM_FAMILY 1 ++#define ARCH_CPU_ARM64 1 ++#define ARCH_CPU_64_BITS 1 + #else + #error Please add support for your architecture in build/build_config.h + #endif + + // Type detection for wchar_t. + #if defined(OS_WIN) + #define WCHAR_T_IS_UTF16 + #elif defined(OS_POSIX) && defined(COMPILER_GCC) && \ + diff --git a/xulrunner.spec b/xulrunner.spec index 54ad87f..dd7bd37 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 4%{?pre_tag}%{?dist} +Release: 5%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -104,6 +104,9 @@ Patch200: mozilla-193-pkgconfig.patch # Unable to install addons from https pages Patch204: rhbz-966424.patch +# FTBFS on AArch64 +Patch205: firefox-webrtc-add-missing-archs.patch + # Upstream patches # --------------------------------------------------- @@ -247,6 +250,7 @@ cd %{tarballdir} %patch200 -p2 -b .pk %patch204 -p2 -b .966424 +%patch205 -p1 # Upstream patches @@ -560,6 +564,9 @@ fi #--------------------------------------------------------------------- %changelog +* Wed Mar 02 2016 Marcin Juszkiewicz - 44.0-5 +- Fix WebRTC on AArch64 again. + * Mon Feb 15 2016 Martin Stransky - 44.0-4 - gcc 6 build fix From 60bbba63be55322472db545b1f56050676336ed9 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 27 Apr 2016 22:40:56 +0100 Subject: [PATCH 67/80] Added fix for rhbz#1315225 - ppc64le/aarch64 build fixes --- xulrunner.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index dd7bd37..f630b41 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 5%{?pre_tag}%{?dist} +Release: 6%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -288,8 +288,12 @@ echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig %else echo "ac_add_options --disable-debug" >> .mozconfig +%ifarch ppc64le aarch64 +echo 'ac_add_options --enable-optimize="-g -O2"' >> .mozconfig +%else echo "ac_add_options --enable-optimize" >> .mozconfig %endif +%endif # s390(x) fails to start with jemalloc enabled %ifarch s390 s390x @@ -564,6 +568,9 @@ fi #--------------------------------------------------------------------- %changelog +* Wed Apr 27 2016 Peter Robinson 44.0-6 +- Added fix for rhbz#1315225 - ppc64le/aarch64 build fixes + * Wed Mar 02 2016 Marcin Juszkiewicz - 44.0-5 - Fix WebRTC on AArch64 again. From f4ed118ce993829ff5a80149dfe37c3088124423 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Fri, 22 Jul 2016 11:19:15 -0400 Subject: [PATCH 68/80] rebuild for libvpx 1.6.0 --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index f630b41..dbf41f9 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 6%{?pre_tag}%{?dist} +Release: 7%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -568,6 +568,9 @@ fi #--------------------------------------------------------------------- %changelog +* Fri Jul 22 2016 Tom Callaway - 44.0-7 +- rebuild for libvpx 1.6.0 + * Wed Apr 27 2016 Peter Robinson 44.0-6 - Added fix for rhbz#1315225 - ppc64le/aarch64 build fixes From 5aa49f34725db30a92ca4c14623bc7e964adb2cf Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 15 Dec 2016 11:03:39 +0100 Subject: [PATCH 69/80] Rebuilt --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index dbf41f9..c562dad 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 7%{?pre_tag}%{?dist} +Release: 8%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -568,6 +568,9 @@ fi #--------------------------------------------------------------------- %changelog +* Thu Dec 15 2016 Martin Stransky - 44.0-8 +- Rebuilt + * Fri Jul 22 2016 Tom Callaway - 44.0-7 - rebuild for libvpx 1.6.0 From f0c6414b608d8f0dd1ce9c815adbdcacb5c15a66 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 15 Dec 2016 11:40:33 +0100 Subject: [PATCH 70/80] update build req --- xulrunner.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/xulrunner.spec b/xulrunner.spec index c562dad..6451f93 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -142,6 +142,7 @@ BuildRequires: autoconf213 BuildRequires: pulseaudio-libs-devel BuildRequires: pkgconfig(gconf-2.0) BuildRequires: yasm +BuildRequires: dbus-glib-devel Requires: mozilla-filesystem %if %{?system_nss} From 1299889d393c06e1328f2b30f501078180182f76 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 20 Jan 2017 11:17:55 +0100 Subject: [PATCH 71/80] Added fix for new nss 3.28.1 (mozbz#1290037) --- xulrunner.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/xulrunner.spec b/xulrunner.spec index 6451f93..f1b1968 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -25,7 +25,7 @@ %if %{?system_nss} %global nspr_version 4.10.10 %global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536) -%global nss_version 3.19.2 +%global nss_version 3.28.1 %global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536) %endif @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 8%{?pre_tag}%{?dist} +Release: 9%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -107,6 +107,9 @@ Patch204: rhbz-966424.patch # FTBFS on AArch64 Patch205: firefox-webrtc-add-missing-archs.patch +# Upstream patches +Patch300: mozilla-1290037.patch + # Upstream patches # --------------------------------------------------- @@ -254,6 +257,7 @@ cd %{tarballdir} %patch205 -p1 # Upstream patches +%patch300 -p1 -b .1290037 %{__rm} -f .mozconfig @@ -569,6 +573,9 @@ fi #--------------------------------------------------------------------- %changelog +* Fri Jan 20 2017 Martin Stransky - 44.0-9 +- Added fix for new nss 3.28.1 (mozbz#1290037) + * Thu Dec 15 2016 Martin Stransky - 44.0-8 - Rebuilt From ec4a6e93109bdd221598f28e4ebcf51bbef1ccc4 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 20 Jan 2017 11:30:49 +0100 Subject: [PATCH 72/80] Added missing patch --- mozilla-1290037.patch | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mozilla-1290037.patch diff --git a/mozilla-1290037.patch b/mozilla-1290037.patch new file mode 100644 index 0000000..508d580 --- /dev/null +++ b/mozilla-1290037.patch @@ -0,0 +1,34 @@ +# HG changeset patch +# User Franziskus Kiefer +# Date 1469717280 -7200 +# Thu Jul 28 16:48:00 2016 +0200 +# Node ID 95aa61f1e3562e526bf88179d9d078fd90ad1bda +# Parent d42aacfe34af25e2f5110e2ca3d24a210eabeb33 +Update keybits in H2, r=mt + +MozReview-Commit-ID: 35oWoDMqe1Y + +diff --git a/netwerk/protocol/http/Http2Session.cpp b/netwerk/protocol/http/Http2Session.cpp +--- a/netwerk/protocol/http/Http2Session.cpp ++++ b/netwerk/protocol/http/Http2Session.cpp +@@ -3544,18 +3544,18 @@ Http2Session::ConfirmTLSProfile() + RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY); + } + + uint32_t keybits = ssl->GetKEAKeyBits(); + if (kea == ssl_kea_dh && keybits < 2048) { + LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to DH %d < 2048\n", + this, keybits)); + RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY); +- } else if (kea == ssl_kea_ecdh && keybits < 256) { // 256 bits is "security level" of 128 +- LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to ECDH %d < 256\n", ++ } else if (kea == ssl_kea_ecdh && keybits < 224) { // see rfc7540 9.2.1. ++ LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to ECDH %d < 224\n", + this, keybits)); + RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY); + } + + int16_t macAlgorithm = ssl->GetMACAlgorithmUsed(); + LOG3(("Http2Session::ConfirmTLSProfile %p MAC Algortihm (aead==6) %d\n", + this, macAlgorithm)); + if (macAlgorithm != nsISSLSocketControl::SSL_MAC_AEAD) { From 36e54a1e24bce507651a7b2b1195a06bb3c6fa2c Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 20 Jan 2017 12:04:35 +0100 Subject: [PATCH 73/80] Disabled system icu --- xulrunner-mozconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig index 0dcf27d..e7c882d 100644 --- a/xulrunner-mozconfig +++ b/xulrunner-mozconfig @@ -34,6 +34,7 @@ ac_add_options --enable-chrome-format=omni ac_add_options --disable-gstreamer ac_add_options --enable-pulseaudio ac_add_options --disable-skia +ac_add_options --without-system-icu export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 From dedebcc1f71e8e8ad6ba8dbbc44cf3fc25a3714d Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 20 Jan 2017 12:32:06 +0100 Subject: [PATCH 74/80] Relaxed requested nss version --- xulrunner.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index f1b1968..45e339a 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -25,7 +25,7 @@ %if %{?system_nss} %global nspr_version 4.10.10 %global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536) -%global nss_version 3.28.1 +%global nss_version 3.27 %global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536) %endif From 3608d371a58510eb7cadcb13d61c5dbad48e5601 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 20 Jan 2017 12:47:14 +0100 Subject: [PATCH 75/80] Added mozbz#1329272 build fix --- mozilla-1329272.patch | 29 +++++++++++++++++++++++++++++ xulrunner-mozconfig | 1 - xulrunner.spec | 2 ++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 mozilla-1329272.patch diff --git a/mozilla-1329272.patch b/mozilla-1329272.patch new file mode 100644 index 0000000..ab0b26b --- /dev/null +++ b/mozilla-1329272.patch @@ -0,0 +1,29 @@ +From 66fc64a75617ffc68f16780f60e39c1f368dfd41 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg +Date: Mon, 9 Jan 2017 14:37:33 +0100 +Subject: [PATCH] bug 1329272: add bracket for sed 4.3 compliance, r=glandium + +--- + build/autoconf/icu.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4 +index 4f46345f435a..794ddcdf4e52 100644 +--- a/build/autoconf/icu.m4 ++++ b/build/autoconf/icu.m4 +@@ -67,11 +67,11 @@ if test -n "$USE_ICU"; then + if test ! -d "$icudir"; then + AC_MSG_ERROR([Cannot find the ICU directory]) + fi + fi + +- version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"` ++ version=`sed -n 's/^[[[:space:]]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"` + if test x"$version" = x; then + AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno]) + fi + MOZ_ICU_VERSION="$version" + +-- +2.11.0 + diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig index e7c882d..0dcf27d 100644 --- a/xulrunner-mozconfig +++ b/xulrunner-mozconfig @@ -34,7 +34,6 @@ ac_add_options --enable-chrome-format=omni ac_add_options --disable-gstreamer ac_add_options --enable-pulseaudio ac_add_options --disable-skia -ac_add_options --without-system-icu export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 diff --git a/xulrunner.spec b/xulrunner.spec index 45e339a..8fc82ac 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -109,6 +109,7 @@ Patch205: firefox-webrtc-add-missing-archs.patch # Upstream patches Patch300: mozilla-1290037.patch +Patch301: mozilla-1329272.patch # Upstream patches @@ -258,6 +259,7 @@ cd %{tarballdir} # Upstream patches %patch300 -p1 -b .1290037 +%patch301 -p1 -b .1329272 %{__rm} -f .mozconfig From 656d9078e217a4dcfefc151ff4b4ccaf5f54e047 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 11 Feb 2017 18:11:41 +0000 Subject: [PATCH 76/80] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- xulrunner.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 8fc82ac..e0720a4 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 44.0 -Release: 9%{?pre_tag}%{?dist} +Release: 10%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -575,6 +575,9 @@ fi #--------------------------------------------------------------------- %changelog +* Sat Feb 11 2017 Fedora Release Engineering - 44.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Fri Jan 20 2017 Martin Stransky - 44.0-9 - Added fix for new nss 3.28.1 (mozbz#1290037) From 90cdbfa41ddd48bff32d8e460fb34ac42d4e290c Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Thu, 1 Jun 2017 15:20:24 +0200 Subject: [PATCH 77/80] Fixed xulrunner build problems with stl headers --- build-stl-headers-fix-mbz1269171.patch | 169 +++++++++++++++++++++++++ xulrunner.spec | 2 + 2 files changed, 171 insertions(+) create mode 100644 build-stl-headers-fix-mbz1269171.patch diff --git a/build-stl-headers-fix-mbz1269171.patch b/build-stl-headers-fix-mbz1269171.patch new file mode 100644 index 0000000..7f9db14 --- /dev/null +++ b/build-stl-headers-fix-mbz1269171.patch @@ -0,0 +1,169 @@ +diff -up firefox-44.0/config/gcc-stl-wrapper.template.h.1269171 firefox-44.0/config/gcc-stl-wrapper.template.h +--- firefox-44.0/config/gcc-stl-wrapper.template.h.1269171 2017-06-01 12:06:24.481286748 +0200 ++++ firefox-44.0/config/gcc-stl-wrapper.template.h 2017-06-01 12:09:28.883022995 +0200 +@@ -17,24 +17,6 @@ + // Silence "warning: #include_next is a GCC extension" + #pragma GCC system_header + +-// mozalloc.h wants ; break the cycle by always explicitly +-// including here. NB: this is a tad sneaky. Sez the gcc docs: +-// +-// `#include_next' does not distinguish between and "file" +-// inclusion, nor does it check that the file you specify has the +-// same name as the current file. It simply looks for the file +-// named, starting with the directory in the search path after the +-// one where the current file was found. +-#include_next +- +-// See if we're in code that can use mozalloc. NB: this duplicates +-// code in nscore.h because nscore.h pulls in prtypes.h, and chromium +-// can't build with that being included before base/basictypes.h. +-#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) +-# include "mozilla/mozalloc.h" +-#else +-# error "STL code can only be used with infallible ::operator new()" +-#endif + + #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) + // Enable checked iterators and other goodies +@@ -46,10 +28,34 @@ + // # define _GLIBCXX_DEBUG 1 + #endif + ++// Don't include mozalloc for cstdlib. See bug 1245076. ++#ifndef moz_dont_include_mozalloc_for_cstdlib ++# define moz_dont_include_mozalloc_for_cstdlib ++#endif ++ ++// Include mozalloc after the STL header and all other headers it includes ++// have been preprocessed. ++#if !defined(MOZ_INCLUDE_MOZALLOC_H) && \ ++ !defined(moz_dont_include_mozalloc_for_${HEADER}) ++# define MOZ_INCLUDE_MOZALLOC_H ++# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} ++#endif ++ + #pragma GCC visibility push(default) + #include_next <${HEADER}> + #pragma GCC visibility pop + ++#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} ++// See if we're in code that can use mozalloc. NB: this duplicates ++// code in nscore.h because nscore.h pulls in prtypes.h, and chromium ++// can't build with that being included before base/basictypes.h. ++# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) ++# include "mozilla/mozalloc.h" ++# else ++# error "STL code can only be used with infallible ::operator new()" ++# endif ++#endif ++ + // gcc calls a __throw_*() function from bits/functexcept.h when it + // wants to "throw an exception". functexcept exists nominally to + // support -fno-exceptions, but since we'll always use the system +diff -up firefox-44.0/config/make-stl-wrappers.py.1269171 firefox-44.0/config/make-stl-wrappers.py +--- firefox-44.0/config/make-stl-wrappers.py.1269171 2016-01-24 00:23:37.000000000 +0100 ++++ firefox-44.0/config/make-stl-wrappers.py 2017-06-01 12:06:24.482286747 +0200 +@@ -30,7 +30,6 @@ def main(outdir, compiler, template_file + os.mkdir(outdir) + + template = open(template_file, 'r').read() +- path_to_new = header_path('new', compiler) + + for header in open(header_list_file, 'r'): + header = header.rstrip() +@@ -40,8 +39,7 @@ def main(outdir, compiler, template_file + path = header_path(header, compiler) + with FileAvoidWrite(os.path.join(outdir, header)) as f: + f.write(string.Template(template).substitute(HEADER=header, +- HEADER_PATH=path, +- NEW_HEADER_PATH=path_to_new)) ++ HEADER_PATH=path)) + + + if __name__ == '__main__': +diff -up firefox-44.0/config/msvc-stl-wrapper.template.h.1269171 firefox-44.0/config/msvc-stl-wrapper.template.h +--- firefox-44.0/config/msvc-stl-wrapper.template.h.1269171 2016-01-24 00:23:37.000000000 +0100 ++++ firefox-44.0/config/msvc-stl-wrapper.template.h 2017-06-01 12:06:24.482286747 +0200 +@@ -8,35 +8,23 @@ + #ifndef mozilla_${HEADER}_h + #define mozilla_${HEADER}_h + +-#ifndef MOZ_HAVE_INCLUDED_ALLOC +-#define MOZ_HAVE_INCLUDED_ALLOC +- + #if _HAS_EXCEPTIONS + # error "STL code can only be used with -fno-exceptions" + #endif + ++// Include mozalloc after the STL header and all other headers it includes ++// have been preprocessed. ++#if !defined(MOZ_INCLUDE_MOZALLOC_H) ++# define MOZ_INCLUDE_MOZALLOC_H ++# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} ++#endif ++ + // Code built with !_HAS_EXCEPTIONS calls std::_Throw(), but the win2k + // CRT doesn't export std::_Throw(). So we define it. + #ifndef mozilla_Throw_h + # include "mozilla/throw_msvc.h" + #endif + +-// Code might include before other wrapped headers, but +-// includes and so we want to wrap it. But mozalloc.h +-// wants also, so we break the cycle by always explicitly +-// including here. +-#include <${NEW_HEADER_PATH}> +- +-// See if we're in code that can use mozalloc. NB: this duplicates +-// code in nscore.h because nscore.h pulls in prtypes.h, and chromium +-// can't build with that being included before base/basictypes.h. +-#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) +-# include "mozilla/mozalloc.h" +-#else +-# error "STL code can only be used with infallible ::operator new()" +-#endif +-#endif /* MOZ_HAVE_INCLUDED_ALLOC */ +- + #ifdef _DEBUG + // From + // http://msdn.microsoft.com/en-us/library/aa985982%28VS.80%29.aspx +@@ -75,4 +63,15 @@ + + #pragma warning( pop ) + ++#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} ++// See if we're in code that can use mozalloc. NB: this duplicates ++// code in nscore.h because nscore.h pulls in prtypes.h, and chromium ++// can't build with that being included before base/basictypes.h. ++# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) ++# include "mozilla/mozalloc.h" ++# else ++# error "STL code can only be used with infallible ::operator new()" ++# endif ++#endif ++ + #endif // if mozilla_${HEADER}_h +diff -up firefox-44.0/memory/mozalloc/mozalloc.h.1269171 firefox-44.0/memory/mozalloc/mozalloc.h +--- firefox-44.0/memory/mozalloc/mozalloc.h.1269171 2016-01-24 00:23:44.000000000 +0100 ++++ firefox-44.0/memory/mozalloc/mozalloc.h 2017-06-01 12:06:24.482286747 +0200 +@@ -12,10 +12,17 @@ + * https://bugzilla.mozilla.org/show_bug.cgi?id=427099 + */ + +-#include +-#include + #if defined(__cplusplus) + # include ++// Since libstdc++ 6, including the C headers (e.g. stdlib.h) instead of the ++// corresponding C++ header (e.g. cstdlib) can cause confusion in C++ code ++// using things defined there. Specifically, with stdlib.h, the use of abs() ++// in gfx/graphite2/src/inc/UtfCodec.h somehow ends up picking the wrong abs() ++# include ++# include ++#else ++# include ++# include + #endif + + #if defined(__cplusplus) diff --git a/xulrunner.spec b/xulrunner.spec index e0720a4..d477a8a 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -98,6 +98,7 @@ Patch20: firefox-build-prbool.patch Patch21: aarch64-fix-skia.patch Patch24: rhbz-1219542-s390-build.patch Patch25: firefox-gcc-6.0.patch +Patch26: build-stl-headers-fix-mbz1269171.patch # Fedora specific patches Patch200: mozilla-193-pkgconfig.patch @@ -252,6 +253,7 @@ cd %{tarballdir} %patch24 -p1 -b .rhbz-1219542-s390 %endif %patch25 -p1 -b .gcc6 +%patch26 -p1 -b .1269171 %patch200 -p2 -b .pk %patch204 -p2 -b .966424 From be3317bc531ae5359e5d7a5960e34a234d76fec7 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Wed, 14 Jun 2017 12:51:30 +0200 Subject: [PATCH 78/80] Update to Firefox 45.9.0 esr source tarball --- .gitignore | 1 + firefox-webrtc-add-missing-archs.patch | 33 ------------------------- mozilla-1290037.patch | 34 -------------------------- mozilla-1329272.patch | 29 ---------------------- sources | 2 +- xulrunner-install-dir.patch | 10 ++++---- xulrunner.spec | 29 ++++++---------------- 7 files changed, 15 insertions(+), 123 deletions(-) delete mode 100644 firefox-webrtc-add-missing-archs.patch delete mode 100644 mozilla-1290037.patch delete mode 100644 mozilla-1329272.patch diff --git a/.gitignore b/.gitignore index d7e8527..6f4d157 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /xulrunner-*.source.tar.bz2 /firefox-42.0.source.tar.xz /firefox-44.0.source.tar.xz +/firefox-45.9.0esr.source.tar.xz diff --git a/firefox-webrtc-add-missing-archs.patch b/firefox-webrtc-add-missing-archs.patch deleted file mode 100644 index 94ce346..0000000 --- a/firefox-webrtc-add-missing-archs.patch +++ /dev/null @@ -1,33 +0,0 @@ - -# HG changeset patch -# User Makoto Kato -# Date 1446192505 -32400 -# Node ID 189d4b0f9f238c76b1c2ee7003bba8fb693b3e54 -# Parent 6bac283aad5301f23a0bdbcd7c7f3f92b9da7c24 -Bug 1219566 - Add aarch64 macro to webrtc/trunk/build/build_config.h. r=rjesup - -diff --git a/media/webrtc/trunk/build/build_config.h b/media/webrtc/trunk/build/build_config.h ---- a/media/webrtc/trunk/build/build_config.h -+++ b/media/webrtc/trunk/build/build_config.h -@@ -151,16 +151,20 @@ - #define ARCH_CPU_S390X 1 - #define ARCH_CPU_64_BITS 1 - #elif defined(__s390__) - #define ARCH_CPU_S390 1 - #define ARCH_CPU_32_BITS 1 - #elif defined(__alpha__) - #define ARCH_CPU_ALPHA 1 - #define ARCH_CPU_64_BITS 1 -+#elif defined(__aarch64__) -+#define ARCH_CPU_ARM_FAMILY 1 -+#define ARCH_CPU_ARM64 1 -+#define ARCH_CPU_64_BITS 1 - #else - #error Please add support for your architecture in build/build_config.h - #endif - - // Type detection for wchar_t. - #if defined(OS_WIN) - #define WCHAR_T_IS_UTF16 - #elif defined(OS_POSIX) && defined(COMPILER_GCC) && \ - diff --git a/mozilla-1290037.patch b/mozilla-1290037.patch deleted file mode 100644 index 508d580..0000000 --- a/mozilla-1290037.patch +++ /dev/null @@ -1,34 +0,0 @@ -# HG changeset patch -# User Franziskus Kiefer -# Date 1469717280 -7200 -# Thu Jul 28 16:48:00 2016 +0200 -# Node ID 95aa61f1e3562e526bf88179d9d078fd90ad1bda -# Parent d42aacfe34af25e2f5110e2ca3d24a210eabeb33 -Update keybits in H2, r=mt - -MozReview-Commit-ID: 35oWoDMqe1Y - -diff --git a/netwerk/protocol/http/Http2Session.cpp b/netwerk/protocol/http/Http2Session.cpp ---- a/netwerk/protocol/http/Http2Session.cpp -+++ b/netwerk/protocol/http/Http2Session.cpp -@@ -3544,18 +3544,18 @@ Http2Session::ConfirmTLSProfile() - RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY); - } - - uint32_t keybits = ssl->GetKEAKeyBits(); - if (kea == ssl_kea_dh && keybits < 2048) { - LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to DH %d < 2048\n", - this, keybits)); - RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY); -- } else if (kea == ssl_kea_ecdh && keybits < 256) { // 256 bits is "security level" of 128 -- LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to ECDH %d < 256\n", -+ } else if (kea == ssl_kea_ecdh && keybits < 224) { // see rfc7540 9.2.1. -+ LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to ECDH %d < 224\n", - this, keybits)); - RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY); - } - - int16_t macAlgorithm = ssl->GetMACAlgorithmUsed(); - LOG3(("Http2Session::ConfirmTLSProfile %p MAC Algortihm (aead==6) %d\n", - this, macAlgorithm)); - if (macAlgorithm != nsISSLSocketControl::SSL_MAC_AEAD) { diff --git a/mozilla-1329272.patch b/mozilla-1329272.patch deleted file mode 100644 index ab0b26b..0000000 --- a/mozilla-1329272.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 66fc64a75617ffc68f16780f60e39c1f368dfd41 Mon Sep 17 00:00:00 2001 -From: Daniel Stenberg -Date: Mon, 9 Jan 2017 14:37:33 +0100 -Subject: [PATCH] bug 1329272: add bracket for sed 4.3 compliance, r=glandium - ---- - build/autoconf/icu.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4 -index 4f46345f435a..794ddcdf4e52 100644 ---- a/build/autoconf/icu.m4 -+++ b/build/autoconf/icu.m4 -@@ -67,11 +67,11 @@ if test -n "$USE_ICU"; then - if test ! -d "$icudir"; then - AC_MSG_ERROR([Cannot find the ICU directory]) - fi - fi - -- version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"` -+ version=`sed -n 's/^[[[:space:]]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"` - if test x"$version" = x; then - AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno]) - fi - MOZ_ICU_VERSION="$version" - --- -2.11.0 - diff --git a/sources b/sources index bf85a54..799823c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9d940e72f9eaff767fafcfbcc387594d firefox-44.0.source.tar.xz +SHA512 (firefox-45.9.0esr.source.tar.xz) = 2e4c1f8bca0c59ac93ab918b996e3b6cf25e7279ad5800de256aa220e670c6aaab2036c3ead4020b80e2a0e8cda3ae5fe9b270106646c625ce4fd6ecfd66d9ca diff --git a/xulrunner-install-dir.patch b/xulrunner-install-dir.patch index 51fe4ba..89d2972 100644 --- a/xulrunner-install-dir.patch +++ b/xulrunner-install-dir.patch @@ -1,6 +1,6 @@ -diff -up firefox-29.0/mozilla-release/config/baseconfig.mk.orig firefox-29.0/mozilla-release/config/baseconfig.mk ---- mozilla-release/config/baseconfig.mk.orig 2014-04-22 15:38:52.948165295 +0200 -+++ mozilla-release/config/baseconfig.mk 2014-04-22 15:42:20.387481673 +0200 +diff -up firefox-45.9.0esr/config/baseconfig.mk.version-fix firefox-45.9.0esr/config/baseconfig.mk +--- firefox-45.9.0esr/config/baseconfig.mk.version-fix 2017-06-14 10:02:42.829306768 +0200 ++++ firefox-45.9.0esr/config/baseconfig.mk 2017-06-14 10:02:54.014302221 +0200 @@ -4,7 +4,7 @@ # whether a normal build is happening or whether the check is running. includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) @@ -8,5 +8,5 @@ diff -up firefox-29.0/mozilla-release/config/baseconfig.mk.orig firefox-29.0/moz -installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +installdir = $(libdir)/$(MOZ_APP_NAME) sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) - ifndef TOP_DIST - TOP_DIST = dist + ifeq (.,$(DEPTH)) + DIST = dist diff --git a/xulrunner.spec b/xulrunner.spec index d477a8a..68fea22 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -46,7 +46,7 @@ %global tarballname firefox %global mozappdir %{_libdir}/%{name} -%global tarballdir %{tarballname}-%{version} +%global tarballdir %{tarballname}-%{version}esr # crash reporter work only on x86/x86_64 %ifarch %{ix86} x86_64 @@ -77,12 +77,12 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner -Version: 44.0 -Release: 10%{?pre_tag}%{?dist} +Version: 45.9.0 +Release: 10%?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet -Source0: ftp://ftp.mozilla.org/pub/%{tarballname}/releases/%{version}%{?pre_version}/source/%{tarballname}-%{version}%{?pre_version}.source.tar.xz +Source0: ftp://ftp.mozilla.org/pub/%{tarballname}/releases/%{version}%{?pre_version}/source/%{tarballname}-%{version}%{?pre_version}esr.source.tar.xz Source10: %{name}-mozconfig Source12: %{name}-redhat-default-prefs.js Source21: %{name}.sh.in @@ -105,13 +105,6 @@ Patch200: mozilla-193-pkgconfig.patch # Unable to install addons from https pages Patch204: rhbz-966424.patch -# FTBFS on AArch64 -Patch205: firefox-webrtc-add-missing-archs.patch - -# Upstream patches -Patch300: mozilla-1290037.patch -Patch301: mozilla-1329272.patch - # Upstream patches # --------------------------------------------------- @@ -244,7 +237,7 @@ debug %{name}, you want to install %{name}-debuginfo instead. cd %{tarballdir} %patch1 -p1 -%patch3 -p2 -b .arm +#%patch3 -p2 -b .arm %patch18 -p2 -b .jemalloc-ppc %patch19 -p2 -b .s390-inlines %patch20 -p1 -b .prbool @@ -257,12 +250,6 @@ cd %{tarballdir} %patch200 -p2 -b .pk %patch204 -p2 -b .966424 -%patch205 -p1 - -# Upstream patches -%patch300 -p1 -b .1290037 -%patch301 -p1 -b .1329272 - %{__rm} -f .mozconfig %{__cp} %{SOURCE10} .mozconfig @@ -525,13 +512,10 @@ fi %doc %attr(644, root, root) %{mozappdir}/LICENSE %doc %attr(644, root, root) %{mozappdir}/README.xulrunner %{mozappdir}/chrome -%{mozappdir}/chrome.manifest %{mozappdir}/dictionaries %dir %{mozappdir}/components %ghost %{mozappdir}/components/compreg.dat %ghost %{mozappdir}/components/xpti.dat -%{mozappdir}/components/*.so -%{mozappdir}/components/*.manifest %{mozappdir}/omni.ja %{mozappdir}/*.so %ifarch %{ix86} x86_64 @@ -577,6 +561,9 @@ fi #--------------------------------------------------------------------- %changelog +* Wed Jun 14 2017 Jan Horak - 45.9.0-1 +- Update to 45.9.0 (esr) sources + * Sat Feb 11 2017 Fedora Release Engineering - 44.0-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild From 721e87200e850a0dd283cf05ce1769c5c0a8a6d8 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Wed, 14 Jun 2017 14:03:16 +0200 Subject: [PATCH 79/80] Fixed typo in release --- xulrunner.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xulrunner.spec b/xulrunner.spec index 68fea22..ebb1e37 100644 --- a/xulrunner.spec +++ b/xulrunner.spec @@ -78,7 +78,7 @@ Summary: XUL Runtime for Gecko Applications Name: xulrunner Version: 45.9.0 -Release: 10%?pre_tag}%{?dist} +Release: 10%{?pre_tag}%{?dist} URL: http://developer.mozilla.org/En/XULRunner License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet From 799473cddd907fb3b0036df8f436a51902bbfbf0 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 15 Jun 2017 14:29:34 +0200 Subject: [PATCH 80/80] This package is no longer supported by upstream --- .gitignore | 5 - aarch64-fix-skia.patch | 18 - build-stl-headers-fix-mbz1269171.patch | 169 ----- dead.package | 1 + firefox-build-prbool.patch | 11 - firefox-gcc-6.0.patch | 26 - mozilla-193-pkgconfig.patch | 32 - mozilla-639554.patch | 15 - mozilla-build-arm.patch | 23 - rhbz-1219542-s390-build.patch | 23 - rhbz-966424.patch | 14 - sources | 1 - xulrunner-24.0-jemalloc-ppc.patch | 12 - xulrunner-24.0-s390-inlines.patch | 12 - xulrunner-install-dir.patch | 12 - xulrunner-mozconfig | 44 -- xulrunner-redhat-default-prefs.js | 8 - xulrunner.sh.in | 69 -- xulrunner.spec | 883 ------------------------- 19 files changed, 1 insertion(+), 1377 deletions(-) delete mode 100644 .gitignore delete mode 100644 aarch64-fix-skia.patch delete mode 100644 build-stl-headers-fix-mbz1269171.patch create mode 100644 dead.package delete mode 100644 firefox-build-prbool.patch delete mode 100644 firefox-gcc-6.0.patch delete mode 100644 mozilla-193-pkgconfig.patch delete mode 100644 mozilla-639554.patch delete mode 100644 mozilla-build-arm.patch delete mode 100644 rhbz-1219542-s390-build.patch delete mode 100644 rhbz-966424.patch delete mode 100644 sources delete mode 100644 xulrunner-24.0-jemalloc-ppc.patch delete mode 100644 xulrunner-24.0-s390-inlines.patch delete mode 100644 xulrunner-install-dir.patch delete mode 100644 xulrunner-mozconfig delete mode 100644 xulrunner-redhat-default-prefs.js delete mode 100644 xulrunner.sh.in delete mode 100644 xulrunner.spec diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6f4d157..0000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/firefox-*.source.tar.bz2 -/xulrunner-*.source.tar.bz2 -/firefox-42.0.source.tar.xz -/firefox-44.0.source.tar.xz -/firefox-45.9.0esr.source.tar.xz diff --git a/aarch64-fix-skia.patch b/aarch64-fix-skia.patch deleted file mode 100644 index 17df80e..0000000 --- a/aarch64-fix-skia.patch +++ /dev/null @@ -1,18 +0,0 @@ -Based on https://github.com/google/skia/commit/b79ff56de23fef680ae7187040f2d6a9516b553d - -Index: mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.h -=================================================================== ---- mozilla-release/gfx/skia/skia/src/core/SkUtilsArm.h -+++ mozilla-release/gfx/skia/skia/src/core/SkUtilsArm.h -@@ -21,9 +21,9 @@ - #define SK_ARM_NEON_MODE_ALWAYS 1 - #define SK_ARM_NEON_MODE_DYNAMIC 2 - --#if defined(SK_CPU_ARM32) && defined(__ARM_HAVE_OPTIONAL_NEON_SUPPORT) -+#if defined(__ARM_HAVE_OPTIONAL_NEON_SUPPORT) - # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_DYNAMIC --#elif defined(SK_CPU_ARM32) && defined(__ARM_HAVE_NEON) || defined(SK_CPU_ARM64) -+#elif defined(__ARM_HAVE_NEON) - # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_ALWAYS - #else - # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_NONE diff --git a/build-stl-headers-fix-mbz1269171.patch b/build-stl-headers-fix-mbz1269171.patch deleted file mode 100644 index 7f9db14..0000000 --- a/build-stl-headers-fix-mbz1269171.patch +++ /dev/null @@ -1,169 +0,0 @@ -diff -up firefox-44.0/config/gcc-stl-wrapper.template.h.1269171 firefox-44.0/config/gcc-stl-wrapper.template.h ---- firefox-44.0/config/gcc-stl-wrapper.template.h.1269171 2017-06-01 12:06:24.481286748 +0200 -+++ firefox-44.0/config/gcc-stl-wrapper.template.h 2017-06-01 12:09:28.883022995 +0200 -@@ -17,24 +17,6 @@ - // Silence "warning: #include_next is a GCC extension" - #pragma GCC system_header - --// mozalloc.h wants ; break the cycle by always explicitly --// including here. NB: this is a tad sneaky. Sez the gcc docs: --// --// `#include_next' does not distinguish between and "file" --// inclusion, nor does it check that the file you specify has the --// same name as the current file. It simply looks for the file --// named, starting with the directory in the search path after the --// one where the current file was found. --#include_next -- --// See if we're in code that can use mozalloc. NB: this duplicates --// code in nscore.h because nscore.h pulls in prtypes.h, and chromium --// can't build with that being included before base/basictypes.h. --#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --#else --# error "STL code can only be used with infallible ::operator new()" --#endif - - #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) - // Enable checked iterators and other goodies -@@ -46,10 +28,34 @@ - // # define _GLIBCXX_DEBUG 1 - #endif - -+// Don't include mozalloc for cstdlib. See bug 1245076. -+#ifndef moz_dont_include_mozalloc_for_cstdlib -+# define moz_dont_include_mozalloc_for_cstdlib -+#endif -+ -+// Include mozalloc after the STL header and all other headers it includes -+// have been preprocessed. -+#if !defined(MOZ_INCLUDE_MOZALLOC_H) && \ -+ !defined(moz_dont_include_mozalloc_for_${HEADER}) -+# define MOZ_INCLUDE_MOZALLOC_H -+# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+#endif -+ - #pragma GCC visibility push(default) - #include_next <${HEADER}> - #pragma GCC visibility pop - -+#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+// See if we're in code that can use mozalloc. NB: this duplicates -+// code in nscore.h because nscore.h pulls in prtypes.h, and chromium -+// can't build with that being included before base/basictypes.h. -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+#endif -+ - // gcc calls a __throw_*() function from bits/functexcept.h when it - // wants to "throw an exception". functexcept exists nominally to - // support -fno-exceptions, but since we'll always use the system -diff -up firefox-44.0/config/make-stl-wrappers.py.1269171 firefox-44.0/config/make-stl-wrappers.py ---- firefox-44.0/config/make-stl-wrappers.py.1269171 2016-01-24 00:23:37.000000000 +0100 -+++ firefox-44.0/config/make-stl-wrappers.py 2017-06-01 12:06:24.482286747 +0200 -@@ -30,7 +30,6 @@ def main(outdir, compiler, template_file - os.mkdir(outdir) - - template = open(template_file, 'r').read() -- path_to_new = header_path('new', compiler) - - for header in open(header_list_file, 'r'): - header = header.rstrip() -@@ -40,8 +39,7 @@ def main(outdir, compiler, template_file - path = header_path(header, compiler) - with FileAvoidWrite(os.path.join(outdir, header)) as f: - f.write(string.Template(template).substitute(HEADER=header, -- HEADER_PATH=path, -- NEW_HEADER_PATH=path_to_new)) -+ HEADER_PATH=path)) - - - if __name__ == '__main__': -diff -up firefox-44.0/config/msvc-stl-wrapper.template.h.1269171 firefox-44.0/config/msvc-stl-wrapper.template.h ---- firefox-44.0/config/msvc-stl-wrapper.template.h.1269171 2016-01-24 00:23:37.000000000 +0100 -+++ firefox-44.0/config/msvc-stl-wrapper.template.h 2017-06-01 12:06:24.482286747 +0200 -@@ -8,35 +8,23 @@ - #ifndef mozilla_${HEADER}_h - #define mozilla_${HEADER}_h - --#ifndef MOZ_HAVE_INCLUDED_ALLOC --#define MOZ_HAVE_INCLUDED_ALLOC -- - #if _HAS_EXCEPTIONS - # error "STL code can only be used with -fno-exceptions" - #endif - -+// Include mozalloc after the STL header and all other headers it includes -+// have been preprocessed. -+#if !defined(MOZ_INCLUDE_MOZALLOC_H) -+# define MOZ_INCLUDE_MOZALLOC_H -+# define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+#endif -+ - // Code built with !_HAS_EXCEPTIONS calls std::_Throw(), but the win2k - // CRT doesn't export std::_Throw(). So we define it. - #ifndef mozilla_Throw_h - # include "mozilla/throw_msvc.h" - #endif - --// Code might include before other wrapped headers, but --// includes and so we want to wrap it. But mozalloc.h --// wants also, so we break the cycle by always explicitly --// including here. --#include <${NEW_HEADER_PATH}> -- --// See if we're in code that can use mozalloc. NB: this duplicates --// code in nscore.h because nscore.h pulls in prtypes.h, and chromium --// can't build with that being included before base/basictypes.h. --#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) --# include "mozilla/mozalloc.h" --#else --# error "STL code can only be used with infallible ::operator new()" --#endif --#endif /* MOZ_HAVE_INCLUDED_ALLOC */ -- - #ifdef _DEBUG - // From - // http://msdn.microsoft.com/en-us/library/aa985982%28VS.80%29.aspx -@@ -75,4 +63,15 @@ - - #pragma warning( pop ) - -+#ifdef MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER} -+// See if we're in code that can use mozalloc. NB: this duplicates -+// code in nscore.h because nscore.h pulls in prtypes.h, and chromium -+// can't build with that being included before base/basictypes.h. -+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) -+# include "mozilla/mozalloc.h" -+# else -+# error "STL code can only be used with infallible ::operator new()" -+# endif -+#endif -+ - #endif // if mozilla_${HEADER}_h -diff -up firefox-44.0/memory/mozalloc/mozalloc.h.1269171 firefox-44.0/memory/mozalloc/mozalloc.h ---- firefox-44.0/memory/mozalloc/mozalloc.h.1269171 2016-01-24 00:23:44.000000000 +0100 -+++ firefox-44.0/memory/mozalloc/mozalloc.h 2017-06-01 12:06:24.482286747 +0200 -@@ -12,10 +12,17 @@ - * https://bugzilla.mozilla.org/show_bug.cgi?id=427099 - */ - --#include --#include - #if defined(__cplusplus) - # include -+// Since libstdc++ 6, including the C headers (e.g. stdlib.h) instead of the -+// corresponding C++ header (e.g. cstdlib) can cause confusion in C++ code -+// using things defined there. Specifically, with stdlib.h, the use of abs() -+// in gfx/graphite2/src/inc/UtfCodec.h somehow ends up picking the wrong abs() -+# include -+# include -+#else -+# include -+# include - #endif - - #if defined(__cplusplus) diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..3f37036 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +This package is no longer supported by upstream diff --git a/firefox-build-prbool.patch b/firefox-build-prbool.patch deleted file mode 100644 index c7424ea..0000000 --- a/firefox-build-prbool.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up mozilla-release/security/certverifier/OCSPCache.h.old mozilla-release/security/certverifier/OCSPCache.h ---- mozilla-release/security/certverifier/OCSPCache.h.old 2014-10-14 12:33:46.519970732 +0200 -+++ mozilla-release/security/certverifier/OCSPCache.h 2014-10-14 12:34:44.418000625 +0200 -@@ -25,6 +25,7 @@ - #ifndef mozilla_psm_OCSPCache_h - #define mozilla_psm_OCSPCache_h - -+#include "prtypes.h" - #include "hasht.h" - #include "mozilla/Mutex.h" - #include "mozilla/Vector.h" diff --git a/firefox-gcc-6.0.patch b/firefox-gcc-6.0.patch deleted file mode 100644 index 0a74d36..0000000 --- a/firefox-gcc-6.0.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -up firefox-44.0/nsprpub/config/make-system-wrappers.pl.back firefox-44.0/nsprpub/config/make-system-wrappers.pl ---- firefox-44.0/nsprpub/config/make-system-wrappers.pl.back 2016-01-24 00:23:49.000000000 +0100 -+++ firefox-44.0/nsprpub/config/make-system-wrappers.pl 2016-02-02 14:58:45.064112655 +0100 -@@ -19,7 +19,9 @@ while () { - open OUT, ">$output_dir/$_"; - print OUT "#pragma GCC system_header\n"; # suppress include_next warning - print OUT "#pragma GCC visibility push(default)\n"; -+ print OUT "#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n"; - print OUT "#include_next \<$_\>\n"; -+ print OUT "#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n"; - print OUT "#pragma GCC visibility pop\n"; - close OUT; - } -diff -up firefox-44.0/mozglue/build/arm.cpp.old firefox-44.0/mozglue/build/arm.cpp ---- firefox-44.0/mozglue/build/arm.cpp.old 2016-02-03 10:07:29.879526500 +0100 -+++ firefox-44.0/mozglue/build/arm.cpp 2016-02-03 10:08:11.062697517 +0100 -@@ -104,7 +104,9 @@ check_neon(void) - - # elif defined(__linux__) || defined(ANDROID) - # include -+#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS - # include -+#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS - # include - - enum{ diff --git a/mozilla-193-pkgconfig.patch b/mozilla-193-pkgconfig.patch deleted file mode 100644 index 67ec302..0000000 --- a/mozilla-193-pkgconfig.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -up xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul-embedding.pc.in.pk xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul-embedding.pc.in ---- xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul-embedding.pc.in.pk 2010-08-06 03:09:24.000000000 +0200 -+++ xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul-embedding.pc.in 2010-08-16 11:12:32.000000000 +0200 -@@ -6,5 +6,6 @@ idldir=%idldir% - Name: libxul-embedding - Description: Static library for version-independent embedding of the Mozilla runtime - Version: %MOZILLA_VERSION% -+Requires: %NSPR_NAME% >= %NSPR_VERSION% - Libs: -L${sdkdir}/lib -lxpcomglue -ldl - Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS% -diff -up xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul.pc.in.pk xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul.pc.in ---- xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul.pc.in.pk 2010-08-06 03:09:24.000000000 +0200 -+++ xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul.pc.in 2010-08-16 11:07:52.000000000 +0200 -@@ -2,6 +2,7 @@ prefix=%prefix% - sdkdir=%sdkdir% - includedir=%includedir% - idldir=%idldir% -+libdir=%libdir% - - Name: libxul - Description: The Mozilla Runtime and Embedding Engine -diff -up xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/Makefile.in.pk xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/Makefile.in ---- xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/Makefile.in.pk 2010-08-16 11:07:52.000000000 +0200 -+++ xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/Makefile.in 2010-08-16 11:07:52.000000000 +0200 -@@ -116,6 +116,7 @@ endif - -e "s|%includedir%|$(includedir)|" \ - -e "s|%idldir%|$(idldir)|" \ - -e "s|%sdkdir%|$(sdkdir)|" \ -+ -e "s|%libdir%|$(installdir)|" \ - -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \ - -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \ - -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \ diff --git a/mozilla-639554.patch b/mozilla-639554.patch deleted file mode 100644 index 12d32b2..0000000 --- a/mozilla-639554.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/toolkit/mozapps/installer/packager.mk -+++ b/toolkit/mozapps/installer/packager.mk -@@ -621,10 +621,12 @@ ifdef INSTALL_SDK # Here comes the hard - (cd $(DESTDIR)$(idldir) && tar -xf -) - # SDK directory is the libs + a bunch of symlinks - $(NSINSTALL) -D $(DESTDIR)$(sdkdir)/sdk/lib -+ $(NSINSTALL) -D $(DESTDIR)$(sdkdir)/sdk/bin - if test -f $(DIST)/include/xpcom-config.h; then \ - $(SYSINSTALL) $(IFLAGS1) $(DIST)/include/xpcom-config.h $(DESTDIR)$(sdkdir); \ - fi - (cd $(DIST)/sdk/lib && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DESTDIR)$(sdkdir)/sdk/lib && tar -xf -) -+ (cd $(DIST)/sdk/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DESTDIR)$(sdkdir)/sdk/bin && tar -xf -) - $(RM) -f $(DESTDIR)$(sdkdir)/lib $(DESTDIR)$(sdkdir)/bin $(DESTDIR)$(sdkdir)/include $(DESTDIR)$(sdkdir)/include $(DESTDIR)$(sdkdir)/sdk/idl $(DESTDIR)$(sdkdir)/idl - ln -s $(sdkdir)/sdk/lib $(DESTDIR)$(sdkdir)/lib - ln -s $(installdir) $(DESTDIR)$(sdkdir)/bin diff --git a/mozilla-build-arm.patch b/mozilla-build-arm.patch deleted file mode 100644 index 86e6f2e..0000000 --- a/mozilla-build-arm.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up firefox-36.0.1/mozilla-release/media/webrtc/trunk/webrtc/build/common.gypi.arm firefox-36.0.1/mozilla-release/media/webrtc/trunk/webrtc/build/common.gypi ---- firefox-36.0.1/mozilla-release/media/webrtc/trunk/webrtc/build/common.gypi.arm 2015-03-05 11:28:19.000000000 +0100 -+++ firefox-36.0.1/mozilla-release/media/webrtc/trunk/webrtc/build/common.gypi 2015-03-09 10:02:17.875243261 +0100 -@@ -235,19 +235,6 @@ - 'defines': [ - 'WEBRTC_ARCH_ARM', - ], -- 'conditions': [ -- ['arm_version==7', { -- 'defines': ['WEBRTC_ARCH_ARM_V7', -- 'WEBRTC_BUILD_NEON_LIBS'], -- 'conditions': [ -- ['arm_neon==1', { -- 'defines': ['WEBRTC_ARCH_ARM_NEON',], -- }, { -- 'defines': ['WEBRTC_DETECT_ARM_NEON',], -- }], -- ], -- }], -- ], - }], - ['os_bsd==1', { - 'defines': [ diff --git a/rhbz-1219542-s390-build.patch b/rhbz-1219542-s390-build.patch deleted file mode 100644 index 3734ce5..0000000 --- a/rhbz-1219542-s390-build.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up firefox-43.0.3/js/src/configure.in.rhbz-1219542-s390 firefox-43.0.3/js/src/configure.in ---- firefox-43.0.3/js/src/configure.in.rhbz-1219542-s390 2015-12-23 17:11:01.000000000 -0500 -+++ firefox-43.0.3/js/src/configure.in 2016-01-03 08:08:27.139956990 -0500 -@@ -1466,7 +1466,7 @@ case "$host" in - - *-linux*|*-kfreebsd*-gnu|*-gnu*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" -- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" -+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}" - ;; - - *) -@@ -1649,8 +1649,8 @@ ia64*-hpux*) - # while; Intel recommends against using it. - MOZ_OPTIMIZE_FLAGS="-O2" - elif test "$GNU_CC" -o "$GNU_CXX"; then -- MOZ_PGO_OPTIMIZE_FLAGS="-O3" -- MOZ_OPTIMIZE_FLAGS="-O3" -+ MOZ_PGO_OPTIMIZE_FLAGS="-O1" -+ MOZ_OPTIMIZE_FLAGS="-O1" - if test -z "$CLANG_CC"; then - MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS" - fi diff --git a/rhbz-966424.patch b/rhbz-966424.patch deleted file mode 100644 index 7579d09..0000000 --- a/rhbz-966424.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm ---- firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 2014-10-14 08:12:14.358697255 +0200 -+++ firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-14 08:17:59.962181908 +0200 -@@ -174,7 +174,9 @@ this.checkCert = - } - - function isBuiltinToken(tokenName) { -- return tokenName == "Builtin Object Token"; -+ return tokenName == "Builtin Object Token" || -+ tokenName == "Default Trust" || -+ tokenName == "System Trust"; - } - - /** diff --git a/sources b/sources deleted file mode 100644 index 799823c..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (firefox-45.9.0esr.source.tar.xz) = 2e4c1f8bca0c59ac93ab918b996e3b6cf25e7279ad5800de256aa220e670c6aaab2036c3ead4020b80e2a0e8cda3ae5fe9b270106646c625ce4fd6ecfd66d9ca diff --git a/xulrunner-24.0-jemalloc-ppc.patch b/xulrunner-24.0-jemalloc-ppc.patch deleted file mode 100644 index fe404ca..0000000 --- a/xulrunner-24.0-jemalloc-ppc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c.jemalloc-ppc xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c ---- xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c.jemalloc-ppc 2013-09-11 01:15:18.000000000 +0200 -+++ xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c 2013-09-13 13:36:34.171680919 +0200 -@@ -1104,7 +1104,7 @@ static unsigned ncpus; - * controlling the malloc behavior are defined as compile-time constants - * for best performance and cannot be altered at runtime. - */ --#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) -+#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !(defined(__powerpc__)) - #define MALLOC_STATIC_SIZES 1 - #endif - diff --git a/xulrunner-24.0-s390-inlines.patch b/xulrunner-24.0-s390-inlines.patch deleted file mode 100644 index 074f8d9..0000000 --- a/xulrunner-24.0-s390-inlines.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp.s390-inlines xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp ---- xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp.s390-inlines 2013-10-23 16:04:01.773093979 +0200 -+++ xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp 2013-10-23 16:04:44.551134551 +0200 -@@ -4,6 +4,8 @@ - * 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 "jscntxtinlines.h" -+ - #include "vm/SPSProfiler.h" - - #include "mozilla/DebugOnly.h" diff --git a/xulrunner-install-dir.patch b/xulrunner-install-dir.patch deleted file mode 100644 index 89d2972..0000000 --- a/xulrunner-install-dir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-45.9.0esr/config/baseconfig.mk.version-fix firefox-45.9.0esr/config/baseconfig.mk ---- firefox-45.9.0esr/config/baseconfig.mk.version-fix 2017-06-14 10:02:42.829306768 +0200 -+++ firefox-45.9.0esr/config/baseconfig.mk 2017-06-14 10:02:54.014302221 +0200 -@@ -4,7 +4,7 @@ - # whether a normal build is happening or whether the check is running. - includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) - idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) --installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -+installdir = $(libdir)/$(MOZ_APP_NAME) - sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) - ifeq (.,$(DEPTH)) - DIST = dist diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig deleted file mode 100644 index 0dcf27d..0000000 --- a/xulrunner-mozconfig +++ /dev/null @@ -1,44 +0,0 @@ -. $topsrcdir/xulrunner/config/mozconfig -# --with-system-png is disabled because Mozilla requires APNG support in libpng -#ac_add_options --with-system-png - -ac_add_options --prefix="$PREFIX" -ac_add_options --libdir="$LIBDIR" -ac_add_options --with-system-jpeg -ac_add_options --with-system-zlib -ac_add_options --with-system-bz2 -ac_add_options --with-system-libvpx -ac_add_options --enable-system-hunspell -ac_add_options --with-pthreads -ac_add_options --disable-strip -ac_add_options --disable-tests -ac_add_options --disable-mochitest -ac_add_options --disable-installer -ac_add_options --enable-xinerama -ac_add_options --enable-default-toolkit=cairo-gtk2 -ac_add_options --enable-pango -ac_add_options --enable-svg -ac_add_options --enable-canvas -ac_add_options --disable-javaxpcom -ac_add_options --enable-safe-browsing -ac_add_options --enable-extensions=default -ac_add_options --enable-libnotify -ac_add_options --disable-necko-wifi -ac_add_options --enable-startup-notification -ac_add_options --disable-cpp-exceptions -ac_add_options --enable-url-classifier -ac_add_options --enable-gio -ac_add_options --disable-gnomevfs -ac_add_options --disable-updater -ac_add_options --enable-chrome-format=omni -ac_add_options --disable-gstreamer -ac_add_options --enable-pulseaudio -ac_add_options --disable-skia - -export BUILD_OFFICIAL=1 -export MOZILLA_OFFICIAL=1 -export MOZ_UA_BUILDID=20100101 - -mk_add_options BUILD_OFFICIAL=1 -mk_add_options MOZILLA_OFFICIAL=1 -mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir diff --git a/xulrunner-redhat-default-prefs.js b/xulrunner-redhat-default-prefs.js deleted file mode 100644 index 15a1e2a..0000000 --- a/xulrunner-redhat-default-prefs.js +++ /dev/null @@ -1,8 +0,0 @@ -pref("app.update.enabled", false); -pref("app.update.autoInstallEnabled", false); -pref("general.smoothScroll", true); -pref("intl.locale.matchOS", true); -pref("network.manage-offline-status", true); -pref("toolkit.storage.synchronous", 0); -pref("toolkit.networkmanager.disable", false); -pref("offline.autoDetect", true); diff --git a/xulrunner.sh.in b/xulrunner.sh.in deleted file mode 100644 index 534b840..0000000 --- a/xulrunner.sh.in +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -# -# The contents of this file are subject to the Netscape Public -# License Version 1.1 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.mozilla.org/NPL/ -# -# Software distributed under the License is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is Netscape -# Communications Corporation. Portions created by Netscape are -# Copyright (C) 1998 Netscape Communications Corporation. All -# Rights Reserved. -# -# Contributor(s): -# - -## -## Usage: -## -## $ xulrunner -## -## This script is meant to run a xulrunner program from the xulrunner -## rpm installation. -## - -cmdname=`basename $0` - -## -## Variables -## -XUL_ARCH=$(uname -m) -case $XUL_ARCH in - x86_64 | ia64 | s390 ) - XUL_LIB_DIR="/usr/lib64" - SECONDARY_LIB_DIR="/usr/lib" - ;; - * ) - XUL_LIB_DIR="/usr/lib" - SECONDARY_LIB_DIR="/usr/lib64" - ;; -esac - -if [ ! -x $XUL_LIB_DIR/xulrunner/xulrunner ]; then - if [ ! -x $SECONDARY_LIB_DIR/xulrunner/xulrunner ]; then - echo "Error: $XUL_LIB_DIR/xulrunner/xulrunner not found" - if [ -d $SECONDARY_LIB_DIR ]; then - echo " $SECONDARY_LIB_DIR/xulrunner/xulrunner not found" - fi - exit 1 - fi - XUL_LIB_DIR="$SECONDARY_LIB_DIR" -fi -XUL_DIST_BIN="$XUL_LIB_DIR/xulrunner" -XUL_PROGRAM="$XUL_DIST_BIN/xulrunner" - -## -## Enable WebGL -## -MOZ_GLX_IGNORE_BLACKLIST=1 -export MOZ_GLX_IGNORE_BLACKLIST - - -exec $XUL_PROGRAM "$@" diff --git a/xulrunner.spec b/xulrunner.spec deleted file mode 100644 index ebb1e37..0000000 --- a/xulrunner.spec +++ /dev/null @@ -1,883 +0,0 @@ -# Use system nspr/nss? -%define system_nss 1 - -# Use system sqlite? -%if 0%{?fedora} < 20 -%define system_sqlite 0 -%define system_ffi 0 -%else -%define system_sqlite 1 -%define system_ffi 1 -%endif - -# Use system cairo? -%define system_cairo 0 - -# Build as a debug package? -%define debug_build 0 - -# Minimal required versions -%global cairo_version 1.10.2 -%global freetype_version 2.1.9 -%global libnotify_version 0.7.0 -%global libvpx_version 1.0.0 - -%if %{?system_nss} -%global nspr_version 4.10.10 -%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536) -%global nss_version 3.27 -%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536) -%endif - -%if %{?system_sqlite} -%global sqlite_version 3.8.4.2 -# The actual sqlite version (see #480989): -%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) -%endif - -# gecko_dir_ver should be set to the version in our directory names -# alpha_version should be set to the alpha number if using an alpha, 0 otherwise -# beta_version should be set to the beta number if using a beta, 0 otherwise -# rc_version should be set to the RC number if using an RC, 0 otherwise -%global gecko_dir_ver %{version} -%global alpha_version 0 -%global beta_version 0 -%global rc_version 0 - -%global tarballname firefox -%global mozappdir %{_libdir}/%{name} -%global tarballdir %{tarballname}-%{version}esr - -# crash reporter work only on x86/x86_64 -%ifarch %{ix86} x86_64 -%global enable_mozilla_crashreporter 1 -%else -%global enable_mozilla_crashreporter 0 -%endif - -%if %{alpha_version} > 0 -%global pre_version a%{alpha_version} -%global tarballdir mozilla-beta -%endif -%if %{beta_version} > 0 -%global pre_version b%{beta_version} -%global tarballdir mozilla-beta -%endif -%if %{rc_version} > 0 -%global pre_version rc%{rc_version} -%global tarballdir mozilla-release -%endif - -%if %{defined pre_version} -%global gecko_verrel %{expand:%%{version}}-%{pre_version} -%global pre_tag .%{pre_version} -%else -%global gecko_verrel %{expand:%%{version}} -%endif - -Summary: XUL Runtime for Gecko Applications -Name: xulrunner -Version: 45.9.0 -Release: 10%{?pre_tag}%{?dist} -URL: http://developer.mozilla.org/En/XULRunner -License: MPLv1.1 or GPLv2+ or LGPLv2+ -Group: Applications/Internet -Source0: ftp://ftp.mozilla.org/pub/%{tarballname}/releases/%{version}%{?pre_version}/source/%{tarballname}-%{version}%{?pre_version}esr.source.tar.xz -Source10: %{name}-mozconfig -Source12: %{name}-redhat-default-prefs.js -Source21: %{name}.sh.in - -# build patches -Patch1: xulrunner-install-dir.patch -Patch3: mozilla-build-arm.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=814879#c3 -Patch18: xulrunner-24.0-jemalloc-ppc.patch -# workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found) -Patch19: xulrunner-24.0-s390-inlines.patch -Patch20: firefox-build-prbool.patch -Patch21: aarch64-fix-skia.patch -Patch24: rhbz-1219542-s390-build.patch -Patch25: firefox-gcc-6.0.patch -Patch26: build-stl-headers-fix-mbz1269171.patch - -# Fedora specific patches -Patch200: mozilla-193-pkgconfig.patch -# Unable to install addons from https pages -Patch204: rhbz-966424.patch - -# Upstream patches - -# --------------------------------------------------- - -%if %{?system_nss} -BuildRequires: nspr-devel >= %{nspr_version} -BuildRequires: nss-devel >= %{nss_version} -BuildRequires: nss-static >= %{nss_version} -%endif -%if %{?system_cairo} -BuildRequires: cairo-devel >= %{cairo_version} -%endif -BuildRequires: libpng-devel -BuildRequires: libjpeg-devel -BuildRequires: zip -BuildRequires: bzip2-devel -BuildRequires: zlib-devel -BuildRequires: libIDL-devel -BuildRequires: gtk2-devel -BuildRequires: krb5-devel -BuildRequires: pango-devel -BuildRequires: freetype-devel >= %{freetype_version} -BuildRequires: libXt-devel -BuildRequires: libXrender-devel -BuildRequires: hunspell-devel -BuildRequires: startup-notification-devel -BuildRequires: alsa-lib-devel -BuildRequires: libnotify-devel >= %{libnotify_version} -BuildRequires: mesa-libGL-devel -BuildRequires: libcurl-devel -BuildRequires: libvpx-devel >= %{libvpx_version} -BuildRequires: autoconf213 -BuildRequires: pulseaudio-libs-devel -BuildRequires: pkgconfig(gconf-2.0) -BuildRequires: yasm -BuildRequires: dbus-glib-devel - -Requires: mozilla-filesystem -%if %{?system_nss} -Requires: nspr >= %{nspr_build_version} -Requires: nss >= %{nss_build_version} -%endif -Provides: gecko-libs = %{gecko_verrel} -Provides: gecko-libs%{?_isa} = %{gecko_verrel} -Conflicts: firefox < 3.6 - -%if %{?system_sqlite} -BuildRequires: sqlite-devel >= %{sqlite_version} -Requires: sqlite >= %{sqlite_build_version} -%endif - -%if %{?system_ffi} -BuildRequires: libffi-devel -%endif - -%description -XULRunner is a Mozilla runtime package that can be used to bootstrap XUL+XPCOM -applications that are as rich as Firefox and Thunderbird. It provides mechanisms -for installing, upgrading, and uninstalling these applications. XULRunner also -provides libxul, a solution which allows the embedding of Mozilla technologies -in other projects and products. - -%package devel -Summary: Development files for Gecko -Group: Development/Libraries -Obsoletes: mozilla-devel < 1.9 -Obsoletes: firefox-devel < 2.1 -Obsoletes: xulrunner-devel-unstable -Provides: gecko-devel = %{gecko_verrel} -Provides: gecko-devel%{?_isa} = %{gecko_verrel} -Provides: gecko-devel-unstable = %{gecko_verrel} -Provides: gecko-devel-unstable%{?_isa} = %{gecko_verrel} - -Requires: xulrunner = %{version}-%{release} -%if %{?system_nss} -Requires: nspr-devel >= %{nspr_build_version} -Requires: nss-devel >= %{nss_build_version} -%endif -%if %{?system_cairo} -Requires: cairo-devel >= %{cairo_version} -%endif -Requires: libjpeg-devel -Requires: zip -Requires: bzip2-devel -Requires: zlib-devel -Requires: libIDL-devel -Requires: gtk2-devel -Requires: krb5-devel -Requires: pango-devel -Requires: freetype-devel >= %{freetype_version} -Requires: libXt-devel -Requires: libXrender-devel -Requires: hunspell-devel -%if %{?system_sqlite} -Requires: sqlite-devel -%endif -Requires: startup-notification-devel -Requires: alsa-lib-devel -Requires: libnotify-devel -Requires: mesa-libGL-devel -Requires: libvpx-devel >= %{libvpx_version} - -%description devel -This package contains the libraries amd header files that are needed -for writing XUL+XPCOM applications with Mozilla XULRunner and Gecko. - -%if %{enable_mozilla_crashreporter} -%global moz_debug_prefix %{_prefix}/lib/debug -%global moz_debug_dir %{moz_debug_prefix}%{mozappdir} -%global uname_m %(uname -m) -%global symbols_file_name %{name}-%{version}.en-US.%{_os}-%{uname_m}.crashreporter-symbols.zip -%global symbols_file_path %{moz_debug_dir}/%{symbols_file_name} -%global _find_debuginfo_opts -p %{symbols_file_path} -o debugcrashreporter.list -%global crashreporter_pkg_name mozilla-crashreporter-%{name}-debuginfo -%package -n %{crashreporter_pkg_name} -Summary: Debugging symbols used by Mozilla's crash reporter servers -Group: Development/Debug -%description -n %{crashreporter_pkg_name} -This package provides debug information for XULRunner, for use by -Mozilla's crash reporter servers. If you are trying to locally -debug %{name}, you want to install %{name}-debuginfo instead. -%files -n %{crashreporter_pkg_name} -f debugcrashreporter.list -%defattr(-,root,root) -%endif - -#--------------------------------------------------------------------- - -%prep -%setup -q -c -cd %{tarballdir} - -%patch1 -p1 -#%patch3 -p2 -b .arm -%patch18 -p2 -b .jemalloc-ppc -%patch19 -p2 -b .s390-inlines -%patch20 -p1 -b .prbool -%patch21 -p1 -b .aarch64-fix-skia -%ifarch s390 -%patch24 -p1 -b .rhbz-1219542-s390 -%endif -%patch25 -p1 -b .gcc6 -%patch26 -p1 -b .1269171 - -%patch200 -p2 -b .pk -%patch204 -p2 -b .966424 - -%{__rm} -f .mozconfig -%{__cp} %{SOURCE10} .mozconfig - -%if %{?system_nss} -echo "ac_add_options --with-system-nspr" >> .mozconfig -echo "ac_add_options --with-system-nss" >> .mozconfig -%else -echo "ac_add_options --without-system-nspr" >> .mozconfig -echo "ac_add_options --without-system-nss" >> .mozconfig -%endif - -%if %{?system_sqlite} -echo "ac_add_options --enable-system-sqlite" >> .mozconfig -%else -echo "ac_add_options --disable-system-sqlite" >> .mozconfig -%endif - -%if %{?system_cairo} -echo "ac_add_options --enable-system-cairo" >> .mozconfig -%else -echo "ac_add_options --disable-system-cairo" >> .mozconfig -%endif - -%if %{?system_ffi} -echo "ac_add_options --enable-system-ffi" >> .mozconfig -%endif - - -%if %{?debug_build} -echo "ac_add_options --enable-debug" >> .mozconfig -echo "ac_add_options --disable-optimize" >> .mozconfig -%else -echo "ac_add_options --disable-debug" >> .mozconfig -%ifarch ppc64le aarch64 -echo 'ac_add_options --enable-optimize="-g -O2"' >> .mozconfig -%else -echo "ac_add_options --enable-optimize" >> .mozconfig -%endif -%endif - -# s390(x) fails to start with jemalloc enabled -%ifarch s390 s390x -echo "ac_add_options --disable-jemalloc" >> .mozconfig -%endif - -%ifarch armv7hl -echo "ac_add_options --with-arch=armv7-a" >> .mozconfig -echo "ac_add_options --with-float-abi=hard" >> .mozconfig -echo "ac_add_options --with-fpu=vfpv3-d16" >> .mozconfig -echo "ac_add_options --disable-elf-hack" >> .mozconfig -%endif -%ifarch armv7hnl -echo "ac_add_options --with-arch=armv7-a" >> .mozconfig -echo "ac_add_options --with-float-abi=hard" >> .mozconfig -echo "ac_add_options --with-fpu=neon" >> .mozconfig -echo "ac_add_options --disable-elf-hack" >> .mozconfig -%endif -%ifarch armv5tel -echo "ac_add_options --with-arch=armv5te" >> .mozconfig -echo "ac_add_options --with-float-abi=soft" >> .mozconfig -echo "ac_add_options --disable-elf-hack" >> .mozconfig -echo "ac_add_options --disable-ion" >> .mozconfig -echo "ac_add_options --disable-yarr-jit" >> .mozconfig -%endif - -#Workarounf for mozbz#1245783 -%if 0%{?fedora} > 23 -echo "ac_add_options --disable-ion" >> .mozconfig -%endif - -%ifnarch %{ix86} x86_64 -echo "ac_add_options --disable-webrtc" >> .mozconfig -%endif - -#--------------------------------------------------------------------- - -%build -%if %{?system_sqlite} -# Do not proceed with build if the sqlite require would be broken: -# make sure the minimum requirement is non-empty, ... -sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 -# ... and that major number of the computed build-time version matches: -case "%{sqlite_build_version}" in - "$sqlite_version"*) ;; - *) exit 1 ;; -esac -%endif - -cd %{tarballdir} - -# Update the various config.guess to upstream release for aarch64 support -find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' - -# -fpermissive is needed to build with gcc 4.6+ which has become stricter -# -# Mozilla builds with -Wall with exception of a few warnings which show up -# everywhere in the code; so, don't override that. -# -# Disable C++ exceptions since Mozilla code is not exception-safe -# -MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS" | %{__sed} -e 's/-Wall//') -%if %{?debug_build} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') -%endif -%ifarch s390 -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') -# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which -# overrides the -g1 from line above and breaks building on s390 -# (OOM when linking, rhbz#1238225) -export MOZ_DEBUG_FLAGS=" " -%endif -%ifarch s390 %{arm} ppc aarch64 -MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" -%endif - -#rhbz#1037063 -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" - -export CFLAGS="$MOZ_OPT_FLAGS" -export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive" -export LDFLAGS=$MOZ_LINK_FLAGS - -export PREFIX='%{_prefix}' -export LIBDIR='%{_libdir}' - -MOZ_SMP_FLAGS=-j1 -# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, -# however builds tend to fail on other arches when building in parallel. -%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64 %{arm} -[ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" -[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 -[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 -[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 -%endif - -make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_SERVICES_SYNC="1" - -# create debuginfo for crash-stats.mozilla.com -%if %{enable_mozilla_crashreporter} -#cd %{moz_objdir} -make -C objdir buildsymbols -%endif - -#--------------------------------------------------------------------- - -%install -cd %{tarballdir} - -# set up our prefs before install, so it gets pulled in to omni.jar -%{__cp} -p %{SOURCE12} objdir/dist/bin/defaults/pref/all-redhat.js - -DESTDIR=$RPM_BUILD_ROOT make -C objdir install - -# Start script install -%{__rm} -rf $RPM_BUILD_ROOT%{_bindir}/%{name} -%{__cat} %{SOURCE21} | %{__sed} -e 's,XULRUNNER_VERSION,%{gecko_dir_ver},g' > \ - $RPM_BUILD_ROOT%{_bindir}/%{name} -%{__chmod} 755 $RPM_BUILD_ROOT%{_bindir}/%{name} - -%{__rm} -f $RPM_BUILD_ROOT%{mozappdir}/%{name}-config - -# install install_app.py -%{__cp} objdir/dist/bin/install_app.py $RPM_BUILD_ROOT%{mozappdir} - -# Copy pc files (for compatibility with 1.9.1) -%{__cp} $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul.pc \ - $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul-unstable.pc -%{__cp} $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul-embedding.pc \ - $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul-embedding-unstable.pc - -# Fix multilib devel conflicts... -function install_file() { -genheader=$* -mv ${genheader}.h ${genheader}%{__isa_bits}.h -cat > ${genheader}.h << EOF -/* This file exists to fix multilib conflicts */ -#if defined(__x86_64__) || defined(__ia64__) || defined(__s390x__) || defined(__powerpc64__) || (defined(__sparc__) && defined(__arch64__)) || defined(__aarch64__) -#include "${genheader}64.h" -#else -#include "${genheader}32.h" -#endif -EOF -} - -INTERNAL_APP_NAME=%{name}-%{gecko_dir_ver} - -pushd $RPM_BUILD_ROOT/%{_includedir}/${INTERNAL_APP_NAME} -install_file "mozilla-config" -install_file "js-config" -popd - -# Link libraries in sdk directory instead of copying them: -pushd $RPM_BUILD_ROOT%{_libdir}/%{name}-devel-%{gecko_dir_ver}/sdk/lib -for i in *.so; do - rm $i - ln -s %{mozappdir}/$i $i -done -popd - -# Move sdk/bin to xulrunner libdir -pushd $RPM_BUILD_ROOT%{_libdir}/%{name}-devel-%{gecko_dir_ver}/sdk/bin -mv ply *.py $RPM_BUILD_ROOT%{mozappdir} -popd -rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}-devel-%{gecko_dir_ver}/sdk/bin - -# Library path -LD_SO_CONF_D=%{_sysconfdir}/ld.so.conf.d -LD_CONF_FILE=xulrunner-%{__isa_bits}.conf - -%{__mkdir_p} ${RPM_BUILD_ROOT}${LD_SO_CONF_D} -%{__cat} > ${RPM_BUILD_ROOT}${LD_SO_CONF_D}/${LD_CONF_FILE} << EOF -%{mozappdir} -EOF - -# Copy over the LICENSE -%{__install} -p -c -m 644 LICENSE $RPM_BUILD_ROOT%{mozappdir} - -# Install xpcshell -%{__cp} objdir/dist/bin/xpcshell $RPM_BUILD_ROOT/%{mozappdir} - -# Install run-mozilla.sh -%{__cp} objdir/dist/bin/run-mozilla.sh $RPM_BUILD_ROOT/%{mozappdir} - -# Use the system hunspell dictionaries -%{__rm} -rf ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries -ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries - -# Remove tmp files -find $RPM_BUILD_ROOT/%{mozappdir} -name '.mkdir.done' -exec rm -rf {} \; - -# ghost files -%{__mkdir_p} $RPM_BUILD_ROOT%{mozappdir}/components -touch $RPM_BUILD_ROOT%{mozappdir}/components/compreg.dat -touch $RPM_BUILD_ROOT%{mozappdir}/components/xpti.dat - -# Add debuginfo for crash-stats.mozilla.com -%if %{enable_mozilla_crashreporter} -%{__mkdir_p} $RPM_BUILD_ROOT/%{moz_debug_dir} -%{__cp} objdir/dist/%{symbols_file_name} $RPM_BUILD_ROOT/%{moz_debug_dir} -%endif - -#--------------------------------------------------------------------- - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%preun -# is it a final removal? -if [ $1 -eq 0 ]; then - %{__rm} -rf %{mozappdir}/components -fi - -%files -%defattr(-,root,root,-) -%{_bindir}/xulrunner -%dir %{mozappdir} -%doc %attr(644, root, root) %{mozappdir}/LICENSE -%doc %attr(644, root, root) %{mozappdir}/README.xulrunner -%{mozappdir}/chrome -%{mozappdir}/dictionaries -%dir %{mozappdir}/components -%ghost %{mozappdir}/components/compreg.dat -%ghost %{mozappdir}/components/xpti.dat -%{mozappdir}/omni.ja -%{mozappdir}/*.so -%ifarch %{ix86} x86_64 -%{mozappdir}/rapl -%endif -%{mozappdir}/run-mozilla.sh -%{mozappdir}/xulrunner -%{mozappdir}/xulrunner-stub -%{mozappdir}/platform.ini -%{mozappdir}/dependentlibs.list -%{_sysconfdir}/ld.so.conf.d/xulrunner*.conf -%{mozappdir}/plugin-container -%{mozappdir}/gmp-clearkey -%if !%{?system_nss} -%{mozappdir}/*.chk -%endif -%if %{enable_mozilla_crashreporter} -%{mozappdir}/crashreporter -%{mozappdir}/crashreporter.ini -%{mozappdir}/Throbber-small.gif -%endif -%{mozappdir}/install_app.py -%ghost %{mozappdir}/install_app.pyc -%ghost %{mozappdir}/install_app.pyo -%{mozappdir}/gmp-fake*/* - -%files devel -%defattr(-,root,root,-) -%dir %{_libdir}/%{name}-devel-* -%{_datadir}/idl/%{name}*%{gecko_dir_ver} -%{_includedir}/%{name}*%{gecko_dir_ver} -%{_libdir}/%{name}-devel-*/* -%{_libdir}/pkgconfig/*.pc -%{mozappdir}/xpcshell -%{mozappdir}/*.py -%ghost %{mozappdir}/*.pyc -%ghost %{mozappdir}/*.pyo -%dir %{mozappdir}/ply -%{mozappdir}/ply/*.py -%ghost %{mozappdir}/ply/*.pyc -%ghost %{mozappdir}/ply/*.pyo - -#--------------------------------------------------------------------- - -%changelog -* Wed Jun 14 2017 Jan Horak - 45.9.0-1 -- Update to 45.9.0 (esr) sources - -* Sat Feb 11 2017 Fedora Release Engineering - 44.0-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Fri Jan 20 2017 Martin Stransky - 44.0-9 -- Added fix for new nss 3.28.1 (mozbz#1290037) - -* Thu Dec 15 2016 Martin Stransky - 44.0-8 -- Rebuilt - -* Fri Jul 22 2016 Tom Callaway - 44.0-7 -- rebuild for libvpx 1.6.0 - -* Wed Apr 27 2016 Peter Robinson 44.0-6 -- Added fix for rhbz#1315225 - ppc64le/aarch64 build fixes - -* Wed Mar 02 2016 Marcin Juszkiewicz - 44.0-5 -- Fix WebRTC on AArch64 again. - -* Mon Feb 15 2016 Martin Stransky - 44.0-4 -- gcc 6 build fix - -* Fri Feb 05 2016 Fedora Release Engineering - 44.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jan 26 2016 Martin Stransky - 44.0-1 -- Update to 44.0 - -* Tue Dec 1 2015 Tom Callaway - 42.0-2 -- rebuild for libvpx 1.5.0 - -* Tue Dec 1 2015 Martin Stransky - 42.0-1 -- Update to 42.0 - -* Wed Sep 2 2015 Martin Stransky - 40.0-2 -- Disable Skia to build on second arches - -* Tue Aug 25 2015 Petr Jasicek - 40.0-1 -- Update to 40.0 - -* Wed Jul 22 2015 Petr Jasicek - 39.0-3 -- Removed unneeded patch files - -* Tue Jul 14 2015 Marcin Juszkiewicz - 39.0-2 -- fixed build - - dropped firefox-nss-3.18.0.patch as we have 3.19.2 available - - refreshed mozilla-1005535.patch patch to apply - -* Fri Jul 10 2015 Martin Stransky - 39.0-1 -- Update to 39.0 - -* Fri Jun 19 2015 Fedora Release Engineering - 38.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu May 7 2015 Martin Stransky - 38.0-1 -- Update to 38.0 Build 2 - -* Mon Apr 27 2015 Jan Horak - 37.0.2-2 -- Added patch for big endian arches - -* Thu Apr 16 2015 Jan Horak - 37.0.2-1 -- Update to 37.0.2 - -* Wed Apr 15 2015 Martin Stransky - 37.0.1-1 -- Update to 37.0.1 - -* Mon Apr 6 2015 Tom Callaway - 33.0-3 -- rebuild for libvpx 1.4.0 - -* Wed Oct 22 2014 Dan Horák - 33.0-2 -- Fix filelist for secondary arches - -* Thu Oct 16 2014 Martin Stransky - 33.0-1 -- Update to 33.0 - -* Sat Sep 20 2014 Peter Robinson 32.0.2-1 -- Update to 32.0.2 -- sync fixes to the same as firefox - -* Tue Sep 9 2014 Martin Stransky - 32.0-2 -- move /sdk/bin to xulrunner libdir - -* Tue Aug 26 2014 Martin Stransky - 32.0-1 -- Update to 32.0 build 1 - -* Mon Aug 18 2014 Fedora Release Engineering - 31.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Fri Jul 25 2014 Martin Stransky - 31.0-1 -- Update to 31.0 build 2 - -* Fri Jul 25 2014 Yaakov Selkowitz - 30.0-3 -- Fix mozilla-config.h wrapper on aarch64 - -* Sun Jun 08 2014 Fedora Release Engineering - 30.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Thu Jun 5 2014 Martin Stransky - 30.0-1 -- Update to 30.0 build 1 -- Disabled shared js - -* Fri May 23 2014 Martin Stransky - 29.0-5 -- Added a build fix for ppc64 - rhbz#1100495 - -* Thu May 15 2014 Peter Robinson 29.0-4 -- Update aarch64 bits - -* Thu May 15 2014 Peter Robinson 29.0-3 -- Add upstream patches for aarch64 support - -* Mon Apr 28 2014 Martin Stransky - 29.0-2 -- An updated ppc64le patch (rhbz#1091054) - -* Mon Apr 28 2014 Martin Stransky - 29.0-1 -- Update to 29.0 - -* Tue Mar 18 2014 Martin Stransky - 28.0-1 -- Update to 28.0 -- Fixed arm patch - -* Mon Feb 3 2014 Martin Stransky - 27.0-1 -- Update to 27.0 - -* Fri Dec 13 2013 Martin Stransky - 26.0-2 -- rhbz#1037406 - xulrunner FTBFS if "-Werror=format-security" - flag is used - -* Mon Dec 9 2013 Martin Stransky - 26.0-1 -- Update to 26.0 Build 2 - -* Thu Nov 21 2013 Martin Stransky - 25.0-5 -- Fixed rhbz#1007603 - NSS and cert9 (sql): firefox crash on exit - with https-everywhere installed - -* Tue Nov 12 2013 Martin Stransky - 25.0-4 -- rhbz#1010916 - enabled pluseaudio backend - -* Fri Nov 8 2013 Martin Stransky - 25.0-3 -- Fixed rhbz#974718 - Segfault in FileBlockCache::Run - when playing a movie on ppc - -* Wed Oct 30 2013 Martin Stransky - 25.0-2 -- Update to 25.0 Build 3 - -* Wed Oct 23 2013 Martin Stransky - 25.0-1 -- Update to 25.0 Build 2 - -* Tue Oct 15 2013 Karsten Hopp 24.0-3 -- drop PPC-only rhbz-911314.patch, fixed upstream - -* Mon Sep 16 2013 Martin Stransky - 24.0.1-2 -- Arm build fix - -* Fri Sep 13 2013 Martin Stransky - 24.0.1-1 -- Update to 24.0 - -* Mon Sep 2 2013 Dan Horák - 23.0.1-4 -- Fix build on 64-bit big endian platforms (mozbz#618485) - -* Sat Aug 31 2013 Karsten Hopp 23.0.1-3 -- update rhbz-911314.patch (PPC* only) - -* Thu Aug 29 2013 Martin Stransky - 23.0.1-2 -- Enabled dtrace for debug builds - -* Mon Aug 19 2013 Jan Horak - 23.0.1-1 -- Update to 23.0.1 - -* Mon Aug 5 2013 Martin Stransky - 23.0-2 -- Update to latest upstream (23.0 Build 2) - -* Mon Aug 5 2013 Martin Stransky - 23.0-1 -- Update to latest upstream (23.0) - -* Mon Jul 29 2013 Jan Horak - 22.0-7 -- Use system libffi for Fedora 19+ -- Added fix for mozbz#860213 - -* Thu Jul 25 2013 Martin Stransky - 22.0-6 -- Removed already applied patches (rhbz#978123) - -* Wed Jul 24 2013 Peter Robinson 22.0-5 -- Enable web-rtc on ARM now it's fixed upstream (RHBZ 886976) - -* Mon Jul 1 2013 Jan Horak - 22.0-4 -- Added fix from mozbz#817533 - fix issues with proxy settings -- Fixed missing about:healthreport - -* Mon Jun 24 2013 Martin Stransky - 22.0-2 -- Rebuild - -* Fri Jun 21 2013 Martin Stransky - 22.0-1 -- Update to latest upstream (22.0) - -* Wed Jun 12 2013 Jan Horak - 21.0-8 -- Fixed rhbz#966424 - unable to install addons - -* Mon Jun 3 2013 Jan Horak - 21.0-7 -- Using upstream build flags for crashreporter - -* Wed May 29 2013 Martin Stransky - 21.0-6 -- Removed the i686/f19 gcc hack (rhbz#928353) - -* Tue May 21 2013 Martin Stransky - 21.0-5 -- Added ppc(64) patches (rhbz#963907) - -* Tue May 21 2013 Martin Stransky - 21.0-4 -- Added s390(x) patch - -* Mon May 13 2013 Martin Stransky - 21.0-3 -- New upstream tarball (build 4) - -* Mon May 13 2013 Martin Stransky - 21.0-2 -- Updated requested NSS/NSPR versions - -* Sun May 12 2013 Martin Stransky - 21.0-1 -- Update to latest upstream (21.0) - -* Fri Apr 5 2013 Martin Stransky - 20.0-4 -- Updated rhbz-911314.patch for xulrunner 20 - -* Wed Apr 3 2013 Martin Stransky - 20.0-3 -- A workaround for Bug 928353 - firefox i686 crashes - for a number of web pages - -* Tue Mar 19 2013 Martin Stransky - 20.0-1 -- Update to latest upstream (20.0) - -* Tue Mar 19 2013 Martin Stransky - 19.0.2-4 -- Added fix for rhbz#913284 - Firefox segfaults - in mozilla::gfx::AlphaBoxBlur::BoxBlur_C() on PPC64 - -* Tue Mar 19 2013 Martin Stransky - 19.0.2-3 -- Added fix for mozbz#826171/rhbz#922904 - strndup implementation - in memory/build/mozmemory_wrap.c is broken - -* Mon Mar 11 2013 Martin Stransky - 19.0.2-2 -- Update to 19.0.2 - -* Wed Feb 20 2013 Martin Stransky - 19.0-2 -- Added fix for rhbz#911314 (ppc only) - -* Mon Feb 18 2013 Martin Stransky - 19.0-1 -- Update to 19.0 -- Added fix for mozbz#239254 - -* Wed Feb 6 2013 Jan Horak - 18.0.2-1 -- Update to 18.0.2 - -* Fri Jan 25 2013 Jan Horak - 18.0.1-1 -- Update to 18.0.1 - -* Tue Jan 15 2013 Martin Stransky - 18.0-8 -- Added fix for NM regression (mozbz#791626) - -* Thu Jan 10 2013 Martin Stransky - 18.0-7 -- Fixed Makefile generator (rhbz#304121) - -* Wed Jan 9 2013 Martin Stransky - 18.0-6 -- Fixed missing libxpcom.so provides - -* Wed Jan 9 2013 Martin Stransky - 18.0-5 -- Added fix for langpacks - -* Wed Jan 9 2013 Martin Stransky - 18.0-4 -- Fixed source files -- Disabled WebRTC due to rhbz#304121 - -* Wed Jan 9 2013 Martin Stransky - 18.0-2 -- Disabled system sqlite on Fedora 18 - -* Mon Jan 7 2013 Martin Stransky - 18.0-1 -- Update to 18.0 - -* Thu Dec 13 2012 Peter Robinson 17.0.1-3 -- Disable webrtc on ARM as it currently tries to build SSE on ARM (fix FTBFS) -- Enable methodjit/tracejit on ARMv7 for more speed :) Fixes RHBZ 870548 - -* Fri Dec 7 2012 Jan Horak - 17.0.1-2 -- Fixed rhbz#879595 - -* Thu Nov 29 2012 Jan Horak - 17.0.1-1 -- Update to 17.0.1 - -* Tue Nov 27 2012 Jan Horak - 17.0-4 -- Rebuild agains older NSS - -* Mon Nov 19 2012 Martin Stransky - 17.0-3 -- Updated second arch patches - -* Mon Nov 19 2012 Dan Horák - 17.0-2 -- webrtc is available only on selected arches - -* Mon Nov 19 2012 Martin Stransky - 17.0-1 -- Update to 17.0 - -* Wed Nov 14 2012 Martin Stransky - 17.0-0.2b6 -- Update to 17.0 Beta 6 - -* Tue Nov 13 2012 Martin Stransky - 17.0-0.1b5 -- Update to 17.0 Beta 5 - -* Tue Nov 6 2012 Martin Stransky - 16.0.2-2 -- Added fix for rhbz#872752 - -* Wed Oct 31 2012 Martin Stransky - 16.0.2-1 -- Updated mozilla-746112.patch for second arches -- Removed unused one (rhbz#855919) - -* Fri Oct 26 2012 Jan Horak - 16.0.2-1 -- Update to 16.0.2 - -* Tue Oct 16 2012 Jan Horak - 16.0.1-2 -- Fixed required nss and nspr version - -* Thu Oct 11 2012 Martin Stransky - 16.0.1-1 -- Update to 16.0.1 -