diff mbox

[oe,meta-oe] mongodb: update to 2.6

Message ID 1397480658-10634-1-git-send-email-koen.kooi@linaro.org
State New
Headers show

Commit Message

Koen Kooi April 14, 2014, 1:04 p.m. UTC
Also fix build on armv5

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
---
 ...Make-it-possible-to-disable-the-use-of-v8.patch |  23 ++--
 ...02-Fix-linking-when-scripting-is-disabled.patch |   6 +-
 ...d-mongo-binary-when-scripting-is-disabled.patch |  18 +--
 ...e-os.uname-with-os.getenv-OE_TARGET_ARCH.patch} |  14 +--
 ...ports-atomic-ops-for-armv5-and-up-but-onl.patch | 127 +++++++++++++++++++++
 meta-oe/recipes-support/mongodb/mongodb_git.bb     |   9 +-
 6 files changed, 163 insertions(+), 34 deletions(-)
 rename meta-oe/recipes-support/mongodb/mongodb/{0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch => 0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch} (81%)
 create mode 100644 meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch

Comments

Martin Jansa April 20, 2014, 9:23 a.m. UTC | #1
On Mon, Apr 14, 2014 at 03:04:18PM +0200, Koen Kooi wrote:
> Also fix build on armv5

Merged, thanks.

Can you send follow-up with LICENSE change from AGPLv3 to AGPL-3.0?

WARNING: mongodb: No generic license file exists for: AGPLv3 in any
provider

> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
> ---
>  ...Make-it-possible-to-disable-the-use-of-v8.patch |  23 ++--
>  ...02-Fix-linking-when-scripting-is-disabled.patch |   6 +-
>  ...d-mongo-binary-when-scripting-is-disabled.patch |  18 +--
>  ...e-os.uname-with-os.getenv-OE_TARGET_ARCH.patch} |  14 +--
>  ...ports-atomic-ops-for-armv5-and-up-but-onl.patch | 127 +++++++++++++++++++++
>  meta-oe/recipes-support/mongodb/mongodb_git.bb     |   9 +-
>  6 files changed, 163 insertions(+), 34 deletions(-)
>  rename meta-oe/recipes-support/mongodb/mongodb/{0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch => 0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch} (81%)
>  create mode 100644 meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch
> 
> diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch
> index 311ac6c..650389e 100644
> --- a/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch
> +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch
> @@ -1,21 +1,21 @@
> -From bffde38f3b3d6285019e38a30c4573326e1dd2ea Mon Sep 17 00:00:00 2001
> +From f1bd00e7f54aad6479bc809c27d5cd3c2fb993eb Mon Sep 17 00:00:00 2001
>  From: Michael Hudson-Doyle <michael.hudson@linaro.org>
>  Date: Fri, 20 Dec 2013 11:10:43 +1300
> -Subject: [PATCH 1/3] Make it possible to disable the use of v8.
> +Subject: [PATCH 1/5] Make it possible to disable the use of v8.
>  
>  Currently v8 is always built in, no matter what you pass to scons.
>  
>  This removes the (useless) --usev8 flag for scons and replaces it with a
>  --disable-scripting option instead.
>  ---
> - SConstruct | 8 +++++---
> - 1 file changed, 5 insertions(+), 3 deletions(-)
> + SConstruct | 9 ++++++---
> + 1 file changed, 6 insertions(+), 3 deletions(-)
>  
>  diff --git a/SConstruct b/SConstruct
> -index fd92fe4..1f14083 100644
> +index 3886d1b..6e0ef3b 100644
>  --- a/SConstruct
>  +++ b/SConstruct
> -@@ -222,7 +222,7 @@ add_option( "asio" , "Use Asynchronous IO (NOT READY YET)" , 0 , True )
> +@@ -225,7 +225,7 @@ add_option( "asio" , "Use Asynchronous IO (NOT READY YET)" , 0 , True )
>   add_option( "ssl" , "Enable SSL" , 0 , True )
>   
>   # library choices
> @@ -24,7 +24,7 @@ index fd92fe4..1f14083 100644
>   add_option( "libc++", "use libc++ (experimental, requires clang)", 0, True )
>   
>   # mongo feature options
> -@@ -439,7 +439,7 @@ static = has_option( "static" )
> +@@ -442,7 +442,7 @@ static = has_option( "static" )
>   
>   noshell = has_option( "noshell" ) 
>   
> @@ -33,17 +33,18 @@ index fd92fe4..1f14083 100644
>   
>   asio = has_option( "asio" )
>   
> -@@ -599,7 +599,9 @@ if has_option( "durableDefaultOn" ):
> +@@ -600,7 +600,10 @@ if has_option( "durableDefaultOn" ):
>   if has_option( "durableDefaultOff" ):
>       env.Append( CPPDEFINES=[ "_DURABLEDEFAULTOFF" ] )
>   
> --if ( not ( usev8 or justClientLib) ):
> +-usev8 = True
>  +if disable_scripting or justClientLib:
>  +    usev8 = False
>  +else:
> -     usev8 = True
> ++    usev8 = True
>   
>   extraLibPlaces = []
> + 
>  -- 
> -1.8.4.2
> +1.9.0
>  
> diff --git a/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch b/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch
> index d8d5a3b..b4388d8 100644
> --- a/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch
> +++ b/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch
> @@ -1,7 +1,7 @@
> -From 52d68642205626cad3bac3a53e269c765ccff676 Mon Sep 17 00:00:00 2001
> +From 5b22f64a2e2237082d2733698b07147d27b09ad2 Mon Sep 17 00:00:00 2001
>  From: Michael Hudson-Doyle <michael.hudson@linaro.org>
>  Date: Fri, 20 Dec 2013 12:28:27 +1300
> -Subject: [PATCH 2/3] Fix linking when scripting is disabled.
> +Subject: [PATCH 2/5] Fix linking when scripting is disabled.
>  
>  ---
>   src/mongo/scripting/engine_none.cpp | 4 ++++
> @@ -21,5 +21,5 @@ index f5c7109..9ae9d57 100644
>  +    }
>   }
>  -- 
> -1.8.4.2
> +1.9.0
>  
> diff --git a/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch b/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch
> index 5c314b1..016ac35 100644
> --- a/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch
> +++ b/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch
> @@ -1,7 +1,7 @@
> -From 1f8e10747af3988e8ddee609bea990f622dd746a Mon Sep 17 00:00:00 2001
> +From eab4316597a8e9e7bbf845a054564c6daa4a95b7 Mon Sep 17 00:00:00 2001
>  From: Michael Hudson-Doyle <michael.hudson@linaro.org>
>  Date: Wed, 22 Jan 2014 13:53:10 +1300
> -Subject: [PATCH 3/3] * Do not build 'mongo' binary when scripting is disabled
> +Subject: [PATCH 3/5] * Do not build 'mongo' binary when scripting is disabled
>   * Do not build the jstests when scripting is disabled
>  
>  ---
> @@ -10,10 +10,10 @@ Subject: [PATCH 3/3] * Do not build 'mongo' binary when scripting is disabled
>   2 files changed, 9 insertions(+), 3 deletions(-)
>  
>  diff --git a/SConstruct b/SConstruct
> -index 1f14083..a69cf0a 100644
> +index 6e0ef3b..c84a669 100644
>  --- a/SConstruct
>  +++ b/SConstruct
> -@@ -437,10 +437,13 @@ else:
> +@@ -440,10 +440,13 @@ else:
>   
>   static = has_option( "static" )
>   
> @@ -29,16 +29,16 @@ index 1f14083..a69cf0a 100644
>   asio = has_option( "asio" )
>   
>   usePCH = has_option( "usePCH" )
> -@@ -1671,6 +1674,7 @@ Export("get_option")
> +@@ -1662,6 +1665,7 @@ Export("get_option")
>   Export("has_option use_system_version_of_library")
> - Export("installSetup mongoCodeVersion")
> + Export("mongoCodeVersion")
>   Export("usev8")
>  +Export("disable_scripting")
>   Export("darwin windows solaris linux freebsd nix")
>   Export('module_sconscripts')
>   Export("debugBuild optBuild")
>  diff --git a/src/mongo/SConscript b/src/mongo/SConscript
> -index d84267e..dc0ca3a 100644
> +index 58f8406..b4379e7 100644
>  --- a/src/mongo/SConscript
>  +++ b/src/mongo/SConscript
>  @@ -6,6 +6,7 @@ import os
> @@ -49,7 +49,7 @@ index d84267e..dc0ca3a 100644
>   Import("env")
>   Import("shellEnv")
>   Import("testEnv")
> -@@ -1022,7 +1023,8 @@ test = testEnv.Install(
> +@@ -1043,7 +1044,8 @@ test = testEnv.Install(
>                       [ f for f in Glob("dbtests/*.cpp")
>                         if not str(f).endswith('framework.cpp') and
>                            not str(f).endswith('framework_options.cpp') and
> @@ -60,5 +60,5 @@ index d84267e..dc0ca3a 100644
>                          "mutable_bson_test_utils",
>                          "mongocommon",
>  -- 
> -1.8.4.2
> +1.9.0
>  
> diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch b/meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch
> similarity index 81%
> rename from meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch
> rename to meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch
> index 547c3bd..ade7ec0 100644
> --- a/meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch
> +++ b/meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch
> @@ -1,7 +1,7 @@
> -From ef482650fb6d990e4953104d7141d9a0fa4c872f Mon Sep 17 00:00:00 2001
> +From d02f33d860f2d11f71e9056782a2e75603d6ec25 Mon Sep 17 00:00:00 2001
>  From: Koen Kooi <koen.kooi@linaro.org>
>  Date: Tue, 4 Feb 2014 10:56:35 +0100
> -Subject: [PATCH] replace os.uname with os.getenv(OE_TARGET_ARCH)
> +Subject: [PATCH 4/5] replace os.uname with os.getenv(OE_TARGET_ARCH)
>  
>  This fixes crosscompilation
>  
> @@ -12,10 +12,10 @@ Upstream-Status: Inappropiate [OE specific]
>   1 file changed, 4 insertions(+), 4 deletions(-)
>  
>  diff --git a/SConstruct b/SConstruct
> -index 4f26be7..a353323 100644
> +index c84a669..05e2ea0 100644
>  --- a/SConstruct
>  +++ b/SConstruct
> -@@ -265,9 +265,9 @@ add_option( "pch" , "use precompiled headers to speed up the build (experimental
> +@@ -257,9 +257,9 @@ add_option( "pch" , "use precompiled headers to speed up the build (experimental
>   add_option( "distcc" , "use distcc for distributing builds" , 0 , False )
>   
>   # debugging/profiling help
> @@ -27,7 +27,7 @@ index 4f26be7..a353323 100644
>       defaultAllocator = 'tcmalloc'
>   else:
>       defaultAllocator = 'system'
> -@@ -673,7 +673,7 @@ if has_option( "full" ):
> +@@ -633,7 +633,7 @@ if has_option( "extralib" ):
>   # ---- other build setup -----
>   
>   if "uname" in dir(os):
> @@ -36,7 +36,7 @@ index 4f26be7..a353323 100644
>   else:
>       processor = "i386"
>   
> -@@ -702,7 +702,7 @@ elif linux:
> +@@ -662,7 +662,7 @@ elif linux:
>   
>       env.Append( LIBS=['m'] )
>   
> @@ -46,5 +46,5 @@ index 4f26be7..a353323 100644
>           nixLibPrefix = "lib64"
>           env.Append( EXTRALIBPATH=["/usr/lib64" , "/lib64" ] )
>  -- 
> -1.8.4.2
> +1.9.0
>  
> diff --git a/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch b/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch
> new file mode 100644
> index 0000000..490d564
> --- /dev/null
> +++ b/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch
> @@ -0,0 +1,127 @@
> +From e31f85e6915d4bf6ed76c5da71c235525fa4ecc3 Mon Sep 17 00:00:00 2001
> +From: Koen Kooi <koen.kooi@linaro.org>
> +Date: Mon, 14 Apr 2014 10:29:42 +0200
> +Subject: [PATCH 5/5] GCC 4.7+ supports atomic ops for armv5 and up, but only
> + exports the functions for armv6 and up. This patch works around the linker
> + problems associated with that.
> +
> +Forward ported from http://pkgs.fedoraproject.org/cgit/mongodb.git/tree/mongodb-2.4.5-atomics.patch
> +
> +Upstream-status: pending
> +---
> + src/mongo/bson/util/atomic_int.h                   | 26 ++++++++++++
> + src/mongo/platform/atomic_intrinsics_gcc_generic.h | 47 ++++++++++++++++++++++
> + 2 files changed, 73 insertions(+)
> +
> +diff --git a/src/mongo/bson/util/atomic_int.h b/src/mongo/bson/util/atomic_int.h
> +index 0b85363..ed02c23 100644
> +--- a/src/mongo/bson/util/atomic_int.h
> ++++ b/src/mongo/bson/util/atomic_int.h
> +@@ -24,6 +24,10 @@
> + 
> + #include "mongo/platform/compiler.h"
> + 
> ++#define GCC_VERSION (__GNUC__ * 10000                 \
> ++                     + __GNUC_MINOR__ * 100           \
> ++                     + __GNUC_PATCHLEVEL__)
> ++
> + namespace mongo {
> + 
> +     /**
> +@@ -72,6 +76,28 @@ namespace mongo {
> +         InterlockedAdd((volatile long *)&x,by);
> +     }
> + # endif
> ++#elif defined(GCC_VERSION) && GCC_VERSION >= 40700
> ++// in GCC version >= 4.7.0 we can use the built-in atomic operations
> ++
> ++    inline void AtomicUInt::set(unsigned newX) {
> ++        __atomic_store_n (&x, newX, __ATOMIC_SEQ_CST);
> ++    }
> ++    AtomicUInt AtomicUInt::operator++() {    // ++prefix
> ++        return __atomic_add_fetch(&x, 1, __ATOMIC_SEQ_CST);
> ++    }
> ++    AtomicUInt AtomicUInt::operator++(int) { // postfix++
> ++        return __atomic_fetch_add(&x, 1, __ATOMIC_SEQ_CST);
> ++    }
> ++    AtomicUInt AtomicUInt::operator--() {    // --prefix
> ++        return __atomic_add_fetch(&x, -1, __ATOMIC_SEQ_CST);
> ++    }
> ++    AtomicUInt AtomicUInt::operator--(int) { // postfix--
> ++        return __atomic_fetch_add(&x, -1, __ATOMIC_SEQ_CST);
> ++    }
> ++    void AtomicUInt::signedAdd(int by) {
> ++        __atomic_fetch_add(&x, by, __ATOMIC_SEQ_CST);
> ++    }
> ++
> + #elif defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
> +     // this is in GCC >= 4.1
> +     inline void AtomicUInt::set(unsigned newX) { __sync_synchronize(); x = newX; }
> +diff --git a/src/mongo/platform/atomic_intrinsics_gcc_generic.h b/src/mongo/platform/atomic_intrinsics_gcc_generic.h
> +index 64a2499..b7cc176 100644
> +--- a/src/mongo/platform/atomic_intrinsics_gcc_generic.h
> ++++ b/src/mongo/platform/atomic_intrinsics_gcc_generic.h
> +@@ -22,8 +22,53 @@
> + 
> + #include <boost/utility.hpp>
> + 
> ++#define GCC_VERSION (__GNUC__ * 10000                 \
> ++                     + __GNUC_MINOR__ * 100           \
> ++                     + __GNUC_PATCHLEVEL__)
> ++
> + namespace mongo {
> + 
> ++// If GCC version >= 4.7.0, we can use the built-in atomic operations
> ++#if defined(GCC_VERSION) && GCC_VERSION >= 40700
> ++
> ++    /**
> ++     * Instantiation of AtomicIntrinsics<>.
> ++     */
> ++    template <typename T>
> ++    class AtomicIntrinsics {
> ++    public:
> ++
> ++        static T compareAndSwap(volatile T* dest, T expected, T newValue) {
> ++            return __atomic_compare_exchange_n (dest, &expected, newValue, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
> ++        }
> ++
> ++        static T swap(volatile T* dest, T newValue) {
> ++            return __atomic_exchange_n (dest, newValue, __ATOMIC_SEQ_CST);
> ++        }
> ++
> ++        static T load(volatile const T* value) {
> ++            return __atomic_load_n (value, __ATOMIC_SEQ_CST);
> ++        }
> ++
> ++        static T loadRelaxed(volatile const T* value) {
> ++            return *value;
> ++        }
> ++
> ++        static void store(volatile T* dest, T newValue) {
> ++            __atomic_store_n (dest, newValue, __ATOMIC_SEQ_CST);
> ++        }
> ++
> ++        static T fetchAndAdd(volatile T* dest, T increment) {
> ++            return __atomic_fetch_add (dest, increment, __ATOMIC_SEQ_CST);
> ++        }
> ++
> ++    private:
> ++        AtomicIntrinsics();
> ++        ~AtomicIntrinsics();
> ++    };
> ++
> ++#else // GCC version < 4.7, so we must use legacy (platform-specific) atomic operations
> ++
> +     /**
> +      * Instantiation of AtomicIntrinsics<> for all word types T.
> +      */
> +@@ -67,4 +112,6 @@ namespace mongo {
> +         ~AtomicIntrinsics();
> +     };
> + 
> ++#endif // GCC_VERSION >= 40700
> ++
> + }  // namespace mongo
> +-- 
> +1.9.0
> +
> diff --git a/meta-oe/recipes-support/mongodb/mongodb_git.bb b/meta-oe/recipes-support/mongodb/mongodb_git.bb
> index f0fe240..d990da8 100644
> --- a/meta-oe/recipes-support/mongodb/mongodb_git.bb
> +++ b/meta-oe/recipes-support/mongodb/mongodb_git.bb
> @@ -9,13 +9,14 @@ DEPENDS_append_x86-64 = " gperftools"
>  
>  inherit scons
>  
> -PV = "2.5.5+git${SRCPV}"
> -SRCREV = "588dc81b0822ebb46f80e152b94527a882e6ea5e"
> -SRC_URI = "git://github.com/mongodb/mongo.git \
> +PV = "2.6.0+git${SRCPV}"
> +SRCREV = "be1905c24c7e5ea258e537fbf0d2c502c4fc6de2"
> +SRC_URI = "git://github.com/mongodb/mongo.git;branch=v2.6 \
>             file://0001-Make-it-possible-to-disable-the-use-of-v8.patch \
>             file://0002-Fix-linking-when-scripting-is-disabled.patch \
>             file://0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch \
> -           file://0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch \
> +           file://0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch \
> +           file://0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch \
>            "
>  
>  S = "${WORKDIR}/git"
> -- 
> 1.9.0
> 
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
diff mbox

Patch

diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch
index 311ac6c..650389e 100644
--- a/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch
+++ b/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch
@@ -1,21 +1,21 @@ 
-From bffde38f3b3d6285019e38a30c4573326e1dd2ea Mon Sep 17 00:00:00 2001
+From f1bd00e7f54aad6479bc809c27d5cd3c2fb993eb Mon Sep 17 00:00:00 2001
 From: Michael Hudson-Doyle <michael.hudson@linaro.org>
 Date: Fri, 20 Dec 2013 11:10:43 +1300
-Subject: [PATCH 1/3] Make it possible to disable the use of v8.
+Subject: [PATCH 1/5] Make it possible to disable the use of v8.
 
 Currently v8 is always built in, no matter what you pass to scons.
 
 This removes the (useless) --usev8 flag for scons and replaces it with a
 --disable-scripting option instead.
 ---
- SConstruct | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
+ SConstruct | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
 
 diff --git a/SConstruct b/SConstruct
-index fd92fe4..1f14083 100644
+index 3886d1b..6e0ef3b 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -222,7 +222,7 @@ add_option( "asio" , "Use Asynchronous IO (NOT READY YET)" , 0 , True )
+@@ -225,7 +225,7 @@ add_option( "asio" , "Use Asynchronous IO (NOT READY YET)" , 0 , True )
  add_option( "ssl" , "Enable SSL" , 0 , True )
  
  # library choices
@@ -24,7 +24,7 @@  index fd92fe4..1f14083 100644
  add_option( "libc++", "use libc++ (experimental, requires clang)", 0, True )
  
  # mongo feature options
-@@ -439,7 +439,7 @@ static = has_option( "static" )
+@@ -442,7 +442,7 @@ static = has_option( "static" )
  
  noshell = has_option( "noshell" ) 
  
@@ -33,17 +33,18 @@  index fd92fe4..1f14083 100644
  
  asio = has_option( "asio" )
  
-@@ -599,7 +599,9 @@ if has_option( "durableDefaultOn" ):
+@@ -600,7 +600,10 @@ if has_option( "durableDefaultOn" ):
  if has_option( "durableDefaultOff" ):
      env.Append( CPPDEFINES=[ "_DURABLEDEFAULTOFF" ] )
  
--if ( not ( usev8 or justClientLib) ):
+-usev8 = True
 +if disable_scripting or justClientLib:
 +    usev8 = False
 +else:
-     usev8 = True
++    usev8 = True
  
  extraLibPlaces = []
+ 
 -- 
-1.8.4.2
+1.9.0
 
diff --git a/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch b/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch
index d8d5a3b..b4388d8 100644
--- a/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch
+++ b/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch
@@ -1,7 +1,7 @@ 
-From 52d68642205626cad3bac3a53e269c765ccff676 Mon Sep 17 00:00:00 2001
+From 5b22f64a2e2237082d2733698b07147d27b09ad2 Mon Sep 17 00:00:00 2001
 From: Michael Hudson-Doyle <michael.hudson@linaro.org>
 Date: Fri, 20 Dec 2013 12:28:27 +1300
-Subject: [PATCH 2/3] Fix linking when scripting is disabled.
+Subject: [PATCH 2/5] Fix linking when scripting is disabled.
 
 ---
  src/mongo/scripting/engine_none.cpp | 4 ++++
@@ -21,5 +21,5 @@  index f5c7109..9ae9d57 100644
 +    }
  }
 -- 
-1.8.4.2
+1.9.0
 
diff --git a/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch b/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch
index 5c314b1..016ac35 100644
--- a/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch
+++ b/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch
@@ -1,7 +1,7 @@ 
-From 1f8e10747af3988e8ddee609bea990f622dd746a Mon Sep 17 00:00:00 2001
+From eab4316597a8e9e7bbf845a054564c6daa4a95b7 Mon Sep 17 00:00:00 2001
 From: Michael Hudson-Doyle <michael.hudson@linaro.org>
 Date: Wed, 22 Jan 2014 13:53:10 +1300
-Subject: [PATCH 3/3] * Do not build 'mongo' binary when scripting is disabled
+Subject: [PATCH 3/5] * Do not build 'mongo' binary when scripting is disabled
  * Do not build the jstests when scripting is disabled
 
 ---
@@ -10,10 +10,10 @@  Subject: [PATCH 3/3] * Do not build 'mongo' binary when scripting is disabled
  2 files changed, 9 insertions(+), 3 deletions(-)
 
 diff --git a/SConstruct b/SConstruct
-index 1f14083..a69cf0a 100644
+index 6e0ef3b..c84a669 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -437,10 +437,13 @@ else:
+@@ -440,10 +440,13 @@ else:
  
  static = has_option( "static" )
  
@@ -29,16 +29,16 @@  index 1f14083..a69cf0a 100644
  asio = has_option( "asio" )
  
  usePCH = has_option( "usePCH" )
-@@ -1671,6 +1674,7 @@ Export("get_option")
+@@ -1662,6 +1665,7 @@ Export("get_option")
  Export("has_option use_system_version_of_library")
- Export("installSetup mongoCodeVersion")
+ Export("mongoCodeVersion")
  Export("usev8")
 +Export("disable_scripting")
  Export("darwin windows solaris linux freebsd nix")
  Export('module_sconscripts')
  Export("debugBuild optBuild")
 diff --git a/src/mongo/SConscript b/src/mongo/SConscript
-index d84267e..dc0ca3a 100644
+index 58f8406..b4379e7 100644
 --- a/src/mongo/SConscript
 +++ b/src/mongo/SConscript
 @@ -6,6 +6,7 @@ import os
@@ -49,7 +49,7 @@  index d84267e..dc0ca3a 100644
  Import("env")
  Import("shellEnv")
  Import("testEnv")
-@@ -1022,7 +1023,8 @@ test = testEnv.Install(
+@@ -1043,7 +1044,8 @@ test = testEnv.Install(
                      [ f for f in Glob("dbtests/*.cpp")
                        if not str(f).endswith('framework.cpp') and
                           not str(f).endswith('framework_options.cpp') and
@@ -60,5 +60,5 @@  index d84267e..dc0ca3a 100644
                         "mutable_bson_test_utils",
                         "mongocommon",
 -- 
-1.8.4.2
+1.9.0
 
diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch b/meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch
similarity index 81%
rename from meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch
rename to meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch
index 547c3bd..ade7ec0 100644
--- a/meta-oe/recipes-support/mongodb/mongodb/0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch
+++ b/meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch
@@ -1,7 +1,7 @@ 
-From ef482650fb6d990e4953104d7141d9a0fa4c872f Mon Sep 17 00:00:00 2001
+From d02f33d860f2d11f71e9056782a2e75603d6ec25 Mon Sep 17 00:00:00 2001
 From: Koen Kooi <koen.kooi@linaro.org>
 Date: Tue, 4 Feb 2014 10:56:35 +0100
-Subject: [PATCH] replace os.uname with os.getenv(OE_TARGET_ARCH)
+Subject: [PATCH 4/5] replace os.uname with os.getenv(OE_TARGET_ARCH)
 
 This fixes crosscompilation
 
@@ -12,10 +12,10 @@  Upstream-Status: Inappropiate [OE specific]
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/SConstruct b/SConstruct
-index 4f26be7..a353323 100644
+index c84a669..05e2ea0 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -265,9 +265,9 @@ add_option( "pch" , "use precompiled headers to speed up the build (experimental
+@@ -257,9 +257,9 @@ add_option( "pch" , "use precompiled headers to speed up the build (experimental
  add_option( "distcc" , "use distcc for distributing builds" , 0 , False )
  
  # debugging/profiling help
@@ -27,7 +27,7 @@  index 4f26be7..a353323 100644
      defaultAllocator = 'tcmalloc'
  else:
      defaultAllocator = 'system'
-@@ -673,7 +673,7 @@ if has_option( "full" ):
+@@ -633,7 +633,7 @@ if has_option( "extralib" ):
  # ---- other build setup -----
  
  if "uname" in dir(os):
@@ -36,7 +36,7 @@  index 4f26be7..a353323 100644
  else:
      processor = "i386"
  
-@@ -702,7 +702,7 @@ elif linux:
+@@ -662,7 +662,7 @@ elif linux:
  
      env.Append( LIBS=['m'] )
  
@@ -46,5 +46,5 @@  index 4f26be7..a353323 100644
          nixLibPrefix = "lib64"
          env.Append( EXTRALIBPATH=["/usr/lib64" , "/lib64" ] )
 -- 
-1.8.4.2
+1.9.0
 
diff --git a/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch b/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch
new file mode 100644
index 0000000..490d564
--- /dev/null
+++ b/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch
@@ -0,0 +1,127 @@ 
+From e31f85e6915d4bf6ed76c5da71c235525fa4ecc3 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Mon, 14 Apr 2014 10:29:42 +0200
+Subject: [PATCH 5/5] GCC 4.7+ supports atomic ops for armv5 and up, but only
+ exports the functions for armv6 and up. This patch works around the linker
+ problems associated with that.
+
+Forward ported from http://pkgs.fedoraproject.org/cgit/mongodb.git/tree/mongodb-2.4.5-atomics.patch
+
+Upstream-status: pending
+---
+ src/mongo/bson/util/atomic_int.h                   | 26 ++++++++++++
+ src/mongo/platform/atomic_intrinsics_gcc_generic.h | 47 ++++++++++++++++++++++
+ 2 files changed, 73 insertions(+)
+
+diff --git a/src/mongo/bson/util/atomic_int.h b/src/mongo/bson/util/atomic_int.h
+index 0b85363..ed02c23 100644
+--- a/src/mongo/bson/util/atomic_int.h
++++ b/src/mongo/bson/util/atomic_int.h
+@@ -24,6 +24,10 @@
+ 
+ #include "mongo/platform/compiler.h"
+ 
++#define GCC_VERSION (__GNUC__ * 10000                 \
++                     + __GNUC_MINOR__ * 100           \
++                     + __GNUC_PATCHLEVEL__)
++
+ namespace mongo {
+ 
+     /**
+@@ -72,6 +76,28 @@ namespace mongo {
+         InterlockedAdd((volatile long *)&x,by);
+     }
+ # endif
++#elif defined(GCC_VERSION) && GCC_VERSION >= 40700
++// in GCC version >= 4.7.0 we can use the built-in atomic operations
++
++    inline void AtomicUInt::set(unsigned newX) {
++        __atomic_store_n (&x, newX, __ATOMIC_SEQ_CST);
++    }
++    AtomicUInt AtomicUInt::operator++() {    // ++prefix
++        return __atomic_add_fetch(&x, 1, __ATOMIC_SEQ_CST);
++    }
++    AtomicUInt AtomicUInt::operator++(int) { // postfix++
++        return __atomic_fetch_add(&x, 1, __ATOMIC_SEQ_CST);
++    }
++    AtomicUInt AtomicUInt::operator--() {    // --prefix
++        return __atomic_add_fetch(&x, -1, __ATOMIC_SEQ_CST);
++    }
++    AtomicUInt AtomicUInt::operator--(int) { // postfix--
++        return __atomic_fetch_add(&x, -1, __ATOMIC_SEQ_CST);
++    }
++    void AtomicUInt::signedAdd(int by) {
++        __atomic_fetch_add(&x, by, __ATOMIC_SEQ_CST);
++    }
++
+ #elif defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
+     // this is in GCC >= 4.1
+     inline void AtomicUInt::set(unsigned newX) { __sync_synchronize(); x = newX; }
+diff --git a/src/mongo/platform/atomic_intrinsics_gcc_generic.h b/src/mongo/platform/atomic_intrinsics_gcc_generic.h
+index 64a2499..b7cc176 100644
+--- a/src/mongo/platform/atomic_intrinsics_gcc_generic.h
++++ b/src/mongo/platform/atomic_intrinsics_gcc_generic.h
+@@ -22,8 +22,53 @@
+ 
+ #include <boost/utility.hpp>
+ 
++#define GCC_VERSION (__GNUC__ * 10000                 \
++                     + __GNUC_MINOR__ * 100           \
++                     + __GNUC_PATCHLEVEL__)
++
+ namespace mongo {
+ 
++// If GCC version >= 4.7.0, we can use the built-in atomic operations
++#if defined(GCC_VERSION) && GCC_VERSION >= 40700
++
++    /**
++     * Instantiation of AtomicIntrinsics<>.
++     */
++    template <typename T>
++    class AtomicIntrinsics {
++    public:
++
++        static T compareAndSwap(volatile T* dest, T expected, T newValue) {
++            return __atomic_compare_exchange_n (dest, &expected, newValue, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
++        }
++
++        static T swap(volatile T* dest, T newValue) {
++            return __atomic_exchange_n (dest, newValue, __ATOMIC_SEQ_CST);
++        }
++
++        static T load(volatile const T* value) {
++            return __atomic_load_n (value, __ATOMIC_SEQ_CST);
++        }
++
++        static T loadRelaxed(volatile const T* value) {
++            return *value;
++        }
++
++        static void store(volatile T* dest, T newValue) {
++            __atomic_store_n (dest, newValue, __ATOMIC_SEQ_CST);
++        }
++
++        static T fetchAndAdd(volatile T* dest, T increment) {
++            return __atomic_fetch_add (dest, increment, __ATOMIC_SEQ_CST);
++        }
++
++    private:
++        AtomicIntrinsics();
++        ~AtomicIntrinsics();
++    };
++
++#else // GCC version < 4.7, so we must use legacy (platform-specific) atomic operations
++
+     /**
+      * Instantiation of AtomicIntrinsics<> for all word types T.
+      */
+@@ -67,4 +112,6 @@ namespace mongo {
+         ~AtomicIntrinsics();
+     };
+ 
++#endif // GCC_VERSION >= 40700
++
+ }  // namespace mongo
+-- 
+1.9.0
+
diff --git a/meta-oe/recipes-support/mongodb/mongodb_git.bb b/meta-oe/recipes-support/mongodb/mongodb_git.bb
index f0fe240..d990da8 100644
--- a/meta-oe/recipes-support/mongodb/mongodb_git.bb
+++ b/meta-oe/recipes-support/mongodb/mongodb_git.bb
@@ -9,13 +9,14 @@  DEPENDS_append_x86-64 = " gperftools"
 
 inherit scons
 
-PV = "2.5.5+git${SRCPV}"
-SRCREV = "588dc81b0822ebb46f80e152b94527a882e6ea5e"
-SRC_URI = "git://github.com/mongodb/mongo.git \
+PV = "2.6.0+git${SRCPV}"
+SRCREV = "be1905c24c7e5ea258e537fbf0d2c502c4fc6de2"
+SRC_URI = "git://github.com/mongodb/mongo.git;branch=v2.6 \
            file://0001-Make-it-possible-to-disable-the-use-of-v8.patch \
            file://0002-Fix-linking-when-scripting-is-disabled.patch \
            file://0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch \
-           file://0001-replace-os.uname-with-os.getenv-TARGET_ARCH.patch \
+           file://0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch \
+           file://0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch \
           "
 
 S = "${WORKDIR}/git"