firefox 3: remove #if 0 from TLS checking code, replace _pthread_self() with 255255
authorKoen Kooi <koen@openembedded.org>
Mon, 23 Jun 2008 09:23:00 +0000 (09:23 +0000)
committerKoen Kooi <koen@openembedded.org>
Mon, 23 Jun 2008 09:23:00 +0000 (09:23 +0000)
23 files changed:
packages/mozilla/firefox-2.0.0.14+3.0rc1/.mtn2git_empty [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/010_FPU_IS_ARM_FPA_xslt.diff [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug339782.additional.fix.diff [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug385583.nspr.jmp_buf.eabi.diff [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug405992.atomic.nspr.diff [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/jsautocfg-dontoverwrite.patch [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/linkage-problem.patch [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/mozconfig [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/random_to_urandom.diff [deleted file]
packages/mozilla/firefox-2.0.0.14+3.0rc1/security-cross.patch [deleted file]
packages/mozilla/firefox-3.0/.mtn2git_empty [new file with mode: 0644]
packages/mozilla/firefox-3.0/010_FPU_IS_ARM_FPA_xslt.diff [new file with mode: 0644]
packages/mozilla/firefox-3.0/Bug339782.additional.fix.diff [new file with mode: 0644]
packages/mozilla/firefox-3.0/Bug385583.nspr.jmp_buf.eabi.diff [new file with mode: 0644]
packages/mozilla/firefox-3.0/Bug405992.atomic.nspr.diff [new file with mode: 0644]
packages/mozilla/firefox-3.0/jemalloc-tls.patch [new file with mode: 0644]
packages/mozilla/firefox-3.0/jsautocfg-dontoverwrite.patch [new file with mode: 0644]
packages/mozilla/firefox-3.0/linkage-problem.patch [new file with mode: 0644]
packages/mozilla/firefox-3.0/mozconfig [new file with mode: 0644]
packages/mozilla/firefox-3.0/random_to_urandom.diff [new file with mode: 0644]
packages/mozilla/firefox-3.0/security-cross.patch [new file with mode: 0644]
packages/mozilla/firefox_2.0.0.14+3.0rc1.bb [deleted file]
packages/mozilla/firefox_3.0.bb [new file with mode: 0644]

diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/.mtn2git_empty b/packages/mozilla/firefox-2.0.0.14+3.0rc1/.mtn2git_empty
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/010_FPU_IS_ARM_FPA_xslt.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/010_FPU_IS_ARM_FPA_xslt.diff
deleted file mode 100644 (file)
index 854100c..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-# Bug 369722 – prdtoa.c jsnum.h txDouble.h not required IEEE_ARM define on Codesourcery EABI gcc3.4.4 compiler
-#
---- mozilla/content/xslt/public/txDouble.h.orig        2006-07-13 17:21:52.000000000 +0300
-+++ mozilla/content/xslt/public/txDouble.h     2007-10-25 15:01:25.000000000 +0300
-@@ -58,46 +58,48 @@ fp_except_t oldmask = fpsetmask(~allmask
- /**
-  * Stefan Hanske <sh990154@mail.uni-greifswald.de> reports:
-  *  ARM is a little endian architecture but 64 bit double words are stored
-  * differently: the 32 bit words are in little endian byte order, the two words
-  * are stored in big endian`s way.
-  */
- #if defined(__arm) || defined(__arm32__) || defined(__arm26__) || defined(__arm__)
--#define CPU_IS_ARM
-+#if !defined(__VFP_FP__)
-+#define FPU_IS_ARM_FPA
-+#endif
- #endif
- #if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
- /**
-  * This version of the macros is safe for the alias optimizations
-  * that gcc does, but uses gcc-specific extensions.
-  */
- typedef union txdpun {
-     PRFloat64 d;
-     struct {
--#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
-+#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
-         PRUint32 lo, hi;
- #else
-         PRUint32 hi, lo;
- #endif
-     } s;
- } txdpun;
- #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; }))
- #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; }))
- #else // __GNUC__
- /* We don't know of any non-gcc compilers that perform alias optimization,
-  * so this code should work.
-  */
--#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
-+#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
- #define TX_DOUBLE_HI32(x)        (((PRUint32 *)&(x))[1])
- #define TX_DOUBLE_LO32(x)        (((PRUint32 *)&(x))[0])
- #else
- #define TX_DOUBLE_HI32(x)        (((PRUint32 *)&(x))[0])
- #define TX_DOUBLE_LO32(x)        (((PRUint32 *)&(x))[1])
- #endif
- #endif // __GNUC__
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug339782.additional.fix.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug339782.additional.fix.diff
deleted file mode 100644 (file)
index 0848e73..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# XPTC_InvokeByIndex crashes
-# Bug 339782  [ARM] XPTC_InvokeByIndex crashes when cross-compiled under GCC 3.4.x with EABI (CodeSourcery)
-Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
-===================================================================
---- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
-+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
-@@ -51,22 +51,32 @@
- #ifdef __ARM_EABI__
- #define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
- #define VAR_STACK_SIZE_64 3
- #else
- #define DOUBLEWORD_ALIGN(p) (p)
- #define VAR_STACK_SIZE_64 2
- #endif
-+#ifdef __ARM_EABI__
-+#define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
-+#else
-+#define DOUBLEWORD_ALIGN(p) (p)
-+#endif
-+
- // Remember that these 'words' are 32bit DWORDS
- static PRUint32
- invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
- {
-     PRUint32 result = 0;
-+
-+    /* Note that we give a "worst case" estimate of how much stack _might_ be
-+     * needed, rather than the real count - this should be safe */
-+
-     for(PRUint32 i = 0; i < paramCount; i++, s++)
-     {
-         if(s->IsPtrData())
-         {
-             result++;
-             continue;
-         }
-         switch(s->type)
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug385583.nspr.jmp_buf.eabi.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug385583.nspr.jmp_buf.eabi.diff
deleted file mode 100644 (file)
index 486440c..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up mozilla/nsprpub/pr/include/md/_linux.h.orig mozilla/nsprpub/pr/include/md/_linux.h
---- mozilla/nsprpub/pr/include/md/_linux.h.orig        2007-11-28 14:16:03.000000000 -0500
-+++ mozilla/nsprpub/pr/include/md/_linux.h     2007-11-28 14:12:09.000000000 -0500
-@@ -346,8 +346,8 @@ extern void _MD_CleanupBeforeExit(void);
- #error "Linux/MIPS pre-glibc2 not supported yet"
- #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
--#elif defined(__arm__)
--/* ARM/Linux */
-+#elif defined(__arm__) && !defined(__ARM_EABI__)
-+/* ARM/Linux (old-ABI) */
- #if defined(__GLIBC__) && __GLIBC__ >= 2
- #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[20]
- #define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[19] = (val))
-@@ -358,6 +358,18 @@ extern void _MD_CleanupBeforeExit(void);
- #error "ARM/Linux pre-glibc2 not supported yet"
- #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
-+#elif defined(__arm__) && defined(__ARM_EABI__)
-+/* ARM/Linux (EABI) */
-+#if defined(__GLIBC__) && __GLIBC__ >= 2
-+#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[8]
-+#define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[7] = (val))
-+#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t))
-+#define _MD_GET_FP_PTR(_t) (&(_t)->md.context[0].__jmpbuf[7])
-+#define _MD_SP_TYPE __ptr_t
-+#else
-+#error "ARM/Linux pre-glibc2 not supported yet"
-+#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
-+
- #else
- #error "Unknown CPU architecture"
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug405992.atomic.nspr.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug405992.atomic.nspr.diff
deleted file mode 100644 (file)
index f54f916..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#    Add atomic operations for ARM.
-diff --git a/nsprpub/pr/include/md/_linux.h b/nsprpub/pr/include/md/_linux.h
-index 5b794c5..cb8d58e 100644
---- a/nsprpub/pr/include/md/_linux.h
-+++ b/nsprpub/pr/include/md/_linux.h
-@@ -194,6 +194,42 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval);
- })
- #endif
-+#if defined(__arm__)
-+#define _PR_HAVE_ATOMIC_OPS
-+#define _MD_INIT_ATOMIC()
-+
-+typedef int (__kernel_cmpxchg_t)(int oldval, int newval, volatile int *ptr);
-+#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *)0xffff0fc0)
-+
-+#define _MD_ATOMIC_INCREMENT(ptr) _MD_ATOMIC_ADD(ptr, 1)
-+#define _MD_ATOMIC_DECREMENT(ptr) _MD_ATOMIC_ADD(ptr, -1)
-+#define _MD_ATOMIC_ADD(ptr, n)                  \
-+    ({                                          \
-+        PRInt32 ov, nv;                         \
-+        volatile PRInt32 *vp = (ptr);           \
-+                                                \
-+        do {                                    \
-+            ov = *vp;                           \
-+            nv = ov + (n);                      \
-+        }                                       \
-+        while (__kernel_cmpxchg(ov, nv, vp));   \
-+                                                \
-+        nv;                                     \
-+    })
-+#define _MD_ATOMIC_SET(ptr, nv)                 \
-+    ({                                          \
-+        PRInt32 ov;                             \
-+        volatile PRInt32 *vp = (ptr);           \
-+                                                \
-+        do {                                    \
-+            ov = *vp;                           \
-+        }                                       \
-+        while (__kernel_cmpxchg(ov, (nv), vp)); \
-+                                                \
-+        ov;                                     \
-+    })
-+#endif
-+
- #define USE_SETJMP
- #if defined(__GLIBC__) && __GLIBC__ >= 2
- #define _PR_POLL_AVAILABLE
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/jsautocfg-dontoverwrite.patch b/packages/mozilla/firefox-2.0.0.14+3.0rc1/jsautocfg-dontoverwrite.patch
deleted file mode 100644 (file)
index 39978cf..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- mozilla/js/src/Makefile.in.orig    2006-12-12 11:46:02.000000000 +0000
-+++ mozilla/js/src/Makefile.in 2006-12-12 11:46:27.000000000 +0000
-@@ -319,20 +319,8 @@
- jsopcode.h jsopcode.c: jsopcode.tbl
--ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
- jsautocfg.h:
-       touch $@
--else
--ifeq ($(OS_ARCH),WINCE)
--jsautocfg.h:
--      touch $@
--else
--jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
--      @rm -f $@ jsautocfg.tmp
--      ./jscpucfg > jsautocfg.tmp
--      mv jsautocfg.tmp $@
--endif
--endif
- # jscpucfg is a strange target
- # Needs to be built with the host compiler but needs to include
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/linkage-problem.patch b/packages/mozilla/firefox-2.0.0.14+3.0rc1/linkage-problem.patch
deleted file mode 100644 (file)
index 28bffd1..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- mozilla/layout/build/Makefile.in~  2007-11-24 00:38:14.000000000 -0200
-+++ mozilla/layout/build/Makefile.in   2007-11-24 00:38:14.000000000 -0200
-@@ -229,6 +229,11 @@
-                   $(NULL)
- endif
-+ifdef MOZ_ENABLE_XFT
-+EXTRA_DSO_LDOPTS += $(MOZ_XFT_LIBS) \
-+                  $(NULL)
-+endif
-+
- ifneq (,$(MOZ_ENABLE_CANVAS)$(MOZ_SVG_RENDERER_CAIRO))
- EXTRA_DSO_LDOPTS += $(MOZ_CAIRO_LIBS) \
-                   $(NULL)
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/mozconfig b/packages/mozilla/firefox-2.0.0.14+3.0rc1/mozconfig
deleted file mode 100644 (file)
index 6e85c5e..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-. $topsrcdir/browser/config/mozconfig
-
-# use GTK+-2 widget set with XFT font rendering
-#ac_add_options --enable-default-toolkit=gtk2
-ac_add_options --enable-xft
-ac_add_options --disable-freetype2
-
-# enable minimal profile support
-ac_add_options --disable-profilesharing
-ac_add_options --disable-profilelocking
-ac_add_options --enable-single-profile
-
-ac_add_options --with-system-zlib
-ac_add_options --with-system-jpeg
-#ac_add_options --with-system-png
-
-ac_add_options --disable-accessibility
-ac_add_options --disable-composer
-#ac_add_options --enable-plaintext-editor-only
-ac_add_options --disable-mailnews
-ac_add_options --disable-ldap  
-#ac_add_options --disable-postscript
-ac_add_options --disable-mathml
-ac_add_options --disable-jsd
-ac_add_options --disable-installer
-ac_add_options --disable-xprint
-ac_add_options --disable-necko-disk-cache
-
-# configure necko to allocate smaller network buffers
-ac_add_options --enable-necko-small-buffers
-
-# disable debug logging and tests
-#ac_add_options --disable-dtd-debug
-ac_add_options --disable-logging
-ac_add_options --enable-debug=-ggdb
-ac_add_options --disable-gtktest
-ac_add_options --disable-tests
-ac_add_options --disable-printing
-ac_add_options --disable-gnomevfs
-ac_add_options --disable-gnomeui
-
-# build crypto module (PSM + NSS)
-ac_add_options --enable-crypto
-
-# build minimal set of protocol handlers
-ac_add_options --enable-necko-protocols=http,file,res,jar,ftp,about,viewsource
-
-# build minimal set of image decoders
-ac_add_options --enable-image-decoders=png,gif,jpeg
-
-#ac_add_options --enable-reorder
-#ac_add_options --enable-elf-dynstr-gc
-
-# enable static build
-#ac_add_options --disable-shared
-#ac_add_options --enable-static
-ac_add_options --enable-optimize=-O1
-
-# Use cairo from system
-ac_add_options --enable-system-cairo
-
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/random_to_urandom.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/random_to_urandom.diff
deleted file mode 100644 (file)
index f969752..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# Component manager should not use /dev/random for generation ranodm numbers
-# It cause hangs on embedding platforms,which does not have enough devices for generation required entropy
-# Bug somewhere exists but it is very old
-Index: nsprpub/pr/src/md/unix/uxrng.c
-===================================================================
---- mozilla/nsprpub/pr/src/md/unix/uxrng.c.orig
-+++ mozilla/nsprpub/pr/src/md/unix/uxrng.c
-@@ -144,17 +144,17 @@
- #include <sys/stat.h>
- #include <fcntl.h>
- static int      fdDevRandom;
- static PRCallOnceType coOpenDevRandom;
- static PRStatus OpenDevRandom( void )
- {
--    fdDevRandom = open( "/dev/random", O_RDONLY );
-+    fdDevRandom = open( "/dev/urandom", O_RDONLY );
-     return((-1 == fdDevRandom)? PR_FAILURE : PR_SUCCESS );
- } /* end OpenDevRandom() */
- static size_t GetDevRandom( void *buf, size_t size )
- {
-     int bytesIn;
-     int rc;
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/security-cross.patch b/packages/mozilla/firefox-2.0.0.14+3.0rc1/security-cross.patch
deleted file mode 100644 (file)
index 56c8d04..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
---- mozilla/security/coreconf/Linux.mk.orig    2006-12-12 10:53:12.000000000 +0000
-+++ mozilla/security/coreconf/Linux.mk 2006-12-12 10:54:13.000000000 +0000
-@@ -52,88 +52,8 @@
- DEFAULT_COMPILER = gcc
--ifeq ($(OS_TEST),m68k)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = m68k
--else
--ifeq ($(OS_TEST),ppc64)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = ppc
--ifeq ($(USE_64),1)
--      ARCHFLAG        = -m64
--endif
--else
--ifeq ($(OS_TEST),ppc)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = ppc
--else
--ifeq ($(OS_TEST),alpha)
--        OS_REL_CFLAGS   = -D_ALPHA_ -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = alpha
--else
--ifeq ($(OS_TEST),ia64)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = ia64
--else
--ifeq ($(OS_TEST),x86_64)
--ifeq ($(USE_64),1)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = x86_64
--else
--      OS_REL_CFLAGS   = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
--      CPU_ARCH        = x86
--      ARCHFLAG        = -m32
--endif
--else
--ifeq ($(OS_TEST),sparc)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = sparc
--else
--ifeq ($(OS_TEST),sparc64)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = sparc
--else
--ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = arm
--else
--ifeq ($(OS_TEST),parisc)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = hppa
--else
--ifeq ($(OS_TEST),parisc64)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = hppa
--else
--ifeq ($(OS_TEST),s390)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = s390
--else
--ifeq ($(OS_TEST),s390x)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = s390x
--else
--ifeq ($(OS_TEST),mips)
--      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
--      CPU_ARCH        = mips
--else
--      OS_REL_CFLAGS   = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
--      CPU_ARCH        = x86
--endif
--endif
--endif
--endif
--endif
--endif
--endif
--endif
--endif
--endif
--endif
--endif
--endif
--endif
--
-+OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
-+CPU_ARCH =
- LIBC_TAG              = _glibc
diff --git a/packages/mozilla/firefox-3.0/.mtn2git_empty b/packages/mozilla/firefox-3.0/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/mozilla/firefox-3.0/010_FPU_IS_ARM_FPA_xslt.diff b/packages/mozilla/firefox-3.0/010_FPU_IS_ARM_FPA_xslt.diff
new file mode 100644 (file)
index 0000000..854100c
--- /dev/null
@@ -0,0 +1,56 @@
+# Bug 369722 – prdtoa.c jsnum.h txDouble.h not required IEEE_ARM define on Codesourcery EABI gcc3.4.4 compiler
+#
+--- mozilla/content/xslt/public/txDouble.h.orig        2006-07-13 17:21:52.000000000 +0300
++++ mozilla/content/xslt/public/txDouble.h     2007-10-25 15:01:25.000000000 +0300
+@@ -58,46 +58,48 @@ fp_except_t oldmask = fpsetmask(~allmask
+ /**
+  * Stefan Hanske <sh990154@mail.uni-greifswald.de> reports:
+  *  ARM is a little endian architecture but 64 bit double words are stored
+  * differently: the 32 bit words are in little endian byte order, the two words
+  * are stored in big endian`s way.
+  */
+ #if defined(__arm) || defined(__arm32__) || defined(__arm26__) || defined(__arm__)
+-#define CPU_IS_ARM
++#if !defined(__VFP_FP__)
++#define FPU_IS_ARM_FPA
++#endif
+ #endif
+ #if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
+ /**
+  * This version of the macros is safe for the alias optimizations
+  * that gcc does, but uses gcc-specific extensions.
+  */
+ typedef union txdpun {
+     PRFloat64 d;
+     struct {
+-#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
++#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
+         PRUint32 lo, hi;
+ #else
+         PRUint32 hi, lo;
+ #endif
+     } s;
+ } txdpun;
+ #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; }))
+ #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; }))
+ #else // __GNUC__
+ /* We don't know of any non-gcc compilers that perform alias optimization,
+  * so this code should work.
+  */
+-#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
++#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
+ #define TX_DOUBLE_HI32(x)        (((PRUint32 *)&(x))[1])
+ #define TX_DOUBLE_LO32(x)        (((PRUint32 *)&(x))[0])
+ #else
+ #define TX_DOUBLE_HI32(x)        (((PRUint32 *)&(x))[0])
+ #define TX_DOUBLE_LO32(x)        (((PRUint32 *)&(x))[1])
+ #endif
+ #endif // __GNUC__
diff --git a/packages/mozilla/firefox-3.0/Bug339782.additional.fix.diff b/packages/mozilla/firefox-3.0/Bug339782.additional.fix.diff
new file mode 100644 (file)
index 0000000..0848e73
--- /dev/null
@@ -0,0 +1,39 @@
+# XPTC_InvokeByIndex crashes
+# Bug 339782  [ARM] XPTC_InvokeByIndex crashes when cross-compiled under GCC 3.4.x with EABI (CodeSourcery)
+Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+===================================================================
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+@@ -51,22 +51,32 @@
+ #ifdef __ARM_EABI__
+ #define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
+ #define VAR_STACK_SIZE_64 3
+ #else
+ #define DOUBLEWORD_ALIGN(p) (p)
+ #define VAR_STACK_SIZE_64 2
+ #endif
++#ifdef __ARM_EABI__
++#define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
++#else
++#define DOUBLEWORD_ALIGN(p) (p)
++#endif
++
+ // Remember that these 'words' are 32bit DWORDS
+ static PRUint32
+ invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
+ {
+     PRUint32 result = 0;
++
++    /* Note that we give a "worst case" estimate of how much stack _might_ be
++     * needed, rather than the real count - this should be safe */
++
+     for(PRUint32 i = 0; i < paramCount; i++, s++)
+     {
+         if(s->IsPtrData())
+         {
+             result++;
+             continue;
+         }
+         switch(s->type)
diff --git a/packages/mozilla/firefox-3.0/Bug385583.nspr.jmp_buf.eabi.diff b/packages/mozilla/firefox-3.0/Bug385583.nspr.jmp_buf.eabi.diff
new file mode 100644 (file)
index 0000000..486440c
--- /dev/null
@@ -0,0 +1,33 @@
+diff -up mozilla/nsprpub/pr/include/md/_linux.h.orig mozilla/nsprpub/pr/include/md/_linux.h
+--- mozilla/nsprpub/pr/include/md/_linux.h.orig        2007-11-28 14:16:03.000000000 -0500
++++ mozilla/nsprpub/pr/include/md/_linux.h     2007-11-28 14:12:09.000000000 -0500
+@@ -346,8 +346,8 @@ extern void _MD_CleanupBeforeExit(void);
+ #error "Linux/MIPS pre-glibc2 not supported yet"
+ #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
+-#elif defined(__arm__)
+-/* ARM/Linux */
++#elif defined(__arm__) && !defined(__ARM_EABI__)
++/* ARM/Linux (old-ABI) */
+ #if defined(__GLIBC__) && __GLIBC__ >= 2
+ #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[20]
+ #define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[19] = (val))
+@@ -358,6 +358,18 @@ extern void _MD_CleanupBeforeExit(void);
+ #error "ARM/Linux pre-glibc2 not supported yet"
+ #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
++#elif defined(__arm__) && defined(__ARM_EABI__)
++/* ARM/Linux (EABI) */
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[8]
++#define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[7] = (val))
++#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t))
++#define _MD_GET_FP_PTR(_t) (&(_t)->md.context[0].__jmpbuf[7])
++#define _MD_SP_TYPE __ptr_t
++#else
++#error "ARM/Linux pre-glibc2 not supported yet"
++#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
++
+ #else
+ #error "Unknown CPU architecture"
diff --git a/packages/mozilla/firefox-3.0/Bug405992.atomic.nspr.diff b/packages/mozilla/firefox-3.0/Bug405992.atomic.nspr.diff
new file mode 100644 (file)
index 0000000..f54f916
--- /dev/null
@@ -0,0 +1,48 @@
+#    Add atomic operations for ARM.
+diff --git a/nsprpub/pr/include/md/_linux.h b/nsprpub/pr/include/md/_linux.h
+index 5b794c5..cb8d58e 100644
+--- a/nsprpub/pr/include/md/_linux.h
++++ b/nsprpub/pr/include/md/_linux.h
+@@ -194,6 +194,42 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval);
+ })
+ #endif
++#if defined(__arm__)
++#define _PR_HAVE_ATOMIC_OPS
++#define _MD_INIT_ATOMIC()
++
++typedef int (__kernel_cmpxchg_t)(int oldval, int newval, volatile int *ptr);
++#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *)0xffff0fc0)
++
++#define _MD_ATOMIC_INCREMENT(ptr) _MD_ATOMIC_ADD(ptr, 1)
++#define _MD_ATOMIC_DECREMENT(ptr) _MD_ATOMIC_ADD(ptr, -1)
++#define _MD_ATOMIC_ADD(ptr, n)                  \
++    ({                                          \
++        PRInt32 ov, nv;                         \
++        volatile PRInt32 *vp = (ptr);           \
++                                                \
++        do {                                    \
++            ov = *vp;                           \
++            nv = ov + (n);                      \
++        }                                       \
++        while (__kernel_cmpxchg(ov, nv, vp));   \
++                                                \
++        nv;                                     \
++    })
++#define _MD_ATOMIC_SET(ptr, nv)                 \
++    ({                                          \
++        PRInt32 ov;                             \
++        volatile PRInt32 *vp = (ptr);           \
++                                                \
++        do {                                    \
++            ov = *vp;                           \
++        }                                       \
++        while (__kernel_cmpxchg(ov, (nv), vp)); \
++                                                \
++        ov;                                     \
++    })
++#endif
++
+ #define USE_SETJMP
+ #if defined(__GLIBC__) && __GLIBC__ >= 2
+ #define _PR_POLL_AVAILABLE
diff --git a/packages/mozilla/firefox-3.0/jemalloc-tls.patch b/packages/mozilla/firefox-3.0/jemalloc-tls.patch
new file mode 100644 (file)
index 0000000..d1d7409
--- /dev/null
@@ -0,0 +1,28 @@
+--- /tmp/jemalloc.c    2008-06-23 10:57:36.000000000 +0200
++++ mozilla/memory/jemalloc/jemalloc.c 2008-06-23 11:20:13.000000000 +0200
+@@ -386,7 +386,7 @@
+ #else
+ #  define NO_TLS
+ #endif
+-#if 0
++
+ #ifdef __i386__
+ #  define QUANTUM_2POW_MIN    4
+ #  define SIZEOF_PTR_2POW     2
+@@ -420,7 +420,6 @@
+ #  define QUANTUM_2POW_MIN    4
+ #  define SIZEOF_PTR_2POW     2
+ #endif
+-#endif
+ #define       SIZEOF_PTR              (1U << SIZEOF_PTR_2POW)
+@@ -2582,7 +2581,7 @@
+                * knowledge of how _pthread_self() calculates values, we can't
+                * easily do much better than this.
+                */
+-              ind = (unsigned long) _pthread_self() % narenas;
++              ind = 255255 % narenas;
+               /*
+                * Optimistially assume that arenas[ind] has been initialized.
diff --git a/packages/mozilla/firefox-3.0/jsautocfg-dontoverwrite.patch b/packages/mozilla/firefox-3.0/jsautocfg-dontoverwrite.patch
new file mode 100644 (file)
index 0000000..39978cf
--- /dev/null
@@ -0,0 +1,23 @@
+--- mozilla/js/src/Makefile.in.orig    2006-12-12 11:46:02.000000000 +0000
++++ mozilla/js/src/Makefile.in 2006-12-12 11:46:27.000000000 +0000
+@@ -319,20 +319,8 @@
+ jsopcode.h jsopcode.c: jsopcode.tbl
+-ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
+ jsautocfg.h:
+       touch $@
+-else
+-ifeq ($(OS_ARCH),WINCE)
+-jsautocfg.h:
+-      touch $@
+-else
+-jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
+-      @rm -f $@ jsautocfg.tmp
+-      ./jscpucfg > jsautocfg.tmp
+-      mv jsautocfg.tmp $@
+-endif
+-endif
+ # jscpucfg is a strange target
+ # Needs to be built with the host compiler but needs to include
diff --git a/packages/mozilla/firefox-3.0/linkage-problem.patch b/packages/mozilla/firefox-3.0/linkage-problem.patch
new file mode 100644 (file)
index 0000000..28bffd1
--- /dev/null
@@ -0,0 +1,14 @@
+--- mozilla/layout/build/Makefile.in~  2007-11-24 00:38:14.000000000 -0200
++++ mozilla/layout/build/Makefile.in   2007-11-24 00:38:14.000000000 -0200
+@@ -229,6 +229,11 @@
+                   $(NULL)
+ endif
++ifdef MOZ_ENABLE_XFT
++EXTRA_DSO_LDOPTS += $(MOZ_XFT_LIBS) \
++                  $(NULL)
++endif
++
+ ifneq (,$(MOZ_ENABLE_CANVAS)$(MOZ_SVG_RENDERER_CAIRO))
+ EXTRA_DSO_LDOPTS += $(MOZ_CAIRO_LIBS) \
+                   $(NULL)
diff --git a/packages/mozilla/firefox-3.0/mozconfig b/packages/mozilla/firefox-3.0/mozconfig
new file mode 100644 (file)
index 0000000..6e85c5e
--- /dev/null
@@ -0,0 +1,61 @@
+. $topsrcdir/browser/config/mozconfig
+
+# use GTK+-2 widget set with XFT font rendering
+#ac_add_options --enable-default-toolkit=gtk2
+ac_add_options --enable-xft
+ac_add_options --disable-freetype2
+
+# enable minimal profile support
+ac_add_options --disable-profilesharing
+ac_add_options --disable-profilelocking
+ac_add_options --enable-single-profile
+
+ac_add_options --with-system-zlib
+ac_add_options --with-system-jpeg
+#ac_add_options --with-system-png
+
+ac_add_options --disable-accessibility
+ac_add_options --disable-composer
+#ac_add_options --enable-plaintext-editor-only
+ac_add_options --disable-mailnews
+ac_add_options --disable-ldap  
+#ac_add_options --disable-postscript
+ac_add_options --disable-mathml
+ac_add_options --disable-jsd
+ac_add_options --disable-installer
+ac_add_options --disable-xprint
+ac_add_options --disable-necko-disk-cache
+
+# configure necko to allocate smaller network buffers
+ac_add_options --enable-necko-small-buffers
+
+# disable debug logging and tests
+#ac_add_options --disable-dtd-debug
+ac_add_options --disable-logging
+ac_add_options --enable-debug=-ggdb
+ac_add_options --disable-gtktest
+ac_add_options --disable-tests
+ac_add_options --disable-printing
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-gnomeui
+
+# build crypto module (PSM + NSS)
+ac_add_options --enable-crypto
+
+# build minimal set of protocol handlers
+ac_add_options --enable-necko-protocols=http,file,res,jar,ftp,about,viewsource
+
+# build minimal set of image decoders
+ac_add_options --enable-image-decoders=png,gif,jpeg
+
+#ac_add_options --enable-reorder
+#ac_add_options --enable-elf-dynstr-gc
+
+# enable static build
+#ac_add_options --disable-shared
+#ac_add_options --enable-static
+ac_add_options --enable-optimize=-O1
+
+# Use cairo from system
+ac_add_options --enable-system-cairo
+
diff --git a/packages/mozilla/firefox-3.0/random_to_urandom.diff b/packages/mozilla/firefox-3.0/random_to_urandom.diff
new file mode 100644 (file)
index 0000000..f969752
--- /dev/null
@@ -0,0 +1,26 @@
+# Component manager should not use /dev/random for generation ranodm numbers
+# It cause hangs on embedding platforms,which does not have enough devices for generation required entropy
+# Bug somewhere exists but it is very old
+Index: nsprpub/pr/src/md/unix/uxrng.c
+===================================================================
+--- mozilla/nsprpub/pr/src/md/unix/uxrng.c.orig
++++ mozilla/nsprpub/pr/src/md/unix/uxrng.c
+@@ -144,17 +144,17 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ static int      fdDevRandom;
+ static PRCallOnceType coOpenDevRandom;
+ static PRStatus OpenDevRandom( void )
+ {
+-    fdDevRandom = open( "/dev/random", O_RDONLY );
++    fdDevRandom = open( "/dev/urandom", O_RDONLY );
+     return((-1 == fdDevRandom)? PR_FAILURE : PR_SUCCESS );
+ } /* end OpenDevRandom() */
+ static size_t GetDevRandom( void *buf, size_t size )
+ {
+     int bytesIn;
+     int rc;
diff --git a/packages/mozilla/firefox-3.0/security-cross.patch b/packages/mozilla/firefox-3.0/security-cross.patch
new file mode 100644 (file)
index 0000000..56c8d04
--- /dev/null
@@ -0,0 +1,93 @@
+--- mozilla/security/coreconf/Linux.mk.orig    2006-12-12 10:53:12.000000000 +0000
++++ mozilla/security/coreconf/Linux.mk 2006-12-12 10:54:13.000000000 +0000
+@@ -52,88 +52,8 @@
+ DEFAULT_COMPILER = gcc
+-ifeq ($(OS_TEST),m68k)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = m68k
+-else
+-ifeq ($(OS_TEST),ppc64)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = ppc
+-ifeq ($(USE_64),1)
+-      ARCHFLAG        = -m64
+-endif
+-else
+-ifeq ($(OS_TEST),ppc)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = ppc
+-else
+-ifeq ($(OS_TEST),alpha)
+-        OS_REL_CFLAGS   = -D_ALPHA_ -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = alpha
+-else
+-ifeq ($(OS_TEST),ia64)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = ia64
+-else
+-ifeq ($(OS_TEST),x86_64)
+-ifeq ($(USE_64),1)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = x86_64
+-else
+-      OS_REL_CFLAGS   = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+-      CPU_ARCH        = x86
+-      ARCHFLAG        = -m32
+-endif
+-else
+-ifeq ($(OS_TEST),sparc)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = sparc
+-else
+-ifeq ($(OS_TEST),sparc64)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = sparc
+-else
+-ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = arm
+-else
+-ifeq ($(OS_TEST),parisc)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = hppa
+-else
+-ifeq ($(OS_TEST),parisc64)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = hppa
+-else
+-ifeq ($(OS_TEST),s390)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = s390
+-else
+-ifeq ($(OS_TEST),s390x)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = s390x
+-else
+-ifeq ($(OS_TEST),mips)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = mips
+-else
+-      OS_REL_CFLAGS   = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+-      CPU_ARCH        = x86
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-
++OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
++CPU_ARCH =
+ LIBC_TAG              = _glibc
diff --git a/packages/mozilla/firefox_2.0.0.14+3.0rc1.bb b/packages/mozilla/firefox_2.0.0.14+3.0rc1.bb
deleted file mode 100644 (file)
index 431a069..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-DEPENDS += "cairo"
-PR = "r3"
-
-SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.0rc1/source/firefox-3.0rc1-source.tar.bz2 \
-       file://jsautocfg.h \
-       file://security-cross.patch;patch=1 \
-       file://jsautocfg-dontoverwrite.patch;patch=1 \
-       file://Bug339782.additional.fix.diff;patch=1 \
-       file://Bug385583.nspr.jmp_buf.eabi.diff;patch=1 \
-       file://Bug405992.atomic.nspr.diff;patch=1 \
-       file://random_to_urandom.diff;patch=1 \
-"
-
-S = "${WORKDIR}/mozilla"
-
-#DEFAULT_PREFERENCE = "-1"
-
-inherit mozilla
-require firefox.inc
-
-do_compile_prepend() {
-       cp ${WORKDIR}/jsautocfg.h ${S}/js/src/
-       sed -i "s|CPU_ARCH =|CPU_ARCH = ${TARGET_ARCH}|" security/coreconf/Linux.mk
-}
-
-do_stage() {
-        install -d ${STAGING_INCDIR}/firefox-${PV}
-        cd dist/sdk/include
-               rm -rf obsolete
-        headers=`find . -name "*.h"`
-        for f in $headers
-        do
-                install -D -m 0644 $f ${STAGING_INCDIR}/firefox-${PV}/
-        done
-        # removes 2 lines that call absent headers
-        sed -e '178,179d' ${STAGING_INCDIR}/firefox-${PV}/nsIServiceManager.h
-}
diff --git a/packages/mozilla/firefox_3.0.bb b/packages/mozilla/firefox_3.0.bb
new file mode 100644 (file)
index 0000000..5e693a1
--- /dev/null
@@ -0,0 +1,38 @@
+DEPENDS += "cairo"
+PR = "r0"
+
+SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.0/source/firefox-${PV}-source.tar.bz2 \
+       file://jsautocfg.h \
+       file://security-cross.patch;patch=1 \
+       file://jsautocfg-dontoverwrite.patch;patch=1 \
+       file://Bug339782.additional.fix.diff;patch=1 \
+       file://Bug385583.nspr.jmp_buf.eabi.diff;patch=1 \
+       file://Bug405992.atomic.nspr.diff;patch=1 \
+       file://random_to_urandom.diff;patch=1 \
+       file://jemalloc-tls.patch;patch=1 \
+"
+
+S = "${WORKDIR}/mozilla"
+
+#DEFAULT_PREFERENCE = "-1"
+
+inherit mozilla
+require firefox.inc
+
+do_compile_prepend() {
+       cp ${WORKDIR}/jsautocfg.h ${S}/js/src/
+       sed -i "s|CPU_ARCH =|CPU_ARCH = ${TARGET_ARCH}|" security/coreconf/Linux.mk
+}
+
+do_stage() {
+        install -d ${STAGING_INCDIR}/firefox-${PV}
+        cd dist/sdk/include
+               rm -rf obsolete
+        headers=`find . -name "*.h"`
+        for f in $headers
+        do
+                install -D -m 0644 $f ${STAGING_INCDIR}/firefox-${PV}/
+        done
+        # removes 2 lines that call absent headers
+        sed -e '178,179d' ${STAGING_INCDIR}/firefox-${PV}/nsIServiceManager.h
+}