diff options
author | Khem Raj <raj.khem@gmail.com> | 2011-03-22 15:23:21 -0700 |
---|---|---|
committer | Steffen Sledz <sledz@dresearch-fe.de> | 2011-04-29 14:08:26 +0200 |
commit | b2670e89bb76d20275501b3907e2b0aa880c29a1 (patch) | |
tree | 7b460435bc738e02882a978d83521bca104b6658 /recipes | |
parent | dba814e911ad24ad0107131ab3bf6c390b26bf67 (diff) | |
download | openembedded-b2670e89bb76d20275501b3907e2b0aa880c29a1.tar.gz |
fennec: Make it build on ARM eglibc/uclibc
This patchset enables fennec to build again
Upgrades to latest release tag
Bunch of patches to fix uclibc build
Disable few options notably --disable-elf-hack
Add -L<sysroot>/usr/lib to LDFLAGS otherwise
make tried to find the libs in /usr/lib
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Diffstat (limited to 'recipes')
-rw-r--r-- | recipes/mozilla/fennec/arm/mozconfig | 6 | ||||
-rw-r--r-- | recipes/mozilla/fennec/cross-config.patch | 29 | ||||
-rw-r--r-- | recipes/mozilla/fennec/fennec-uclibc.patch | 84 | ||||
-rw-r--r-- | recipes/mozilla/fennec/jsautocfg-dontoverwrite.patch | 16 | ||||
-rw-r--r-- | recipes/mozilla/fennec/libffi-arm-softfloat.patch | 290 | ||||
-rw-r--r-- | recipes/mozilla/fennec/mozconfig | 6 | ||||
-rw-r--r-- | recipes/mozilla/fennec/prune-lintl.patch | 33 | ||||
-rw-r--r-- | recipes/mozilla/fennec/uclibc-isfinite.patch | 70 | ||||
-rw-r--r-- | recipes/mozilla/fennec_hg.bb | 34 |
9 files changed, 550 insertions, 18 deletions
diff --git a/recipes/mozilla/fennec/arm/mozconfig b/recipes/mozilla/fennec/arm/mozconfig index 926fa86041..a204891d4f 100644 --- a/recipes/mozilla/fennec/arm/mozconfig +++ b/recipes/mozilla/fennec/arm/mozconfig @@ -7,6 +7,12 @@ ac_add_options --disable-javaxpcom ac_add_options --enable-system-cairo ac_add_options --with-system-zlib ac_add_options --with-system-jpeg +ac_add_options --disable-necko-wifi +ac_add_options --disable-maintainer-mode +ac_add_options --disable-dependency-tracking +ac_add_options --disable-silent-rules +ac_add_options --disable-elf-dynstr-gc +ac_add_options --disable-elf-hack ac_add_app_options xulrunner --with-arm-kuser ac_add_app_options xulrunner --enable-application=xulrunner diff --git a/recipes/mozilla/fennec/cross-config.patch b/recipes/mozilla/fennec/cross-config.patch new file mode 100644 index 0000000000..7eaba89c45 --- /dev/null +++ b/recipes/mozilla/fennec/cross-config.patch @@ -0,0 +1,29 @@ +We need to override setting variables so we check if the vars are already +set then we do not reset them here + +-Khem + +Index: mozilla-central/build/autoconf/pkg.m4 +=================================================================== +--- mozilla-central.orig/build/autoconf/pkg.m4 ++++ mozilla-central/build/autoconf/pkg.m4 +@@ -23,12 +23,16 @@ AC_DEFUN([PKG_CHECK_MODULES], + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) +- $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` ++ if test -z "$$1_CFLAGS"; then ++ $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` ++ fi + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) +- ## Remove evil flags like -Wl,--export-dynamic +- $1_LIBS="`$PKG_CONFIG --libs \"$2\" |sed s/-Wl,--export-dynamic//g`" ++ if test -z "$$1_LIBS"; then ++ ## Remove evil flags like -Wl,--export-dynamic ++ $1_LIBS="`$PKG_CONFIG --libs \"$2\" |sed s/-Wl,--export-dynamic//g`" ++ fi + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" diff --git a/recipes/mozilla/fennec/fennec-uclibc.patch b/recipes/mozilla/fennec/fennec-uclibc.patch new file mode 100644 index 0000000000..344aad3197 --- /dev/null +++ b/recipes/mozilla/fennec/fennec-uclibc.patch @@ -0,0 +1,84 @@ +uClibc does not have backtrace support and RTLD_NOLOAD support +So we disable them for uClibc + +-Khem + +Index: mozilla-central/memory/mozalloc/mozalloc.cpp +=================================================================== +--- mozilla-central.orig/memory/mozalloc/mozalloc.cpp ++++ mozilla-central/memory/mozalloc/mozalloc.cpp +@@ -236,7 +236,7 @@ moz_malloc_usable_size(void *ptr) + if (!ptr) + return 0; + +-#if defined(MOZ_MEMORY) ++#if defined(MOZ_MEMORY) && !defined(__UCLIBC__) + return malloc_usable_size(ptr); + #elif defined(XP_MACOSX) + return malloc_size(ptr); +Index: mozilla-central/xpcom/threads/nsThread.cpp +=================================================================== +--- mozilla-central.orig/xpcom/threads/nsThread.cpp ++++ mozilla-central/xpcom/threads/nsThread.cpp +@@ -52,9 +52,11 @@ + + #if defined(XP_UNIX) && !defined(ANDROID) && !defined(DEBUG) && HAVE_UALARM \ + && defined(_GNU_SOURCE) +-# define MOZ_CANARY + # include <unistd.h> ++#if !defined(__UCLIBC__) ++# define MOZ_CANARY + # include <execinfo.h> ++#endif + # include <signal.h> + # include <fcntl.h> + # include "nsXULAppAPI.h" +Index: mozilla-central/ipc/chromium/src/base/debug_util_posix.cc +=================================================================== +--- mozilla-central.orig/ipc/chromium/src/base/debug_util_posix.cc ++++ mozilla-central/ipc/chromium/src/base/debug_util_posix.cc +@@ -11,7 +11,7 @@ + #include <sys/stat.h> + #include <sys/types.h> + #include <unistd.h> +-#ifndef ANDROID ++#if !defined ANDROID && !defined __UCLIBC__ + #include <execinfo.h> + #include <sys/sysctl.h> + #endif +@@ -119,7 +119,7 @@ StackTrace::StackTrace() { + const int kMaxCallers = 256; + + void* callers[kMaxCallers]; +-#ifndef ANDROID ++#if !defined ANDROID && !defined __UCLIBC__ + int count = backtrace(callers, kMaxCallers); + #else + int count = 0; +@@ -138,7 +138,7 @@ StackTrace::StackTrace() { + + void StackTrace::PrintBacktrace() { + fflush(stderr); +-#ifndef ANDROID ++#if !defined ANDROID && !defined __UCLIBC__ + backtrace_symbols_fd(&trace_[0], trace_.size(), STDERR_FILENO); + #endif + } +Index: mozilla-central/security/nss/lib/freebl/stubs.c +=================================================================== +--- mozilla-central.orig/security/nss/lib/freebl/stubs.c ++++ mozilla-central/security/nss/lib/freebl/stubs.c +@@ -538,8 +538,13 @@ freebl_InitNSSUtil(void *lib) + /* + * fetch the library if it's loaded. For NSS it should already be loaded + */ ++#ifdef __UCLIBC__ ++#define freebl_getLibrary(libName) \ ++ dlopen (libName, RTLD_LAZY) ++#else + #define freebl_getLibrary(libName) \ + dlopen (libName, RTLD_LAZY|RTLD_NOLOAD) ++#endif + + #define freebl_releaseLibrary(lib) \ + if (lib) dlclose(lib) diff --git a/recipes/mozilla/fennec/jsautocfg-dontoverwrite.patch b/recipes/mozilla/fennec/jsautocfg-dontoverwrite.patch index b3188de32f..c2bc964dd1 100644 --- a/recipes/mozilla/fennec/jsautocfg-dontoverwrite.patch +++ b/recipes/mozilla/fennec/jsautocfg-dontoverwrite.patch @@ -1,17 +1,19 @@ ---- /tmp/Makefile.in 2009-03-20 10:34:54.000000000 +0100 -+++ mozilla-central/js/src/Makefile.in 2009-03-20 10:35:18.000000000 +0100 -@@ -507,20 +507,8 @@ +Index: mozilla-central/js/src/Makefile.in +=================================================================== +--- mozilla-central.orig/js/src/Makefile.in ++++ mozilla-central/js/src/Makefile.in +@@ -739,20 +739,8 @@ endif export:: jsautocfg.h -ifeq (,$(CROSS_COMPILE)$(GNU_CC)$(filter-out WINNT,$(OS_ARCH))) --jsautocfg.h: -- touch $@ --else --ifeq ($(OS_ARCH),WINCE) 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 diff --git a/recipes/mozilla/fennec/libffi-arm-softfloat.patch b/recipes/mozilla/fennec/libffi-arm-softfloat.patch new file mode 100644 index 0000000000..b9f70cd3bf --- /dev/null +++ b/recipes/mozilla/fennec/libffi-arm-softfloat.patch @@ -0,0 +1,290 @@ +This is a backport from upstream libffi so get it working on +ARM with and without VFP + +-Khem + +Index: mozilla-central/js/src/ctypes/libffi/src/arm/sysv.S +=================================================================== +--- mozilla-central.orig/js/src/ctypes/libffi/src/arm/sysv.S ++++ mozilla-central/js/src/ctypes/libffi/src/arm/sysv.S +@@ -1,5 +1,6 @@ + /* ----------------------------------------------------------------------- +- sysv.S - Copyright (c) 1998, 2008 Red Hat, Inc. ++ sysv.S - Copyright (c) 1998, 2008, 2011 Red Hat, Inc. ++ Copyright (c) 2011 Plausible Labs Cooperative, Inc. + + ARM Foreign Function Interface + +@@ -39,7 +40,11 @@ + #else + #define CNAME(x) x + #endif ++#ifdef __APPLE__ ++#define ENTRY(x) .globl CNAME(x); CNAME(x): ++#else + #define ENTRY(x) .globl CNAME(x); .type CNAME(x),%function; CNAME(x): ++#endif /* __APPLE__ */ + #endif + + #ifdef __ELF__ +@@ -48,6 +53,12 @@ + #define LSYM(x) x + #endif + ++/* Use the SOFTFP return value ABI on Mac OS X, as per the iOS ABI ++ Function Call Guide */ ++#ifdef __APPLE__ ++#define __SOFTFP__ ++#endif ++ + /* We need a better way of testing for this, but for now, this is all + we can do. */ + @ This selects the minimum architecture level required. +@@ -105,21 +116,33 @@ + .align 0 + .thumb + .thumb_func ++#ifdef __APPLE__ ++ ENTRY($0) ++#else + ENTRY(\name) ++#endif + bx pc + nop + .arm + UNWIND .fnstart + /* A hook to tell gdb that we've switched to ARM mode. Also used to call + directly from other local arm routines. */ +-_L__\name: ++#ifdef __APPLE__ ++_L__$0: ++#else ++_L__\name: ++#endif + .endm + #else + .macro ARM_FUNC_START name + .text + .align 0 + .arm ++#ifdef __APPLE__ ++ ENTRY($0) ++#else + ENTRY(\name) ++#endif + UNWIND .fnstart + .endm + #endif +@@ -141,8 +164,7 @@ _L__\name: + #endif + .endm + +- +- @ r0: fn ++ @ r0: ffi_prep_args + @ r1: &ecif + @ r2: cif->bytes + @ r3: fig->flags +@@ -222,12 +244,98 @@ ARM_FUNC_START ffi_call_SYSV + #endif + + LSYM(Lepilogue): +- RETLDM "r0-r3,fp" ++#if defined (__INTERWORKING__) ++ ldmia sp!, {r0-r3,fp, lr} ++ bx lr ++#else ++ ldmia sp!, {r0-r3,fp, pc} ++#endif + + .ffi_call_SYSV_end: + UNWIND .fnend ++#ifdef __ELF__ + .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV) ++#endif ++ ++ ++/* ++ unsigned int FFI_HIDDEN ++ ffi_closure_SYSV_inner (closure, respp, args) ++ ffi_closure *closure; ++ void **respp; ++ void *args; ++*/ ++ ++ARM_FUNC_START ffi_closure_SYSV ++ UNWIND .pad #16 ++ add ip, sp, #16 ++ stmfd sp!, {ip, lr} ++ UNWIND .save {r0, lr} ++ add r2, sp, #8 ++ UNWIND .pad #16 ++ sub sp, sp, #16 ++ str sp, [sp, #8] ++ add r1, sp, #8 ++ bl CNAME(ffi_closure_SYSV_inner) ++ cmp r0, #FFI_TYPE_INT ++ beq .Lretint ++ ++ cmp r0, #FFI_TYPE_FLOAT ++#if defined(__SOFTFP__) || defined(__ARM_EABI__) ++ beq .Lretint ++#else ++ beq .Lretfloat ++#endif ++ ++ cmp r0, #FFI_TYPE_DOUBLE ++#if defined(__SOFTFP__) || defined(__ARM_EABI__) ++ beq .Lretlonglong ++#else ++ beq .Lretdouble ++#endif ++ ++ cmp r0, #FFI_TYPE_LONGDOUBLE ++#if defined(__SOFTFP__) || defined(__ARM_EABI__) ++ beq .Lretlonglong ++#else ++ beq .Lretlongdouble ++#endif ++ ++ cmp r0, #FFI_TYPE_SINT64 ++ beq .Lretlonglong ++.Lclosure_epilogue: ++ add sp, sp, #16 ++ ldmfd sp, {sp, pc} ++.Lretint: ++ ldr r0, [sp] ++ b .Lclosure_epilogue ++.Lretlonglong: ++ ldr r0, [sp] ++ ldr r1, [sp, #4] ++ b .Lclosure_epilogue + ++#if !defined(__SOFTFP__) && !defined(__ARM_EABI__) ++.Lretfloat: ++ ldfs f0, [sp] ++ b .Lclosure_epilogue ++.Lretdouble: ++ ldfd f0, [sp] ++ b .Lclosure_epilogue ++.Lretlongdouble: ++ ldfd f0, [sp] ++ b .Lclosure_epilogue ++#endif ++ ++.ffi_closure_SYSV_end: ++ UNWIND .fnend ++#ifdef __ELF__ ++ .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV) ++#endif ++ ++ ++/* Below are VFP hard-float ABI call and closure implementations. ++ Add VFP FPU directive here. */ ++ .fpu vfp + + @ r0: fn + @ r1: &ecif +@@ -294,7 +402,7 @@ LSYM(Lbase_args): + @ assume no return value. + cmp r2, #0 + beq LSYM(Lepilogue_vfp) +- ++ + cmp r3, #FFI_TYPE_INT + streq r0, [r2] + beq LSYM(Lepilogue_vfp) +@@ -321,79 +429,6 @@ LSYM(Lepilogue_vfp): + .ffi_call_VFP_end: + UNWIND .fnend + .size CNAME(ffi_call_VFP),.ffi_call_VFP_end-CNAME(ffi_call_VFP) +- +- +-/* +- unsigned int FFI_HIDDEN +- ffi_closure_SYSV_inner (closure, respp, args) +- ffi_closure *closure; +- void **respp; +- void *args; +-*/ +- +-ARM_FUNC_START ffi_closure_SYSV +- UNWIND .pad #16 +- add ip, sp, #16 +- stmfd sp!, {ip, lr} +- UNWIND .save {r0, lr} +- add r2, sp, #8 +- .pad #16 +- sub sp, sp, #16 +- str sp, [sp, #8] +- add r1, sp, #8 +- bl ffi_closure_SYSV_inner +- cmp r0, #FFI_TYPE_INT +- beq .Lretint +- +- cmp r0, #FFI_TYPE_FLOAT +-#if defined(__SOFTFP__) || defined(__ARM_EABI__) +- beq .Lretint +-#else +- beq .Lretfloat +-#endif +- +- cmp r0, #FFI_TYPE_DOUBLE +-#if defined(__SOFTFP__) || defined(__ARM_EABI__) +- beq .Lretlonglong +-#else +- beq .Lretdouble +-#endif +- +- cmp r0, #FFI_TYPE_LONGDOUBLE +-#if defined(__SOFTFP__) || defined(__ARM_EABI__) +- beq .Lretlonglong +-#else +- beq .Lretlongdouble +-#endif +- +- cmp r0, #FFI_TYPE_SINT64 +- beq .Lretlonglong +-.Lclosure_epilogue: +- add sp, sp, #16 +- ldmfd sp, {sp, pc} +-.Lretint: +- ldr r0, [sp] +- b .Lclosure_epilogue +-.Lretlonglong: +- ldr r0, [sp] +- ldr r1, [sp, #4] +- b .Lclosure_epilogue +- +-#if !defined(__SOFTFP__) && !defined(__ARM_EABI__) +-.Lretfloat: +- ldfs f0, [sp] +- b .Lclosure_epilogue +-.Lretdouble: +- ldfd f0, [sp] +- b .Lclosure_epilogue +-.Lretlongdouble: +- ldfd f0, [sp] +- b .Lclosure_epilogue +-#endif +- +-.ffi_closure_SYSV_end: +- UNWIND .fnend +- .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV) + + + ARM_FUNC_START ffi_closure_VFP +@@ -405,7 +440,7 @@ ARM_FUNC_START ffi_closure_VFP + UNWIND .save {r0, lr} + add r2, sp, #72 + add r3, sp, #8 +- .pad #72 ++ UNWIND .pad #72 + sub sp, sp, #72 + str sp, [sp, #64] + add r1, sp, #64 +@@ -460,3 +495,4 @@ ARM_FUNC_START ffi_closure_VFP + #if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",%progbits + #endif ++ diff --git a/recipes/mozilla/fennec/mozconfig b/recipes/mozilla/fennec/mozconfig index 7696f78a9c..356cd35cec 100644 --- a/recipes/mozilla/fennec/mozconfig +++ b/recipes/mozilla/fennec/mozconfig @@ -8,6 +8,12 @@ ac_add_options --enable-system-cairo ac_add_options --with-system-zlib ac_add_options --with-system-bz2 ac_add_options --with-system-jpeg +ac_add_options --disable-necko-wifi +ac_add_options --disable-maintainer-mode +ac_add_options --disable-dependency-tracking +ac_add_options --disable-silent-rules +ac_add_options --disable-elf-dynstr-gc +ac_add_options --disable-elf-hack ac_add_app_options xulrunner --enable-application=xulrunner diff --git a/recipes/mozilla/fennec/prune-lintl.patch b/recipes/mozilla/fennec/prune-lintl.patch new file mode 100644 index 0000000000..37ebb6cf51 --- /dev/null +++ b/recipes/mozilla/fennec/prune-lintl.patch @@ -0,0 +1,33 @@ +on uclibc we add -lintl and it will get into host libs too +and on host machines based on glibc it will complain on linking +host libraried. So we prune out -lintl + +-Khem + +Index: mozilla-central/build/autoconf/glib.m4 +=================================================================== +--- mozilla-central.orig/build/autoconf/glib.m4 ++++ mozilla-central/build/autoconf/glib.m4 +@@ -53,7 +53,8 @@ AC_ARG_ENABLE(glibtest, [ --disable-gli + no_glib=yes + else + GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags` +- GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs` ++ GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs | \ ++ sed 's/\-lintl//g'` + glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \ +Index: mozilla-central/configure.in +=================================================================== +--- mozilla-central.orig/configure.in ++++ mozilla-central/configure.in +@@ -8495,7 +8495,7 @@ then + else + AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/lib/libidl-0.6.lib or $_LIBIDL_PREFIX_DIR/lib/libidl-0.6_s.lib]) + fi +- HOST_LIBIDL_LIBS="${HOST_LIBIDL_LIBS} ${GLIB_LIBS}" ++ HOST_LIBIDL_LIBS="`echo ${HOST_LIBIDL_LIBS} | sed -e s/\-lintl//g` ${GLIB_LIBS}" + _LIBIDL_FOUND=1 + ;; + esac diff --git a/recipes/mozilla/fennec/uclibc-isfinite.patch b/recipes/mozilla/fennec/uclibc-isfinite.patch new file mode 100644 index 0000000000..c0f6696b33 --- /dev/null +++ b/recipes/mozilla/fennec/uclibc-isfinite.patch @@ -0,0 +1,70 @@ +finite() is obsolete and we should use isfinite() anyway +may be submit it upstream + +-Khem + +Index: mozilla-central/js/src/jsnum.h +=================================================================== +--- mozilla-central.orig/js/src/jsnum.h ++++ mozilla-central/js/src/jsnum.h +@@ -101,7 +101,7 @@ JSDOUBLE_IS_FINITE(jsdouble d) + #ifdef WIN32 + return _finite(d); + #else +- return finite(d); ++ return isfinite(d); + #endif + } + +Index: mozilla-central/content/base/public/nsContentUtils.h +=================================================================== +--- mozilla-central.orig/content/base/public/nsContentUtils.h ++++ mozilla-central/content/base/public/nsContentUtils.h +@@ -1928,7 +1928,7 @@ inline NS_HIDDEN_(PRBool) NS_FloatIsFini + #ifdef WIN32 + return _finite(f); + #else +- return finite(f); ++ return isfinite(f); + #endif + } + +Index: mozilla-central/content/canvas/src/nsCanvasRenderingContext2D.cpp +=================================================================== +--- mozilla-central.orig/content/canvas/src/nsCanvasRenderingContext2D.cpp ++++ mozilla-central/content/canvas/src/nsCanvasRenderingContext2D.cpp +@@ -159,7 +159,7 @@ DoubleIsFinite(double d) + // NOTE: '!!' casts an int to bool without spamming MSVC warning C4800. + return !!_finite(d); + #else +- return finite(d); ++ return isfinite(d); + #endif + } + +Index: mozilla-central/ipc/chromium/src/base/float_util.h +=================================================================== +--- mozilla-central.orig/ipc/chromium/src/base/float_util.h ++++ mozilla-central/ipc/chromium/src/base/float_util.h +@@ -14,7 +14,7 @@ namespace base { + + inline bool IsFinite(const double& number) { + #if defined(OS_POSIX) +- return finite(number) != 0; ++ return isfinite(number) != 0; + #elif defined(OS_WIN) + return _finite(number) != 0; + #endif +Index: mozilla-central/js/src/ctypes/CTypes.cpp +=================================================================== +--- mozilla-central.orig/js/src/ctypes/CTypes.cpp ++++ mozilla-central/js/src/ctypes/CTypes.cpp +@@ -464,7 +464,7 @@ static inline bool FloatIsFinite(jsdoubl + #ifdef WIN32 + return _finite(f) != 0; + #else +- return finite(f); ++ return isfinite(f); + #endif + } + diff --git a/recipes/mozilla/fennec_hg.bb b/recipes/mozilla/fennec_hg.bb index 5bfd0d31f7..7075fd9396 100644 --- a/recipes/mozilla/fennec_hg.bb +++ b/recipes/mozilla/fennec_hg.bb @@ -1,12 +1,16 @@ DESCRIPTION = "Mozilla Mobile browser" PV = "2.0+${MOZPV}" -MOZPV = "4.0b3pre" +MOZPV = "4.0b5" PR = "r0" PE = "1" - -SRC_URI = "hg://hg.mozilla.org;module=mozilla-central;rev=e2bc7992d304 \ - hg://hg.mozilla.org;module=mobile-browser;rev=051c9709248b \ +SRCREV = "FENNEC_4_0b5_RELEASE" +SRC_URI = "hg://hg.mozilla.org;module=mozilla-central;rev=${SRCREV} \ + hg://hg.mozilla.org;module=mobile-browser;rev=${SRCREV} \ + file://fennec-uclibc.patch \ + file://libffi-arm-softfloat.patch \ + file://uclibc-isfinite.patch \ + file://cross-config.patch \ file://jsautocfg.h \ file://jsautocfg-dontoverwrite.patch \ " @@ -16,13 +20,27 @@ S = "${WORKDIR}/mozilla-central" inherit mozilla require firefox.inc -DEPENDS += "libnotify autoconf213-native cairo alsa-lib sqlite3" +DEPENDS += "yasm-native libnotify autoconf213-native cairo alsa-lib sqlite3 mesa gconf" FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2" export LIBXUL_DIST="${S}/objdir/xulrunner/dist/" + CFLAGS_append = " -DMOZ_GFX_OPTIMIZE_MOBILE " +# We need to append -L<sysroot>/usr/lib to LDFLAGS otherwise +# it starts picking dependencies from /usr/lib if +# EXTRA_DSO_LDOPTS contains libraries like -lgconf-2 +# then the make looks it up in VPATH and sysroot +# does not appear in VPATH and it wont find it if +# build host does not have a library in its /usr/lib +# + +LDFLAGS += "-L${STAGING_LIBDIR}" +#EXTRA_OEMAKE += "EXTRA_DSO_LDOPTS=-L${STAGING_LIBDIR}" + +EXTRA_OECONF_append_arm = " --with-cpu-arch=${BASE_PACKAGE_ARCH} " + do_configure_prepend() { if [ -e ${WORKDIR}/mobile-browser ] ; then mv ${WORKDIR}/mobile-browser ${S}/mobile @@ -66,10 +84,4 @@ do_install() { install -m 0644 ${WORKDIR}/mozilla-${PN}.png ${D}${datadir}/pixmaps/ } -do_stage() { - : -} - - FILES_${PN} += "${libdir}/fennec" - |